
    ,hq                        S SK Jr  S SKrSSKJr  SSKJr  SSKJr  SSKJr  SS	KJr	  SS
K
Jr  SSKJr  SS/r0 rSS jrS rS rS r " S S5      r " S S5      r " S S5      rS rS rg)    )annotationsN   )config)
exclusions   )event)schema)types)mapped_column)OrderedDictTableColumnc                 2   [        U5       Vs0 s H+  o"R                  S5      (       d  M  X!R                  U5      _M-     nnUR                  [        5        [
        R                  " [        R                  S5      (       a*  SU;  a#  SU;  a  SU;  a  SU;   d  SU;   a  SUS'   OYS	US'   OS[
        R                  " [        R                  S
5      (       a)  SU;  a#  SU;  a  SU;  a  SU;   d  SU;   a  SUS'   OS	US'   [        R                  " U 0 UD6$ s  snf )z8A schema.Table wrapper/hook for dialect-specific tweaks.test_mysqlmysql_engine
mysql_typeautoload_withtest_needs_fktest_needs_acidInnoDBMyISAMmariadbmariadb_enginemariadb_type)list
startswithpopupdatetable_optionsr   againstr   _currentr	   r   )argskwk	test_optss       Q/var/www/auris/envauris/lib/python3.13/site-packages/sqlalchemy/testing/schema.pyr   r      s    (,BxIx!<<3HFF1IxIIIIm&//733"$B&r))+/@I/M%->" &.>"			FOOY	7	7B&b(r))+/@I/M'/#$'/#$<<$$$? Js
   DDc                 "    [        [        X5      $ )z>An orm.mapped_column wrapper/hook for dialect-specific tweaks.)_schema_column_orm_mapped_columnr#   r$   s     r'   r   r   ?   s     ,d77    c                 6    [        [        R                  X5      $ )z9A schema.Column wrapper/hook for dialect-specific tweaks.)r)   r	   r   r+   s     r'   r   r   E   s     &--22r,   c                   [        U5       Vs0 s H+  o3R                  S5      (       d  M  X2R                  U5      _M-     nn[        R                  R
                  R                  [        5      (       d3  U Vs/ s H&  n[        U[        R                  5      (       a  M$  UPM(     nnU " U0 UD6nU [        R                  L a  UnOUR                  nUR                  SS5      (       a  UR                  SS5      (       at  UR                  c  UR                  c  SUl        SUR                   S'   ["        R$                  " [        R&                  S5      (       a  S n[(        R*                  " USUSS	9  U$ s  snf s  snf )
Nr   test_needs_autoincrementFprimary_keyToraclec           	         U R                  [        R                  " [        [        R
                  R                  UR                  S-   U R                  -   S-   5      SS95        g )N__seqT)optional)_init_itemsr	   Sequence_truncate_namer   dbdialectname)ctbls     r'   add_seq_schema_column.<locals>.add_seqe   sL    OO&"II--sxx#~/F/O "&	r,   after_parent_attach)	propagate)r   r   r   r   requirementsforeign_key_ddlenabled_for_config
isinstancer	   
ForeignKeyr   columngetdefaultserver_defaultautoincrementinfor   r!   r"   r   listen)	factoryr#   r$   r%   r&   arg	constructcolr>   s	            r'   r)   r)   K   s7   '+BxIx!<<3HFF1IxII..AA&II#Nt:c6;L;L+MtN$$I&--}}/77BFFu= = ;;3#5#5#= $C 04+, foox88 LL3WMI J Os   E5E58#E:E:c                  *    \ rS rSrSrS rS rS rSrg)eq_type_affinitys   az  Helper 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,
            },
        ],
    )

c                :    [         R                  " U5      U l        g N)sqltypesto_instancetargetselfrY   s     r'   __init__eq_type_affinity.__init__   s    **62r,   c                F    U R                   R                  UR                  L $ rV   rY   _type_affinityr[   others     r'   __eq__eq_type_affinity.__eq__   s    {{))U-A-AAAr,   c                F    U R                   R                  UR                  L$ rV   r_   ra   s     r'   __ne__eq_type_affinity.__ne__   s    {{))1E1EEEr,   rY   N	__name__
__module____qualname____firstlineno____doc__r\   rc   rf   __static_attributes__ r,   r'   rS   rS   s   s    43BFr,   rS   c                  *    \ rS rSrSrS rS rS rSrg)eq_compile_type   z,similar to eq_type_affinity but uses compilec                    Xl         g rV   rh   rZ   s     r'   r\   eq_compile_type.__init__       r,   c                <    U R                   UR                  5       :H  $ rV   rY   compilera   s     r'   rc   eq_compile_type.__eq__       {{emmo--r,   c                <    U R                   UR                  5       :g  $ rV   rx   ra   s     r'   rf   eq_compile_type.__ne__   r{   r,   rh   Nri   rp   r,   r'   rr   rr      s    6..r,   rr   c                  *    \ rS rSrSrS rS rS rSrg)eq_clause_element   z3Helper to compare SQL structures based on compare()c                    Xl         g rV   rh   rZ   s     r'   r\   eq_clause_element.__init__   rv   r,   c                8    U R                   R                  U5      $ rV   rY   comparera   s     r'   rc   eq_clause_element.__eq__   s    {{""5))r,   c                B    U R                   R                  U5      (       + $ rV   r   ra   s     r'   rf   eq_clause_element.__ne__   s    ;;&&u---r,   rh   Nri   rp   r,   r'   r   r      s    =*.r,   r   c                    [        U5      U R                  :  a:  US[        U R                  S-
  S5       S-   [        [	        U5      S-  5      SS  -   $ U$ )Nr      r3   @   r   )lenmax_identifier_lengthmaxhexhash)r:   r;   s     r'   r8   r8      s`    
4y7000S66:A>?$t*r/"12&'	
 r,   c                  ^ [        5       nSU4S jjn0 m[        U4S j5       n[        U [        4XUS.5      n [        R
                  " S5      R                  R                  SS5      nWb  XTl
        U$ ! [        [        4 a     Nf = f)Nc                   > Xl         X l        X R                  U'   U TU'   [        U R                  X5        U(       a%  X R                  U'   [        U R                  X05        g g rV   )r;   value__members__setattr	__class__)r[   r;   r   aliasvalue_to_members       r'   r\   pep435_enum.<locals>.__init__   sW    	
!%!%+&*U#DNNE0 r,   c                   > TU   $ rV   rp   )clsr   r   s     r'   rH   pep435_enum.<locals>.get   s    u%%r,   )r   r\   rH   r   rj   __main__rV   )r   classmethodtypeobjectsys	_getframe	f_globalsrH   AttributeError
ValueErrorrk   )r;   r   r\   rH   someenummoduler   s         @r'   pep435_enumr      s    -K1 O& & 		##FHq!++//
JG $O J' s   0A6 6B	B	)returnzschema.Table)
__future__r   r    r   r   r   r	   r
   rW   ormr   r*   utilr   __all__r    r   r   r)   rS   rr   r   r8   r   rp   r,   r'   <module>r      sr    # 
       5 H
"%J83%P"F "FJ
. 
.
. 
.#r,   