Ë
    #´˜j¯   ã                   óÆ   — 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   j                  ed   d   «       d„ Z G d„ de«      Zy)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        j                  «       D ]N  \  }}|D ]D  }|\  }}t        |«      }d|›d|›d�–— d|›d|›d|›d�–— d|z  –— d	|z  –— d
|›d|›d�–— ŒF ŒP y ­w)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         ú*lib/python3.12/lib2to3/fixes/fix_urllib.pyÚbuild_patternrL   0   s™   è ø€ Ü‹5€DÜ&Ÿ}™}žÑˆ
�GÛˆFØ"(ÑˆJ˜Ü  Ó)‰Gò $¢Zð1ó 1ò $¢Wªgð7ò 7ðØ"ñ#ò #ðà"ñ#ó #ò
 $¢Wð.ó .ñ! ñ  /ùs   ‚A1A3c                   ó*   — e Zd Zd„ Zd„ Zd„ Zd„ Zd„ Zy)Ú	FixUrllibc                 ó4   — dj                  t        «       «      S )NÚ|)ÚjoinrL   )Úselfs    rK   rL   zFixUrllib.build_patternI   s   € Ø�x‰xœ›Ó(Ð(ó    c                 óR  — |j                  d«      }|j                  }g }t        |j                     dd D ]+  }|j	                  t        |d   |¬«      t        «       g«       Œ- |j                  t        t        |j                     d   d   |¬«      «       |j                  |«       y)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)rR   ÚnodeÚresultsÚ
import_modÚprefÚnamesÚnames          rK   Útransform_importzFixUrllib.transform_importL   s”   € ð
 —[‘[ Ó*ˆ
Ø× Ñ ˆàˆô ˜J×,Ñ,Ñ-¨c¨rÓ2ˆDØ�L‰Lœ$˜t A™w¨tÔ4´e³gÐ>Õ?ð 3à�‰”Tœ' *×"2Ñ"2Ñ3°BÑ7¸Ñ:À4ÔHÔIØ×Ñ˜5Õ!rS   c                 óD  — |j                  d«      }|j                  }|j                  d«      }|ryt        |t        «      r|d   }d}t        |j
                     D ]  }|j
                  |d   v sŒ|d   } n |r|j                  t        ||¬«      «       y| j                  |d«       yg }i }	|d   }
|
D ]Å  }|j                  t        j                  k(  r3|j                  d	   j
                  }|j                  d   j
                  }n|j
                  }d}|d
k7  sŒgt        |j
                     D ]I  }||d   v sŒ|d   |	vr|j                  |d   «       |	j                  |d   g «      j                  |«       ŒK ŒÇ g }t        |«      }d}d„ }|D ]¬  }|	|   }g }|dd D ]3  }|j!                   |||«      «       |j                  t#        «       «       Œ5 |j!                   ||d   |«      «       t%        ||«      }|r%|j&                  j                  j)                  |«      r||_        |j                  |«       d}Œ® |rMg }|dd D ]  }|j!                  |t+        «       g«       Œ |j                  |d   «       |j                  |«       y| j                  |d«       y)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                 ó\  — | j                   t        j                  k(  rxt        | j                  d   j
                  |¬«      | j                  d   j                  «       | j                  d   j                  «       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‘9¤× 3Ñ 3Ò3Ü  §¡¨qÑ!1×!7Ñ!7ÀÔGØ ŸM™M¨!Ñ,×2Ñ2Ó4Ø ŸM™M¨!Ñ,×2Ñ2Ó4ð6�Dô !¤×!4Ñ!4°dÓ;Ð<Ð<Ü˜TŸZ™Z°Ô7Ð8Ð8rS   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   )rR   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Ó&ˆñ ä˜&¤$Ô'Ø ™�ØˆHÜ! *×"2Ñ"2Ô3�Ø—<‘< 6¨!¡9Ò,Ø% a™y�HÙð 4ñ Ø×"Ñ"¤4¨¸Ô#>Õ?à×#Ñ# DÐ*MÕNð
 ˆGØˆHØ˜iÑ(ˆGÛ!�à—;‘;¤$×"5Ñ"5Ò5Ø$Ÿo™o¨aÑ0×6Ñ6�GØ"(§/¡/°!Ñ"4×":Ñ":‘Kà"(§,¡,�KØ"�GØ #Ó%Ü")¨*×*:Ñ*:Ô";˜Ø&¨&°©)Ò3Ø% a™y°Ñ8Ø '§¡¨v°a©yÔ 9Ø$×/Ñ/°°q±	¸2Ó>×EÑEÀfÕMñ	 #<ð "ð ˆIÜ*¨4Ó0ˆKØˆEò9ó "�Ø Ñ'�Ø�Ø  ›9�CØ—L‘L¡¨S°$Ó!7Ô8Ø—L‘L¤£Õ)ð %ð —‘™[¨¨b©°4Ó8Ô9Ü  ¨Ó/�Ù §¡× 2Ñ 2× ;Ñ ;¸KÔ HØ!,�C”JØ× Ñ  Ô%Ø‘ð "ñ Ø�Ø )¨#¨2£�HØ—L‘L (¬G«IÐ!6Õ7ð !/à—‘˜Y r™]Ô+Ø—‘˜UÕ#à×#Ñ# DÐ*KÕLrS   c                 óL  — |j                  d«      }|j                  d«      }d}t        |t        «      r|d   }t        |j                     D ]  }|j                  |d   v sŒ|d   } n |r'|j                  t        ||j                  ¬«      «       y| j                  |d«       y)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   )rR   r^   r_   Ú
module_dotrg   rx   rH   s          rK   Útransform_dotzFixUrllib.transform_dot¨   s    € à—[‘[Ð!1Ó2ˆ
Ø—‘˜XÓ&ˆØˆÜ�fœdÔ#Ø˜A‘YˆFÜ˜j×.Ñ.Ô/ˆFØ�|‰|˜v a™yÒ(Ø! !™9�Ùð 0ñ Ø×Ñœt HØ+5×+<Ñ+<ô >õ ?ð ×Ñ Ð&IÕJrS   c                 ól  — |j                  d«      r| j                  ||«       y |j                  d«      r| j                  ||«       y |j                  d«      r| j                  ||«       y |j                  d«      r| j	                  |d«       y |j                  d«      r| j	                  |d«       y y )NrU   rf   r‡   Úmodule_starzCannot handle star imports.Ú	module_asz#This module is now multiple modules)rY   rd   r…   r‰   rt   )rR   r^   r_   s      rK   Ú	transformzFixUrllib.transform¹   s–   € Ø�;‰;�xÔ Ø×!Ñ! $¨Õ0Ø�[‰[˜Ô&Ø×!Ñ! $¨Õ0Ø�[‰[Ð)Ô*Ø×Ñ˜t WÕ-à�[‰[˜Ô'Ø×Ñ Ð&CÕDØ�[‰[˜Ô%Ø×Ñ Ð&KÕLð &rS   N)Ú__name__Ú
__module__Ú__qualname__rL   rd   r…   r‰   r�   © rS   rK   rN   rN   G   s    „ ò)ò"ò JMòXKó"MrS   rN   N)Ú__doc__Úlib2to3.fixes.fix_importsr   r   Úlib2to3.fixer_utilr   r   r   r   r	   r
   r   rC   r\   rL   rN   r‘   rS   rK   Ú<module>r•      s¶   ðñ÷ =÷>÷ >ñ >ð "òCðDð  ò?ð@ð
  Ø+Ð,ð.ð/ð "ò'ð(ð  Ø Ð-ð/ðñ€ðB ˆ	Ñ × Ñ ˜' (Ñ+¨AÑ.Ô /ò.ô.}M�
õ }MrS   