
    ph                         S SK Jr  S SKrS SKJr  S SKJr  / SQrS rS r	\
" S5      / S	Q-   r\S
S/-   r\SS/-   rS rS rS rg)    )StringION)
PatsyError)Origin)python_tokenizepretty_untokenizenormalize_token_spacingc              #     #    U R                  SS5      R                  5       n [        R                  " [	        U 5      R
                  5      n U H  u  p#u  pEu  pFn U[        R                  :X  a    g U[        R                  [        R                  4;   a
  US:X  d   eMP  [        XU5      nU[        R                  :X  a  [        SU5      eU[        R                  :X  a  [        SU5      eX#U4v   M     [        S5      e! [        R                   an  nSUR                  S   ;   a<  [        S	R!                  UR                  S   5      [        U S[#        U 5      5      5      eS
UR                  S   ;   d   e S nAg S nAff = f7f)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	            dC:\Users\julio\OneDrive\Documentos\Trabajo\IdeasFrscas\Cabanna\env\Lib\site-packages\patsy/tokens.pyr   r      se     <<c"((*D		!	!(4."9"9	:B!:<6FJQ$+++(++x'7'788|#|D-F,,, KV  ))) !;VDD6** ;= @AA  )AFF1I5-44QVVAY?tQD	*  #affQi///!s8   A
F#D  0F1BD   FA$E=8F=FFc                     Sn [        [        U 5      5      n[        R                  S[	        U SS5      4[        R
                  S[	        U SS5      4[        R
                  S[	        U S	S
5      4[        R                  S[	        U S
S5      4[        R
                  S[	        U SS5      4[        R
                  S[	        U SS5      4[        R                  S[	        U SS5      4[        R
                  S[	        U SS5      4/nX:X  d   eSn[        [        U5      5      n[        R                  S[	        USS5      4[        R
                  S[	        USS5      4[        R
                  S[	        US	S
5      4[        R                  S[	        US
S5      4/nXE:X  d   eSS KnUR                  [        [         [        S5      5        SS KnUR                  [        [         [        S5      5        g )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2	c6$2./	c6$B/0	#vdB34	c6$B/0	H E?5)*G	VE1a01	c6%A./	c6%A./	VE1a01	I 
MM*dOI$>?
MM*dOH$=>    z
+-*/%&^|<>)	z==z<>z!=z<=z>=z<<z>>**z//!~,:c                    / nSnSnSnSn/ nU  GH  u  pxU[         R                  [         R                  [         R                  4;  d   eU[         R                  :X  a  MQ  U[         R
                  :X  a  Mg  U[         R                  [         R                  [         R                  4;   a5  U(       d  U(       a  UR                  S5        UR                  U5        SnSnOUS;   a  UR                  U5        OU(       a  US;   a  UR                  5         U[        ;   n	U[        ;   n
US:X  a  U(       a  US   S:X  a  Sn
US	;   a  U(       a  Sn	Sn
US
:X  a  U(       d  Sn	Sn
US;   a  U(       d  Sn	Sn
U(       d  U	(       a  UR                  S5        UR                  U5        U
nSnU[         R                  [         R                  [         R                  4;   d  US:X  a  SnOSnUS;   nGM     SR                  U5      $ )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   s   D #(  H)
(//8??HKK!PPPP)))+++(--(//JJ#7C KK$#' '&e6&+/C&C#%*.A%A" |Xb\S-@).&#(D*/').&|H*.')-&
 
"+?*/').&#:C KK5#( 8==(//8??KK|#' #( ',
':$e *f 774=rI   c                     [         R                  " [        U 5      R                  5       Vs/ s H  oS   US   4PM     nn[	        U5      $ s  snf )Nr   r(   )r   r   r   r   r   )r   trC   s      r%   r   r      sH    $,$<$<Xd^=T=T$UV$UqtQqTl$UFVV$$ Ws   Ac                     [        S5      S:X  d   e[        S5      S:X  d   e[        S5      S:X  d   e[        S5      S:X  d   e[        S5      S:X  d   e[        S5      S:X  d   e[        S	5      S	:X  d   e[        S
5      S:X  d   e[        S5      S:X  d   e[        S5      S:X  d   e[        S5      S:X  d   e[        S5      S:X  d   e[        S5      S:X  d   e[        S5      S:X  d   e[        S5      S:X  d   e[        S5      S:X  d   e[        S5      S:X  d   e[        S5      S:X  d   e[        S 5      S :X  d   eg )!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    rI   r%   2test_pretty_untokenize_and_normalize_token_spacingrm      s   "7+w666"5)W444"<04FFFF"9-:::"#78<PPPP"#67;OOOO"#459JJJJ"#9:>VVVV"#34DDD"#56/III"#45FFF"#67;KKKK"#56/III"#78<NNNN"#67;KKKK"#89=PPPP">2nDDD"#9:>PPPP"#56:LLLLrI   )ior   r   patsyr   patsy.originr   __all__r   rH   r=   _python_space_bothr[   r\   r   r   rm   rl   rI   r%   <module>rs      sl       
M
'T?D ,' 
+ 
  *S#J6 (C:5 :z%
MrI   