
    g                     J    d dl mZ d dlmZ d dlmZ ddlmZ  G d de      Zy)	    )Requirements)util)sqla_compat   )
exclusionsc                   \   e Zd Zed        Zed        Zed        Zed        Zed        Zed        Z	ed        Z
ed        Zed	        Zed
        Zed        Zed        Zed        Zed        Zed        Zed        Zed        Zed        Zed        Zed        Zed        Zed        Zed        Zed        Zed        Zed        Zed        Zed        Zed        Z ed        Z!ed        Z"ed         Z#ed!        Z$ed"        Z%ed#        Z&ed$        Z'ed%        Z(y&)'SuiteRequirementsc                 *    t        j                         S )zXTarget database must support external schemas, and have one
        named 'test_schema'.r   openselfs    [/var/www/html/AdoubleTech/venv/lib/python3.12/site-packages/alembic/testing/requirements.pyschemaszSuiteRequirements.schemas	       
       c                 *    t        j                         S )z;target database should support 'AUTOCOMMIT' isolation levelr   closedr   s    r   autocommit_isolationz&SuiteRequirements.autocommit_isolation   s       ""r   c                 *    t        j                         S )zneeded for sqlalchemy compatr   r   s    r   materialized_viewsz$SuiteRequirements.materialized_views   s       ""r   c                 2    d }t        j                  |      S )Nc                     ddl m}  || j                        }	 |j                  d       y# t        $ r Y yt
        $ r Y yt        $ r Y yw xY w)Nr   )inspectxTF)
sqlalchemyr   dbget_unique_constraintsNotImplementedError	TypeError	Exception)configr   insps      r    doesnt_have_check_uq_constraintszXSuiteRequirements.unique_constraint_reflection.<locals>.doesnt_have_check_uq_constraints   sX    *699%D++C0  '   s   , 	AAAAr   skip_if)r   r%   s     r   unique_constraint_reflectionz.SuiteRequirements.unique_constraint_reflection   s    	 !!"BCCr   c                 2    t        j                  d gd      S )z'Target database must support SEQUENCEs.c                 B    | j                   j                  j                  S N)r   dialectsupports_sequencesr#   s    r   <lambda>z-SuiteRequirements.sequences.<locals>.<lambda>2   s    FII--@@ r   zno sequence supportr   only_ifr   s    r   	sequenceszSuiteRequirements.sequences-   s      !!@A!
 	
r   c                 *    t        j                         S r+   r   r   s    r   foreign_key_matchz#SuiteRequirements.foreign_key_match6         r   c                 *    t        j                         S r+   r   r   s    r   !foreign_key_constraint_reflectionz3SuiteRequirements.foreign_key_constraint_reflection:   r5   r   c                 *    t        j                         S )zMTarget database must support check constraints
        and also enforce them.r   r   s    r   check_constraints_w_enforcementz1SuiteRequirements.check_constraints_w_enforcement>   r   r   c                 *    t        j                         S r+   r   r   s    r   reflects_pk_namesz#SuiteRequirements.reflects_pk_namesE         ""r   c                 *    t        j                         S r+   r   r   s    r   reflects_fk_optionsz%SuiteRequirements.reflects_fk_optionsI   r<   r   c                 0    t        j                  d d      S )Nc                 $    t         j                   S r+   )r   sqla_14r.   s    r   r/   z1SuiteRequirements.sqlalchemy_14.<locals>.<lambda>P   s    t||+ r   z"SQLAlchemy 1.4 or greater requiredr&   r   s    r   sqlalchemy_14zSuiteRequirements.sqlalchemy_14M   s    !!+0
 	
r   c                 0    t        j                  d d      S )Nc                 "    t         j                  S r+   r   sqla_2r.   s    r   r/   z1SuiteRequirements.sqlalchemy_1x.<locals>.<lambda>W   s
    4;; r   zSQLAlchemy 1.x testr&   r   s    r   sqlalchemy_1xzSuiteRequirements.sqlalchemy_1xT   s    !!&!
 	
r   c                 0    t        j                  d d      S )Nc                 $    t         j                   S r+   rE   r.   s    r   r/   z0SuiteRequirements.sqlalchemy_2.<locals>.<lambda>^   s    t{{? r   zSQLAlchemy 2.x testr&   r   s    r   sqlalchemy_2zSuiteRequirements.sqlalchemy_2[   s    !!*!
 	
r   c                 L    d }| j                   t        j                  |      z   S )Nc                 ,    	 dd l }y# t        $ r Y yw xY w)Nr   TF)greenletImportError)r#   rM   s     r   goz%SuiteRequirements.asyncio.<locals>.god   s#       s    	)rB   r   r1   )r   rO   s     r   asynciozSuiteRequirements.asynciob   s%    	 !!J$6$6r$:::r   c                 .    t        j                  d       S )Nc                 B    | j                   j                  j                  S r+   )r   r,   supports_commentsr.   s    r   r/   z,SuiteRequirements.comments.<locals>.<lambda>q   s    699,,>> r   r0   r   s    r   commentszSuiteRequirements.commentsn   s    !!>
 	
r   c                 *    t        j                         S r+   r   r   s    r   alter_columnzSuiteRequirements.alter_columnt   r5   r   c                 *    t        j                         S r+   r   r   s    r   computed_columnsz"SuiteRequirements.computed_columnsx   r<   r   c                 n    t        j                  t        j                  t        j                              S r+   )r   r1   BooleanPredicater   has_computedr   s    r   computed_columns_apiz&SuiteRequirements.computed_columns_api|   )    !!''(@(@A
 	
r   c                 n    t        j                  t        j                  t        j                              S r+   )r   r1   rZ   r   has_computed_reflectionr   s    r   computed_reflects_normallyz,SuiteRequirements.computed_reflects_normally   s)    !!''(K(KL
 	
r   c                 *    t        j                         S r+   r   r   s    r   #computed_reflects_as_server_defaultz5SuiteRequirements.computed_reflects_as_server_default   r<   r   c                 *    t        j                         S r+   r   r   s    r   )computed_doesnt_reflect_as_server_defaultz;SuiteRequirements.computed_doesnt_reflect_as_server_default   r<   r   c                 *    t        j                         S r+   r   r   s    r   autoincrement_on_composite_pkz/SuiteRequirements.autoincrement_on_composite_pk   r<   r   c                 *    t        j                         S r+   r   r   s    r   fk_ondelete_is_reflectedz*SuiteRequirements.fk_ondelete_is_reflected   r<   r   c                 *    t        j                         S r+   r   r   s    r   fk_onupdate_is_reflectedz*SuiteRequirements.fk_onupdate_is_reflected   r<   r   c                 *    t        j                         S r+   r   r   s    r   fk_onupdatezSuiteRequirements.fk_onupdate   r5   r   c                 *    t        j                         S r+   r   r   s    r   fk_ondelete_restrictz&SuiteRequirements.fk_ondelete_restrict   r5   r   c                 *    t        j                         S r+   r   r   s    r   fk_onupdate_restrictz&SuiteRequirements.fk_onupdate_restrict   r5   r   c                 *    t        j                         S r+   r   r   s    r   fk_ondelete_noactionz&SuiteRequirements.fk_ondelete_noaction   r5   r   c                 *    t        j                         S r+   r   r   s    r   fk_initiallyzSuiteRequirements.fk_initially   r<   r   c                 *    t        j                         S r+   r   r   s    r   fk_deferrablezSuiteRequirements.fk_deferrable   r<   r   c                 *    t        j                         S r+   r   r   s    r   fk_deferrable_is_reflectedz,SuiteRequirements.fk_deferrable_is_reflected   r<   r   c                 *    t        j                         S r+   r   r   s    r   fk_nameszSuiteRequirements.fk_names   r5   r   c                 *    t        j                         S r+   r   r   s    r   integer_subtype_comparisonsz-SuiteRequirements.integer_subtype_comparisons   r5   r   c                 .    t        j                  d       S )Nc                 B    | j                   j                  j                  S r+   )r   r,   requires_name_normalizer.   s    r   r/   z5SuiteRequirements.no_name_normalize.<locals>.<lambda>   s    699,,DD r   r&   r   s    r   no_name_normalizez#SuiteRequirements.no_name_normalize   s    !!D
 	
r   c                 *    t        j                         S r+   r   r   s    r   identity_columnsz"SuiteRequirements.identity_columns   r<   r   c                 *    t        j                         S r+   r   r   s    r   identity_columns_alterz(SuiteRequirements.identity_columns_alter   r<   r   c                 n    t        j                  t        j                  t        j                              S r+   )r   r1   rZ   r   has_identityr   s    r   identity_columns_apiz&SuiteRequirements.identity_columns_api   r]   r   N))__name__
__module____qualname__propertyr   r   r   r(   r2   r4   r7   r9   r;   r>   rB   rG   rJ   rP   rT   rV   rX   r\   r`   rb   rd   rf   rh   rj   rl   rn   rp   rr   rt   rv   rx   rz   r|   r   r   r   r    r   r   r	   r	      s   ! ! # #
 # # D D" 
 
 ! ! ! ! ! ! # # # # 
 
 
 
 
 
 	; 	; 
 

 ! ! # # 
 

 
 

 # # # # # # # # # # ! ! ! ! ! ! ! ! # # # # # # ! ! ! ! 
 

 # # # # 
 
r   r	   N)	sqlalchemy.testing.requirementsr   alembicr   alembic.utilr   testingr   r	   r   r   r   <module>r      s    8  $  J
 J
r   