
    %h
9                     *   S SK Jr  S SK Jr  S SKJrJr  \R                  \R                  R                  \R                  R                  4r
\R                  \R                  R                  \R                  R                  4r\R                  \R                  R                   4rS rS rS rS rS rS	 rS
 rS rS rS rS rS rS rS r\" \R@                  5      S 5       r!\" \RD                  5      S 5       r#S r$S r%S r&\" \RN                  5      S 5       r(\" \RR                  5      S 5       r*\" 5       S 5       r+\" \RX                  5      S 5       r-\" \R@                  5      S 5       r.\" 5       S 5       r/S r0S r1S S  S!S"S"4S# jr2g!)$    )sql)tokens)recurseimtc                    / nSn[        [        U 5      5       H  u  pEXC-
  nUR                  (       a  M  UR                  (       a  [	        XQ5      (       d  [        XQ5        MJ  UR                  " UR                  6 (       a  UR                  U5        M{  UR                  " UR                  6 (       d  M   UR                  5       nUnU R                  XU5        X8U-
  -  nM     g! [         a     M  f = f)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	            J/var/www/html/env/lib/python3.13/site-packages/sqlparse/engine/grouping.pyr   r      s    EKU,
  >>*U"8"8 E';;

#LL[[#++&& 99;
 Isi8x//K9 -,   s   5C%%
C32C3c                 8    [        U [        R                  5        g N)r   r   SquareBracketsr   s    r   group_bracketsr#   4   s    E3--.    c                 8    [        U [        R                  5        g r    )r   r   Parenthesisr"   s    r   group_parenthesisr'   8   s    E3??+r$   c                 8    [        U [        R                  5        g r    )r   r   Caser"   s    r   
group_caser*   <   s    E388$r$   c                 8    [        U [        R                  5        g r    )r   r   Ifr"   s    r   group_ifr-   @   s    E366"r$   c                 8    [        U [        R                  5        g r    )r   r   Forr"   s    r   	group_forr0   D   s    E377#r$   c                 8    [        U [        R                  5        g r    )r   r   Beginr"   s    r   group_beginr3   H   s    E399%r$   c                 T    S nS nS nU=pE[        U [        R                  XXS5        g )Nc                 B    U R                  [        R                  S5      $ )Nz::r   TPunctuationr   s    r   r   group_typecasts.<locals>.matchM   s    {{1==$//r$   c                 
    U S L$ r     r9   s    r   validgroup_typecasts.<locals>.validP       D  r$   c                     X4$ r    r<   r   pidxr   nidxs       r   postgroup_typecasts.<locals>.postS   
    zr$   _groupr   
Identifierr   r   r=   rD   
valid_prev
valid_nexts         r   group_typecastsrM   L   s-    0! $#J
5#..%ZFr$   c                 T    S nS nS nS n[        U [        R                  XX45        g )Nc                 P    U R                   [        R                  R                  :H  $ r    )ttyper7   KeywordTZCastr9   s    r   r   group_tzcasts.<locals>.match[   s    {{aii....r$   c                 
    U S L$ r    r<   r9   s    r   rK   !group_tzcasts.<locals>.valid_prev^   r?   r$   c                     U S L=(       aa    U R                   =(       dN    U R                  [        R                  S5      =(       d'    U R                  " [        R
                  R                  6 $ NAS)r
   r   r7   rQ   r   TypedLiteralr   r9   s    r   rL   !group_tzcasts.<locals>.valid_nexta   sQ    D  
 6{{199d+6{{C,,445	
r$   c                     X4$ r    r<   rA   s       r   rD   group_tzcasts.<locals>.posth   rF   r$   rG   r   r   rK   rL   rD   s        r   group_tzcastsr^   Z   s*    /!
 5#..%ZFr$   c           
          S nS nS nS nS nS n[        U [        R                  XUUSS9  [        U [        R                  X#UUS	S9  g )
Nc                 F    [        U [        R                  R                  S9$ )Nm)r   r   rY   r   r9   s    r   r   "group_typed_literal.<locals>.matcht   s    5C,,3344r$   c                 6    [        U [        R                  5      $ r    )r   r   rY   r9   s    r   match_to_extend,group_typed_literal.<locals>.match_to_extendw   s    %!1!122r$   c                 
    U S L$ r    r<   r9   s    r   rK   'group_typed_literal.<locals>.valid_prevz   r?   r$   c                 f    U S L=(       a'    U R                   " [        R                  R                  6 $ r    )r   r   rY   r   r9   s    r   rL   'group_typed_literal.<locals>.valid_next}   s'    D KU[[#2B2B2J2J%KKr$   c                 f    U S L=(       a'    U R                   " [        R                  R                  6 $ r    )r   r   rY   M_EXTENDr9   s    r   valid_final(group_typed_literal.<locals>.valid_final   s'    D LU[[#2B2B2K2K%LLr$   c                     X#4$ r    r<   rA   s       r   rD   !group_typed_literal.<locals>.post   rF   r$   FextendT)rH   r   rY   )r   r   re   rK   rL   rm   rD   s          r   group_typed_literalrs   n   sZ    53!LM 5#""Ez
5#""Or$   c                 T    S nS nS nS n[        U [        R                  XX45        g )Nc                     [         R                  S4[         R                  S4[         R                  S44 H  u  pU R                  X5      (       d  M    g   g)N.z->z->>TF)r7   r8   Operatorr   )r   rP   values      r   r   group_period.<locals>.match   sM    mmS1jj$/jj%02LE {{5((	2
 r$   c                     [         R                  [         R                  4n[        R                  [        R
                  R                  4n[        XUS9$ Nit)r   r!   rI   r7   NameStringSymbolr   r   sqlclsttypess      r   rK    group_period.<locals>.valid_prev   s9    ##S^^3(5f--r$   c                     gNTr<   r9   s    r   rL    group_period.<locals>.valid_next   s    r$   c                 &   [         R                  [         R                  4n[        R                  [        R
                  R                  [        R                  [        R
                  R                  4nUb  X   OS n[        XdUS9nU(       a  X4$ X4$ r{   )
r   r!   Functionr7   r   r   r   WildcardSingler   )r   rB   r   rC   r   r   next_rL   s           r   rD   group_period.<locals>.post   sg    ##S\\1!**ahhooE#/TF3
)|;|;r$   rG   r]   s        r   group_periodr      s*    .
< 5#..%ZFr$   c                 T    S nS nS nS n[        U [        R                  XX45        g )Nc                 F    U R                   =(       a    U R                  S:H  $ rW   )
is_keyword
normalizedr9   s    r   r   group_as.<locals>.match   s    <E$4$4$<<r$   c                 P    U R                   S:H  =(       d    U R                  (       + $ )NNULL)r   r   r9   s    r   rK   group_as.<locals>.valid_prev   s!    6)A1A1A-AAr$   c                     [         R                  [         R                  [         R                  4n[	        XS9(       + =(       a    U S L$ Nr~   )r7   DMLDDLCTEr   )r   r   s     r   rL   group_as.<locals>.valid_next   s2    quu$u''=E,==r$   c                     X4$ r    r<   rA   s       r   rD   group_as.<locals>.post   rF   r$   rG   r]   s        r   group_asr      s+    =B> 5#..%ZFr$   c                 T    S nS nS nU=pE[        U [        R                  XXS5        g )Nc                 B    U R                  [        R                  S5      $ )Nz:=)r   r7   
Assignmentr9   s    r   r   group_assignment.<locals>.match   s    {{1<<..r$   c                 T    U S L=(       a    U R                   [        R                  4;  $ r    )rP   r7   rQ   r9   s    r   r=   group_assignment.<locals>.valid   s!    D DU[[%DDr$   c                 d    [         R                  S4nU R                  XCS9u  pVU=(       d    UnX4$ )N;rb   r   )r7   r8   token_next_by)r   rB   r   rC   m_semicolonsnidx_s          r   rD   group_assignment.<locals>.post   s6    mmS(&&&?}zr$   )rH   r   r   rJ   s         r   group_assignmentr      s.    /E $#J
5#..%ZFr$   c           
      "  ^^ [         R                  [         R                  [         R                  [         R                  [         R
                  4m[        [        -   [        -   mS nUU4S jnS nU=pE[        U [         R                  UXEUSS9  g )Nc                 P    U R                   [        R                  R                  :H  $ r    )rP   r7   rw   
Comparisonr9   s    r   r   group_comparison.<locals>.match   s    {{ajj3333r$   c                 z   > [        U TTS9(       a  gU (       a"  U R                  (       a  U R                  S:X  a  gg)N)r~   r}   Tr   F)r   r   r   r   s    r   r=   group_comparison.<locals>.valid   s0    u&)u''E,<,<,Fr$   c                     X4$ r    r<   rA   s       r   rD   group_comparison.<locals>.post   rF   r$   Frq   )r   r&   r   rI   	OperationrY   T_NUMERICALT_STRINGT_NAMErH   r   r   r   r=   rD   rK   rL   r   r   s         @@r   group_comparisonr      sm    oos||S^^mmS--/F8#f,F4 $#J
5#..%47r$   c                     [         R                  R                  [         R                  4nU R	                  US9u  p#U(       a;  U R                  [        R                  X"5        U R	                  XS9u  p#U(       a  M:  g g )Nr   r~   r   )r7   r   r   r   r   r   r   rI   )r   r   r   r   s       r   group_identifierr      s`    hhooqvv&F%%%/KD
3>>46))F)= %r$   c                    U R                  [        R                  R                  S9u  pU(       a  U R	                  U5      u  p4[        U[        R                  [        R                  S9(       a   U R                  [        R                  X5        U R                  [        R                  R                  US9u  pU(       a  M  g g )Nra   r|   r   )
r   r   Overr   
token_nextr   r&   r7   r   r   )r   r   r   rC   r   s        r   
group_overr      s    %%%8KD
&&t,u1662sxx4))CHHOO)F	 %r$   c                   ^^ [         R                  [         R                  [         R                  4m[        R
                  [        R                  R                  4mS nUU4S jnS nS n[        U [         R                  UX#USSS9  g )Nc                 6    [        U [        R                  5      $ r    )r   r   r!   r9   s    r   r   group_arrays.<locals>.match   s    %!3!344r$   c                    > [        U TTS9$ r{   r   r   s    r   rK    group_arrays.<locals>.valid_prev   s    5Ff--r$   c                     gr   r<   r9   s    r   rL    group_arrays.<locals>.valid_next  s    r$   c                     X4$ r    r<   rA   s       r   rD   group_arrays.<locals>.post  rF   r$   TF)rr   r   )	r   r!   rI   r   r7   r   r   r   rH   )r   r   rK   rL   rD   r   r   s        @@r   group_arraysr      se    =FVVQXX__$F5. 5#..%4eEr$   c           
      @  ^^ [         [        -   [        -   m[        R                  [        R
                  [        R                  [        R                  [        R                  [        R                  4mS nUU4S jnS nU=pE[        U [        R                  UXEUSS9  g )Nc                 R    [        U [        R                  [        R                  4S9$ r   )r   r7   rw   r   r9   s    r   r   group_operator.<locals>.match  s    5QZZ455r$   c                 z   > [        U TTS9=(       d)    U =(       a     U R                  [        R                  S5      $ )Nr|   )CURRENT_DATECURRENT_TIMECURRENT_TIMESTAMP)r   r   r7   rQ   r   s    r   r=   group_operator.<locals>.valid  s:    5Ff- H G%++		EG	Hr$   c                 6    [         R                  X   l        X4$ r    )r7   rw   rP   rA   s       r   rD   group_operator.<locals>.post  s    JJzr$   Frq   )r   r   r   r   r!   r&   r   rI   r   rY   rH   r   s         @@r   group_operatorr     sv    8#f,F  #//3<<nncmmS-=-=?F6H $#J
5#--47r$   c           
        ^^^ [         R                  S4m[        R                  [        R                  [        R
                  [        R                  [        R                  [        R                  4m[        [        -   [        -   [         R                  [         R                  [         R                  4-   mS nUUU4S jnS nU=pE[        U [        R                  UXEUSS9  g )N)nullrolec                 B    U R                  [        R                  S5      $ )N,r6   r9   s    r   r   $group_identifier_list.<locals>.match*  s    {{1==#..r$   c                    > [        U TTTS9$ )N)r}   rb   r~   r   )r   m_roler   r   s    r   r=   $group_identifier_list.<locals>.valid-  s    5Ff77r$   c                     X4$ r    r<   rA   s       r   rD   #group_identifier_list.<locals>.post0  rF   r$   Trq   )r7   rQ   r   r   r)   rI   r   IdentifierListr   r   r   r   Commentr   rH   )	r   r   r=   rD   rK   rL   r   r   r   s	         @@@r   group_identifier_listr   #  s    YY((FllCHHcnncnn  #--1FH$v-AIIqzz23F/8 $#J
5#$$e46r$   c                 4   U R                  [        R                  S9u  pU(       ar  U R                  S US9u  p4Ub2  U R	                  USS9u  p4U R                  [        R                  X5        U R                  [        R                  US9u  pU(       a  Mq  g g )Nr   c                 X    [        U [        R                  S9=(       d    U R                  $ r   )r   r7   r   
is_newline)tks    r   <lambda> 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    %%		%2KD
,,<$ - H	?((u(=IDs{{D7))AII4)@ %r$   c                    U R                  [        R                  R                  S9u  pU(       a  U R                  [        R                  R                  US9u  p4Uc  U R
                  S   nOU R                  US-
     nU R                  U5      nU R                  [        R                  X5        U R                  [        R                  R                  US9u  pU(       a  M  g g )Nra   r      )	r   r   Wherer   r   _groupable_tokensr   token_indexr   r   s        r   group_wherer   E  s    %%		(8(8%9KD
''#))*;*;'F	;))"-C,,tax(C   %399d1))CII,<,<$)G %r$   c                    [         R                  [         R                  [         R                  [         R                  [         R
                  [         R                  4nU R                  U[        R                  S9u  p#U(       a|  U R                  U5      u  pE[        U[         R                  5      (       a  U R                  [         R                  X$SS9  U R                  U[        R                  US9u  p#U(       a  M{  g g )Nr|   Trq   )r}   r~   r   )r   r&   r   r)   rI   r   r   r   r7   Numberr   r   r   )r   I_ALIASr   r   rC   r   s         r   group_aliasedr  V  s    chh}}cnn.G %%188%<KD
&&t,eS^^,,s~~t$G))GqxxT)J	 %r$   c                    SnSnSnU R                    HW  nUR                  R                  5       S:X  a  SnUR                  R                  5       S:X  a  SnUR                  S:X  d  MU  SnMY     U(       a  U(       a  U(       d  g U R                  [        R
                  S9u  pVU(       a  U R                  U5      u  px[        U[        R                  5      (       a^  U R                  U5      u  pU
(       a"  [        U
[        R                  5      (       a  U	nOUnU R                  [        R                  X[5        U R                  [        R
                  US9u  pVU(       a  M  g g )NFCREATETTABLErX   r   r   )r   rx   upperr   r7   r   r   r   r   r&   r   r   r   )r   
has_create	has_tablehas_as	tmp_tokenr   r   rC   r   over_idxoverr   s               r   group_functionsr  c  s   JIF\\	??  "h.J??  "g-I??d"F " i%%%/KD
&&t,eS__--"--d3NH
422s||T8))AFF)= %r$   c                    U R                  [        R                  R                  S9u  pU(       a  U R	                  U5      u  p4[        U[        R                  [        R                  S9(       a"  U R                  [        R                  X15        UnU R                  [        R                  R                  US9u  pU(       a  M  gg)z,Group together Identifier and Asc/Desc tokenr   r|   r   N)
r   r7   rQ   Orderr   r   r   rI   r   r   r   r   r   rB   prev_s        r   group_orderr    s     %%		%8KD
&&t,u!((3s~~t:D))AIIOO)F %r$   c                 J   U R                  [        R                  S9u  pU(       a}  U R                  U5      u  p4[	        U[        R
                  5      (       a!  U R                  [        R
                  X1SS9  UnU R                  [        R                  US9u  pU(       a  M|  g g )N)r}   Trq   )r}   r   )r   r   r   r   r   	TokenListr   r  s        r   align_commentsr    s    %%%4KD
&&t,eS]]++s}}dFD))CKKT)B %r$   c                 "   U R                  [        R                  S4S9u  pUnSnU(       a=  [        U[        R
                  5      (       a  UnU R                  U5      u  pU(       a  M=  US:w  a   U R                  [        R                  X4SS9  g g )NVALUESra   r   Trq   )	r   r7   rQ   r   r   r&   r   r   Values)r   r   r   	start_idxend_idxs        r   group_valuesr    s    %%H(=%>KDIG
eS__--G&&t, % "}3::y$G r$   c                 "   [         [        [        [        [        [
        [        [        [        [        [        [        [        [        [        [        [         ["        [$        [&        [(        [*        [,        [.        [0        4 H  nU" U 5        M     U $ r    )r   r#   r'   r*   r-   r0   r3   r   r  r   r   r   r   r  rM   r^   rs   r   r   r   r  r   r  r   r  )stmtfuncs     r   groupr    sl     	;> 	T
?@ Kr$   c                     gr   r<   r   s    r   r   r         r$   c                     gr   r<   r   s    r   r   r     r   r$   NTc           
         SnSu  p[        [        U 5      5       H  u  pX-
  nUS:  a  M  UR                  (       a  M$  U(       a/  UR                  (       a  [	        X5      (       d  [        XX#XEU5        U" U5      (       a_  U R                  U5      u  pU
(       aE  U" U
5      (       a8  U" U5      (       a+  U" X	X5      u  nnU R                  UUUUS9nUUU-
  -  nUUpM  XpM     g)zDGroups together tokens that are joined by a middle token. i.e. x < yr   )NNrq   N)r   r	   r
   r   r   rH   r   r   )r   r   r   rK   rL   rD   rr   r   r   rB   r  r   r   r   rC   r   from_idxto_idxgrps                      r   rH   rH     s     KKDU,
 !8u~~j.D.D5u*FK<<**40KDE**z%/@/@#'T#@ &((hv(Nv00&ee+ -r$   )3sqlparser   r   r7   sqlparse.utilsr   r   r   IntegerFloatr   r   r   r   r   r   Placeholderr   r   r#   r'   r*   r-   r0   r3   rM   r^   rs   r   r   r   r   rI   r   r   r   r   r   r   r   r   r   r   r  r   r  r  r  r  r  rH   r<   r$   r   <module>r+     s      'xx))188>>:HHahhooqxx7
&&!&&$$	% 0F/,%#$&GG(<G<G"G"70 	> > 	G GE(7.6* 		A 	A 	H H  		K 	K 	> >6 	G G 	C C	H!J %$ "r$   