
    {<i                        d dl mZ d dlZddlmZ ddlmZ ddlmZ ddlmZ dd	lmZ	 dd
l
mZ ddlmZ ddgZi ZddZd Zd Zd Z G d d      Z G d d      Z G d d      Zd Zd Zy)    )annotationsN   )config)
exclusions   )event)schema)types)mapped_column)OrderedDictTableColumnc                     t        |      D ci c]&  }|j                  d      s||j                  |      ( }}|j                  t               t        j                  | i |S c c}w )z8A schema.Table wrapper/hook for dialect-specific tweaks.test_)list
startswithpopupdatetable_optionsr	   r   )argskwk_s       ^/home/www/utuvibe.miabetepe.com/venv/lib/python3.12/site-packages/sqlalchemy/testing/schema.pyr   r      sX      $BxA!1<<+@BFF1IAAAIIm<<$$$	 	Bs
   A%A%c                 $    t        t        | |      S )z>An orm.mapped_column wrapper/hook for dialect-specific tweaks.)_schema_column_orm_mapped_columnr   r   s     r   r   r   %   s     ,dB77    c                 8    t        t        j                  | |      S )z9A schema.Column wrapper/hook for dialect-specific tweaks.)r   r	   r   r   s     r   r   r   +   s     &--r22r   c                   t        |      D ci c]&  }|j                  d      s||j                  |      ( }}t        j                  j
                  j                  t              s*|D cg c]  }t        |t        j                        r|! }} | |i |}| t        j                  u r|}n|j                  }|j                  dd      r|j                  dd      rn|j                  |j                  d|_        d|j                   d<   t#        j$                  t        j&                  d      rd }t)        j*                  |d|d	       |S c c}w c c}w )
Nr   test_needs_autoincrementFprimary_keyToraclec           	         | j                  t        j                  t        t        j
                  j                  |j                  dz   | j                  z   dz         d             y )Nr   _seqT)optional)_init_itemsr	   Sequence_truncate_namer   dbdialectname)ctbls     r   add_seqz_schema_column.<locals>.add_seqK   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   against_currentr   listen)	factoryr   r   r   	test_optsarg	constructcolr0   s	            r   r   r   1   s)   '+BxI!1<<3HBFF1IIII..AA&I#N:c6;L;L+MNN$$I&--}}/7BFFu= ;;3#5#5#= $C 04+, foox8 LL3WMI J Os   EE,EEc                  "    e Zd ZdZd Zd Zd Zy)eq_type_affinitya  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                8    t        j                  |      | _        y N)sqltypesto_instancetargetselfrL   s     r   __init__zeq_type_affinity.__init__t   s    **62r   c                F    | j                   j                  |j                  u S rI   rL   _type_affinityrN   others     r   __eq__zeq_type_affinity.__eq__w   s    {{))U-A-AAAr   c                F    | j                   j                  |j                  uS rI   rQ   rS   s     r   __ne__zeq_type_affinity.__ne__z   s    {{))1E1EEEr   N__name__
__module____qualname____doc__rO   rU   rW    r   r   rG   rG   Y   s    43BFr   rG   c                  "    e Zd ZdZd Zd Zd Zy)eq_compile_typez,similar to eq_type_affinity but uses compilec                    || _         y rI   rL   rM   s     r   rO   zeq_compile_type.__init__   	    r   c                <    | j                   |j                         k(  S rI   rL   compilerS   s     r   rU   zeq_compile_type.__eq__       {{emmo--r   c                <    | j                   |j                         k7  S rI   rd   rS   s     r   rW   zeq_compile_type.__ne__   rf   r   NrX   r]   r   r   r_   r_   ~   s    6..r   r_   c                  "    e Zd ZdZd Zd Zd Zy)eq_clause_elementz3Helper to compare SQL structures based on compare()c                    || _         y rI   ra   rM   s     r   rO   zeq_clause_element.__init__   rb   r   c                8    | j                   j                  |      S rI   rL   comparerS   s     r   rU   zeq_clause_element.__eq__   s    {{""5))r   c                :    | j                   j                  |       S rI   rl   rS   s     r   rW   zeq_clause_element.__ne__   s    ;;&&u---r   NrX   r]   r   r   ri   ri      s    =*.r   ri   c                    t        |      | j                  kD  r:|dt        | j                  dz
  d       dz   t        t	        |      dz        dd  z   S |S )Nr      r   @   r   )lenmax_identifier_lengthmaxhexhash)r,   r-   s     r   r*   r*      s`    
4y7000S66:A>?$t*r/"12&'	
 r   c                   t               }dfd	}i t        fd       }t        | t        f|||d      }	 t	        j
                  d      j                  j                  dd      }||_
        |S # t        t        f$ r Y w xY w)Nc                    || _         || _        | | j                  |<   | |<   t        | j                  ||        |r'| | j                  |<   t        | j                  ||        y y rI   )r-   value__members__setattr	__class__)rN   r-   ry   aliasvalue_to_members       r   rO   zpep435_enum.<locals>.__init__   sc    	
!%!%d+&*DU#DNNE40 r   c                    |   S rI   r]   )clsry   r~   s     r   r9   zpep435_enum.<locals>.get   s    u%%r   )rz   rO   r9   r   rY   __main__rI   )r   classmethodtypeobjectsys	_getframe	f_globalsr9   AttributeError
ValueErrorrZ   )r-   rz   rO   r9   someenummoduler~   s         @r   pep435_enumr      s    -K1 O& & 		##FHq!++//
JG $O J' s   /A3 3BB)returnzschema.Table)
__future__r   r    r   r   r   r	   r
   rJ   ormr   r   utilr   __all__r   r   r   r   rG   r_   ri   r*   r   r]   r   r   <module>r      sq    # 
       5 H
%83%P"F "FJ
. 
.
. 
.#r   