Ë
    ýÿæim  ã            	      ó|  — U d dl mZ d dl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
rNd 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/m0Z0 dd&l/m1Z1 dd'l2m3Z3  ed(eeeef   ¬)«      Z4 ejj                  e6«      Z7	 	 	 	 	 	 	 	 	 	 	 	 	 	 d5d*„Z8d+„ Z9 ejt                  ejv                  ejx                  ejz                  ej|                  ejz                  ej|                  d,œ«      Z?d-e@d.<   	 	 	 	 	 	 	 	 d6d/„ZA	 	 	 	 	 	 	 	 d7d0„ZB	 	 	 	 	 	 d8d1„ZC	 	 	 	 	 	 	 	 	 	 	 	 	 	 d9d2„ZD	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 d:d3„ZEd;d4„ZFy)<é    )ÚannotationsN)ÚAny)Úcast)Ú
Collection)ÚDict)ÚMapping)ÚOptional)ÚTYPE_CHECKING)ÚTypeVar)ÚUnion©Úschema)Útext)Ú
expression)ÚForeignKeyConstraint)ÚIndex)ÚUniqueConstrainté   )Ú_InspectorConvé   )Úutil)Úis_index_sig)Ú	is_uq_sig)Úops)ÚPriorityDispatchResult)Úsqla_compat)ÚReflectedForeignKeyConstraint)ÚReflectedIndex)ÚReflectedUniqueConstraint)Úquoted_name)Ú
TextClause)ÚColumn)ÚTable)ÚAutogenContext)Ú_constraint_sig)ÚDefaultImpl)ÚAlterColumnOp)ÚModifyTableOps)ÚPluginÚ_C)Úboundc           
     ó¢  ‡ ‡‡‡‡-‡.‡/‡0‡1— ‰ j                   }‰d u Š/|d u Š0‰ j                  j                  Š.|�I|j                  D �ch c]  }t	        |t
        j                  «      r|’Œ  }}t        |j                  «      }	nt        «       }t        «       }	t        «       }
t        «       }dŠ1d}‰�þt        «       }t        «       }	 t        |«      j                  ‰|¬«      }dŠ1|D �cg c]  }‰ j                  |d   d‰|dœ«      r|‘Œ }}|D ]  }|j                  d«      sŒd}Œ 	 	 t        |«      j!                  ‰|¬«      }|D �cg c]  }‰ j                  |d   d‰|dœ«      r|‘Œ }}‰0rt        «       }
n|D �ch c]  }t#        ‰.|‰«      ’Œ }
}ˆˆ.fd	„|D «       D �ch c]  }|�|’Œ }}|rt%        |
|||	‰ j&                  ‰.«       ‰.j)                  |
|||	«       |D �ch c]  }‰.j+                  |«      ’Œ }}|	D �ch c]  }‰.j+                  |«      ’Œ }}|
D �ch c]  }‰.j-                  |«      ’Œ }}|D �ch c]  }‰.j-                  |«      ’Œ }}|j/                  |«      D �ci c].  }|j0                  r t3        t4        |j7                  ‰ «      «      |“Œ0 }}|D �ci c]  }|j8                  |“Œ }}|D �ci c]  }|j8                  |“Œ }}|j/                  |«      D �ci c].  }t;        j<                  |j8                  «      r|j8                  |“Œ0 }}t        |«      j?                  |«      D �ci c]  }|||   ||   f“Œ }}|D �ci c]  }|j@                  |“Œ }}|D �ci c]  }|j@                  |“Œ }}|D �ci c]9  }t;        jB                  |jD                  ‰ j&                  «      s|j@                  |“Œ; }}	 	 dˆ ˆ/ˆ0ˆˆ1fd
„} 	 	 dˆ ˆ/ˆ0ˆˆ1ˆfd„}!	 	 	 	 	 	 dˆ ˆˆfd„}"tG        t        |«      jI                  |«      «      D ]j  }#||#   }$tK        |$«      r|$j@                  |v rŒ"|#|v r=||#   \  }%Š-tM        ˆ-fd„|D «       «      sŒC|%j@                  |vsŒR |!|%«        |!‰-«       Œc |!|$«       Œl tG        t        |«      j?                  |«      «      D ]Ù  }&||&   }'|&|v r||&   \  }%Š-tO        |'«      r‰-}$n|%}$n||&   }$tQ        |$«      tQ        |'«      k7  r |!|$«        | |'«       ŒR|'jS                  |$«      }(|(jT                  r |"|$|'|(jV                  «       Œ„|(jX                  r<tO        |$«      rdnd})tZ        j]                  d|)|$j8                  |(jV                  «       ŒÌ|(j^                  rŒÙJ ‚ tG        t        |«      jI                  |«      «      D ]  }*||*   }+ | |+«       Œ |D ]  },|,|vsŒ | ||,   «       Œ t`        jb                  S c c}w c c}w # t        $ r Y �ŒÃt        $ r Y �ŒÎw xY wc c}w # t        $ r Y �Œžw xY wc c}w c c}w c c}w c c}w c c}w c c}w c c}w c c}w c c}w c c}w c c}w c c}w c c}w c c}w )NFr   TÚnameÚunique_constraint©Ú
table_nameÚschema_nameÚduplicates_indexÚindexc              3  ó8   •K  — | ]  }t        ‰|‰«      –— Œ y ­w©N)Ú_make_index)Ú.0ÚixÚ
conn_tableÚimpls     €€ú}/Volumes/fast/ai/experiments/voice-extract-mac/.venv/lib/python3.12/site-packages/alembic/autogenerate/compare/constraints.pyÚ	<genexpr>z/_compare_indexes_and_uniques.<locals>.<genexpr>”   s"   øè ø€ ð á0�Bô ˜D " j×1Ù0ùs   ƒc                ó¤  •— t        | «      r˜‰j                  | j                  | j                  ddd «      rn‰j                  j                  t        j                  j                  | j                  «      «       t        j                  d| j                  | j                  «       y y t        | «      r ‰sy ‰s‰ry ‰j                  | j                  | j                  ddd «      rn‰j                  j                  t        j                  j                  | j                  «      «       t        j                  d| j                  | j                  «       y y J ‚)Nr3   FzDetected added index %r on '%s'r.   z+Detected added unique constraint %r on '%s')r   Úrun_object_filtersÚconstr-   r   ÚappendÚCreateIndexOpÚ
from_indexÚlogÚinfoÚcolumn_namesr   ÚAddConstraintOpÚfrom_constraint)ÚobjÚautogen_contextÚis_create_tableÚis_drop_tableÚ
modify_opsÚsupports_unique_constraintss    €€€€€r;   Ú	obj_addedz/_compare_indexes_and_uniques.<locals>.obj_addedû   s  ø€ ô ˜ÔØ×1Ñ1Ø—	‘	˜3Ÿ8™8 W¨e°Tôð —‘×%Ñ%¤c×&7Ñ&7×&BÑ&BÀ3Ç9Á9Ó&MÔNÜ—‘Ø5Ø—H‘HØ×$Ñ$õð	ô �sŒ^Ù.ð Ù¡-àØ×1Ñ1Ø—	‘	˜3Ÿ8™8Ð%8¸%Àôð —‘×%Ñ%Ü×'Ñ'×7Ñ7¸¿	¹	ÓBôô —‘ØAØ—H‘HØ×$Ñ$õðð �5ó    c                ó”  •— t        | «      r�| j                  r‰sy ‰j                  | j                  | j                  ddd «      rd‰j
                  j                  t
        j                  j                  | j                  «      «       t        j                  d| j                  ‰«       y y t        | «      r“‰s‰ry ‰j                  | j                  | j                  ddd «      rd‰j
                  j                  t
        j                  j                  | j                  «      «       t        j                  d| j                  ‰«       y y J ‚)Nr3   TzDetected removed index %r on %rr.   z+Detected removed unique constraint %r on %r)r   Ú	is_uniquer>   r?   r-   r   r@   ÚDropIndexOprB   rC   rD   r   ÚDropConstraintOprG   )rH   rI   rJ   rK   rL   rM   Útnames    €€€€€€r;   Úobj_removedz1_compare_indexes_and_uniques.<locals>.obj_removed!  s  ø€ ô ˜ÔØ�}Š}Ñ%@ð à×1Ñ1Ø—	‘	˜3Ÿ8™8 W¨d°Dôð —‘×%Ñ%¤c§o¡o×&@Ñ&@ÀÇÁÓ&KÔLÜ—‘Ð:¸C¿H¹HÀeÕLð	ô
 �sŒ^Ù¡-ð Ø×1Ñ1Ø—	‘	˜3Ÿ8™8Ð%8¸$Àôð —‘×%Ñ%Ü×(Ñ(×8Ñ8¸¿¹ÓCôô —‘ØAØ—H‘HØõðð �5rO   c                óÔ  •— t        | «      rèt        |«      sJ ‚‰j                  |j                  |j                  dd| j                  «      r§t        j                  d| j                  ‰|«       ‰j                  j                  t        j                  j                  | j                  «      «       ‰j                  j                  t        j                  j                  |j                  «      «       y y t        | «      rèt        |«      sJ ‚‰j                  |j                  |j                  dd| j                  «      r§t        j                  d| j                  ‰|«       ‰j                  j                  t        j                  j                  | j                  «      «       ‰j                  j                  t        j                  j                  |j                  «      «       y y J ‚)Nr3   Fz#Detected changed index %r on %r: %sr.   z/Detected changed unique constraint %r on %r: %s)r   r>   r?   r-   rC   rD   r   r@   rR   rB   rA   r   rS   rG   rF   )ÚoldÚnewÚmsgrI   rL   rT   s      €€€r;   Úobj_changedz1_compare_indexes_and_uniques.<locals>.obj_changedF  sk  ø€ ô ˜ÔÜ Ô$Ð$Ð$à×1Ñ1Ø—	‘	˜3Ÿ8™8 W¨e°S·Y±Yôô —‘Ø9¸3¿8¹8ÀUÈCôð —‘×%Ñ%¤c§o¡o×&@Ñ&@ÀÇÁÓ&KÔLØ—‘×%Ñ%¤c×&7Ñ&7×&BÑ&BÀ3Ç9Á9Ó&MÕNðô �sŒ^Ü˜S”>Ð!�>à×1Ñ1Ø—	‘	˜3Ÿ8™8Ð%8¸%ÀÇÁôô —‘ØEØ—H‘HØØô	ð —‘×%Ñ%Ü×(Ñ(×8Ñ8¸¿¹ÓCôð —‘×%Ñ%Ü×'Ñ'×7Ñ7¸¿	¹	ÓBõðð  �5rO   c              3  óP   •K  — | ]  }‰j                   |j                   k7  –— Œ y ­wr5   )Úunnamed)r7   Úmeta_idxÚconn_idxs     €r;   r<   z/_compare_indexes_and_uniques.<locals>.<genexpr>{  s*   øè ø€ ð á$8˜ð ×$Ñ$¨×(8Ñ(8Õ8Ù$8ùs   ƒ#&zunique constraintz5Cannot compare %s %r, assuming equal and skipping. %s)rH   úN_constraint_sig[sa_schema.UniqueConstraint] | _constraint_sig[sa_schema.Index])rW   r_   rX   r_   rY   Ústr)2Ú	inspectorÚmigration_contextr:   ÚconstraintsÚ
isinstanceÚ	sa_schemar   ÚsetÚindexesÚ	frozensetr   Úget_unique_constraintsÚrun_name_filtersÚgetÚNotImplementedErrorÚ	TypeErrorÚget_indexesÚ_make_unique_constraintÚ_correct_for_uq_duplicates_uixÚdialectÚcorrect_for_autogen_constraintsÚ_create_metadata_constraint_sigÚ _create_reflected_constraint_sigÚunionÚis_namedr   r`   Úmd_name_to_sql_namer-   r   Úconstraint_name_stringÚintersectionr\   Ú_constraint_is_namedr?   ÚsortedÚ
differencer   Úallr   ÚtypeÚcompare_to_reflectedÚis_differentÚmessageÚis_skiprC   rD   Úis_equalr   ÚCONTINUE)2rI   rL   r   rT   r9   Úmetadata_tablera   ÚuqÚmetadata_unique_constraintsÚmetadata_indexesÚconn_uniquesÚconn_indexesÚ+unique_constraints_duplicate_unique_indexesÚconn_uniques_reflectedÚconn_indexes_reflectedr8   Úuq_defr3   Úmetadata_unique_constraints_sigÚmetadata_indexes_sigÚconn_unique_constraintsÚconn_indexes_sigÚcÚmetadata_namesÚconn_uniques_by_nameÚconn_indexes_by_nameÚ
conn_namesr-   Údoubled_constraintsÚconn_uniques_by_sigÚmetadata_uniques_by_sigÚunnamed_metadata_uniquesrN   rU   rZ   Úremoved_nameÚconn_objÚconn_uqÚexisting_nameÚmetadata_objÚ
comparisonÚthingÚ
added_namerH   Úuq_sigr^   r:   rJ   rK   rM   s2   `` ``                                        @@@@@r;   Ú_compare_indexes_and_uniquesr¥   5   sª  ÿø€ ð  ×)Ñ)€IØ  DÐ(€OØ" dÐ*€MØ×,Ñ,×1Ñ1€Dð Ð!ð %×0Ò0ó'
á0�Ü˜"œi×8Ñ8Ô9ò Ø0ð 	$ð '
ô
 ˜~×5Ñ5Ó6Ñä&)£eÐ#Ü›5Ðä1:³€LÜ&/£k€Là"'Ðà27Ð/àÐä‹Kð 	ô >G»[Ðð	GÜ%3Øó&ç$Ñ$ U°6Ð$Ó:ð #ð +/Ð'ñ 1ó&á0�BØ"×3Ñ3Ø�v‘JØ'Ø#(¸Ñ@ôò Ø0ð #ð &ó -�Ø—6‘6Ð,Õ-ØBFÑ?ñ -ð	Ü%3°IÓ%>×%JÑ%JØ˜fð &Kó &Ð"ñ 1ó&á0�BØ"×3Ñ3Ø�v‘JØØ#(¸Ñ@ôò Ø0ð #ð &ñ ä›5‰Lñ 5óá4�Fô (¨¨f°jÕAØ4ð ð ôá0ôó
ñ�ð Ð ò ðð 	ð 
ñ 3Ü&ØØØ'ØØ×#Ñ#Øô	
ð 	×(Ñ(ØØØ#Øô	ñ .ó'á-ˆBð 	×,Ñ,¨RÕ0Ø-ð $ð 'ñ <LóÙ;K°Rˆ×,Ñ,¨RÕ0Ð;Kð ð ñ
 =IóÙ<H°bˆ×-Ñ-¨bÕ1¸Lð ð ñ
 =IóÙ<H°bˆ×-Ñ-¨bÕ1¸Lð ð ð 1×6Ñ6Ð7KÔLóáLˆAØ�:Š:ô 	ŒS�!×'Ñ'¨Ó8Ó9¸1Ñ<ØLð ð ñ 0GÓGÑ/F¨!˜AŸF™F A™IÐ/FÐÐGÙ/?Ó@Ñ/?¨!˜AŸF™F A™IÐ/?ÐÐ@ð )×.Ñ.Ð/?Ô@óá@ˆAÜ×-Ñ-¨a¯f©fÔ5ð 	
�‰�‰	Ø@ð ð ô Ð,Ó-×:Ñ:Ø ô
óñ
ˆDð 	Ð# DÑ)Ð+?ÀÑ+EÐFÑFð
ð ð ñ 5LÓLÑ4K¨b˜2Ÿ:™: r™>Ð4KÐÐLá!@óÙ!@˜2ˆ�
‰
�B‰Ð!@ð ð ñ
 2ó á1ˆBÜ×/Ñ/Ø�H‰H�o×-Ñ-ô
ð 	�
‰
�B‰Ø1ð ð  ð $ð/÷$ñ $ðL#ð/÷#ò #ðJ)ð/ð)ð/ð)ð ÷)ôV œs :›×9Ñ9¸.ÓIÖJˆØ˜lÑ+ˆä�hÔØ× Ñ Ð$<Ñ<àØÐ0Ñ0Ø 3°LÑ AÑˆG�Xäó á$8óõ ð —O‘OÐ+BÒBá˜GÔ$Ù˜HÕ%á˜Õ!ð' Kô*  ¤ NÓ 3× @Ñ @ÀÓ LÖMˆØ% mÑ4ˆàÐ/Ñ/Ø 3°MÑ BÑˆG�XÜ˜LÔ)Ø#‘à"‘à! -Ñ0ˆHä�‹>œT ,Ó/Ò/Ù˜Ô!Ù�lÕ#ð &×:Ñ:¸8ÓDˆJà×&Ò&á˜H l°J×4FÑ4FÕGØ×#Ò#ô  ,¨HÔ5‘GÐ;Nð ô —‘ØKØØ—M‘MØ×&Ñ&õ	ð "×*Ó*Ð*Ð*ðS NôV œS Ó0×;Ñ;¸JÓGÖHˆ
Ø˜ZÑ(ˆÙ�#�ð Ió +ˆØÐ,Ò,ÙÐ.¨vÑ6Õ7ð +ô "×*Ñ*Ð*ùòk'
ùòL&øô #ò 	ÚÜò 	ò ð		üò2&øô #ò 	Úð	üò&ùò

ùòH'ùò
ùòùòùò
ùò HùÚ@ùòùòùò Mùòùò s�   Á#WÃW Ã$"WÄ%W; Å"W6Å:XÆXÇXÇ=XÈXÈ9X$É&3X)ÊX.Ê9X3Ë"3X8Ì3X=ÍYÍ%YÍ?>Y×	W3×'W3×2W3×;	XØXc                óÌ  — |D �cg c]  }t        j                  ||«      |f‘Œ }}|D ��ch c]
  \  }}|€Œ	|’Œ }	}}|D ��ch c]"  \  }}|€|j                  |«      j                  ’Œ$ }
}}|D �ch c]$  }|j                  rt        j                  ||«      ’Œ& }}|D �ci c]  }|j                  sŒ|j
                  |“Œ }}| D �ci c]  }|j                  d   r|j
                  |“Œ  }}|D ]U  }||	vr6|j                  ||   «      j                  |
vsŒ(| j                  ||   «       Œ=||vsŒB|j                  ||   «       ŒW y c c}w c c}}w c c}}w c c}w c c}w c c}w )Nr2   )	r   Ú_get_constraint_final_namers   r\   Úuniquer-   rD   rt   Údiscard)r‘   rŠ   r‡   rˆ   rq   r:   ÚconsÚmetadata_cons_namesr-   Úmetadata_uq_namesÚunnamed_metadata_uqsÚmetadata_ix_namesÚconn_ix_namesÚuqs_dupe_indexesÚoverlaps                  r;   rp   rp   ¼  s´  € ñ* 0óá/ˆDô 
×	/Ñ	/°°gÓ	>ÀÒEØ/ð ð ñ  3ôÙ2‘��t°dÑ6FŠÐ2ð ñ ñ .ôá-‰JˆD�$Øˆ<ð 	×,Ñ,¨TÓ2×:Ó:Ø-ð ñ ñ %óá$ˆDØ�;Š;ô 	×.Ñ.¨t°WÕ=Ø$ð ð ñ 2>ÓM±¨ÀÇÃ�T—Y‘Y ‘_°€MÐMñ ,óá+ˆDØ�9‰9Ð'Ò(ð 	�	‰	�4‰Ø+ð ð ó $ˆØÐ+Ñ+à×5Ñ5Ø$ WÑ-óç‘'Ø+ò,ð
 (×/Ñ/Ð0@ÀÑ0IÕJØÐ-Ò-Ø× Ñ  ¨wÑ!7Õ8ñ $ùò?ùó
ùóùòùò Nùòs-   …E«
E¶EÁ'EÁ0)EÂEÂ1EÃ#E!)ÚascÚdescÚnulls_firstÚ
nulls_lastÚ
nullsfirstÚ	nullslastzMapping[str, Any]Ú_IndexColumnSortingOpsc                ó²  — g }|j                  d«      }t        |d   «      D ]j  \  }}|€d|v sJ ‚|d   |   }t        |«      }n|}|j                  |   }|r%||v r!||   D ]  }	|	t        v sŒt	        |	   |«      }Œ |j                  |«       Œl t        j                  |d   g|¢­|d   |dœ| j                  |d«      ¤Ž}
d|v r|d   |
j                  d<   |
S )	NÚcolumn_sortingrE   Úexpressionsr-   r¨   )r¨   Ú_tabler3   Úduplicates_constraint)
rk   Ú	enumerater   r“   r¸   r@   re   r   Ú adjust_reflected_dialect_optionsrD   )r:   Úparamsr9   ÚexprsÚsortingÚnumÚcol_namer-   ÚitemÚoperatorr8   s              r;   r6   r6     s  € ð 35€EØ�j‰jÐ)Ó*€Gä" 6¨.Ñ#9Ö:‰ˆˆXàÐØ  FÑ*Ð*Ð*Ø˜-Ñ(¨Ñ-ˆDÜ˜“:‰DàˆDØ—<‘< Ñ)ˆDÙ�t˜w‘Ø# DœM�ØÔ5Ò5Ü1°(Ñ;¸DÓA‘Dð *ð 	�‰�TÕð ;ô 
�‰Øˆv‰ð
à	ñ
ð �hÑØñ	
ð
 ×
/Ñ
/°¸Ó
@ñ
€Bð  &Ñ(Ø+1Ð2IÑ+Jˆ�‰Ð'Ñ(Ø€IrO   c                óÌ   — t        j                  |d   D �cg c]  }|j                  |   ‘Œ c}d|d   i| j                  |d«      ¤Ž}d|v r|d   |j                  d<   |S c c}w )NrE   r-   r.   r2   )re   r   r“   r¿   rD   )r:   rÀ   r9   Úcnamer†   s        r;   ro   ro   '  s„   € ô 
×	#Ñ	#Ø+1°.Ò+AÓ	BÑ+A %ˆ*�,‰,�uÓ
Ð+AÑ	Bð
à�F‰^ð
ð ×
/Ñ
/°Ð8KÓ
Lñ
€Bð
 ˜VÑ#Ø&,Ð-?Ñ&@ˆ�‰Ð"Ñ#à€Iùò 
Cs   —A!c                ó~  — | d   }| d   r
| d   ›d|›�}| j                  di «      }t        j                  | d   D �cg c]  }|j                  |   ‘Œ c}| d   D �cg c]	  }|›d|›�‘Œ c}|j                  d«      |j                  d«      |j                  d	«      |j                  d
«      | d   ¬«      }| d   }| d   }t	        j
                  ||«      }	|	|j                  vrˆt        j                  ||j                  gt        | d   | d   «      D �
�cg c]2  \  }
}t        j                  ||j                  |
   j                  «      ‘Œ4 c}}
¢­|�|nt        j                  ddidœŽ n°|j                  j                  |	   j                  j                  d«      r~|j                  j                  |	   }t        | d   | d   «      D ]P  \  }
}||j                  vsŒ|j                  t        j                  ||j                  |
   j                  «      «       ŒR |j                  |«       |S c c}w c c}w c c}}
w )NÚreferred_tableÚreferred_schemaÚ.ÚoptionsÚconstrained_columnsÚreferred_columnsÚonupdateÚondeleteÚ
deferrableÚ	initiallyr-   )rÐ   rÑ   rÒ   rÓ   r-   Úalembic_placeholderT)r   rD   )rk   re   r   r“   r   Ú_get_table_keyÚmetadatar#   Úzipr"   r~   ÚBLANK_SCHEMAÚtablesrD   Úappend_columnÚappend_constraint)rÀ   r9   rT   rÍ   rÈ   Únr?   rË   rÊ   Úremote_table_keyÚlocalÚremoteÚplaceholder_tables                r;   Ú_make_foreign_keyrá   5  sc  € ð Ð#Ñ$€EØÐÒ Ø!Ð"3Ó4±eÐ<ˆà�j‰j˜ BÓ'€Gä×*Ñ*Ø*0Ð1FÒ*GÓHÑ*G ˆ�‰�eÓ	Ð*GÑHØ'-Ð.@Ò'AÓBÑ'A !’E™1Ò	Ð'AÑBØ—‘˜ZÓ(Ø—‘˜ZÓ(Ø—;‘;˜|Ó,Ø—+‘+˜kÓ*Ø�F‰^ô€Eð Ð.Ñ/€OØÐ,Ñ-€Nä"×1Ñ1Ø˜óÐð ˜z×2Ñ2Ñ2ä�‰ØØ×Ñð	
ô &)ØÐ0Ñ1°6Ð:LÑ3Mô&ôñ&‘M�E˜6ô × Ñ  ¨¯©°eÑ)<×)AÑ)AÕBð&òñ	
ð
 #Ð.ñ  ä×+Ñ+ð (¨Ð.ô	
ð  
×	Ñ	×	#Ñ	#Ð$4Ñ	5×	:Ñ	:×	>Ñ	>Øô
ð '×/Ñ/×6Ñ6Ð7GÑHÐÜ ØÐ(Ñ)¨6Ð2DÑ+Eö
‰MˆE�6ð Ð.×0Ñ0Ò0Ø!×/Ñ/Ü×$Ñ$ V¨Z¯\©\¸%Ñ-@×-EÑ-EÓFõð	
ð × Ñ  Ô'Ø€Lùòa 	IùÚBùó0s   ½H/ÁH4
Ä7H9c           
     ó  ‡ ‡‡
— |�|€t         j                  S ‰ j                  }|j                  D �ch c]  }t	        |t
        j                  «      r|’Œ  }}t        |«      j                  ||¬«      D �cg c]  }‰ j                  |d   d||dœ«      r|‘Œ }	}|	D �
ch c]  }
t        |
|«      ’Œ }}
‰ j                  j                  }‰ j                  j                  j                  ||«       |D �ch c]  }|j                  |«      ’Œ }}|D �ch c]  }|j                  |«      ’Œ }}|	r<d|	d   v r5|D �ci c]  }|j                   |“Œ }}|D �ci c]  }|j                   |“Œ }}n4|D �ci c]  }|j"                  |“Œ }}|D �ci c]  }|j"                  |“Œ }}|D �ci c]  }|j$                  €Œ|j$                  |“Œ }}|D �ci c]  }|j$                  €Œ|j$                  |“Œ }}ˆ ˆ
ˆfd„}ˆ ˆfd„}t'        |«      j)                  |«      D ]J  }||   Š
||vsŒ‰
j$                  r'‰
j$                  |v r|‰
j$                     j*                  nd } |‰
|«       ŒL t'        |«      j)                  |«      D ]J  }||   Š
||vsŒ‰
j$                  r'‰
j$                  |v r|‰
j$                     j*                  nd } |‰
|«       ŒL t         j                  S c c}w c c}w c c}
w c c}w c c}w c c}w c c}w c c}w c c}w c c}w c c}w )	Nr   r-   Úforeign_key_constraintr/   rÍ   r   c                ó¾  •— ‰j                  | j                  | j                  dd|«      r³‰j                  j	                  t        j
                  j                  ‰j                  «      «       t        j                  ddj                  | j                  «      dj                  | j                  «      | j                  rd| j                  z  nd| j                  «       y y )Nrã   Fz1Detected added foreign key (%s)(%s) on table %s%sú, ú%s.Ú )r>   r?   r-   r   r@   ÚCreateForeignKeyOprG   rC   rD   ÚjoinÚsource_columnsÚtarget_columnsÚsource_schemaÚsource_table)rH   Ú
compare_torI   r?   Úmodify_table_opss     €€€r;   Ú_add_fkz&_compare_foreign_keys.<locals>._add_fk¸  s®   ø€ Ø×-Ñ-Ø�I‰I�s—x‘xÐ!9¸5À*ô
ð × Ñ ×'Ñ'Ü×&Ñ&×6Ñ6°u·{±{ÓCôô �H‰HØCØ—	‘	˜#×,Ñ,Ó-Ø—	‘	˜#×,Ñ,Ó-Ø-0×->Ò->�˜×)Ñ)Ò)ÀBØ× Ñ õð
rO   c                ó¾  •— ‰j                  | j                  | j                  dd|«      r³‰j                  j	                  t        j
                  j                  | j                  «      «       t        j                  ddj                  | j                  «      dj                  | j                  «      | j                  rd| j                  z  nd| j                  «       y y )Nrã   Tz3Detected removed foreign key (%s)(%s) on table %s%srå   ræ   rç   )r>   r?   r-   r   r@   rS   rG   rC   rD   ré   rê   rë   rì   rí   )rH   rî   rI   rï   s     €€r;   Ú
_remove_fkz)_compare_foreign_keys.<locals>._remove_fkÈ  s®   ø€ Ø×-Ñ-Ø�I‰I�s—x‘xÐ!9¸4Àô
ð × Ñ ×'Ñ'Ü×$Ñ$×4Ñ4°S·Y±YÓ?ôô �H‰HØEØ—	‘	˜#×,Ñ,Ó-Ø—	‘	˜#×,Ñ,Ó-Ø-0×->Ò->�˜×)Ñ)Ò)ÀBØ× Ñ õð
rO   )r   r„   ra   rc   rd   re   r   r   Úget_foreign_keysrj   rá   rb   r:   Úcorrect_for_autogen_foreignkeysrs   rt   r\   Úunnamed_no_optionsr-   rf   r|   r?   )rI   rï   r   rT   r9   r…   ra   ÚfkÚmetadata_fksÚconn_fks_listr?   Úconn_fksr:   Úmetadata_fks_sigÚconn_fks_sigr“   Úconn_fks_by_sigÚmetadata_fks_by_sigÚmetadata_fks_by_nameÚconn_fks_by_namerð   rò   Úremoved_sigrî   Ú	added_sigs   ``        `              r;   Ú_compare_foreign_keysr  r  s‰  ú€ ð Ð˜^Ð3Ü%×.Ñ.Ð.à×)Ñ)€Ið !×,Ò,óá,ˆBÜ�bœ)×8Ñ8Ô9ò 	Ø,ð ð ô ! Ó+×<Ñ<Ø˜&ð =ô 
ó
ñ
ˆBð ×+Ñ+Øˆv‰JØ$Ø °Ñ8ô
ò	 	ð
ð ð 
ñ ;HóÙ:G°Ô˜% Õ,¸-ð ð ð ×,Ñ,×1Ñ1€Dð ×%Ñ%×*Ñ*×JÑJØ�,ôñ
 <HóÙ;G°Rˆ×,Ñ,¨RÕ0¸<ð ð ñ
 =EóÙ<D°bˆ×-Ñ-¨bÕ1¸Hð ð ñ ˜ m°AÑ&6Ñ6Ù1=Ó>±¨A˜1Ÿ9™9 a™<°ˆÐ>Ù5EÓFÑ5E°˜qŸy™y¨!™|Ð5EÐÑFñ =IÓI¹L°q˜1×/Ñ/°Ñ2¸LˆÐIá-=ó
Ù-=¨ˆA× Ñ  !Ñ#Ð-=ð 	ð 
ñ
 ,óÙ+�a¨q¯v©vÑ/Aˆ�‰�‰	Ð+ð ð ñ ,8ÓN©< a¸1¿6¹6Ñ;M˜Ÿ™ ™	¨<ÐÐNöõ ô$ ˜?Ó+×6Ñ6Ð7JÖKˆØ Ñ,ˆØÐ1Ò1ð —:’: %§*¡*Ð0DÑ"Dð % U§Z¡ZÑ0×6Ò6àð ñ
 �u˜jÕ)ð Lô Ð,Ó-×8Ñ8¸ÖIˆ	Ø# IÑ.ˆØ˜OÒ+ð —:’: %§*¡*Ð0@Ñ"@ð ! §¡Ñ,×2Ò2àð ñ
 �E˜:Õ&ð Jô "×*Ñ*Ð*ùò[ùò
ùòùòùòùò ?ùÚFùò Jùò
ùòùò OsM   ²#KÁ5"KÂKÃ2K$ÄK)Ä7K.ÅK3Å,K8ÆK=Æ LÆ2LÇLÇLc                óî  — |j                   }|j                   }||_        ||urÃt        j                  |j                  |j                  «      rt        j
                  |«      s*t        j                  |j                  |j                  «      r't        j                  d||«       t        j                  S ||_	        t        j                  d|rdnd||«       t        j                  S t        j                  S )Nz3Ignoring nullable change on identity column '%s.%s'zDetected %s on column '%s.%s'ÚNULLzNOT NULL)ÚnullableÚexisting_nullabler   Ú_server_default_is_computedÚserver_defaultÚ_nullability_might_be_unsetÚ_server_default_is_identityrC   rD   Úmodify_nullabler   ÚSTOPr„   )	rI   Úalter_column_opr   rT   rÈ   Úconn_colÚmetadata_colÚmetadata_col_nullableÚconn_col_nullables	            r;   Ú_compare_nullabler  ñ  sá   € ð )×1Ñ1ÐØ ×)Ñ)ÐØ(9€OÔ%àÐ 5Ñ5ä×3Ñ3Ø×+Ñ+¨X×-DÑ-Dôô ×7Ñ7¸ÔEä×7Ñ7Ø ×/Ñ/°×1HÑ1Hôô
 �H‰HØEØØôô  "×*Ñ*Ð*ð /DˆOÔ+Ü�H‰HØ/Ù/‘°ZØØô	ô *×.Ñ.Ð.ä!×*Ñ*Ð*rO   c                óŽ   — | j                  t        dd«       | j                  t        dd«       | j                  t        dd«       y )NÚtablerg   ÚforeignkeysÚcolumnr  )Úadd_autogenerate_comparatorr¥   r  r  )Úplugins    r;   Úsetupr    sK   € Ø
×&Ñ&Ü$ØØôð
 ×&Ñ&ÜØØôð
 ×&Ñ&ÜØØõrO   )rI   r$   rL   r(   r   úOptional[str]rT   úUnion[quoted_name, str]r9   úOptional[Table]r…   r  Úreturnr   )r:   r&   rÀ   r   r9   r#   r  zOptional[Index])r:   r&   rÀ   r   r9   r#   r  r   )rÀ   r   r9   r#   r  r   )rI   r$   rï   r(   r   r  rT   r  r9   r#   r…   r#   r  r   )rI   r$   r  r'   r   r  rT   r  rÈ   r  r  úColumn[Any]r  r  r  r   )r  r)   r  ÚNone)GÚ
__future__r   ÚloggingÚtypingr   r   r   r   r   r	   r
   r   r   Ú
sqlalchemyr   re   r   Úsqlalchemy.sqlr   Úsqlalchemy.sql.schemar   r   r   r   r   rç   Úddl._autogenr   r   Ú
operationsr   r   r   Úsqlalchemy.engine.interfacesr   r   r   Úsqlalchemy.sql.elementsr    r!   r"   r#   Úautogenerate.apir$   r%   Úddl.implr&   Úoperations.opsr'   r(   Úruntime.pluginsr)   r*   Ú	getLoggerÚ__name__rC   r¥   rp   Úimmutabledictr²   r³   r¶   r·   r¸   Ú__annotations__r6   ro   rá   r  r  r  © rO   r;   Ú<module>r3     sa  ðö #ã Ý Ý Ý Ý Ý Ý Ý  Ý Ý å *Ý Ý %Ý 6Ý 'Ý 2å  Ý Ý (Ý %Ý Ý *Ý áÝJÝ;ÝFÝ3Ý2Ý,Ý+å2Ý/Ý'Ý/Ý0Ý)áˆT˜Ð/Ð1EÀuÐLÑMÔN€ð €g×Ñ˜Ó!€ðD+Ø#ðD+àðD+ð ðD+ð #ð	D+ð
  ðD+ð $ðD+ð óD+òN<9ð~ -?¨D×,>Ñ,>à�~‰~Ø—‘Ø!×,Ñ,Ø ×*Ñ*Ø ×+Ñ+Ø×)Ñ)ñó	-Ð Ð)ó 	ðØ
ðØ-ðØ;@ðàóð@Ø
ðØ8ðØFKðàóð:Ø)ð:Ø7<ð:àó:ðz|+Ø#ð|+à$ð|+ð ð|+ð #ð	|+ð
 ð|+ð ð|+ð ó|+ð~)+Ø#ð)+à"ð)+ð ð)+ð #ð	)+ð
 #ð)+ð ð)+ð ð)+ð ó)+ôXrO   