§
    ZQd¯   ã                   óè   — d Z ddlmZmZ ddlmZmZmZmZm	Z	m
Z
mZ dg d¢fdg d¢fdd	gfgdg d
¢fdddgfgdœZed                              ed         d         ¦  «         d„ Z G d„ de¦  «        ZdS )z¾Fix changes imports of urllib which are now incompatible.
   This is rather similar to fix_imports, but because of the more
   complex nature of the fixing for urllib, it has its own fixer.
é    )Ú
alternatesÚ
FixImports)ÚNameÚCommaÚ
FromImportÚNewlineÚfind_indentationÚNodeÚsymszurllib.request)	Ú	URLopenerÚFancyURLopenerÚurlretrieveÚ
_urlopenerÚurlopenÚ
urlcleanupÚpathname2urlÚurl2pathnameÚ
getproxieszurllib.parse)ÚquoteÚ
quote_plusÚunquoteÚunquote_plusÚ	urlencodeÚ	splitattrÚ	splithostÚ
splitnportÚsplitpasswdÚ	splitportÚ
splitqueryÚsplittagÚ	splittypeÚ	splituserÚ
splitvaluezurllib.errorÚContentTooShortError)r   Úinstall_openerÚbuild_openerÚRequestÚOpenerDirectorÚBaseHandlerÚHTTPDefaultErrorHandlerÚHTTPRedirectHandlerÚHTTPCookieProcessorÚProxyHandlerÚHTTPPasswordMgrÚHTTPPasswordMgrWithDefaultRealmÚAbstractBasicAuthHandlerÚHTTPBasicAuthHandlerÚProxyBasicAuthHandlerÚAbstractDigestAuthHandlerÚHTTPDigestAuthHandlerÚProxyDigestAuthHandlerÚHTTPHandlerÚHTTPSHandlerÚFileHandlerÚ
FTPHandlerÚCacheFTPHandlerÚUnknownHandlerÚURLErrorÚ	HTTPError)ÚurllibÚurllib2r?   r>   é   c            	   #   óú   K  — t          ¦   «         } t                               ¦   «         D ]P\  }}|D ]H}|\  }}t          |¦  «        }d|›d|›d�V — d|›d|›d|›d�V — d|z  V — d	|z  V — d
|›d|›d�V — ŒIŒQd S )Nzimport_name< 'import' (module=zB
                                  | dotted_as_names< any* module=z any* >) >
                  zimport_from< 'from' mod_member=z* 'import'
                       ( member=z | import_as_name< member=z] 'as' any > |
                         import_as_names< members=any*  >) >
                  zIimport_from< 'from' module_star=%r 'import' star='*' >
                  ztimport_name< 'import'
                                  dotted_as_name< module_as=%r 'as' any > >
                  zpower< bare_with_attr=z trailer< '.' member=z > any* >
                  )ÚsetÚMAPPINGÚitemsr   )ÚbareÚ
old_moduleÚchangesÚchangeÚ
new_moduleÚmemberss         ú//usr/lib/python3.11/lib2to3/fixes/fix_urllib.pyÚbuild_patternrL   0   s  è è € Ý‰5Œ5€DÝ&Ÿ}š}™œð .ð .Ñˆ
�GØð 	.ð 	.ˆFØ"(ÑˆJ˜Ý  Ñ)Ô)ˆGˆGð $˜˜ Z Z Zð1ð 1ð 1ð 1ð 1ð $˜˜ W W W¨g¨g¨gð7ð 7ð 7ð 7ðØ"ñ#ð #ð #ð #ðà"ñ#ð #ð #ð #ð #ð
 $˜˜ W W Wð.ð .ð .ð .ð .ð!	.ð.ð .ó    c                   ó,   — e Zd Zd„ Zd„ Zd„ Zd„ Zd„ ZdS )Ú	FixUrllibc                 óD   — d                      t          ¦   «         ¦  «        S )Nú|)ÚjoinrL   )Úselfs    rK   rL   zFixUrllib.build_patternI   s   € Ø�xŠx�™œÑ(Ô(Ð(rM   c                 ó–  — |                      d¦  «        }|j        }g }t          |j                 dd…         D ]:}|                     t          |d         |¬¦  «        t          ¦   «         g¦  «         Œ;|                     t          t          |j                 d         d         |¬¦  «        ¦  «         |                     |¦  «         dS )z‘Transform for the basic import case. Replaces the old
           import name with a comma separated list of its
           replacements.
        ÚmoduleNéÿÿÿÿr   ©Úprefix)	ÚgetrX   rC   ÚvalueÚextendr   r   ÚappendÚreplace)rS   ÚnodeÚresultsÚ
import_modÚprefÚnamesÚnames          rK   Útransform_importzFixUrllib.transform_importL   sÀ   € ð
 —[’[ Ñ*Ô*ˆ
ØÔ ˆàˆõ ˜JÔ,Ô-¨c¨r¨cÔ2ð 	@ð 	@ˆDØ�LŠL�$˜t Aœw¨tÐ4Ñ4Ô4µe±g´gÐ>Ñ?Ô?Ð?Ð?Ø�Š•T�' *Ô"2Ô3°BÔ7¸Ô:À4ÐHÑHÔHÑIÔIÐIØ×Ò˜5Ñ!Ô!Ð!Ð!Ð!rM   c                 óä  — |                      d¦  «        }|j        }|                      d¦  «        }|r�t          |t          ¦  «        r|d         }d}t          |j                 D ]}|j        |d         v r
|d         } nŒ|r&|                     t          ||¬¦  «        ¦  «         dS |                      |d¦  «         dS g }i }	|d         }
|
D ]¾}|j	        t          j        k    r%|j        d	         j        }|j        d         j        }n	|j        }d}|d
k    rst          |j                 D ]`}||d         v rT|d         |	vr|                     |d         ¦  «         |	                     |d         g ¦  «                             |¦  «         ŒaŒ¿g }t          |¦  «        }d}d„ }|D ]Í}|	|         }g }|dd…         D ]B}|                      |||¦  «        ¦  «         |                     t#          ¦   «         ¦  «         ŒC|                      ||d         |¦  «        ¦  «         t%          ||¦  «        }|r|j        j                             |¦  «        r||_        |                     |¦  «         d}ŒÎ|rdg }|dd…         D ]%}|                     |t+          ¦   «         g¦  «         Œ&|                     |d         ¦  «         |                     |¦  «         dS |                      |d¦  «         dS )zšTransform for imports of specific module elements. Replaces
           the module to be imported from with the appropriate new
           module.
        Ú
mod_memberÚmemberr   Nr@   rW   ú!This is an invalid module elementrJ   é   ú,Tc                 óL  — | j         t          j        k    ryt          | j        d         j        |¬¦  «        | j        d                              ¦   «         | j        d                              ¦   «         g}t          t          j        |¦  «        gS t          | j        |¬¦  «        gS )Nr   rW   r@   ri   )Útyper   Úimport_as_namer   ÚchildrenrZ   Úcloner
   )rc   rX   Úkidss      rK   Úhandle_namez/FixUrllib.transform_member.<locals>.handle_nameŒ   s�   € Ø”9¥Ô 3Ò3Ð3Ý  ¤¨qÔ!1Ô!7ÀÐGÑGÔGØ œM¨!Ô,×2Ò2Ñ4Ô4Ø œM¨!Ô,×2Ò2Ñ4Ô4ð6�Dõ !¥Ô!4°dÑ;Ô;Ð<Ð<Ý˜TœZ°Ð7Ñ7Ô7Ð8Ð8rM   rV   FzAll module elements are invalid)rY   rX   Ú
isinstanceÚlistrC   rZ   r]   r   Úcannot_convertrl   r   rm   rn   r\   Ú
setdefaultr	   r[   r   r   ÚparentÚendswithr   )rS   r^   r_   rf   ra   rg   Únew_namerH   ÚmodulesÚmod_dictrJ   Úas_nameÚmember_nameÚ	new_nodesÚindentationÚfirstrq   rU   Úeltsrb   ÚeltÚnewÚnodesÚnew_nodes                           rK   Útransform_memberzFixUrllib.transform_member\   s`  € ð
 —[’[ Ñ.Ô.ˆ
ØÔ ˆØ—’˜XÑ&Ô&ˆð ð @	Må˜&¥$Ñ'Ô'ð #Ø œ�ØˆHÝ! *Ô"2Ô3ð ð �Ø”< 6¨!¤9Ð,Ð,Ø% aœy�HØ�Eð -ð ð OØ×"Ò"¥4¨¸Ð#>Ñ#>Ô#>Ñ?Ô?Ð?Ð?Ð?à×#Ò# DÐ*MÑNÔNÐNÐNÐNð
 ˆGØˆHØ˜iÔ(ˆGØ!ð Nð N�à”;¥$Ô"5Ò5Ð5Ø$œo¨aÔ0Ô6�GØ"(¤/°!Ô"4Ô":�K�Kà"(¤,�KØ"�GØ #Ò%Ð%Ý")¨*Ô*:Ô";ð Nð N˜Ø&¨&°¬)Ð3Ð3Ø% aœy°Ð8Ð8Ø '§¢¨v°a¬yÑ 9Ô 9Ð 9Ø$×/Ò/°°q´	¸2Ñ>Ô>×EÒEÀfÑMÔMÐMøøàˆIÝ*¨4Ñ0Ô0ˆKØˆEð9ð 9ð 9ð "ð ð �Ø Ô'�Ø�Ø   œ9ð *ð *�CØ—L’L  ¨S°$Ñ!7Ô!7Ñ8Ô8Ð8Ø—L’L¥¡¤Ñ)Ô)Ð)Ð)Ø—’˜[˜[¨¨b¬°4Ñ8Ô8Ñ9Ô9Ð9Ý  ¨Ñ/Ô/�Øð - ¤Ô 2× ;Ò ;¸KÑ HÔ Hð -Ø!,�C”JØ× Ò  Ñ%Ô%Ð%Ø��Øð MØ�Ø )¨#¨2¨#¤ð 8ð 8�HØ—L’L (­G©I¬IÐ!6Ñ7Ô7Ð7Ð7Ø—’˜Y rœ]Ñ+Ô+Ð+Ø—’˜UÑ#Ô#Ð#Ð#Ð#à×#Ò# DÐ*KÑLÔLÐLÐLÐLrM   c                 óz  — |                      d¦  «        }|                      d¦  «        }d}t          |t          ¦  «        r|d         }t          |j                 D ]}|j        |d         v r
|d         } nŒ|r+|                     t          ||j        ¬¦  «        ¦  «         dS |                      |d¦  «         dS )z.Transform for calls to module members in code.Úbare_with_attrrg   Nr   r@   rW   rh   )	rY   rr   rs   rC   rZ   r]   r   rX   rt   )rS   r^   r_   Ú
module_dotrg   rx   rH   s          rK   Útransform_dotzFixUrllib.transform_dot¨   så   € à—[’[Ð!1Ñ2Ô2ˆ
Ø—’˜XÑ&Ô&ˆØˆÝ�f�dÑ#Ô#ð 	Ø˜A”YˆFÝ˜jÔ.Ô/ð 	ð 	ˆFØŒ|˜v aœyÐ(Ð(Ø! !œ9�Ø�ð )ð ð 	KØ×Ò�t HØ+5Ô+<ð >ñ  >ô  >ñ ?ô ?ð ?ð ?ð ?ð ×Ò Ð&IÑJÔJÐJÐJÐJrM   c                 óÈ  — |                      d¦  «        r|                      ||¦  «         d S |                      d¦  «        r|                      ||¦  «         d S |                      d¦  «        r|                      ||¦  «         d S |                      d¦  «        r|                      |d¦  «         d S |                      d¦  «        r|                      |d¦  «         d S d S )NrU   rf   r‡   Úmodule_starzCannot handle star imports.Ú	module_asz#This module is now multiple modules)rY   rd   r…   r‰   rt   )rS   r^   r_   s      rK   Ú	transformzFixUrllib.transform¹   s  € Ø�;Š;�xÑ Ô ð 
	MØ×!Ò! $¨Ñ0Ô0Ð0Ð0Ð0Ø�[Š[˜Ñ&Ô&ð 	MØ×!Ò! $¨Ñ0Ô0Ð0Ð0Ð0Ø�[Š[Ð)Ñ*Ô*ð 	MØ×Ò˜t WÑ-Ô-Ð-Ð-Ð-à�[Š[˜Ñ'Ô'ð 	MØ×Ò Ð&CÑDÔDÐDÐDÐDØ�[Š[˜Ñ%Ô%ð 	MØ×Ò Ð&KÑLÔLÐLÐLÐLð	Mð 	MrM   N)Ú__name__Ú
__module__Ú__qualname__rL   rd   r…   r‰   r�   © rM   rK   rO   rO   G   sn   € € € € € ð)ð )ð )ð"ð "ð "ð JMð JMð JMðXKð Kð Kð"Mð Mð Mð Mð MrM   rO   N)Ú__doc__Úlib2to3.fixes.fix_importsr   r   Úlib2to3.fixer_utilr   r   r   r   r	   r
   r   rC   r\   rL   rO   r‘   rM   rK   ú<module>r•      sˆ  ððð ð =Ð <Ð <Ð <Ð <Ð <Ð <Ð <ð>ð >ð >ð >ð >ð >ð >ð >ð >ð >ð >ð >ð >ð >ð >ð >ð >ð >ð "ðCð Cð CðDð  ð?ð ?ð ?ð@ð
  Ø+Ð,ð.ð/ð "ð'ð 'ð 'ð(ð  Ø Ð-ð/ððð €ðB ˆ	Ô × Ò ˜' (Ô+¨AÔ.Ñ /Ô /Ð /ð.ð .ð .ð.}Mð }Mð }Mð }Mð }M�
ñ }Mô }Mð }Mð }Mð }MrM   