|L i;$UddlmZddlmZddlmZddlmZddlmZddlmZddlmZddlm Z dd lm Z dd lm Z dd lm Z dd lm Z dd lmZddlmZddlmZddlmZddlmZddlmZddlmZddlmZe rddlmZddlmZddlmZeeefZe deZiZ de!d<GddeZ"Gdd eeZ#Gd!d"e#eZ$Gd#d$e#eZ%Gd%d&e#eZ&d+d'Z'd,d(Z(d-d)Z)y*).) annotations)Any)ClassVar)Dict)Generic) NamedTuple)Optional)Sequence)Tuple)Type) TYPE_CHECKING)TypeVar)Union) Constraint)ForeignKeyConstraint)Index)UniqueConstraint) TypeGuard)util) sqla_compat)Literal)AutogenContext) DefaultImpl_C)boundz Dict[str, Type[_constraint_sig]]_clsregceZdZUded<ded<ed dZed dZed dZed dZ edd Z edd Z y )ComparisonResultz%Literal['equal', 'different', 'skip']statusstrmessagec |jdk(S)Nequalr selfs Z/mnt/ssd/data/python-lab/Trading/venv/lib/python3.12/site-packages/alembic/ddl/_autogen.pyis_equalzComparisonResult.is_equal-s{{g%%c |jdk(S)N differentr%r&s r( is_differentzComparisonResult.is_different1s{{k))r*c |jdk(S)Nskipr%r&s r(is_skipzComparisonResult.is_skip5s{{f$$r*c|ddS)zthe constraints are equal.r$zThe two constraints are equalclss r(EqualzComparisonResult.Equal9s7;<s#; $,,v*> ?@@r*cX|ddjtj|S)zthe constraint cannot be compared for the provided reason(s). The message is logged, but the constraints will be otherwise considered equal, meaning that no migration command will be generated. r/r7r8r;s r(SkipzComparisonResult.SkipCs#6499T\\&%9:;;r*Nreturnbool)rAr)r<zUnion[str, Sequence[str]]rAr) __name__ __module__ __qualname____annotations__propertyr)r-r0 classmethodr5r=r?r2r*r(rr)s 11 L &&**%%==AA<>=8c|jsJ|}|}t|sJ|jj|j|jSrU)rS is_uq_sigrOcompare_unique_constraintrKr'rd metadata_objconn_objs r(rbz(_uq_constraint_sig._compare_to_reflectedsQ     """yy22     r*Nr)r^rBrOrrKrrArrAzTuple[str, ...]r) rCrDrErRrHrV is_uniquer_rGrrbr2r*r(rrst F++I ( ( ( (  (??  (    r*rceZdZUdZded<ed dZ ddZ ddZe jdZ e jddZ e jdd Z e jd Ze jd Zy )_ix_constraint_sigTzsqla_compat._ConstraintNamerNc|td<y)Nindexrr3s r(rVz_ix_constraint_sig._registers r*c||_||_|j|_t|j|_||_yrU)rOrKrNrBuniquerrSr]s r(r_z_ix_constraint_sig.__init__s5  JJ ell+'r*c|jsJ|}|}t|sJ|jj|j|jSrU)rS is_index_sigrOcompare_indexesrKrs r(rbz(_ix_constraint_sig._compare_to_reflectedsL     H%%%yy((););X^^LLr*c@tj|jSrU)ris_expression_indexrKr&s r(has_expressionsz"_ix_constraint_sig.has_expressionss..tzz::r*czt|jjDcgc]}|jc}Scc}wrUrrs r(rz_ix_constraint_sig.column_namesrrc |t|jjDcgc]}t|ddc}Scc}w)NrN)rrK expressionsgetattrrs r(column_names_optionalz(_ix_constraint_sig.column_names_optionals337::3I3I JCWS&$ ' J  Js9cy)NTr2r&s r(rsz_ix_constraint_sig.is_namedsr*c6|jf|jzSrU)rrr&s r(ruz_ix_constraint_sig.unnameds 4#=#===r*Nr)r^rBrOrrKrrArrr)rAzTuple[Optional[str], ...])rCrDrErPrFrHrVr_rbrrrrrrsrur2r*r(rrsI %%(('2(;@( (M(M M ;; ??     >>r*rc^eZdZdZeddZ ddZejdZ y)_fk_constraint_sigTc|td<y)Nforeign_key_constraintrr3s r(rVz_fk_constraint_sig._registers ,/()r*c ||_||_||_tj|j |_tj |\ |_|_|_ |_ |_ |_ }}}}|j|jt|j|j|jt|jf|r%|jdk(rdn|jnd|r%|jdk(rdn|jnd|r|jdk(rdn|rdndfz|_y)Nz no actiondeferredinitially_deferrable deferrableznot deferrable)rSrOrKrrrN_fk_spec source_schema source_tablesource_columns target_schema target_tabletarget_columnsrlowerrM)r'r^rOrKonupdateondeleter initiallys r(r_z_fk_constraint_sig.__init__s2 (  77 C    '                       $%% &       $%% & & ")[8hnn>N")[8hnn>N !2j!@'%/\5E &  r*c|j|jt|j|j|j t|j fSrU)rrrrrrrr&s r(rwz%_fk_constraint_sig.unnamed_no_options4sN       $%% &       $%% &   r*Nr)r^rBrOrrKrrAr) rCrDrErQrHrVr_rrrwr2r*r(rrs_ F002 2 2 $ 2  2 h   r*rc|jSrU)rPrjs r(rr@s ==r*c|jSrU)rRrs r(rrD ::r*c|jSrU)rQrs r( is_fk_sigrHrr*N)rjrJrAzTypeGuard[_ix_constraint_sig])rjrJrAzTypeGuard[_uq_constraint_sig])rjrJrAzTypeGuard[_fk_constraint_sig])* __future__rtypingrrrrrr r r r r rrsqlalchemy.sql.schemarrrrtyping_extensionsrrrralembic.autogenerate.apiralembic.ddl.implrCompareConstraintTyperrrFrrJrrrrrrr2r*r(rs# ,6'2'7,j%/0 T./,. )."/0>fD )=>D Nr*