
    ؄_                     T    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 Zd	 Zd
 Z	dS )   )config)
exclusions   )event)schemaTableColumnc                  t   fdt                    D             }                    t                     t          j        t
          j        d          rdvrdvrdvrd|v sd|v rdd<   nd	d<   t          j        t
          j        d
          r| d         }t
          j        j        j	        j
        }d | D             }|D ]c}|j        }t          |t          j                  r|j        j        }n ||          d         }||k    r|j        d|_        |j        d|_        dt          j        | i S )z8A schema.Table wrapper/hook for dialect-specific tweaks.c                 f    i | ]-}|                     d           |                    |          .S test_
startswithpop.0kkws     ^/var/www/book.euthymeo.com/html/venv/lib/python3.11/site-packages/sqlalchemy/testing/schema.py
<dictcomp>zTable.<locals>.<dictcomp>   6    III!1<<3H3HIBFF1IIIII    mysqlmysql_engine
mysql_typeautoload_withtest_needs_fktest_needs_acidInnoDBMyISAMfirebird    c                 Z    g | ](}t          |t          j                  |j        D ]}|)S  )
isinstancer   r	   foreign_keys)r   colfks      r   
<listcomp>zTable.<locals>.<listcomp>-   sX     
 
 
#v}--
 &	
 
  
 
 
 
r   NCASCADE)listupdatetable_optionsr   againstr   _currentdbdialectidentifier_preparerunformat_identifiers_colspecr%   r   r	   tablenameondeleteonupdater   )	argsr   	test_opts
table_nameunpackfksr(   refr6   s	    `       r   r   r      su    JIIItBxxIIIIIIm&/733 	."$$B&&r)))++/@I/M/M%->""%->" &/:66 ,!W
"6K
 

 
 
  	, 	,B+C#v}-- &y~
 vc{{1~z!!;&"+BK;&"+BK<$$$$r   c                     fdt                    D             }t          j        j                            t                    sd | D             } t          j        | i }|                    dd          rp                    dd          rZ|j        |j	        d|_
        d|j        d<   t          j        t          j        dd	          rd
 }t          j        |d|d           |S )z9A schema.Column wrapper/hook for dialect-specific tweaks.c                 f    i | ]-}|                     d           |                    |          .S r   r   r   s     r   r   zColumn.<locals>.<dictcomp>J   r   r   c                 F    g | ]}t          |t          j                  |S r$   )r%   r   
ForeignKey)r   args     r   r)   zColumn.<locals>.<listcomp>M   s*    NNN:c6;L+M+MNNNNr   test_needs_autoincrementFprimary_keyNTr!   oraclec           	          |                      t          j        t          t          j        j        |j        dz   | j        z   dz             d                     d S )N__seqT)optional)_init_itemsr   Sequence_truncate_namer   r0   r1   r6   )ctbls     r   add_seqzColumn.<locals>.add_seq^   sd    O&"I-sx#~/F/O  "&	      r   after_parent_attach)	propagate)r+   r   requirementsforeign_key_ddlenabled_for_configr   r	   getdefaultserver_defaultautoincrementinfor   r.   r/   r   listen)r9   r   r:   r'   rP   s    `   r   r	   r	   G   s    JIIItBxxIIII.AA&II ONNtNNN
-
$
$
$C}}/77 NBFFu= = N ;3#5#= $C 04+, foz8DD 	N   L3WMMMMJr   c                     t          |          | j        k    rK|dt          | j        dz
  d                   dz   t          t	          |          dz            dd          z   S |S )Nr"      rH   @   r   )lenmax_identifier_lengthmaxhexhash)r1   r6   s     r   rM   rM   l   sl    
4yy7000S6:A>>>?$t**r/""122&'	
 r   N)
 r   r   r   r   __all__r-   r   r	   rM   r$   r   r   <module>rf      s                            H
1% 1% 1%h" " "J    r   