Ë
    †V.j?i  ã                  ó(  — 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) dd#lm*Z* er0d d$lm+Z+ d d%l,m-Z- d d&l.m/Z/ d d'l.m0Z0 d d(l1m2Z2 d d)lm3Z3 d d*l4m5Z5 dd+l6m7Z7  G d,„ d-«      Z8 G d.„ d/«      Z9y0)1é    )Úannotations)ÚAny)ÚDict)ÚList)ÚOptional)ÚTuple)ÚTYPE_CHECKING)ÚUnion)ÚCheckConstraint)ÚColumn)ÚForeignKeyConstraint)ÚIndex)ÚMetaData)ÚPrimaryKeyConstraint©Úschema)ÚTable)Útypes)ÚSchemaEventTarget)ÚOrderedDict)Útopologicalé   )Úexc)Ú_columns_for_constraint)Ú_copy)Ú_copy_expression)Ú_ensure_scope_for_ddl)Ú_fk_is_self_referential)Ú_idx_table_bound_expressions)Ú_insert_inline)Ú_is_type_bound)Ú_remove_column_from_collection)Ú_resolve_for_variant)Ú_select)Úconstraint_name_defined)Úconstraint_name_string)ÚLiteral)ÚDialect)ÚColumnClause)Úquoted_name)ÚFunction)Ú
Constraint)Ú
TypeEngine)Ú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)Úselfr8   r9   r   r;   r<   r=   r?   r@   rA   rH   rI   s               úZC:\xampp\htdocs\tradingbinance\backend\.venv\Lib\site-packages\alembic/operations/batch.pyÚ__init__zBatchOperationsImpl.__init__8   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)r8   rF   Údialect©rK   s    rL   rQ   zBatchOperationsImpl.dialect]   s   € à�‰×#Ñ#×+Ñ+Ð+rN   c                ó.   — | j                   j                  S rP   )r8   rF   rR   s    rL   rF   zBatchOperationsImpl.impla   s   € à�‰×#Ñ#Ð#rN   c                óŒ   — | j                   dk(  r%| j                  j                  j                  | «      S | j                   dk(  ryy)Nr2   r3   TF)r;   r8   rF   Úrequires_recreate_in_batchrR   s    rL   Ú_should_recreatez$BatchOperationsImpl._should_recreatee   s;   € Ø�=‰=˜FÒ"Ø—?‘?×'Ñ'×BÑBÀ4ÓHÐHØ�]‰]˜hÒ&ØàrN   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)rH   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)rI   )rV   r   rF   Ú
connectionrJ   Úgetattrr8   rH   r   r<   Úmigration_contextÚas_sqlr   ÚCommandErrorrQ   Únamer9   r   r@   r   Úget_bindrA   ÚApplyBatchImplr=   r?   rI   Ú_create)
rK   Úshould_recreateÚopnameÚargÚkwÚfnÚm1Úexisting_tableÚ	reflectedÚ
batch_impls
             rL   ÚflushzBatchOperationsImpl.flushm   sÏ  € Ø×/Ñ/Ó1ˆä" 4§9¡9×#7Ñ#7Õ8Ù"Ø'+§z¤z‘O�F˜C Ü  §¡×!5Ñ!5°vÓ>�BÙ˜�N˜r“Nò (2ð ×)Ò)Ü!°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ð (2ð ×"Ñ" 4§9¡9Ô-÷i 9×8Ñ8ús   °G
HÈHc                ó@   — | j                   j                  d||f«       y )NÚalter_column©rJ   rE   ©rK   rd   re   s      rL   rm   z BatchOperationsImpl.alter_column¦   ó   € Ø�
‰
×Ñ˜>¨3°Ð3Õ4rN   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)rV   r   r]   rJ   rE   ro   s      rL   rt   zBatchOperationsImpl.add_column©   sP   € à˜rÑ! ^°rÑ%9Ø×'Ñ'Ô)Ü×"Ñ"ð:óð ð 	�
‰
×Ñ˜<¨¨bÐ1Õ2rN   c                ó@   — | j                   j                  d||f«       y )NÚdrop_columnrn   ro   s      rL   rv   zBatchOperationsImpl.drop_column³   s   € Ø�
‰
×Ñ˜=¨#¨rÐ2Õ3rN   c                óB   — | j                   j                  d|fi f«       y )NÚadd_constraintrn   ©rK   Úconsts     rL   rx   z"BatchOperationsImpl.add_constraint¶   s   € Ø�
‰
×ÑÐ+¨e¨X°rÐ:Õ;rN   c                óB   — | j                   j                  d|fi f«       y )NÚdrop_constraintrn   ry   s     rL   r|   z#BatchOperationsImpl.drop_constraint¹   s   € Ø�
‰
×ÑÐ,¨u¨h¸Ð;Õ<rN   c                ó@   — | j                   j                  d||f«       y )NÚrename_tablern   ro   s      rL   r~   z BatchOperationsImpl.rename_table¼   rp   rN   c                óB   — | j                   j                  d|f|f«       y )NÚcreate_indexrn   ©rK   Úidxre   s      rL   r€   z BatchOperationsImpl.create_index¿   s   € Ø�
‰
×Ñ˜>¨C¨6°2Ð6Õ7rN   c                óB   — | j                   j                  d|f|f«       y )NÚ
drop_indexrn   r�   s      rL   r„   zBatchOperationsImpl.drop_indexÂ   s   € Ø�
‰
×Ñ˜<¨#¨°Ð4Õ5rN   c                óB   — | j                   j                  d|fi f«       y )NÚcreate_table_commentrn   ©rK   Útables     rL   r†   z(BatchOperationsImpl.create_table_commentÅ   s   € Ø�
‰
×ÑÐ1°E°8¸RÐ@ÕArN   c                óB   — | j                   j                  d|fi f«       y )NÚdrop_table_commentrn   r‡   s     rL   rŠ   z&BatchOperationsImpl.drop_table_commentÈ   s   € Ø�
‰
×ÑÐ/°%°¸2Ð>Õ?rN   c                ó   — t        d«      ‚)Nz Can't create table in batch mode©ÚNotImplementedErrorr‡   s     rL   Úcreate_tablez BatchOperationsImpl.create_tableË   s   € Ü!Ð"DÓEÐErN   c                ó   — t        d«      ‚)NzCan't drop table in batch moderŒ   r‡   s     rL   Ú
drop_tablezBatchOperationsImpl.drop_tableÎ   s   € Ü!Ð"BÓCÐCrN   c                óB   — | j                   j                  d|fi f«       y )NÚcreate_column_commentrn   ©rK   Úcolumns     rL   r’   z)BatchOperationsImpl.create_column_commentÑ   s   € Ø�
‰
×ÑÐ2°V°I¸rÐBÕCrN   N)Úreturnr(   )r•   r.   )r•   Úbool©r•   ÚNone©rz   r,   r•   r˜   )r‚   r   re   r   r•   r˜   )Ú__name__Ú
__module__Ú__qualname__rM   ÚpropertyrQ   rF   rV   rk   rm   rt   rv   rx   r|   r~   r€   r„   r†   rŠ   rŽ   r�   r’   r6   rN   rL   r0   r0   7   s�   „ ò#ðJ ò,ó ð,ð ò$ó ð$óó7.ór5ó3ó4ó<ó=ò5ó8ó6òBò@òFòDóDrN   r0   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 )Nr6   c              3  ó<   K  — | ]  }|j                   d |if–— Œ y­w©ÚexprN)r^   )Ú.0Úcs     rL   Ú	<genexpr>z*ApplyBatchImpl.__init__.<locals>.<genexpr>ë   s!   è ø€ ð ,
Ù+7 aˆQ�V‰V�f˜a�[Ô!©<ùs   ‚)rF   rˆ   r=   r?   Ú_calc_temp_namer^   Útemp_table_nameÚ	new_tablerI   Úadd_col_orderingr   r¤   Úcolumn_transfersrC   Úexisting_orderingri   Ú_grab_table_elements)rK   rF   rˆ   r=   r?   ri   rI   s          rL   rM   zApplyBatchImpl.__init__Ö   s    € ð ˆŒ	ØˆŒ
Ø$ˆŒØ(ˆÔØ#×3Ñ3°E·J±JÓ?ˆÔØ*.ˆŒà"4ˆÔð ð 	Ôô !,ñ ,
Ø+/¯:©:¯<ª<ó,
ó !
ˆÔô "& d×&;Ñ&;Ó!<ˆÔà"ˆŒØ×!Ñ!Õ#rN   c                ó   — d|z  dd S )Nz_alembic_tmp_%sr   é2   r6   )ÚclsÚ	tablenames     rL   r¦   zApplyBatchImpl._calc_temp_nameó   s   € à! IÑ-¨q°Ð4Ð4rN   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!   ri   r   r&   rE   Úkwargsr?   rB   )rK   r   r¤   Úc_copyrz   Úcolr‚   Úks           rL   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×+Ô+ˆEÜ˜eÔ$Øà—’Ü˜u¤oÔ6ØŸ
š
ð
 Ü'¨¯
©
Ô3Ø5:�×&Ñ& u§z¡zÒ2à×(Ñ(×/Ñ/°Õ6ð ,ð" �~Š~Ø—z‘z—|”|�Ø Ÿ_œ_�EØ—z“zØBEÀuÀ˜×2Ñ2°5·:±:Ò>ñ -ð $ð
 —:‘:×%Ô%ˆCØ%(ˆD�L‰L˜Ÿ™Ò"ð &ð —‘×"Ô"ˆAØ×Ñ×(Ñ(¨¨D¯J©J×,=Ñ,=¸aÑ,@ÕAñ #rN   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rP   )r²   ©r£   rÀ   rK   s     €rL   r¥   zMApplyBatchImpl._adjust_self_columns_for_partial_reordering.<locals>.<genexpr>>  s   øè ø€ Ð"IÁ¸A A t§|¡|°A¡Ô#7Áùó   ƒc              3  ó@   •K  — | ]  }|‰j                   |   f–— Œ y ­wrP   )rª   rÅ   s     €rL   r¥   zMApplyBatchImpl._adjust_self_columns_for_partial_reordering.<locals>.<genexpr>?  s%   øè ø€ ð ,
Ù3:¨aˆQ�×%Ñ% aÑ(Ô)±7ùrÆ   )ÚsetrC   r²   rI   Ú	enumerateÚaddr«   Úupdater©   r   Úsortr   rª   )	rK   ÚpairsÚ
col_by_idxÚtuple_r´   ÚelemÚpÚ
pairs_listÚsorted_s	   `        rL   Ú+_adjust_self_columns_for_partial_reorderingz:ApplyBatchImpl._adjust_self_columns_for_partial_reordering%  s)  ø€ Ü“ˆä˜$Ÿ,™,Ó'ˆ
à×"Ò"Ø×1Ô1�Ü#,¨VÖ#4‘K�E˜4Ø˜q“yØŸ	™	 6¨%°!©)Ñ#4°dÐ";Õ<ñ $5ñ 2ô
  )¨×)?Ñ)?Ö@‘��tØ˜1“9Ø—I‘I˜z¨%°!©)Ñ4°dÐ;Õ<ð  Að 	�‰�T×*Ñ*Ô+ñ
 "'Ó7¡˜A¨!¨A©$°!°A±$«,’a ˆ
Ð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   rI   r©   rÔ   r   r§   rC   r²   Úvaluesr=   r?   r·   r¸   r   ÚkeyÚissubsetrª   rµ   r   r   r   Ú_setup_referentÚappend_constraint)rK   Úmr   r¨   rz   r¤   Úconst_columnsÚ
const_copys           rL   Ú_transfer_elements_to_new_tablez.ApplyBatchImpl._transfer_elements_to_new_tableC  s�  € Ø�~‰~Ð%ÐGÐ'GÓGÐ%ä‹JˆØ—‘×"Ñ"ˆà×"Ò" d×&;Ò&;Ø×<Ñ<Ô>ä%*Ø× Ñ Øð&
ô �4—<‘<×&Ñ&Ó(Ó)¬D°·±Ó,AÑAò&
ð ð	&
ð
 ×Ññ&
ð 	
ˆŒ˜ô �×'Ñ'×.Ñ.Ó0Ó1°D×4LÑ4LÔLð ô -DÀEÔ,JÓKÑ,J q˜QŸU›UÐ,JˆMÐKà ×)Ñ)¨$×*?Ñ*?Ô@Øô ˜%Ô!5Ô6Ü*¨5Ô1ô "'Ø f¸4¿:¹:ô"‘Jô "' u°VÔ!<‘Jä"Ø &°yô�
ô ˜%Ô!5Ô6Ø×$Ñ$ Q¨Ô.Ø×'Ñ'¨
Õ3ñ= MùâKs   Ä 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½   rE   r»   r²   Úkeysr¤   )rK   r‚   Úidx_existingr¢   Úidx_copyr´   r¿   s          rL   Ú _gather_indexes_from_both_tablesz/ApplyBatchImpl._gather_indexes_from_both_tablesu  sO  € Ø�~‰~Ð)Ð)Ð)Øˆà ŸL™L×/Ñ/Ö1ˆLð ×(Ò(ØäØ×!Ñ!ð	ô
 !=¸\Ô Jóá J˜ô % T¨4¯>©>Õ:Ø Jññ	à#×*Ñ*ð
 —~‘~ñ	ð ×%Ñ%ñ	ˆHð �J‰J�xÕ ð! 2ð$ ×%Ñ%×,Ñ,Ö.ˆEØ�J‰JÜØ—J‘Jðð 8=·}±}×7IÑ7IÔ7KÓLÑ7K°�d—n‘n×&Ñ& sÓ+Ð7KÑ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 rP   )Ú_get_colspec)rÐ   s    rL   Úcolspecz/ApplyBatchImpl._setup_referent.<locals>.colspec¤  s   € Ø×(Ñ(Ó*Ð*rN   éÿÿÿÿr   )rÐ   r   )Úelementsrì   ÚsplitÚlenr§   Ú
sql_schemaÚ_get_table_keyÚtablesr¤   Úappend_columnr   ÚsqltypesÚNULLTYPEr   )rK   ÚmetadataÚ
constraintÚspecÚpartsÚtnameÚreferent_schemarØ   rí   ÚtrÐ   ÚcolnameÚns                rL   rÚ   zApplyBatchImpl._setup_referent–  si  € ð ×"Ñ" 1Ñ%×2Ñ2Ó4ˆØ—
‘
˜3“ˆØ�b‘	ˆÜˆu‹:˜Š?Ø# A™h‰Oà"ˆOà�D×(Ñ(Ó(Ü×+Ñ+¨E°?ÓCˆCó+ð �h—o‘oÑ%Ø—O‘O CÑ(�Ø&×/Ô/�DÙ% d›m×1Ñ1°#Ó6°rÑ:�GØ a§c¡cÒ)ØŸ™¬¨w¼×8IÑ8IÓ(JÕKñ 0ô
 ØØðð )3×(;Ò(;ó"á(; ñ $ D›M×/Ñ/°Ó4°RÓ8Ø(;ò"óñ"˜Aô ˜q¤(×"3Ñ"3Õ4ð"ñòð +óð )ùò$"ùòs   Ä!E
Ä1!E"
c                óì  — | j                  «        |j                  | | j                  «       | j                  €J ‚|j	                  | j                  «       	 |j                  t        | 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¡   r6   )r£   rÀ   Útransfers      rL   r¥   z)ApplyBatchImpl._create.<locals>.<genexpr>Å  s$   è ø€ ð á+H™K˜A˜xØ! XÑ-ô Ù+Hùs   ‚r¢   r   )rß   Úprep_table_for_batchrˆ   r¨   rŽ   Ú_execr    Úfrom_selectrC   rª   Úitemsr$   r×   r�   r~   r§   r^   r   ræ   r€   )rK   Úop_implr  r‚   s       rL   ra   zApplyBatchImpl._create»  s¢  € Ø×,Ñ,Ô.à×$Ñ$ T¨4¯:©:Ô6Ø�~‰~Ð)Ð)Ð)Ø×Ñ˜TŸ^™^Ô,ð	;Ø�M‰MÜ˜tŸ~™~Ó.×:Ñ:Üñ à+/×+@Ñ+@×+FÑ+FÔ+Hóó ô
 ð -1×,AÑ,A×,HÑ,HÔ,Jóá,J Ø%¨Ñ1ð % VÓ,Ø,Jñðóôð  ×Ñ˜tŸz™zÔ*ð
 × Ñ Ø×$Ñ$ d§j¡j§o¡o¸d¿j¹j×>OÑ>Oð !ô ð #'§*¡*§/¡/ˆD�N‰NÔð;Ø×@Ñ@ÖB�CØ×(Ñ(¨Õ-ñ Cð '+×&:Ñ&:�—‘Õ#ùò+øð* '+×&:Ñ&:�—‘Õ#ûð	Ø×Ñ˜tŸ~™~Ô.Øús+   ÁA3G Ã
F0Ã'G Å-&F5 Æ0G Æ5GÇG3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^   rD   r#   rF   rQ   rµ   r   r·   Úpoprö   Úto_instancer¶   Ú_create_eventsÚcreate_constraintÚcast_for_batch_migrateÚnullableÚserver_defaultrò   ÚDefaultClauseÚ_set_parentr–   ÚautoincrementÚcomment)rK   r9   Úcolumn_namer  r  r^   Útype_r  r  re   ÚexistingÚexisting_transferr
  Úresolved_existing_types                 rL   rm   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Õð  rN   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É   rI   rñ   r>   r©   )rK   rÿ   rr   rs   Ú
index_colsÚir^   Úcol_indexesr‚   ÚaÚbs              rL   Ú"_setup_dependencies_for_add_columnz1ApplyBatchImpl._setup_dependencies_for_add_column-  ss  € ð ×+Ñ+ˆ
Ü.7¸
Ô.CÔDÑ.C¡7 1 d�t˜Q‘wÐ.CˆÑDà×&Ò&ÙÙ$Ø# {Ñ2à)¨,Ñ7¸!Ñ;˜Ø¤ Z£Ò0Ø,6°s©O™Mô )-¨T×-BÑ-BÓ(CØ(ñ)˜ñ Ù#Ø$¨Ñ3à)¨-Ñ8¸1Ñ<˜Ø !š8Ø+5°c©?™Lð .2×-BÒ-Bô(Ù-B¡T Q¨˜A˜q™DÐ-Bò(à'ñ()˜ñ Ø×!Ò! 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ª   )rK   r9   r”   rr   rs   re   s         rL   rt   zApplyBatchImpl.add_column]  sV   € ð 	×/Ñ/Ø�K‰K˜¨ô	
ô
 %*¨&¸¿¹×9JÑ9JÔ$Kˆ�‰�V—[‘[Ñ!Ø-/ˆ×Ñ˜fŸk™kÒ*rN   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  )rK   r9   r”   re   s       rL   rv   zApplyBatchImpl.drop_columnm  sÕ   € ð �;‰;˜$Ÿ*™*×0Ñ0×8Ñ8Ñ8Ü*Ø—
‘
×&Ñ&×.Ñ.°ôð �L‰L˜Ÿ™Ð%Ø×!Ñ! &§+¡+Ð.Ø×Ñ×%Ñ% f§k¡kÔ2ð ˜rÑ!Ü˜2˜oÑ.Ô0AÔBØ�?Ñ#×(Ò(à×"Ñ"×&Ñ&Ø�?Ñ#×(Ñ(¨$õð )ð Cð "rN   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.

        Nr6   r“   s     rL   r’   z$ApplyBatchImpl.create_column_comment…  ó   � rN   c                 ó   — y)z‹the batch table creation function will issue create_table_comment
        on the real "impl" as part of the create table process.

        Nr6   r‡   s     rL   r†   z#ApplyBatchImpl.create_table_comment�  r'  rN   c                 ó   — y)z‰the batch table creation function will issue drop_table_comment
        on the real "impl" as part of the create table process.

        Nr6   r‡   s     rL   rŠ   z!ApplyBatchImpl.drop_table_comment•  r'  rN   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^   r:   rµ   rò   r   rˆ   r$  r¸   r%  r&   r·   rE   ry   s     rL   rx   zApplyBatchImpl.add_constraint›  s”   € Ü& u§z¡zÔ2ÜÐ:Ó;Ð;Ü�eœZ×<Ñ<Ô=Ø�z‰z×%Ñ%¨×)AÑ)AÑAØ×(Ñ(×/Ñ/°·
±
×0FÑ0FÔGä! %§*¡*Ô-Ø16ˆD×"Ñ" 5§:¡:Ò.à×$Ñ$×+Ñ+¨EÕ2rN   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^   r:   r¹   r  rC   r²   r¼   r%  r&   r·   r¸   rµ   r   r$  ÚKeyErrorr!   )rK   rz   r¿   Ú	col_consts       rL   r|   zApplyBatchImpl.drop_constraint§  sR  € Ø�zŠzÜÐ:Ó;Ð;ð	?Ø�z‰z˜T×7Ñ7Ñ7Ø!×7Ñ7×;Ñ;¸E¿J¹JÓG‘
��Uä!% d§l¡l°3·8±8Ñ&<×&HÑ&HÖ!I�IØ —~‘~¨¯©Ó3ØŸ™ S§X¡XÑ.×:Ñ:×AÑAÀ)ÕLñ "Jô (¨¯
©
Ô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 rP   )r»   r^   ©rK   r‚   s     rL   r€   zApplyBatchImpl.create_indexÃ  s   € Ø%(ˆ×Ñ˜Ÿ™Ò"rN   c                ó~   — 	 | j                   |j                  = y # t        $ r t        d|j                  z  «      ‚w xY w)NzNo such index: '%s')rº   r^   r-  r:   r0  s     rL   r„   zApplyBatchImpl.drop_indexÆ  s;   € ð	?Ø—‘˜SŸX™XÑ&øÜò 	?ÜÐ2°S·X±XÑ=Ó>Ð>ð	?ús   ‚ š"<c                ó   — t        d«      ‚)NÚTODOrŒ   ro   s      rL   r~   zApplyBatchImpl.rename_tableÌ  s   € Ü! &Ó)Ð)rN   )r6   )rF   r.   rˆ   r   r=   Útupler?   zDict[str, Any]ri   r–   rI   r4  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)r9   r5  r  r5  r  zOptional[bool]r  z)Optional[Union[Function[Any], str, bool]]r^   úOptional[str]r  zOptional[TypeEngine]r  z&Optional[Union[bool, Literal['auto']]]r  zUnion[str, Literal[False]]r•   r˜   )rÿ   r5  rr   r6  rs   r6  r•   r˜   )NN)
r9   r5  r”   zColumn[Any]rr   r6  rs   r6  r•   r˜   )r9   r5  r”   z%Union[ColumnClause[Any], Column[Any]]r•   r˜   r™   )r‚   r   r•   r˜   )rš   r›   rœ   rM   Úclassmethodr¦   r¬   rÔ   rß   ræ   rÚ   ra   rm   r!  rt   rv   r’   r†   rŠ   rx   r|   r€   r„   r~   r6   rN   rL   r`   r`   Õ   sÔ  „ ð %'ð$àð$ð ð$ð ð	$ð
 %ð$ð ð$ð "ð$ð 
ó$ð: ò5ó ð5ó,Bó\
ó<04ódðB#Ø ð#Ø.Bð#à	ó#óJ%;ðV $(ØDIØ"Ø&*Ø@DØ.3ðI'àðI'ð ðI'ð !ð	I'ð
 BðI'ð ðI'ð $ðI'ð >ðI'ð ,ðI'ð 
óI'ðV.Bàð.Bð %ð.Bð $ð	.Bð
 
ó.Bðh (,Ø&*ð0àð0ð ð0ð %ð	0ð
 $ð0ð 
ó0ð àðð 6ðð
 
óò0òòó
3ó?ó8)ó?ó*rN   r`   N):Ú
__future__r   Útypingr   r   r   r   r   r	   r
   Ú
sqlalchemyr   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%   r&   r'   Úsqlalchemy.enginer(   Úsqlalchemy.sql.elementsr)   r*   Úsqlalchemy.sql.functionsr+   r,   Úsqlalchemy.sql.type_apir-   Úddl.implr.   r0   r`   r6   rN   rL   Ú<module>rD     s£   ðõ #å Ý Ý Ý Ý Ý  Ý å &Ý Ý +Ý Ý Ý +Ý +Ý Ý (Ý 3Ý 'Ý 'å Ý 6Ý $Ý /Ý 4Ý 6Ý ;Ý -Ý -Ý =Ý 3Ý &Ý 6Ý 5áÝå)Ý4Ý3Ý1Ý0Ý2å&÷[Dñ [D÷|x*ò x*rN   