
    J}bg,                     \   d dl mZ d dl mZ d dlmZmZ ej        ej        j        ej        j	        fZ
ej        ej        j        ej        j        fZej        ej        j        f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 eej                  d             Zd Z d Z!d Z" eej#                  d             Z$ eej%                  d             Z& e            d             Z' eej(                  d             Z)d Z* e            d             Z+d Z,d d dddfdZ-dS )     )sql)tokens)recurseimtc                    g }d}t          t          |                     D ]\  }}||z
  }|j        r|j        r!t	          ||          st          ||           : |j        |j         r|                    |           _ |j        |j	         rG	 |
                                }n# t          $ r Y w xY w|}|                     |||           |||z
  z  }dS )z*Groups Tokens that have beginning and end.r   N)	enumeratelistis_whitespaceis_group
isinstance_group_matchingmatchM_OPENappendM_CLOSEpop
IndexErrorgroup_tokens)	tlistclsopenstidx_offsetidxtokentidxopen_idx	close_idxs	            k/home/e360mart.nyusoft.in/public_html/e360mart_env/lib/python3.11/site-packages/sqlparse/engine/grouping.pyr   r      s!   EKU,, 0 0
U[  	 > 	*UC"8"8 	 E3'''5;
# 	0LLU[#+& 		0 99;;     IsHi8889x//K90 0s   B%%
B21B2c                 :    t          | t          j                   d S N)r   r   SquareBracketsr   s    r   group_bracketsr#   4   s    E3-.....    c                 :    t          | t          j                   d S r    )r   r   Parenthesisr"   s    r   group_parenthesisr'   8   s    E3?+++++r$   c                 :    t          | t          j                   d S r    )r   r   Caser"   s    r   
group_caser*   <   s    E38$$$$$r$   c                 :    t          | t          j                   d S r    )r   r   Ifr"   s    r   group_ifr-   @   s    E36"""""r$   c                 :    t          | t          j                   d S r    )r   r   Forr"   s    r   	group_forr0   D   s    E37#####r$   c                 :    t          | t          j                   d S r    )r   r   Beginr"   s    r   group_beginr3   H   s    E39%%%%%r$   c                 \    d }d }d }|x}}t          | t          j        ||||           d S )Nc                 B    |                      t          j        d          S )Nz::r   TPunctuationr   s    r   r   zgroup_typecasts.<locals>.matchM   s    {{1=$///r$   c                 
    | d uS r     r9   s    r   validzgroup_typecasts.<locals>.validP   s    D  r$   c                 
    ||fS r    r;   r   pidxr   nidxs       r   postzgroup_typecasts.<locals>.postS       Tzr$   _groupr   
Identifierr   r   r<   rA   
valid_prev
valid_nexts         r   group_typecastsrI   L   s[    0 0 0! ! !   $#J
5#.%ZFFFFFr$   c                 Z    d }d }d }d }t          | t          j        ||||           d S )Nc                 B    |                      t          j        d          S )N.r6   r9   s    r   r   zgroup_period.<locals>.match[       {{1=#...r$   c                     t           j        t           j        f}t          j        t          j        j        f}t          | ||          S Nit)r   r!   rE   r7   NameStringSymbolr   r   sqlclsttypess      r   rG   z group_period.<locals>.valid_prev^   s6    #S^3(5Ff----r$   c                     dS NTr;   r9   s    r   rH   z group_period.<locals>.valid_nextc   s    tr$   c                     t           j        t           j        f}t          j        t          j        j        t          j        f}|| |         nd }t          |||          }|r||fn||fS rO   )	r   r!   Functionr7   rS   rT   rU   Wildcardr   )r   r?   r   r@   rW   rX   next_rH   s           r   rA   zgroup_period.<locals>.postg   sb    #S\1!*4#/dT&F333
);d||d|;r$   rC   r   r   rG   rH   rA   s        r   group_periodr`   Z   s`    / / /. . .
  < < < 5#.%ZFFFFFr$   c                 Z    d }d }d }d }t          | t          j        ||||           d S )Nc                 &    | j         o
| j        dk    S )NAS)
is_keyword
normalizedr9   s    r   r   zgroup_as.<locals>.matcht   s    <E$4$<<r$   c                 (    | j         dk    p| j         S )NNULL)re   rd   r9   s    r   rG   zgroup_as.<locals>.valid_prevw   s    6)A1A-AAr$   c                 ^    t           j        t           j        f}t          | |           o| d uS NrR   )r7   DMLDDLr   )r   rX   s     r   rH   zgroup_as.<locals>.valid_nextz   s/    u''''=E,==r$   c                 
    ||fS r    r;   r>   s       r   rA   zgroup_as.<locals>.post~   rB   r$   rC   r_   s        r   group_asrn   s   sc    = = =B B B> > >   5#.%ZFFFFFr$   c                 \    d }d }d }|x}}t          | t          j        ||||           d S )Nc                 B    |                      t          j        d          S )Nz:=)r   r7   
Assignmentr9   s    r   r   zgroup_assignment.<locals>.match   s    {{1<...r$   c                 0    | d uo| j         t          j        vS r    )ttyper7   Keywordr9   s    r   r<   zgroup_assignment.<locals>.valid   s    D CU[%CCr$   c                 b    t           j        df}|                     ||          \  }}|p|}||fS )N;mr   )r7   r8   token_next_by)r   r?   r   r@   m_semicolonsnidx_s          r   rA   zgroup_assignment.<locals>.post   s=    mS(&&$&??q}Tzr$   )rD   r   rq   rF   s         r   group_assignmentr}      s^    / / /D D D   $#J
5#.%ZFFFFFr$   c           	          t           j        t           j        t           j        t           j        ft
          t          z   t          z   d }fd}d }|x}}t          | t           j	        ||||d           d S )Nc                 6    | j         t          j        j        k    S r    )rs   r7   Operator
Comparisonr9   s    r   r   zgroup_comparison.<locals>.match   s    {aj333r$   c                 \    t          |           rdS | r| j        r| j        dk    rdS dS )N)rR   rQ   Trg   F)r   rd   re   rV   s    r   r<   zgroup_comparison.<locals>.valid   sH    u&))) 	4 	u' 	E,<,F,F45r$   c                 
    ||fS r    r;   r>   s       r   rA   zgroup_comparison.<locals>.post   rB   r$   Fextend)
r   r&   r\   rE   	OperationT_NUMERICALT_STRINGT_NAMErD   r   r   r   r<   rA   rG   rH   rW   rX   s         @@r   group_comparisonr      s    os|S^mF8#f,F4 4 4        $#J
5#.%z47 7 7 7 7 7r$   c                     t           j        j        t           j        f}|                     |          \  }}|r?|                     t          j        ||           |                     ||          \  }}|=d S d S )Nrj   rR   r   )r7   rT   rU   rS   ry   r   r   rE   )r   rX   r   r   s       r   group_identifierr      s    hoqv&F%%%//KD%
 >3>4666))F)==e  > > > > >r$   c           
          t           j        t           j        t           j        ft          j        t          j        j        fd }fd}d }d }t          | t           j        ||||dd           d S )Nc                 6    t          | t          j                  S r    )r   r   r!   r9   s    r   r   zgroup_arrays.<locals>.match   s    %!3444r$   c                 (    t          |           S rO   r   rV   s    r   rG   z group_arrays.<locals>.valid_prev       5Ff----r$   c                     dS rZ   r;   r9   s    r   rH   z group_arrays.<locals>.valid_next   s    tr$   c                 
    ||fS r    r;   r>   s       r   rA   zgroup_arrays.<locals>.post   rB   r$   TF)r   r   )	r   r!   rE   r\   r7   rS   rT   rU   rD   )r   r   rG   rH   rA   rW   rX   s        @@r   group_arraysr      s    =FVQX_$F5 5 5. . . . . .     5#.%z4eE E E E E Er$   c           	      
   t           t          z   t          z   t          j        t          j        t          j        t          j        t          j        fd }fd}d }|x}}t          | t          j        ||||d           d S )Nc                 P    t          | t          j        t          j        f          S ri   )r   r7   r   r]   r9   s    r   r   zgroup_operator.<locals>.match   s    5QZ45555r$   c                 (    t          |           S rO   r   rV   s    r   r<   zgroup_operator.<locals>.valid   r   r$   c                 8    t           j        | |         _        ||fS r    )r7   r   rs   r>   s       r   rA   zgroup_operator.<locals>.post   s    JdTzr$   Fr   )
r   r   r   r   r!   r&   r\   rE   r   rD   r   s         @@r   group_operatorr      s    8#f,F #/3<ncm-F6 6 6. . . . . .   $#J
5#-z47 7 7 7 7 7r$   c           	         t           j        dft          j        t          j        t          j        t          j        t          j        t          j        ft          t          z   t          z   t           j        t           j        t           j        fz   d }fd}d }|x}}t          | t          j        ||||d           d S )N)nullrolec                 B    |                      t          j        d          S )N,r6   r9   s    r   r   z$group_identifier_list.<locals>.match   rM   r$   c                 *    t          |           S )N)rQ   rx   rR   r   )r   m_rolerW   rX   s    r   r<   z$group_identifier_list.<locals>.valid   s    5Ff7777r$   c                 
    ||fS r    r;   r>   s       r   rA   z#group_identifier_list.<locals>.post   rB   r$   Tr   )r7   rt   r   r\   r)   rE   r   IdentifierListr   r   r   r   Commentr]   rD   )	r   r   r<   rA   rG   rH   r   rW   rX   s	         @@@r   group_identifier_listr      s    Y((FlCHcncn #-1FH$v-y!)QZ01F/ / /8 8 8 8 8 8 8   $#J
5#$ez46 6 6 6 6 6r$   c                 P   |                      t          j                  \  }}|r|                     d |          \  }}|;|                     |d          \  }}|                     t          j        ||           |                      t          j        |          \  }}|~d S d S )Nrj   c                 F    t          | t          j                  p| j        S ri   )r   r7   r   r
   )tks    r   <lambda>z group_comments.<locals>.<lambda>   s    s2+++?r/? r$   )r   F)skip_wsr   )ry   r7   r   token_not_matching
token_prevr   r   r   r   r   eidxends        r   group_commentsr      s    %%	%22KD%
 A,,??T - K K	c?((u(==ID#s{D$777))AI4)@@e  A A A A Ar$   c                    |                      t          j        j                  \  }}|r|                      t          j        j        |          \  }}|| j        d         }n| j        |dz
           }|                     |          }|                     t          j        ||           |                      t          j        j        |          \  }}|d S d S )N)rx   rw      )	ry   r   Wherer   r   _groupable_tokensr   token_indexr   r   s        r   group_wherer     s    %%	(8%99KD%
 H''#)*;'FF	c;)"-CC,tax(C   %%39dD111))CI,<$)GGe  H H H H Hr$   c                    t           j        t           j        t           j        t           j        t           j        t           j        f}|                     |t          j	                  \  }}|r~| 
                    |          \  }}t          |t           j                  r#|                     t           j        ||d           |                     |t          j	        |          \  }}||d S d S )NrP   Tr   )rQ   rR   r   )r   r&   r\   r)   rE   r   r   ry   r7   Number
token_nextr   r   )r   I_ALIASr   r   r@   r^   s         r   group_aliasedr     s    ch}cn.G %%18%<<KD%
 K&&t,,eeS^,, 	Hs~tT$GGG))GqxT)JJe	  K K K K Kr$   c                    d}d}| j         D ]}|j        dk    rd}|j        dk    rd}|r|rd S |                     t          j                  \  }}|r{|                     |          \  }}t          |t          j                  r!| 	                    t          j
        ||           |                     t          j        |          \  }}|yd S d S )NFCREATETTABLErj   r   )r   valuery   r7   rS   r   r   r   r&   r   r\   )r   
has_create	has_table	tmp_tokenr   r   r@   r^   s           r   group_functionsr     s    JI\  	?h&&J?g%%I i %%%//KD%
 >&&t,,eeS_-- 	9s|T4888))AF)==e	  > > > > >r$   c                 v   |                      t          j        j                  \  }}|r|                     |          \  }}t          |t          j        t          j                  r#| 	                    t          j        ||           |}|                      t          j        j        |          \  }}|dS dS )z,Group together Identifier and Asc/Desc tokenrj   rP   r   N)
ry   r7   rt   Orderr   r   r   rE   r   r   r   r   r   r?   prev_s        r   group_orderr   3  s    %%	%88KD%
 G&&t,,eu!(333 	s~tT:::D))AIO)FFe  G G G G Gr$   c                 N   |                      t          j                  \  }}|r|                     |          \  }}t	          |t          j                  r%|                     t          j        ||d           |}|                      t          j        |          \  }}|}d S d S )N)rQ   Tr   )rQ   r   )ry   r   r   r   r   	TokenListr   r   s        r   align_commentsr   >  s    %%%44KD%
 C&&t,,eeS]++ 	s}dDFFFD))CKT)BBe  C C C C Cr$   c                 "   t           t          t          t          t          t
          t          t          t          t          t          t          t          t          t          t          t           t"          t$          t&          t(          fD ]} ||            | S r    )r   r#   r'   r*   r-   r0   r3   r   r   r`   r   r   r   rI   r   r   rn   r   r}   r   r   )stmtfuncs     r   groupr   I  sj     	3  6 	T



Kr$   c                     dS rZ   r;   rj   s    r   r   r   j       r$   c                     dS rZ   r;   rj   s    r   r   r   k  r   r$   NTc           
         d}d\  }	}
t          t          |                     D ]\  }}||z
  }|j        r|r,|j        r%t	          ||          st          |||||||            ||          rg|                     |          \  }}|
rM ||
          rB ||          r7 || |	||          \  }}|                     ||||          }|||z
  z  }||}
}	||}
}	dS )zCGroups together tokens that are joined by a middle token. ie. x < yr   )NNr   N)r   r	   r
   r   r   rD   r   r   )r   r   r   rG   rH   rA   r   r   r   r?   r   r   r   r   r@   r^   from_idxto_idxgrps                      r   rD   rD   i  sA    KKD%U,, " "
U[  	 	Lu~ 	Lj.D.D 	L5#uj*dFKKK5<< 	**400KD% E** zz%/@/@ #'4tT4#@#@ &((hv(NNv00&eEe'" "r$   ).sqlparser   r   r7   sqlparse.utilsr   r   r   IntegerFloatr   rT   SinglerU   r   rS   Placeholderr   r   r#   r'   r*   r-   r0   r3   rI   r`   rn   r}   r   rE   r   r   r   r   r   r   r   r   r   r\   r   r   r   r   rD   r;   r$   r   <module>r      s                     ' ' ' ' ' ' ' 'x)18>:Hahoqx7
&!&$	% 0  0  0F/ / /, , ,% % %# # #$ $ $& & &G G GG G G2G G G"G G G"7 7 70 	> > >E E E(7 7 7(6 6 6* 		A 	A 	A 	H H H  		K 	K 	K 	> > >&G G G 	C C C  B %n$n" " " " " "r$   