+
    iz                    N  a  0 t $ ^ RIHt ^ RIt^ RIt^ RIHt ^ RIHt ^ RIHt ^ RIH	t	 ^ RIH
t
 ^ RIHt ^ R	IHt ^ R
IHt ^ RIHt ^ RIHt ^ RIHt ^ RIHt ^ RIHt ^ RIHt ^ RIHt ^ RIHt ^ RIHt ^ RIHt ^ RIHt ^ RIHt ^ RIHt ^ RIHt ^RIHt ^RIHt ^RIH t  ^RIH!t! ^RIH"t" ^RI"H#t# ]'       d   ^ RIH$t$ ^ R IH%t% ^ R!I&H't' ^ R"I&H(t( ^ R#I)H*t* ^ R$I+H,t, ^ R%I+H-t- ^ R&I+H.t. ^ R'I+H/t/ ^ R(I0H1t1 ^ R)I2H3t3 ^ R*I2H4t4 ^ R+I5H6t6 ^ R,I7H8t8 ^ R-I7H9t9 ^ R.I7H:t: ^ R/I7H;t; ^ R0I<H=t= ^ R1I>H?t? ^R2IH@t@ ^R3IAHBtB ^R4ICHDtD ^R5ICHEtE ],].,          ]-,          ]/,          tF]P                  ! ]H4      tI ! R6 R7]J4      tK/ tLR8]MR9&    ! R: R;]KR<7      tN ! R= R>]4      tOR? R@ ltPR# )A    )annotationsN)Any)Callable)Dict)Iterable)List)Mapping)
NamedTuple)Optional)Sequence)Set)Tuple)Type)TYPE_CHECKING)Union)cast)Column)MetaData)PrimaryKeyConstraintschema)String)Table)text)_autogen)base)_constraint_sig)ComparisonResult)util)sqla_compat)Literal)TextIO)
Connection)Dialect)CursorResult)ReflectedForeignKeyConstraint)ReflectedIndex)ReflectedPrimaryKeyConstraint)ReflectedUniqueConstraint)	Inspector)ClauseElement)
Executable)quoted_name)
Constraint)ForeignKeyConstraint)Index)UniqueConstraint)TableClause)
TypeEngine)_ServerDefaultType)AutogenContext)ApplyBatchImpl)BatchOperationsImplc                  "    ] tR t^KtR R ltRtR# )ImplMetac               $    V ^8  d   QhRRRRRR/# )   	classnamestrbaseszTuple[Type[DefaultImpl]]dict_Dict[str, Any] )formats   "jC:\Users\petid\OneDrive\Desktop\Maestro\MAESTRO\maestro-backend\venv\Lib\site-packages\alembic/ddl/impl.py__annotate__ImplMeta.__annotate__L   s(     	 		 (	 		    c                	`    \         P                  WW#4      pR V9   d   V \        VR ,          &   V# )__dialect__)type__init___impls)clsr<   r>   r?   newtypes   &&&& rC   rJ   ImplMeta.__init__L   s0     --=E!+.F5'(rF   rA   N)__name__
__module____qualname____firstlineno__rJ   __static_attributes__rA   rF   rC   r9   r9   K   s    	 	rF   r9   zDict[str, Type[DefaultImpl]]rK   c                     ] tR t^[t$ RtRtRtRtRR03tR]	R&   Rvt
R	]	R
&   RwtR]	R&   R R lt]R R l4       tR R ltR R ltR R ltR R lt]R R l4       tRR]P,                  ! 4       3R R lltRxR R lltR RR!RR"RR#RR$RR%RR&RR'RR(RR)RR*RR+R/R, R- lltR$RR.RR/RR0R/R1 R2 lltR$RR3R/R4 R5 lltR6 R7 ltR8 R9 ltRxR: R; lltR< R= ltR> R? lt R@ RA lt!RB RC lt"RD RE lt#RF RG lt$RH RI lt%RyRJ RK llt&RL RM lt'RN RO lt(RP RQ lt)RR RS lt*RT t+RU RV lt,RW t-RzRX RY llt.RZ R[ lt/R\ R] lt0R^ t1R_ R` lt2Ra Rb lt3Rc Rd lt4Re Rf lt5Rg t6Rh Ri lt7Rj Rk lt8Rl Rm lt9Rn Ro lt:Rp Rq lt;Rr t<Rs Rt lt=Rut>R# ){DefaultImplaz  Provide the entrypoint for major migration operations,
including database-specific behavioral variances.

While individual SQL/DDL constructs already provide
for database-specific implementations, variances here
allow for entirely different sequences of operations
to take place for a particular migration, such as
SQL Server's special 'IDENTITY INSERT' step for
bulk inserts.

defaultF;NUMERICDECIMALzTuple[Set[str], ...]type_synonymszSequence[str]type_arg_extractzTuple[str, ...]identity_attrs_ignorec               4    V ^8  d   QhRRRRRRRRR	R
RRRR/# )r;   dialectr$   
connectionOptional[Connection]as_sqlbooltransactional_ddlOptional[bool]output_bufferzOptional[TextIO]context_optsr@   returnNonerA   )rB   s   "rC   rD   DefaultImpl.__annotate__t   sP       ) 	
 * ( % 
rF   c                	
   Wn         W n        W0n        VP                  R R4      V n        WPn        / V n        W`n        Ve   W@n        V P                  '       d+   V P                  '       g   \        P                  ! R4      hR# R# )literal_bindsFNz3Can't use literal_binds setting without as_sql mode)r^   r_   ra   getrk   re   memorf   rc   r   CommandError)selfr^   r_   ra   rc   re   rf   s   &&&&&&&rC   rJ   DefaultImpl.__init__t   s|     $)--ouE*	((%6";;;''I   rF   c                    V ^8  d   QhRRRR/# )r;   r^   r$   rg   zType[DefaultImpl]rA   )rB   s   "rC   rD   ri      s     $ $W $1B $rF   c                	0    \         VP                  ,          # N)rK   name)rL   r^   s   &&rC   get_by_dialectDefaultImpl.get_by_dialect   s    gll##rF   c                    V ^8  d   QhRRRR/# )r;   r   r=   rg   rh   rA   )rB   s   "rC   rD   ri      s     # ## #$ #rF   c                	    V P                   f   Q hV P                   P                  VR,           4       V P                   P                  4        R # )Nz

)re   writeflush)ro   r   s   &&rC   static_outputDefaultImpl.static_output   s>    !!---  /  "rF   c          
     ,    V ^8  d   QhRRRRRRRRR	R
/# )r;   version_tabler=   version_table_schemaOptional[str]version_table_pkrb   kwr   rg   r   rA   )rB   s   "rC   rD   ri      s>           ,	 
     
 rF   c          
         \        V\        4       \        R\        ^ 4      RR7      VR7      pV'       d    VP	                  \        RV R2R7      4       V# )a  Generate a :class:`.Table` object which will be used as the
structure for the Alembic version table.

Third party dialects may override this hook to provide an alternate
structure for this :class:`.Table`; requirements are only that it
be named based on the ``version_table`` parameter and contains
at least a single string-holding column named ``version_num``.

.. versionadded:: 1.14

version_numF)nullabler   _pkc)rt   )r   r   r   r   append_constraintr   )ro   r~   r   r   r   vts   &$$$, rC   version_table_implDefaultImpl.version_table_impl   sW    & J=&*u='	
   $!=/(> 	rF   c                    V ^8  d   QhRRRR/# )r;   batch_opr7   rg   rb   rA   )rB   s   "rC   rD   ri      s      +	rF   c                    R# )zReturn True if the given :class:`.BatchOperationsImpl`
would need the table to be recreated and copied in order to
proceed.

Normally, only returns True on SQLite when operations other
than add_column are present.

FrA   )ro   r   s   &&rC   requires_recreate_in_batch&DefaultImpl.requires_recreate_in_batch   s     rF   c               $    V ^8  d   QhRRRRRR/# )r;   
batch_implr6   tabler   rg   rh   rA   )rB   s   "rC   rD   ri      s$     	 	(	16			rF   c                    R# )zperform any operations needed on a table before a new
one is created to replace it in batch mode.

the PG dialect uses this to drop constraints on the table
before the new one uses those same names.

NrA   )ro   r   r   s   &&&rC   prep_table_for_batch DefaultImpl.prep_table_for_batch       rF   c                   V ^8  d   QhRR/# )r;   rg   r`   rA   )rB   s   "rC   rD   ri      s      * rF   c                	    V P                   # rs   )r_   ro   s   &rC   bindDefaultImpl.bind   s    rF   Nc          
     ,    V ^8  d   QhRRRRRRRRR	R
/# )r;   	constructUnion[Executable, str]execution_optionszOptional[Mapping[str, Any]]multiparamsz%Optional[Sequence[Mapping[str, Any]]]paramsMapping[str, Any]rg   zOptional[CursorResult]rA   )rB   s   "rC   rD   ri      s<     +7 +7)+7 7+7 ;	+7
 "+7 
 +7rF   c                	   \        V\        4      '       d   \        V4      pV P                  '       d   Vf	   V'       d   \	        R4      hV P
                  '       d0   \        V\        P                  4      '       g   \        RR/R7      pM/ p\        '       d   \        V\        4      '       g   Q hVP                  ! R	RV P                  /VB pV P                  \        V4      P                  RR4      P                  4       V P                   ,           4       R # V P"                  pVf   Q hV'       d   VP$                  ! R	/ VB pV'       d   Ve   \	        R4      hV'       d   VP'                  W4      # VP'                  W4      # )
Nz&SQL parameters not allowed with as_sqlrk   T)compile_kwargsr^   	z    z2Can't send params and multiparams at the same timerA   )
isinstancer=   r   ra   	TypeErrorrk   r   
DDLElementdictr   r+   compiler^   r{   replacestripcommand_terminatorr_   r   execute)ro   r   r   r   r   
compile_kwcompiledconns   &&&&&   rC   _execDefaultImpl._exec   sK    i%%YI;;;&& HII !!!*6,,+ + "/41HI

}!)];;;; ((LLLHH%%dF399;))* ??D### --B0AB+1H  ||I;;||I66rF   c               $    V ^8  d   QhRRRRRR/# )r;   sqlr   r   zOptional[dict[str, Any]]rg   rh   rA   )rB   s   "rC   rD   ri     s(     + +#+ 4+ 
	+rF   c                	(    V P                  W4       R # rs   )r   )ro   r   r   s   &&&rC   r   DefaultImpl.execute  s    
 	

3*rF   r   server_defaultrt   type_r   autoincrementcommentexisting_commentexisting_typeexisting_server_defaultexisting_nullableexisting_autoincrementc                X    V ^8  d   QhRRRRRRRRRR	R
RRR	RRRRRR	RRRRRRRRRRRR/# )r;   
table_namer=   column_namer   rd   r   z3Optional[Union[_ServerDefaultType, Literal[False]]]rt   r   r   zOptional[TypeEngine]r   r   r   z$Optional[Union[str, Literal[False]]]r   r   r   r   r   r   r   rg   rh   rA   )rB   s   "rC   rD   ri   	  s     s ss s
 !s
s s $s s &s 6s (s ,s "
!s& *'s( !/)s* +s, 
-srF   c               	   Vf   Ve   \         P                  ! R^R7       Ve.   V P                  \        P                  ! VVVVVVVV
R7      4       VRJd   / p\
        P                  ! WL4      '       d   \        P                  pMA\
        P                  ! WL4      '       d   \        P                  pWR&   M\        P                  pV P                  V! VVV3RVRVRVR	VR
V
/VB 4       Ve.   V P                  \        P                  ! VVVVVVVV
R7      4       V	RJd.   V P                  \        P                  ! VVV	VVVVV
R7      4       Ve/   V P                  \        P                  ! VVVVVVVR7      4       R # R # )NzBautoincrement and existing_autoincrement only make sense for MySQL)
stacklevel)r   r   r   r   r   Fimplr   r   r   r   r   )r   r   r   r   )r   warnr   r   ColumnNullabler    _server_default_is_computedComputedColumnDefault_server_default_is_identityIdentityColumnDefaultColumnDefault
ColumnTypeColumnComment
ColumnName)ro   r   r   r   r   rt   r   r   r   r   r   r   r   r   r   r   cls_s   &&&$$$$$$$$$$$$, rC   alter_columnDefaultImpl.alter_column	  s   . $(>(JII,
 JJ##!"/,C&7%5	 &B 66  1188  11!6
))JJ"
 "	

 #0
 -D
 '8
 &6
 
 JJ!"/,C&7%5	 %JJ""!"/,C&7%5	 JJ!"/,C&7
 rF   if_not_existsinline_referencesinline_primary_keyc               4    V ^8  d   QhRRRRRRRRR	RR
RRR/# )r;   r   r=   columnColumn[Any]r   !Optional[Union[str, quoted_name]]r   rd   r   r   rg   rh   rA   )rB   s   "rC   rD   ri   ~  sP     
 

 

 2
 &
 *
 +
 

rF   c               	\    V P                  \        P                  ! VVVVVVR 7      4       R# ))r   r   r   r   N)r   r   	AddColumn)ro   r   r   r   r   r   r   s   &&&$$$$rC   
add_columnDefaultImpl.add_column~  s.     	

NN+"3#5		
rF   	if_existsc          
     ,    V ^8  d   QhRRRRRRRRR	R
/# )r;   r   r=   r   r   r   r   r   rd   rg   rh   rA   )rB   s   "rC   rD   ri     s<     
 

 

 
 "
 

rF   c          	     	T    V P                  \        P                  ! WW4R 7      4       R# ))r   r   N)r   r   
DropColumn)ro   r   r   r   r   r   s   &&&$$,rC   drop_columnDefaultImpl.drop_column  s!     	

OO6	
rF   c               $    V ^8  d   QhRRRRRR/# )r;   constr   r   rg   rh   rA   )rB   s   "rC   rD   ri     s!     : :C :s :t :rF   c                	    VP                   e   VP                  V 4      '       dQ   \        P                  '       d   VP                  RR4       V P	                  \
        P                  ! V3/ VB 4       R # R # )Nisolate_from_tableT)_create_ruler    sqla_2_1
setdefaultr   r   AddConstraintro   r   r   s   &&,rC   add_constraintDefaultImpl.add_constraint  s[    %););D)A)A###2D9JJv++E8R89	 *BrF   c               $    V ^8  d   QhRRRRRR/# )r;   r   r.   r   r   rg   rh   rA   )rB   s   "rC   rD   ri     s!     7 7Z 7s 7t 7rF   c                	R    V P                  \        P                  ! V3/ VB 4       R # rs   )r   r   DropConstraintr   s   &&,rC   drop_constraintDefaultImpl.drop_constraint  s    

6((5"56rF   c               (    V ^8  d   QhRRRRRRRR/# )	r;   old_table_namer=   new_table_namezUnion[str, quoted_name]r   r   rg   rh   rA   )rB   s   "rC   rD   ri     s2     
 

 0
 2	

 

rF   c                	T    V P                  \        P                  ! WVR 7      4       R# )r   N)r   r   RenameTable)ro   r   r   r   s   &&&&rC   rename_tableDefaultImpl.rename_table  s      	

^FK	
rF   c               $    V ^8  d   QhRRRRRR/# r;   r   r   r   r   rg   rh   rA   )rB   s   "rC   rD   ri     s!     3 3% 3s 3t 3rF   c                	   VP                   P                  WP                  R V R7       V P                  \        P
                  ! V3/ VB 4       VP                   P                  WP                  R V R7       VP                   F(  pV P                  \        P                  ! V4      4       K*  	  V P                  P                  ;'       d    V P                  P                  '       * pVP                  pV'       d   V'       d   V P                  V4       VP                   F4  pVP                  pV'       g   K  V'       g   K#  V P                  V4       K6  	  R# F)
checkfirst_ddl_runnerN)dispatchbefore_creater_   r   r   CreateTableafter_createindexesCreateIndexr^   supports_commentsinline_commentsr   create_table_commentcolumnscreate_column_comment)ro   r   r   indexwith_commentr   r   s   &&,    rC   create_tableDefaultImpl.create_table  s    $$??u$ 	% 	
 	

6%%e2r23##??u$ 	$ 	
 ]]EJJv))%01 # LL**OO4<<3O3O/O 	 --|%%e,mmFnnGw<<**62 $rF   c               $    V ^8  d   QhRRRRRR/# r   rA   )rB   s   "rC   rD   ri     s!     
 
 
S 
T 
rF   c                	    VP                   P                  WP                  R V R7       V P                  \        P
                  ! V3/ VB 4       VP                   P                  WP                  R V R7       R# r   )r  before_dropr_   r   r   	DropTable
after_drop)ro   r   r   s   &&,rC   
drop_tableDefaultImpl.drop_table  sd    ""??u$ 	# 	
 	

6##E0R01!!??u$ 	" 	
rF   c               $    V ^8  d   QhRRRRRR/# r;   r  r0   r   r   rg   rh   rA   )rB   s   "rC   rD   ri     s!     4 4% 4s 4t 4rF   c                	R    V P                  \        P                  ! V3/ VB 4       R # rs   )r   r   r  ro   r  r   s   &&,rC   create_indexDefaultImpl.create_index  s    

6%%e2r23rF   c                    V ^8  d   QhRRRR/# r;   r   r   rg   rh   rA   )rB   s   "rC   rD   ri     s     2 2% 2D 2rF   c                	P    V P                  \        P                  ! V4      4       R # rs   )r   r   SetTableCommentro   r   s   &&rC   r
   DefaultImpl.create_table_comment  s    

6))%01rF   c                    V ^8  d   QhRRRR/# r  rA   )rB   s   "rC   rD   ri     s     3 3 3$ 3rF   c                	P    V P                  \        P                  ! V4      4       R # rs   )r   r   DropTableCommentr"  s   &&rC   drop_table_commentDefaultImpl.drop_table_comment  s    

6**512rF   c                    V ^8  d   QhRRRR/# )r;   r   r   rg   rh   rA   )rB   s   "rC   rD   ri     s     4 4K 4D 4rF   c                	P    V P                  \        P                  ! V4      4       R # rs   )r   r   SetColumnComment)ro   r   s   &&rC   r  !DefaultImpl.create_column_comment  s    

6**623rF   c               $    V ^8  d   QhRRRRRR/# r  rA   )rB   s   "rC   rD   ri     s!     2 2 2S 2T 2rF   c                	R    V P                  \        P                  ! V3/ VB 4       R # rs   )r   r   	DropIndexr  s   &&,rC   
drop_indexDefaultImpl.drop_index  s    

6##E0R01rF   c               (    V ^8  d   QhRRRRRRRR/# )	r;   r   zUnion[TableClause, Table]rowsz
List[dict]multiinsertrb   rg   rh   rA   )rB   s   "rC   rD   ri     s8     $J $J($J $J 	$J
 
$JrF   c                	f   \        V\        4      '       g   \        R 4      hV'       d)   \        V^ ,          \        4      '       g   \        R4      hV P                  '       d   V F  pT P                  VP                  4       P                  4       P                  ! R/ VP                  4        UUu/ uF[  w  rVT\        V\        P                  4      '       g4   \        P                  ! WVVP                  V,          P                  R7      MTbK]  	  uppB 4       K  	  R# V'       d   V'       d2   V P                  VP                  4       P                  4       VR7       R# V F@  pV P                  VP                  4       P                  4       P                  ! R/ VB 4       KB  	  R# R# u uppi )zList expectedzList of dictionaries expected)r   )r   NrA   )r   listr   r   ra   r   insertinlinevaluesitemsr    _literal_bindparamcrI   )ro   r   r3  r4  rowkvs   &&&&   rC   bulk_insertDefaultImpl.bulk_insert  sP    $%%O,,*T!Wd33;<<;;;

LLNVXV  ),		 )4  (2$%{'E'E(" (" !, > >$%
!" &'' )4 ( JJu||~446DJI#

5<<>#8#8#:#A#A#HC#HI  $	 s   1A!F-c                    V ^8  d   QhRRRR/# )r;   r   r   rg   ParamsrA   )rB   s   "rC   rD   ri     s     & &F &v &rF   c                	   V P                   P                  P                  VP                  4      P	                  4       p\
        P                  ! R V4      p. pRpV F5  p\
        P                  ! RV4      '       d   TpK$  VP                  V4       K7  	  \        V^ ,          VR,          . / 4      pV'       d   \
        P                  ! RV4       Fs  pRV9   dA   VP                  R4      w  rV
P                  4       VP                  V	P                  4       &   KJ  VP                  P                  VP                  4       4       Ku  	  V# )z[\w\-_]+|\(.+?\)Nz^\(.*\)$:   NNz[^(),]+=)r^   type_compilerprocessrI   lowerrefindallmatchappendrC  splitr   kwargsargs)ro   r   
definitiontokensterm_tokens
paren_termtokenr   termkeyvals   &&         rC   _tokenize_column_type!DefaultImpl._tokenize_column_type  s    \\//77DJJL
 JJ':JG!#
ExxU++"
""5)	  ABR@

9j9$;#zz#HC14FMM#))+.KK&&tzz|4 : rF   c               $    V ^8  d   QhRRRRRR/# )r;   inspector_paramsrC  metadata_paramsrg   rb   rA   )rB   s   "rC   rD   ri   3  s$       &9?	rF   c           	     	   VP                   VP                   8X  d   R # V P                   UUu. uF!  q3 Uu0 uF  qDP                  4       kK  	  upNK#  	  pppRP                  VP                   .VP                  ,           4      pRP                  VP                   .VP                  ,           4      pV FK  pWg0P                  V4      '       g0   VP                   VP                   0P                  V4      '       g   KJ   R # 	  R# u upi u uppi )T F)token0rZ   rI  joinrR  issubset)ro   r\  r]  batchtsynonymsinspector_all_termsmetadata_all_termss   &&&     rC   _column_types_matchDefaultImpl._column_types_match3  s     ""o&<&<<<@<N<NO<N5.1WWY.<NO!hh$$%(8(?(??
 !XX##$'='==
 E#8AA%HH ''&&M huoM M    /Os   D	DD	D	c               $    V ^8  d   QhRRRRRR/# )r;   inspected_paramsrC  meta_paramsrg   rb   rA   )rB   s   "rC   rD   ri   I  s$       &5;	rF   c                   \        VP                  4      \        VP                  4      8X  d   VP                  VP                  8w  d   R# \        VP                  4      \        VP                  4      8X  d   VP                  VP                  8w  d   R# RP                  VP                  4      P	                  4       pRP                  VP                  4      P	                  4       pV P
                   Fk  p\        P                  ! WS4      p\        P                  ! WT4      pV'       g   K9  V'       g   KC  VP                  ^4      VP                  ^4      8w  g   Kj   R# 	  R# )zWe want to compare column parameters. However, we only want
to compare parameters that are set. If they both have `collation`,
we want to make sure they are the same. However, if only one
specifies it, dont flag it for being less specific
Fr_  T)	lenrR  rP  ra  rI  r[   rJ  searchgroup)ro   rk  rl  inspmetaregmimms   &&&     rC   _column_args_matchDefaultImpl._column_args_matchI  s    ""#s+;+B+B'CC""&6&=&==   !S)9)>)>%??  $4$9$99xx(//0668xx**+113((C3%B3%BrbbRXXa[BHHQK7 ) rF   c               $    V ^8  d   QhRRRRRR/# )r;   inspector_columnr   metadata_columnr   rg   rb   rA   )rB   s   "rC   rD   ri   j  s$       +>D	rF   c                    V P                  V4      pV P                  V4      pV P                  W44      '       g   R# V P                  W44      '       g   R# R# )zReturns True if there ARE differences between the types of the two
columns. Takes impl.type_synonyms into account between retrospected
and metadata types
TF)rY  rh  rv  )ro   ry  rz  r\  r]  s   &&&  rC   compare_typeDefaultImpl.compare_typej  sS      556FG44_E''(8JJ&&'7IIrF   c                	
    WC8g  # rs   rA   )ro   ry  rz  rendered_metadata_defaultrendered_inspector_defaults   &&&&&rC   compare_server_default"DefaultImpl.compare_server_defaultz  s     *FFrF   c          
     ,    V ^8  d   QhRRRRRRRRRR/# )	r;   conn_uniqueszSet[UniqueConstraint]conn_indexesz
Set[Index]metadata_unique_constraintsmetadata_indexesrg   rh   rA   )rB   s   "rC   rD   ri     s<      + ! &;	
 % 
rF   c                	    R # rs   rA   )ro   r  r  r  r  s   &&&&&rC   correct_for_autogen_constraints+DefaultImpl.correct_for_autogen_constraints  s     	rF   c                	~    VP                   P                  VP                  Jd   \        VR ,          V4      VR &   R# R# )exprN)rI   _type_affinityr   )ro   existingexisting_transfernew_types   &&&&rC   cast_for_batch_migrate"DefaultImpl.cast_for_batch_migrate  s:    ==''x/F/FF(,!&)8)f% GrF   c               (    V ^8  d   QhRRRRRRRR/# )	r;   r  r+   is_server_defaultrb   r   r   rg   r=   rA   )rB   s   "rC   rD   ri     s,     
 
!
6:
JM
	
rF   c                Z    RRRR/p\        VP                  V P                  VR7      4      # )zTRender a SQL expression that is typically a server default,
index expression, etc.

rk   Tinclude_tableF)r^   r   )r=   r   r^   )ro   r  r  r   r   s   &&&, rC   render_ddl_sql_exprDefaultImpl.render_ddl_sql_expr  s3     &t_eD
LLjLI
 	
rF   c                    V ^8  d   QhRRRR/# )r;   	inspectorr*   rg   r   rA   )rB   s   "rC   rD   ri     s     + +	 +h +rF   c                	    V P                   # rs   )autogen_column_reflect)ro   r  s   &&rC   _compat_autogen_column_reflect*DefaultImpl._compat_autogen_column_reflect  s    ***rF   c               $    V ^8  d   QhRRRRRR/# )r;   conn_fkszSet[ForeignKeyConstraint]metadata_fksrg   rh   rA   )rB   s   "rC   rD   ri     s(      + 0 
	rF   c                	    R # rs   rA   )ro   r  r  s   &&&rC   correct_for_autogen_foreignkeys+DefaultImpl.correct_for_autogen_foreignkeys  s    
 	rF   c                    R# )zA hook that is attached to the 'column_reflect' event for when
a Table is reflected from the database during the autogenerate
process.

Dialects can elect to modify the information gathered here.

NrA   )ro   r  r   column_infos   &&&&rC   r  "DefaultImpl.autogen_column_reflect  r   rF   c                   V ^8  d   QhRR/# r;   rg   rh   rA   )rB   s   "rC   rD   ri     s      $ rF   c                    R# )zA hook called when :meth:`.EnvironmentContext.run_migrations`
is called.

Implementations can set up per-migration-run state here.

NrA   r   s   &rC   start_migrationsDefaultImpl.start_migrations  r   rF   c                   V ^8  d   QhRR/# r  rA   )rB   s   "rC   rD   ri     s     > >D >rF   c                J    V P                  RV P                  ,           4       R# )zEmit the string ``BEGIN``, or the backend-specific
equivalent, on the current connection context.

This is used in offline mode and typically
via :meth:`.EnvironmentContext.begin_transaction`.

BEGINNr{   r   r   s   &rC   
emit_beginDefaultImpl.emit_begin  s     	7T%<%<<=rF   c                   V ^8  d   QhRR/# r  rA   )rB   s   "rC   rD   ri     s     ? ?T ?rF   c                J    V P                  RV P                  ,           4       R# )zEmit the string ``COMMIT``, or the backend-specific
equivalent, on the current connection context.

This is used in offline mode and typically
via :meth:`.EnvironmentContext.begin_transaction`.

COMMITNr  r   s   &rC   emit_commitDefaultImpl.emit_commit  s     	8d&=&==>rF   c               $    V ^8  d   QhRRRRRR/# )r;   type_objr3   autogen_contextr5   rg   zUnion[str, Literal[False]]rA   )rB   s   "rC   rD   ri     s$      "5C	#rF   c                	    R # FrA   )ro   r  r  s   &&&rC   render_typeDefaultImpl.render_type  s     rF   c                	d   \        VV\        P                  ! 4       R 0R7      w  r4\        VR R4      p\        VR R4      p\	        V4      \	        V4      8w  d   VP                  R 4       VP                  V P                  4       TT\	        V4      ;'       g    \	        V4      \	        V4      8g  3# )always)skipN)_compare_identity_optionsr   Identitygetattrrb   adddifference_updater\   )ro   metadata_identityinspector_identitydiffignoredmeta_alwaysinspector_alwayss   &&&    rC   _compare_identity_default%DefaultImpl._compare_identity_default  s     2OO	
 /4@"#5xF%5 66HHXt99:
 JMM$01T:L5MM
 	
rF   c               $    V ^8  d   QhRRRRRR/# )r;   metadata_indexr0   reflected_indexrg   r   rA   )rB   s   "rC   rD   ri     s$      #6;	rF   c                	v    \        VP                  4      p\        VP                  4      pW48w  d	   R V RV 2# R# )zunique=z to unique=N)rb   unique)ro   r  r  conn_uniquemeta_uniques   &&&  rC   _compare_index_unique!DefaultImpl._compare_index_unique  s@     ?112>001%[M[MBBrF   c               $    V ^8  d   QhRRRRRR/# r;   
constraintz_autogen._Coptsr   rg   z_constraint_sig[_autogen._C]rA   )rB   s   "rC   rD   ri     s)     O O%O/2O	%OrF   c                	2    \         P                  ! R W3/ VB # Tr   from_constraintro   r  r  s   &&,rC   _create_metadata_constraint_sig+DefaultImpl._create_metadata_constraint_sig  s     ..tTNNNrF   c               $    V ^8  d   QhRRRRRR/# r  rA   )rB   s   "rC   rD   ri     s)     P P%P/2P	%PrF   c                	2    \         P                  ! R W3/ VB # r  r  r  s   &&,rC    _create_reflected_constraint_sig,DefaultImpl._create_reflected_constraint_sig  s     ..udO$OOrF   c               $    V ^8  d   QhRRRRRR/# )r;   r  r0   r  rg   r   rA   )rB   s   "rC   rD   ri     s(     ), ),), ), 
	),rF   c                   . pV P                  W4      pV'       d   VP                  V4       V P                  V4      pV P                  V4      p\        P
                  ! V4      '       g   Q h\        P
                  ! V4      '       g   Q hWV3 F7  pVP                  '       g   K  \        P                  RVP                  4       K9  	  VP                  VP                  8w  d,   VP                  RVP                   RVP                   24       V'       d   \        P                  ! V4      # \        P                  ! 4       # )zCompare two indexes by comparing the signature generated by
``create_index_sig``.

This method returns a ``ComparisonResult``.
zGenerating approximate signature for index %s. The dialect implementation should either skip expression indexes or provide a custom implementation.expression  to )r  rM  r  r  r   is_index_sighas_expressionslogwarningr   column_namesr   	DifferentEqual)ro   r  r  msg
unique_msgm_sigr_sigsigs   &&&     rC   compare_indexesDefaultImpl.compare_indexes  s    //

 JJz"44^D55oF$$U++++$$U++++ <C""": II   !3!33JJe001e6H6H5IJ #--c22#))++rF   c               $    V ^8  d   QhRRRRRR/# )r;   metadata_constraintr1   reflected_constraintrg   r   rA   )rB   s   "rC   rD   ri   /  s(     , ,-, /, 
	,rF   c                    V P                  V4      pV P                  V4      pVP                  pVP                  pWe8w  d   \        P                  ! RV RV 24      # \        P
                  ! 4       # )zCompare two unique constraints by comparing the two signatures.

The arguments are two tuples that contain the unique constraint and
the signatures generated by ``create_unique_constraint_sig``.

This method returns a ``ComparisonResult``.
r  r  )r  r  unnamedr   r  r  )ro   r  r  metadata_tupreflected_tupmeta_sigconn_sigs   &&&    rC   compare_unique_constraint%DefaultImpl.compare_unique_constraint/  s~     ;;
 == 
  '' ((#--hZtH:6  $))++rF   c           
     	z   V Uu/ uF  q3P                   VbK  	  pp\        V4       F  pVP                   V9   d   K  \        P                  ! V4      pV'       g   K6  \        P
                  ! R VP                   : RV P                  : R\        P                   R24       VP                  V4       K  	  R# u upi )z@autogenerate skipping metadata-specified expression-based index z
; dialect z under SQLAlchemy z6 can't reflect these indexes so they can't be comparedN)	rt   r6  r    is_expression_indexr   r   rH   sqlalchemy_versiondiscard)ro   r  r  r<  conn_indexes_by_nameidxiexs   &&&    rC   _skip_functional_indexes$DefaultImpl._skip_functional_indexesK  s    3?@<a	<@()Cxx//11#6Cs		.xxl*T-=-=,@ A""-"@"@!A BFF !((- *  As   B8c               $    V ^8  d   QhRRRRRR/# )r;   reflected_object_ReflectedConstraintkindr=   rg   r@   rA   )rB   s   "rC   rD   ri   \  s$     ; ; 4;<?;	;rF   c                	&    VP                  R / 4      # )dialect_options)rl   )ro   r  r  s   &&&rC    adjust_reflected_dialect_options,DefaultImpl.adjust_reflected_dialect_options\  s      ##$5r::rF   )ra   r_   rf   r^   rk   rm   re   rc   rA   )orderon_nullrs   r  r  )?rO   rP   rQ   rR   __doc__rH   rc   r   rZ   __annotations__r[   r\   rJ   classmethodru   r{   r   r   r   propertyr   r   immutabledictr   r   r   r   r   r   r   r   r  r  r  r
  r'  r  r0  r@  rY  rh  rv  r|  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  rS   rA   rF   rC   rU   rU   [   s/   
 K,5y+A*CM'C&(m(
 .B?A4 $ $#
 D	   :>=A$($6$6$8+7Z+s
 $(s s #s '+s !%s )-s 9>s +/s /3s$ %s& -1's( 26)sj

 59
 )-
 -1
 .2
*

 !%
 %)
:7
3.
42342$JL&P,B G
+>?

8O
P
),V,8."; ;rF   rU   )	metaclassc                  @    ] tR tRt$ R]R&   R]R&   R]R&   R]R&   R	tR
# )rC  ib  r=   r`  z	List[str]rR  rP  zDict[str, str]rO  rA   N)rO   rP   rQ   rR   r  rS   rA   rF   rC   rC  rC  b  s    K
OrF   rC  c               (    V ^8  d   QhRRRRRRRR/# )r;   metadata_ioz-Union[schema.Identity, schema.Sequence, None]inspector_io
default_ioz'Union[schema.Identity, schema.Sequence]r  zSet[str]rA   )rB   s   "rC   rD   rD   i  s0     0 0>0?0 80 	0rF   c           
       aaa \         P                  ! V 4      p\         P                  ! V4      p\        4       o\        4       oR  VVV3R llpV! VV\         P                  ! V4      \        V4      P                  V4      4       \         P                  '       dK   \        VR4      '       g   Q hV! \        V R/ 4      \        VR/ 4      VP                  \        VR/ 4      4       SS3# )c               (    V ^8  d   QhRRRRRRRR/# )r;   	meta_dictr   	insp_dictdefault_dictattrszIterable[str]rA   )rB   s   "rC   rD   /_compare_identity_options.<locals>.__annotate__x  s0     # #$#$# (# 	#rF   c                  < \        V4      P                  S
4       Fh  pV P                  V4      pVP                  V4      pWe8w  g   K-  VP                  V4      pWW8X  d   S	P                  V4       KW  SP                  V4       Kj  	  R # rs   )set
differencerl   r  )r$  r%  r&  r'  attr
meta_value
insp_valuedefault_valuer  ignored_attrr  s   &&&&    rC   check_dicts._compare_identity_options.<locals>.check_dictsx  so     J))$/D"t,J"t,J' , 0 0 6. $$T*HHTN 0rF   dialect_kwargs)r    _get_identity_options_dictr*  unionidentity_has_dialect_kwargshasattrr  r3  )	r  r   r!  r  meta_dinsp_dr1  r  r0  s	   &&&f   @@rC   r  r  i  s     33K@F33LAF5D5L# #  ..z:F&!	 ...z#34444 	K!126L"2B7%%L"2B7		
 rF   )Q__conditional_annotations__
__future__r   loggingrJ  typingr   r   r   r   r   r	   r
   r   r   r   r   r   r   r   
sqlalchemyr   r   r   r   r   r   r   r    r   r   r   r   r   r    r!   r"   sqlalchemy.enginer#   r$   sqlalchemy.engine.cursorr%   sqlalchemy.engine.interfacesr&   r'   r(   r)   sqlalchemy.engine.reflectionr*   sqlalchemy.sqlr+   r,   sqlalchemy.sql.elementsr-   sqlalchemy.sql.schemar.   r/   r0   r1   sqlalchemy.sql.selectabler2   sqlalchemy.sql.type_apir3   r4   autogenerate.apir5   operations.batchr6   r7   r  	getLoggerrO   r  rI   r9   rK   r  rU   rC  r  )r:  s   @rC   <module>rL     s   # "  	                   +       8 :  ,)5J;JF6,)30:+652(116 	&
'	(
	 $	$  !
t 
 (*$ )D;H D;NZ 0rF   