ó
|£*^c           @   s0  d  d l  Z  d  d l m Z d  d l m Z y e Wn e k
 rP d „  Z n Xd „  d „  e d „ Z d „  Z	 e e d	 „ Z
 d
 „  Z d „  Z d „  Z d „  Z d „  Z d „  Z d „  Z d „  Z d „  Z d „  Z d „  Z d „  Z d „  Z d „  Z d „  Z d „  Z d „  Z d „  Z d „  Z d S(   iÿÿÿÿN(   t   sql(   t   tokensc         C   s
   |  j  ƒ  S(   N(   t   next(   t   i(    (    sl   /home/gitlab-runner/builds/8480fa44/0/bergerc/fluidmanager-web/art-framework/bin/sqlparse/engine/grouping.pyt   <lambda>   s    c         C   s   t  S(   N(   t   True(   t   t(    (    sl   /home/gitlab-runner/builds/8480fa44/0/bergerc/fluidmanager-web/art-framework/bin/sqlparse/engine/grouping.pyR      s    c         C   s   t  S(   N(   R   (   R   (    (    sl   /home/gitlab-runner/builds/8480fa44/0/bergerc/fluidmanager-web/art-framework/bin/sqlparse/engine/grouping.pyR      s    c      
   C   s  g  |  j  ƒ  D]3 } t | | ƒ s t | | | | | | | ƒ ^ q d } |  j | | | ƒ }	 x·|	 r|  j |  j |	 ƒ ƒ }
 |  j |  j |	 ƒ ƒ } |
 d  k s± | |
 ƒ rÖ |  j |  j |	 ƒ d | | ƒ }	 qb | d  k sï | | ƒ r|  j |  j |	 ƒ d | | ƒ }	 qb | rS|  j |  j |
 ƒ t j	 d ƒ } | d  k	 rS| }
 qSn  |  j
 | |
 ƒ d } t | | ƒ sÂ| | g ƒ } |  j | ƒ } |  j j | ƒ |  j j | | ƒ | } n  | j j | ƒ x | D] } |  j j | ƒ qÙW|  j |  j | ƒ d | | ƒ }	 qb Wd  S(   Ni    i   t   ;(   t   get_sublistst
   isinstancet   _group_left_rightt   token_next_matcht
   token_nextt   token_indext
   token_prevt   Nonet   Tt   Punctuationt   tokens_betweenR   t   removet   insertt   extend(   t   tlistt   ttypet   valuet   clst   check_rightt
   check_leftt   include_semicolont   sgroupt   idxt   tokent   rightt   leftt   srightR   t   newt   new_idxR   (    (    sl   /home/gitlab-runner/builds/8480fa44/0/bergerc/fluidmanager-web/art-framework/bin/sqlparse/engine/grouping.pyR
      s>    1		c         C   sp   d } xc | j  |  D]T } | j | | ƒ r9 | d 7} q | j | | ƒ r | d 8} | d k rh | Sq q Wd  S(   Ni   (   R   t   matchR   (   R   R   t   start_ttypet   start_valuet	   end_ttypet	   end_valuet   deptht   tok(    (    sl   /home/gitlab-runner/builds/8480fa44/0/bergerc/fluidmanager-web/art-framework/bin/sqlparse/engine/grouping.pyt   _find_matching6   s    
c      
   C   si  g  |  j  ƒ  D]* } | r t | | | | | | | ƒ ^ q t |  | ƒ rS d }	 n d }	 |  j |	 | | ƒ }
 xô |
 rd|  j |
 ƒ } t | |  | | | | ƒ } | d  k rº | d }	 n’ | rÿ |  j |  j | ƒ ƒ } | rÿ | j t	 j
 d ƒ rÿ | } qÿ n  |  j | |  j |
 | ƒ ƒ } t | | | | | | | ƒ |  j | ƒ d }	 |  j |	 | | ƒ }
 qq Wd  S(   Ni   i    R   (   R   t   _group_matchingR	   R   R   R,   R   R   R%   R   R   t   group_tokensR   (   R   R&   R'   R(   R)   R   R   t   recurseR   R   R   t   tidxt   endt   next_t   group(    (    sl   /home/gitlab-runner/builds/8480fa44/0/bergerc/fluidmanager-web/art-framework/bin/sqlparse/engine/grouping.pyR-   B   s,    (		c         C   s)   t  |  t j d t j d t j t ƒ d  S(   Nt   IFs   END IF(   R-   R   t   KeywordR    t   IfR   (   R   (    (    sl   /home/gitlab-runner/builds/8480fa44/0/bergerc/fluidmanager-web/art-framework/bin/sqlparse/engine/grouping.pyt   group_if_   s    c         C   s)   t  |  t j d t j d t j t ƒ d  S(   Nt   FORs   END LOOP(   R-   R   R5   R    t   ForR   (   R   (    (    sl   /home/gitlab-runner/builds/8480fa44/0/bergerc/fluidmanager-web/art-framework/bin/sqlparse/engine/grouping.pyt	   group_forc   s    c         C   s)   t  |  t j d t j d t j t ƒ d  S(   Nt   FOREACHs   END LOOP(   R-   R   R5   R    R9   R   (   R   (    (    sl   /home/gitlab-runner/builds/8480fa44/0/bergerc/fluidmanager-web/art-framework/bin/sqlparse/engine/grouping.pyt   group_foreachh   s    c         C   s)   t  |  t j d t j d t j t ƒ d  S(   Nt   BEGINt   END(   R-   R   R5   R    t   BeginR   (   R   (    (    sl   /home/gitlab-runner/builds/8480fa44/0/bergerc/fluidmanager-web/art-framework/bin/sqlparse/engine/grouping.pyt   group_beginm   s    c      	   C   s;   d „  } d „  } t  |  t j d t j d | d | ƒd  S(   Nc         S   s   |  j  t j t j f k S(   N(   R   R   t   DMLt   DDL(   R   (    (    sl   /home/gitlab-runner/builds/8480fa44/0/bergerc/fluidmanager-web/art-framework/bin/sqlparse/engine/grouping.pyt   _right_validt   s    c         S   s5   |  j  t j k r% |  j d k r% t S|  j  t j k	 S(   Nt   NULL(   RD   (   R   R   R5   R   R   (   R   (    (    sl   /home/gitlab-runner/builds/8480fa44/0/bergerc/fluidmanager-web/art-framework/bin/sqlparse/engine/grouping.pyt   _left_validy   s    !t   ASR   R   (   R
   R   R5   R    t
   Identifier(   R   RC   RE   (    (    sl   /home/gitlab-runner/builds/8480fa44/0/bergerc/fluidmanager-web/art-framework/bin/sqlparse/engine/grouping.pyt   group_asr   s
    		c         C   s#   t  |  t j d t j d t ƒd  S(   Ns   :=R   (   R
   R   t
   AssignmentR    R   (   R   (    (    sl   /home/gitlab-runner/builds/8480fa44/0/bergerc/fluidmanager-web/art-framework/bin/sqlparse/engine/grouping.pyt   group_assignmentƒ   s    c      	   C   s5   d „  } t  |  t j j d  t j d | d | ƒd  S(   Nc      
   S   sš   |  j  t j j t j j t j t j t j j t j j t j	 t j	 j j t j j
 f	 k p™ t |  t j t j f ƒ p™ |  j  t j k o™ |  j j ƒ  d k S(   NRD   (   RD   (   R   R   t   Stringt   Symbolt   Singlet   Namet   Numbert   Floatt   Integert   Literalt   PlaceholderR	   R    RG   t   ParenthesisR5   R   t   upper(   R   (    (    sl   /home/gitlab-runner/builds/8480fa44/0/bergerc/fluidmanager-web/art-framework/bin/sqlparse/engine/grouping.pyt   _parts_validŠ   s    R   R   (   R
   R   t   Operatort
   ComparisonR   R    (   R   RV   (    (    sl   /home/gitlab-runner/builds/8480fa44/0/bergerc/fluidmanager-web/art-framework/bin/sqlparse/engine/grouping.pyt   group_comparisonˆ   s    	c         C   s2   t  |  t j d t j d t j d t d t ƒd  S(   Nt   CASER>   R   R/   (   R-   R   R5   R    t   CaseR   (   R   (    (    sl   /home/gitlab-runner/builds/8480fa44/0/bergerc/fluidmanager-web/art-framework/bin/sqlparse/engine/grouping.pyt
   group_case–   s    !c         C   sk  d „  } d „  } g  |  j  ƒ  D]$ } t | t j ƒ s t | ƒ ^ q d } | |  | ƒ } x| rf| g t | |  |  j | d | ƒd ƒ ƒ } | r½ | d j t j	 k r½ | d  } n  t
 | ƒ d k ot | d t j t j f ƒ p| d j t j j j t j j j f k sJ|  j t j | ƒ } |  j | d | ƒd } n
 | d 7} | |  | ƒ } q_ Wd  S(   Nc         s   s˜   t  j d „  d „  f ƒ } xv |  j | D]g } | j t j k rL | Vq) n  t | ƒ | ƒ rf | Vq) t | t j	 ƒ rŒ | j
 ƒ  rŒ | Vn  d  Sq) Wd  S(   Nc         S   sF   |  j  t j d ƒ pE |  j t j t j t j f k pE t |  t j	 ƒ S(   Nt   .(
   R%   R   R   R   RW   t   WildcardRN   R	   R    t   SquareBrackets(   t   y(    (    sl   /home/gitlab-runner/builds/8480fa44/0/bergerc/fluidmanager-web/art-framework/bin/sqlparse/engine/grouping.pyR   Ÿ   s   c         S   sg   |  j  t j j t j t j t j j j t j j j	 t j j j
 f k pf t |  t j t j t j f ƒ S(   N(   R   R   RK   RL   RN   R^   RR   RM   RO   RQ   RP   R	   R    RT   R_   t   Function(   R`   (    (    sl   /home/gitlab-runner/builds/8480fa44/0/bergerc/fluidmanager-web/art-framework/bin/sqlparse/engine/grouping.pyR   ¤   s   (   t	   itertoolst   cycleR   R   R   t
   WhitespaceR   R	   R    t   Commentt   is_multiline(   t   tlR   t   xR   (    (    sl   /home/gitlab-runner/builds/8480fa44/0/bergerc/fluidmanager-web/art-framework/bin/sqlparse/engine/grouping.pyt   _consume_cycleœ   s    	c         S   sä   |  j  | t j j t j t j j j t j j j f ƒ } | rT |  j	 | d | ƒn d  } | d  k rl d  n | d } |  j | t j t j f d | ƒ} | rÒ | rÒ |  j	 | d | ƒ} | | k rË | S| Sn | rÜ | S| Sd  S(   Nt   starti   R1   (   t   token_next_by_typeR   RK   RL   RN   RR   RO   RQ   RP   R   R   t   token_next_by_instanceR    Ra   RT   (   Rg   R   t   t1t   i1t   t2_endt   t2t   i2(    (    sl   /home/gitlab-runner/builds/8480fa44/0/bergerc/fluidmanager-web/art-framework/bin/sqlparse/engine/grouping.pyt   _next_token¹   s    !$i    Rj   i   iÿÿÿÿ(   R   R	   R    RG   t   group_identifiert   listR   R   R   Rd   t   lenRa   RT   RR   RO   RQ   RP   R.   (   R   Ri   Rr   R   R   R   t   identifier_tokensR3   (    (    sl   /home/gitlab-runner/builds/8480fa44/0/bergerc/fluidmanager-web/art-framework/bin/sqlparse/engine/grouping.pyRs   ›   s(    		"		 
c         C   s=  g  |  j  ƒ  D]$ } t | t j ƒ s t | ƒ ^ q d } d „  d „  d „  d „  d „  d „  d „  d	 „  d
 „  d „  d „  d „  d „  g } |  j | t j d ƒ } d  } x‰| d  k	 r8|  j	 | d | ƒ} |  j
 | ƒ } |  j | ƒ } t } }	 xP | D]H }
 | d  k	 r'|
 | ƒ r't } n  | d  k	 r |
 | ƒ r t }	 q q W| sZ|	 rd  } |  j | d t j d ƒ } q° | d  k r”| } n  |  j	 | d | ƒ} |  j | ƒ } | d  k sÚ| j t j d ƒ r/|  j | | ƒ } |  j t j | ƒ } d  } |  j |  j	 | ƒ d t j d ƒ } q° | } q° Wd  S(   Ni    c         S   s   t  |  t j t j t j f ƒ S(   N(   R	   R    RG   Ra   R[   (   R   (    (    sl   /home/gitlab-runner/builds/8480fa44/0/bergerc/fluidmanager-web/art-framework/bin/sqlparse/engine/grouping.pyR   í   s   c         S   s
   |  j  ƒ  S(   N(   t   is_whitespace(   R   (    (    sl   /home/gitlab-runner/builds/8480fa44/0/bergerc/fluidmanager-web/art-framework/bin/sqlparse/engine/grouping.pyR   ï   s    c         S   s   |  j  t j k S(   N(   R   R   RN   (   R   (    (    sl   /home/gitlab-runner/builds/8480fa44/0/bergerc/fluidmanager-web/art-framework/bin/sqlparse/engine/grouping.pyR   ð   s    c         S   s   |  j  t j k S(   N(   R   R   R^   (   R   (    (    sl   /home/gitlab-runner/builds/8480fa44/0/bergerc/fluidmanager-web/art-framework/bin/sqlparse/engine/grouping.pyR   ñ   s    c         S   s   |  j  t j d ƒ S(   Nt   null(   R%   R   R5   (   R   (    (    sl   /home/gitlab-runner/builds/8480fa44/0/bergerc/fluidmanager-web/art-framework/bin/sqlparse/engine/grouping.pyR   ò   s    c         S   s   |  j  t j d ƒ S(   Nt   role(   R%   R   R5   (   R   (    (    sl   /home/gitlab-runner/builds/8480fa44/0/bergerc/fluidmanager-web/art-framework/bin/sqlparse/engine/grouping.pyR   ó   s    c         S   s   |  j  t j j k S(   N(   R   R   RO   RQ   (   R   (    (    sl   /home/gitlab-runner/builds/8480fa44/0/bergerc/fluidmanager-web/art-framework/bin/sqlparse/engine/grouping.pyR   ô   s    c         S   s   |  j  t j j k S(   N(   R   R   RK   RM   (   R   (    (    sl   /home/gitlab-runner/builds/8480fa44/0/bergerc/fluidmanager-web/art-framework/bin/sqlparse/engine/grouping.pyR   õ   s    c         S   s   |  j  t j j k S(   N(   R   R   RN   RS   (   R   (    (    sl   /home/gitlab-runner/builds/8480fa44/0/bergerc/fluidmanager-web/art-framework/bin/sqlparse/engine/grouping.pyR   ö   s    c         S   s   |  j  t j k S(   N(   R   R   R5   (   R   (    (    sl   /home/gitlab-runner/builds/8480fa44/0/bergerc/fluidmanager-web/art-framework/bin/sqlparse/engine/grouping.pyR   ÷   s    c         S   s   t  |  t j ƒ S(   N(   R	   R    RX   (   R   (    (    sl   /home/gitlab-runner/builds/8480fa44/0/bergerc/fluidmanager-web/art-framework/bin/sqlparse/engine/grouping.pyR   ø   s    c         S   s   t  |  t j ƒ S(   N(   R	   R    Re   (   R   (    (    sl   /home/gitlab-runner/builds/8480fa44/0/bergerc/fluidmanager-web/art-framework/bin/sqlparse/engine/grouping.pyR   ù   s    c         S   s   |  j  t j j k S(   N(   R   R   Re   t	   Multiline(   R   (    (    sl   /home/gitlab-runner/builds/8480fa44/0/bergerc/fluidmanager-web/art-framework/bin/sqlparse/engine/grouping.pyR   ú   s    t   ,Rj   i   (   R   R	   R    t   IdentifierListt   group_identifier_listR   R   R   R   R   R   R   t   FalseR   R%   R   R.   (   R   R   R   t   fend1_funcst   tcommaRj   t   beforet   aftert   bpassedt   apassedt   funct	   after_idxR2   R   R3   (    (    sl   /home/gitlab-runner/builds/8480fa44/0/bergerc/fluidmanager-web/art-framework/bin/sqlparse/engine/grouping.pyR}   è   sV    "
		"c   	      C   s1  t  |  t j t j f ƒ r$ d } n d } |  j | t j d d g ƒ } xâ | r,| j } | d k rx d } t j } n d } t j } |  j | ƒ } t	 | |  t j | t j | ƒ } | d k rÐ | d } n; |  j | |  j | | ƒ ƒ } t | ƒ |  j | ƒ d } |  j | t j d d g ƒ } qK Wd S(   sÄ   Group parentheses () or square brackets []

        This is just like _group_matching, but complicated by the fact that
        round brackets can contain square bracket groups and vice versa
    i   i    t   (t   [t   )t   ]N(   R	   R    RT   R_   R   R   R   R   R   R,   R   R.   R   t   group_brackets(	   R   R   R   t	   start_valt   end_valt   group_classR0   R1   R3   (    (    sl   /home/gitlab-runner/builds/8480fa44/0/bergerc/fluidmanager-web/art-framework/bin/sqlparse/engine/grouping.pyR‹     s*    					
c   	      C   s  g  |  j  ƒ  D]$ } t | t j ƒ s t | ƒ ^ q d } |  j | t j ƒ } xº | r|  j | ƒ } |  j | d d „  d „  g ƒ } | d  k r£ | d } nQ |  j | ƒ } |  j
 | |  j | t ƒ ƒ } |  j t j | ƒ } |  j | ƒ } |  j | t j ƒ } qS Wd  S(   Ni    i   c         S   s   |  j  t j k S(   N(   R   R   Re   (   R   (    (    sl   /home/gitlab-runner/builds/8480fa44/0/bergerc/fluidmanager-web/art-framework/bin/sqlparse/engine/grouping.pyR   R  s    c         S   s
   |  j  ƒ  S(   N(   Rw   (   R   (    (    sl   /home/gitlab-runner/builds/8480fa44/0/bergerc/fluidmanager-web/art-framework/bin/sqlparse/engine/grouping.pyR   S  s    (   R   R	   R    Re   t   group_commentsRk   R   R   t   token_not_matchingR   R   R   R~   R.   (	   R   R   R   R   R0   R1   t   eidxt
   grp_tokensR3   (    (    sl   /home/gitlab-runner/builds/8480fa44/0/bergerc/fluidmanager-web/art-framework/bin/sqlparse/engine/grouping.pyR�   J  s"    "		c         C   s  g  |  j  ƒ  D]$ } t | t j ƒ s t | ƒ ^ q d } |  j | t j d ƒ } d } x¹ | r|  j | ƒ } |  j | d	 t j | ƒ } | d  k r© |  j
 d
 } n |  j |  j | ƒ d	 } |  j t j |  j | | ƒ d t ƒ} |  j | ƒ } |  j | t j d ƒ } q\ Wd  S(   Ni    t   WHEREt   ORDERt   GROUPt   LIMITt   UNIONt   EXCEPTt   HAVINGi   iÿÿÿÿt	   ignore_ws(   R”   R•   R–   R—   R˜   R™   (   R   R	   R    t   Wheret   group_whereR   R   R5   R   R   t   _groupable_tokensR   R.   R   R   (   R   R   R   R   t	   stopwordsR0   R1   R3   (    (    sl   /home/gitlab-runner/builds/8480fa44/0/bergerc/fluidmanager-web/art-framework/bin/sqlparse/engine/grouping.pyRœ   _  s     "		c         C   s0  t  j t  j t  j f } g  |  j ƒ  D]! } t | | ƒ s% t | ƒ ^ q% d } |  j | | ƒ } xÇ | r+|  j |  j	 | ƒ ƒ } | d  k	 rt | | ƒ r| j j ƒ  j d ƒ s|  j | | ƒ d } | j j | ƒ x! | D] } |  j j | ƒ qã Wqn  |  j	 | ƒ d } |  j | | ƒ } qe Wd  S(   Ni    t   VARCHARi   (   R    RG   Ra   R[   R   R	   t   group_aliasedRl   R   R   R   R   RU   t
   startswithR   R   R   R   (   R   t   clssR   R   R   R2   t   grpR   (    (    sl   /home/gitlab-runner/builds/8480fa44/0/bergerc/fluidmanager-web/art-framework/bin/sqlparse/engine/grouping.pyR    s  s    	c         C   s   t  |  t j d t j ƒ d  S(   Ns   ::(   R
   R   R   R    RG   (   R   (    (    sl   /home/gitlab-runner/builds/8480fa44/0/bergerc/fluidmanager-web/art-framework/bin/sqlparse/engine/grouping.pyt   group_typecasts…  s    c         C   sá   g  |  j  ƒ  D]$ } t | t j ƒ s t | ƒ ^ q d } |  j | t j ƒ } xŠ | rÜ |  j | ƒ } t | t j	 ƒ s� |  j
 | ƒ d } n4 |  j t j |  j | | ƒ ƒ } |  j
 | ƒ d } |  j | t j ƒ } qS Wd  S(   Ni    i   (   R   R	   R    Ra   t   group_functionsRk   R   RN   R   RT   R   R.   R   (   R   R   R   R   R2   R…   (    (    sl   /home/gitlab-runner/builds/8480fa44/0/bergerc/fluidmanager-web/art-framework/bin/sqlparse/engine/grouping.pyR¥   ‰  s    "	c         C   s²   d } |  j  | t j j ƒ } x� | r­ |  j | ƒ } t | t j ƒ r |  j t j |  j	 | | ƒ ƒ } |  j
 | ƒ d } n |  j
 | ƒ d } |  j  | t j j ƒ } q! Wd  S(   Ni    i   (   Rk   R   R5   t   OrderR   R	   R    RG   R.   R   R   (   R   R   R   t   prevt   ido(    (    sl   /home/gitlab-runner/builds/8480fa44/0/bergerc/fluidmanager-web/art-framework/bin/sqlparse/engine/grouping.pyt   group_order™  s    	c         C   sþ   g  |  j  ƒ  D] } t | ƒ ^ q d } |  j | t j ƒ } x¹ | rù |  j |  j | ƒ ƒ } t | t j ƒ rÎ |  j	 | | ƒ d } | j
 j | ƒ x | D] } |  j
 j | ƒ qž W|  j | ƒ d } n |  j | ƒ d } |  j | t j ƒ } qA Wd  S(   Ni    i   (   R   t   align_commentsRl   R    Re   R   R   R	   t	   TokenListR   R   R   R   (   R   R   R   R   R�   R£   R   (    (    sl   /home/gitlab-runner/builds/8480fa44/0/bergerc/fluidmanager-web/art-framework/bin/sqlparse/engine/grouping.pyRª   §  s    #	c         C   sU   xN t  t t t t t t t t t	 t
 t t t t t t t g D] } | |  ƒ q= Wd  S(   N(   R�   R‹   R¥   Rœ   R\   Rs   R©   R¤   RH   R    RJ   RY   Rª   R}   R7   R:   R<   R@   (   R   R…   (    (    sl   /home/gitlab-runner/builds/8480fa44/0/bergerc/fluidmanager-web/art-framework/bin/sqlparse/engine/grouping.pyR3   ¸  s(    (   Rb   t   sqlparseR    R   R   R   t	   NameErrorR~   R
   R,   R-   R7   R:   R<   R@   RH   RJ   RY   R\   Rs   R}   R‹   R�   Rœ   R    R¤   R¥   R©   Rª   R3   (    (    (    sl   /home/gitlab-runner/builds/8480fa44/0/bergerc/fluidmanager-web/art-framework/bin/sqlparse/engine/grouping.pyt   <module>   s<   %										M	6	,							