
    J/Ph                         d dl mZ d dlZd dlmZ d dlmZ g dZd Zd Z	 e
d          g d	z   Zed
dgz   Zeddgz   Zd Zd Zd ZdS )    )StringION)
PatsyError)Origin)python_tokenizepretty_untokenizenormalize_token_spacingc              #     K   |                      dd                                          } t          j        t	          |           j                  }	 |D ]\  }}\  }}\  }}} |t          j        k    r d S |t          j        t          j        fv r	|dk    sJ Dt          | ||          }|t          j
        k    rt          d|          |t          j        k    rt          d|          |||fV  t          d          # t          j        $ ru}d|j        d         v rJt          d	                    |j        d                   t          | dt#          |                               d
|j        d         v sJ Y d }~d S d }~ww xY w)N
  z2error tokenizing input (maybe an unclosed string?)zcomments are not allowedz!stream ended without ENDMARKER?!?zunterminated string literalr   zerror tokenizing input ({})zEOF in multi-line)replacestriptokenizegenerate_tokensr   readline	ENDMARKERNLNEWLINEr   
ERRORTOKENr   COMMENT
ValueError
TokenErrorargsformatlen)	codeitpytypestring_startendorigines	            L/var/www/html/test/jupyter/venv/lib/python3.11/site-packages/patsy/tokens.pyr   r      s      <<c""((**D		!(4.."9	:	:B!:< 	B 	B6FFJQC$+++(+x'7888||||D%--F,,, KV   ))) !;VDDD66*****@AAA    )AF1I55-44QVAY??tQD		**   #afQi////!s    !D  5BD   FA*E??Fc                  &   d} t          t          |                     }t          j        dt	          | dd          ft          j        dt	          | dd          ft          j        dt	          | d	d
          ft          j        dt	          | d
d          ft          j        dt	          | dd          ft          j        dt	          | dd          ft          j        dt	          | dd          ft          j        dt	          | dd          fg}||k    sJ d}t          t          |                    }t          j        dt	          |dd          ft          j        dt	          |dd          ft          j        dt	          |d	d
          ft          j        dt	          |d
d          fg}||k    sJ dd l}|                    t          t           t          d                     dd l}|                    t          t           t          d                     d S )Nza + (foo * -1)ar      +      (      foo   *	   
   -      1   )   za + (bb   za b # cza b "c)
listr   r   NAMEr   OPNUMBERpytestraisesr   )r   tokensexpectedcode2tokens2	expected2rA   s          r%   test_python_tokenizerH   C   s   D/$''((F	VD!Q//0	c6$1--.	c6$1--.	vdAq112	c6$2../	c6$B//0	#vdB334	c6$B//0	H XE?5))**G	VE1a001	c6%A../	c6%A../	VE1a001	I iMMM
MM*dOI$>$>???MMM
MM*dOH$=$=>>>>>    z
+-*/%&^|<>)	z==z<>z!=z<=z>=z<<z>>**z//!~,:c                 ^   g }d}d}d}d}g }| D ]\  }}|t           j        t           j        t           j        fvsJ |t           j        k    r>|t           j        k    rO|t           j        t           j        t           j        fv r3|s|r|	                    d           |	                    |           d}d}n|dv r|	                    |           n|r|dv r|
                                 |t          v }	|t          v }
|dk    r|r|d         dk    rd}
|d	v r|rd}	d}
|d
k    r|sd}	d}
|dv r|sd}	d}
|s|	r|	                    d           |	                    |           |
}d}|t           j        t           j        t           j        fv s|dk    rd}nd}|dv }d                    |          S )NFr   T)r,   [{)r9   ]}rN   rP   )r1   rJ   =)r)   r4   r9   )r,   rM   r   )r   INDENTDEDENTr   r   r   r>   r@   STRINGappendpop_python_space_before_python_space_afterjoin)typed_tokenstextprev_was_space_delimprev_wants_spaceprev_was_open_paren_or_commaprev_was_object_likebrackets
token_typetokenthis_wants_space_beforethis_wants_space_afters              r%   r   r   t   s0   D #(  H) 2; 2;
E(/8?HK!PPPPP)))+++(-(/JJJ !#7 !C   KK$#'  ''&&&& e66&+/C&C#%*.A%A" |||Xb\S-@-@).&##(D#*/').&||H|*.')-&
 
""+?"*/').& !#: !C   KK5#( 8=(/8?KKK||#'  #( ',
':$$774==rI   c                     d t          j        t          |           j                  D             }t	          |          S )Nc                 .    g | ]}|d          |d         fS )r   r(    ).0ts     r%   
<listcomp>z+normalize_token_spacing.<locals>.<listcomp>   s$    VVVqqtQqTlVVVrI   )r   r   r   r   r   )r   rC   s     r%   r   r      s7    VVH$<Xd^^=T$U$UVVVFV$$$rI   c                  $   t          d          dk    sJ t          d          dk    sJ t          d          dk    sJ t          d          dk    sJ t          d          dk    sJ t          d          dk    sJ t          d	          d	k    sJ t          d
          dk    sJ t          d          dk    sJ t          d          dk    sJ t          d          dk    sJ t          d          dk    sJ t          d          dk    sJ t          d          dk    sJ t          d          dk    sJ t          d          dk    sJ t          d          dk    sJ t          d          dk    sJ t          d           d k    sJ d S )!Nz1 + 1z1+1z
1*(2+3**2)z1 * (2 + 3 ** 2)za and bzfoo(a=bar.baz[1:])z{"hi":foo[:]}z{"hi": foo[:]}z'a' "b" 'c'z"""a""" is 1 or 2==3z"""a""" is 1 or 2 == 3zfoo ( * args )z
foo(*args)zfoo ( a * args )zfoo(a * args)zfoo ( ** args )zfoo(**args)zfoo ( a ** args )zfoo(a ** args)zfoo (1, * args )zfoo(1, *args)zfoo (1, a * args )zfoo(1, a * args)zfoo (1, ** args )zfoo(1, **args)zfoo (1, a ** args )zfoo(1, a ** args)za=foo(b = 1)za = foo(b=1)zfoo(+ 10, bar = - 1)zfoo(+10, bar=-1)z1 + +10 + -1 - 5)r   rk   rI   r%   2test_pretty_untokenize_and_normalize_token_spacingrp      s   "7++w6666"5))W4444"<004FFFFF"9--::::"#788<PPPPP"#677;OOOOO"#4559JJJJJ"#9::>VVVVV"#344DDDD"#566/IIII"#455FFFF"#677;KKKKK"#566/IIII"#788<NNNNN"#677;KKKKK"#899=PPPPP">22nDDDD"#9::>PPPPP"#566:LLLLLLLrI   )ior   r   patsyr   patsy.originr   __all__r   rH   r=   _python_space_bothr[   r\   r   r   rp   rk   rI   r%   <module>rv      s                      
M
M
M
' ' 'T? ? ?D T,'' 
+ 
+ 
+ 
  *S#J6 (C:5 : : :z% % %
M M M M MrI   