
    GWPi                     (    d dl mZmZ  G d d      Zy)    )sqltokensc                   (    e Zd ZdZd Zd Zd Zd Zy)StatementSplitterz1Filter that split stream at individual statementsc                 $    | j                          y N)_resetselfs    X/root/twitch_bot/venv/lib/python3.12/site-packages/sqlparse/engine/statement_splitter.py__init__zStatementSplitter.__init__   s        c                 t    d| _         d| _        d| _        d| _        d| _        d| _        g | _        d| _        y)z/Set the filter attributes to its default valuesFr   N)_in_declare_in_case
_is_create_begin_depth_seen_begin
consume_wsr   levelr
   s    r   r	   zStatementSplitter._reset   s=      
r   c                 H   |t         j                  u r|dk(  ry|t         j                  u r|dk(  ry|t         j                  vry|j                         }|t         j                  j                  u r|j                  d      rd| _        y|dk(  r#| j                  r| j                  dk(  rd| _        y|d	k(  r*| xj                  dz  c_        d| _	        | j                  ryy| j                  rN|t         j                  u s|t         j                  u r*|d
v r&t        d| j                  dz
        | _        d| _	        y|dk(  r3| j                  st        d| j                  dz
        | _        yd| _        y|dv r(| j                  r| j                  dkD  r|dk(  rd| _        y|dv ryy)z<Get the new split level (increase, decrease or remain equal)(   )r   CREATETDECLAREBEGIN)TRANSACTIONWORKTRANDISTRIBUTEDDEFERRED	IMMEDIATE	EXCLUSIVEFEND)IFFORWHILECASEr*   )zEND IFzEND FORz	END WHILE)TPunctuationKeywordupperDDL
startswithr   r   r   r   Namemaxr   )r   ttypevalueunifieds       r   _change_splitlevelz$StatementSplitter._change_splitlevel   s    AMM!eslamm#!))#
 ++- AIIMM!g&8&8&B"DO iDOO8I8IQ8N#Dg"#D !))#u 6 6 !$At'8'81'< =D$D e==$'4+<+<q+@$A!  !&55OO(9(9A(=&  $88 r   c              #     K   t         j                  t         j                  j                  f}|D ]  \  }}| j                  r5||vr1t        j                  | j                         | j                          | xj                  | j                  ||      z  c_	        | j                  j                  t        j                  ||             |t         j                  u r`|dk(  r[| j                  rt        d| j                   dz
        | _        d| _        | j                  dk  s| j                   dk(  sd| _        |t         j"                  u r|j%                         d   dk(  r	d| _        ?|t         j                  t         j&                  t         j                  j                  t         j                  j(                  fvs|t         j"                  u r|j+                         dk(  rd| _         | j                  r?t-        d | j                  D              s"t        j                  | j                         y	y	y	w)
zProcess the stream;r   r   FTGOr   c              3   4   K   | ]  }|j                     y wr   )is_whitespace).0ts     r   	<genexpr>z,StatementSplitter.process.<locals>.<genexpr>   s     "Hq1??"Hs   N)r+   
WhitespaceCommentSingler   r   	Statementr   r	   r   r6   appendTokenr,   r   r2   r   r-   splitNewline	Multiliner.   all)r   stream	EOS_TTYPEr3   r4   s        r   processzStatementSplitter.process_   s    LL!))"2"22	 # (	)LE5
 5	#9mmDKK00  JJ$11%??J KKsyy67 %%3, ##(+At/@/@1/D(ED%#( ::?t'8'8A'=&*DO!))#a(8D(@"&aii9I9I !		 3 3 5 5 AII-%++-72J $) Q(	)V ;;s"HDKK"HH--,,  I;s    D I#I4BI%I+AIN)__name__
__module____qualname____doc__r   r	   r6   rK    r   r   r   r      s    ;
@D1-r   r   N)sqlparser   r   r+   r   rP   r   r   <module>rR      s    &E- E-r   