Ë
    Kæõi „  ã                   óP  — 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#y)%é    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y)ÚIndentationTypesN)	Ú__name__Ú
__module__Ú__qualname__ÚobjectÚVERTICAL_BRACKETÚHANGING_BRACKETÚ	BACKSLASHÚSUITEÚIMPLICIT© ó    úb/workspace/moltex-experiments/.pixi/envs/default/lib/python3.12/site-packages/parso/python/pep8.pyr2   r2      s&   „ Ù“xÐÙ“h€OÙ“€IÙ‹H€EÙ‹x�Hr=   r2   c                   ó8   — e Zd Zej                  Zdd„Zd„ Zd„ Zy)ÚIndentationNodeNc                 ó.   — |x| _         | _        || _        y ©N)Úbracket_indentationÚindentationÚparent)ÚselfÚconfigrD   rE   s       r>   Ú__init__zIndentationNode.__init__(   s   € Ø6AÐAˆÔ  4Ô#3Øˆ�r=   c                 ó4   — d| j                   j                  z  S )Nz<%s>)Ú	__class__r3   )rF   s    r>   Ú__repr__zIndentationNode.__repr__,   s   € Ø˜Ÿ™×/Ñ/Ñ/Ð/r=   c                 ój   — | }|�/|j                   t        j                  k(  r|S |j                  }|�Œ.y y rB   )Útyper2   r:   rE   )rF   Úns     r>   Úget_latest_suite_nodez%IndentationNode.get_latest_suite_node/   s4   € ØˆØˆmØ�v‰vÔ)×/Ñ/Ò/Ø�à—‘ˆAð	 ‹mr=   rB   )	r3   r4   r5   r2   r:   rM   rH   rK   rO   r<   r=   r>   r@   r@   %   s   „ Ø×!Ñ!€Dóò0ór=   r@   c                   ó   — e Zd Zdd„Zy)ÚBracketNodec                 óÂ  — || _         |}|}|j                  t        j                  k(  r|j                  }	 t        |d«      r$|j                  |j                   j                  k7  rn=|j                  «       }t        |t        «      r||j                   k7  rn|j                  }Œm|j                  }|j                  «       }d|j                  v sd|j                  v r>||j                  z   | _        ||j                  z   | _
        t        j                  | _        nU|j                   d   }	d|j                  v rd | _
        n
d|	z  | _
        | j                  | _        t        j"                  | _        |ri|j                  t        j$                  k(  rL| j                  ||j                  z   k(  r0| xj                  |j                  z  c_
        | j                  | _        || _        y )NÚ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‰6Ô%×.Ñ.Ò.Ø—‘ˆAØÜ�q˜&Ô! m×&8Ñ&8¸A¿F¹F¿K¹KÒ&GØà)×;Ñ;Ó=ˆMÜ˜a¤Ô-°À!Ç&Á&Ò1HØØ—‘ˆAð ð Ÿ]™]Ðà×&Ñ&Ó(ˆ	Ø�9×#Ñ#Ñ# t¨y×/?Ñ/?Ñ'?ð (:Ø×<Ñ<ñ(=ˆDÔ$à1°F×4FÑ4FÑFˆDÔÜ(×8Ñ8ˆD�Ið #'§,¡,¨q¡/ÐØ�v×)Ñ)Ñ)Ø#'�Õ à#&Ð)<Ñ#<�Ô Ø'+×'7Ñ'7ˆDÔ$Ü(×9Ñ9ˆDŒIá 6§;¡;Ô2B×2HÑ2HÒ#HØ×$Ñ$Ð(:¸V×=OÑ=OÑ(OÒOØ×Ò × 2Ñ 2Ñ2Õà'+×'7Ñ'7ˆDÔ$Øˆ�r=   N©F)r3   r4   r5   rH   r<   r=   r>   rQ   rQ   8   s   „ ô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                  | _        |j                  «       }|dk(  r4d|j                  vr%d|j                  vr| xj                  dz  c_        y y y y )NÚ:rT   rU   rX   )ÚsuperrH   r2   r;   rM   r]   r^   rD   )rF   rG   rS   rE   rd   rJ   s        €r>   rH   zImplicitNode.__init__r   sl   ø€ Ü‰Ñ˜  vÔ.Ü$×-Ñ-ˆŒ	à×&Ñ&Ó(ˆ	Ø�3Š;˜4 y×'7Ñ'7Ñ7¸DÈ	×HXÑHXÑ<XØ×Ò Ñ#Öð =YÐ7ˆ;r=   )r3   r4   r5   Ú__doc__rH   Ú__classcell__©rJ   s   @r>   rh   rh   m   s   ø„ ñ÷$ð $r=   rh   c                   ó,   — e Zd Zej                  Zdd„Zy)ÚBackslashNodeNc                 ó^  — |j                  d«      }|�n|j                  d   }d|j                  v rd | _        n]|j                  |j                  k(  r||j                  z   | _        n/d|j                  d   dz   z  | _        n||j                  z   | _        | j                  | _        || _        y )NÚ	expr_stmtéþÿÿÿrW   rX   rV   )Úsearch_ancestorÚchildrenrD   r`   Ú	start_posrC   rE   )rF   rG   rc   Úcontaining_leafÚspacingrE   rr   Úequalss           r>   rH   zBackslashNode.__init__~   sª   € Ø#×3Ñ3°KÓ@ˆ	ØÐ Ø×'Ñ'¨Ñ+ˆFà�v×)Ñ)Ñ)à#'�Õ ð —>‘> W×%6Ñ%6Ò6Ø'9¸F×<NÑ<NÑ'N�DÕ$ð (+¨f¯n©n¸QÑ.?À!Ñ.CÑ'D�DÕ$à1°F×4FÑ4FÑFˆDÔØ#'×#3Ñ#3ˆÔ Øˆ�r=   rB   )r3   r4   r5   r2   r9   rM   rH   r<   r=   r>   rp   rp   {   s   „ Ø×%Ñ%€Dôr=   rp   c                 ór   — | j                   j                  d«      xr | j                   j                  d«      S )NÚ__)ÚvalueÚ
startswithÚendswith)Únames    r>   Ú_is_magic_namer€   ”   s+   € Ø�:‰:× Ñ  Ó&ÒD¨4¯:©:×+>Ñ+>¸tÓ+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                 óR  •— t        ‰| �  |i |¤Ž d | _        d | _        d| _        d| _        d | _        d| _        d| _        d| _	        t        | j                  d¬«      x| _        | _        d| _        d| j                  j                  v rd| _        d| _        y d	| _        d| _        y )
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ˆÔ+ô ˜DŸL™L°bÔ9ð	:ˆÔ Ô :à$)ˆÔ!à�$—,‘,×*Ñ*Ñ*Ø%-ˆDÔ"Ø+/ˆDÕ(à%+ˆDÔ"Ø+.ˆDÕ(r=   c              #   óª   •K  — t         ‰| �  |«      5  | j                  |«      5  d –— d d d «       d d d «       y # 1 sw Y   ŒxY w# 1 sw Y   y xY w­wrB   )rk   Ú
visit_nodeÚ_visit_node)rF   ÚnoderJ   s     €r>   r˜   zPEP8Normalizer.visit_node¯   sA   øè ø€ ä‰WÑ Õ%Ø×!Ñ! $Õ'Û÷ (÷ &Ð%ß'Ð'ú÷ &Ð%üs/   ƒA“A¥;ªA²	A»A	Á AÁAÁAc              #   ó0	  K  — |j                   }|dv r>|j                  «       }t        |«      dkD  �rÛ|d d D ]  }| j                  |dd«       Œ �n¼|dk(  rT|j                  }|j                   dk(  �r›t        d„ |j                  d dd	…   D «       «      �rx| j                  |d
d«       �nc|dk(  rF|j                  D ]5  }|j                   dk(  sŒ|j                  dk(  sŒ#| j                  |dd«       Œ7 �n|dk(  rœ|j                  D ]Œ  }|j                   dvrŒt        |j                  «      d	kD  rŒ+|j                  d   }|j                  d   }|j                   dk(  sŒY|j                   dk(  sŒi|j                  dk(  sŒy| j                  |dd«        ny nw|dk(  rr|j                  d   }	|	j                  «       }
|	j                  }|j                  d«      s6|j                  d«      s%|s|
�|
j                  dvr| j                  |	dd«       |t        v rý|j                  }|j                  }|j                   dk(  rÖ|j                  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$„ |j                  «       D «       «      rŒG|j                   t        v st        |t        «      rŒj| j                  |d%d&«        n Œ© n |t         v }|t"        v }|rd#| _        n£|d'k(  r•| j&                  j                   t(        j*                  k(  r| j&                  j                  | _        t-        | j.                  | j&                  j0                  | j.                  j0                  z   | j&                  ¬(«      | _        n	|rd#| _        d –— |d'k(  rL| j&                  j                   t(        j4                  k(  sJ ‚| j&                  j                  | _        d | _        y |rKd!| _        | j&                  j                   t(        j8                  k(  r| j&                  j                  | _        y y |r"d!| _        |d)v r| j;                  «       | _        y y y ­w)*Nr
   rV   i‘  zMultiple imports on one lineÚlambdefrr   c              3   ó:   K  — | ]  }|j                   d k(  –— Œ y­w)r   N)rM   ©Ú.0rN   s     r>   Ú	<genexpr>z-PEP8Normalizer._visit_node.<locals>.<genexpr>Â   s"   è ø€ ð 5YÙ>W¸ð 67·V±V¸vÕ5EÙ>Wùs   ‚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_inputéÿÿÿÿrT   rU   ¾   ú
rT   rU   i$  zNo newline at end of fileÚsimple_stmtFÚstringTc              3   ó2   K  — | ]  }t        |«      –— Œ y ­wrB   )r€   rž   s     r>   r    z-PEP8Normalizer._visit_node.<locals>.<genexpr>ñ   s   è ø€ Ð#UÑ?T¸!¤N°1×$5Ñ?Tùs   ‚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µ   s3  è ø€ à�i‰iˆà�-ÑØ×*Ñ*Ó,ˆEÜ�5‹z˜A‹~Ø! " 1›I�DØ—N‘N 4¨Ð.LÕMò &à�IÒØŸ™ˆIð �~‰~ Ó,´ñ 5YØ>G×>PÑ>PÐQVÐRTÐUVÐQVÒ>Wó5Yõ 2Yà—‘˜t SÐ*XÖYØ�JÒØŸœ�ð —:‘: Ó*¨u¯{©{¸hÓ/FØ—N‘N 5¨#Ð/bÕcò	 'ð
 �LÒ ØŸœ�Ø—:‘:Ð%;Ñ;ØÜ�u—~‘~Ó&¨Ò*ØØŸ.™.¨Ñ+�Ø—~‘~ aÑ(�Ø—<‘< 9Ó,°·±¸fÓ1DØ ŸJ™J¨&Ó0Ø—N‘N 4¨Ð.WÔXÙñ 'ð �LÒ ØŸ™ bÑ)ˆIØ×.Ñ.Ó0ˆDØ×%Ñ%ˆFØ—O‘O DÔ)°&·/±/À$Ô2GÙ˜d˜l¨d¯j©jÐ@TÑ.TØ—‘˜y¨#Ð/JÔKà”-ÑØŸ+™+ˆKØ ×'Ñ'ˆFØ�{‰{˜lÒ*ØŸ™×-Ñ-¨kÓ:�Ø#Ÿ_™_¨V¨eÓ4�EØ %˜w�HØ—z‘z ]Ò2à#(§>¡>°#°2Ð#6˜à&+�OÛ%˜ØŸ6™6 XÒ-±oØ$Ø*.˜àŸ6™6 [Ò0Ü #Ñ#U¸q×?RÑ?RÔ?TÓ#UÔ UØ$àŸ6™6¤]Ñ2´jÀÄDÔ6IØ$àŸ™ t¨SÐ2ZÔ[Ùð &ð !Ùð/ 5ð2 ),Ô/JÐ(JÐ%ØÔ1Ð1ˆÙØ(,ˆDÕ%Ø�GŠ^Ø×$Ñ$×)Ñ)Ô-=×-GÑ-GÒGØ(,×(=Ñ(=×(DÑ(D�Ô%ä$3Ø—‘Ø×%Ñ%×1Ñ1°D·L±L×4LÑ4LÑLØ×,Ñ,ô%ˆDÕ!ñ
 +Ø26ˆDÔ/ÛØ�'Š>Ø×(Ñ(×-Ñ-Ô1A×1GÑ1GÒGÐGÐGØ$(×$9Ñ$9×$@Ñ$@ˆDÔ!à)-ˆDÕ&Ù*Ø27ˆDÔ/Ø×$Ñ$×)Ñ)Ô-=×-FÑ-FÒFØ(,×(=Ñ(=×(DÑ(D�Õ%ð GáØ(-ˆDÔ%ØÐ-Ñ-Ø-1×-OÑ-OÓ-Q�Õ*ð .ð ùs&   ‚CRÃRÃB RÅRÅ/RÅ?LRc                 óv   — | j                   |j                  v r!| j                  |dd| j                  z   «       yy)Née   zIndentation contains TF)r”   r|   r²   r“   )rF   rx   s     r>   Ú_check_tabs_spacesz!PEP8Normalizer._check_tabs_spaces  s6   € Ø×'Ñ'¨7¯=©=Ñ8Ø�N‰N˜7 CÐ)@À4×CYÑCYÑ)YÔZØØr=   c                 ój   — | j                   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ˆ
Ü�:×$Ñ$¨Ð,Ó-°Ñ1Ð1r=   c                 óž  — t        | j                  | j                  «      | _        | j                  }|�X| j                  dz
  }||kD  r=|j                  dk7  r.|s3|dk(  rdnd}d|›d|›�}| j                  |||«       d | _        nd | _        |�s8| j                  «       }| j                  dz
  }|j                  }	|	dk(  xr |j                  j                  d	k(  xs^ |	d
k(  xs2 |	dk(  xr |j                  «       dk(  xs |	dk(  xr | j                  dk7  xr# |j                  j                  j                  dk7  }
|
r„||k  r|j                  }|j                  }|j                  dk(  r|j                  }|j                  t        |j                  dk(  «         |k7  r$|dk(  rdnd}d|›d|›�}| j                  |||«       d| _        d| _        y )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Ñ/BÓCð 	Ô%ð ×+Ñ+ˆØÐà×-Ñ-°Ñ1ˆKØ˜Ò#¨¯	©	°[Ò(@á!à"(¨A¢+™3°3‘Dâ!¡;ð0�Gà—N‘N 7¨D°'Ô:Ø15�DÕ.à-1�Ô*âØ×7Ñ7Ó9ˆFØ×2Ñ2°QÑ6ˆFà—*‘*ˆCà�s‘
Ò>˜tŸ{™{×/Ñ/°;Ñ>ò =à˜7‘Nò GØ˜g‘~ÒG¨$×*<Ñ*<Ó*>À%Ñ*GòGà˜e‘|ÒF¨×(;Ñ(;¸wÑ(Fò=ð —k‘k×(Ñ(×-Ñ-°Ñ<ð ñ ˜v¨šØ"Ÿk™k�Ø#×*Ñ*�Ø—:‘: Ò,Ø!ŸL™L�Eð —>‘>¤# e§j¡j°GÑ&;Ó"<Ñ=ÀÒLØ"(¨A¢+™3°3‘Dâ!¡6ð+�Gà—N‘N 7¨D°'Ô:à,-ˆDÔ)àˆÕr=   c                 óæ  •— t         ‰| �  |«       |j                  «       D ]4  }|j                  dk(  r n#| j	                  ||j                  «       |«       Œ6 | j                  |«       | j	                  ||«       | j                  | _        |j                  dk(  | _	        |j                  dk(  rB| 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| j!                  ||«       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  s:  ø€ Ü‰Ñ˜4Ô Ø×&Ñ&Ö(ˆDØ�y‰y˜IÒ%áØ×Ñ˜T 4×#;Ñ#;Ó#=¸tÕDð	 )ð 	× Ñ  Ô&Ø×Ñ˜˜t TÔ*ð &*×%:Ñ%:ˆÔ"à"Ÿi™i¨9Ñ4ˆÔð �9‰9˜	Ò!Ø×%Ñ%×*Ñ*Ô.>×.HÑ.HÒHØ$(×$9Ñ$9×$@Ñ$@ˆDÔ!à�:‰:˜Ò §¡×!1Ñ!1Ô5GÑ!GØ(-ˆDÕ%Ø�Z‰Z˜6Ò!Ø(,ˆDÔ%à×"Ò"Ø× Ñ   tÔ,Ø$%ˆDÔ!à"ˆÔà�z‰zÐr=   c                 óx  — |j                   }|j                  }|dk(  ry |dk(  r4|j                  j                  dk(  r| j                  j                  | _        | j                  }|dk(  rÏ|j	                  d«      r%|j                  d«      r˜| j                  |dd«       n„| j                  rOt        j                  d	|«      sb|dk(  s]|j	                  d
«      r|j                  dk(  s=| j                  |dd«       n)t        j                  d|«      s| j                  |dd«       | j                  ||d¬«       n’|dk(  r�| j                  | j                  «       kD  r!| j                  |dd| j                  z  «       n:|dv r6|j                  j                  j                  dk(  r| j                  |dd«       | xj                  dz  c_        |dk(  rÉ|j                  t        j                  k7  �r,|j                  t        j                   k7  r| j                  |dd«       �nú|j"                  }| j$                  r6|j                  t        j                   k(  r|| j&                  j"                  z  }t)        | j&                  |||| j                  ¬«      | _        �n�| j                  �rb|j                   }|j                  t        j                  k(  r4| j*                  j                  dk(  r| j                  j                  | _        | j-                  |«      �s|j"                  }|dk(  rU| j.                  }		 t1        |«      t1        |	j"                  «      kD  rn&|	j"                  }|	| _        |	|k(  rn|	j                  }	ŒH| j2                  ri|dk(  r|�r‹| j                  |dd «       �nv||k7  �rpt1        | j&                  j"                  «      ›d!| j4                  ›�}
| j                  |d"d#|
z   «       �n*|d$v r|j6                  }n|j"                  }| j$                  rI||j9                  «       j"                  | j&                  j"                  z   k(  r| j                  |d%d&«       �n¸||k7  �r²| j-                  |«      �s |j                   d'v�r‘|d$v rG|j                  t        j:                  k(  r| j                  |d(d)«       �n[| j                  |d*d+«       �nFt1        |«      t1        |«      k  r§|j                  t        j:                  k(  r| j                  |d,d-«       nþ|j                  t        j                  k(  r| j                  |d.d/«       nÍ|j                  t        j<                  k(  r| j                  |d0d1«       nœ| j                  |d2d3«       nˆ|j                  t        j:                  k(  r| j                  |d4d5«       nW|j                  t        j<                  k(  r| j                  |d6d1«       n&| j                  |d7d8«       n| j?                  ||«       | jA                  ||«       |r˜|d9v r”|dk7  r�|j                  j                  d:k7  rv|tB        v r3tE        | j&                  || j                  | j$                  ¬;«      | _        nš|j                  t        j<                  k7  sJ ‚| j                  j                  | _        n_|d<v r[| jF                  rO|j                  j                  tH        v r3|j"                  }tK        | j&                  || j                  ¬«      | _        |d=v | _        || _        || _&        y )>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 indentéz   z2Continuation line missing indentation or outdentedé‡   Úxxxéy   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  s7  € Ø—
‘
ˆØ—	‘	ˆØ�LÒ Øà�CŠ<˜DŸK™K×,Ñ,Ð0@Ò@Ø$(×$9Ñ$9×$@Ñ$@ˆDÔ!à×$Ñ$ˆà�IÒØ×Ñ Ô%à—<‘< Ô$Ø—N‘N 4¨Ð.WÕXØ×!Ò!Ü—x‘x ¨Ô/¸ÀºØ!&×!1Ñ!1°$Ô!7¸D¿N¹NÈfÒ<TØ—N‘N 4¨Ð.TÕUä—x‘x ¨UÔ3Ø—N‘N 4¨Ð.UÔVà× Ñ  ¨$¸4Ð Õ@Ø�iÒØ×"Ñ" T×%GÑ%GÓ%IÒIØ—‘˜t SÐ*EÈ×H[ÑH[Ñ*[Õ\ØÐ)Ñ)ØŸ™×*Ñ*×/Ñ/°;Ò>Ø—‘˜t SÐ*VÔWà×Ò 1Ñ$Õà�KÒà�y‰yÔ,×6Ñ6Ó6Ø—9‘9Ô 0× 6Ñ 6Ò6Ø—N‘N 4¨Ð.[Ö\à"&×"2Ñ"2�KØ×0Ò0°T·Y±YÔBR×BXÑBXÒ5XØ# t§|¡|×'?Ñ'?Ñ?˜ä,9ØŸ™Ø#ØØØ#×4Ñ4ô-�DÖ)ð ×ÓØ!Ÿ-™-ˆKØ�y‰yÔ,×6Ñ6Ò6Ø×+Ñ+×0Ñ0°IÒ=Ø(,×(=Ñ(=×(DÑ(D�Ô%à×*Ñ*¨7Õ3Ø(,×(8Ñ(8Ð%Ø˜IÒ%à×2Ñ2�AØÜ˜{Ó+¬c°!·-±-Ó.@Ò@Ø!à01·±Ð-à56˜Ô2Ø š9Ø!ØŸH™H˜ð ð ×&Ò&Ø 	Ò)Ú&Ø ŸN™N¨7°CÐ9NÖOØ$Ð(=Ó=Ü'*¨4¯<©<×+CÑ+CÕ'DÀd×F\ÒF\Ð]˜ØŸ™ t¨SÐ2UÐXYÑ2YÖZà ‘~Ø04×0HÑ0HÑ-à04×0@Ñ0@Ð-Ø×0Ò0°[Ø ×6Ñ6Ó8×DÑDØ"Ÿl™l×6Ñ6ñ7ò67ð Ÿ™ t¨SÐ2_Ö`Ø$Ð(=Ó=Ø#×6Ñ6°wÕ?ÀDÇJÁJØ 4òE5à$¨™~Ø#'§9¡9Ô0@×0QÑ0QÒ#QØ$(§N¡NØ(,Ø(+Ø([ö%&ð %)§N¡NØ(,Ø(+ð)Pö%&ô $' {Ó#3´cÐ:OÓ6PÒ#PØ'+§y¡yÔ4D×4UÑ4UÒ'UØ(,¯©Ø,0Ø,/Ø,`õ)*ð
 *.¯©Ô6F×6PÑ6PÒ)PØ(,¯©Ø,0Ø,/Ø,`õ)*ð
 *.¯©Ô6F×6OÑ6OÒ)OØ(,¯©°t¸SÀ%Õ(Hà(,¯©Ø,0Ø,/Ø,aõ)*ð (,§y¡yÔ4D×4UÑ4UÒ'UØ(,¯©Ø,0Ø,/Ø,_õ)*ð
 *.¯©Ô6F×6OÑ6OÒ)OØ(,¯©°t¸SÀ%Õ(Hà(,¯©Ø,0Ø,/Ø,`õ)*ð ×Ñ  gÔ.à×Ñ  gÔ.ñ �U˜hÑ&¨5°LÒ+@Ø—K‘K×$Ñ$¨Ò4ØÔ)Ñ)Ü(3Ø—L‘L $Ø×0Ñ0Ø(,×(AÑ(Aô)�Õ%ð —y‘yÔ$4×$=Ñ$=Ò=Ð=Ð=Ø(,×(=Ñ(=×(DÑ(D�Õ%Ø�jÑ  T×%HÒ%HØ—K‘K×$Ñ$Ô(CÑCØ×*Ñ*ˆKÜ$0Ø—‘˜d¨4×+@Ñ+@ô%ˆDÔ!ð !Ð$CÐCˆÔà"ˆÔØ!(ˆÕr=   c           	      ó  — |j                   dk(  r|j                  d   dz   }n|j                  d   }|| j                  j                  kD  r¸|j                  d   | j                  j                  k  r‘d}|j                   dk(  rN|j
                  dd  j                  «       }t        |«      dk(  r#|j                  d   t        |d   «      z
  dk  rd}|r/| j                  |dd	|›d
| j                  j                  ›d�«       y y y y )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‰9˜Ò#ØŸ.™.¨Ñ+¨aÑ/‰KàŸ,™, q™/ˆKØ˜Ÿ™×4Ñ4Ò4Ø×%Ñ% aÑ(¨D¯L©L×,GÑ,GÒGð ˆFØ�y‰y˜IÒ%ØŸ:™: a b˜>×/Ñ/Ó1�Ü�x“= AÒ%Ø!Ÿ\™\¨!™_¬s°8¸A±;Ó/?Ñ?À2ÒEØ"�FÙØ—‘ØÙâ  $§,¡,×"=Ó"=ð?õð ð Hð 5r=   c                 óZ  ‡ ‡— ˆ ˆfd„}ˆ ˆfd„}|j                   Š‰ j                  }|�|j                  dk(  s|j                  dk(  ry |j                  }d‰v r‰ j                  |dd«       y |dk(  r7t	        ‰«      ‰ j
                  j                  k  r‰ j                  |dd	«       y y |d
k(  r ||dd«       y t	        ‰«      dkD  r‰ j                  |dd«       y |t        v rd|j                   z  } ||d|«       y |t        v rd|j                   z  } ||d|«       y |dv s!|dk(  r6|j                  j                  t        vrd|j                   z  } ||d|«       y |dk(  r|j                  j                  t        v ry |dv r ||dd«       y |dk(  ry |dv r|j                  j                  t        vs |dv r|j                  j                  t        vry |t        v r|j                  j                  dk(  ry |dk(  r|j                  j                  dk(  ry |t        v s|t        v rÆ|dk(  r|j                  j                  dv s|dk(  rg|j                  j                  dv rO|dk(  r|j                  }n|j                  }|j                  d k(  r|j                  r ||d!d"«       y  ||d#d$«       y |t        v s|t        v r ||d%d&«       y |d'k(  s|d'k(  r ||d(d)«       y d*}	 ||d+|	«       y |d,k(  s|j                  d,k(  r ||d-d.«       y ‰ j                   }
|t"        v rT‰|
j                   k7  rEd/‰ j$                  j&                  vr-d0‰ j$                  j&                  vrd1}‰ j                  |d2|«       ‰r7|t"        vr.|t"        vr%d*}	|t        v rd|j                   z  } ||d3|«       y y y y y )4Nc                  ó(   •— ‰r ‰j                   | Ž S y rB   ©r²   ©r•   rF   r…   s    €€r>   Úadd_if_spacesz4PEP8Normalizer._check_spacing.<locals>.add_if_spaces?  s   ø€ ÙØ%�t—~‘~ tÐ,Ð,ð r=   c                  ó(   •— ‰s ‰j                   | Ž S y 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¸T¿Y¹YÈ,Ò=VØà—	‘	ˆØ�6‰>Ø�N‰N˜7 CÐ)FÕGØ�iÒÜ�6‹{˜TŸ\™\×?Ñ?Ò?Ø—‘˜w¨Ð-XÕYð @à�iÒÙ˜' 3Ð(=Õ>Ü�‹[˜1Š_Ø�N‰N˜7 CÐ)?Õ@àÔ(Ñ(Ø1°D·J±JÑ>�Ù˜g s¨GÕ4ØÔ*Ñ*Ø2°T·Z±ZÑ?�Ù˜g s¨GÕ4Ø˜Ñ# t¨s¢{ØŸ™×(Ñ(Ô0GÑGØ2°T·Z±ZÑ?�Ù˜g s¨GÕ4Ø˜’ §¡×!1Ñ!1Ô5LÑ!LØØ˜Ñ(Ù˜w¨Ð-LÕMØ˜’àØ˜Ñ$¨¯©×)9Ñ)9ÄÑ)PØ˜{Ñ*ØŸ™×(Ñ(´Ñ?àØœ‘ T§[¡[×%5Ñ%5¸Ò%AØØ˜’ §¡×!1Ñ!1°[Ò!@ØØœÑ%¨´Ñ)=Ø˜3’; 4§;¡;×#3Ñ#3Ð7LÑ#LØ 3š;¨4¯;©;×+;Ñ+;Ð?TÑ+TØ˜s’{Ø $§¡™à $§¡˜Ø—z‘z WÒ,°×1AÒ1AÙ& w°Ð5_Õ`á%Ø#ØØQõð
 Ô.Ñ.°$Ô:KÑ2KÙ"ØØØMõð
 ˜S’[ D¨C¢KÙ" 7¨CÐ1\Õ]à"E�KÙ" 7¨C°Õ=Ø˜)Ò# t§y¡y°IÒ'=Ù˜w¨Ð-PÕQà#×5Ñ5�Øœ<Ñ'¨F°l×6HÑ6HÒ,HØ ¨×(;Ñ(;×(BÑ(BÑBØ ¨×(;Ñ(;×(BÑ(BÑBØ^�GØ—N‘N 7¨C°Ô9á˜d¬,Ñ6¸4Ä|Ñ;SØ"E�Kð Ô0Ñ0Ø":¸T¿Z¹ZÑ"G˜Ù% g¨s°GÕ<ð 1ð	 <TÐ6�6r=   c                 ó‚  — |j                   }|dk(  rÊ|j                  dv r¼|j                  «       r«d}|j                  j                   dk(  r0|j                  j                  |k(  r| j                  |d|dz  «       y |j                  j                   dk(  r0|j                  j                  |k(  r| j                  |d|dz  «       y | j                  d	|d
z  |«       y y |j                  dk(  rœt        |j                  t        t        f«      r{|j                  j                   dk7  ra|j                  «       }|j                   dk7  rA|j                  j                   dk(  r| j                  |dd«       y | j                  |dd«       y y y y |j                  dk(  rD|j                  «       j                   dv r| j                  |dd«       y | j                  |dd«       y |j                  dv r¿|j                  }|j                  j                  |«      }|j                  |dz
     }|j                  |dz      }||fD ]l  }	|	j                   dk(  s|	j                   dk(  sŒ"|	j                  dk(  rd}| j                  |d|«        y |	j                  dv sŒWd }| j                  |d!|«        y  y |j                  d"v rm|j                  }|j                   d#k(  rQ|j                  j                   d$k(  r7|j                  d%k(  r| j                  |d&d'«       y | j                  |d(d)«       y y y |d*k(  rpt        |j                  j                  «       dd  «      D ]F  \  }
}t        j                  d+|«      j!                  d,«      }|j"                  |
z   t%        |«      f}| ŒH y |d-k(  r$| j&                  d.k\  r| j                  |d/d0«       y y y )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²   r\   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�  sW  € Ø�i‰iˆØ�&Š=˜TŸZ™Z¨?Ñ:Ø×!Ñ!Ô#ØL�Ø—;‘;×#Ñ# wÒ.°4·;±;×3CÑ3CÀtÒ3KØ—N‘N 4¨¨g¸	Ñ.AÕBØ—[‘[×%Ñ%¨Ò3¸¿¹×8HÑ8HÈDÒ8PØ—N‘N 4¨¨g¸
Ñ.BÕCà—N‘N 3¨°+Ñ(=¸tÕDð $ð �Z‰Z˜3ÒÜ˜$Ÿ+™+¬¬e }Ô5¸$¿+¹+×:JÑ:JÈiÒ:WØ ×.Ñ.Ó0�	Ø—>‘> YÒ.Ø—{‘{×'Ñ'¨9Ò4ØŸ™ y°#Ð7^Õ_àŸ™ y°#Ð7`Õað	 /ð ;XÐ5ð �Z‰Z˜3ÒØ×!Ñ!Ó#×(Ñ(Ð,DÑDØ—‘˜t SÐ*KÕLà—‘˜t SÐ*WÕXØ�Z‰Z˜<Ñ'ØŸ™ˆJØ×'Ñ'×-Ñ-¨dÓ3ˆEØ×&Ñ& u¨q¡yÑ1ˆDØ×'Ñ'¨°©	Ñ2ˆEØ˜e›�Ø—9‘9 	Ò)¨T¯Y©Y¸&Ó-@Ø—z‘z VÒ+Ø"S˜ØŸ™ t¨S°'Ô:ÙØŸ™Ð'8Ò8ð#E˜àŸ™ t¨S°'Ô:Ùñ $ð �Z‰Z˜<Ñ'ØŸ™ˆJØ�‰ ,Ò.°:×3DÑ3D×3IÑ3IÈZÒ3WØ—:‘: Ò%Ø—N‘N 4¨Ð.VÕWà—N‘N 4¨Ð.[Õ\ð	 4XÐ.ð
 �HŠ_ä$ T§Z¡Z×%:Ñ%:Ó%<¸Q¸RÐ%@ÖA‘��4Ü Ÿh™h y°$Ó7×=Ñ=¸aÓ@�Ø ŸI™I¨™M¬3¨{Ó+;Ð;�	âñ	 Bð
 �KÒØ×"Ñ" aÒ'Ø—‘˜t SÐ*EÕFð (ð  r=   c                 ó  •— | j                   �6| j                   j                  d«      �y | j                   j                  dk(  ry |j                  d«      �y |dv rt        ‰| �  |||«       y t        t
        | �  |||«       y )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ØØ×Ñ Ó-Ð9ØØ�:Ñä‰GÑ˜d D¨'Õ2ô ”+˜tÑ.¨t°T¸7ÕCr=   rf   )r3   r4   r5   rH   r   r˜   r™   rÇ   r¹   rÛ   rß   rá   r   rÿ   rã   r²   rm   rn   s   @r>   r‚   r‚   ˜   sq   ø„ ô/ð, óó ðð
 ñcRó ðcRòJò2ó1 ôf òDk)òZò.]=ò~8G÷tDð Dr=   r‚   c                   ó   — e Zd ZeZ	 	 	 dd„Zy)ÚPEP8NormalizerConfigNc                 ó`   — || _         |€|}|| _        d| _        d| _        || _        || _        y )Nr„   F)rD   Úhanging_indentationr_   Úbreak_after_binaryr  r$  )rF   rD   rG  r  r$  s        r>   rH   zPEP8NormalizerConfig.__init__ì  s>   € à&ˆÔØÐ&Ø"-ÐØ#6ˆÔ Ø35ˆÔ0Ø"'ˆÔØ,ˆÔØ%:ˆÕ"r=   )z    NéO   r¡   )r3   r4   r5   r‚   Únormalizer_classrH   r<   r=   r>   rE  rE  ç  s   „ Ø%Ððð AEØ:;ô	;r=   rE  c                   ó   — e Zd ZdZdZd„ Zy)ÚBlankLineAtEndiˆ  r;  c                  ó   — y)NFr<   )rF   rS   s     r>   Úis_issuezBlankLineAtEnd.is_issueþ  s   € Ør=   N)r3   r4   r5   rÕ   rÖ   rN  r<   r=   r>   rL  rL  ú  s   „ Ø€DØ)€Gór=   rL  )$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‚   rE  rL  r<   r=   r>   Ú<module>rV     sá   ðÜ 	Ý %Ý ç >Ý !ß )ð /€ð;Ð à2€Ø!Ð Ø!Ð Ø
€Ø2€Ø-Ð ð!€ˆe�C˜�H‰oó ð
 Ð!Ñ !€Ø<Ð ØCÐ ÷ñ ô�fô ô&2�/ô 2ôj$�;ô $ô�Oô ò2EôL	D�[ô L	Dô^;Ð,ô ;ô&�Tõ r=   