
    Mh                        U d dl Z d dlmZ d dlmZ d dlmZmZ d dlm	Z	 d dl
mZmZ dZdZd	Zd
ZdZdZdZdZdZeedf         ed<   eez  ZdZdZ G d d          Z G d de          Z G d de          Z G d de          Z G d de          Zd Z  G d d e          Z! G d! d"e          Z" G d# d$e	          Z#dS )%    N)contextmanager)Tuple)ErrorFinderErrorFinderConfig)Rule)FlowScope)import_nameimport_from)classdeffuncdefif_stmt
while_stmtfor_stmttry_stmt	with_stmt)termr   power)([{))]})+-~)*r   r   **/z//@)z<<z>>|&^)=%z-><>==z>=z<=z<>!=z+=z-=z*=z@=z/=z%=z&=z|=z^=z<<=z>>=z**=z//=._NEEDS_SPACE)dictorsetmakerargument)	subscriptsubscriptlistsliceopc                   r    e Zd Z e            Z e            Z e            Z e            Z e            ZdS )IndentationTypesN)	__name__
__module____qualname__objectVERTICAL_BRACKETHANGING_BRACKET	BACKSLASHSUITEIMPLICIT     Q/var/www/html/test/jupyter/venv/lib/python3.11/site-packages/parso/python/pep8.pyr2   r2      sF        vxxfhhOIFHHEvxxHHHr=   r2   c                   0    e Zd Zej        ZddZd Zd ZdS )IndentationNodeNc                 0    |x| _         | _        || _        d S N)bracket_indentationindentationparent)selfconfigrD   rE   s       r>   __init__zIndentationNode.__init__(   s    6AA 4#3r=   c                      d| j         j        z  S )Nz<%s>)	__class__r3   )rF   s    r>   __repr__zIndentationNode.__repr__,   s    ///r=   c                 R    | }|"|j         t          j        k    r|S |j        }| d S d S rB   )typer2   r:   rE   )rF   ns     r>   get_latest_suite_nodez%IndentationNode.get_latest_suite_node/   s8    mv)///A	 mmmmmr=   rB   )	r3   r4   r5   r2   r:   rM   rH   rK   rO   r<   r=   r>   r@   r@   %   sN        !D   0 0 0    r=   r@   c                       e Zd ZddZdS )BracketNodeFc                    || _         |}|}|j        t          j        k    r|j        }	 t          |d          r|j        |j         j        k    rn=|                                }t          |t                    r||j         k    rn|j        }c|j
        }|                                }d|j        v s	d|j        v r0||j        z   | _        ||j
        z   | _
        t          j        | _        nE|j        d         }	d|j
        v rd | _
        n
d|	z  | _
        | j
        | _        t          j        | _        |rI|j        t          j        k    r4| j
        ||j
        z   k    r!| xj
        |j
        z  c_
        | j
        | _        || _        d S )NTleaf
   	 )rS   rM   r2   r;   rE   hasattrlineget_previous_leaf
isinstancerQ   rD   get_next_leafprefix#closing_bracket_hanging_indentationrC   r8   end_posr7   r:   )
rF   rG   rS   rE   in_suite_introducerprevious_leafrN   parent_indentation	next_leafexpected_end_indents
             r>   rH   zBracketNode.__init__9   s   	 6%...A	q&!! m&8AFK&G&G);;==Ma-- !&1H1HA	 ]&&((	9###ty/?'?'? (:<(=D$1F4FFD(8DII #',q/v)))#'  #&)<#< '+'7D$(9DI 	86;2B2H#H#H$(:V=O(OOO 22'+'7D$r=   NF)r3   r4   r5   rH   r<   r=   r>   rQ   rQ   8   s(        1 1 1 1 1 1r=   rQ   c                   "     e Zd ZdZ fdZ xZS )ImplicitNodezk
    Implicit indentation after keyword arguments, default arguments,
    annotations and dict values.
    c                     t                                          |||           t          j        | _        |                                }|dk    r$d|j        vrd|j        vr| xj        dz  c_        d S d S d S d S )N:rT   rU   rX   )superrH   r2   r;   rM   r]   r^   rD   )rF   rG   rS   rE   rd   rJ   s        r>   rH   zImplicitNode.__init__r   s    v...$-	&&((	3;;4y'777D	HX<X<X# ;77<X<Xr=   )r3   r4   r5   __doc__rH   __classcell__rJ   s   @r>   rh   rh   m   sB         $ $ $ $ $ $ $ $ $r=   rh   c                   $    e Zd Zej        ZddZdS )BackslashNodeNc                 &   |                     d          }|W|j        d         }d|j        v rd | _        nH|j        |j        k    r||j        z   | _        n(d|j        d         dz   z  | _        n||j        z   | _        | j        | _        || _        d S )N	expr_stmtrW   rX   rV   )search_ancestorchildrenrD   r`   	start_posrC   rE   )rF   rG   rc   containing_leafspacingrE   rr   equalss           r>   rH   zBackslashNode.__init__~   s    #33K@@	 '+Fv)))#'   >W%666'9F<N'ND$$ (+fnQ.?!.C'DD$$1F4FFD#'#3 r=   rB   )r3   r4   r5   r2   r9   rM   rH   r<   r=   r>   rp   rp   {   s0        %D     r=   rp   c                 j    | j                             d          o| j                             d          S )N__)value
startswithendswith)names    r>   _is_magic_namer      s-    :  &&D4:+>+>t+D+DDr=   c                        e Zd Z fdZe fd            Zed             Zd Zd ZddZ	 fdZ
d	 Zd
 Zd Zd Z fdZ xZS )PEP8Normalizerc                 T    t                      j        |i | d | _        d | _        d| _        d| _        d | _        d| _        d| _        d| _	        t          | j        d          x| _        | _        d| _        d| j        j        v rd| _        d| _        d S d	| _        d| _        d S )
NTr   F )rD   rX   spacesrW   tabs)rk   rH   _previous_part_previous_leaf_on_newline_newline_count_wanted_newline_count_max_new_lines_in_prefix_new_statement_implicit_indentation_possibler@   _config_indentation_tos_last_indentation_tos_in_suite_introducerrD   _indentation_type_wrong_indentation_char)rF   argskwargsrJ   s      r>   rH   zPEP8Normalizer.__init__   s    $)&)))""%)"()%".3+ DLb999	: :$)!$,***%-D"+/D(((%+D"+.D(((r=   c              #      K   t                                          |          5  |                     |          5  d V  d d d            n# 1 swxY w Y   d d d            d S # 1 swxY w Y   d S rB   )rk   
visit_node_visit_node)rF   noderJ   s     r>   r   zPEP8Normalizer.visit_node   s      WW%% 	 	!!$''                	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	s4   A$A A$A	A$A	A$$A(+A(c              #   >  K   |j         }|dv rM|                                }t          |          dk    r$|d d         D ]}|                     |dd           n|dk    rR|j        }|j         dk    r>t          d |j        d dd	         D                       r|                     |d
d           nC|dk    r9|j        D ]/}|j         dk    r"|j        dk    r|                     |dd           0n|dk    r|j        D ]y}|j         dvrt          |j                  d	k    r%|j        d         }|j        d         }|j         dk    r/|j         dk    r$|j        dk    r|                     |dd            nzn||dk    rv|j        d         }	|	                                }
|	j	        }|
                    d          s9|
                    d          s$|s|
	|
j        dvr|                     |	dd           |t          v r|j        }|j        }|j         dk    r|j                            |          }|j        d |         D ]}|g}|j         d k    r|j        d d         }d!}|D ]}|j         d"k    r|sd#}|j         dk    r,t          d$ |                                D                       rI|j         t          v st          |t                    rm|                     |d%d&            n |t           v }|t"          v }|rd#| _        ns|d'k    rd| j        j         t(          j        k    r| j        j        | _        t-          | j        | j        j        | j        j        z   | j        (          | _        n	|rd#| _        d V  |d'k    r6| j        j         t(          j        k    sJ | j        j        | _        d | _        d S |r6d!| _        | j        j         t(          j        k    r| j        j        | _        d S d S |r&d!| _        |d)v r|                                 | _        d S d S d S )*Nr
   rV   i  zMultiple imports on one linelambdefrr   c              3   ,   K   | ]}|j         d k    V  dS )r   N)rM   .0rN   s     r>   	<genexpr>z-PEP8Normalizer._visit_node.<locals>.<genexpr>   sE       5Y 5Y9: 67Vv5E 5Y 5Y 5Y 5Y 5Y 5Yr=   rs      i  z,Do not assign a lambda expression, use a defr   keywordexcepti  z1Do not use bare except, specify exception instead
comparison)	atom_exprr   r   trailerr   rM   i  z'Do not compare types, use 'isinstance()
file_inputrT   rU      
rT   rU   i$  zNo newline at end of filesimple_stmtFstringTc              3   4   K   | ]}t          |          V  d S rB   )r   r   s     r>   r   z-PEP8Normalizer._visit_node.<locals>.<genexpr>   s*      #U#U!N1$5$5#U#U#U#U#U#Ur=   i  z&Module level import not at top of filesuiterE   )r   r   )rM   get_defined_nameslen	add_issuerE   anyru   r|   r[   r^   r~   _IMPORT_TYPESindexallr\   r   _IMPLICIT_INDENTATION_TYPES_SUITE_INTRODUCERSr   r   r2   r9   r@   r   rD   r   r:   r   r;   _get_wanted_blank_lines_count)rF   r   typnamesr   rr   childr   atom	endmarkerprevr^   r   moduler   ru   found_docstringcimplicit_indentation_possiblein_introducers                       r>   r   zPEP8Normalizer._visit_node   s     i-**,,E5zzA~~!"1"I N NDNN4.LMMMMII ~,, 5Y 5Y>G>PQVRTUVQV>W5Y 5Y 5Y 2Y 2Y,tS*XYYYJ d d :**u{h/F/FNN5#/bccc	d
 L   
 
:%;;;u~&&**.+~a(<9,,f1D1D J&00NN4.WXXXEL  b)I..00D%FOOD)) L&//$2G2G LL"ldj@T.T.Ty#/JKKK-+K 'F{l**--k::#_VeV4  E %wHz]22#(>#2##6&+O% ! !6X--o-$*.6[00 ##U#Uq?R?R?T?T#U#U#U U U 1$6]22jD6I6I2$tS2Z[[[ (+/J(J%11 	7(,D%%G^^$)-=-GGG(,(=(D%$3%1DL4LL,% % %D!!
 + 	726D/'>>(-1A1GGGGG$($9$@D!)-D&&&* 	R27D/$)-=-FFF(,(=(D%%% GF 	R(-D%----1-O-O-Q-Q***	R 	R--r=   c                 d    | j         |j        v r!|                     |dd| j        z              dS dS )Ne   zIndentation contains TF)r   r|   r   r   )rF   rx   s     r>   _check_tabs_spacesz!PEP8Normalizer._check_tabs_spaces  s;    '7=88NN7C)@4CY)YZZZ4ur=   c                 f    | j                                         }t          |j        d u           dz   S )NrV   )r   rO   intrE   )rF   
suite_nodes     r>   r   z,PEP8Normalizer._get_wanted_blank_lines_count!  s1    *@@BB
:$,--11r=   Fc                    t          | j        | j                  | _        | j        }|U| j        dz
  }||k    r>|j        dk    r3|s0|dk    rdnd}d|d|}|                     |||           d | _        nd | _        |s|                                 }| j        dz
  }|j        }	|	dk    r|j        j        d	k    pI|	d
k    p.|	dk    o|	                                dk    p|	dk    o
| j
        dk    o|j        j        j        dk    }
|
rv||k     rp|j        }|j        }|j        dk    r|j        }|j        t          |j        dk                       |k    r)|dk    rdnd}d|d|}|                     |||           d| _        d| _        d S )NrV   r   r   i.  i-  z	expected z blank line, found r!   	decoratorclassasyncdef	decoratedr   r   )maxr   r   r   rM   r   r   r|   rE   r]   r   ru   r   )rF   rx   rS   
is_commentwantedblank_linescodemessageactualvalneeds_linesfunc_or_clsr   s                r>   _reset_newlineszPEP8Normalizer._reset_newlines%  s   -t/BCC 	% +-1K##	[(@(@! 6"(A++333DD!66;;0GNN7D':::15D.-1* 	.7799F2Q6F*Cs
>t{/;> =7N Gg~G$*<*<*>*>%*GGe|F(;w(F= k(-<   ;v"k#*:,,!LE >#ejG&;"<"<=LL"(A++333DD!6666+GNN7D':::,-D)r=   c                    t                                          |           |                                D ]8}|j        dk    r n*|                     ||                                |           9|                     |           |                     |||           | j        | _        |j        dk    | _	        |j        dk    r+| j        j        t          j        k    r| j        j        | _        |j        dk    r|j        j        t          v rd| _        n|j        dk    rd| _        | j	        s|                     ||           d| _        || _        |j        S )Nrx   newlinerj   FelifTr   )rk   
visit_leaf_split_prefixrM   _visit_partcreate_spacing_part_analyse_non_prefixr   r   r   r2   r9   rE   r|   r   r   r   _max_blank_linesr   )rF   rS   partrJ   s      r>   r   zPEP8Normalizer.visit_leafX  sa   4   &&(( 	E 	EDyI%%T4#;#;#=#=tDDDD  &&&tT*** &*%:""i94 9	!!%*.>.HHH$($9$@D!:!15G!G!G(-D%%Z6!!(,D%" 	&  t,,,$%D!"zr=   c                    |j         }|j        }|dk    rd S |dk    r!|j        j        dk    r| j        j        | _        | j        }|dk    r|                    d          r-|                    d          r|                     |dd           n| j        rSt          j	        d	|          s=|dk    s7|                    d
          r|j
        dk    s|                     |dd           n,t          j	        d|          s|                     |dd           |                     ||d           n|dk    r}| j        |                                 k    r |                     |dd| j        z             n0|dv r,|j        j        j        dk    r|                     |dd           | xj        dz  c_        |dk    r|j        t          j        k    r|j        t          j        k    r|                     |dd           n|j        }| j        r$|j        t          j        k    r|| j        j        z  }t)          | j        |||| j                  | _        n6| j        r|j         }|j        t          j        k    r!| j        j        dk    r| j        j        | _        |                     |          s|j        }|dk    rK| j        }		 t1          |          t1          |	j                  k    rn|	j        }|	| _        |	|k    rn|	j        }	C| j        rf|dk    r|r|                     |dd            n[||k    r=t1          | j        j                  d!| j        }
|                     |d"d#|
z              n|d$v r|j        }n|j        }| j        rC||                                j        | j        j        z   k    r|                     |d%d&           n||k    r|                     |          s|j         d'vr{|d$v rG|j        t          j        k    r|                     |d(d)           n`|                     |d*d+           nGt1          |          t1          |          k     r|j        t          j        k    r|                     |d,d-           n|j        t          j        k    r|                     |d.d/           n|j        t          j        k    r|                     |d0d1           n|                     |d2d3           n|j        t          j        k    r|                     |d4d5           n[|j        t          j        k    r|                     |d6d1           n.|                     |d7d8           n|                     ||           |                      ||           |rt|d9v rp|dk    rj|j        j        d:k    rZ|tB          v r(tE          | j        || j        | j        ;          | _        no|j        t          j        k    sJ | j        j        | _        nF|d<v rB| j#        r;|j        j        tH          v r(|j        }tK          | j        || j                  | _        |d=v | _        || _        || _&        d S )>N
error_leaf,r,   commentz###i
  z'Too many leading '#' for block comment.z#:? z#!)rV   r   i	  z$Block comment should start with '# 'z#:? [^ ]i  z%Inline comment should start with '# 'T)r   r   i/  zToo many blank lines (%s))r   r   r   i0  z*Blank lines found after function decoratorrV   	backslashi  z+The backslash is redundant between bracketsr   #  Trailing whitespacerX   o   z!Indentation is not a multiple of z])}   z+Line with same indent as next logical blockr   |   z1Closing bracket does not match visual indentation{   zCLosing bracket does not match indentation of opening bracket's line   z2Continuation line under-indented for visual indentz   z2Continuation line missing indentation or outdented   xxxy   z3Continuation line under-indented for hanging indent   z1Continuation line over-indented for visual indent   ~   z2Continuation line over-indented for hanging indentz()[]{}
error_node)rE   ra   )r%   rj   )r   r   bom)'r|   rM   rE   r   r}   lstripr   r   rematchrv   r   r   r   r2   r9   r:   rD   r   r   rp   r   r   r   r   r   r   rC   rO   r7   r;   _check_spacing_check_line_length_OPENING_BRACKETSrQ   r   r   rh   _previous_spacing)rF   r   rx   rS   r|   type_r   rD   should_be_indentationrN   ss              r>   r   zPEP8Normalizer._visit_partz  sm   
	L  FC<<DK,0@@@$($9$@D!$I%% 
W<<$$ YNN4.WXXX! Wx// V!&!1!1$!7!7 9E<@Nf<T<TNN4.TUUUxU33 WNN4.UVVV  $4 @@@@i"T%G%G%I%IIItS*EH[*[\\\\)))*/;>>tS*VWWW1$Ky,6669 0 666NN4.[\\\\"&"2K0 @TYBRBX5X5X#t|'??,9##4- - -D)  ]	/!-Ky,666+0I==(,(=(D%**733 U*(,(8%I%%2A	%{++c!-.@.@@@!01-56299!H	% & E*	))& P NN7C9NOOO$(==='*4<+C'D'D'D'DdF\F\]tS2UXY2YZZZ~~040H--040@-0 9*[ 6688D"l6767 67 tS2_````$(===#66w?? 4*DJ 4E5 E5$~~#'90@0Q#Q#Q$(NN(,(+([%& %& %& %& %)NN(,(+)P%& %& %& %& $'{#3#3c:O6P6P#P#P'+y4D4U'U'U(,,0,/,`)* )* )* )*
 *.6F6P)P)P(,,0,/,`)* )* )* )*
 *.6F6O)O)O(,tS%(H(H(H(H(,,0,/,a)* )* )* )* (,y4D4U'U'U(,,0,/,_)* )* )* )*
 *.6F6O)O)O(,tS%(H(H(H(H(,,0,/,`)* )* )* g...g...  	Uh&&5L+@+@K$44)))(3L$0(,(A) ) )%% y$4$=====(,(=(D%%j  T%H K$(CCC*K$0d4+@% % %D! !$CC"!(r=   c           	         |j         dk    r|j        d         dz   }n|j        d         }|| j        j        k    r|j        d         | j        j        k    rd}|j         dk    r]|j        dd                                          }t          |          dk    r)|j        d         t          |d                   z
  dk     rd}|r.|                     |dd	|d
| j        j        d           d S d S d S d S )Nr   rV   Tr   r   H   Fi  zLine too long (z > z characters))	rM   rv   r`   r   max_charactersr|   splitr   r   )rF   r   rx   last_columnreportsplitteds         r>   r   z!PEP8Normalizer._check_line_length'  s   9##.+a/KK,q/K444%a(DL,GGG FyI%%:abb>//11x==A%%!\!_s8A;/?/??2EE"F C [[$,"="="=?     54GG r=   c                      fd} fd}|j          j        }||j        dk    s|j        dk    rd S |j        }dv r                     |dd           d S |dk    r8t	                     j        j        k     r                     |dd	           d S d S |d
k    r ||dd           d S t	                    dk    r                     |dd           d S |t          v rd|j         z  } ||d|           d S |t          v rd|j         z  } ||d|           d S |dv s|dk    r,|j	        j        t          vrd|j         z  } ||d|           d S |dk    r|j	        j        t          v rd S |dv r ||dd           d S |dk    rd S |dv r|j	        j        t          vs|dv r|j	        j        t          vrd S |t          v r|j	        j        dk    rd S |dk    r|j	        j        dk    rd S |t          v s	|t          v r|dk    r|j	        j        dv s|dk    rS|j	        j        dv rE|dk    r|j	        }n|j	        }|j        d k    r|j        r ||d!d"           d S  ||d#d$           d S |t          v s	|t          v r ||d%d&           d S |d'k    s|d'k    r ||d(d)           d S d*}	 ||d+|	           d S |d,k    s|j        d,k    r ||d-d.           d S  j        }
|t"          v r@|
j         k    r5d/ j        j        vr'd0 j        j        vrd1}                     |d2|           r6|t"          vr/|t"          vr(d*}	|t          v rd|j         z  } ||d3|           d S d S d S d S d S )4Nc                       r
 j         |  S d S rB   r   r   rF   r   s    r>   add_if_spacesz4PEP8Normalizer._check_spacing.<locals>.add_if_spaces?  s$     -%t~t,,- -r=   c                       s
 j         |  S d S rB   r  r  s    r>   add_not_spacesz5PEP8Normalizer._check_spacing.<locals>.add_not_spacesC  s$     -%t~t,,- -r=   r   rW      zUsed tab to separate tokensr   i  z)At least two spaces before inline commentr   r   r   rV      zMultiple spaces usedzWhitespace after '%s'   zWhitespace before '%s'   )r   ;rj      )r   r  rj      zmissing whitespace after '%s')r   r   factorr!   r   r%   )r-   paramr     z(Expected spaces around annotation equals   z3Unexpected spaces around keyword / parameter equals   z3Missing whitespace around bitwise or shift operatorr&      z)Missing whitespace around modulo operatorz!Missing whitespace between tokens   r   i  z!Missing whitespace around keywordrT   rU   z>Whitespace before operator doesn't match with whitespace after      )r|   r   rM   r   r   r   spaces_before_commentr  _CLOSING_BRACKETSrE   _POSSIBLE_SLICE_PARENTS_NON_STAR_TYPES_FACTORr+   
annotation_BITWISE_OPERATORr  _ALLOW_SPACEr   r^   )rF   r   rx   r  r  r   r  r   r  message_225prev_spacingr   s   `          @r>   r   zPEP8Normalizer._check_spacing>  s   	- 	- 	- 	- 	- 	-	- 	- 	- 	- 	- 	- "	\ 9 9TY,=V=VF	6>>NN7C)FGGGGGi6{{T\???w-XYYYYY @?iM'3(=>>>>>[[1__NN7C)?@@@@@(((1DJ>gsG44444***2TZ?gsG44444##ts{{(0GGG2TZ?gsG44444!15L!L!L((w-LMMMMM$$)9)P)P{**(??T[%5%A%A!1[!@!@%%)=)=3;;4;#37L#L#L3;;4;+;?T+T+Ts{{ $ $zW,,1A,&w5_`````%#Q    
 ...$:K2K2K"NM    
 S[[DCKK"N7C1\]]]]]"EK"N7C=====)##tyI'='=w-PQQQQQ#5<''Fl6H,H,H (;(BBB (;(BBB^GNN7C999 =d,664|;S;S"EK 000":TZ"G%gsG<<<<<= =66;S;S 10r=   c                    |j         }|dk    r|j        dv r|                                rd}|j        j         dk    r,|j        j        |k    r|                     |d|dz             d S |j        j         dk    r,|j        j        |k    r|                     |d|dz             d S |                     d	|d
z  |           d S d S |j        dk    rt          |j        t          t          f          rq|j        j         dk    rc|
                                }|j         dk    rF|j        j         dk    r|                     |dd           d S |                     |dd           d S d S d S d S |j        dk    rM|
                                j         dv r|                     |dd           d S |                     |dd           d S |j        dv r|j        }|j                            |          }|j        |dz
           }|j        |dz            }||fD ]d}	|	j         dk    s|	j         dk    rL|	j        dk    rd}|                     |d|            d S |	j        dv rd }|                     |d!|            d S ed S |j        d"v rc|j        }|j         d#k    rM|j        j         d$k    r?|j        d%k    r|                     |d&d'           d S |                     |d(d)           d S d S d S |d*k    ryt          |j                                        dd                    D ]H\  }
}t          j        d+|                              d,          }|j        |
z   t'          |          f}| Id S |d-k    r$| j        d.k    r|                     |d/d0           d S d S d S )1Nr   )lOIz0Do not define %s named 'l', 'O', or 'I' one liner   i  classesfunctioni  i  	variablesrj   r   r   r   i  z%Multiple statements on one line (def)i  z'Multiple statements on one line (colon)r  )r   r   i  zStatement ends with a semicoloni  z+Multiple statements on one line (semicolon))r)   r*   rV   r   Nonez/comparison to None should be 'if cond is None:'i  )TrueFalsezCcomparison to False/True should be 'if cond is True:' or 'if cond:'i  )inisr   not_testr8  i  z&test for membership should be 'not in'i  z+test for object identity should be 'is not'r   z[ \t]*r   r   r   i  Blank line at end of file)rM   r|   is_definitionrE   r   r   add_issuadd_issuer\   r   r	   r]   ru   r   	enumerate
splitlinesr   r   grouprZ   r   r   )rF   rS   r   r   rd   r   r   leftrightr   irZ   rD   rv   s                 r>   r   z"PEP8Normalizer._analyse_non_prefix  s:   i&==TZ?::!!## ML;#w..4;3Ct3K3KNN4g	.ABBBBB[%338HD8P8PNN4g
.BCCCCC**3+0EtLLLLLM M Z3$+e}55 b$+:Ji:W:W ..00	>Y..{'944y#7^_____y#7`aaaaab b:W:W..
 Z3!!##(,DDDtS*KLLLLLtS*WXXXXXZ<''J'--d33E&uqy1D'	2Ee 
 
9	))TY&-@-@zV++"StS':::'888#EtS':::
 
 Z<''J,..:3D3IZ3W3W:%%NN4.VWWWWWNN4.[\\\\\	 /.3W3W
 H__$TZ%:%:%<%<QRR%@AA  4 hy$77==a@@ IM3{+;+;;				 
 K"a''tS*EFFFFF  ''r=   c                 F   | j         .| j                             d          d S | j         j        dk    rd S |                    d          d S |dv r%t                                          |||           d S t          t
          |                               |||           d S )Nr   r   )i  i  )r   rt   rM   rk   r   r   )rF   r   r   r   rJ   s       r>   r   zPEP8Normalizer.add_issue  s    *"22<@@L"'<77--9F:GGdD'22222 +t$$..tT7CCCCCr=   rf   )r3   r4   r5   rH   r   r   r   r   r   r   r   r   r   r   r   r   rm   rn   s   @r>   r   r      s6       / / / / /,     ^
 cR cR ^cRJ  2 2 21  1  1  1 f         Dk) k) k)Z  .]= ]= ]=~8G 8G 8GtD D D D D D D D Dr=   r   c                        e Zd ZeZ	 	 	 ddZdS )PEP8NormalizerConfig    NO   r   c                 b    || _         ||}|| _        d| _        d| _        || _        || _        d S )Nr   F)rD   hanging_indentationr_   break_after_binaryr  r$  )rF   rD   rJ  r  r$  s        r>   rH   zPEP8NormalizerConfig.__init__  sD    &&"-#6 350"',%:"""r=   )rG  NrH  r   )r3   r4   r5   r   normalizer_classrH   r<   r=   r>   rF  rF    s=        % AE:;	; 	; 	; 	; 	; 	;r=   rF  c                       e Zd ZdZdZd ZdS )BlankLineAtEndi  r;  c                     | j         dk    S )Nr   )r   )rF   rS   s     r>   is_issuezBlankLineAtEnd.is_issue  s    "a''r=   N)r3   r4   r5   r   r   rP  r<   r=   r>   rN  rN    s-        D)G( ( ( ( (r=   rN  )$r   
contextlibr   typingr   parso.python.errorsr   r   parso.normalizerr   parso.python.treer   r	   r   r   r'  r  r%  r(  r+  r*  r+   str__annotations__r   r&  r2   r6   r@   rQ   rh   rp   r   r   rF  rN  r<   r=   r>   <module>rX     s\   					 % % % % % %       > > > > > > > > ! ! ! ! ! ! ) ) ) ) ) ) ) ) /; 2! ! 
2- !eCHo   
 ! !< C            f   &2 2 2 2 2/ 2 2 2j$ $ $ $ $; $ $ $    O   2E E EL	D L	D L	D L	D L	D[ L	D L	D L	D^; ; ; ; ;, ; ; ;&( ( ( ( (T ( ( ( ( (r=   