|L i>ddlmZddlmZddlmZGddeZy)) Requirements)util) exclusionsceZdZedZedZedZedZedZedZ edZ edZ ed Z ed Z ed Zed Zed ZedZedZedZedZedZedZedZedZedZedZedZedZedZedZedZedZ edZ!edZ"ed Z#ed!Z$y")#SuiteRequirementsc*tjS)zXTarget database must support external schemas, and have one named 'test_schema'.ropenselfs b/mnt/ssd/data/python-lab/Trading/venv/lib/python3.12/site-packages/alembic/testing/requirements.pyschemaszSuiteRequirements.schemas   c*tjS)z;target database should support 'AUTOCOMMIT' isolation levelrclosedr s rautocommit_isolationz&SuiteRequirements.autocommit_isolations  ""rc*tjS)zneeded for sqlalchemy compatrr s rmaterialized_viewsz$SuiteRequirements.materialized_viewss  ""rc2d}tj|S)Ncddlm}||j} |jdy#t$rYyt $rYyt $rYywxYw)Nr)inspectxTF) sqlalchemyrdbget_unique_constraintsNotImplementedError TypeError Exception)configrinsps r doesnt_have_check_uq_constraintszXSuiteRequirements.unique_constraint_reflection..doesnt_have_check_uq_constraintssX *699%D ++C0 '    s, A A A  A rskip_if)r r$s runique_constraint_reflectionz.SuiteRequirements.unique_constraint_reflections !!"BCCrc2tjdgdS)z'Target database must support SEQUENCEs.cB|jjjSN)rdialectsupports_sequencesr"s rz-SuiteRequirements.sequences..1sFII--@@rzno sequence supportronly_ifr s r sequenceszSuiteRequirements.sequences,s !! @ A !  rc*tjSr*r r s rforeign_key_matchz#SuiteRequirements.foreign_key_match5  rc*tjSr*r r s r!foreign_key_constraint_reflectionz3SuiteRequirements.foreign_key_constraint_reflection9r4rc*tjS)zMTarget database must support check constraints and also enforce them.r r s rcheck_constraints_w_enforcementz1SuiteRequirements.check_constraints_w_enforcement=rrc*tjSr*rr s rreflects_pk_namesz#SuiteRequirements.reflects_pk_namesD  ""rc*tjSr*rr s rreflects_fk_optionsz%SuiteRequirements.reflects_fk_optionsHr;rc0tjddS)Nc"tjSr*rsqla_2r-s rr.z1SuiteRequirements.sqlalchemy_1x..Os 4;;rzSQLAlchemy 1.x testr%r s r sqlalchemy_1xzSuiteRequirements.sqlalchemy_1xLs!! & !  rc0tjddS)Nc$tj Sr*r@r-s rr.z0SuiteRequirements.sqlalchemy_2..Vs t{{?rzSQLAlchemy 2.x testr%r s r sqlalchemy_2zSuiteRequirements.sqlalchemy_2Ss!! * !  rc2d}tj|S)Nc, ddl}y#t$rYywxYw)NrTF)greenlet ImportError)r"rHs rgoz%SuiteRequirements.asyncio..go\s#   s  r/r rJs rasynciozSuiteRequirements.asyncioZs !!"%%rc.tjdS)NcB|jjjSr*)rr+supports_commentsr-s rr.z,SuiteRequirements.comments..is699,,>>rr/r s rcommentszSuiteRequirements.commentsfs!! >  rc*tjSr*r r s r alter_columnzSuiteRequirements.alter_columnlr4rc*tjSr*rr s rcomputed_columnsz"SuiteRequirements.computed_columnspr;rc^d}tjdtj|zS)NcBt|jjdS)N"supports_virtual_generated_columns)hasattrrr+r-s rrJz@SuiteRequirements.computed_columns_warn_no_persisted..govs !!#G rz postgresql<18r/rKs r"computed_columns_warn_no_persistedz4SuiteRequirements.computed_columns_warn_no_persistedts*  !!/2Z5G5G5KKKrc*tjSr*rr s rautoincrement_on_composite_pkz/SuiteRequirements.autoincrement_on_composite_pk}r;rc*tjSr*rr s rfk_ondelete_is_reflectedz*SuiteRequirements.fk_ondelete_is_reflectedr;rc*tjSr*rr s rfk_onupdate_is_reflectedz*SuiteRequirements.fk_onupdate_is_reflectedr;rc*tjSr*r r s r fk_onupdatezSuiteRequirements.fk_onupdater4rc*tjSr*r r s rfk_ondelete_restrictz&SuiteRequirements.fk_ondelete_restrictr4rc*tjSr*r r s rfk_onupdate_restrictz&SuiteRequirements.fk_onupdate_restrictr4rc*tjSr*r r s rfk_ondelete_noactionz&SuiteRequirements.fk_ondelete_noactionr4rc*tjSr*rr s r fk_initiallyzSuiteRequirements.fk_initiallyr;rc*tjSr*rr s r fk_deferrablezSuiteRequirements.fk_deferrabler;rc*tjSr*rr s rfk_deferrable_is_reflectedz,SuiteRequirements.fk_deferrable_is_reflectedr;rc|jSr*)foreign_key_name_reflectionr s rfk_nameszSuiteRequirements.fk_namess///rc*tjSr*r r s rroz-SuiteRequirements.foreign_key_name_reflectionr4rc*tjSr*r r s rinteger_subtype_comparisonsz-SuiteRequirements.integer_subtype_comparisonsr4rc.tjdS)NcB|jjjSr*)rr+requires_name_normalizer-s rr.z5SuiteRequirements.no_name_normalize..s699,,DDrr%r s rno_name_normalizez#SuiteRequirements.no_name_normalizes!! D  rc*tjSr*rr s ridentity_columnsz"SuiteRequirements.identity_columnsr;rc*tjSr*rr s ridentity_columns_alterz(SuiteRequirements.identity_columns_alterr;rN)%__name__ __module__ __qualname__propertyrrrr'r1r3r6r8r:r=rBrErLrPrRrTrYr[r]r_rarcrergrirkrmrprorsrwryr{rrrrs !! ## ##DD"  !!!!!! ####     & &  !!##LL######!!!!!!!!######00!!!!  ####rrN)sqlalchemy.testing.requirementsralembicrtestingrrrrrrs8 v# v#r