L iqddlmZddlZddlmZddlmZddlmZddlmZdd lmZ dd l m Z dd l mZd d gZiZddZdZ dZdZGddZGddZGddZdZdZy)) annotationsN)config) exclusions)event)schema)types) mapped_column) OrderedDictTableColumnct|Dcic]&}|jds||j|(}}|jtt j tjdr d|vr_d|vr[d|vrWd|vsd|vrd|d<nId |d<nCt j tjd rd |vrd |vrd|vrd|vsd|vrd|d <nd |d <tj|i|Scc}w) z8A schema.Table wrapper/hook for dialect-specific tweaks.test_mysql mysql_engine mysql_type autoload_with test_needs_fktest_needs_acidInnoDBMyISAMmariadbmariadb_engine mariadb_type) list startswithpopupdate table_optionsragainstr_currentr r )argskwk test_optss _/mnt/ssd/data/python-lab/Trading/venv/lib/python3.12/site-packages/sqlalchemy/testing/schema.pyr r s(,BxI!1<<3HBFF1IIIIIIm&//73 " $B&r))+/@I/M%->"&.>"   FOOY 7 B &b(r))+/@I/M'/#$'/#$ << $ $$?Js C,C,c$tt||S)z>An orm.mapped_column wrapper/hook for dialect-specific tweaks.)_schema_column_orm_mapped_columnr#r$s r'r r ?s ,dB 77c8ttj||S)z9A schema.Column wrapper/hook for dialect-specific tweaks.)r)r rr+s r'rrEs &--r 22r,ct|Dcic]&}|jds||j|(}}tjj j ts*|Dcgc]}t|tjr|!}}||i|}|tjur|}n |j}|jddr|jddrn|j|jd|_d|j d<t#j$tj&drd}t)j*|d|d |Scc}wcc}w) Nrtest_needs_autoincrementF primary_keyToraclec |jtjttj j |jdz|jzdzdy)N__seqT)optional) _init_itemsr Sequence_truncate_namerdbdialectname)ctbls r'add_seqz_schema_column..add_seqesL OO&"II--sxx#~/F/O"& r,after_parent_attach) propagate)rrrr requirementsforeign_key_ddlenabled_for_config isinstancer ForeignKeyrcolumngetdefaultserver_default autoincrementinforr!r"rlisten) factoryr#r$r%r&arg constructcolr>s r'r)r)Ks)'+BxI!1<<3HBFF1IIII    . . A A& I#N:c6;L;L+MNN$$I&--}}/7BFFu= ;; 3#5#5#= $C 04+,   foox 8  LL3W M IJOsEE,E Ec"eZdZdZdZdZdZy)eq_type_affinityaHelper to compare types inside of datastructures based on affinity. E.g.:: eq_( inspect(connection).get_columns("foo"), [ { "name": "id", "type": testing.eq_type_affinity(sqltypes.INTEGER), "nullable": False, "default": None, "autoincrement": False, }, { "name": "data", "type": testing.eq_type_affinity(sqltypes.NullType), "nullable": True, "default": None, "autoincrement": False, }, ], ) c8tj||_yN)sqltypes to_instancetargetselfrWs r'__init__zeq_type_affinity.__init__s**62 r,cF|jj|juSrTrW_type_affinityrYothers r'__eq__zeq_type_affinity.__eq__s{{))U-A-AAAr,cF|jj|juSrTr\r^s r'__ne__zeq_type_affinity.__ne__s{{))1E1EEEr,N__name__ __module__ __qualname____doc__rZr`rbr,r'rRrRss43BFr,rRc"eZdZdZdZdZdZy)eq_compile_typez,similar to eq_type_affinity but uses compilec||_yrTrWrXs r'rZzeq_compile_type.__init__  r,c<|j|jk(SrTrWcompiler^s r'r`zeq_compile_type.__eq__{{emmo--r,c<|j|jk7SrTror^s r'rbzeq_compile_type.__ne__rqr,Nrcrhr,r'rjrjs6..r,rjc"eZdZdZdZdZdZy)eq_clause_elementz3Helper to compare SQL structures based on compare()c||_yrTrlrXs r'rZzeq_clause_element.__init__rmr,c8|jj|SrTrWcomparer^s r'r`zeq_clause_element.__eq__s{{""5))r,c:|jj| SrTrwr^s r'rbzeq_clause_element.__ne__s;;&&u---r,Nrcrhr,r'rtrts=*.r,rtct||jkDr:|dt|jdz ddztt |dzddzS|S)Nrr3@r)lenmax_identifier_lengthmaxhexhash)r:r;s r'r8r8s` 4y7000 S66:A> ? $t*r/"12& '  r,ct}dfd }itfd}t|tf|||d} t j dj jdd}||_ |S#ttf$rYwxYw)Nc||_||_||j|<||<t|j|||r'||j|<t|j||yyrT)r;value __members__setattr __class__)rYr;raliasvalue_to_members r'rZzpep435_enum..__init__sc  !%!%d+ &*D  U # DNNE4 0 r,c|SrTrh)clsrrs r'rGzpep435_enum..getsu%%r,)rrZrGrrd__main__rT) r classmethodtypeobjectsys _getframe f_globalsrGAttributeError ValueErrorre)r;rrZrGsomeenummodulers @r' pep435_enumrs-K1O&&  ##FH q!++// JG$ O J '   s/A33BB)returnz schema.Table) __future__rrrrrr r rUormr r*utilr __all__r r rr)rRrjrtr8rrhr,r'rsr#  5 H  "%J8 3 %P"F"FJ . . . .#r,