ó
    Ð]j×  ã                   óž   • S SK Jr  S SKJrJrJr   " S S\5      r " S S\S9r " S S	5      r	 " S
 S5      r
 " S S5      r " S S\5      rg)é    )Úcontextmanager)ÚDictÚListÚAnyc                   ó0   • \ rS rSr% \\S'   \\S'   S rSrg)Ú_NormalizerMetaé   Úrule_value_classesÚrule_type_classesc                 óN   • [         R                  XX#5      n0 Ul        0 Ul        U$ ©N)ÚtypeÚ__new__r
   r   )ÚclsÚnameÚbasesÚdctÚnew_clss        ÚM/home/mande/repo/quber/.venv/lib/python3.13/site-packages/parso/normalizer.pyr   Ú_NormalizerMeta.__new__	   s'   € Ü—,‘,˜s¨%Ó5ˆØ%'ˆÔ"Ø$&ˆÔ!Øˆó    © N)Ú__name__Ú
__module__Ú__qualname__Ú__firstlineno__r   Ú__annotations__r   Ú__static_attributes__r   r   r   r   r      s   ‡ ØÓØÓõr   r   c                   ó¶   • \ rS rSr% 0 r\\\\   4   \	S'   0 r
\\\\   4   \	S'   S rS rS rS r\S 5       rS	 rS
 rS rS rS r\SSSSS.S j5       rSrg)Ú
Normalizeré   Ú_rule_type_instancesÚ_rule_value_instancesc                 ó‚   • Xl         X l        / U l        U R                  S5      U l        U R                  S5      U l        g )Nr   r
   )ÚgrammarÚ_configÚissuesÚ_instantiate_rulesr"   r#   )Úselfr%   Úconfigs      r   Ú__init__ÚNormalizer.__init__   s;   € ØŒØŒØˆŒà$(×$;Ñ$;Ð<OÓ$PˆÔ!Ø%)×%<Ñ%<Ð=QÓ%RˆÕ"r   c                 ó  • 0 n[        U 5      R                  5        H`  n[        X10 5      nUR                  5        H=  u  pVU Vs/ s H
  ow" U 5      PM     nnUR	                  U/ 5      R                  U5        M?     Mb     U$ s  snf r   )r   ÚmroÚgetattrÚitemsÚ
setdefaultÚextend)	r)   Úattrr   ÚbaseÚ	rules_mapÚtype_Úrule_classesÚrule_clsÚnews	            r   r(   ÚNormalizer._instantiate_rules   sz   € ØˆÜ˜“J—N‘NÖ$ˆDÜ ¨BÓ/ˆIØ'0§¡Ö'8Ñ#�Ù6BÓC²l¨(�x –~±l�ÐCØ—‘˜u bÓ)×0Ñ0°Ö5ó (9ñ %ð
 ˆ
ùò Ds   ÁBc                 ój   • U R                  U5        U R                  U5      nU R                  5         U$ r   )Ú
initializeÚvisitÚfinalize)r)   ÚnodeÚvalues      r   ÚwalkÚNormalizer.walk%   s*   € Ø�‰˜ÔØ—
‘
˜4Ó ˆØ�‰ŒØˆr   c                 óî   ^ •  UR                   nT R                  U5         SR                  U 4S jU 5       5      sS S S 5        $ ! , (       d  f       g = f! [         a    T R	                  U5      s $ f = f)NÚ c              3   óF   >#   • U  H  nTR                  U5      v •  M     g 7fr   )r=   )Ú.0Úchildr)   s     €r   Ú	<genexpr>Ú#Normalizer.visit.<locals>.<genexpr>2   s   øé € ÐGºh°U˜tŸz™z¨%×0Ð0ºhùs   ƒ!)ÚchildrenÚ
visit_nodeÚjoinÚAttributeErrorÚ
visit_leaf)r)   r?   rJ   s   `  r   r=   ÚNormalizer.visit+   s]   ø€ ð	HØ—}‘}ˆHð —‘ Õ&Ø—w‘wÔG¹hÓGÓG÷ '×&×&ûô ó 	)Ø—?‘? 4Ó(Ò(ð	)ús   ƒA  AÁ
AÁA4Á3A4c              #   ó6   #   • U R                  U5        S v •  g 7fr   )Ú_check_type_rules©r)   r?   s     r   rK   ÚNormalizer.visit_node4   s   é € à×Ñ˜tÔ$Üùs   ‚c                 ó€   • U R                   R                  UR                  / 5       H  nUR                  U5        M     g r   )r"   Úgetr   Ú	feed_node)r)   r?   Úrules      r   rQ   ÚNormalizer._check_type_rules9   s0   € Ø×-Ñ-×1Ñ1°$·)±)¸RÖ@ˆDØ�N‰N˜4Ö ò Ar   c                 óÒ   • U R                  U5        U R                  R                  UR                  / 5       H  nUR	                  U5        M     UR
                  UR                  -   $ r   )rQ   r#   rU   r@   rV   Úprefix)r)   ÚleafrW   s      r   rN   ÚNormalizer.visit_leaf=   sS   € Ø×Ñ˜tÔ$à×.Ñ.×2Ñ2°4·:±:¸rÖBˆDØ�N‰N˜4Ö ñ Cð �{‰{˜TŸZ™ZÑ'Ð'r   c                 ó   • g r   r   rR   s     r   r<   ÚNormalizer.initializeE   ó   € Ør   c                 ó   • g r   r   ©r)   s    r   r>   ÚNormalizer.finalizeH   r_   r   c                 óp   • [        XU5      nX@R                  ;  a  U R                  R                  U5        g)NT)ÚIssuer'   Úappend)r)   r?   ÚcodeÚmessageÚissues        r   Ú	add_issueÚNormalizer.add_issueK   s-   € Ü�d 'Ó*ˆØŸ™Ó#Ø�K‰K×Ñ˜uÔ%Ør   Nr   )r@   Úvaluesr   Útypesc                óÊ   ^ ^^• [        T5      m[        T5      mUb  TR                  U5        Ub  TR                  U5        T(       d  T(       d  [        S5      eU UU4S jnU$ )z¬
Use it as a class decorator::

    normalizer = Normalizer('grammar', 'config')
    @normalizer.register_rule(value='foo')
    class MyRule(Rule):
        error_code = 42
z%You must register at least something.c                 óØ   >• T H.  nTR                   R                  U/ 5      R                  U 5        M0     T H.  nTR                  R                  U/ 5      R                  U 5        M0     U $ r   )r
   r1   re   r   )r8   ÚvÚtr   rl   rk   s      €€€r   Ú	decoratorÚ+Normalizer.register_rule.<locals>.decoratore   s^   ø€ Û�Ø×&Ñ&×1Ñ1°!°RÓ8×?Ñ?ÀÖIñ ã�Ø×%Ñ%×0Ñ0°°BÓ7×>Ñ>¸xÖHñ àˆOr   )Úlistre   Ú
ValueError)r   r@   rk   r   rl   rq   s   ` ` ` r   Úregister_ruleÚNormalizer.register_ruleQ   sY   ú€ ô �f“ˆÜ�U“ˆØÑØ�M‰M˜%Ô ØÑØ�L‰L˜ÔæžeÜÐDÓEÐE÷	ð Ðr   )r&   r"   r#   r%   r'   )r   r   r   r   r"   r   Ústrr   r   r   r#   r+   r(   rA   r=   r   rK   rQ   rN   r<   r>   ri   Úclassmethodru   r   r   r   r   r    r       s’   ‡ Ø24Ð˜$˜s D¨¡J˜Ñ/Ó4Ø35Ð˜4  T¨$¡Z Ñ0Ó5òSòòòHð ñó ðò!ò(òòòð Ø$(°¸$Àbô ó ór   r    )Ú	metaclassc                   ó   • \ rS rSr\rS rSrg)ÚNormalizerConfigéo   c                 ó$   • U R                  X5      $ r   )Únormalizer_class)r)   r%   s     r   Úcreate_normalizerÚ"NormalizerConfig.create_normalizerr   s   € Ø×$Ñ$ WÓ3Ð3r   r   N)r   r   r   r   r    r~   r   r   r   r   r   r{   r{   o   s   † Ø!Ðõ4r   r{   c                   ó2   • \ rS rSrS rS rS rS rS rSr	g)	rd   év   c                 óf   • X l          X0l         UR                  U l         UR                  U l        g r   )rf   rg   Ú	start_posÚend_pos©r)   r?   rf   rg   s       r   r+   ÚIssue.__init__w   s7   € ØŒ	ð	ð Œð	ð Ÿ™ˆŒð	ð —|‘|ˆ�r   c                 ót   • U R                   UR                   :H  =(       a    U R                  UR                  :H  $ r   )r„   rf   ©r)   Úothers     r   Ú__eq__ÚIssue.__eq__‡   s'   € Ø�~‰~ §¡Ñ0×L°T·Y±YÀ%Ç*Á*Ñ5LÐLr   c                 ó.   • U R                  U5      (       + $ r   )r‹   r‰   s     r   Ú__ne__ÚIssue.__ne__Š   s   € Ø—;‘;˜uÓ%Ô%Ð%r   c                 óD   • [        U R                  U R                  45      $ r   )Úhashrf   r„   ra   s    r   Ú__hash__ÚIssue.__hash__�   s   € Ü�T—Y‘Y §¡Ð/Ó0Ð0r   c                 óT   • SU R                   R                  < SU R                  < S3$ )NÚ<z: Ú>)Ú	__class__r   rf   ra   s    r   Ú__repr__ÚIssue.__repr__�   s   � Ø!Ÿ^™^×4Ô4°d·i´iÐ@Ð@r   )rf   r…   rg   r„   N)
r   r   r   r   r+   r‹   rŽ   r’   r˜   r   r   r   r   rd   rd   v   s   † ò$ò Mò&ò1õAr   rd   c                   óR   • \ rS rSr% \\S'   \\S'   S rS rS r	S r
SS	 jrS
 rSrg)ÚRuleé”   rf   rg   c                 ó   • Xl         g r   ©Ú_normalizer)r)   Ú
normalizers     r   r+   ÚRule.__init__˜   s   € Ø%Õr   c                 ó   • [        5       er   )ÚNotImplementedErrorrR   s     r   Úis_issueÚRule.is_issue›   s   € Ü!Ó#Ð#r   c                 ó   • U$ r   r   rR   s     r   Úget_nodeÚRule.get_nodež   s   € Øˆr   c                 ó@   • Uc  U R                   nUc  [        S5      eU$ )Nz$The message on the class is not set.)rg   rt   )r)   rg   r?   s      r   Ú_get_messageÚRule._get_message¡   s&   € Ø‰?Ø—l‘lˆGØ‰Ü Ð!GÓHÐHØˆr   Nc                 ó˜   • Uc  U R                   nUc  [        S5      eU R                  X15      nU R                  R	                  XU5        g )Nz'The error code on the class is not set.)rf   rt   rª   rŸ   ri   r†   s       r   ri   ÚRule.add_issue¨   sG   € Ø‰<Ø—9‘9ˆDØ‰|Ü Ð!JÓKÐKà×#Ñ# GÓ2ˆà×Ñ×"Ñ" 4¨wÕ7r   c                 óv   • U R                  U5      (       a#  U R                  U5      nU R                  U5        g g r   )r¤   r§   ri   )r)   r?   Ú
issue_nodes      r   rV   ÚRule.feed_node²   s0   € Ø�=‰=˜×ÑØŸ™ tÓ,ˆJØ�N‰N˜:Õ&ð r   rž   )NN)r   r   r   r   Úintr   rw   r+   r¤   r§   rª   ri   rV   r   r   r   r   r›   r›   ”   s*   ‡ Ø
ƒIØƒLò&ò$òòô8õ'r   r›   c                   ó:   ^ • \ rS rSrS rU 4S jrU 4S jrSrU =r$ )ÚRefactoringNormalizeré¸   c                 ó   • Xl         g r   ©Ú_node_to_str_map)r)   Únode_to_str_maps     r   r+   ÚRefactoringNormalizer.__init__¹   s   € Ø /Õr   c                 ób   >•  U R                   U   $ ! [         a    [        TU ]  U5      s $ f = fr   )r·   ÚKeyErrorÚsuperr=   )r)   r?   r—   s     €r   r=   ÚRefactoringNormalizer.visit¼   s7   ø€ ð	'Ø×(Ñ(¨Ñ.Ð.øÜó 	'Ü‘7‘= Ó&Ò&ð	'úó   ƒ ’.­.c                 ób   >•  U R                   U   $ ! [         a    [        TU ]  U5      s $ f = fr   )r·   r»   r¼   rN   )r)   r[   r—   s     €r   rN   Ú RefactoringNormalizer.visit_leafÂ   s8   ø€ ð	,Ø×(Ñ(¨Ñ.Ð.øÜó 	,Ü‘7Ñ% dÓ+Ò+ð	,úr¾   r¶   )	r   r   r   r   r+   r=   rN   r   Ú__classcell__)r—   s   @r   r³   r³   ¸   s   ø† ò0õ'÷,ó ,r   r³   N)Ú
contextlibr   Útypingr   r   r   r   r   r    r{   rd   r›   r³   r   r   r   Ú<module>rÄ      sV   ðÝ %ß "Ñ "ô�dô ô\˜?ò \÷~4ñ 4÷Añ A÷<!'ñ !'ôH,˜Jõ ,r   