§
    
Á³gy›  ã                   óÖ  — d Z ddlmZ ddlZddlmZ ddlZddlZddlZddl	m
Z
mZ ddlmZmZmZ ddlmZ dd	lmZmZ dd
lmZmZ  ej        e¦  «        Z G d„ de
¦  «        Z G d„ de
¦  «        Z G d„ de
¦  «        Z G d„ de
¦  «        Zg d¢ZdZ dZ! ej"        d¦  «        Z# ej"        d¦  «        Z$dZ%dZ&dZ'dZ(dZ)dZ*dZ+e*dz   Z,d Z-d!Z.e,e.z   Z/ e0¦   «         Z1e1 2                    e%¦  «         e1 2                    e&¦  «         e1 2                    e(¦  «         e1 2                    e*¦  «         e1 2                    e,¦  «         e1 2                    e/¦  «          ej"        d"¦  «        Z3d#„ Z4d$„ Z5d%„ e1D ¦   «         Z6d&„ e6 7                    ¦   «         D ¦   «         Z8d'Z9d(Z:d)Z;d*Z<d+Z=d,Z>d-Z? e@¦   «         ZA ej"        d.¦  «        ZBd8d0„ZC G d1„ d2e@¦  «        ZDd3ZEd4ZFd5ZG G d6„ d7e@¦  «        ZHdS )9zzImplementation of the Metadata for Python packages PEPs.

Supports all metadata formats (1.0, 1.1, 1.2, 1.3/2.1 and 2.2).
é    )Úunicode_literalsN)Úmessage_from_fileé   )ÚDistlibExceptionÚ__version__)ÚStringIOÚstring_typesÚ	text_type)Ú	interpret)Úextract_by_keyÚ
get_extras)Ú
get_schemeÚPEP440_VERSION_REc                   ó   — e Zd ZdZdS )ÚMetadataMissingErrorzA required metadata is missingN©Ú__name__Ú
__module__Ú__qualname__Ú__doc__© ó    úZ/var/www/html/mpstechhub/venv/lib/python3.11/site-packages/pip/_vendor/distlib/metadata.pyr   r      s   € € € € € Ø(Ð(Ð(Ð(r   r   c                   ó   — e Zd ZdZdS )ÚMetadataConflictErrorz>Attempt to read or write metadata fields that are conflictual.Nr   r   r   r   r   r       s   € € € € € ØHÐHÐHÐHr   r   c                   ó   — e Zd ZdZdS )Ú MetadataUnrecognizedVersionErrorz Unknown metadata version number.Nr   r   r   r   r   r   $   s   € € € € € Ø*Ð*Ð*Ð*r   r   c                   ó   — e Zd ZdZdS )ÚMetadataInvalidErrorzA metadata value is invalidNr   r   r   r   r   r   (   s   € € € € € Ø%Ð%Ð%Ð%r   r   )ÚMetadataÚPKG_INFO_ENCODINGÚPKG_INFO_PREFERRED_VERSIONúutf-8ú1.1z

       \|ú	
        )úMetadata-VersionÚNameÚVersionÚPlatformÚSummaryÚDescriptionÚKeywordsú	Home-pageÚAuthorúAuthor-emailÚLicense)r&   r'   r(   r)   úSupported-Platformr*   r+   r,   r-   r.   r/   r0   Ú
ClassifierúDownload-URLÚ	ObsoletesÚProvidesÚRequires)r4   r5   r6   r2   r3   )r&   r'   r(   r)   r1   r*   r+   r,   r-   r.   r/   Ú
MaintainerúMaintainer-emailr0   r2   r3   úObsoletes-DistúProject-URLúProvides-DistúRequires-DistúRequires-PythonúRequires-External)r;   r<   r=   r9   r>   r7   r8   r:   )r&   r'   r(   r)   r1   r*   r+   r,   r-   r.   r/   r7   r8   r0   r2   r3   r9   r:   r;   r<   r=   r>   úPrivate-VersionúObsoleted-ByúSetup-Requires-DistÚ	ExtensionúProvides-Extra)r?   rC   r@   rA   rB   )úDescription-Content-Typer6   r5   r4   )rD   )ÚDynamicúLicense-Filez"extra\s*==\s*("([^"]+)"|'([^']+)')c                 ó  — | dk    rt           S | dk    rt          S | dk    rt          S | dv r&t          t          d„ t          D ¦   «         ¦  «        z   S | dk    rt          d¦  «        ‚| dk    rt          S t          | ¦  «        ‚)	Nú1.0r$   ú1.2)ú1.3ú2.1c              3   ó,   K  — | ]}|t           v¯|V — Œd S ©N)Ú_345_FIELDS)Ú.0Úfs     r   ú	<genexpr>z%_version2fieldlist.<locals>.<genexpr>   s,   è è € Ð"RÐ"R¨¸QÅkÐ=QÐ=Q 1Ð=QÐ=QÐ=QÐ=QÐ"RÐ"Rr   ú2.0z+Metadata 2.0 is withdrawn and not supportedú2.2)Ú_241_FIELDSÚ_314_FIELDSrN   ÚtupleÚ_566_FIELDSÚ
ValueErrorÚ_643_FIELDSr   )Úversions    r   Ú_version2fieldlistr[   v   s›   € Ø�%ÒÐÝÐØ	�EÒ	Ð	ÝÐØ	�EÒ	Ð	ÝÐØ	�NÐ	"Ð	"å�UÐ"RÐ"R­kÐ"RÑ"RÔ"RÑRÔRÑRÐRØ	�EÒ	Ð	ÝÐFÑGÔGÐGà	�EÒ	Ð	ÝÐÝ
*¨7Ñ
3Ô
3Ð3r   c                 óÀ  — d„ }g }|                       ¦   «         D ]"\  }}|g ddfv rŒ|                     |¦  «         Œ#g d¢}|D �]w}|t          vr4d|v r0|                     d¦  «         t                               d|¦  «         |t          vr4d|v r0|                     d¦  «         t                               d|¦  «         |t          vr4d	|v r0|                     d	¦  «         t                               d
|¦  «         |t          vr4d|v r0|                     d¦  «         t                               d|¦  «         |t          vr:d|v r6|dk    r0|                     d¦  «         t                               d|¦  «         |t          vr4d|v r0|                     d¦  «         t                               d|¦  «         �Œyt          |¦  «        dk    r|d         S t          |¦  «        dk    r*t                               d| ¦  «         t          d¦  «        ‚d|v o ||t          ¦  «        }d	|v o ||t          ¦  «        }d|v o ||t          ¦  «        }d|v o ||t          ¦  «        }	t!          |¦  «        t!          |¦  «        z   t!          |¦  «        z   t!          |	¦  «        z   dk    rt          d¦  «        ‚|s|s|s|	st"          |v rt"          S |rdS |rd	S |rdS dS )z5Detect the best version depending on the fields used.c                 ó   — |D ]	}|| v r dS Œ
dS )NTFr   )ÚkeysÚmarkersÚmarkers      r   Ú_has_markerz"_best_version.<locals>._has_markerŠ   s+   € Øð 	ð 	ˆFØ˜ˆ~ˆ~Ø�t�tð àˆur   ÚUNKNOWNN)rH   r$   rI   rJ   rK   rS   rH   zRemoved 1.0 due to %sr$   zRemoved 1.1 due to %srI   zRemoved 1.2 due to %srJ   zRemoved 1.3 due to %srK   r+   zRemoved 2.1 due to %srS   zRemoved 2.2 due to %sr   r   z)Out of options - unknown metadata set: %szUnknown metadata setz,You used incompatible 1.1/1.2/2.1/2.2 fields)ÚitemsÚappendrT   ÚremoveÚloggerÚdebugrU   rN   rW   rY   Úlenr   Ú_314_MARKERSÚ_345_MARKERSÚ_566_MARKERSÚ_643_MARKERSÚintr"   )
Úfieldsra   r^   ÚkeyÚvalueÚpossible_versionsÚis_1_1Úis_1_2Úis_2_1Úis_2_2s
             r   Ú_best_versionrv   ˆ   sk  € ðð ð ð €DØ—l’l‘n”nð ð ‰
ˆˆUØ�R˜ DÐ)Ð)Ð)ØØ�Š�CÑÔÐÐàBÐBÐBÐð ð 7ñ 7ˆØ•kÐ!Ð! eÐ/@Ð&@Ð&@Ø×$Ò$ UÑ+Ô+Ð+Ý�LŠLÐ0°#Ñ6Ô6Ð6Ø•kÐ!Ð! eÐ/@Ð&@Ð&@Ø×$Ò$ UÑ+Ô+Ð+Ý�LŠLÐ0°#Ñ6Ô6Ð6Ø•kÐ!Ð! eÐ/@Ð&@Ð&@Ø×$Ò$ UÑ+Ô+Ð+Ý�LŠLÐ0°#Ñ6Ô6Ð6Ø•kÐ!Ð! eÐ/@Ð&@Ð&@Ø×$Ò$ UÑ+Ô+Ð+Ý�LŠLÐ0°#Ñ6Ô6Ð6Ø•kÐ!Ð! eÐ/@Ð&@Ð&@Ø�mÒ#Ð#Ø!×(Ò(¨Ñ/Ô/Ð/Ý—’Ð4°cÑ:Ô:Ð:Ø•kÐ!Ð! eÐ/@Ð&@Ð&@Ø×$Ò$ UÑ+Ô+Ð+Ý�LŠLÐ0°#Ñ6Ô6Ð6ùõ ÐÑÔ Ò"Ð"Ø  Ô#Ð#Ý	ÐÑ	Ô	 1Ò	$Ð	$Ý�ŠÐ@À&ÑIÔIÐIÝ#Ð$:Ñ;Ô;Ð;ð Ð'Ð'ÐK¨K¨K¸½lÑ,KÔ,K€FØÐ'Ð'ÐK¨K¨K¸½lÑ,KÔ,K€FØÐ'Ð'ÐK¨K¨K¸½lÑ,KÔ,K€FàÐ'Ð'ÐK¨K¨K¸½lÑ,KÔ,K€FÝ
ˆ6�{„{•S˜‘[”[Ñ ¥3 v¡;¤;Ñ.µ°V±´Ñ<¸qÒ@Ð@Ý#Ð$RÑSÔSÐSð ð .˜&ð .¨ð .¸ð .å%Ð):Ð:Ð:Ý-Ð-Øð ØˆuØð ØˆuØð Øˆuð ˆ5r   c                 ó`   — i | ]+}|                      ¦   «                              d d¦  «        |“Œ,S )ú-Ú_)ÚlowerÚreplace)rO   Únames     r   ú
<dictcomp>r}   Ø   s?   € ð ð ð Ø-1€D‡J‚J�L„L×Ò˜˜cÑ"Ô" Dðð ð r   c                 ó   — i | ]\  }}||“Œ	S r   r   )rO   ÚattrÚfields      r   r}   r}   Û   s   € ÐBÐBÐB™{˜t Uˆu�dÐBÐBÐBr   )r<   r9   r;   )r=   )r(   )r)   r2   r4   r6   r5   r9   r;   r<   r>   r:   r1   rA   rC   rB   rF   )r:   )r,   )r.   r7   r*   r+   z[^A-Za-z0-9.]+Fc                 ó¨   — |rJt                                d| ¦  «        } t                                d|                     dd¦  «        ¦  «        }| ›d|›�S )zhReturn the distribution name with version.

    If for_filename is true, return a filename-escaped form.rx   ú ú.)Ú	_FILESAFEÚsubr{   )r|   rZ   Úfor_filenames      r   Ú_get_name_and_versionr‡   ð   sT   € ð ð @õ �}Š}˜S $Ñ'Ô'ˆÝ—-’-  W§_¢_°S¸#Ñ%>Ô%>Ñ?Ô?ˆØ�d�d˜G˜GÐ$Ð$r   c                   óÖ   — e Zd ZdZ	 	 d"d„Zd„ Zd„ Zd„ Zd„ Zd	„ Z	d
„ Z
d„ Zd„ Zd„ Zd„ Zd#d„Zd„ Zd„ Zd„ Zd„ Zd#d„Zd#d„Zd$d„Zd„ Zefd„Zd#d„Zd#d„Zd„ Zd„ Zd„ Zd„ Zd „ Z d!„ Z!dS )%ÚLegacyMetadataao  The legacy metadata of a release.

    Supports versions 1.0, 1.1, 1.2, 2.0 and 1.3/2.1 (auto-detected). You can
    instantiate the class with one of these arguments (or none):
    - *path*, the path to a metadata file
    - *fileobj* give a file-like object with metadata as content
    - *mapping* is a dict-like object
    - *scheme* is a version scheme name
    NÚdefaultc                 óR  — |||g                      d ¦  «        dk     rt          d¦  «        ‚i | _        g | _        d | _        || _        |�|                      |¦  «         d S |�|                      |¦  «         d S |�+|                      |¦  «         |  	                    ¦   «          d S d S )Né   ú'path, fileobj and mapping are exclusive)
ÚcountÚ	TypeErrorÚ_fieldsÚrequires_filesÚ_dependenciesÚschemeÚreadÚ	read_fileÚupdateÚset_metadata_version)ÚselfÚpathÚfileobjÚmappingr“   s        r   Ú__init__zLegacyMetadata.__init__	  s¾   € à�'˜7Ð#×)Ò)¨$Ñ/Ô/°!Ò3Ð3ÝÐEÑFÔFÐFØˆŒØ ˆÔØ!ˆÔØˆŒØÐØ�IŠI�d‰OŒOˆOˆOˆOØÐ Ø�NŠN˜7Ñ#Ô#Ð#Ð#Ð#ØÐ Ø�KŠK˜Ñ Ô Ð Ø×%Ò%Ñ'Ô'Ð'Ð'Ð'ð !Ð r   c                 ó>   — t          | j        ¦  «        | j        d<   d S ©Nr&   )rv   r�   ©r˜   s    r   r—   z#LegacyMetadata.set_metadata_version  s   € Ý+8¸¼Ñ+FÔ+FˆŒÐ'Ñ(Ð(Ð(r   c                 ó<   — |                      |›d|›d�¦  «         d S )Nz: ú
)Úwrite)r˜   rš   r|   rp   s       r   Ú_write_fieldzLegacyMetadata._write_field  s'   € Ø�Š D D D¨%¨%¨%Ð0Ñ1Ô1Ð1Ð1Ð1r   c                 ó,   — |                       |¦  «        S rM   )Úget©r˜   r|   s     r   Ú__getitem__zLegacyMetadata.__getitem__  s   € Ø�xŠx˜‰~Œ~Ðr   c                 ó.   — |                       ||¦  «        S rM   )Úset)r˜   r|   rp   s      r   Ú__setitem__zLegacyMetadata.__setitem__"  s   € Ø�xŠx˜˜eÑ$Ô$Ð$r   c                 ó|   — |                       |¦  «        }	 | j        |= d S # t          $ r t          |¦  «        ‚w xY wrM   )Ú_convert_namer�   ÚKeyError)r˜   r|   Ú
field_names      r   Ú__delitem__zLegacyMetadata.__delitem__%  sQ   € Ø×'Ò'¨Ñ-Ô-ˆ
ð	!Ø”˜ZÐ(Ð(Ð(øÝð 	!ð 	!ð 	!Ý˜4‘.”.Ð ð	!øøøs   —! ¡;c                 óL   — || j         v p|                      |¦  «        | j         v S rM   )r�   r¬   r¦   s     r   Ú__contains__zLegacyMetadata.__contains__,  s.   € Ø˜œÐ$ð 9Ø×"Ò" 4Ñ(Ô(¨D¬LÐ8ð	:r   c                 óž   — |t           v r|S |                     dd¦  «                             ¦   «         }t                               ||¦  «        S )Nrx   ry   )Ú_ALL_FIELDSr{   rz   Ú_ATTR2FIELDr¥   r¦   s     r   r¬   zLegacyMetadata._convert_name0  sE   € Ø•;ÐÐØˆKØ�|Š|˜C Ñ%Ô%×+Ò+Ñ-Ô-ˆÝ�Š˜t TÑ*Ô*Ð*r   c                 ó.   — |t           v s	|t          v rg S dS )Nrb   )Ú_LISTFIELDSÚ_ELEMENTSFIELDr¦   s     r   Ú_default_valuezLegacyMetadata._default_value6  s!   € Ø•;ÐÐ $­.Ð"8Ð"8ØˆIØˆyr   c                 ó€   — | j         dv rt                               d|¦  «        S t                               d|¦  «        S )N©rH   r$   r¡   )Úmetadata_versionÚ_LINE_PREFIX_PRE_1_2r…   Ú_LINE_PREFIX_1_2©r˜   rp   s     r   Ú_remove_line_prefixz"LegacyMetadata._remove_line_prefix;  s<   € ØÔ  NÐ2Ð2Ý'×+Ò+¨D°%Ñ8Ô8Ð8å#×'Ò'¨¨eÑ4Ô4Ð4r   c                 óB   — |t           v r| |         S t          |¦  «        ‚rM   )r´   ÚAttributeErrorr¦   s     r   Ú__getattr__zLegacyMetadata.__getattr__A  s%   € Ø•;ÐÐØ˜”:ÐÝ˜TÑ"Ô"Ð"r   Fc                 ó<   — t          | d         | d         |¦  «        S )zhReturn the distribution name with version.

        If filesafe is true, return a filename-escaped form.r'   r(   )r‡   )r˜   Úfilesafes     r   Úget_fullnamezLegacyMetadata.get_fullnameL  s   € õ % T¨&¤\°4¸	´?ÀHÑMÔMÐMr   c                 ó>   — |                       |¦  «        }|t          v S )z+return True if name is a valid metadata key)r¬   r³   r¦   s     r   Úis_fieldzLegacyMetadata.is_fieldR  s    € à×!Ò! $Ñ'Ô'ˆØ•{Ð"Ð"r   c                 ó>   — |                       |¦  «        }|t          v S rM   )r¬   r¶   r¦   s     r   Úis_multi_fieldzLegacyMetadata.is_multi_fieldW  s    € Ø×!Ò! $Ñ'Ô'ˆØ•{Ð"Ð"r   c                 óº   — t          j        |dd¬¦  «        }	 |                      |¦  «         |                     ¦   «          dS # |                     ¦   «          w xY w)z*Read the metadata values from a file path.Úrr#   ©ÚencodingN)ÚcodecsÚopenr•   Úclose)r˜   ÚfilepathÚfps      r   r”   zLegacyMetadata.read[  sR   € åŒ[˜ 3°Ð9Ñ9Ô9ˆð	Ø�NŠN˜2ÑÔÐà�HŠH‰JŒJˆJˆJˆJøˆB�HŠH‰JŒJˆJˆJøøøs   ™A ÁAc                 óŒ  — t          |¦  «        }|d         | j        d<   t          D ]y}||vrŒ|t          v rC|                     |¦  «        }|t
          v r|�d„ |D ¦   «         }|                      ||¦  «         ŒS||         }|�|dk    r|                      ||¦  «         Œz|                     ¦   «         }|r|n| d         | d<   dS )z,Read the metadata values from a file object.zmetadata-versionr&   Nc                 óR   — g | ]$}t          |                     d ¦  «        ¦  «        ‘Œ%S ©ú,)rV   Úsplit©rO   rp   s     r   ú
<listcomp>z,LegacyMetadata.read_file.<locals>.<listcomp>p  s,   € ÐJÐJÐJ¸%�e E§K¢K°Ñ$4Ô$4Ñ5Ô5ÐJÐJÐJr   rb   r+   )r   r�   r³   r¶   Úget_allÚ_LISTTUPLEFIELDSr©   Úget_payload)r˜   ÚfileobÚmsgr€   Úvaluesrp   Úbodys          r   r•   zLegacyMetadata.read_filec  s÷   € å Ñ'Ô'ˆØ+.Ð/AÔ+BˆŒÐ'Ñ(õ !ð 	+ð 	+ˆEØ˜CÐÐØØ�Ð#Ð#àŸš UÑ+Ô+�ØÕ,Ð,Ð,°Ð1CØJÐJÀ6ÐJÑJÔJ�FØ—’˜ Ñ'Ô'Ð'Ð'ð ˜Eœ
�ØÐ$¨°)Ò);Ð);Ø—H’H˜U EÑ*Ô*Ð*øð �ŠÑ Ô ˆØ&*ÐC˜d˜d°°]Ô0Cˆˆ]ÑÐÐr   c                 ó¼   — t          j        |dd¬¦  «        }	 |                      ||¦  «         |                     ¦   «          dS # |                     ¦   «          w xY w)z&Write the metadata fields to filepath.Úwr#   rÌ   N)rÎ   rÏ   Ú
write_filerÐ   )r˜   rÑ   Úskip_unknownrÒ   s       r   r¢   zLegacyMetadata.write  sT   € åŒ[˜ 3°Ð9Ñ9Ô9ˆð	Ø�OŠO˜B Ñ-Ô-Ð-à�HŠH‰JŒJˆJˆJˆJøˆB�HŠH‰JŒJˆJˆJøøøs   ™A ÁAc                 óø  — |                       ¦   «          t          | d         ¦  «        D ]Ï}|                      |¦  «        }|r	|dg dgfv rŒ"|t          v r+|                      ||d                     |¦  «        ¦  «         ŒV|t          vr?|dk    r6| j        dv r|                     dd¦  «        }n|                     dd¦  «        }|g}|t          v rd	„ |D ¦   «         }|D ]}|                      |||¦  «         ŒŒÐd
S )z0Write the PKG-INFO format data to a file object.r&   rb   rÖ   r+   rº   r¡   r%   z	
       |c                 ó8   — g | ]}d                       |¦  «        ‘ŒS rÕ   ©ÚjoinrØ   s     r   rÙ   z-LegacyMetadata.write_file.<locals>.<listcomp>›  s"   € Ð>Ð>Ð>¨e˜#Ÿ(š( 5™/œ/Ð>Ð>Ð>r   N)
r—   r[   r¥   r·   r£   rè   r¶   r»   r{   rÛ   )r˜   Ú
fileobjecträ   r€   rß   rp   s         r   rã   zLegacyMetadata.write_file‡  s;  € à×!Ò!Ñ#Ô#Ð#å'¨Ð-?Ô(@ÑAÔAð 	<ð 	<ˆEØ—X’X˜e‘_”_ˆFØð  ¨9°b¸9¸+Ð*FÐ FÐ FØØ�Ð&Ð&Ø×!Ò! *¨e°S·X²X¸fÑ5EÔ5EÑFÔFÐFØØ�KÐ'Ð'Ø˜MÒ)Ð)ØÔ,°Ð>Ð>Ø!'§¢°°lÑ!CÔ!C˜˜à!'§¢°°lÑ!CÔ!C˜Ø ˜�àÕ(Ð(Ð(Ø>Ð>°vÐ>Ñ>Ô>�àð <ð <�Ø×!Ò! *¨e°UÑ;Ô;Ð;Ð;ð<ð%	<ð 	<r   c                 ó  ‡ — ˆ fd„}|snNt          |d¦  «        r*|                     ¦   «         D ]} ||||         ¦  «         Œn|D ]\  }} |||¦  «         Œ|r&|                     ¦   «         D ]\  }} |||¦  «         ŒdS dS )a…  Set metadata values from the given iterable `other` and kwargs.

        Behavior is like `dict.update`: If `other` has a ``keys`` method,
        they are looped over and ``self[key]`` is assigned ``other[key]``.
        Else, ``other`` is an iterable of ``(key, value)`` iterables.

        Keys that don't match a metadata field or that have an empty value are
        dropped.
        c                 óx   •— | t           v r-|r-‰                     ‰                     | ¦  «        |¦  «         d S d S d S rM   )r´   r©   r¬   )ro   rp   r˜   s     €r   Ú_setz#LegacyMetadata.update.<locals>._setª  sI   ø€ Ø•kÐ!Ð! eÐ!Ø—’˜×+Ò+¨CÑ0Ô0°%Ñ8Ô8Ð8Ð8Ð8ð "Ð!Ð!Ð!r   r^   N)Úhasattrr^   rc   )r˜   ÚotherÚkwargsrì   ÚkÚvs   `     r   r–   zLegacyMetadata.update   sÞ   ø€ ð	9ð 	9ð 	9ð 	9ð 	9ð ð 	àÝ�U˜FÑ#Ô#ð 	Ø—Z’Z‘\”\ð "ð "�Ø��Q˜˜aœÑ!Ô!Ð!Ð!ð"ð ð ð ‘��1Ø��Q˜‘
”
�
�
àð 	ØŸš™œð ð ‘��1Ø��Q˜‘
”
�
�
ð	ð 	ðð r   c                 ó   — |                       |¦  «        }|t          v s|dk    rTt          |t          t          f¦  «        s8t          |t
          ¦  «        r d„ |                     d¦  «        D ¦   «         }nCg }n@|t          v r7t          |t          t          f¦  «        st          |t
          ¦  «        r|g}ng }t           	                    t          j        ¦  «        ró| d         }t          | j        ¦  «        }|t          v rS|�Q|D ]M}|                     |                     d¦  «        d         ¦  «        st                               d|||¦  «         ŒNn{|t"          v r5|�3|                     |¦  «        st                               d	|||¦  «         n=|t&          v r4|�2|                     |¦  «        st                               d	|||¦  «         |t*          v r|d
k    r|                      |¦  «        }|| j        |<   dS )z"Control then set a metadata field.r)   c                 ó6   — g | ]}|                      ¦   «         ‘ŒS r   )Ústrip)rO   rñ   s     r   rÙ   z&LegacyMetadata.set.<locals>.<listcomp>Ã  s    € Ð=Ð=Ð= q˜Ÿš™œÐ=Ð=Ð=r   rÖ   r'   Nú;r   z$'%s': '%s' is not valid (field '%s')z.'%s': '%s' is not a valid version (field '%s')r+   )r¬   r·   Ú
isinstanceÚlistrV   r	   r×   r¶   rf   ÚisEnabledForÚloggingÚWARNINGr   r“   Ú_PREDICATE_FIELDSÚis_valid_matcherÚwarningÚ_VERSIONS_FIELDSÚis_valid_constraint_listÚ_VERSION_FIELDSÚis_valid_versionÚ_UNICODEFIELDSr¿   r�   )r˜   r|   rp   Úproject_namer“   rñ   s         r   r©   zLegacyMetadata.set¼  s"  € à×!Ò! $Ñ'Ô'ˆà•^Ð#Ð# t¨zÒ'9Ð'9Ý˜5¥4­ -Ñ0Ô0ð (:å˜%¥Ñ.Ô.ð Ø=Ð=¨E¯KªK¸Ñ,<Ô,<Ð=Ñ=Ô=��à��Ø•kÐ!Ð!Ý˜U¥T­5 MÑ2Ô2ð "å˜%¥Ñ.Ô.ð Ø˜��à�å×Ò�wœÑ/Ô/ð 	>Ø œ<ˆLå ¤Ñ,Ô,ˆFØÕ(Ð(Ð(¨UÐ->Øð 3ð 3�Aà!×2Ò2°1·7²7¸3±<´<À´?ÑCÔCð 3ÝŸšØBØ(¨!¨Tñ3ô 3ð 3øð3ð Õ)Ð)Ð)¨eÐ.?Ø×6Ò6°uÑ=Ô=ð >Ý—N’NÐ#SØ#/°¸ñ>ô >ð >øà�Ð(Ð(¨UÐ->Ø×.Ò.¨uÑ5Ô5ð >Ý—N’NÐ#SØ#/°¸ñ>ô >ð >ð •>Ð!Ð!Ø�}Ò$Ð$Ø×0Ò0°Ñ7Ô7�à"ˆŒ�TÑÐÐr   c                 ó  — |                       |¦  «        }|| j        vr |t          u r|                      |¦  «        }|S |t          v r| j        |         }|S |t
          v r\| j        |         }|€g S g }|D ]D}|t          vr|                     |¦  «         Œ!|                     |d         |d         f¦  «         ŒE|S |t          v r7| j        |         }t          |t          ¦  «        r|                     d¦  «        S | j        |         S )zGet a metadata field.Nr   r   rÖ   )r¬   r�   Ú_MISSINGr¸   r  r¶   rÛ   rd   r·   rö   r	   r×   )r˜   r|   rŠ   rp   ÚresÚvals         r   r¥   zLegacyMetadata.getè  s$  € à×!Ò! $Ñ'Ô'ˆØ�t”|Ð#Ð#Ø�(Ð"Ð"Ø×-Ò-¨dÑ3Ô3�ØˆNØ•>Ð!Ð!Ø”L Ô&ˆEØˆLØ•[Ð Ð Ø”L Ô&ˆEØˆ}Ø�	ØˆCØð 1ð 1�ØÕ/Ð/Ð/Ø—J’J˜s‘O”O�O�Oð —J’J  A¤¨¨A¬Ð/Ñ0Ô0Ð0Ð0ØˆJà•^Ð#Ð#Ø”L Ô&ˆEÝ˜%¥Ñ.Ô.ð (Ø—{’{ 3Ñ'Ô'Ð'ØŒ|˜DÔ!Ð!r   c                 ó>  ‡— |                       ¦   «          g g }}dD ]}|| vr|                     |¦  «         Œ|r-|g k    r'dd                     |¦  «        z  }t          |¦  «        ‚dD ]}|| vr|                     |¦  «         Œ| d         dk    r||fS t	          | j        ¦  «        Šˆfd„}t          |ft          ‰j        ft          ‰j
        ffD ]H\  }}|D ]@}	|                      |	d¦  «        }
|
�& ||
¦  «        s|                     d	|	›d
|
›�¦  «         ŒAŒI||fS )zkCheck if the metadata is compliant. If strict is True then raise if
        no Name or Version are provided)r'   r(   zmissing required metadata: %sú, )r-   r.   r&   rI   c                 ót   •— | D ]3}‰                      |                     d¦  «        d         ¦  «        s dS Œ4dS )Nrõ   r   FT)rü   r×   )rp   rñ   r“   s     €r   Úare_valid_constraintsz3LegacyMetadata.check.<locals>.are_valid_constraints  sG   ø€ Øð !ð !�Ø×.Ò.¨q¯wªw°s©|¬|¸A¬Ñ?Ô?ð !Ø ˜5˜5ð!à�4r   NzWrong value for 'z': )r—   rd   rè   r   r   r“   rû   rþ   rÿ   r   r  r¥   )r˜   ÚstrictÚmissingÚwarningsr   rÞ   r  rn   Ú
controllerr€   rp   r“   s              @r   ÚcheckzLegacyMetadata.check  s¤  ø€ ð 	×!Ò!Ñ#Ô#Ð#ð  �ˆà'ð 	%ð 	%ˆDØ˜4ÐÐØ—’˜tÑ$Ô$Ð$øàð 	,�g ’m�mØ1°D·I²I¸gÑ4FÔ4FÑFˆCÝ& sÑ+Ô+Ð+à+ð 	%ð 	%ˆDØ˜4ÐÐØ—’˜tÑ$Ô$Ð$øð Ð"Ô# uÒ,Ð,Ø˜HÐ$Ð$å˜DœKÑ(Ô(ˆð	ð 	ð 	ð 	ð 	õ %6Ð7LÐ#MÝ$4Ø$*Ô$Cð$Eå$3Ø$*Ô$;ð$=ð#>ð 	Qð 	QÑˆF�Jð
  ð Qð Q�ØŸš ¨Ñ-Ô-�ØÐ$¨Z¨Z¸Ñ->Ô->Ð$Ø—O’O�OÀ%À%À%ÈÈÐ$OÑPÔPÐPøðQð
 ˜Ð Ð r   c                 óä   — |                       ¦   «          t          | d         ¦  «        }i }|D ]A}|r	|| j        v r4t          |         }|dk    r| |         ||<   Œ,d„ | |         D ¦   «         ||<   ŒB|S )a  Return fields as a dict.

        Field names will be converted to use the underscore-lowercase style
        instead of hyphen-mixed case (i.e. home_page instead of Home-page).
        This is as per https://www.python.org/dev/peps/pep-0566/#id17.
        r&   Úproject_urlc                 ó8   — g | ]}d                       |¦  «        ‘ŒS rÕ   rç   )rO   Úus     r   rÙ   z)LegacyMetadata.todict.<locals>.<listcomp>D  s"   € Ð GÐ GÐ G° §¢¨!¡¤Ð GÐ GÐ Gr   )r—   r[   r�   Ú_FIELD2ATTR)r˜   Úskip_missingrn   Údatar®   ro   s         r   ÚtodictzLegacyMetadata.todict1  s›   € ð 	×!Ò!Ñ#Ô#Ð#å# DÐ);Ô$<Ñ=Ô=ˆàˆà ð 	Hð 	HˆJØð H :°´Ð#=Ð#=Ý! *Ô-�Ø˜-Ò'Ð'Ø $ ZÔ 0�D˜‘I�Ià GÐ G°d¸:Ô6FÐ GÑ GÔ G�D˜‘Iøàˆr   c                 óV   — | d         dk    rdD ]	}|| v r| |= Œ
| dxx         |z  cc<   d S )Nr&   r$   )r4   r6   r5   r<   r   )r˜   Úrequirementsr€   s      r   Úadd_requirementszLegacyMetadata.add_requirementsH  sU   € ØÐ"Ô# uÒ,Ð,à>ð $ð $�Ø˜D�=�=Ø˜U˜øØˆ_ÐÐÔ Ñ-ÐÐÑÐÐr   c                 óF   — t          t          | d         ¦  «        ¦  «        S rž   )r÷   r[   rŸ   s    r   r^   zLegacyMetadata.keysS  s   € ÝÕ& tÐ,>Ô'?Ñ@Ô@ÑAÔAÐAr   c              #   ó@   K  — |                       ¦   «         D ]}|V — Œd S rM   ©r^   )r˜   ro   s     r   Ú__iter__zLegacyMetadata.__iter__V  s2   è è € Ø—9’9‘;”;ð 	ð 	ˆCØˆIˆIˆIˆIð	ð 	r   c                 óD   ‡ — ˆ fd„‰                       ¦   «         D ¦   «         S )Nc                 ó    •— g | ]
}‰|         ‘ŒS r   r   ©rO   ro   r˜   s     €r   rÙ   z)LegacyMetadata.values.<locals>.<listcomp>[  s   ø€ Ð1Ð1Ð1˜c��S”	Ð1Ð1Ð1r   r  rŸ   s   `r   rß   zLegacyMetadata.valuesZ  s%   ø€ Ø1Ð1Ð1Ð1 T§Y¢Y¡[¤[Ð1Ñ1Ô1Ð1r   c                 óD   ‡ — ˆ fd„‰                       ¦   «         D ¦   «         S )Nc                 ó$   •— g | ]}|‰|         f‘ŒS r   r   r"  s     €r   rÙ   z(LegacyMetadata.items.<locals>.<listcomp>^  s"   ø€ Ð8Ð8Ð8 S��d˜3”iÐ Ð8Ð8Ð8r   r  rŸ   s   `r   rc   zLegacyMetadata.items]  s%   ø€ Ø8Ð8Ð8Ð8¨D¯IªI©K¬KÐ8Ñ8Ô8Ð8r   c                 óB   — d| j         j        ›d| j        ›d| j        ›d�S )Nú<r‚   ú>)Ú	__class__r   r|   rZ   rŸ   s    r   Ú__repr__zLegacyMetadata.__repr__`  s-   € € Ø#œ~Ô6Ð6Ð6¸¼	¸	¸	Ø#œ|˜|˜|ð-ð 	-r   ©NNNrŠ   ©FrM   )"r   r   r   r   rœ   r—   r£   r§   rª   r¯   r±   r¬   r¸   r¿   rÂ   rÅ   rÇ   rÉ   r”   r•   r¢   rã   r–   r©   r  r¥   r  r  r  r^   r  rß   rc   r)  r   r   r   r‰   r‰   ý   s  € € € € € ðð ð 9=Ø!ð(ð (ð (ð (ð Gð Gð Gð2ð 2ð 2ðð ð ð%ð %ð %ð!ð !ð !ð:ð :ð :ð+ð +ð +ðð ð ð
5ð 5ð 5ð#ð #ð #ðNð Nð Nð Nð#ð #ð #ð
#ð #ð #ðð ð ðDð Dð Dð8ð ð ð ð<ð <ð <ð <ð2ð ð ð ð8*#ð *#ð *#ðX !)ð "ð "ð "ð "ð:*!ð *!ð *!ð *!ðXð ð ð ð..ð .ð .ðBð Bð Bðð ð ð2ð 2ð 2ð9ð 9ð 9ð-ð -ð -ð -ð -r   r‰   zpydist.jsonzmetadata.jsonÚMETADATAc                   ó^  — e Zd ZdZ ej        d¦  «        Z ej        dej        ¦  «        Z ej        dej        ¦  «        Z	e
Z ej        d¦  «        ZdZdez  Zddd	d
œZdZdZedfed	fed	fed	fe	d	fdœZdZ	 	 d8d„Z ed¦  «        ZdefZdefZdefdefeeedefeeeedefdddœZ[[d„ Zd9d„Zd„ Ze d„ ¦   «         Z!e d„ ¦   «         Z"e"j#        d„ ¦   «         Z"d:d „Z$e d!„ ¦   «         Z%e d"„ ¦   «         Z&e&j#        d#„ ¦   «         Z&d$„ Z'd%„ Z(d&„ Z)d'„ Z*d(d)d*d+d,d-d.d/d0dd1œ
Z+d2„ Z,d;d5„Z-d6„ Z.d7„ Z/dS )<r    zÃ
    The metadata of a release. This implementation uses 2.1
    metadata where possible. If not possible, it wraps a LegacyMetadata
    instance which handles the key-value metadata format.
    z^\d+(\.\d+)*$z!^[0-9A-Z]([0-9A-Z_.-]*[0-9A-Z])?$z^[A-Z]([0-9A-Z-]*[0-9A-Z])?$z	.{1,2047}rR   zdistlib (%s)r   )Úlegacy)r|   rZ   Úsummaryzqname version license summary description author author_email keywords platform home_page classifiers download_urlzwextras run_requires test_requires build_requires dev_requires provides meta_requires obsoleted_by supports_environments)r»   r|   rZ   r/  Údynamic)Ú_legacyÚ_datar“   NrŠ   c                 ól  — |||g                      d ¦  «        dk     rt          d¦  «        ‚d | _        d | _        || _        |�[	 |                      ||¦  «         || _        d S # t          $ r. t          ||¬¦  «        | _        |                      ¦   «          Y d S w xY wd }|r=t          |d¦  «        5 }| 
                    ¦   «         }d d d ¦  «         n# 1 swxY w Y   n|r| 
                    ¦   «         }|€| j        | j        dœ| _        d S t          |t          ¦  «        s|                     d¦  «        }	 t!          j        |¦  «        | _        |                      | j        |¦  «         d S # t$          $ r; t          t'          |¦  «        |¬¦  «        | _        |                      ¦   «          Y d S w xY w)NrŒ   r�   )r›   r“   Úrb©r»   Ú	generatorr#   )rš   r“   )rŽ   r�   r1  r2  r“   Ú_validate_mappingr   r‰   ÚvalidaterÏ   r”   ÚMETADATA_VERSIONÚ	GENERATORrö   r
   ÚdecodeÚjsonÚloadsrX   r   )r˜   r™   rš   r›   r“   r  rP   s          r   rœ   zMetadata.__init__—  s  € à�'˜7Ð#×)Ò)¨$Ñ/Ô/°!Ò3Ð3ÝÐEÑFÔFÐFØˆŒØˆŒ
ØˆŒàÐð Ø×&Ò& w°Ñ7Ô7Ð7Ø$�”
�
�
øÝ3ð  ð  ð  Ý-°gÀfÐMÑMÔM�”Ø—’‘”����ð øøøð ˆDØð &Ý˜$ Ñ%Ô%ð $¨ØŸ6š6™8œ8�Dð$ð $ð $ñ $ô $ð $ð $ð $ð $ð $ð $øøøð $ð $ð $ð $øàð &Ø—|’|‘~”~�Øˆ|ð )-Ô(=Ø!%¤ðð �”
�
�
õ
 " $­	Ñ2Ô2ð 0ØŸ;š; wÑ/Ô/�Dð$Ý!%¤¨DÑ!1Ô!1�D”JØ×*Ò*¨4¬:°vÑ>Ô>Ð>Ð>Ð>øÝ!ð 	$ð 	$ð 	$õ $2½(À4¹.¼.Ø9?ð$Añ $Aô $A�D”Là—M’M‘O”O�O�O�O�Oð	$øøøs7   ÁA# Á#4BÂBÂ2CÃCÃCÄ84E. Å.AF3Æ2F3)r|   rZ   ÚlicenseÚkeywordsr/  r<   rA   rC   r2   )r3   N)r&   N)Úrun_requiresÚbuild_requiresÚdev_requiresÚtest_requiresÚmeta_requiresÚextrasÚmodulesÚ
namespacesÚexportsÚcommandsÚclassifiersÚ
source_urlr»   c                 ó¬  — t                                | d¦  «        }t                                | d¦  «        }||v �r<||         \  }}| j        r.|€|€d n	 |¦   «         }�nt| j                             |¦  «        }�nX|€d n	 |¦   «         }|dvr| j                             ||¦  «        }�n)t          ¦   «         }|}| j                             d¦  «        }	|	rš|dk    r|	                     d|¦  «        }n}|dk    r.|	                     d¦  «        }	|	r|	                     ||¦  «        }nI|	                     d	¦  «        }	|	s| j                             d	¦  «        }	|	r|	                     ||¦  «        }||u r|}n\||vrt                                | |¦  «        }n<| j        r| j                             |¦  «        }n| j                             |¦  «        }|S )
NÚcommon_keysÚmapped_keys©rI  rH  rF  rG  rJ  Ú
extensionsrI  úpython.commandsrJ  úpython.detailsúpython.exports)ÚobjectÚ__getattribute__r1  r¥   r2  )
r˜   ro   ÚcommonÚmappedÚlkÚmakerÚresultrp   ÚsentinelÚds
             r   rU  zMetadata.__getattribute__Û  sô  € Ý×(Ò(¨¨}Ñ=Ô=ˆÝ×(Ò(¨¨}Ñ=Ô=ˆØ�&ˆ=‰=Ø˜sœ‰IˆB�ØŒ|ð 'Ø�:Ø%* ]˜T˜T¸¸¹¼�F‘Fà!œ\×-Ò-¨bÑ1Ô1�F‘Fà % ˜˜°5°5±7´7�Øð .ð .ð .à!œZŸ^š^¨C°Ñ7Ô7�F‘Fõ  &™xœx�HØ%�FØœ
Ÿš |Ñ4Ô4�AØð ;Ø *Ò,Ð,Ø%&§U¢UÐ+<¸eÑ%DÔ%D˜F˜FØ  MÒ1Ð1Ø !§¢Ð&6Ñ 7Ô 7˜AØ ð ;Ø)*¯ª¨s°EÑ):Ô): øà !§¢Ð&6Ñ 7Ô 7˜AØ#$ð EØ$(¤J§N¢NÐ3CÑ$DÔ$D Ø ð ;Ø)*¯ª¨s°EÑ):Ô): Ø Ð)Ð)Ø!&˜øØ˜ÐÐÝ×,Ò,¨T°3Ñ7Ô7ˆFˆFØŒ\ð 	)Ø”\×%Ò% cÑ*Ô*ˆFˆFà”Z—^’^ CÑ(Ô(ˆFØˆr   c                 ó°   — || j         v rH| j         |         \  }}|p| j        |vr/|                     |¦  «        }|st          d|›d|›d�¦  «        ‚d S d S d S )Nú'z' is an invalid value for the 'z
' property)ÚSYNTAX_VALIDATORSr“   Úmatchr   )r˜   ro   rp   r“   ÚpatternÚ
exclusionsÚms          r   Ú_validate_valuezMetadata._validate_value  s”   € Ø�$Ô(Ð(Ð(Ø"&Ô"8¸Ô"=ÑˆG�ZØÐ%˜$œ+¨jÐ8Ð8Ø—M’M %Ñ(Ô(�Øð JÝ.Ð.ØFKÀeÀeØDGÀCÀCð0Iñ Jô Jð Jð )Ð(à8Ð8ðJð Jr   c                 óò  — |                       ||¦  «         t                               | d¦  «        }t                               | d¦  «        }||v rŸ||         \  }}| j        r|€t          ‚|| j        |<   d S |dvr|| j        |<   d S | j                             di ¦  «        }|dk    r||d<   d S |dk    r|                     di ¦  «        }|||<   d S |                     d	i ¦  «        }|||<   d S ||vrt                               | ||¦  «         d S |d
k    rBt          |t          ¦  «        r-| 
                    ¦   «         }|r|                     ¦   «         }ng }| j        r|| j        |<   d S || j        |<   d S )NrM  rN  rO  rP  rI  rQ  rJ  rR  rS  r?  )rd  rT  rU  r1  ÚNotImplementedErrorr2  Ú
setdefaultÚ__setattr__rö   r	   rô   r×   )r˜   ro   rp   rV  rW  rX  ry   r\  s           r   rh  zMetadata.__setattr__  s¼  € Ø×Ò˜S %Ñ(Ô(Ð(Ý×(Ò(¨¨}Ñ=Ô=ˆÝ×(Ò(¨¨}Ñ=Ô=ˆØ�&ˆ=ˆ=Ø˜3”K‰EˆB�ØŒ|ð #Ø�:Ý-Ð-Ø#(�”˜RÑ Ð Ð Øð ,ð ,ð ,à"'�”
˜3‘��ð ”J×)Ò)¨,¸Ñ;Ô;�Ø˜*Ò$Ð$Ø+0�AÐ'Ñ(Ð(Ð(Ø˜MÒ)Ð)ØŸšÐ%5°rÑ:Ô:�AØ"�A�c‘F�F�FàŸšÐ%5°rÑ:Ô:�AØ"�A�c‘F�F�FØ˜ÐÐÝ×Ò˜t S¨%Ñ0Ô0Ð0Ð0Ð0à�jÒ Ð Ý˜e¥\Ñ2Ô2ð #Ø!ŸKšK™MœM�EØð #Ø %§¢¡¤˜˜à "˜ØŒ|ð (Ø$)�”˜SÑ!Ð!Ð!à"'�”
˜3‘��r   c                 ó8   — t          | j        | j        d¦  «        S ©NT)r‡   r|   rZ   rŸ   s    r   Úname_and_versionzMetadata.name_and_version7  s   € å$ T¤Y°´¸dÑCÔCÐCr   c                 ó¼   — | j         r| j         d         }n| j                             dg ¦  «        }| j        ›d| j        ›d�}||vr|                     |¦  «         |S )Nr;   Úprovidesú (ú))r1  r2  rg  r|   rZ   rd   )r˜   rZ  Úss      r   rm  zMetadata.provides;  sg   € àŒ<ð 	;Ø”\ /Ô2ˆFˆFà”Z×*Ò*¨:°rÑ:Ô:ˆFØœ˜˜ D¤L L LÐ1ˆØ�Fˆ?ˆ?Ø�MŠM˜!ÑÔÐØˆr   c                 ó@   — | j         r|| j         d<   d S || j        d<   d S )Nr;   rm  )r1  r2  r¾   s     r   rm  zMetadata.providesF  s0   € àŒ<ð 	+Ø,1ˆDŒL˜Ñ)Ð)Ð)à%*ˆDŒJ�zÑ"Ð"Ð"r   c                 ó  — | j         r|}nùg }t          |pg | j        ¦  «        }|D ]q}d|vrd|vrd}nGd|vrd}n|                     d¦  «        |v }|r'|                     d¦  «        }|rt	          ||¦  «        }|r|                     |d         ¦  «         ŒrdD ]i}d|z  }	|	|v r^|                     |	¦  «         | j                             d|z  g ¦  «        }|                     |                      |||¬¦  «        ¦  «         Œj|S )	a‹  
        Base method to get dependencies, given a set of extras
        to satisfy and an optional environment context.
        :param reqts: A list of sometimes-wanted dependencies,
                      perhaps dependent on extras and environment.
        :param extras: A list of optional components being requested.
        :param env: An optional environment for marker evaluation.
        ÚextraÚenvironmentTÚrequires)ÚbuildÚdevÚtestz:%s:z%s_requires)rE  Úenv)	r1  r   rE  r¥   r   Úextendre   r2  Úget_requirements)
r˜   ÚreqtsrE  ry  rZ  r\  Úincluder`   ro   Úes
             r   r{  zMetadata.get_requirementsM  s`  € ð Œ<ð 	BØˆFˆFàˆFÝ  ¨"¨d¬kÑ:Ô:ˆFØð 1ð 1�Ø !Ð#Ð#¨¸QÐ(>Ð(>à"�G�Gà aÐ'Ð'à"&˜˜à"#§%¢%¨¡.¤.°FÐ":˜Øð =à!"§¢ }Ñ!5Ô!5˜Ø!ð =Ý&/°¸Ñ&<Ô&<˜GØð 1Ø—M’M ! J¤-Ñ0Ô0Ð0øØ/ð Bð B�Ø˜S‘L�Ø˜�;�;Ø—M’M !Ñ$Ô$Ð$ð !œJŸNšN¨=¸3Ñ+>ÀÑCÔC�EØ—M’M $×"7Ò"7¸ÀfØ<?ð #8ñ #Aô #Añ Bô Bð Bøàˆr   c                 óF   — | j         r|                      ¦   «         S | j        S rM   )r1  Ú_from_legacyr2  rŸ   s    r   Ú
dictionaryzMetadata.dictionaryw  s&   € àŒ<ð 	'Ø×$Ò$Ñ&Ô&Ð&ØŒzÐr   c                 óR   — | j         rt          ‚t          | j        | j        ¦  «        S rM   )r1  rf  r   r2  ÚDEPENDENCY_KEYSrŸ   s    r   ÚdependencieszMetadata.dependencies}  s(   € àŒ<ð 	DÝ%Ð%å! $¤*¨dÔ.BÑCÔCÐCr   c                 óV   — | j         rt          ‚| j                             |¦  «         d S rM   )r1  rf  r2  r–   r¾   s     r   r„  zMetadata.dependencies„  s.   € àŒ<ð 	%Ý%Ð%àŒJ×Ò˜eÑ$Ô$Ð$Ð$Ð$r   c                 óŽ  — |                      d¦  «        | j        k    rt          ¦   «         ‚g }| j                             ¦   «         D ]"\  }}||vr||vr|                     |¦  «         Œ#|r'dd                     |¦  «        z  }t          |¦  «        ‚|                     ¦   «         D ]\  }}|                      |||¦  «         Œd S )Nr»   zMissing metadata items: %sr	  )	r¥   r9  r   ÚMANDATORY_KEYSrc   rd   rè   r   rd  )	r˜   r›   r“   r  ro   rb  rÞ   rð   rñ   s	            r   r7  zMetadata._validate_mapping‹  så   € Ø�;Š;Ð)Ñ*Ô*¨dÔ.CÒCÐCÝ2Ñ4Ô4Ð4ØˆØ#Ô2×8Ò8Ñ:Ô:ð 	(ð 	(‰OˆC�Ø˜'Ð!Ð!Ø Ð+Ð+Ø—N’N 3Ñ'Ô'Ð'øØð 	,Ø.°·²¸7Ñ1CÔ1CÑCˆCÝ& sÑ+Ô+Ð+Ø—M’M‘O”Oð 	/ð 	/‰DˆAˆqØ× Ò   A vÑ.Ô.Ð.Ð.ð	/ð 	/r   c                 óÖ   — | j         rA| j                              d¦  «        \  }}|s|rt                               d||¦  «         d S d S |                      | j        | j        ¦  «         d S )NTz#Metadata: missing: %s, warnings: %s)r1  r  rf   rý   r7  r2  r“   )r˜   r  r  s      r   r8  zMetadata.validate™  s‰   € ØŒ<ð 	<Ø $¤× 2Ò 2°4Ñ 8Ô 8ÑˆG�XØð 2˜(ð 2Ý—’ÐDØ&¨ñ2ô 2ð 2ð 2ð 2ð2ð 2ð ×"Ò" 4¤:¨t¬{Ñ;Ô;Ð;Ð;Ð;r   c                 ó|   — | j         r| j                              d¦  «        S t          | j        | j        ¦  «        }|S rj  )r1  r  r   r2  Ú
INDEX_KEYS)r˜   rZ  s     r   r  zMetadata.todict¢  s:   € ØŒ<ð 	Ø”<×&Ò& tÑ,Ô,Ð,å# D¤J°´Ñ@Ô@ˆFØˆMr   c                 ób  — | j         r| j        rJ ‚| j        | j        dœ}| j                              d¦  «        }dD ]}||v r|dk    rd}n|}||         ||<   Œ|                     dg ¦  «        }|dgk    rg }||d<   d	}|D ]\  }}||v r||         rd
||         ig||<   Œ | j        |d<   i }i }	|S )Nr5  T)r|   rZ   r>  r/  ÚdescriptionÚ
classifierr�  rJ  r,   Ú r?  ))Úrequires_distr@  )Úsetup_requires_distrA  ru  rm  )r1  r2  r9  r:  r  r¥   rm  )
r˜   rZ  Úlmdrð   ÚnkÚkwr^   ÚokÚauthorÚ
maintainers
             r   r€  zMetadata._from_legacy©  s  € ØŒ|Ð. D¤JÐ.Ð.Ð.à $Ô 5Øœð
ð 
ˆð Œl×!Ò! $Ñ'Ô'ˆð ð 	$ð 	$ˆAà�CˆxˆxØ˜Ò$Ð$Ø&�B�Bà�BØ  œV��r‘
øØ�WŠW�Z Ñ$Ô$ˆØ�"�Š:ˆ:ØˆBØˆˆzÑð;ˆàð 	5ð 	5‰FˆB�Ø�Sˆyˆy˜S œWˆyØ)¨3¨r¬7Ð3Ð4��r‘
øØ!œ]ˆˆzÑØˆØˆ
Øˆr   r'   r(   r0   r*   r+   r-   r.   r/   r3   )
r|   rZ   )rP  rR  r>  r/  rŒ  )rP  úpython.projectÚproject_urlsÚHome)rP  r—  Úcontactsr   r|   )rP  r—  rš  r   ÚemailrK  )rP  rR  rJ  c                 ó(  — d„ }| j         r| j        rJ ‚t          ¦   «         }| j         }| j                             ¦   «         D ]]\  }}t          |t          ¦  «        s||v r||         ||<   Œ*|}d}|D ]%}	 ||         }Œ# t          t          f$ r d}Y  nw xY w|r|||<   Œ^ || j	        | j
        z   ¦  «        }	 || j        | j        z   ¦  «        }
| j        rt          | j        ¦  «        |d<   t          |	¦  «        |d<   t          |
¦  «        |d<   |S )Nc                 óR  — t          ¦   «         }| D ]•}|                     d¦  «        }|                     d¦  «        }|d         }|D ]^}|s|s|                     |¦  «         Œd}|rd|z  }|r|r	d|›d|›�}n|}|                     d                     ||f¦  «        ¦  «         Œ_Œ–|S )	Nrs  rt  ru  rŽ  zextra == "%s"ú(z) and rõ   )r©   r¥   Úaddrè   )Úentriesr|  r~  rs  ry  ÚrlistrË   r`   s           r   Úprocess_entriesz,Metadata._to_legacy.<locals>.process_entriesÔ  sæ   € Ý‘E”EˆEØð 9ð 9�ØŸš˜g™œ�Ø—e’e˜MÑ*Ô*�Ø˜*œ�Øð 9ð 9�AØð 9 uð 9ØŸ	š	 !™œ˜˜à!#˜Ø ð =Ø%4°uÑ%<˜FØð -Ø%ð -ð -Ø:=¸#¸#¸v¸vÐ)F  à), ØŸ	š	 #§(¢(¨A¨v¨;Ñ"7Ô"7Ñ8Ô8Ð8Ð8ð9ð ˆLr   TFrC   r<   rA   )r2  r1  r‰   ÚLEGACY_MAPPINGrc   rö   rV   r­   Ú
IndexErrorr@  rD  rA  rB  rE  Úsorted)r˜   r¢  rZ  Únmdr’  r”  r\  Úfoundrð   Úr1Úr2s              r   Ú
_to_legacyzMetadata._to_legacyÓ  sg  € ð	ð 	ð 	ð* ŒzÐ. $¤,Ð.Ð.Ð.ÝÑ!Ô!ˆØŒjˆàÔ)×/Ò/Ñ1Ô1ð 	#ð 	#‰FˆB�Ý˜b¥%Ñ(Ô(ð #Ø˜�9�9Ø!$ R¤�F˜2‘Jøà�Ø�Øð ð �AðØ˜aœD˜˜øÝ$¥jÐ1ð ð ð Ø %˜Ø˜˜ðøøøð ð #Ø!"�F˜2‘JøØˆ_˜TÔ.°Ô1CÑCÑDÔDˆØˆ_˜TÔ0°4Ô3DÑDÑEÔEˆØŒ;ð 	;Ý'-¨d¬kÑ':Ô':ˆFÐ#Ñ$Ý"(¨¡*¤*ˆˆÑÝ(.¨r©
¬
ˆÐ$Ñ%àˆs   Á5A>Á>BÂBFTc                 óD  — ||g                      d ¦  «        dk    rt          d¦  «        ‚|                      ¦   «          |rW| j        r| j        }n|                      ¦   «         }|r|                     ||¬¦  «         d S |                     ||¬¦  «         d S | j        r|                      ¦   «         }n| j        }|rt          j
        ||ddd¬¦  «         d S t          j        |dd¦  «        5 }t          j
        ||ddd¬¦  «         d d d ¦  «         d S # 1 swxY w Y   d S )	Nr   z)Exactly one of path and fileobj is needed)rä   TrŒ   )Úensure_asciiÚindentÚ	sort_keysrâ   r#   )rŽ   rX   r8  r1  rª  r¢   rã   r€  r2  r<  ÚdumprÎ   rÏ   )r˜   r™   rš   r.  rä   Ú	legacy_mdr\  rP   s           r   r¢   zMetadata.write  sž  € Ø�'ˆ?× Ò  Ñ&Ô&¨!Ò+Ð+ÝÐHÑIÔIÐIØ�Š‰ŒˆØð 	.ØŒ|ð .Ø œL�	�	à ŸOšOÑ-Ô-�	Øð IØ—’ °<�Ñ@Ô@Ð@Ð@Ð@à×$Ò$ W¸<Ð$ÑHÔHÐHÐHÐHàŒ|ð Ø×%Ò%Ñ'Ô'��à”J�Øð .Ý”	˜!˜W°4ÀØ$(ð*ñ *ô *ð *ð *ð *õ ”[  s¨GÑ4Ô4ð .¸Ý”I˜a °¸aØ(,ð.ñ .ô .ð .ð.ð .ð .ñ .ô .ð .ð .ð .ð .ð .ð .ð .øøøð .ð .ð .ð .ð .ð .s   Ã.DÄDÄDc                 óR  — | j         r| j                              |¦  «         d S | j                             dg ¦  «        }d }|D ]}d|vrd|vr|} nŒ|€d|i}|                     d|¦  «         d S t          |d         ¦  «        t          |¦  «        z  }t          |¦  «        |d<   d S )Nr@  rt  rs  ru  r   )r1  r  r2  rg  Úinsertr©   r¥  )r˜   r  r@  ÚalwaysÚentryÚrsets         r   r  zMetadata.add_requirements  sÓ   € ØŒ<ð 	2ØŒL×)Ò)¨,Ñ7Ô7Ð7Ð7Ð7àœ:×0Ò0°ÀÑDÔDˆLØˆFØ%ð ð �Ø ¨Ð-Ð-°'ÀÐ2FÐ2FØ"�FØ�EøØˆ~Ø% |Ð5�Ø×#Ò# A vÑ.Ô.Ð.Ð.Ð.å˜6 *Ô-Ñ.Ô.µ°\Ñ1BÔ1BÑB�Ý%+¨D¡\¤\��zÑ"Ð"Ð"r   c           	      ób   — | j         pd}| j        pd}d| j        j        ›d| j        ›d|›d|›d�	S )Nz	(no name)z
no versionr&  r‚   rn  z)>)r|   rZ   r(  r   r»   )r˜   r|   rZ   s      r   r)  zMetadata.__repr__0  sN   € ØŒyÐ'˜KˆØ”,Ð. ,ˆˆØ$(¤NÔ$;Ð$;Ð$;Ø$(Ô$9Ð$9Ð$9¸4¸4¸4ÀÀÀðJð 	Jr   r*  rM   )NN)NNFT)0r   r   r   r   ÚreÚcompileÚMETADATA_VERSION_MATCHERÚIÚNAME_MATCHERÚFIELDNAME_MATCHERr   ÚVERSION_MATCHERÚSUMMARY_MATCHERr9  r   r:  r‡  rŠ  rƒ  r_  Ú	__slots__rœ   r©   rM  r÷   Ú	none_listÚdictÚ	none_dictrN  rU  rd  rh  Úpropertyrk  rm  Úsetterr{  r�  r„  r7  r8  r  r€  r£  rª  r¢   r  r)  r   r   r   r    r    j  s"  € € € € € ðð ð  *˜rœzÐ*:Ñ;Ô;Ðà�2”:ÐAÀ2Ä4ÑHÔH€Là"˜œ
Ð#AÀ2Ä4ÑHÔHÐà'€Oà �b”j Ñ-Ô-€OàÐà Ñ,€Ið ØØðð €Nð!€Jð/€Oð
 6°rÐ:Ø˜{Ð+Ø# [Ð1Ø# [Ð1Ø% {Ð3ðð Ðð /€Ià8<Ø!ð+$ð +$ð +$ð +$ðZ �#ÐKÑLÔL€Kà�t�€IØ�t�€Ið )¨$Ð/Ø0°$Ð7Ø!Ø"Ø"Ø# TÐ*ØØØØØ$ dÐ+Ø,Ø6ðð €Kð  	�9ð)ð )ð )ðVJð Jð Jð Jð%(ð %(ð %(ðN ðDð Dñ „XðDð ðð ñ „Xðð „_ð+ð +ñ „_ð+ð(ð (ð (ð (ðT ðð ñ „Xðð
 ðDð Dñ „XðDð Ôð%ð %ñ Ôð%ð/ð /ð /ð<ð <ð <ðð ð ðð ð ð< ØØ5>ØØ$ØBMØAIØBPØ$Ø9Eðð €Nð0ð 0ð 0ðd.ð .ð .ð .ð42ð 2ð 2ð"Jð Jð Jð Jð Jr   r    r+  )Ir   Ú
__future__r   rÎ   r›  r   r<  rù   r·  rŽ  r   r   Úcompatr   r	   r
   r_   r   Úutilr   r   rZ   r   r   Ú	getLoggerr   rf   r   r   r   r   Ú__all__r!   r"   r¸  r½   r¼   rT   rU   ri   rN   rj   Ú_426_FIELDSÚ_426_MARKERSrW   rk   rl   rY   r©   r³   r–   ÚEXTRA_REr[   rv   r´   rc   r  rû   rþ   r   r¶   rÛ   r·   r  rT  r  r„   r‡   r‰   ÚMETADATA_FILENAMEÚWHEEL_METADATA_FILENAMEÚLEGACY_METADATA_FILENAMEr    r   r   r   ú<module>rÐ     s  ððð ð (Ð 'Ð 'Ð 'Ð 'Ð 'à €€€Ø #Ð #Ð #Ð #Ð #Ð #Ø €€€Ø €€€Ø 	€	€	€	ð ,Ð +Ð +Ð +Ð +Ð +Ð +Ð +Ø 5Ð 5Ð 5Ð 5Ð 5Ð 5Ð 5Ð 5Ð 5Ð 5Ø Ð Ð Ð Ð Ð Ø ,Ð ,Ð ,Ð ,Ð ,Ð ,Ð ,Ð ,Ø 2Ð 2Ð 2Ð 2Ð 2Ð 2Ð 2Ð 2à	ˆÔ	˜8Ñ	$Ô	$€ð)ð )ð )ð )ð )Ð+ñ )ô )ð )ðIð Ið Ið Ið IÐ,ñ Iô Ið Ið+ð +ð +ð +ð +Ð'7ñ +ô +ð +ð&ð &ð &ð &ð &Ð+ñ &ô &ð &ð JÐ
IÐ
I€ð Ð ð #Ð à�2”:˜nÑ-Ô-Ð Ø!�r”z ,Ñ/Ô/Ð ð€ð
'€ð €ð7€ð3€ð!€ð4€ð ð Bñ B€ð -€à*€à˜LÑ(€àˆc‰eŒe€Ø × Ò �;Ñ Ô Ð Ø × Ò �;Ñ Ô Ð Ø × Ò �;Ñ Ô Ð Ø × Ò �;Ñ Ô Ð Ø × Ò �;Ñ Ô Ð Ø × Ò �;Ñ Ô Ð àˆ2Œ:Ð?Ñ@Ô@€ð4ð 4ð 4ð$Lð Lð Lð`ð Ø5@ðñ ô €ð CÐB¨k×.?Ò.?Ñ.AÔ.AÐBÑBÔB€àHÐ Ø'Ð Ø€ð>€ð
 $Ð à€àC€àˆ6‰8Œ8€àˆBŒJÐ'Ñ(Ô(€	ð
%ð 
%ð 
%ð 
%ðe-ð e-ð e-ð e-ð e-�Vñ e-ô e-ð e-ðP "Ð Ø)Ð Ø%Ð ðJJð JJð JJð JJð JJˆvñ JJô JJð JJð JJð JJr   