Ë
    ��hD—  ã                   óð  — 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j0                  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jD                  d«      Z# ejD                  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«       Z1e1je                  e%«       e1je                  e&«       e1je                  e(«       e1je                  e*«       e1je                  e,«       e1je                  e/«        ejD                  d"«      Z3d#„ Z4d$„ Z5e1D � ci c]#  } | jm                  «       jo                  d%d&«      | “Œ% c} Z8e8js                  «       D ��ci c]  \  }}||“Œ
 c}}Z:d'Z;d(Z<d)Z=d*Z>d+Z?d,Z@d-ZA eB«       ZC ejD                  d.«      ZDd7d/„ZE G d0„ d1eB«      ZFd2ZGd3ZHd4ZI G d5„ d6eB«      ZJyc c} w c c}}w )8zzImplementation 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y)ÚMetadataMissingErrorzA required metadata is missingN©Ú__name__Ú
__module__Ú__qualname__Ú__doc__© ó    úZ/var/www/skyplay_api_hub/venv/lib/python3.12/site-packages/pip/_vendor/distlib/metadata.pyr   r      s   „ Ú(r   r   c                   ó   — e Zd ZdZy)ÚMetadataConflictErrorz>Attempt to read or write metadata fields that are conflictual.Nr   r   r   r   r   r      s   „ ÚHr   r   c                   ó   — e Zd ZdZy)Ú MetadataUnrecognizedVersionErrorz Unknown metadata version number.Nr   r   r   r   r   r   #   s   „ Ú*r   r   c                   ó   — e Zd ZdZy)Ú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   ó2   K  — | ]  }|t         vsŒ|–— Œ y ­w©N)Ú_345_FIELDS)Ú.0Úfs     r   ú	<genexpr>z%_version2fieldlist.<locals>.<genexpr>p   s   è ø€ Ò"R¨¸QÄkÒ=Q¤1Ñ"Rùs   ‚�ú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[   g   sw   € Ø�%ÒÜÐØ	�EÒ	ÜÐØ	�EÒ	ÜÐØ	�NÑ	"äœUÑ"R¬kÔ"RÓRÑRÐRØ	�EÒ	ÜÐFÓGÐGà	�EÒ	ÜÐÜ
*¨7Ó
3Ð3r   c                 óÎ  — d„ }| j                  «       D ��cg c]  \  }}|g ddfvsŒ|‘Œ }}}g d¢}|D �]>  }|t        vr+d|v r'|j                  d«       t        j	                  d|«       |t
        vr+d|v r'|j                  d«       t        j	                  d|«       |t        vr+d	|v r'|j                  d	«       t        j	                  d
|«       |t        vr+d|v r'|j                  d«       t        j	                  d|«       |t        vr0d|v r,|dk7  r'|j                  d«       t        j	                  d|«       |t        vs�Œd|v s�Œ|j                  d«       t        j	                  d|«       �ŒA t        |«      dk(  r|d   S t        |«      dk(  r!t        j	                  d| «       t        d«      ‚d|v xr  ||t        «      }d	|v xr  ||t        «      }d|v xr  ||t        «      }d|v xr  ||t        «      }	t        |«      t        |«      z   t        |«      z   t        |	«      z   dkD  rt        d«      ‚|s|s|s|	st         |v rt         S |ry|ry	|ryyc c}}w )z5Detect the best version depending on the fields used.c                 ó,   ‡ — t        ˆ fd„|D «       «      S )Nc              3   ó&   •K  — | ]  }|‰v –— Œ
 y ­wrM   r   )rO   ÚmarkerÚkeyss     €r   rQ   z5_best_version.<locals>._has_marker.<locals>.<genexpr>}   s   øè ø€ Ò8 f�6˜T”>Ñ8ùs   ƒ)Úany)r`   Úmarkerss   ` r   Ú_has_markerz"_best_version.<locals>._has_marker|   s   ø€ ÜÓ8°Ô8Ó8Ð8r   Ú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)ÚitemsrT   ÚremoveÚloggerÚdebugrU   rN   rW   rY   Úlenr   Ú_314_MARKERSÚ_345_MARKERSÚ_566_MARKERSÚ_643_MARKERSÚintr"   )
Úfieldsrc   ÚkeyÚvaluer`   Úpossible_versionsÚis_1_1Úis_1_2Úis_2_1Úis_2_2s
             r   Ú_best_versionrw   y   so  € ò9ð #)§,¡,£.×W‘J�C˜°EÀ"ÀiÐQUÐAVÒ4VŠCÐW€DÑWÚBÐð ó 7ˆØ”kÑ! eÐ/@Ñ&@Ø×$Ñ$ UÔ+Ü�L‰LÐ0°#Ô6Ø”kÑ! eÐ/@Ñ&@Ø×$Ñ$ UÔ+Ü�L‰LÐ0°#Ô6Ø”kÑ! eÐ/@Ñ&@Ø×$Ñ$ UÔ+Ü�L‰LÐ0°#Ô6Ø”kÑ! eÐ/@Ñ&@Ø×$Ñ$ UÔ+Ü�L‰LÐ0°#Ô6Ø”kÑ! eÐ/@Ñ&@Ø�mÒ#Ø!×(Ñ(¨Ô/Ü—‘Ð4°cÔ:Ø”kÓ! eÐ/@Ó&@Ø×$Ñ$ UÔ+Ü�L‰LÐ0°#Ö6ð'7ô2 ÐÓ Ò"Ø  Ñ#Ð#Ü	ÐÓ	 1Ò	$Ü�‰Ð@À&ÔIÜ#Ð$:Ó;Ð;ð Ð'Ð'ÒK©K¸¼lÓ,K€FØÐ'Ð'ÒK©K¸¼lÓ,K€FØÐ'Ð'ÒK©K¸¼lÓ,K€FàÐ'Ð'ÒK©K¸¼lÓ,K€FÜ
ˆ6ƒ{”S˜“[Ñ ¤3 v£;Ñ.´°V³Ñ<¸qÒ@Ü#Ð$RÓSÐSñ ™&©¹ä%Ð):Ñ:Ü-Ð-ÙØÙØÙØð ùó Xs
   —I!§I!ú-Ú_)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.]+c                 óŒ   — |r<t         j                  d| «      } t         j                  d|j                  dd«      «      }| ›d|›�S )zhReturn the distribution name with version.

    If for_filename is true, return a filename-escaped form.rx   ú ú.)Ú	_FILESAFEÚsubÚreplace)ÚnamerZ   Úfor_filenames      r   Ú_get_name_and_versionr‚   ×   s?   € ñ ô �}‰}˜S $Ó'ˆÜ—-‘-  W§_¡_°S¸#Ó%>Ó?ˆÚ™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!y)#Ú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
    Nc                 ó  — |||gj                  d «      dk  rt        d«      ‚i | _        g | _        d | _        || _        |�| j                  |«       y |�| j                  |«       y |�"| j                  |«       | j                  «        y y )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ÜÐEÓFÐFØˆŒØ ˆÔØ!ˆÔØˆŒØÐØ�I‰I�d�OØÐ Ø�N‰N˜7Õ#ØÐ Ø�K‰K˜Ô Ø×%Ñ%Õ'ð !r   c                 óH   — t        | j                  «      | j                  d<   y ©Nr&   )rw   rŠ   ©r’   s    r   r‘   z#LegacyMetadata.set_metadata_version   s   € Ü+8¸¿¹Ó+Fˆ�‰Ð'Ò(r   c                 ó2   — |j                  |›d|›d�«       y )Nz: ú
)Úwrite)r’   r”   r€   rq   s       r   Ú_write_fieldzLegacyMetadata._write_field  s   € Ø�‰¢Dª%Ð0Õ1r   c                 ó$   — | j                  |«      S rM   )Úget©r’   r€   s     r   Ú__getitem__zLegacyMetadata.__getitem__  s   € Ø�x‰x˜‹~Ðr   c                 ó&   — | j                  ||«      S rM   )Úset)r’   r€   rq   s      r   Ú__setitem__zLegacyMetadata.__setitem__	  s   € Ø�x‰x˜˜eÓ$Ð$r   c                 ór   — | j                  |«      }	 | j                  |= y # t        $ r t        |«      ‚w xY wrM   )Ú_convert_namerŠ   ÚKeyError)r’   r€   Ú
field_names      r   Ú__delitem__zLegacyMetadata.__delitem__  s<   € Ø×'Ñ'¨Ó-ˆ
ð	!Ø—‘˜ZÑ(øÜò 	!Ü˜4“.Ð ð	!ús   “! ¡6c                 ó\   — || j                   v xs | j                  |«      | j                   v S rM   )rŠ   r¦   r    s     r   Ú__contains__zLegacyMetadata.__contains__  s*   € Ø˜Ÿ™Ð$ÒP¨×(:Ñ(:¸4Ó(@ÀDÇLÁLÐ(PÐQr   c                 ó‚   — |t         v r|S |j                  dd«      j                  «       }t        j	                  ||«      S )Nrx   ry   )Ú_ALL_FIELDSr   ÚlowerÚ_ATTR2FIELDrŸ   r    s     r   r¦   zLegacyMetadata._convert_name  s9   € Ø”;ÑØˆKØ�|‰|˜C Ó%×+Ñ+Ó-ˆÜ�‰˜t TÓ*Ð*r   c                 ó(   — |t         v s|t        v rg S y)Nrd   )Ú_LISTFIELDSÚ_ELEMENTSFIELDr    s     r   Ú_default_valuezLegacyMetadata._default_value  s   € Ø”;Ñ $¬.Ñ"8ØˆIØr   c                 óv   — | j                   dv rt        j                  d|«      S t        j                  d|«      S )N©rH   r$   r›   )Úmetadata_versionÚ_LINE_PREFIX_PRE_1_2r~   Ú_LINE_PREFIX_1_2©r’   rq   s     r   Ú_remove_line_prefixz"LegacyMetadata._remove_line_prefix!  s6   € Ø× Ñ  NÑ2Ü'×+Ñ+¨D°%Ó8Ð8ä#×'Ñ'¨¨eÓ4Ð4r   c                 ó2   — |t         v r| |   S t        |«      ‚rM   )r¯   ÚAttributeErrorr    s     r   Ú__getattr__zLegacyMetadata.__getattr__'  s   € Ø”;ÑØ˜‘:ÐÜ˜TÓ"Ð"r   c                 ó(   — t        | d   | d   |«      S )zz
        Return the distribution name with version.

        If filesafe is true, return a filename-escaped form.
        r'   r(   )r‚   )r’   Úfilesafes     r   Úget_fullnamezLegacyMetadata.get_fullname0  s   € ô % T¨&¡\°4¸	±?ÀHÓMÐMr   c                 ó4   — | j                  |«      }|t        v S )z+return True if name is a valid metadata key)r¦   r­   r    s     r   Úis_fieldzLegacyMetadata.is_field8  s   € à×!Ñ! $Ó'ˆØ”{Ð"Ð"r   c                 ó4   — | j                  |«      }|t        v S rM   )r¦   r±   r    s     r   Úis_multi_fieldzLegacyMetadata.is_multi_field=  s   € Ø×!Ñ! $Ó'ˆØ”{Ð"Ð"r   c                 ó¢   — t        j                  |dd¬«      }	 | j                  |«       |j                  «        y# |j                  «        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.readA  s8   € ä�[‰[˜ 3°Ô9ˆð	Ø�N‰N˜2Ôà�H‰H�JøˆB�H‰H�Jús	   š< ¼Ac           	      ó¢  — t        |«      }|d   | j                  d<   t        D ]„  }||vrŒ|t        v rU|j	                  |«      }|t
        v r)|�'|D �cg c]  }t        |j                  d«      «      ‘Œ }}| j                  ||«       Œe||   }|€Œm|dk7  sŒs| j                  ||«       Œ† |j                  «       }|r|| d<   y| d   | d<   yc c}w )z,Read the metadata values from a file object.zmetadata-versionr&   Nú,rd   r+   )
r   rŠ   r­   r±   Úget_allÚ_LISTTUPLEFIELDSrV   Úsplitr£   Úget_payload)r’   ÚfileobÚmsgÚfieldÚvaluesrq   Úbodys          r   r�   zLegacyMetadata.read_fileI  sä   € ä Ó'ˆØ+.Ð/AÑ+Bˆ�‰Ð'Ñ(ô !ò 	+ˆEØ˜CÑØØœÑ#àŸ™ UÓ+�ØÔ,Ñ,°Ð1CØCIÖJ¸%œe E§K¡K°Ó$4Õ5ÐJ�FÐJØ—‘˜ Õ'ð ˜E™
�ØÑ$¨°)Ó);Ø—H‘H˜U EÕ*ð	+ð" �‰Ó ˆÙ&*˜dˆˆ]Ò°°]Ñ0Cˆˆ]Òùò Ks   Á!Cc                 ó¤   — t        j                  |dd¬«      }	 | j                  ||«       |j                  «        y# |j                  «        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.writee  s:   € ä�[‰[˜ 3°Ô9ˆð	Ø�O‰O˜B Ô-à�H‰H�JøˆB�H‰H�Jús	   š= ½Ac                 óè  — | j                  «        t        | d   «      D ]Ì  }| j                  |«      }|r	|dg dgfv rŒ|t        v r#| j	                  ||dj                  |«      «       ŒJ|t        vr;|dk(  r3| j                  dv r|j                  dd«      }n|j                  dd«      }|g}|t        v r|D �cg c]  }dj                  |«      ‘Œ }}|D ]  }| j	                  |||«       Œ ŒÎ y	c c}w )
z0Write the PKG-INFO format data to a file object.r&   rd   rÏ   r+   rµ   r›   r%   z	
       |N)
r‘   r[   rŸ   r²   r�   Újoinr±   r¶   r   rÑ   )r’   Ú
fileobjectrÜ   rÖ   r×   rq   s         r   rÛ   zLegacyMetadata.write_filem  s   € à×!Ñ!Ô#ä'¨Ð-?Ñ(@ÓAò 	<ˆEØ—X‘X˜e“_ˆFÙ ¨9°b¸9¸+Ð*FÑ FØØœÑ&Ø×!Ñ! *¨e°S·X±X¸fÓ5EÔFØØœKÑ'Ø˜MÒ)Ø×,Ñ,°Ñ>Ø!'§¡°°lÓ!C™à!'§¡°°lÓ!C˜Ø ˜�àÔ(Ñ(Ø7=Ö>¨e˜#Ÿ(™( 5�/Ð>�Ð>àò <�Ø×!Ñ! *¨e°UÕ;ñ<ñ%	<ùò  ?s   Â8C/c                 óà   ‡ — ˆ fd„}|snAt        |d«      r"|j                  «       D ]  } ||||   «       Œ n|D ]  \  }} |||«       Œ |r"|j                  «       D ]  \  }} |||«       Œ yy)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                 ó`   •— | t         v r%|r"‰j                  ‰j                  | «      |«       y y y rM   )r¯   r£   r¦   )rp   rq   r’   s     €r   Ú_setz#LegacyMetadata.update.<locals>._set‘  s.   ø€ Ø”kÑ!¡eØ—‘˜×+Ñ+¨CÓ0°%Õ8ð ',Ð!r   r`   N)Úhasattrr`   re   )r’   ÚotherÚkwargsrâ   ÚkÚvs   `     r   r�   zLegacyMetadata.update†  s‡   ø€ ô	9ñ àÜ�U˜FÔ#Ø—Z‘Z“\ò "�Ù�Q˜˜a™Õ!ñ"ð ò ‘��1Ù�Q˜•
ðñ ØŸ™›ò ‘��1Ù�Q˜•
ñð r   c                 óœ  — | j                  |«      }|t        v s|dk(  rVt        |t        t        f«      s@t        |t
        «      r-|j                  d«      D �cg c]  }|j                  «       ‘Œ }}n7g }n4|t        v r,t        |t        t        f«      st        |t
        «      r|g}ng }t        j                  t        j                  «      rÏ| d   }t        | j                  «      }|t        v rF|�D|D ]>  }|j!                  |j                  d«      d   «      rŒ't        j#                  d|||«       Œ@ ng|t$        v r,|�*|j'                  |«      sLt        j#                  d|||«       n3|t(        v r+|�)|j+                  |«      st        j#                  d|||«       |t,        v r|d	k(  r| j/                  |«      }|| j0                  |<   yc c}w )
z"Control then set a metadata field.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Ò   Ústripr±   rg   Ú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€   rq   rç   Úproject_namer�   s         r   r£   zLegacyMetadata.set£  sœ  € à×!Ñ! $Ó'ˆà”^Ñ# t¨zÒ'9Ä:ÈeÔVZÔ\aÐUbÔCcÜ˜%¤Ô.Ø,1¯K©K¸Ó,<Ö= q˜Ÿ™�Ð=�Ñ=à‘Ø”kÑ!¬*°U¼TÄ5¸MÔ*JÜ˜%¤Ô.Ø˜‘à�ä×ÑœwŸ™Ô/Ø ™<ˆLä §¡Ó,ˆFØÔ(Ñ(¨UÐ->Øò f�Aà!×2Ñ2°1·7±7¸3³<À±?ÕCÜŸ™Ð'MÈ|Ð]^Ð`dÕeñfð
 Ô)Ñ)¨eÐ.?Ø×6Ñ6°uÔ=Ü—N‘NÐ#SÐUaÐchÐjnÕoØœÑ(¨UÐ->Ø×.Ñ.¨uÔ5Ü—N‘NÐ#SÐUaÐchÐjnÔoà”>Ñ!Ø�}Ò$Ø×0Ñ0°Ó7�à"ˆ�‰�TÒùò= >s   ÁG	c                 óè  — | j                  |«      }|| j                  vr|t        u r| j                  |«      }|S |t        v r| j                  |   }|S |t
        v rQ| j                  |   }|€g S g }|D ]5  }|t        vr|j                  |«       Œ|j                  |d   |d   f«       Œ7 |S |t        v r0| j                  |   }t        |t        «      r|j                  d«      S | j                  |   S )zGet a metadata field.r   r   rÏ   )r¦   rŠ   Ú_MISSINGr³   r÷   r±   rÑ   Úappendr²   rê   r	   rÒ   )r’   r€   Údefaultrq   ÚresÚvals         r   rŸ   zLegacyMetadata.getÉ  sþ   € à×!Ñ! $Ó'ˆØ�t—|‘|Ñ#Øœ(Ñ"Ø×-Ñ-¨dÓ3�ØˆNØ”>Ñ!Ø—L‘L Ñ&ˆEØˆLØ”[Ñ Ø—L‘L Ñ&ˆEØˆ}Ø�	ØˆCØò 1�ØÔ/Ñ/Ø—J‘J˜s•Oð —J‘J  A¡¨¨A©Ð/Õ0ð1ð ˆJà”^Ñ#Ø—L‘L Ñ&ˆEÜ˜%¤Ô.Ø—{‘{ 3Ó'Ð'Ø�|‰|˜DÑ!Ð!r   c                 ó  ‡— | j                  «        g g }}dD ]  }|| vsŒ|j                  |«       Œ |r$|g k7  rddj                  |«      z  }t        |«      ‚dD ]  }|| vsŒ|j                  |«       Œ | d   dk7  r||fS t	        | j
                  «      Šˆfd„}t        |ft        ‰j                  ft        ‰j                  ffD ]A  \  }}|D ]7  }	| j                  |	d«      }
|
€Œ ||
«      rŒ!|j                  d	|	›d
|
›�«       Œ9 ŒC ||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                 ó^   •— | D ]'  }‰j                  |j                  d«      d   «      rŒ' y y)Nré   r   FT)rñ   rÒ   )rq   rç   r�   s     €r   Úare_valid_constraintsz3LegacyMetadata.check.<locals>.are_valid_constraints   s4   ø€ Øò !�Ø×.Ñ.¨q¯w©w°s«|¸A©Õ?Ù ð!ð r   NzWrong value for 'z': )r‘   rû   rÞ   r   r   r�   rð   ró   rô   rõ   rö   rŸ   )r’   ÚstrictÚmissingÚwarningsÚattrrÕ   r  ro   Ú
controllerrÖ   rq   r�   s              @r   ÚcheckzLegacyMetadata.checkæ  sL  ø€ ð 	×!Ñ!Ô#ð  �ˆà'ò 	%ˆDØ˜4ÒØ—‘˜tÕ$ð	%ñ �g ’mØ1°D·I±I¸gÓ4FÑFˆCÜ& sÓ+Ð+à+ò 	%ˆDØ˜4ÒØ—‘˜tÕ$ð	%ð
 Ð"Ñ# uÒ,Ø˜HÐ$Ð$ä˜DŸK™KÓ(ˆô	ô %6Ð7LÐ#MÜ$4°f×6UÑ6UÐ#VÔYhØY_×YpÑYpðYrð#sò 	QÑˆF�Jð  ò Q�ØŸ™ ¨Ó-�ØÑ$©Z¸Õ->Ø—O’OÂ%ÉÐ$OÕPñQð	Qð ˜Ð Ð r   c                 óø   — | j                  «        t        | d   «      }i }|D ]O  }|r|| j                  v sŒt        |   }|dk7  r	| |   ||<   Œ+| |   D �cg c]  }dj	                  |«      ‘Œ c}||<   ŒQ |S c c}w )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_urlrÏ   )r‘   r[   rŠ   Ú_FIELD2ATTRrÞ   )r’   Úskip_missingro   Údatar¨   rp   Úus          r   ÚtodictzLegacyMetadata.todict  s’   € ð 	×!Ñ!Ô#ä# DÐ);Ñ$<Ó=ˆàˆà ò 	HˆJÙ :°·±Ò#=Ü! *Ñ-�Ø˜-Ò'Ø $ ZÑ 0�D˜’Ià6:¸:Ñ6FÖ G° §¡¨!¥Ò G�D˜’Ið	Hð ˆùò !Hs   ÁA7c                 óL   — | d   dk(  rdD ]
  }|| v sŒ| |= Œ | dxx   |z  cc<   y )Nr&   r$   )r4   r6   r5   r<   r   )r’   ÚrequirementsrÖ   s      r   Úadd_requirementszLegacyMetadata.add_requirements'  s?   € ØÐ"Ñ# uÒ,à>ò $�Ø˜D’=Ø˜U™ð$ð 	ˆ_Ó Ñ-Ôr   c                 ó0   — t        t        | d   «      «      S r˜   )rë   r[   r™   s    r   r`   zLegacyMetadata.keys2  s   € ÜÔ& tÐ,>Ñ'?Ó@ÓAÐAr   c              #   ó>   K  — | j                  «       D ]  }|–— Œ y ­wrM   ©r`   ©r’   rp   s     r   Ú__iter__zLegacyMetadata.__iter__5  s    è ø€ Ø—9‘9“;ò 	ˆCØ‹Iñ	ùs   ‚c                 óN   — | j                  «       D �cg c]  }| |   ‘Œ	 c}S c c}w rM   r  r  s     r   r×   zLegacyMetadata.values9  s    € Ø%)§Y¡Y£[Ö1˜c��S“	Ò1Ð1ùÒ1s   “"c                 óR   — | j                  «       D �cg c]	  }|| |   f‘Œ c}S c c}w rM   r  r  s     r   re   zLegacyMetadata.items<  s%   € Ø,0¯I©I«KÖ8 S��d˜3‘iÒ Ò8Ð8ùÒ8s   “$c                 ój   — 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¸¿	»	À4Ç<Ã<ÐPÐPr   ©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×   re   r  r   r   r   r„   r„   ä   s¥   „ ñó(òGò2òò%ò!òRò+òò
5ò#óNò#ò
#òòDó8ó<ó2ò:$#ðL !)ó "ó:(!óTò..òBòò2ò9óQr   r„   zpydist.jsonzmetadata.jsonÚMETADATAc                   óf  — 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d5d„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d6d„Zd„ Ze d„ «       Z!e d„ «       Z"e"jF                  d„ «       Z"d7d„Z$e d „ «       Z%e d!„ «       Z&e&jF                  d"„ «       Z&d#„ Z'd$„ Z(d%„ Z)d&„ Z*d'd(d)d*d+d,d-d.d/dd0œ
Z+d1„ Z,d8d2„Z-d3„ Z.d4„ Z/y)9r    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�   Nc                 ó  — |||gj                  d «      dk  rt        d«      ‚d | _        d | _        || _        |�	 | j                  ||«       || _        y d }|r&t        |d«      5 }|j                  «       }d d d «       n|r|j                  «       }|€| j                  | j                  dœ| _        y t        |t        «      s|j                  d«      }	 t!        j"                  |«      | _        | j                  | j                  |«       y # t        $ r% t        ||¬«      | _        | j                  «        Y y w xY w# 1 sw Y   Œ´xY w# t$        $ r. t        t'        |«      |¬«      | _        | j                  «        Y y w xY w)Nr†   r‡   )r•   r�   Úrb©r¶   Ú	generatorr#   )r”   r�   )rˆ   r‰   r&  r'  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__u  sa  € Ø�'˜7Ð#×)Ñ)¨$Ó/°!Ò3ÜÐEÓFÐFØˆŒØˆŒ
ØˆŒàÐð Ø×&Ñ& w°Ô7Ø$�•
ð
 ˆDÙÜ˜$ Ó%ð $¨ØŸ6™6›8�D÷$ð $áØ—|‘|“~�Øˆ|ð )-×(=Ñ(=Ø!%§¡ñ�•
ô
 " $¬	Ô2ØŸ;™; wÓ/�Dð$Ü!%§¡¨DÓ!1�D”JØ×*Ñ*¨4¯:©:°vÕ>øô+ 4ò  Ü-°gÀfÔM�”Ø—‘–ð ú÷$ð $ûô  "ò $ô $2¼(À4».ÐQWÔ#X�D”LØ—M‘M–Oð$ús/   »D Á%D<Ã6E Ä+D9Ä8D9Ä<EÅ4E?Å>E?)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                 ón  — t         j                  | d«      }t         j                  | d«      }||v �r#||   \  }}| j                  r,|€|€d n |«       }|S | j                  j                  |«      }|S |€d n |«       }|dvr| j                  j                  ||«      }|S t        «       }|}| j                  j                  d«      }	|	r…|dk(  r|	j                  d|«      }nm|dk(  r&|	j                  d«      }	|	rU|	j                  ||«      }nB|	j                  d	«      }	|	s| j                  j                  d	«      }	|	r|	j                  ||«      }||u r|}|S ||vrt         j                  | |«      }|S | j                  r| j                  j                  |«      }|S | j                  j                  |«      }|S )
NÚcommon_keysÚmapped_keys©r>  r=  r;  r<  r?  Ú
extensionsr>  úpython.commandsr?  úpython.detailsúpython.exports)ÚobjectÚ__getattribute__r&  rŸ   r'  )
r’   rp   ÚcommonÚmappedÚlkÚmakerÚresultrq   ÚsentinelÚds
             r   rJ  zMetadata.__getattribute__·  s½  € Ü×(Ñ(¨¨}Ó=ˆÜ×(Ñ(¨¨}Ó=ˆØ�&Š=Ø˜s™‰IˆB�Ø�|Š|Ø�:Ø%* ]™T¹»�FðB ˆð? "Ÿ\™\×-Ñ-¨bÓ1�Fð> ˆð; !& ™±5³7�ØÐ]Ñ]Ø!ŸZ™ZŸ^™^¨C°Ó7�Fð6 ˆô1  &›x�HØ%�FØŸ
™
Ÿ™ |Ó4�AÙØ *Ò,Ø%&§U¡UÐ+<¸eÓ%D™FØ  MÒ1Ø !§¡Ð&6Ó 7˜AÙ Ø)*¯©¨s°EÓ):¡à !§¡Ð&6Ó 7˜AÙ#$Ø$(§J¡J§N¡NÐ3CÓ$D Ù Ø)*¯©¨s°EÓ): Ø Ñ)Ø!&˜ð ˆð ˜ÑÜ×,Ñ,¨T°3Ó7ˆFð
 ˆð	 �\Š\Ø—\‘\×%Ñ% cÓ*ˆFð ˆð —Z‘Z—^‘^ CÓ(ˆFØˆr   c                 ó¶   — || j                   v rK| j                   |   \  }}|xs | j                  |vr&|j                  |«      }|st        d|›d|›d�«      ‚y y y )Nú'z' is an invalid value for the 'z
' property)ÚSYNTAX_VALIDATORSr�   Úmatchr   )r’   rp   rq   r�   ÚpatternÚ
exclusionsÚms          r   Ú_validate_valuezMetadata._validate_valueá  sp   € Ø�$×(Ñ(Ñ(Ø"&×"8Ñ"8¸Ñ"=ÑˆG�ZØÒ%˜$Ÿ+™+¨jÑ8Ø—M‘M %Ó(�ÙÝ.ÚFKÊSð0Ró Sð Sð ð 9ð )r   c                 óÂ  — | j                  ||«       t        j                  | d«      }t        j                  | d«      }||v rœ||   \  }}| j                  r|€t        ‚|| j                  |<   y |dvr|| j
                  |<   y | j
                  j                  di «      }|dk(  r||d<   y |dk(  r|j                  di «      }|||<   y |j                  d	i «      }|||<   y ||vrt        j                  | ||«       y |d
k(  r5t        |t        «      r%|j                  «       }|r|j                  «       }ng }| j                  r|| j                  |<   y || j
                  |<   y )NrB  rC  rD  rE  r>  rF  r?  rG  rH  r4  )rY  rI  rJ  r&  ÚNotImplementedErrorr'  Ú
setdefaultÚ__setattr__rê   r	   rì   rÒ   )r’   rp   rq   rK  rL  rM  ry   rQ  s           r   r]  zMetadata.__setattr__ê  sS  € Ø×Ñ˜S %Ô(Ü×(Ñ(¨¨}Ó=ˆÜ×(Ñ(¨¨}Ó=ˆØ�&‰=Ø˜3‘K‰EˆB�Ø�|Š|Ø�:Ü-Ð-Ø#(�—‘˜RÒ ØÐ[Ñ[Ø"'�—
‘
˜3’ð —J‘J×)Ñ)¨,¸Ó;�Ø˜*Ò$Ø+0�AÐ'Ò(Ø˜MÒ)ØŸ™Ð%5°rÓ:�AØ"�A�c’FàŸ™Ð%5°rÓ:�AØ"�A�c’FØ˜ÑÜ×Ñ˜t S¨%Õ0à�jÒ Ü˜e¤\Ô2Ø!ŸK™K›M�EÙØ %§¡£™à "˜Ø�|Š|Ø$)�—‘˜SÒ!à"'�—
‘
˜3’r   c                 óD   — t        | j                  | j                  d«      S ©NT)r‚   r€   rZ   r™   s    r   Úname_and_versionzMetadata.name_and_version  s   € ä$ T§Y¡Y°·±¸dÓCÐCr   c                 óØ   — | j                   r| j                   d   }n| j                  j                  dg «      }| j                  ›d| j                  ›d�}||vr|j                  |«       |S )Nr;   Úprovidesú (ú))r&  r'  r\  r€   rZ   rû   )r’   rO  Úss      r   rb  zMetadata.provides  sW   € à�<Š<Ø—\‘\ /Ñ2‰Fà—Z‘Z×*Ñ*¨:°rÓ:ˆFØŸ› D§L£LÐ1ˆØ�F‰?Ø�M‰M˜!ÔØˆr   c                 óZ   — | j                   r|| j                   d<   y || j                  d<   y )Nr;   rb  )r&  r'  r¹   s     r   rb  zMetadata.provides  s%   € à�<Š<Ø,1ˆD�L‰L˜Ò)à%*ˆD�J‰J�zÒ"r   c                 óî  — | j                   r|}|S g }t        |xs g | j                  «      }|D ]_  }d|vrd|vrd}n;d|vrd}n|j                  d«      |v }|r|j                  d«      }|rt	        ||«      }|sŒL|j                  |d   «       Œa dD ]_  }d|z  }	|	|v sŒ|j                  |	«       | j                  j                  d|z  g «      }|j                  | j                  |||¬«      «       Œa |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)r:  Úenv)	r&  r   r:  rŸ   r   Úextendrf   r'  Úget_requirements)
r’   Úreqtsr:  rn  rO  rQ  Úincluder_   rp   Úes
             r   rp  zMetadata.get_requirements&  s  € ð �<Š<ØˆFð: ˆð7 ˆFÜ ¢¨"¨d¯k©kÓ:ˆFØò 1�Ø !Ñ#¨¸QÑ(>à"‘Gà aÑ'à"&™à"#§%¡%¨£.°FÐ":˜Ùà!"§¡ }Ó!5˜Ù!Ü&/°¸Ó&<˜GÚØ—M‘M ! J¡-Õ0ð!1ð" 0ò X�Ø˜S‘L�Ø˜’;Ø—M‘M !Ô$ð !ŸJ™JŸN™N¨=¸3Ñ+>ÀÓC�EØ—M‘M $×"7Ñ"7¸ÀfÐRUÐ"7Ó"VÕWðXð ˆr   c                 óR   — | j                   r| j                  «       S | j                  S rM   )r&  Ú_from_legacyr'  r™   s    r   Ú
dictionaryzMetadata.dictionaryO  s"   € à�<Š<Ø×$Ñ$Ó&Ð&Ø�z‰zÐr   c                 óf   — | j                   rt        ‚t        | j                  | j                  «      S rM   )r&  r[  r   r'  ÚDEPENDENCY_KEYSr™   s    r   ÚdependencieszMetadata.dependenciesU  s&   € à�<Š<Ü%Ð%ä! $§*¡*¨d×.BÑ.BÓCÐCr   c                 ó^   — | j                   rt        ‚| j                  j                  |«       y rM   )r&  r[  r'  r�   r¹   s     r   ry  zMetadata.dependencies\  s!   € à�<Š<Ü%Ð%à�J‰J×Ñ˜eÕ$r   c                 ój  — |j                  d«      | j                  k7  r
t        «       ‚g }| j                  j	                  «       D ]   \  }}||vsŒ||vsŒ|j                  |«       Œ" |rddj                  |«      z  }t        |«      ‚|j	                  «       D ]  \  }}| j                  |||«       Œ y )Nr¶   zMissing metadata items: %sr   )	rŸ   r.  r   ÚMANDATORY_KEYSre   rû   rÞ   r   rY  )	r’   r•   r�   r  rp   rW  rÕ   ræ   rç   s	            r   r,  zMetadata._validate_mappingc  s´   € Ø�;‰;Ð)Ó*¨d×.CÑ.CÒCÜ2Ó4Ð4ØˆØ#×2Ñ2×8Ñ8Ó:ò 	(‰OˆC�Ø˜'Ò!Ø Ò+Ø—N‘N 3Õ'ð	(ñ Ø.°·±¸7Ó1CÑCˆCÜ& sÓ+Ð+Ø—M‘M“Oò 	/‰DˆAˆqØ× Ñ   A vÕ.ñ	/r   c                 óÞ   — | j                   r;| j                   j                  d«      \  }}|s|rt        j                  d||«       y y | j	                  | j
                  | j                  «       y )NTz#Metadata: missing: %s, warnings: %s)r&  r  rg   rò   r,  r'  r�   )r’   r  r  s      r   r-  zMetadata.validateq  sW   € Ø�<Š<Ø $§¡× 2Ñ 2°4Ó 8ÑˆG�XÙ™(Ü—‘ÐDÀgÈxÕXð #ð ×"Ñ" 4§:¡:¨t¯{©{Õ;r   c                 ó”   — | j                   r| j                   j                  d«      S t        | j                  | j                  «      }|S r_  )r&  r  r   r'  Ú
INDEX_KEYS)r’   rO  s     r   r  zMetadata.todicty  s7   € Ø�<Š<Ø—<‘<×&Ñ& tÓ,Ð,ä# D§J¡J°·±Ó@ˆFØˆMr   c                 ó~  — | j                   r| j                  rJ ‚| j                  | j                  dœ}| j                   j	                  d«      }dD ]  }||v sŒ|dk(  rd}n|}||   ||<   Œ |j                  dg «      }|dgk(  rg }||d<   d	}|D ]  \  }}||v sŒ||   sŒd
||   ig||<   Œ | j                  |d<   |S )Nr*  T)r€   rZ   r3  r$  ÚdescriptionÚ
classifierr‚  r?  r,   Ú r4  ))Úrequires_distr5  )Úsetup_requires_distr6  rj  rb  )r&  r'  r.  r/  r  rŸ   rb  )r’   rO  Úlmdræ   ÚnkÚkwr`   Úoks           r   ru  zMetadata._from_legacy€  sò   € Ø�|Š| D§J¢JÐ.Ð.à $× 5Ñ 5ØŸ™ñ
ˆð �l‰l×!Ñ! $Ó'ˆØWò 	$ˆAØ�CŠxØ˜Ò$Ø&‘Bà�BØ  ™V��r’
ð	$ð �W‰W�Z Ó$ˆØ�"�Š:ØˆBØˆˆzÑØ]ˆØò 	5‰FˆB�Ø�SŠy˜S ›WØ)¨3¨r©7Ð3Ð4��r’
ð	5ð "Ÿ]™]ˆˆzÑð ˆr   r'   r(   r0   r*   r+   r-   r.   r/   r3   )
r€   rZ   )rE  rG  r3  r$  r�  )rE  úpython.projectÚproject_urlsÚHome)rE  rŠ  Úcontactsr   r€   )rE  rŠ  r�  r   Úemailr@  )rE  rG  r?  c                 óJ  — d„ }| j                   r| j                  rJ ‚t        «       }| j                   }| j                  j	                  «       D ]<  \  }}t        |t        «      s||v sŒ||   ||<   Œ$|}d}|D ]  }	 ||   }Œ
 |sŒ8|||<   Œ>  || j                  | j                  z   «      }	 || j                  | j                  z   «      }
| j                  rt        | j                  «      |d<   t        |	«      |d<   t        |
«      |d<   |S # t        t        f$ r d}Y  Œžw xY w)Nc                 ó$  — t        «       }| D ]€  }|j                  d«      }|j                  d«      }|d   }|D ]R  }|s|s|j                  |«       Œd}|rd|z  }|r|r	d|›d|›�}n|}|j                  dj                  ||f«      «       ŒT Œ‚ |S )	Nrh  ri  rj  rƒ  zextra == "%s"ú(z) and ré   )r£   rŸ   ÚaddrÞ   )Úentriesrq  rs  rh  rn  ÚrlistrÆ   r_   s           r   Úprocess_entriesz,Metadata._to_legacy.<locals>.process_entriesª  s¢   € Ü“EˆEØò 9�ØŸ™˜g›�Ø—e‘e˜MÓ*�Ø˜*™�Øò 9�AÙ¡uØŸ	™	 !�à!#˜Ù Ø%4°uÑ%<˜FÙÚ%Ú:=¹vÐ)F¡à), ØŸ	™	 #§(¡(¨A¨v¨;Ó"7Õ8ñ9ð	9ð" ˆLr   TFrC   r<   rA   )r'  r&  r„   ÚLEGACY_MAPPINGre   rê   rV   r§   Ú
IndexErrorr5  r9  r6  r7  r:  Úsorted)r’   r•  rO  Únmdr‡  r‰  rQ  Úfoundræ   Úr1Úr2s              r   Ú
_to_legacyzMetadata._to_legacy¨  s5  € ò	ð* �zŠz $§,¢,Ð.Ð.ÜÓ!ˆØ�j‰jˆà×)Ñ)×/Ñ/Ó1ò 	#‰FˆB�Ü˜b¤%Ô(Ø˜’9Ø!$ R¡�F˜2’Jà�Ø�Øò �AðØ˜a™D™ðò Ø!"�F˜2’Jð	#ñ ˜T×.Ñ.°×1CÑ1CÑCÓDˆÙ˜T×0Ñ0°4×3DÑ3DÑDÓEˆØ�;Š;Ü'-¨d¯k©kÓ':ˆFÐ#Ñ$Ü"(¨£*ˆˆÑÜ(.¨r«
ˆÐ$Ñ%àˆøô %¤jÐ1ò Ø %˜Úðús   Á<DÄD"Ä!D"c                 ó(  — ||gj                  d «      dk7  rt        d«      ‚| j                  «        |rS| j                  r| j                  }n| j	                  «       }|r|j                  ||¬«       y |j                  ||¬«       y | j                  r| j                  «       }n| j                  }|rt        j                  ||ddd¬«       y t        j                  |dd«      5 }t        j                  ||ddd¬«       d d d «       y # 1 sw Y   y xY w)	Nr   z)Exactly one of path and fileobj is needed)rÜ   Tr†   )Úensure_asciiÚindentÚ	sort_keysrÚ   r#   )rˆ   rX   r-  r&  r�  rœ   rÛ   ru  r'  r1  ÚdumprÉ   rÊ   )r’   r“   r”   r#  rÜ   Ú	legacy_mdrQ  rP   s           r   rœ   zMetadata.writeÛ  sç   € Ø�'ˆ?× Ñ  Ó&¨!Ò+ÜÐHÓIÐIØ�‰ŒÙØ�|Š|Ø ŸL™L‘	à ŸO™OÓ-�	ÙØ—‘ °<�Õ@à×$Ñ$ W¸<Ð$ÕHà�|Š|Ø×%Ñ%Ó'‘à—J‘J�ÙÜ—	‘	˜!˜W°4ÀÈTÖRä—[‘[  s¨GÓ4ð Q¸Ü—I‘I˜a °¸aÈ4ÕP÷Q÷ Qñ Qús   Ã$DÄDc                 ó:  — | j                   r| j                   j                  |«       y | j                  j                  dg «      }d }|D ]  }d|vsŒd|vsŒ|} n |€d|i}|j	                  d|«       y t        |d   «      t        |«      z  }t        |«      |d<   y )Nr5  ri  rh  rj  r   )r&  r  r'  r\  Úinsertr£   r˜  )r’   r  r5  ÚalwaysÚentryÚrsets         r   r  zMetadata.add_requirementsó  s¤   € Ø�<Š<Ø�L‰L×)Ñ)¨,Õ7àŸ:™:×0Ñ0°ÀÓDˆLØˆFØ%ò �Ø ¨Ò-°'ÀÒ2FØ"�FÙðð ˆ~Ø$ lÐ3�Ø×#Ñ# A vÕ.ä˜6 *Ñ-Ó.´°\Ó1BÑB�Ü%+¨D£\��zÒ"r   c           	      óœ   — | j                   xs d}| j                  xs d}d| j                  j                  ›d| j                  ›d|›d|›d�	S )Nz	(no name)z
no versionr  r{   rc  z)>)r€   rZ   r  r   r¶   )r’   r€   rZ   s      r   r  zMetadata.__repr__  s?   € Ø�y‰yÒ'˜KˆØ—,‘,Ò. ,‰Ø$(§N¡N×$;Ó$;¸T×=RÓ=RÒTXÒZaÐbÐbr   r  rM   )NN)NNFT)0r   r   r   r   ÚreÚcompileÚMETADATA_VERSION_MATCHERÚIÚNAME_MATCHERÚFIELDNAME_MATCHERr   ÚVERSION_MATCHERÚSUMMARY_MATCHERr.  r   r/  r|  r  rx  rT  Ú	__slots__r–   r£   rB  rë   Ú	none_listÚdictÚ	none_dictrC  rJ  rY  r]  Úpropertyr`  rb  Úsetterrp  rv  ry  r,  r-  r  ru  r–  r�  rœ   r  r  r   r   r   r    r    H  s(  „ ñð  *˜rŸz™zÐ*:Ó;Ðà�2—:‘:ÐAÀ2Ç4Á4ÓH€Là"˜Ÿ
™
Ð#AÀ2Ç4Á4ÓHÐà'€Oà �b—j‘j Ó-€OàÐà Ñ,€Ið ØØñ€Nð!€Jð/€Oð
 6°rÐ:Ø˜|Ð,Ø# \Ð2Ø# \Ð2Ø% |Ð4ñÐð /€Ió)$ñV ÐKÓL€Kà�t�€IØ�t�€Ið )¨$Ð/Ø0°$Ð7Ø!Ø"Ø"Ø# TÐ*ØØØØØ$ dÐ+Ø,Ø6ñ€Kð  	�9ò(óTSò$(ðL ñDó ðDð ñó ðð ‡_�_ñ+ó ð+ó'ðR ñó ðð
 ñDó ðDð ×Ññ%ó ð%ò/ò<òòð8 ØØ5>ØØ$ØBMØAIØBPØ$Ø9Eñ€Nò1ófQò02ó"cr   r    r   )Kr   Ú
__future__r   rÉ   rŽ  r   r1  rî   rª  rƒ  r   r   Úcompatr   r	   r
   rb   r   Úutilr   r   rZ   r   r   Ú	getLoggerr   rg   r   r   r   r   Ú__all__r!   r"   r«  r¸   r·   rT   rU   rj   rN   rk   Ú_426_FIELDSÚ_426_MARKERSrW   rl   rm   rY   r£   r­   r�   ÚEXTRA_REr[   rw   r®   r   r¯   re   r  rð   ró   rõ   r±   rÑ   r²   r÷   rI  rú   r}   r‚   r„   ÚMETADATA_FILENAMEÚWHEEL_METADATA_FILENAMEÚLEGACY_METADATA_FILENAMEr    )r€   r  rÖ   s   000r   ú<module>rÃ     sR  ðñõ (ã Ý #Û Û Û 	ç +ß 5Ñ 5Ý ß ,ß 2à	ˆ×	Ñ	˜8Ó	$€ô)Ð+ô )ôIÐ,ô Iô+Ð'7ô +ô&Ð+ô &ò
 J€ð Ð ð #Ð à�2—:‘:˜nÓ-Ð Ø!�r—z‘z ,Ó/Ð ð4€ð'€ð S€ð7€ð
A€ð.€ð i€ð Ð]Ñ]€à-€à*€à˜LÑ(€á‹e€Ø × Ñ �;Ô Ø × Ñ �;Ô Ø × Ñ �;Ô Ø × Ñ �;Ô Ø × Ñ �;Ô Ø × Ñ �;Ô àˆ2�:‰:Ð?Ó@€ò4ò$EðT ALÖL¸ˆt�z‰z‹|×#Ñ# C¨Ó-¨tÑ3ÒL€Ø.9×.?Ñ.?Ó.A×B™{˜t Uˆu�d‰{ÓB€àHÐ Ø(Ð Ø€ð>€ð %Ð à€àC€á‹8€àˆB�J‰JÐ'Ó(€	ó
%ô\Q�Vô \Qð~
 "Ð Ø)Ð Ø%Ð ôcˆvõ cùòK MùÛBs   Å(G-ÆG2