Ë
    —šãjø  ã                   óP   — d Z ddlZddlZddlZddlmZ d„ Zd„ Zd„ Z	d„ Z
d	„ Zd
„ Zy)z2
Tools for converting old- to new-style metadata.
é    Né   )Úread_pkg_infoc                 óÎ   — t        | dd«      rd| j                  z   S g }| j                  D ]  \  }}|j                  ||z   «       Œ |syddj	                  t        |«      «      z  S )zFReturn the version specifier for a requirement in PEP 345/566 fashion.ÚurlNz @ Ú z (%s)ú,)Úgetattrr   ÚspecsÚappendÚjoinÚsorted)ÚrequirementÚrequires_distÚopÚvers       úY/var/www/html/python-recuperauto-other/env/lib/python3.12/site-packages/wheel/metadata.pyÚrequires_to_requires_distr      sl   € äˆ{˜E 4Ô(Ø�{—‘Ñ&Ð&à€MØ×$Ñ$ò '‰ˆˆCØ×Ñ˜R #™XÕ&ð'áØØ�S—X‘Xœf ]Ó3Ó4Ñ4Ð4ó    c              #   óì   K  — | D ]k  }t         j                  j                  |«      }t        |«      }dj	                  t        |j                  «      «      }|rd|z  }|j                  |z   |z   –— Œm y­w)z=Yield Requires-Dist: strings for parsed requirements strings.r   z[%s]N)Úpkg_resourcesÚRequirementÚparser   r   r   ÚextrasÚproject_name)ÚrequirementsÚreqÚparsed_requirementÚspecr   s        r   Úconvert_requirementsr      su   è ø€ àò @ˆÜ*×6Ñ6×<Ñ<¸SÓAÐÜ(Ð);Ó<ˆØ—‘œ&Ð!3×!:Ñ!:Ó;Ó<ˆÙØ˜f‘_ˆFØ!×.Ñ.°Ñ7¸$Ñ>Ó?ñ@ùs   ‚A2A4c              #   ó  K  — | j                  «       D ]u  \  }}d}|xs d}d|v r|j                  dd«      \  }}t        j                  |«      }|rd|f–— |rd|z   dz   }|d|z  z  }|rd|z   }t	        |«      D ]  }d	||z   f–— Œ Œw y
­w)a,  
    Convert requirements from a setup()-style dictionary to ('Requires-Dist', 'requirement')
    and ('Provides-Extra', 'extra') tuples.

    extras_require is a dictionary of {extra: [requirements]} as passed to setup(),
    using the empty extra {'': [requirements]} to hold install_requires.
    r   ú:r   úProvides-Extraú(z) and zextra == '%s'z ; úRequires-DistN)ÚitemsÚsplitr   Ú
safe_extrar   )Úextras_requireÚextraÚdependsÚ	conditionÚnew_reqs        r   Úgenerate_requirementsr-   %   s½   è ø€ ð )×.Ñ.Ó0ò 7‰ˆˆwØˆ	Ø’˜ˆØ�%‰<Ø$Ÿ{™{¨3°Ó2ÑˆE�9ä×(Ñ(¨Ó/ˆÙØ" EÐ)Ò)ÙØ )™O¨hÑ6�	Ø˜¨5Ñ0Ñ0ˆIáØ 	Ñ)ˆIä+¨GÓ4ò 	7ˆGØ! 7¨YÑ#6Ð6Ó6ñ	7ñ!7ùs   ‚B
Bc                 ó&  — t        |«      }|j                  dd«       |d= |d= t        j                  j	                  | d«      }t        j                  j                  |«      r~t        |«      5 }|j                  «       }ddd«       t        t        j                  «      d„ ¬«      }|D ]4  \  }}t        ||i«      D ]  \  }	}
|	|
f|j                  «       vsŒ|
||	<   Œ! Œ6 |d	   }|r|j                  t        |«      «       |d	= |S # 1 sw Y   Œ‰xY w)
zN
    Convert .egg-info directory with PKG-INFO to the Metadata 2.1 format
    zMetadata-Versionz2.1r"   r$   zrequires.txtNc                 ó   — | d   xs dS )Nr   r   © )Úxs    r   ú<lambda>z%pkginfo_to_metadata.<locals>.<lambda>P   s   € °1°Q±4²:¸2€ r   )ÚkeyÚDescription)r   Úreplace_headerÚosÚpathr   ÚexistsÚopenÚreadr   r   Úsplit_sectionsr-   r%   Úset_payloadÚdedent_description)Úegg_info_pathÚpkginfo_pathÚpkg_infoÚrequires_pathÚrequires_fileÚrequiresÚparsed_requirementsr)   Úreqsr3   ÚvalueÚdescriptions               r   Úpkginfo_to_metadatarH   A   s  € ô ˜\Ó*€HØ×ÑÐ.°Ô6àÐ!Ð"Ø�Ð!Ü—G‘G—L‘L °Ó?€MÜ	‡w�w‡~�~�mÔ$Ü�-Ó ð 	, MØ$×)Ñ)Ó+ˆH÷	,ô %¤]×%AÑ%AÀ(Ó%KÙ)=ô?Ðà.ò 	*‰KˆE�4Ü3°U¸D°MÓBò *‘
��UØ˜�< x§~¡~Ó'7Ò7Ø$)�H˜S’Mñ*ð	*ð
 ˜=Ñ)€KÙØ×ÑÔ/°Ó9Ô:Ø�]Ð#à€O÷	,ð 	,ús   Á.DÄDc                 óô   — | |   }|j                  «       }t        |t        «      sR| j                  «       D ]?  }|d   j                  «       |k(  sŒ|d   j	                  dd«      j                  d«      } |S  |S )z<Hack to coax Unicode out of an email Message() - Python 3.3+r   r   ÚasciiÚsurrogateescapezutf-8)ÚlowerÚ
isinstanceÚstrÚ	raw_itemsÚencodeÚdecode)r@   ÚfieldÚtextÚitems       r   Úpkginfo_unicoderU   ^   sz   € à�E‰?€DØ�K‰K‹M€EÜ�dœCÔ Ø×&Ñ&Ó(ò 	ˆDØ�A‰w�}‰}‹ %Ó'Ø˜A‘w—~‘~ gÐ/@ÓAß‘V˜G“_ð àà€Kð	ð €Kr   c           
      óJ  — | d   }d}t        |t        «      sd}t        | d«      }|j                  «       }dj	                  |d   j                  «       t        j                  dj	                  |dd «      «      df«      }|r!|j                  d«      j                  d	d
«      }|S )z@
    Dedent and convert pkg_info['Description'] to Unicode.
    r4   FTú
r   r   NÚutf8rJ   rK   )
rM   rN   rU   Ú
splitlinesr   ÚlstripÚtextwrapÚdedentrP   rQ   )r@   rG   Ú
surrogatesÚdescription_linesÚdescription_dedents        r   r=   r=   l   s±   € ð ˜=Ñ)€Kð €JÜ�k¤3Ô'Øˆ
Ü% h°Ó>ˆà#×.Ñ.Ó0ÐØŸ™ð 
˜1Ñ	×	$Ñ	$Ó	&Ü	�‰˜Ÿ™Ð#4°Q°RÐ#8Ó9Ó	:Ø	ð	óÐñ Ø/ß‰V�F‹^ß‰V�GÐ.Ó/ð 	ð Ðr   )Ú__doc__Úos.pathr6   r[   r   Úpkginfor   r   r   r-   rH   rU   r=   r0   r   r   ú<module>rc      s7   ðñó Û ã å "ò
5ò@ò7ò8ò:ór   