o
    ‹ågT  ã                   @   s8   d dl mZ d dlmZ ddlmZ G dd„ deƒZdS )é    )ÚRequirements)Úutilé   )Ú
exclusionsc                   @   s€  e Zd Zedd„ ƒZedd„ ƒZedd„ ƒZedd„ ƒZed	d
„ ƒZedd„ ƒZ	edd„ ƒZ
edd„ ƒZedd„ ƒZedd„ ƒZedd„ ƒZedd„ ƒZedd„ ƒZedd„ ƒZedd„ ƒZedd „ ƒZed!d"„ ƒZed#d$„ ƒZed%d&„ ƒZed'd(„ ƒZed)d*„ ƒZed+d,„ ƒZed-d.„ ƒZed/d0„ ƒZed1d2„ ƒZed3d4„ ƒZed5d6„ ƒZed7d8„ ƒZed9d:„ ƒZ ed;d<„ ƒZ!ed=d>„ ƒZ"d?S )@ÚSuiteRequirementsc                 C   ó   t  ¡ S )zXTarget database must support external schemas, and have one
        named 'test_schema'.©r   Úopen©Úself© r   úX/var/www/html/flaskapp/venv/lib/python3.10/site-packages/alembic/testing/requirements.pyÚschemas   ó   zSuiteRequirements.schemasc                 C   r   )z;target database should support 'AUTOCOMMIT' isolation level©r   Úclosedr
   r   r   r   Úautocommit_isolation   s   z&SuiteRequirements.autocommit_isolationc                 C   r   )zneeded for sqlalchemy compatr   r
   r   r   r   Úmaterialized_views   s   z$SuiteRequirements.materialized_viewsc                 C   ó   dd„ }t  |¡S )Nc                 S   s`   ddl m} || jƒ}z| d¡ W dS  ty   Y dS  ty&   Y dS  ty/   Y dS w )Nr   )ÚinspectÚxTF)Ú
sqlalchemyr   ÚdbÚget_unique_constraintsÚNotImplementedErrorÚ	TypeErrorÚ	Exception)Úconfigr   Úinspr   r   r   Ú doesnt_have_check_uq_constraints   s   
úþzXSuiteRequirements.unique_constraint_reflection.<locals>.doesnt_have_check_uq_constraints©r   Úskip_if)r   r   r   r   r   Úunique_constraint_reflection   s   
z.SuiteRequirements.unique_constraint_reflectionc                 C   s   t  dd„ gd¡S )z'Target database must support SEQUENCEs.c                 S   ó
   | j jjS ©N)r   ÚdialectÚsupports_sequences©r   r   r   r   Ú<lambda>1   ó   
 z-SuiteRequirements.sequences.<locals>.<lambda>zno sequence support©r   Úonly_ifr
   r   r   r   Ú	sequences,   s   þzSuiteRequirements.sequencesc                 C   r   r$   r   r
   r   r   r   Úforeign_key_match5   ó   z#SuiteRequirements.foreign_key_matchc                 C   r   r$   r   r
   r   r   r   Ú!foreign_key_constraint_reflection9   r.   z3SuiteRequirements.foreign_key_constraint_reflectionc                 C   r   )zMTarget database must support check constraints
        and also enforce them.r   r
   r   r   r   Úcheck_constraints_w_enforcement=   r   z1SuiteRequirements.check_constraints_w_enforcementc                 C   r   r$   r   r
   r   r   r   Úreflects_pk_namesD   r.   z#SuiteRequirements.reflects_pk_namesc                 C   r   r$   r   r
   r   r   r   Úreflects_fk_optionsH   r.   z%SuiteRequirements.reflects_fk_optionsc                 C   ó   t  dd„ d¡S )Nc                 S   s   t jS r$   ©r   Úsqla_2r'   r   r   r   r(   O   s    z1SuiteRequirements.sqlalchemy_1x.<locals>.<lambda>zSQLAlchemy 1.x testr    r
   r   r   r   Úsqlalchemy_1xL   ó   þzSuiteRequirements.sqlalchemy_1xc                 C   r3   )Nc                 S   s   t j S r$   r4   r'   r   r   r   r(   V   s    z0SuiteRequirements.sqlalchemy_2.<locals>.<lambda>zSQLAlchemy 2.x testr    r
   r   r   r   Úsqlalchemy_2S   r7   zSuiteRequirements.sqlalchemy_2c                 C   r   )Nc                 S   s$   zdd l }W dS  ty   Y dS w )Nr   FT)ÚgreenletÚImportError)r   r9   r   r   r   Úgo\   s   
ýÿz%SuiteRequirements.asyncio.<locals>.gor*   )r   r;   r   r   r   ÚasyncioZ   s   
zSuiteRequirements.asyncioc                 C   ó   t  dd„ ¡S )Nc                 S   r#   r$   )r   r%   Úsupports_commentsr'   r   r   r   r(   i   r)   z,SuiteRequirements.comments.<locals>.<lambda>r*   r
   r   r   r   Úcommentsf   ó   ÿzSuiteRequirements.commentsc                 C   r   r$   r   r
   r   r   r   Úalter_columnl   r.   zSuiteRequirements.alter_columnc                 C   r   r$   r   r
   r   r   r   Úcomputed_columnsp   r.   z"SuiteRequirements.computed_columnsc                 C   r   r$   r   r
   r   r   r   Úautoincrement_on_composite_pkt   r.   z/SuiteRequirements.autoincrement_on_composite_pkc                 C   r   r$   r   r
   r   r   r   Úfk_ondelete_is_reflectedx   r.   z*SuiteRequirements.fk_ondelete_is_reflectedc                 C   r   r$   r   r
   r   r   r   Úfk_onupdate_is_reflected|   r.   z*SuiteRequirements.fk_onupdate_is_reflectedc                 C   r   r$   r   r
   r   r   r   Úfk_onupdate€   r.   zSuiteRequirements.fk_onupdatec                 C   r   r$   r   r
   r   r   r   Úfk_ondelete_restrict„   r.   z&SuiteRequirements.fk_ondelete_restrictc                 C   r   r$   r   r
   r   r   r   Úfk_onupdate_restrictˆ   r.   z&SuiteRequirements.fk_onupdate_restrictc                 C   r   r$   r   r
   r   r   r   Úfk_ondelete_noactionŒ   r.   z&SuiteRequirements.fk_ondelete_noactionc                 C   r   r$   r   r
   r   r   r   Úfk_initially�   r.   zSuiteRequirements.fk_initiallyc                 C   r   r$   r   r
   r   r   r   Úfk_deferrable”   r.   zSuiteRequirements.fk_deferrablec                 C   r   r$   r   r
   r   r   r   Úfk_deferrable_is_reflected˜   r.   z,SuiteRequirements.fk_deferrable_is_reflectedc                 C   r   r$   r   r
   r   r   r   Úfk_namesœ   r.   zSuiteRequirements.fk_namesc                 C   r   r$   r   r
   r   r   r   Úinteger_subtype_comparisons    r.   z-SuiteRequirements.integer_subtype_comparisonsc                 C   r=   )Nc                 S   r#   r$   )r   r%   Úrequires_name_normalizer'   r   r   r   r(   §   r)   z5SuiteRequirements.no_name_normalize.<locals>.<lambda>r    r
   r   r   r   Úno_name_normalize¤   r@   z#SuiteRequirements.no_name_normalizec                 C   r   r$   r   r
   r   r   r   Úidentity_columnsª   r.   z"SuiteRequirements.identity_columnsc                 C   r   r$   r   r
   r   r   r   Úidentity_columns_alter®   r.   z(SuiteRequirements.identity_columns_alterN)#Ú__name__Ú
__module__Ú__qualname__Úpropertyr   r   r   r"   r,   r-   r/   r0   r1   r2   r6   r8   r<   r?   rA   rB   rC   rD   rE   rF   rG   rH   rI   rJ   rK   rL   rM   rN   rP   rQ   rR   r   r   r   r   r      s~    





























r   N)Úsqlalchemy.testing.requirementsr   Úalembicr   Útestingr   r   r   r   r   r   Ú<module>   s    