Ë
    îÍ:jCi  ã                  ó  — d dl mZ d dlmZ d dlmZ d dlmZ d dlmZ d dlmZ d dlmZ d dlm	Z	 d d	l
mZ d d
l
mZ d dl
mZ d dl
mZ d dl
mZ d dl
mZ d dl
mZ d dl
mZ d dl
mZ d dl
mZ d dlmZ d dlmZ d dlmZ ddlmZ ddlmZ ddlm Z  ddlm!Z! ddlm"Z" ddlm#Z# ddlm$Z$ ddlm%Z% ddlm&Z& dd lm'Z' dd!lm(Z( dd"lm)Z) er0d d#lm*Z* d d$l+m,Z, d d%l-m.Z. d d&l-m/Z/ d d'lm0Z0 d d(l1m2Z2 dd)l3m4Z4 dd*l5m6Z6  G d+„ d,«      Z7 G d-„ d.«      Z8y/)0é    )Úannotations)ÚAny)ÚDict)ÚList)ÚOptional)ÚTuple)ÚTYPE_CHECKING)ÚUnion)ÚCheckConstraint)ÚColumn)ÚForeignKeyConstraint)ÚIndex)ÚMetaData)ÚPrimaryKeyConstraint©Úschema)Úselect)ÚTable)Útypes)ÚSchemaEventTarget)ÚOrderedDict)Útopologicalé   )Úexc)Ú_columns_for_constraint)Ú_copy)Ú_copy_expression)Ú_ensure_scope_for_ddl)Ú_fk_is_self_referential)Ú_idx_table_bound_expressions)Ú_is_type_bound)Ú_remove_column_from_collection)Ú_resolve_for_variant)Úconstraint_name_defined)Úconstraint_name_string)ÚLiteral)ÚDialect)ÚColumnClause)Úquoted_name)Ú
Constraint)Ú
TypeEngine)Ú_ServerDefaultType)ÚDefaultImplc                  ó¢   — e Zd Zd„ Zedd„«       Zedd„«       Zdd„Zdd„Zdd„Z	dd„Z
dd„Zdd	„Zdd
„Zd„ Zdd„Zdd„Zd„ Zd„ Zd„ Zd„ Zd„ Zy)ÚBatchOperationsImplc           	     óÔ  — || _         || _        || _        |dvrt        d«      ‚|| _        || _        || _        t        |«      | _        || _	        t        |	«      | _
        | j                  j                  dt        | j                  j                  dd«      «      «       | j                  d   j                  d|j                  j                   f«       |
| _        || _        g | _        y )N)ÚautoÚalwaysÚneverz4recreate may be one of 'auto', 'always', or 'never'.Ú	listeners© Úcolumn_reflect)Ú
operationsÚ
table_namer   Ú
ValueErrorÚrecreateÚ	copy_fromÚ
table_argsÚdictÚtable_kwargsÚreflect_argsÚreflect_kwargsÚ
setdefaultÚlistÚgetÚappendÚimplÚautogen_column_reflectÚnaming_conventionÚpartial_reorderingÚbatch)Úselfr7   r8   r   r:   r;   r<   r>   r?   r@   rG   rH   s               úm/home/mcse/projects/srt_converter/srt-converter-venv/lib/python3.12/site-packages/alembic/operations/batch.pyÚ__init__zBatchOperationsImpl.__init__7   sâ   € ð %ˆŒØ$ˆŒØˆŒØÐ6Ñ6ÜØFóð ð !ˆŒØ"ˆŒØ$ˆŒÜ  Ó.ˆÔØ(ˆÔÜ" >Ó2ˆÔØ×Ñ×&Ñ&Øœ˜d×1Ñ1×5Ñ5°kÀ2ÓFÓGô	
ð 	×Ñ˜KÑ(×/Ñ/Ø˜zŸ™×EÑEÐFô	
ð "3ˆÔØ"4ˆÔØˆ�
ó    c                óB   — | j                   j                  j                  S ©N)r7   rE   Údialect©rJ   s    rK   rP   zBatchOperationsImpl.dialect\   s   € à�‰×#Ñ#×+Ñ+Ð+rM   c                ó.   — | j                   j                  S rO   )r7   rE   rQ   s    rK   rE   zBatchOperationsImpl.impl`   s   € à�‰×#Ñ#Ð#rM   c                óŒ   — | j                   dk(  r%| j                  j                  j                  | «      S | j                   dk(  ryy)Nr1   r2   TF)r:   r7   rE   Úrequires_recreate_in_batchrQ   s    rK   Ú_should_recreatez$BatchOperationsImpl._should_recreated   s;   € Ø�=‰=˜FÒ"Ø—?‘?×'Ñ'×BÑBÀ4ÓHÐHØ�]‰]˜hÒ&ØàrM   c           	     ó  — | j                  «       }t        | j                  j                  «      5  |s?| j                  D ].  \  }}}t        | j                  j                  |«      } ||i |¤Ž Œ0 �nˆ| j                  rt        | j                  ¬«      }n
t        «       }| j                  �| j                  }d}nÃ| j                  j                  j                  rNt        j                  d| j                  j                  j                  j                  › d| j                   › d�«      ‚t#        | j                   |g| j$                  ¢­| j&                  | j                  j)                  «       dœ| j*                  ¤Ž}d}t-        | j                  || j.                  | j0                  || j2                  ¬«      }	| j                  D ]  \  }}}t        |	|«      } ||i |¤Ž Œ |	j5                  | j                  «       d d d «       y # 1 sw Y   y xY w)	N)rG   FzEThis operation cannot proceed in --sql mode; batch mode with dialect zF requires a live database connection with which to reflect the table "zØ". To generate a batch SQL migration script using table "move and copy", a complete Table object should be passed to the "copy_from" argument of the batch_alter_table() method so that table reflection can be skipped.)r   Úautoload_withT)rH   )rU   r   rE   Ú
connectionrI   Úgetattrr7   rG   r   r;   Úmigration_contextÚas_sqlr   ÚCommandErrorrP   Únamer8   r   r?   r   Úget_bindr@   ÚApplyBatchImplr<   r>   rH   Ú_create)
rJ   Úshould_recreateÚopnameÚargÚkwÚfnÚm1Úexisting_tableÚ	reflectedÚ
batch_impls
             rK   ÚflushzBatchOperationsImpl.flushl   sâ  € Ø×/Ñ/Ó1ˆä" 4§9¡9×#7Ñ#7Ó8ñ 4	.Ù"Ø'+§z¡zò #‘O�F˜C Ü  §¡×!5Ñ!5°vÓ>�BÙ˜�N˜r“Nò#ð ×)Ò)Ü!°D×4JÑ4JÔK‘Bä!›�Bà—>‘>Ð-Ø%)§^¡^�NØ %‘Ià—‘×8Ñ8×?Ò?Ü!×.Ñ.ð7à#Ÿ™×@Ñ@×HÑH×MÑMÐNð O5à59·_±_Ð4Eð F9ð	
9óð ô &+ØŸ™Øð&ð
 ×*Ñ*ñ&ð  $Ÿ{™{Ø&*§o¡o×&>Ñ&>Ó&@ñ	&ð ×-Ñ-ñ&�Nð !%�Iä+Ø—I‘IØ"Ø—O‘OØ×%Ñ%ØØ'+×'>Ñ'>ô�
ð (,§z¡zò #‘O�F˜C Ü  ¨VÓ4�BÙ˜�N˜r“Nð#ð ×"Ñ" 4§9¡9Ô-÷i4	.÷ 4	.ñ 4	.ús   °G
HÈHc                ó@   — | j                   j                  d||f«       y )NÚalter_column©rI   rD   ©rJ   rc   rd   s      rK   rl   z BatchOperationsImpl.alter_column¥   ó   € Ø�
‰
×Ñ˜>¨3°Ð3Õ4rM   c                óš   — d|v sd|v r%| j                  «       st        j                  d«      ‚| j                  j	                  d||f«       y )NÚinsert_beforeÚinsert_afterz^Can't specify insert_before or insert_after when using ALTER; please specify recreate='always'Ú
add_column)rU   r   r\   rI   rD   rn   s      rK   rs   zBatchOperationsImpl.add_column¨   sP   € à˜rÑ! ^°rÑ%9Ø×'Ñ'Ô)Ü×"Ñ"ð:óð ð 	�
‰
×Ñ˜<¨¨bÐ1Õ2rM   c                ó@   — | j                   j                  d||f«       y )NÚdrop_columnrm   rn   s      rK   ru   zBatchOperationsImpl.drop_column²   s   € Ø�
‰
×Ñ˜=¨#¨rÐ2Õ3rM   c                óB   — | j                   j                  d|fi f«       y )NÚadd_constraintrm   ©rJ   Úconsts     rK   rw   z"BatchOperationsImpl.add_constraintµ   s   € Ø�
‰
×ÑÐ+¨e¨X°rÐ:Õ;rM   c                óB   — | j                   j                  d|fi f«       y )NÚdrop_constraintrm   rx   s     rK   r{   z#BatchOperationsImpl.drop_constraint¸   s   € Ø�
‰
×ÑÐ,¨u¨h¸Ð;Õ<rM   c                ó@   — | j                   j                  d||f«       y )NÚrename_tablerm   rn   s      rK   r}   z BatchOperationsImpl.rename_table»   ro   rM   c                óB   — | j                   j                  d|f|f«       y )NÚcreate_indexrm   ©rJ   Úidxrd   s      rK   r   z BatchOperationsImpl.create_index¾   s   € Ø�
‰
×Ñ˜>¨C¨6°2Ð6Õ7rM   c                óB   — | j                   j                  d|f|f«       y )NÚ
drop_indexrm   r€   s      rK   rƒ   zBatchOperationsImpl.drop_indexÁ   s   € Ø�
‰
×Ñ˜<¨#¨°Ð4Õ5rM   c                óB   — | j                   j                  d|fi f«       y )NÚcreate_table_commentrm   ©rJ   Útables     rK   r…   z(BatchOperationsImpl.create_table_commentÄ   s   € Ø�
‰
×ÑÐ1°E°8¸RÐ@ÕArM   c                óB   — | j                   j                  d|fi f«       y )NÚdrop_table_commentrm   r†   s     rK   r‰   z&BatchOperationsImpl.drop_table_commentÇ   s   € Ø�
‰
×ÑÐ/°%°¸2Ð>Õ?rM   c                ó   — t        d«      ‚)Nz Can't create table in batch mode©ÚNotImplementedErrorr†   s     rK   Úcreate_tablez BatchOperationsImpl.create_tableÊ   s   € Ü!Ð"DÓEÐErM   c                ó   — t        d«      ‚)NzCan't drop table in batch moder‹   r†   s     rK   Ú
drop_tablezBatchOperationsImpl.drop_tableÍ   s   € Ü!Ð"BÓCÐCrM   c                óB   — | j                   j                  d|fi f«       y )NÚcreate_column_commentrm   ©rJ   Úcolumns     rK   r‘   z)BatchOperationsImpl.create_column_commentÐ   s   € Ø�
‰
×ÑÐ2°V°I¸rÐBÕCrM   N)Úreturnr'   )r”   r-   )r”   Úbool©r”   ÚNone©ry   r*   r”   r—   )r�   r   rd   r   r”   r—   )Ú__name__Ú
__module__Ú__qualname__rL   ÚpropertyrP   rE   rU   rj   rl   rs   ru   rw   r{   r}   r   rƒ   r…   r‰   r�   r�   r‘   r5   rM   rK   r/   r/   6   s�   „ ò#ðJ ò,ó ð,ð ò$ó ð$óó7.ór5ó3ó4ó<ó=ò5ó8ó6òBò@òFòDóDrM   r/   c                  ó<  — e Zd Z	 d	 	 	 	 	 	 	 	 	 	 	 	 	 dd„Zedd„«       Zdd„Zdd„Zdd„Zdd„Z		 	 	 	 	 	 dd„Z
dd„Z	 	 	 	 	 	 d	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 dd
„Z	 	 	 	 	 	 	 	 dd„Z	 	 d 	 	 	 	 	 	 	 	 	 d!d„Z	 	 	 	 	 	 d"d„Zd„ Zd„ Zd„ Zd#d„Zd#d„Zd$d„Zd$d„Zd„ Zy	)%r_   c                ó^  — || _         || _        || _        || _        | j	                  |j
                  «      | _        d | _        || _        d| _	        t        d„ | j                  j                  D «       «      | _        t        | j                  «      | _        || _        | j!                  «        y )Nr5   c              3  ó<   K  — | ]  }|j                   d |if–— Œ y­w©ÚexprN)r]   )Ú.0Úcs     rK   ú	<genexpr>z*ApplyBatchImpl.__init__.<locals>.<genexpr>ê   s"   è ø€ ò ,
Ø&'ˆQ�V‰V�f˜a�[Ô!ñ,
ùs   ‚)rE   r‡   r<   r>   Ú_calc_temp_namer]   Útemp_table_nameÚ	new_tablerH   Úadd_col_orderingr   r£   Úcolumn_transfersrB   Úexisting_orderingrh   Ú_grab_table_elements)rJ   rE   r‡   r<   r>   rh   rH   s          rK   rL   zApplyBatchImpl.__init__Õ   s    € ð ˆŒ	ØˆŒ
Ø$ˆŒØ(ˆÔØ#×3Ñ3°E·J±JÓ?ˆÔØ*.ˆŒà"4ˆÔð ð 	Ôô !,ñ ,
Ø+/¯:©:¯<©<ô,
ó !
ˆÔô "& d×&;Ñ&;Ó!<ˆÔà"ˆŒØ×!Ñ!Õ#rM   c                ó   — d|z  dd S )Nz_alembic_tmp_%sr   é2   r5   )ÚclsÚ	tablenames     rK   r¥   zApplyBatchImpl._calc_temp_nameò   s   € à! IÑ-¨q°Ð4Ð4rM   c                ó’  — | j                   j                  }t        «       | _        | j                   j                  D ]j  }t        ||¬«      }dx|_        |_        t        |j                  t        «      r|j                  |j                  usJ ‚|| j                  |j                  <   Œl i | _        g | _        i | _        i | _        i | _        | j                   j"                  D ]�  }t%        |«      rŒ| j&                  rt        |t(        «      r|j                  sŒ8t+        |j                  «      r|| j                  |j                  <   Œg| j                  j-                  |«       Œƒ | j&                  sT| j                   j                  D ];  }|j"                  D ]*  }|j                  sŒ||f| j                  |j                  <   Œ, Œ= | j                   j                  D ]  }|| j                  |j                  <   Œ | j                   j.                  D ]5  }| j0                  j3                  || j                   j.                  |   «       Œ7 y )Nr   F)r‡   r   r   Úcolumnsr£   r   ÚuniqueÚindexÚ
isinstanceÚtyper   r]   Únamed_constraintsÚunnamed_constraintsÚcol_named_constraintsÚindexesÚnew_indexesÚconstraintsr!   rh   r   r%   rD   Úkwargsr>   rA   )rJ   r   r£   Úc_copyry   Úcolr�   Úks           rK   r«   z#ApplyBatchImpl._grab_table_elementsö   sç  € Ø—‘×"Ñ"ˆÜ/:«}ˆŒØ—‘—‘ò 	*ˆAÜ˜1 VÔ,ˆFØ+0Ð0ˆFŒM˜FœLô ˜!Ÿ&™&Ô"3Ô4Ø—{‘{¨!¯&©&Ñ0Ð0Ð0Ø#)ˆD�L‰L˜Ÿ™Ò ð	*ð 9;ˆÔØ#%ˆÔ Ø%'ˆÔ"Ø)+ˆŒØ-/ˆÔà—Z‘Z×+Ñ+ò 	7ˆEÜ˜eÔ$Øà—’Ü˜u¤oÔ6ØŸ
š
ð
 Ü'¨¯
©
Ô3Ø5:�×&Ñ& u§z¡zÒ2à×(Ñ(×/Ñ/°Õ6ð	7ð" �~Š~Ø—z‘z—|‘|ò N�Ø Ÿ_™_ò N�EØ—z“zØBEÀuÀ˜×2Ñ2°5·:±:Ò>ñNðNð
 —:‘:×%Ñ%ò 	)ˆCØ%(ˆD�L‰L˜Ÿ™Ò"ð	)ð —‘×"Ñ"ò 	BˆAØ×Ñ×(Ñ(¨¨D¯J©J×,=Ñ,=¸aÑ,@ÕAñ	BrM   c                óx  ‡ — t        «       }t        ‰ j                  «      }‰ j                  rD‰ j                  D ]4  }t	        |«      D ]$  \  }}|dkD  sŒ|j                  ||dz
     |f«       Œ& Œ6 n<t	        ‰ j                  «      D ]$  \  }}|dkD  sŒ|j                  ||dz
     |f«       Œ& |j                  ‰ j                  «       |D �cg c]  }|d   |d   k7  sŒ|‘Œ }}t        t        j                  ||d¬«      «      }t        ˆ fd„|D «       «      ‰ _        t        ˆ fd„|D «       «      ‰ _        y c c}w )Nr   é   T)Údeterministic_orderc              3  ó@   •K  — | ]  }|‰j                   |   f–— Œ y ­wrO   )r±   ©r¢   r¿   rJ   s     €rK   r¤   zMApplyBatchImpl._adjust_self_columns_for_partial_reordering.<locals>.<genexpr>=  s   øè ø€ Ò"I¸A A t§|¡|°A¡Ô#7Ñ"Iùó   ƒc              3  ó@   •K  — | ]  }|‰j                   |   f–— Œ y ­wrO   )r©   rÄ   s     €rK   r¤   zMApplyBatchImpl._adjust_self_columns_for_partial_reordering.<locals>.<genexpr>>  s&   øè ø€ ò ,
Ø./ˆQ�×%Ñ% aÑ(Ô)ñ,
ùrÅ   )ÚsetrB   r±   rH   Ú	enumerateÚaddrª   Úupdater¨   r   Úsortr   r©   )	rJ   ÚpairsÚ
col_by_idxÚtuple_r³   ÚelemÚpÚ
pairs_listÚsorted_s	   `        rK   Ú+_adjust_self_columns_for_partial_reorderingz:ApplyBatchImpl._adjust_self_columns_for_partial_reordering$  s6  ø€ Ü“ˆä˜$Ÿ,™,Ó'ˆ
à×"Ò"Ø×1Ñ1ò =�Ü#,¨VÓ#4ò =‘K�E˜4Ø˜q“yØŸ	™	 6¨%°!©)Ñ#4°dÐ";Õ<ñ=ñ=ô
  )¨×)?Ñ)?Ó@ò =‘��tØ˜1“9Ø—I‘I˜z¨%°!©)Ñ4°dÐ;Õ<ð=ð 	�‰�T×*Ñ*Ô+ð
 "'Ö7˜A¨!¨A©$°!°A±$«,’aÐ7ˆ
Ð7äÜ×Ñ˜Z¨ÈÔNó
ˆô #Ó"IÀÔ"IÓIˆŒÜ +ó ,
Ø3:ô,
ó !
ˆÕùò 8s   ÃD7ÃD7c                óx  — | j                   �J d«       ‚t        «       }| j                  j                  }| j                  s| j
                  r| j                  «        t        | j                  |gt        | j                  j                  «       «      t        | j                  «      z   ¢­d|i| j                  ¤Žx| _         }t        | j                  j                  «       «      | j                  z   D ]Ã  }t!        |«      D �ch c]  }|j"                  ’Œ }}|j%                  | j&                  «      sŒAt)        |t*        «      r2t-        |«      rt/        ||| j                  ¬«      }nt/        ||¬«      }nt/        |||¬«      }t)        |t*        «      r| j1                  ||«       |j3                  |«       ŒÅ y c c}w )NzCan only create new table oncer   )r   Útarget_tabler   )r§   r   r‡   r   rH   r¨   rÓ   r   r¦   rB   r±   Úvaluesr<   r>   r¶   r·   r   ÚkeyÚissubsetr©   r´   r   r   r   Ú_setup_referentÚappend_constraint)rJ   Úmr   r§   ry   r£   Úconst_columnsÚ
const_copys           rK   Ú_transfer_elements_to_new_tablez.ApplyBatchImpl._transfer_elements_to_new_tableB  s�  € Ø�~‰~Ð%ÐGÐ'GÓGÐ%ä‹JˆØ—‘×"Ñ"ˆà×"Ò" d×&;Ò&;Ø×<Ñ<Ô>ä%*Ø× Ñ Øð&
ô �4—<‘<×&Ñ&Ó(Ó)¬D°·±Ó,AÑAò&
ð ð	&
ð
 ×Ññ&
ð 	
ˆŒ˜ô �×'Ñ'×.Ñ.Ó0Ó1°D×4LÑ4LÑLò	4ˆEô -DÀEÓ,JÖK q˜QŸU›UÐKˆMÐKà ×)Ñ)¨$×*?Ñ*?Ô@Øô ˜%Ô!5Ô6Ü*¨5Ô1ô "'Ø f¸4¿:¹:ô"‘Jô "' u°VÔ!<‘Jä"Ø &°yô�
ô ˜%Ô!5Ô6Ø×$Ñ$ Q¨Ô.Ø×'Ñ'¨
Õ3ñ?	4ùò Ls   Ä F7c                ó²  — | j                   €J ‚g }| j                  j                  «       D ]…  }|j                  rŒt	        |j
                  gt        |«      D �cg c]  }t        || j                   «      ‘Œ c}¢­|j                  | j                   dœ|j                  ¤Ž}|j                  |«       Œ‡ | j                  j                  «       D ]}  }|j                  t	        |j
                  g|j                  j                  «       D �cg c]  }| j                   j                  |   ‘Œ c}¢­d|j                  i|j                  ¤Ž«       Œ |S c c}w c c}w )N)r²   Ú_tabler²   )r§   r¹   rÖ   Ú_column_flagr   r]   r    r   r²   r¼   rD   rº   r±   Úkeysr£   )rJ   r�   Úidx_existingr¡   Úidx_copyr³   r¾   s          rK   Ú _gather_indexes_from_both_tablesz/ApplyBatchImpl._gather_indexes_from_both_tablest  sN  € Ø�~‰~Ð)Ð)Ð)Øˆà ŸL™L×/Ñ/Ó1ò 	!ˆLð ×(Ò(ØäØ×!Ñ!ð	ô
 !=¸\Ó Jöàô % T¨4¯>©>Õ:òñ	à#×*Ñ*ð
 —~‘~ñ	ð ×%Ñ%ñ	ˆHð �J‰J�xÕ ð!	!ð$ ×%Ñ%×,Ñ,Ó.ò 	ˆEØ�J‰JÜØ—J‘Jðð 8=·}±}×7IÑ7IÓ7KÖL°�d—n‘n×&Ñ& sÓ+ÒLòà Ÿ<™<ðð —l‘lñ	õð	ð ˆ
ùò%ùò Ms   ÁEÄ Ec           
     óÎ  — |j                   d   j                  «       }|j                  d«      }|d   }t        |«      dk(  r|d   }nd }|| j                  k7  �rt        j                  ||«      }dd„}||j                  v rs|j                  |   }	|j                   D ]T  }
 ||
«      j                  d«      d   }||	j                  vsŒ,|	j                  t        |t        j                  «      «       ŒV y t        ||g|j                   D �
cg c]  }
 ||
«      j                  d«      d   ‘Œ c}
D �cg c]  }t        |t        j                  «      ‘Œ c}¢­d|iŽ y y c c}
w c c}w )	Nr   ú.éþÿÿÿé   c                ó"   — | j                  «       S rO   )Ú_get_colspec)rÏ   s    rK   Úcolspecz/ApplyBatchImpl._setup_referent.<locals>.colspec£  s   € Ø×(Ñ(Ó*Ð*rM   éÿÿÿÿr   )rÏ   r   )Úelementsrë   ÚsplitÚlenr¦   Ú
sql_schemaÚ_get_table_keyÚtablesr£   Úappend_columnr   ÚsqltypesÚNULLTYPEr   )rJ   ÚmetadataÚ
constraintÚspecÚpartsÚtnameÚreferent_schemar×   rì   ÚtrÏ   ÚcolnameÚns                rK   rÙ   zApplyBatchImpl._setup_referent•  sb  € ð ×"Ñ" 1Ñ%×2Ñ2Ó4ˆØ—
‘
˜3“ˆØ�b‘	ˆÜˆu‹:˜Š?Ø# A™h‰Oà"ˆOà�D×(Ñ(Ó(Ü×+Ñ+¨E°?ÓCˆCó+ð �h—o‘oÑ%Ø—O‘O CÑ(�Ø&×/Ñ/ò L�DÙ% d›m×1Ñ1°#Ó6°rÑ:�GØ a§c¡cÒ)ØŸ™¬¨w¼×8IÑ8IÓ(JÕKñLô
 ØØðð )3×(;Ñ(;ö"à $ñ $ D›M×/Ñ/°Ó4°RÓ8ò"öàô ˜q¤(×"3Ñ"3Õ4òòð +óð )ùò$"ùòs   Ä!E
Ä1!E"
c                ó  — | j                  «        |j                  | | j                  «       | j                  €J ‚|j	                  | j                  «       	 |j                  | j                  j                  «       j                  «       j                  t        d„ | j                  j                  «       D «       «      t        | j                  j                  «       D �cg c]  }d|v r|d   ‘Œ c}Ž «      «       |j                  | j                  «       |j                  | j                   | j                  j"                  | j                  j$                  ¬«       | j                  j"                  | j                  _        	 | j'                  «       D ]  }|j)                  |«       Œ 	 | j                   | j                  _        y c c}w # | j                   | j                  _        w xY w#  |j                  | j                  «       ‚ xY w)Nc              3  ó.   K  — | ]  \  }}d |v r|–— Œ y­wr    r5   )r¢   r¿   Útransfers      rK   r¤   z)ApplyBatchImpl._create.<locals>.<genexpr>Æ  s$   è ø€ ò á'˜A˜xØ! XÑ-ô ñùs   ‚r¡   r   )rÞ   Úprep_table_for_batchr‡   r§   r�   Ú_execÚinsertÚinlineÚfrom_selectrB   r©   Úitemsr   rÖ   r�   r}   r¦   r]   r   rå   r   )rJ   Úop_implr  r�   s       rK   r`   zApplyBatchImpl._createº  s«  € Ø×,Ñ,Ô.à×$Ñ$ T¨4¯:©:Ô6Ø�~‰~Ð)Ð)Ð)Ø×Ñ˜TŸ^™^Ô,ð 	;Ø�M‰MØ—‘×%Ñ%Ó'ß‘“ß‘Üñ à+/×+@Ñ+@×+FÑ+FÓ+Hôó ô
 ð -1×,AÑ,A×,HÑ,HÓ,Jöà (Ø%¨Ñ1ð % VÓ,òðóôð$ ×Ñ˜tŸz™zÔ*ð
 × Ñ Ø×$Ñ$ d§j¡j§o¡o¸d¿j¹j×>OÑ>Oð !ô ð #'§*¡*§/¡/ˆD�N‰NÔð;Ø×@Ñ@ÓBò .�CØ×(Ñ(¨Õ-ñ.ð '+×&:Ñ&:�—‘Õ#ùò+øð* '+×&:Ñ&:�—‘Õ#ûð	Ø×Ñ˜tŸ~™~Ô.Øús+   ÁBG( ÃGÃ-'G( Æ &G ÇG( ÇG%Ç(HNc	                óø  — | j                   |   }
| j                  |   }|�Š||k7  r…||
_        ||d<   |	j                  dd «      }|ret	        |	d   | j
                  j                  «      }t        |t        «      r2|j                  r&| j                  j                  |j                  d «       |�ut        j                  |«      }t        |
j                  t        «      r"dx|
j                  _        |
j                  _        | j
                  j!                  |
||«       ||
_        |�||
_        |dur.|€d |
_        n$t'        j(                  |«      j+                  |
«       |�t-        |«      |
_        |dur||
_        y y )Nr]   Úexisting_typeF)r±   r©   r]   rC   r#   rE   rP   r´   r   r¶   Úpoprõ   Úto_instancerµ   Ú_create_eventsÚcreate_constraintÚcast_for_batch_migrateÚnullableÚserver_defaultrñ   ÚDefaultClauseÚ_set_parentr•   ÚautoincrementÚcomment)rJ   r8   Úcolumn_namer  r  r]   Útype_r  r  rd   ÚexistingÚexisting_transferr  Úresolved_existing_types                 rK   rl   zApplyBatchImpl.alter_columnã  s�  € ð —<‘< Ñ,ˆØ,0×,AÑ,AÀ+Ñ,NÐØÐ ¨Ò 3ð !ˆHŒMØ(,Ð˜fÑ%àŸF™F ?°DÓ9ˆMÙÜ)=Ø�Ñ'¨¯©×):Ñ):ó*Ð&ô Ð5Ô7HÔIØ.×3Ò3à×*Ñ*×.Ñ.Ø.×3Ñ3Øôð
 ÐÜ×(Ñ(¨Ó/ˆEô ˜(Ÿ-™-Ô):Ô;ð ð�—‘Ô,Ø—M‘MÔ3ð �I‰I×,Ñ,ØÐ+¨Uôð "ˆHŒMð ÐØ (ˆHÔØ Ñ&ØÐ%Ø*.�Õ'ä×(Ñ(Ø"óç‘+˜hÔ'ØÐ$Ü%)¨-Ó%8ˆHÔ"à˜%ÑØ&ˆHÕð  rM   c                óF  — | j                   }t        |«      D ��ci c]  \  }}||“Œ
 }}}| j                  sz|r:|s8||v r||   dz   }|t        |«      k  r||   }nt	        | j
                  «      |   }|r<|s:||v r||   dz
  }|dk\  r)||   }n#| j
                  D �	�
ci c]  \  }	}
|
|	“Œ
 c}
}	|   }|r| xj
                  ||ffz  c_        |r| xj
                  ||ffz  c_        | j                  s%|s"|s|r| xj
                  |d   |ffz  c_        y y y y y c c}}w c c}
}	w )NrÁ   r   rí   )rª   rÈ   rH   rð   r=   r¨   )rJ   rþ   rq   rr   Ú
index_colsÚir]   Úcol_indexesr�   ÚaÚbs              rK   Ú"_setup_dependencies_for_add_columnz1ApplyBatchImpl._setup_dependencies_for_add_column0  sk  € ð ×+Ñ+ˆ
Ü.7¸
Ó.C×D¡7 1 d�t˜Q‘wÐDˆÑDà×&Ò&ÙÙ$Ø# {Ñ2à)¨,Ñ7¸!Ñ;˜Ø¤ Z£Ò0Ø,6°s©O™Mô )-¨T×-BÑ-BÓ(CØ(ñ)˜ñ Ù#Ø$¨Ñ3à)¨-Ñ8¸1Ñ<˜Ø !š8Ø+5°c©?™Lð .2×-BÑ-B÷(Ù%) Q¨˜A˜q™Dó(à'ñ()˜ñ Ø×!Ò! w°Ð&>Ð%@Ñ@Õ!ÙØ×!Ò! |°WÐ&=Ð%?Ñ?Õ!ð ×'Ò'Ù!Ù Ùà×!Ò! z°"¡~°wÐ&?Ð%AÑAÖ!ð ð !ð "ð (ùóE Eùó0(s   ›DÂDc                óà   — | j                  |j                  ||«       t        || j                  j                  ¬«      | j
                  |j                  <   i | j                  |j                  <   y )Nr   )r"  r]   r   r‡   r   r±   r©   )rJ   r8   r“   rq   rr   rd   s         rK   rs   zApplyBatchImpl.add_column`  sV   € ð 	×/Ñ/Ø�K‰K˜¨ô	
ô
 %*¨&¸¿¹×9JÑ9JÔ$Kˆ�‰�V—[‘[Ñ!Ø-/ˆ×Ñ˜fŸk™kÒ*rM   c                óú  — |j                   | j                  j                  j                  v r*t	        | j                  j                  j                  |«       | j                  |j                   = | j
                  |j                   = | j                  j                  |j                   «       d|v rNt        |d   t        «      r:|d   j                   r*| j                  j                  |d   j                   d «       y y y y )Nr  )r]   r‡   Úprimary_keyr±   r"   r©   rª   Úremover´   r   r¶   r  )rJ   r8   r“   rd   s       rK   ru   zApplyBatchImpl.drop_columnp  sÕ   € ð �;‰;˜$Ÿ*™*×0Ñ0×8Ñ8Ñ8Ü*Ø—
‘
×&Ñ&×.Ñ.°ôð �L‰L˜Ÿ™Ð%Ø×!Ñ! &§+¡+Ð.Ø×Ñ×%Ñ% f§k¡kÔ2ð ˜rÑ!Ü˜2˜oÑ.Ô0AÔBØ�?Ñ#×(Ò(à×"Ñ"×&Ñ&Ø�?Ñ#×(Ñ(¨$õð )ð Cð "rM   c                 ó   — y)a^  the batch table creation function will issue create_column_comment
        on the real "impl" as part of the create table process.

        That is, the Column object will have the comment on it already,
        so when it is received by add_column() it will be a normal part of
        the CREATE TABLE and doesn't need an extra step here.

        Nr5   r’   s     rK   r‘   z$ApplyBatchImpl.create_column_commentˆ  ó   � rM   c                 ó   — y)z‹the batch table creation function will issue create_table_comment
        on the real "impl" as part of the create table process.

        Nr5   r†   s     rK   r…   z#ApplyBatchImpl.create_table_comment’  r(  rM   c                 ó   — y)z‰the batch table creation function will issue drop_table_comment
        on the real "impl" as part of the create table process.

        Nr5   r†   s     rK   r‰   z!ApplyBatchImpl.drop_table_comment˜  r(  rM   c                ó®  — t        |j                  «      st        d«      ‚t        |t        j
                  «      rQ| j                  j                  | j                  v r/| j                  j                  | j                  j                  «       t        |j                  «      r|| j                  |j                  <   y | j                  j                  |«       y )NúConstraint must have a name)r$   r]   r9   r´   rñ   r   r‡   r%  r·   r&  r%   r¶   rD   rx   s     rK   rw   zApplyBatchImpl.add_constraintž  s”   € Ü& u§z¡zÔ2ÜÐ:Ó;Ð;Ü�eœZ×<Ñ<Ô=Ø�z‰z×%Ñ%¨×)AÑ)AÑAØ×(Ñ(×/Ñ/°·
±
×0FÑ0FÔGä! %§*¡*Ô-Ø16ˆD×"Ñ" 5§:¡:Ò.à×$Ñ$×+Ñ+¨EÕ2rM   c                ó\  — |j                   st        d«      ‚	 |j                   | j                  v r¦| j                  j                  |j                   «      \  }}t	        | j
                  |j                      j                  «      D ]N  }|j                   |j                   k(  sŒ| j
                  |j                      j                  j                  |«       ŒP ndt        |j                   «      r&| j                  j                  |j                   «      }n)|| j                  v r| j                  j                  |«       t        |t        «      r0|j
                  D ]   }d| j
                  |j                      _        Œ" y y # t        $ r& t        |«      rY y t        d|j                   z  «      ‚w xY w)Nr,  FzNo such constraint: '%s')r]   r9   r¸   r  rB   r±   r»   r&  r%   r¶   r·   r´   r   r%  ÚKeyErrorr!   )rJ   ry   r¾   Ú	col_consts       rK   r{   zApplyBatchImpl.drop_constraintª  s]  € Ø�zŠzÜÐ:Ó;Ð;ð	?Ø�z‰z˜T×7Ñ7Ñ7Ø!×7Ñ7×;Ñ;¸E¿J¹JÓG‘
��Uä!% d§l¡l°3·8±8Ñ&<×&HÑ&HÓ!Iò M�IØ —~‘~¨¯©Ó3ØŸ™ S§X¡XÑ.×:Ñ:×AÑAÀ)ÕLñMô (¨¯
©
Ô3Ø×.Ñ.×2Ñ2°5·:±:Ó>‘Ø˜$×2Ñ2Ñ2Ø×(Ñ(×/Ñ/°Ô6ô ˜%Ô!5Ô6Ø Ÿ=™=ò ?�CØ9>�D—L‘L §¡Ñ*Õ6ñ?ð 7øô ò 	FÜ˜eÔ$ñ
 ÜÐ7¸%¿*¹*ÑDÓEÐEð	Fús   ™BE< Â"BE< Å<F+ÆF+c                ó6   — || j                   |j                  <   y rO   )rº   r]   ©rJ   r�   s     rK   r   zApplyBatchImpl.create_indexÆ  s   € Ø%(ˆ×Ñ˜Ÿ™Ò"rM   c                ó~   — 	 | j                   |j                  = y # t        $ r t        d|j                  z  «      ‚w xY w)NzNo such index: '%s')r¹   r]   r.  r9   r1  s     rK   rƒ   zApplyBatchImpl.drop_indexÉ  s;   € ð	?Ø—‘˜SŸX™XÑ&øÜò 	?ÜÐ2°S·X±XÑ=Ó>Ð>ð	?ús   ‚ š"<c                ó   — t        d«      ‚)NÚTODOr‹   rn   s      rK   r}   zApplyBatchImpl.rename_tableÏ  s   € Ü! &Ó)Ð)rM   )r5   )rE   r-   r‡   r   r<   Útupler>   zDict[str, Any]rh   r•   rH   r5  r”   r—   )r¯   zUnion[quoted_name, str]r”   Ústrr–   )r”   zList[Index])r÷   r   rø   r   r”   r—   )r	  r-   r”   r—   )NFNNNF)r8   r6  r  r6  r  zOptional[bool]r  z/Union[_ServerDefaultType, None, Literal[False]]r]   úOptional[str]r  zOptional[TypeEngine]r  z&Optional[Union[bool, Literal['auto']]]r  zUnion[str, Literal[False]]r”   r—   )rþ   r6  rq   r7  rr   r7  r”   r—   )NN)
r8   r6  r“   zColumn[Any]rq   r7  rr   r7  r”   r—   )r8   r6  r“   z%Union[ColumnClause[Any], Column[Any]]r”   r—   r˜   )r�   r   r”   r—   )r™   rš   r›   rL   Úclassmethodr¥   r«   rÓ   rÞ   rå   rÙ   r`   rl   r"  rs   ru   r‘   r…   r‰   rw   r{   r   rƒ   r}   r5   rM   rK   r_   r_   Ô   sÕ  „ ð %'ð$àð$ð ð$ð ð	$ð
 %ð$ð ð$ð "ð$ð 
ó$ð: ò5ó ð5ó,Bó\
ó<04ódðB#Ø ð#Ø.Bð#à	ó#óJ';ðZ $(ð Ø"Ø&*Ø@DØ.3ðK'àðK'ð ðK'ð !ð	K'ð

ðK'ð ðK'ð $ðK'ð >ðK'ð ,ðK'ð 
óK'ðZ.Bàð.Bð %ð.Bð $ð	.Bð
 
ó.Bðh (,Ø&*ð0àð0ð ð0ð %ð	0ð
 $ð0ð 
ó0ð àðð 6ðð
 
óò0òòó
3ó?ó8)ó?ó*rM   r_   N)9Ú
__future__r   Útypingr   r   r   r   r   r	   r
   Ú
sqlalchemyr   r   r   r   r   r   r   rñ   r   r   r   rõ   Úsqlalchemy.sql.schemar   Úsqlalchemy.utilr   r   Úutilr   Úutil.sqla_compatr   r   r   r   r   r    r!   r"   r#   r$   r%   r&   Úsqlalchemy.enginer'   Úsqlalchemy.sql.elementsr(   r)   r*   Úsqlalchemy.sql.type_apir+   Úddl.baser,   Úddl.implr-   r/   r_   r5   rM   rK   ú<module>rE     s    ðõ #å Ý Ý Ý Ý Ý  Ý å &Ý Ý +Ý Ý Ý +Ý +Ý Ý Ý (Ý 3Ý 'Ý 'å Ý 6Ý $Ý /Ý 4Ý 6Ý ;Ý -Ý =Ý 3Ý 6Ý 5áÝå)Ý4Ý3Ý0Ý2å-Ý&÷[Dñ [D÷||*ò |*rM   