U aj@sddlZddlmZddlmZddlmZddlmZddlmZdd lm Z d d gZ iZ d d Z d d Z GdddeZGdddeZddZddZdS)N)config) exclusions)event)schema)types) OrderedDictTableColumnc sNfddtD}tttjdrjdkrdkrdkrd|ksVd|kr`d d<qd d<nHttjd rd krd krdkrd|ksd|krd d <nd d <ttjdrB|d}tjjj j }dd|D}|D]X}|j }t |t jr |jj}n ||d}||kr|jdkr0d|_|jdkrd|_qt j|S)z8A schema.Table wrapper/hook for dialect-specific tweaks.cs"i|]}|dr||qSZtest_ startswithpop.0kkwZC:\Users\vtejo\AppData\Local\Temp\pip-unpacked-wheel-nyjtotrf\sqlalchemy\testing\schema.py s zTable..ZmysqlZ mysql_engineZ mysql_typeZ autoload_withZ test_needs_fkZtest_needs_acidZInnoDBZMyISAMZmariadbZmariadb_engineZ mariadb_typefirebirdrcSs(g|] }t|tjr|jD]}|qqSr) isinstancerr Z foreign_keys)rcolfkrrr ;s  zTable..NZCASCADE)listupdate table_optionsragainstr_currentdbdialectZidentifier_preparerZunformat_identifiersZ_colspecrrr tablenameZondeleteZonupdater ) argsr test_optsZ table_nameunpackZfksrrefr%rrrr sN         csfddtD}tjjts2dd|D}tj|}|ddrddr|jdkrp|j dkrpd |_ d |j d<t tjd d rd d }tj|d|d d|S)z9A schema.Column wrapper/hook for dialect-specific tweaks.cs"i|]}|dr||qSr r rrrrrXs zColumn..cSsg|]}t|tjs|qSr)rrZ ForeignKey)rargrrrr[s zColumn..Ztest_needs_autoincrementFZ primary_keyNTrZoraclecSs2|tjttjj|jd|jddddS)N_Z_seqT)optional)Z _init_itemsrSequence_truncate_namerr"r#r%)cZtblrrradd_seqlszColumn..add_seqZafter_parent_attach) propagate)rr requirementsZforeign_key_ddlZenabled_for_configrr getdefaultZserver_defaultZ autoincrementinforr r!rlisten)r&rr'rr0rrrr Us   c@s(eZdZdZddZddZddZdS) 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, }, ], ) cCst||_dSN)sqltypesZ to_instancetargetselfr:rrr__init__szeq_type_affinity.__init__cCs|jj|jkSr8r:Z_type_affinityr<otherrrr__eq__szeq_type_affinity.__eq__cCs|jj|jk Sr8r>r?rrr__ne__szeq_type_affinity.__ne__N__name__ __module__ __qualname____doc__r=rArBrrrrr7zsr7c@s(eZdZdZddZddZddZdS) eq_clause_elementz3Helper to compare SQL structures based on compare()cCs ||_dSr8)r:r;rrrr=szeq_clause_element.__init__cCs |j|Sr8r:comparer?rrrrAszeq_clause_element.__eq__cCs|j| Sr8rIr?rrrrBszeq_clause_element.__ne__NrCrrrrrHsrHcCsJt||jkrB|dt|jdddtt|dddS|SdS)Nrr+@r)lenZmax_identifier_lengthmaxhexhash)r#r%rrrr.sr.c st}d fdd }itfdd}t|tf|||d}ztdjdd}Wntt fk rnYnX|dk r~||_ |S) NcsL||_||_||j|<||<t|j|||rH||j|<t|j||dSr8)r%value __members__setattr __class__)r<r%rQaliasZvalue_to_memberrrr=s  zpep435_enum..__init__cs|Sr8r)clsrQrVrrr3szpep435_enum..get)rRr=r3rrD__main__)N) r classmethodtypeobjectsys _getframe f_globalsr3AttributeError ValueErrorrE)r%rRr=r3ZsomeenummodulerrVr pep435_enums"  rb)r\rrrrrr9utilr __all__rr r r[r7rHr.rbrrrrs      >%%