
    Pqh                     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                   L   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'y%)&SuiteRequirementsc                 *    t        j                         S )zXTarget database must support external schemas, and have one
        named 'test_schema'.r   openselfs    ]/srv/www/ollama/chat-ollama/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                 .    t        j                  d       S )Nc                 B    | j                   j                  j                  S r+   )r   r,   supports_commentsr.   s    r   r/   z,SuiteRequirements.comments.<locals>.<lambda>e   s    699,,>> r   r0   r   s    r   commentszSuiteRequirements.commentsb   s    !!>
 	
r   c                 *    t        j                         S r+   r   r   s    r   alter_columnzSuiteRequirements.alter_columnh   r5   r   c                 *    t        j                         S r+   r   r   s    r   computed_columnsz"SuiteRequirements.computed_columnsl   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_apip   )    !!''(@(@A
 	
r   c                 n    t        j                  t        j                  t        j                              S r+   )r   r1   rT   r   has_computed_reflectionr   s    r   computed_reflects_normallyz,SuiteRequirements.computed_reflects_normallyv   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   rT   r   has_identityr   s    r   identity_columns_apiz&SuiteRequirements.identity_columns_api   rW   r   N)(__name__
__module____qualname__propertyr   r   r   r(   r2   r4   r7   r9   r;   r>   rB   rG   rJ   rN   rP   rR   rV   rZ   r\   r^   r`   rb   rd   rf   rh   rj   rl   rn   rp   rr   rt   rv   rz   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  $  ~
 ~
r   