
    Mhٿ                        d dl Z d dlZd dlZd dlZd dlmZ d dlmZmZm	Z	m
Z
 d dlm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d Zd Zd Zd Zd Z G d d          Z  G d de          Z! G d de
          Z"e!#                    d           G d  d!e"                      Z$ G d" d#e          Z% G d$ d%e
          Z&e!#                    d           G d& d'e&                      Z'e!#                    d()           G d* d+e&                      Z(e!#                    d,)           G d- d.e&                      Z)e!#                    d/)           G d0 d1e&                      Z*e!#                    d2)           G d3 d4e&                      Z+e!#                    d5           G d6 d7e&                      Z,e!#                    d8           G d9 d:e&                      Z-e!#                    d;)           G d< d=e&                      Z.e!#                    d>)           G d? d@e&                      Z/e!#                    dA)          e!#                    dB)           G dC dDe&                                  Z0e!#                    dE           G dF dGe&                      Z1e!#                    dH           G dI dJe&                      Z2e!#                    dK           G dL dMe&                      Z3e!#                    dK           G dN dOe&                      Z4e!#                    dP           G dQ dRe&                      Z5e!#                    eS           G dT dUe&                      Z6e!#                    dV           G dW dXe&                      Z7e!#                    dY           G dZ d[e&                      Z8e!#                    d\           G d] d^e&                      Z9e!#                    d_           G d` dae&                      Z:e!#                    db          e!#                    dc           G dd dee&                                  Z;e!#                    df           G dg dhe&                      Z<e!#                    di           G dj dke&                      Z= G dl dme&          Z>e!#                    dn           G do dpe>                      Z?e!#                    dq           G dr dse>                      Z@e!#                    dt           G du dve>                      ZAe!#                    dw           G dx dye>                      ZBe!#                    dz           G d{ d|e>                      ZCe!#                    d}           G d~ de>                      ZDe!#                    d           G d de>                      ZEdS )    N)contextmanager)
NormalizerNormalizerConfigIssueRule)_get_token_collection)if_stmt
while_stmtfor_stmttry_stmt	with_stmt)testlist_star_exprtestlist_compexprlist   d   )nested_scopes
generatorsdivisionabsolute_importwith_statementprint_functionunicode_literalsgenerator_stop)comp_forsync_comp_forc                 V   | j         }|dk    rdS |dk    rt          |           }| j        d d         \  }}||S |j         dk    r6|dk     rdS |j        d         d	k    s|j        d
         dk    r
|dk     rdS dS dS |dk    r6|dk    s.t          | j                  dk    r| j        d         j         dk    rdS |dk    rt	          t          |           |          S |dk    rdS |dk    r|dk    r
|dk     rdS dS |dk    rt          | j                  dk    rdS n|dk    r'd| j        v rdS |dk     rdS t          | j                  S |dk    r| j        dk    r
|dk     rdS d S |d!k    rd!S |d"v rdS |d#k    rdS |d$k    rd%S |d&v rp| j        d
         d'k    rd(S | j        d)         j         d*k    rF| j        d)         }|j        d
         dk    rd+S |j        d
         dk    rd,S |j        d
         d-k    rd.S n2d/|v rd0|vsd1|v s|d2v r
|dk     rdS d3S |d0k    rd4S |d5k    rdS |d6k    rd7S |S )8Nlambdeflambdaatom   dictorsetmaker      literal   :r   **r$   
   dict displaydict literalset display()r$   r   tuple)version[list{}keywordyieldyield expressionoperator...Ellipsisellipsis
comparisonstringnumberstrings
yield_exprtestconditional expression	atom_exprpowerawaitawait expressiontrailerfunction call	subscript.	attributeexpr	star_expr_testtermfactor
expressionstarredr   fstringf-string expression)type_get_comprehension_typechildrenlen_get_rhs_name_remove_parensvaluestr)noder2   type_comprehensionfirstsecondrL   s          S/var/www/html/test/jupyter/venv/lib/python3.11/site-packages/parso/python/errors.pyr_   r_      s   IE	x	&/55bqb)v$  [,,, y?1%,,0Bd0J0J((-~-~(=SLL3''1,,q1A1F/1Y1Y7c\\ !5!5wGGGGc\\6c\\fmm  %~%~c\\c$-00144 =	)		dj  %%V9tz??"	*		u!4!4W::	,		|	1	1	1y	,		!!	&''	(	(	(=w&&%%]2#y00mB'G"c))&!!$++"{!!$++"{	5[55e&&&W:<	+		y	&	&	&w	)		$$L    c              #   ~   K   | j         D ]2}|j        dk    r!|j         D ]}|j        dk    s|dk    r|V  .|V  3dS )zB
    Iterates over all statements and splits up  simple_stmt.
    simple_stmtnewline;Nr]   r[   )scopechildchild2s      rh   _iter_stmtsrr   m   sv         :&&.  ;)++v}}
 KKKK ri   c                     | j         d d         \  }}|j        dk    r#|j         d         j        t          v r
|dk    rdS dS |j        dk    r.|j         d         j        t          v r|j         d         d	k    rd
S dS d S )Nr!   r   r'   r3   zlist comprehensionzgenerator expressionr"   rK   r(   zdict comprehensionzset comprehensionr]   r[   _COMP_FOR_TYPES)r    rf   rg   s      rh   r\   r\   {   s    M"1"%ME6{o%%&/!*<*A_*T*TC<<''))	(	(	(V_R-@-E-X-X?1$$''&&4ri   c                 L    |                                  }d |D             dgk    S )Nc                     g | ]	}|j         
S  ra   .0ns     rh   
<listcomp>z%_is_future_import.<locals>.<listcomp>   s    (((AG(((ri   
__future__)get_from_names)import_from
from_namess     rh   _is_future_importr      s0    
 ++--J((Z(((\N::ri   c                     	 | j         }t          |          dk    r&|d         dk    rt          | j         d                   S n# t          $ r Y nw xY w| S )z_
    Returns the inner part of an expression like `(foo)`. Also removes nested
    parens.
    r$   r   r/   r'   )r]   r^   r`   AttributeError)r    r]   s     rh   r`   r`      sn    
4= x==A(1+"4"4!$-"2333	    
 Ks   A 
AAc                 l    | j         ,| j         } | j        dk    s| j        d         dk    r| S | j         ,dS )za
    Returns an ancestor node of an expression, skipping all levels of parens
    bottom-up.
    Nr    r   r/   parentr[   r]   rc   s    rh   _skip_parens_bottom_upr      sG    
 +
!{9$-"2c"9"9K +
! 4ri   c                 $    d | j         D             S )Nc              3   F   K   | ]}|j         d k    s|j         dk    |V  dS )paramr:   Nr[   rz   s     rh   	<genexpr>z_iter_params.<locals>.<genexpr>   s:      YY!qv/@/@AFjDXDXADXDXDXDXYYri   )r]   )parent_nodes    rh   _iter_paramsr      s    YY{+YYYYri   c                     d}t          |                                           D ]8}|j        dk    r|sd}|| k    r dS |j        dk    rt          |          r6 dS dS )z@
    Checks if the import is the first statement of a file.
    Fr@   Tr   N)rr   get_root_noder[   r   )r   found_docstringstmts      rh   _is_future_import_firstr      s     OK557788 	 	9   ;449%%*;D*A*A%uu	 	ri   c              #      K   fd| j         t          v r&| j        d d d         D ]} |          E d {V  d S  |           E d {V  d S )Nc              3      K   | j         dk    rj| j        d         dk    rB| j        d         }|j         dk    rt          |          E d {V  d S  |          E d {V  d S | j        d         dk    r|V  d S | V  d S )Nr    r   r/   r'   r   r3   )r[   r]   !_iter_definition_exprs_from_lists)rp   r   
check_exprs     rh   r   z5_iter_definition_exprs_from_lists.<locals>.check_expr   s      :~a C'' %q 1 %88@OOOOOOOOOF  *z-888888888F"c))####ri   r!   )r[   _STAR_EXPR_PARENTSr]   )r   rp   r   s     @rh   r   r      s            }***&sss+ 	) 	)E!z%((((((((((	) 	) :h'''''''''''ri   c                     g }| j         d dd         D ]3}|j        dv r|t          |          z  }|                    |           4|S )Nr!   )r   testlist)r]   r[   r   append)	expr_stmtexprslist_s      rh   _get_expr_stmt_definition_exprsr      sa    E#ERE*    :;;;6u===EELLLri   c                 T    | j         d         }t          t          |                    S Nr'   )r]   r4   r   )r   r   s     rh   _get_for_stmt_definition_exprsr      s&     #H1(;;<<<ri   c                 4    | j         d         j        t          v S r   rt   )arguments    rh   _is_argument_comprehensionr      s    Q$77ri   c                     | dk     s|dS |j         dk    rt          d |j        D                       S |j         dk    rdS |                    d          S )Nr$   	   F
error_nodec              3   ,   K   | ]}|j         d k    V  dS )fstring_startNr   r{   rp   s     rh   r   z%_any_fstring_error.<locals>.<genexpr>   s)      LLU5:0LLLLLLri   rY   T)r[   anyr]   search_ancestor)r2   rc   s     rh   _any_fstring_errorr      sh    4<uyL  LLdmLLLLLL	i		t##I...ri   c                   V    e Zd ZddZd Zd Zd Zd Zd Ze	d             Z
d	 Zd
 ZdS )_ContextNc                     || _         g | _        || _        i | _        g | _        g | _        g | _        g | _        || _        d S N)	rc   blocksparent_context_used_name_dict_global_names_local_params_names_nonlocal_names_nonlocal_names_in_subscopes_add_syntax_error)selfrc   add_syntax_errorr   s       rh   __init__z_Context.__init__   sN    	,!#% !,.)!1ri   c                 P    |                                  o| j        j        j        dv S )N)async_funcdef
async_stmt)is_functionrc   r   r[   r   s    rh   is_async_funcdefz_Context.is_async_funcdef  s0     !! I	 %)HH	Iri   c                 "    | j         j        dk    S )Nfuncdef)rc   r[   r   s    rh   r   z_Context.is_function  s    y~**ri   c                    |j         j        }|dk    rd S |dk    r| j                            |           d S |dk    r| j                            |           d S |dk    r=| j                            d |j                                         D                        d S | j        	                    |j
        g                               |           d S )NrL   global_stmtnonlocal_stmtr   c                 &    g | ]}|j         j        S rx   )namera   )r{   r   s     rh   r}   z%_Context.add_name.<locals>.<listcomp>  s    HHHe!HHHri   )r   r[   r   r   r   r   extend
get_paramsr   
setdefaultra   )r   r   parent_types      rh   add_namez_Context.add_name  s    k&)##F-''%%d+++++O++ ''-----I%%$++HHt{/E/E/G/GHHH      ++DJ;;BB4HHHHHri   c                 `   |                      | j        d           |                      | j        d           d | j        D             }| j        D ]V}	 ||j                 }n# t          $ r Y w xY wd|j        z  }|j        |j        k     r|}n|}|                     ||           Wg }| j        D ]v}|j        }|| j        v r||v s| j	        !d|j        z  }|                     ||           ?| 
                                r|j        | j        vr|                    |           w| j        |z   S )zV
        Returns a list of nonlocal names that need to be part of that scope.
        globalnonlocalc                     i | ]
}|j         |S rx   ry   rz   s     rh   
<dictcomp>z%_Context.finalize.<locals>.<dictcomp>&  s    CCC1AGQCCCri   z name '%s' is nonlocal and globalNz"no binding for nonlocal '%s' found)_analyze_namesr   r   ra   KeyError	start_posr   r   r   r   r   r   r   )r   global_name_strsnonlocal_nameglobal_namemessage
error_namenonlocals_not_handledsearchs           rh   finalizez_Context.finalize  s    	D.999D0*===CC0BCCC!1 	8 	8M.}/BC    9;;LLG$}'>>>(

*
"":w7777 "!> 		< 		<M"(F111)))T-@-H>ATT&&}g>>>>%%'' <!'t/CCC%,,];;;#&;;;s   A  
A-,A-c                 >   
 
 fd}g } j         j        dk    r j                                         }|D ]
d}t           j                            
j        g                     D ]}|j        
j        k    rd}|j        }|j        dk    r|j	        |k    r2|
                                r5|j        dk    r'|j        d         j        dk    r|r|
 |d	            nd
}nd}|s ||            n|D ]#}	|	j	        j        
j        k    r |d          f $d S )Nc                 H                         | j        fz             d S r   )r   ra   )r   	base_namer   rd   s    rh   raise_z'_Context._analyze_names.<locals>.raise_B  s+    ""9g%8P.PQQQQQri   r   FTr   r   r'   	annassignzannotated name '%s' can't be %sz.name '%s' is assigned to before %s declarationz)name '%s' is used prior to %s declarationzname '%s' is parameter and %s)rc   r[   r   reversedr   getra   r   r   r   is_definitionr]   )r   globals_or_nonlocalsrd   r   paramsfound_global_or_nonlocalr   r   r   r   r   s   ` `       @rh   r   z_Context._analyze_namesA  s   	R 	R 	R 	R 	R 	R 	R 9>Y&&Y))++F- #	= #	=I',$ !5!9!9)/2!N!NOO  >I$777/3,;'))fkT.A.A %%'' J{k11 & 2 7; F F3 - )-I@AAA"RIG/ F7OOOE
   = =:#y66F:;;<<=C#	= #	=ri   c              #   x   K   | j                             |           d V  | j                                          d S r   )r   r   popr   rc   s     rh   	add_blockz_Context.add_blockn  s=      4   ri   c                 0    t          || j        |           S )N)r   )r   r   r   s     rh   add_contextz_Context.add_contextt  s    d4TJJJJri   c                 J    | xj         |                                z  c_         d S r   )r   r   )r   child_contexts     rh   close_child_contextz_Context.close_child_contextw  s(    ))]-C-C-E-EE))))ri   r   )__name__
__module____qualname__r   r   r   r   r   r   r   r   r   r   rx   ri   rh   r   r      s        	2 	2 	2 	2I I I+ + +I I I" <  <  <D+= += +=Z   ^
K K KF F F F Fri   r   c                   j     e Zd ZdZ fdZd Z fdZed             Z fdZ	d Z
d Zd	 Zd
 Z xZS )ErrorFinderz1
    Searches for errors in the syntax tree.
    c                 j     t                      j        |i | i | _        | j        j        | _        d S r   )superr   _error_dictgrammarversion_infor2   )r   argskwargs	__class__s      rh   r   zErrorFinder.__init__  s7    $)&)))|0ri   c                 n      fd |          pt          | j                   _        d _        d S )Nc                 n    | d S  | j                   }| j        dv rt          | j        |          S |S )N)classdefr   
file_input)r   r[   r   r   )rc   r   create_contextr   s     rh   r	  z.ErrorFinder.initialize.<locals>.create_context  sG    |t+^DK88NyAAAd&<nMMM!!ri   r   )r   r   context_indentation_count)r   rc   r	  s   ` @rh   
initializezErrorFinder.initialize  sU    	" 	" 	" 	" 	" 	" &~d++Uxd>T/U/U"#ri   c                     |j         dk    r/|                     |          5  	 d d d            dS # 1 swxY w Y   t                                          |          S )Nr    )r[   
visit_noder   visit)r   rc   r  s     rh   r  zErrorFinder.visit  s    9$$&&   	               
 ww}}T"""s   155c              #   z  K   |                      |           |j        t          v rp| j                            |          5  t          | j        j                  t          k    r|                     |d           d V  d d d            n# 1 swxY w Y   d S |j        dk    rA| xj	        dz  c_	        | j	        t          k    r!|                     |j        d         d           d V  |j        dk    r| xj	        dz  c_	        d S |j        dv r/| j        }|j        | _        | j                            |           d S d S )Nz!too many statically nested blockssuiter'   ztoo many levels of indentationr  r   )_check_type_rulesr[   _BLOCK_STMTSr
  r   r^   r   _MAX_BLOCK_SIZEr   r  _MAX_INDENT_COUNT_add_indentation_errorr]   r   r   )r   rc   r
  s      rh   r  zErrorFinder.visit_node  s     t$$$9$$''--  t|*++>>**41TUUU               FY'!!##q(##&*;;;++DM!,<>^___9##q(####Y111lG"1DLL,,W55555 21s    =B		BBc                    |j         dk    r|j        dv r`t          |                                                                          d         }|j        dk    rd}nd}|                     ||           n|j                            d          rd}nzt          j	        d	|j                  }|3d
}| j
        dk    r%|j        t          | j
                  j        v rd|z   }n+t          |                    d                    dk    rd}nd}|                     ||           dS |j        dk    r/|j        }|j         dv r| j                            |          | _        t'                                          |          S )N
error_leaf)INDENTERROR_DEDENTrK   r  zunexpected indentz3unindent does not match any outer indentation level\z6unexpected character after line continuation characterz\w{,2}("{1,3}|'{1,3})invalid syntaxr   
f-string: r'   z!EOL while scanning string literalz/EOF while scanning triple-quoted string literalr  r(   r  )r[   
token_typer4   get_next_leaf_split_prefixr  ra   
startswithrematchr2   r   always_break_tokensr^   groupr   r   r
  r   r   
visit_leaf)r   leafspacingr   r%  r   r  s         rh   r(  zErrorFinder.visit_leaf  s   9$$"<<< t1133AACCDDRH?h..1GGSG++GW====:((.. XVGGH%>
KKE}"2 LF22 $
.C $/ /1!2 !2 '3W&<Gu{{1~~..!33&IGG&WG&&tW5552Z3[F{555#|77?? ww!!$'''ri   c                 :    |                      |dd|z              d S )N  IndentationError: 	add_issue)r   r*  r   s      rh   r  z"ErrorFinder._add_indentation_error  s$    w%9G%CDDDDDri   c                 :    |                      |dd|z              d S )N  SyntaxError: r.  )r   rc   r   s      rh   r   zErrorFinder._add_syntax_error  s#    tS/G";<<<<<ri   c                 `    |j         d         }|||f}| j                            ||           d S )Nr   )r   r   r   )r   rc   coder   liner  s         rh   r/  zErrorFinder.add_issue  s;     ~a gt$##D$/////ri   c                     | j                                          | j                                        D ]/\  }}}| j                            t          |||                     0d S r   )r
  r   r   valuesissuesr   r   )r   r4  r   rc   s       rh   r   zErrorFinder.finalize  sj    #'#3#:#:#<#< 	; 	;D'4KuT499::::	; 	;ri   )r   r   r   __doc__r   r  r  r   r  r(  r  r   r/  r   __classcell__r  s   @rh   r   r   {  s         1 1 1 1 1
$ $ $# # # # # 6 6 ^6.'( '( '( '( '(RE E E= = =0 0 0; ; ; ; ; ; ;ri   r   c                   "     e Zd ZdZ fdZ xZS )IndentationRuler,  c                 R    t                                          ||          }d|z   S )Nr-  )r   _get_messager   r   rc   r  s      rh   r?  zIndentationRule._get_message  s'    ''&&w55#g--ri   r   r   r   r4  r?  r:  r;  s   @rh   r=  r=    s=        D. . . . . . . . .ri   r=  r   r   c                       e Zd ZdZd Zd ZdS )_ExpectIndentedBlockzexpected an indented blockc                 x    |                                 }t          |                                          d         S )NrK   )r!  r4   r"  )r   rc   r)  s      rh   get_nodez_ExpectIndentedBlock.get_node  s2    !!##D&&(())"--ri   c                 .    |j         d         j        dk    S )NrK   rl   rn   r   s     rh   is_issuez_ExpectIndentedBlock.is_issue  s    }R %22ri   Nr   r   r   r   rE  rG  rx   ri   rh   rC  rC    s7        *G. . .3 3 3 3 3ri   rC  c                       e Zd ZeZdS )ErrorFinderConfigN)r   r   r   r   normalizer_classrx   ri   rh   rJ  rJ    s        "ri   rJ  c                   "     e Zd ZdZ fdZ xZS )
SyntaxRuler1  c                     t                                          ||          }d|vrt          | j        j        |          rd|z   }d|z   S )Nzf-stringr  r2  )r   r?  r   _normalizerr2   r@  s      rh   r?  zSyntaxRule._get_message  sV    ''&&w55g%%"4#3#;TBB & #W,G((ri   rA  r;  s   @rh   rM  rM    s=        D) ) ) ) ) ) ) ) )ri   rM  c                   "    e Zd ZdZdZd Zd ZdS )_InvalidSyntaxRuler  zf-string: invalid syntaxc                 *    |                                 S r   )r!  r   s     rh   rE  z_InvalidSyntaxRule.get_node  s    !!###ri   c                     |                                 j        dk    }|r8t          | j        j        |          r|                     || j                   d S |S )Nr  r   )r!  r[   r   rO  r2   r/  fstring_message)r   rc   errors      rh   rG  z_InvalidSyntaxRule.is_issue  sc    ""$$)\9	"4#3#;TBB	 NN4)=N>>>>> Lri   N)r   r   r   r   rU  rE  rG  rx   ri   rh   rQ  rQ    s<        G0O$ $ $	 	 	 	 	ri   rQ  rI   ry   c                       e Zd ZdZd Zd ZdS )_AwaitOutsideAsyncz'await' outside async functionc                 @    | j         j                                         S r   )rO  r
  r   r   r)  s     rh   rG  z_AwaitOutsideAsync.is_issue-  s    #+<<>>>>ri   c                     |j         S r   r   r   s     rh   get_error_nodez!_AwaitOutsideAsync.get_error_node0  s
    {ri   N)r   r   r   r   rG  r]  rx   ri   rh   rX  rX  )  s7        .G? ? ?    ri   rX  breakc                       e Zd ZdZd ZdS )_BreakOutsideLoopz'break' outside loopc                 J    d}| j         j        j        D ]}|j        dv rd}| S )NFr   r
   T)rO  r
  r   r[   )r   r)  in_loopblocks       rh   rG  z_BreakOutsideLoop.is_issue9  s;    %-4 	 	Ez777{ri   Nr   r   r   r   rG  rx   ri   rh   r`  r`  5  s(        $G    ri   r`  continuec                       e Zd ZdZdZd ZdS )_ContinueChecksz'continue' not properly in loopz0'continue' not supported inside 'finally' clausec                 
   d}| j         j        j        D ]j}|j        dv rd}|j        dk    rR|j        d         }|dk    r?|j        |j        k    r/| j         j        dk     r|                     || j                    dS k|sdS d S )	NFrb  Tr   finallyr#   rT  )	rO  r
  r   r[   r]   r   r2   r/  message_in_finally)r   r)  rc  rd  
last_blocks        rh   rG  z_ContinueChecks.is_issueF  s    %-4 	! 	!Ez777zZ''"^B/
)++)===(0699NN41HNIII 55 	4	 	ri   N)r   r   r   r   rl  rG  rx   ri   rh   rh  rh  A  s.        /GK    ri   rh  fromc                       e Zd ZdZd Zd ZdS )_YieldFromCheckz"'yield from' inside async functionc                     |j         j         S r   r\  rZ  s     rh   rE  z_YieldFromCheck.get_node\  s    {!!ri   c                 ^    |j         j        dk    o| j        j                                        S )N	yield_arg)r   r[   rO  r
  r   rZ  s     rh   rG  z_YieldFromCheck.is_issue_  s.    {;. < (99;;	<ri   NrH  rx   ri   rh   rp  rp  X  s7        2G" " "< < < < <ri   rp  r   c                       e Zd ZdZdZd ZdS )_NameCheckszcannot assign to __debug__zcannot assign to Nonec                     | j         j                            |           |j        dk    r|                                rdS d S d S )N	__debug__T)rO  r
  r   ra   r   rZ  s     rh   rG  z_NameChecks.is_issuei  sM     ))$///:$$););)=)=$4 %$$$ri   N)r   r   r   r   message_nonerG  rx   ri   rh   ru  ru  d  s-        *G*L    ri   ru  r@   c                   4    e Zd Zej        dk     rdZndZd ZdS )_StringChecksr*   z0bytes can only contain ASCII literal characters.z/bytes can only contain ASCII literal charactersc                    |j                                         }d|v r t          d |j        D                       rdS d|vr|                                }d|v r"|                    d          }t          j        }nt          j        }	 t          j
                    5  t          j        d            ||           d d d            d S # 1 swxY w Y   d S # t          $ r2}|                     |dt          |          z              Y d }~d S d }~wt          $ r2}|                     |d	t          |          z              Y d }~d S d }~ww xY wd S )
Nbc              3   @   K   | ]}t          |          d k    |V  dS )   N)ordr{   cs     rh   r   z)_StringChecks.is_issue.<locals>.<genexpr>z  s,      >>aQ#>>ri   Trzutf-8ignorez(unicode error) rT  z(value error) )string_prefixlowerr   ra   _get_payloadencodecodecsescape_decodeunicode_escape_decodewarningscatch_warningsfilterwarningsUnicodeDecodeErrorr/  rb   
ValueError)r   r)  r  payloadfunces         rh   rG  z_StringChecks.is_issuew  s   *0022->>4:>>>>>   4m## ''))Gm##!..11+3H,.. " "+H555DMMM" " " " " " " " " " " " " " " " " " & J J Jt-?#a&&-HIIIIIIIII H H Ht-=A-FGGGGGGGGGH% $#sH   
C  C
=C 
CC CC 
E!'DE'EEN)r   r   r   sysr  r   rG  rx   ri   rh   rz  rz  p  sB        
'!!DCH H H H Hri   rz  *c                       e Zd ZdZd ZdS )
_StarCheckz"named arguments must follow bare *c                     |j         }|j        dk    rK|rK|j        |j                            |          dz   d          }d |D             }t	          |          dk    S d S d S )N
parametersr'   c                 (    g | ]}|d v|j         |S )),r0   )
star_countr   s     rh   r}   z'_StarCheck.is_issue.<locals>.<listcomp>  s7     J J JuZ//8H/ ///ri   r   )r   r[   r]   indexr^   )r   r)  r   afters       rh   rG  z_StarCheck.is_issue  s    ;,&&6&OFO$9$9$$?$?!$C$D$DEEJ J J J JEu::?"	 '&&&ri   Nre  rx   ri   rh   r  r    s(        2G# # # # #ri   r  r)   c                       e Zd ZdZd ZdS )_StarStarCheckz3dict unpacking cannot be used in dict comprehensionc                     |j         j        dk    r8|                                                                }|d uo|j        t          v S d S )Nr"   )r   r[   get_next_siblingru   )r   r)  r   s      rh   rG  z_StarStarCheck.is_issue  sO    ;///,,..??AAH4'LHM_,LL 0/ri   Nre  rx   ri   rh   r  r    s0        
 DGM M M M Mri   r  r8   returnc                   "    e Zd ZdZdZd Zd ZdS )_ReturnAndYieldChecksz&'return' with value in async generatorz'yield' inside async functionc                     |j         S r   r\  rZ  s     rh   rE  z_ReturnAndYieldChecks.get_node  
    {ri   c                    | j         j        j        j        dk    r4|                     |                     |          d|j        z             d S | j         j                                        rMt          | j         j        j        	                                          r|j        dk    r|j
        j        dk    rdS d S d S d S d S )Nr   z'%s' outside functionrT  r  return_stmtT)rO  r
  rc   r[   r/  rE  ra   r   r   iter_yield_exprsr   rZ  s     rh   rG  z_ReturnAndYieldChecks.is_issue  s    #(-::NN4==..8ORVR\8\N]]]]]%6688 	(05FFHHII	zX%%$+*:m*K*Kt	 	 	 	%%*K*Kri   N)r   r   r   r   message_async_yieldrE  rG  rx   ri   rh   r  r    s?         7G9      ri   r  rB   c                       e Zd ZdZd Zd ZdS )_BytesAndStringMixz&cannot mix bytes and nonbytes literalsc                 R    |j         dk    rdS d|j                                        v S )NrY   Fr|  )r[   r  r  )r   r@   s     rh   _is_bytes_literalz$_BytesAndStringMix._is_bytes_literal  s.    ;)##5f*002222ri   c                     |j         d         }|                     |          }|j         dd          D ]}||                     |          k    r dS d S )Nr   r'   T)r]   r  )r   rc   rf   first_is_bytesr@   s        rh   rG  z_BytesAndStringMix.is_issue  sk    a //66mABB' 	 	F!7!7!?!???tt @	 	ri   N)r   r   r   r   r  rG  rx   ri   rh   r  r    s9         7G3 3 3
    ri   r  import_as_namesc                       e Zd ZdZd ZdS )_TrailingImportCommaz:trailing comma not allowed without surrounding parenthesesc                 \    |j         d         dk    r|j        j         d         dk    rdS d S d S )NrK   r  r0   T)r]   r   r   s     rh   rG  z_TrailingImportComma.is_issue  s;    =##(<R(@C(G(G4 $#(G(Gri   Nre  rx   ri   rh   r  r    s+         KG    ri   r  r   c                       e Zd ZdZd ZdS )_ImportStarInFunctionz%import * only allowed at module levelc                 P    |                                 o| j        j        j        d uS r   )is_star_importrO  r
  r   r   s     rh   rG  z_ImportStarInFunction.is_issue  s(    ""$$\)9)A)PX\)\\ri   Nre  rx   ri   rh   r  r    s-        5G] ] ] ] ]ri   r  c                       e Zd ZdZd ZdS )_FutureImportRulez?from __future__ imports must occur at the beginning of the filec                    t          |          rt          |          sdS |                                D ]\  }}|j        }t	          t
                    }| j        j        dk    r|                    d           |dk    r| 	                    |d           c|dk    rd}| 	                    ||           ||vrd	|z  }| 	                    ||           d S d S )
NTr$      annotationsbracesznot a chancerT  barry_as_FLUFLz-Seriously I'm not implementing this :) ~ Davez future feature %s is not defined)
r   r   	get_pathsra   r4   ALLOWED_FUTURESrO  r2   r   r/  )r   rc   	from_namefuture_namer   allowed_futuresmr   s           rh   rG  z_FutureImportRule.is_issue  s   T"" 	:*400 t*...*:*: : :&	;"("&"7"7#+v55#**=9998##NN4N@@@@---GANN4N333300@4GGNN4N999!	: 	:: :ri   Nre  rx   ri   rh   r  r    s(        OG: : : : :ri   r  rR   c                       e Zd ZdZd ZdS )_StarExprRulez2iterable unpacking cannot be used in comprehensionc                    d }| j         j        dk    r|j        }nt          |          }|j        g t
          dR vr5|j        dk    r|j        d         dk    s|                     |d           d S  ||          rA| j         j        dk    r|                     |d	           n|                     |d           d S |j        j        d
k    r<|j        j        d         j        t          v r |                     || j	                   d S d S d S )Nc                 t    | j         0| j         } | j        dk    rdS | j        g t          dR vrdS | j         0dS )Ndel_stmtTr    F)r   r[   r   r   s    rh   check_delete_starredz4_StarExprRule.is_issue.<locals>.check_delete_starred  sU    +){9
**49$A&8$A&$A$AAA 5 +) 5ri   r   r"   r    r   r/   !can't use starred expression hererT  zcannot delete starredr   r'   )
rO  r2   r   r   r[   r   r]   r/  ru   message_iterable_unpacking)r   rc   r  ancestors       rh   rG  z_StarExprRule.is_issue   sA   	 	 	 #v--{HH-d33H= G"4 G6F G GGG!&00X5Fq5IS5P5PNN4)LNMMMF%% 	'611t-DEEEEt-PQQQF;..{#A&+>>tT-LMMMMM /.>>ri   N)r   r   r   r  rG  rx   ri   rh   r  r    s.        !UN N N N Nri   r  )typesc                       e Zd Zd ZdS )_StarExprParentRulec                    fd ||j                   rd |j        D             }d |D             }t          |          dk    r4| j        j        dk     rd}nd}|                     |d         |           d S |rD|                    |d	                   }|d
k    r%d}|                     |d	         |           d S d S d S d S )Nc                     |dS |j         }|dk    rdS |dk    r| j        |j        d         j        k     S  | |j                  S )NFrL   r   rK   )r[   r   r]   r   )rc   r  rd   r   s      rh   r   z3_StarExprParentRule.is_issue.<locals>.is_definition$  s\    uME	!!u##~(9"(=(GGG =x777ri   c                     g | ]
}|d k    |S )r  rx   r  s     rh   r}   z0_StarExprParentRule.is_issue.<locals>.<listcomp>2  s    999!SAri   c                 (    g | ]}|j         d k    |S )rR   r   r  s     rh   r}   z0_StarExprParentRule.is_issue.<locals>.<listcomp>3  s$    @@@Q!&K*?*?q*?*?*?ri   r'   r   z%two starred expressions in assignmentz*multiple starred expressions in assignmentrT  r      z1too many expressions in star-unpacking assignment)r   r]   r^   rO  r2   r/  r  )r   rc   r  rX   r   countr   s         @rh   rG  z_StarExprParentRule.is_issue#  s   	8 	8 	8 	8 	8 =t{++ 	@99t}999D@@$@@@G7||a#+f44EGGJGwqz7;;;;; @

71:..C<<QGNN71:wN?????	@ 	@@ @<ri   Nr   r   r   rG  rx   ri   rh   r  r  !  s(        @ @ @ @ @ri   r  r   c                       e Zd ZdZd Zd ZdS )_AnnotatorRulezillegal target for annotationc                     |j         S r   r\  r   s     rh   rE  z_AnnotatorRule.get_nodeG  r  ri   c                    d }|j         j        d         }t          |          }	 |j        }d|v s|j        dk    r|d         dk    rd}n|j        dk    r|d         dk    rd}|d         }n# t          $ r Y nw xY w|6|j        d	k    s'|j        d
v r|j        dk    r|j        d         dk    sdS d S d S d}|                     |j         ||z             d S )Nr   r  r    r/   r1   r3   r4   rK   r   rF   rL   Tz,only single target (not %s) can be annotatedrT  )r   r]   r`   r[   r   r/  )r   rc   rd   lhsr]   rL   r   s          rh   rG  z_AnnotatorRule.is_issueJ  s)   k"1%S!!		#|H h#(f"4"4!9K9KV##s(:(:rlGG  	 	 	D	 =H&&x#999	11(+s22t '& 32 EGNN3:wN?????s   A, ,
A98A9NrH  rx   ri   rh   r  r  A  s>         .G  @ @ @ @ @ri   r  r   c                       e Zd Zd ZdS )_ArgumentRulec                    |j         d         }| j        j        dk     rt          |          }|j         d         dk    rX|j        dk    rM|j        dk    r| j        j        dk     rd}nd}n| j        j        dk     rd	}nd}|                     ||
           t          |          r)|j        j        dk    r|                     |d
           d S d S d S )Nr   r#   r'   =r   r   z lambda cannot contain assignmentz=expression cannot contain assignment, perhaps you meant "=="?zkeyword can't be an expressionrT  r  r  )r]   rO  r2   r`   r[   r/  r   r   )r   rc   rf   r   s       rh   rG  z_ArgumentRule.is_issueh  s    a #f,,"5))E=s""uzV';';zY&&#+f44@GG]GG #+f44>GG]GNN5'N222%d++ 	;0@J0N0NNN4)9N:::::	; 	;0N0Nri   Nr  rx   ri   rh   r  r  f  s#        ; ; ; ; ;ri   r  r   c                       e Zd ZdZd ZdS )_NonlocalModuleLevelRulez0nonlocal declaration not allowed at module levelc                 (    | j         j        j        d u S r   )rO  r
  r   r   s     rh   rG  z!_NonlocalModuleLevelRule.is_issue  s    '6$>>ri   Nre  rx   ri   rh   r  r    s(        @G? ? ? ? ?ri   r  arglistc                   *    e Zd Zed             Zd ZdS )_ArglistRulec                 *    | j         j        dk     rdS dS )Nr  z?Generator expression must be parenthesized if not sole argumentz*Generator expression must be parenthesized)rO  r2   r   s    rh   r   z_ArglistRule.message  s    #f,,TT??ri   c                    t                      }d}d}|j        D ]%}|dk    r
|j        dk    r|j        d         }t          |          rt	          |j                  dk    r dS |dv r%|dk    r|rd	}|                     ||
           rd}ud}|j        dk    rj|j        |v rGd}| j        j        dk    r|d	                    |j                  z  }|                     ||
           |
                    |j                   |rd}|                     ||
           
|rd}|                     ||
           'd S )NFr  r   r   r!   T)r  r)   r  z>iterable argument unpacking follows keyword argument unpackingrT  r   zkeyword argument repeatedr   z: {}z6positional argument follows keyword argument unpackingz,positional argument follows keyword argument)setr]   r[   r   r^   r/  ra   rO  r2   formatadd)r   rc   arg_setkw_onlykw_unpacking_onlyr   rf   r   s           rh   rG  z_ArglistRule.is_issue  s   %%! &	> &	>H3}
** )!,-h77  C<N<NRS<S<S44K''||, F'KG NN8WNEEE,0))"GzV++ ;'11&AG#/76AA '6==+E+E E NN5'NBBBB#KK444$ >VGNN8WN==== >LGNN8WN===M&	> &	>ri   N)r   r   r   propertyr   rG  rx   ri   rh   r  r    s?        @ @ X@*> *> *> *> *>ri   r  r  r   c                       e Zd ZdZd ZdS )_ParameterRulez-non-default argument follows default argumentc                 |   t                      }d}d}t          |          D ]}|j        dk    r|j        dk    rd}d}|j        j        |v r+d}|                     |j        ||j        j        z             |                    |j        j                   |s"|j        |j        s|r dS |j        rd}d}d}d S )NFr:   r  Tz.duplicate argument '%s' in function definitionrT  )	r  r   r[   ra   r   r/  r  defaultr  )r   rc   param_namesdefault_only	star_seenpr   s          rh   rG  z_ParameterRule.is_issue  s    ee	d## 	( 	(Av##7c>> $I#(Lv|{**Jqvw/EFFFOOAFL))) (9$Q\$# $#tt$\ ( $I#(LL#'L)	( 	(ri   Nre  rx   ri   rh   r  r    s*         >G( ( ( ( (ri   r  r   c                       e Zd ZdZd ZdS )_TryStmtRulezdefault 'except:' must be lastc                     d }|j         dd d         D ]0}|dv r d S |dk    r|}||                     || j                   1d S )Nr$   )elserk  exceptrT  )r]   r/  r   )r   r   default_exceptexcept_clauses       rh   rG  z_TryStmtRule.is_issue  sv    %.qt!t4 	E 	EM 333((!.+~t|DDD	E 	Eri   Nre  rx   ri   rh   r  r    s-        .GE E E E Eri   r  rY   c                   8    e Zd ZdZdZdZdZd Zd Zd Z	d
d	Z
dS )_FStringRuleNz3f-string expression part cannot include a backslashz'f-string: expressions nested too deeplyzAf-string: invalid conversion character: expected 's', 'r', or 'a'c                 L    |                      |j        dd          |           d S r   _check_fstring_contentsr]   )r   format_specdepths      rh   _check_format_specz_FStringRule._check_format_spec  s*    $$[%9!""%=uEEEEEri   c                    |dk    r|                      || j                   |j        d         }d|                                v r|                      || j                   |j        d         }|j        dk    r|j        dk    r|j        d         }n|}|j        dk    r2|j        d         }|j        d	vr|                      || j                   |j        d
         }|j        dk    r|                     ||dz              d S d S )Nr!   rT  r'   r  r:   r  r$   fstring_conversion)sr  ar   fstring_format_spec)	r/  message_nestedr]   get_codemessage_exprr[   ra   message_conversionr  )r   fstring_exprr  rQ   
children_2
conversionr   r  s           rh   _check_fstring_exprz _FStringRule._check_fstring_expr  s   A::NN<1DNEEE$Q'4==??""NN4):N;;;!*1-
?j((Z-=-D-D%.q1JJ#J?222&q)Dz00tT-DEEE"+B/444##K;;;;; 54ri   c                 J    |                      |j        dd                    d S )Nr'   rK   r  )r   rY   s     rh   rG  z_FStringRule.is_issue  s(    $$W%5ad%;<<<<<ri   r   c                 R    |D ]#}|j         dk    r|                     ||           $d S )Nr  )r[   r  )r   r]   r  fstring_contents       rh   r  z$_FStringRule._check_fstring_contents  sD    ' 	A 	AO#~55((%@@@	A 	Ari   )r   )r   r   r   _fstring_grammarr  r  r  r  r  rG  r  rx   ri   rh   r  r    st        HL>N\F F F< < <,= = =A A A A A Ari   r  c                       e Zd ZddZdS )_CheckAssignmentRuleFc                 ~   d }|j         }|dk    rd}n|dk    rV|j        d d         \  }}t          |          }|0|j         dk    rA| j        j        dk     rd}n|j        d         d	k    r| j        j        d
k     rd}ngd}ncd}n_|dk    r2|dk    r,| j        j        dk     rd}n?| j        j        d
k     rd}n+d}n'|dk    r0t          |j                  dk    r| j        j        dk     rd}nd}n|dv rr|j         dk    rd}n|j         dk    r@|r|dk    rd}n|dk    rd}|j        d d d         D ]}	|                     |	|||           n|                     ||||           ny|dk    r9|j        dk    rd}nd| j        j        dk     rd}nPt          |j                  }n:|dk    r#|j        dk    r| j        j        d
k     rd}nd}n|dk    rd}n|dv rd}n|dk    rd }
| 	                    ||
!           n|d"k    rd#}n|d$v r|j        d%         d&k    rd'}n|j        d(         d)k    r| j        j        d
k     rd}nd*}n|j        d+         }|j         d,k    sJ |j        d%         dk    rd-}nc|r|j        d%         dk    rd.}nL|r|j        d%         d/k    rd0}n5|d1k    r| j        j        dk     rd}nd2}n|d3v r,|j        d d d         D ]}	|                     |	|||           nd4|v r|d5k    sd6|v s|d7v r| j        j        d
k     rd}nd*}n|d5k    r|r+| j        j        d8k    rd9}n| 	                    |d:!           nl| j        j        d8k    r|j
        }nt          |          }|j         t          vr7|s5|j         dk    r|j        d%         dk    sd;}
| 	                    ||
!           |                     |j        d                    |Q|rd<|z  }
n0| j        j        dk     rd=nd>}d?                    ||rd@ndA|g          }
| 	                    ||
!           d S d S )BNr   r   r    r!   r"   r#   r&   r'   r(   r*   r,   r-   r.   r5   r6   )r/   r3   rC   r9   r   r/   r1   r3   r4   r7   r8   r:   r;   r<   r=   r>   r?   z+assignment to yield expression not possiblerT  rD   rE   rF   r   rI   rJ   r   r)   rW   rK   rL   rM   rN   rO   rP   rY   rZ   )r   r   r   rQ   rR   rS   rT   r   rX   r  z4starred assignment target must be in a list or tuplez)cannot use assignment expressions with %szcan'tcannot deletez	assign to)r[   r]   r\   rO  r2   r^   _check_assignmentra   rb   r/  r   r   r   join)r   rc   is_deletionis_namedexpris_aug_assignrV  rd   rf   rg   rp   r   rL   r  r  s                 rh   r   z&_CheckAssignmentRule._check_assignment  s   	IEEf__ M"1"-ME6+D11E};"222'/&88 )!?1-44#/7'AA(6(6$1EEc\\fmm'/&88 )+3g==$2EE$2EEc\\c$-&8&81&<&<'/&88 ) -j(({l22 277 ( /$||(/!&#(. &,_SSqS%9 d dE 225+|Ubccccd ..v{LR_```izW$$*!)F22!DJj  zU""#+g55&EE&El"" EE555EEl""CGNN4N1111f__,EE,,,}Q7***r"d**#+g55&EE(EE -+|y0000#A&#--+EE! (g&6q&9S&@&@'EE! (g&6q&9S&@&@'Ei'&00!-DDDsss+ X X&&uk<WWWWXoo%;"6"6E!!,,,''11"$k!! :#+v55%EENN41TNUUUU#+v55#{HH5d;;H=(:::=:!)&!8!8X=Nq=QUX=X=XTGNN4N999""4=#3444 ^EM$($4$<v$E$E8((F,THHV[#\]]NN4N11111 ri   N)FFF)r   r   r   r   rx   ri   rh   r  r    s.        C2 C2 C2 C2 C2 C2ri   r  r   c                       e Zd ZdZd ZdS )_CompForRulez>asynchronous comprehension outside of an asynchronous functionc                     |j         d         }|j        dk    r|                     |           |j        j         d         dk    o| j        j                                         S )Nr'   	expr_listr   async)r]   r[   r   r   rO  r
  r   )r   rc   r(  s      rh   rG  z_CompForRule.is_issue  se    M!$	>[((""9---{#A&'1 @$,==???	@ri   Nre  rx   ri   rh   r&  r&    s-        NG@ @ @ @ @ri   r&  r   c                   "    e Zd ZdZdez   Zd ZdS )_ExprStmtRulez+illegal expression for augmented assignmentz'{target}' is an c           	      P   |j         d         }|dk    o
|j        dk    }| j        j        dk    s|s*|j         d dd         D ]}|                     ||           |rt          |j         d                   }|j        d	k    s;|j        d
v r4|j         d         j        dk    r|j         d         j         d         dk    rdS | j        j        dk    rdS |                     || j                            t          |j         d         | j        j                                       d S d S )Nr'   r  r   r#   r   r!   )r$  r   r   rF   rL   rK   r/   FT)targetrT  )
r]   r[   rO  r2   r   r`   r/  extended_messager  r_   )r   rc   	augassignr$  before_equalr-  s         rh   rG  z_ExprStmtRule.is_issue  s^   M!$	!S(JY^{-J#v--]- $er!e 4 R R&&|=&QQQQ 	#DM!$455F {f$$555OA&+y88OB'03s::u'611t 188,T]1-=t?O?WXX 9        	 	ri   N)r   r   r   r   r.  rG  rx   ri   rh   r+  r+    s3        ;G*W4    ri   r+  	with_itemc                       e Zd Zd ZdS )_WithItemRulec                 F    |                      |j        d                    d S Nr!   )r   r]   )r   r1  s     rh   rG  z_WithItemRule.is_issue  s$    y1!455555ri   Nr  rx   ri   rh   r3  r3    s#        6 6 6 6 6ri   r3  r  c                       e Zd Zd ZdS )_DelStmtRulec                 h    |j         d         }|j        dk    r|                     |d           d S d S )Nr'   r(  T)r"  r]   r[   r   )r   r  rp   s      rh   rG  z_DelStmtRule.is_issue  sC    !!$:$$""5d";;;;; %$ri   Nr  rx   ri   rh   r7  r7    s#        < < < < <ri   r7  r(  c                       e Zd Zd ZdS )_ExprListRulec                 V    |j         d d d         D ]}|                     |           d S r5  )r]   r   )r   r(  rQ   s      rh   rG  z_ExprListRule.is_issue  s@    &sss+ 	) 	)D""4((((	) 	)ri   Nr  rx   ri   rh   r;  r;    s#        ) ) ) ) )ri   r;  r   c                       e Zd Zd ZdS )_ForStmtRulec                 d    |j         d         }|j        dk    r|                     |           d S d S )Nr'   r(  r9  )r   r   r(  s      rh   rG  z_ForStmtRule.is_issue  s>    %a(	>[((""9----- )(ri   Nr  rx   ri   rh   r>  r>    s#        . . . . .ri   r>  namedexpr_testc                       e Zd Zd ZdS )_NamedExprRulec                   	 |j         d         }d } ||          rd}|                     ||           t                      fd		fd} ||          }|rt| j        j        j        j        dk    rd}|                     ||           d	 D             }|j        d
k    r*|j        |v r!d|j        z  }|                     ||           |                     |d           d S )Nr   c                 \    	 | j         }||S |j        dk    r|j        d         | k    r|S |} ,)NTr   r$   r   )rc   r   s     rh   search_namedexpr_in_comp_forz=_NamedExprRule.is_issue.<locals>.search_namedexpr_in_comp_for  sE    >!M;/11foa6HD6P6P!Mri   zKassignment expression cannot be used in a comprehension iterable expressionrT  c                     | j         dk    r| }n| j         dk    r| j        d         }                    t          |                     d S )Nr   r   r'   )r[   r]   r   r   )r   compr   s     rh   process_comp_forz1_NamedExprRule.is_issue.<locals>.process_comp_for  sR    }//*,,(+OO:4@@AAAAAri   c                     d}	 |                      dd          } | n(| j        D ]}|j        t          v r |           d} n A|S )NFTr   r"   )r   r]   r[   ru   )rc   has_ancestorsrp   rH  s      rh   search_all_comp_ancestorsz:_NamedExprRule.is_issue.<locals>.search_all_comp_ancestors  sv    !M++O=MNN<!]  Ez_44((///(, 5 ! ri   r  zKassignment expression within a comprehension cannot be used in a class bodyc                 2    g | ]}|j         d k    |j        S )r   )r[   ra   )r{   rQ   s     rh   r}   z+_NamedExprRule.is_issue.<locals>.<listcomp>$  s&    OOOt49;N;N
;N;N;Nri   r   zGassignment expression cannot rebind comprehension iteration variable %rT)r#  )	r]   r/  r4   rO  r
  rc   r[   ra   r   )
r   r@  rf   rE  r   rK  
search_allnamelistr   rH  s
           @@rh   rG  z_NamedExprRule.is_issue  sX   '*	 	 	 ('77 	< dGNN>7N;;; 66	B 	B 	B 	B 	B	! 	! 	! 	! 	! /.~>>
 	@',1Z??;~w???OOxOOOHzV##x(?(?
@BG+N~w???u488888ri   Nr  rx   ri   rh   rB  rB    s#        =9 =9 =9 =9 =9ri   rB  )Fr  r  r  r$  
contextlibr   parso.normalizerr   r   r   r   parso.python.tokenizer   r  r   r  r  r  ru   r_   rr   r\   r   r`   r   r   r   r   r   r   r   r   r   r   r=  register_rulerC  rJ  rM  rQ  rX  r`  rh  rp  ru  rz  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r&  r+  r3  r7  r;  r>  rB  rx   ri   rh   <module>rS     s    



  				 % % % % % % F F F F F F F F F F F F 7 7 7 7 7 7MH   0S S Sl    ; ; ;  	 	 	Z Z Z  "( ( (0  = = =
8 8 8/ / /F F F F F F F FDq; q; q; q; q;* q; q; q;h. . . . .d . . . --	3 	3 	3 	3 	3? 	3 	3 .-	3# # # # #( # # #
) 
) 
) 
) 
) 
) 
) 
) --       .-& ))       *) ))    
   *) ,,    j   -,, ((< < < < <j < < )(< ''    *   (' )) H  H  H  H  HJ  H  H *) HF %%	# 	# 	# 	# 	# 	# 	# &%	# &&	M 	M 	M 	M 	MZ 	M 	M '&	M ))**    J   +* *)  	**       +*"  122    :   32 ..] ] ] ] ]J ] ] /.] ..: : : : :
 : : /.:. ,,!N !N !N !N !NJ !N !N -,!NH !344@ @ @ @ @* @ @ 54@> ,,!@ !@ !@ !@ !@Z !@ !@ -,!@H 
++; ; ; ; ;J ; ; ,+;2 00? ? ? ? ?z ? ? 10? 	**2> 2> 2> 2> 2>: 2> 2> +*2>j --	**( ( ( ( (Z ( ( +* .-(> 
++E E E E E: E E ,+E 	**%A %A %A %A %A: %A %A +*%APD2 D2 D2 D2 D2: D2 D2 D2N 00	@ 	@ 	@ 	@ 	@' 	@ 	@ 10	@ ,,    (   -,D ,,6 6 6 6 6( 6 6 -,6
 
++< < < < <' < < ,+< ,,) ) ) ) )( ) ) -,) 
++. . . . .' . . ,+.  011@9 @9 @9 @9 @9) @9 @9 21@9 @9 @9ri   