
    Dvg
9                        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d Zd Z eej                   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- eej                   d             Z. e            d             Z/d Z0d Z1d d  d!d"d"fd#Z2d!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	            U/var/www/pixelcanvas.ch/venv/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       D  r$   c                 
    ||fS r    r;   r   pidxr   nidxs       r   postzgroup_typecasts.<locals>.postS       Tzr$   _groupr   
Identifierr   r   r<   rB   
valid_prev
valid_nexts         r   group_typecastsrJ   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                 6    | j         t          j        j        k    S r    )ttyper7   KeywordTZCastr9   s    r   r   zgroup_tzcasts.<locals>.match[   s    {ai...r$   c                 
    | d uS r    r;   r9   s    r   rH   z!group_tzcasts.<locals>.valid_prev^   r=   r$   c                     | d uo?| j         p8|                     t          j        d          p | j        t          j        j         S NAS)r
   r   r7   rN   r   TypedLiteralr   r9   s    r   rI   z!group_tzcasts.<locals>.valid_nexta   sI    D  
 6{{19d++6u{C,45	
r$   c                 
    ||fS r    r;   r?   s       r   rB   zgroup_tzcasts.<locals>.posth   rC   r$   rD   r   r   rH   rI   rB   s        r   group_tzcastsrW   Z   s`    / / /! ! !
 
 
   5#.%ZFFFFFr$   c           	          d }d }d }d }d }d }t          | t          j        ||||d           t          | t          j        ||||d	           d S )
Nc                 B    t          | t          j        j                  S )Nm)r   r   rT   r   r9   s    r   r   z"group_typed_literal.<locals>.matcht   s    5C,34444r$   c                 6    t          | t          j                  S r    )r   r   rT   r9   s    r   match_to_extendz,group_typed_literal.<locals>.match_to_extendw   s    %!1222r$   c                 
    | d uS r    r;   r9   s    r   rH   z'group_typed_literal.<locals>.valid_prevz   r=   r$   c                 <    | d uo | j         t          j        j         S r    )r   r   rT   r   r9   s    r   rI   z'group_typed_literal.<locals>.valid_next}   s!    D K[U[#2B2J%KKr$   c                 <    | d uo | j         t          j        j         S r    )r   r   rT   M_EXTENDr9   s    r   valid_finalz(group_typed_literal.<locals>.valid_final   s!    D L[U[#2B2K%LLr$   c                 
    ||fS r    r;   r?   s       r   rB   z!group_typed_literal.<locals>.post   rC   r$   FextendT)rE   r   rT   )r   r   r]   rH   rI   rb   rB   s          r   group_typed_literalrf   n   s    5 5 53 3 3! ! !L L LM M M   5#"E:z   
5#"OZ     r$   c                 Z    d }d }d }d }t          | t          j        ||||           d S )Nc                     t           j        dft           j        dft           j        dffD ]\  }}|                     ||          r dS dS )N.z->z->>TF)r7   r8   Operatorr   )r   rM   values      r   r   zgroup_period.<locals>.match   s^    mS1j$/j%02 	 	LE5 {{5%(( ttur$   c                     t           j        t           j        f}t          j        t          j        j        f}t          | ||          S Nit)r   r!   rF   r7   NameStringSymbolr   r   sqlclsttypess      r   rH   z group_period.<locals>.valid_prev   s6    #S^3(5Ff----r$   c                     dS NTr;   r9   s    r   rI   z group_period.<locals>.valid_next   s    tr$   c                     t           j        t           j        f}t          j        t          j        j        t          j        t          j        j        f}|| |         nd }t          |||          }|r||fn||fS rm   )
r   r!   Functionr7   rq   rr   rs   WildcardSingler   )r   r@   r   rA   ru   rv   next_rI   s           r   rB   zgroup_period.<locals>.post   sh    #S\1!*ahoE#/dT&F333
);d||d|;r$   rD   rV   s        r   group_periodr~      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 rR   )
is_keyword
normalizedr9   s    r   r   zgroup_as.<locals>.match   s    <E$4$<<r$   c                 (    | j         dk    p| j         S )NNULL)r   r   r9   s    r   rH   zgroup_as.<locals>.valid_prev   s    6)A1A-AAr$   c                 t    t           j        t           j        t           j        f}t	          | |           o| d uS Nrp   )r7   DMLDDLCTEr   )r   rv   s     r   rI   zgroup_as.<locals>.valid_next   s4    qu$u''''=E,==r$   c                 
    ||fS r    r;   r?   s       r   rB   zgroup_as.<locals>.post   rC   r$   rD   rV   s        r   group_asr      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                 2    | d uo| j         t          j        fvS r    )rM   r7   rN   r9   s    r   r<   zgroup_assignment.<locals>.valid   s    D DU[%DDr$   c                 b    t           j        df}|                     ||          \  }}|p|}||fS )N;r[   r   )r7   r8   token_next_by)r   r@   r   rA   m_semicolonsnidx_s          r   rB   zgroup_assignment.<locals>.post   s=    mS(&&$&??q}Tzr$   )rE   r   r   rG   s         r   group_assignmentr      s^    / / /E E E   $#J
5#.%ZFFFFFr$   c           	      
   t           j        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    )rM   r7   rj   
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)rp   ro   Tr   F)r   r   r   rt   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   rB   zgroup_comparison.<locals>.post   rC   r$   Frd   )r   r&   rz   rF   	OperationrT   T_NUMERICALT_STRINGT_NAMErE   r   r   r   r<   rB   rH   rI   ru   rv   s         @@r   group_comparisonr      s    os|S^mS-/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 )Nr   rp   r   )r7   rr   rs   rq   r   r   r   rF   )r   rv   r   r   s       r   group_identifierr      s    hoqv&F%%%//KD%
 >3>4666))F)==e  > > > > >r$   c                 r   |                      t          j        j                  \  }}|r|                     |          \  }}t          |t          j        t          j                  r!| 	                    t          j        ||           |                      t          j        j        |          \  }}|d S d S )NrZ   rn   r   )
r   r   Overr   
token_nextr   r&   r7   rq   r   )r   r   r   rA   r}   s        r   
group_overr      s    %%%88KD%
 G&&t,,eu16222 	5sxt444))CHO)FFe	  G G G G G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 rm   r   rt   s    r   rH   z group_arrays.<locals>.valid_prev   s    5Ff----r$   c                     dS rx   r;   r9   s    r   rI   z group_arrays.<locals>.valid_next  s    tr$   c                 
    ||fS r    r;   r?   s       r   rB   zgroup_arrays.<locals>.post  rC   r$   TF)re   r   )	r   r!   rF   rz   r7   rq   rr   rs   rE   )r   r   rH   rI   rB   ru   rv   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        t          j	        fd }fd}d }|x}}t          | t          j        ||||d           d S )Nc                 P    t          | t          j        t          j        f          S r   )r   r7   rj   r{   r9   s    r   r   zgroup_operator.<locals>.match  s    5QZ45555r$   c                 l    t          |           p!| o|                     t          j        d          S )Nrn   )CURRENT_DATECURRENT_TIMECURRENT_TIMESTAMP)r   r   r7   rN   rt   s    r   r<   zgroup_operator.<locals>.valid  sD    5Ff--- H G%++	EG G	Hr$   c                 8    t           j        | |         _        ||fS r    )r7   rj   rM   r?   s       r   rB   zgroup_operator.<locals>.post  s    JdTzr$   Frd   )r   r   r   r   r!   r&   rz   rF   r   rT   rE   r   s         @@r   group_operatorr     s    8#f,F #/3<ncmS-=?F6 6 6H H H H H H   $#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*  s    {{1=#...r$   c                 *    t          |           S )N)ro   r[   rp   r   )r   m_roleru   rv   s    r   r<   z$group_identifier_list.<locals>.valid-  s    5Ff7777r$   c                 
    ||fS r    r;   r?   s       r   rB   z#group_identifier_list.<locals>.post0  rC   r$   Trd   )r7   rN   r   rz   r)   rF   r   IdentifierListr   r   r   r   Commentr{   rE   )	r   r   r<   rB   rH   rI   r   ru   rv   s	         @@@r   group_identifier_listr   #  s    Y((FlCHcncn #-1FH$v-AIqz23F/ / /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 )Nr   c                 F    t          | t          j                  p| j        S r   )r   r7   r   
is_newline)tks    r   <lambda>z group_comments.<locals>.<lambda>=  s    s2+++<r} r$   )r   F)skip_wsr   )r   r7   r   token_not_matching
token_prevr   r   r   r   r   eidxends        r   group_commentsr   8  s    %%	%22KD%
 A,,<<$ - H H	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 )NrZ   r      )	r   r   Wherer   r   _groupable_tokensr   token_indexr   r   s        r   group_wherer   E  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 )Nrn   Trd   )ro   rp   r   )r   r&   rz   r)   rF   r   r   r   r7   Numberr   r   r   )r   I_ALIASr   r   rA   r}   s         r   group_aliasedr   V  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}d}| j         D ]M}|j                                        dk    rd}|j                                        dk    rd}|j        dk    rd}N|r|r|sd S |                     t          j                  \  }}|r|                     |          \  }}t          |t          j	                  rZ|                     |          \  }	}
|
rt          |
t          j
                  r|	}n|}|                     t          j        ||           |                     t          j        |          \  }}|d S d S )NFCREATETTABLErS   r   r   )r   rk   upperr   r7   rq   r   r   r   r&   r   r   rz   )r   
has_create	has_tablehas_as	tmp_tokenr   r   rA   r}   over_idxoverr   s               r   group_functionsr   c  so   JIF\  	?  ""h..J?  ""g--I?d""F i  %%%//KD%
 	>&&t,,eeS_-- 	9"--d33NHd 
422 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 tokenr   rn   r   N)
r   r7   rN   Orderr   r   r   rF   r   r   r   r   r   r@   prev_s        r   group_orderr     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)ro   Trd   )ro   r   )r   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          j        df          \  }}|}d}|r6t          |t          j                  r|}|                     |          \  }}|6|dk    r%|                     t          j        ||d           d S d S )NVALUESrZ   r   Trd   )	r   r7   rN   r   r   r&   r   r   Values)r   r   r   	start_idxend_idxs        r   group_valuesr     s    %%H(=%>>KD%IG
 -eS_-- 	G&&t,,e  - "}}3:y'$GGGGG }r$   c                 R   t           t          t          t          t          t
          t          t          t          t          t          t          t          t          t          t          t           t"          t$          t&          t(          t*          t,          t.          t0          fD ]} ||            | S r    )r   r#   r'   r*   r-   r0   r3   r   r   r   r~   r   r   r   rJ   rW   rf   r   r   r   r   r   r   r   r   )stmtfuncs     r   groupr     sv     	;  > 	T



Kr$   c                     dS rx   r;   r   s    r   r   r          r$   c                     dS rx   r;   r   s    r   r   r     r   r$   NTc           
         d}d\  }	}
t          t          |                     D ]\  }}||z
  }|dk     r|j        r|r,|j        r%t	          ||          st          |||||||            ||          rg|                     |          \  }}|
rM ||
          rB ||          r7 || |	||          \  }}|                     ||||          }|||z
  z  }||}
}	||}
}	dS )zDGroups together tokens that are joined by a middle token. i.e. x < yr   )NNrd   N)r   r	   r
   r   r   rE   r   r   )r   r   r   rH   rI   rB   re   r   r   r@   r   r   r   r   rA   r}   from_idxto_idxgrps                      r   rE   rE     sM    KKD%U,, " "
U[ !88 	 	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$   )3sqlparser   r   r7   sqlparse.utilsr   r   r   IntegerFloatr   rr   r|   rs   r   rq   Placeholderr   r   r#   r'   r*   r-   r0   r3   rJ   rW   rf   r~   r   r   r   rF   r   r   r   r   r   r   r   r   r   r   r   rz   r   r   r   r   r   rE   r;   r$   r   <module>r     s,                     ' ' ' ' ' ' ' 'x)18>:Hahoqx7
&!&$	% 0  0  0F/ / /, , ,% % %# # #$ $ $& & &G G GG G G(  <G G G<G G G"G G G"7 7 70 	> > > 	G G GE E E(7 7 7.6 6 6* 		A 	A 	A 	H H H  		K 	K 	K 	> > >6 	G G G 	C C C	H 	H 	H! ! !J %n$n "  "  "  "  "  "r$   