ó
H`¾Tc           @   sa   d  d l  m Z d d l  m Z m Z d  d l  m Z d Z i  Z d „  Z d „  Z d	 „  Z	 d
 S(   i   (   t
   exclusionsi   (   t   schemat   event(   t   configt   Tablet   Columnc          O   sÁ  t  g  t | ƒ D]* } | j d ƒ r | | j | ƒ f ^ q ƒ } | j t ƒ t j t j	 d ƒ r² d | k r² d | k r² d | k s• 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 ƒ rU|	 j j }
 n | |	 ƒ d
 }
 |
 | k r%| j d k rŒd | _ n  | j d k rªd | _ qªq%q%Wn  t j |  | Ž  S(   s8   A schema.Table wrapper/hook for dialect-specific tweaks.t   test_t   mysqlt   mysql_enginet
   mysql_typet   test_needs_fkt   test_needs_acidt   InnoDBt   MyISAMt   firebirdi    t   CASCADEN(   t   dictt   listt
   startswitht   popt   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   argst   kwt   kt	   test_optst
   table_namet   unpackt   colt   fkt   fkst   refR    (    (    s_   /var/www/send.findwatt.com/datamanager/lib/python2.7/site-packages/sqlalchemy/testing/schema.pyR      s2    -
	c          O   s  t  g  t | ƒ D]* } | j d ƒ r | | j | ƒ f ^ q ƒ } t j j j t ƒ s† g  |  D] } t | t	 j
 ƒ s_ | ^ q_ }  n  t	 j |  | Ž  } d | k r| j d t ƒ r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.R   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_   /var/www/send.findwatt.com/datamanager/lib/python2.7/site-packages/sqlalchemy/testing/schema.pyt   add_seqS   s    	$t   after_parent_attacht	   propagate(   R   R   R   R   R   t   requirementst   foreign_key_ddlt   enabled_for_configR   R   t
   ForeignKeyR   t   gett   FalseR7   t   infoR    R   R   R   t   listen(   R$   R%   R&   R'   t   argR*   R:   (    (    s_   /var/www/send.findwatt.com/datamanager/lib/python2.7/site-packages/sqlalchemy/testing/schema.pyR   @   s    -.	c         C   sT   t  | ƒ |  j k rL | d t |  j d d ƒ !d t t | ƒ d ƒ d S| Sd  S(   Ni    i   R1   i@   i   (   t   lent   max_identifier_lengtht   maxt   hext   hash(   R   R    (    (    s_   /var/www/send.findwatt.com/datamanager/lib/python2.7/site-packages/sqlalchemy/testing/schema.pyR6   ]   s    7N(   s   Tables   Column(
   t    R    R   R   R   t   __all__R   R   R   R6   (    (    (    s_   /var/www/send.findwatt.com/datamanager/lib/python2.7/site-packages/sqlalchemy/testing/schema.pyt   <module>   s   	/	