ķ
';^c           @   sq   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(   i   (   t   config(   t
   exclusionsi   (   t   event(   t   schemat   Tablet   Columnc    
         sĻ    f d   t     D }   j t  t j t j d  r d   k r d   k r d   k r d | k sz d | k r d   d <q d	   d <q n  t j t j d
  r|  d } t j j j	 j
 } g  |  D]. } t | t j  rĪ | j D] } | ^ qî qĪ } x | D] } | j } t | t j  r:| j j }	 n | |  d }	 |	 | k r
| j d k rqd | _ n  | j d k rd | _ qq
q
Wn  t j |      S(   s8   A schema.Table wrapper/hook for dialect-specific tweaks.c            s1   i  |  ]' } | j  d   r   j |  |  q S(   t   test_(   t
   startswitht   pop(   t   .0t   k(   t   kw(    s;   /tmp/pip-unpacked-wheel-uTx28Y/sqlalchemy/testing/schema.pys
   <dictcomp>   s   	 t   mysqlt   mysql_enginet
   mysql_typet   autoload_witht   test_needs_fkt   test_needs_acidt   InnoDBt   MyISAMt   firebirdi    t   CASCADEN(   t   listt   updatet   table_optionsR   t   againstR    t   _currentt   dbt   dialectt   identifier_preparert   unformat_identifierst
   isinstanceR   R   t   foreign_keyst   _colspect   tablet   namet   ondeletet   Nonet   onupdateR   (
   t   argsR   t	   test_optst
   table_namet   unpackt   colt   fkt   fkst   refR#   (    (   R   s;   /tmp/pip-unpacked-wheel-uTx28Y/sqlalchemy/testing/schema.pyR      s6    

	c             s    f d   t     D } t j j j t  s_ g  |  D] } t | t j  s8 | ^ q8 }  n  t j |      } | j	 d t
  r  j	 d t
  r| j d	 k rŋ | j d	 k rŋ t | _ n  t | j d <t j t j d d  rd   } t j | d | d t qn  | S(
   s9   A schema.Column wrapper/hook for dialect-specific tweaks.c            s1   i  |  ]' } | j  d   r   j |  |  q S(   R   (   R   R   (   R	   R
   (   R   (    s;   /tmp/pip-unpacked-wheel-uTx28Y/sqlalchemy/testing/schema.pys
   <dictcomp>J   s   	 t   test_needs_autoincrementt   primary_keyR   t   oraclec         S   sA   |  j  t j t t j j | j d |  j d  d t  d  S(   Nt   _t   _seqt   optional(	   t   _init_itemsR   t   Sequencet   _truncate_nameR    R   R   R#   t   True(   t   ct   tbl(    (    s;   /tmp/pip-unpacked-wheel-uTx28Y/sqlalchemy/testing/schema.pyt   add_seq^   s
    $t   after_parent_attacht	   propagateN(   R   R    t   requirementst   foreign_key_ddlt   enabled_for_configR   R   t
   ForeignKeyR   t   gett   Falset   defaultR%   t   server_defaultR8   t   autoincrementt   infoR   R   R   R   t   listen(   R'   R   R(   t   argR+   R;   (    (   R   s;   /tmp/pip-unpacked-wheel-uTx28Y/sqlalchemy/testing/schema.pyR   G   s    .	
c         C   sT   t  |  |  j k rL | d t |  j d d  !d t t |  d  d S| Sd  S(   Ni    i   R2   i@   i   (   t   lent   max_identifier_lengtht   maxt   hext   hash(   R   R#   (    (    s;   /tmp/pip-unpacked-wheel-uTx28Y/sqlalchemy/testing/schema.pyR7   l   s    7N(
   t    R    R   R   R   t   __all__R   R   R   R7   (    (    (    s;   /tmp/pip-unpacked-wheel-uTx28Y/sqlalchemy/testing/schema.pyt   <module>   s   	4	%