ó
    Þ j›  ã                   óô  • S r SSKJr  SSKrSSKJr  SSKrSSKrSSKrSSK	J
r
Jr  SSKJrJrJr  SSKJr  SS	KJrJr  SS
KJrJr  \R0                  " \5      r " S S\
5      r " S S\
5      r " S S\
5      r " S S\
5      r/ SQrSr Sr!\RD                  " S5      r#\RD                  " S5      r$Sr%Sr&Sr'Sr(Sr)Sr*Sr+\*S-   r,S r-S!r.\,\.-   r/\0" 5       r1\1Re                  \%5        \1Re                  \&5        \1Re                  \(5        \1Re                  \*5        \1Re                  \,5        \1Re                  \/5        \RD                  " S"5      r3S# r4S$ r5\1 V s0 sH#  o Rm                  5       Ro                  S%S&5      U _M%     sn r8\8Rs                  5        VVs0 sH  u  pX!_M	     snnr:S'r;S(r<S)r=S*r>S+r?S,r@S-rA\B" 5       rC\RD                  " S.5      rDS7S/ jrE " S0 S1\B5      rFS2rGS3rHS4rI " S5 S6\B5      rJgs  sn f s  snnf )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                   ó   • \ rS rSrSrSrg)ÚMetadataMissingErroré   zA required metadata is missing© N©Ú__name__Ú
__module__Ú__qualname__Ú__firstlineno__Ú__doc__Ú__static_attributes__r   ó    ÚV/var/www/html/gaurav/venv/lib/python3.13/site-packages/pip/_vendor/distlib/metadata.pyr   r      s   † Ü(r   r   c                   ó   • \ rS rSrSrSrg)ÚMetadataConflictErroré    z>Attempt to read or write metadata fields that are conflictual.r   Nr   r   r   r   r   r       s   † ÜHr   r   c                   ó   • \ rS rSrSrSrg)Ú MetadataUnrecognizedVersionErroré$   z Unknown metadata version number.r   Nr   r   r   r   r!   r!   $   s   † Ü*r   r!   c                   ó   • \ rS rSrSrSrg)ÚMetadataInvalidErroré(   zA metadata value is invalidr   Nr   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-Platformr0   r1   r2   r3   r4   r5   r6   Ú
ClassifierúDownload-URLÚ	ObsoletesÚProvidesÚRequires)r:   r;   r<   r8   r9   )r,   r-   r.   r/   r7   r0   r1   r2   r3   r4   r5   Ú
MaintainerúMaintainer-emailr6   r8   r9   úObsoletes-DistúProject-URLúProvides-DistúRequires-DistúRequires-PythonúRequires-External)rA   rB   rC   r?   rD   r=   r>   r@   )r,   r-   r.   r/   r7   r0   r1   r2   r3   r4   r5   r=   r>   r6   r8   r9   r?   r@   rA   rB   rC   rD   úPrivate-VersionúObsoleted-ByúSetup-Requires-DistÚ	ExtensionúProvides-Extra)rE   rI   rF   rG   rH   )úDescription-Content-Typer<   r;   r:   )rJ   )ÚDynamicúLicense-Filez"extra\s*==\s*("([^"]+)"|'([^']+)')c                 óà   • U S:X  a  [         $ U S:X  a  [        $ U S:X  a  [        $ U S;   a  [        [        S [         5       5      -   $ U S:X  a  [        S5      eU S:X  a  [        $ [        U 5      e)	Nú1.0r*   ú1.2)ú1.3ú2.1c              3   ó:   #   • U H  o[         ;  d  M  Uv •  M     g 7f©N)Ú_345_FIELDS)Ú.0Úfs     r   Ú	<genexpr>Ú%_version2fieldlist.<locals>.<genexpr>   s   é € Ð"R©k¨ÄkÑ=Q§1¡1ªkùs   ‚’	ú2.0z+Metadata 2.0 is withdrawn and not supportedú2.2)Ú_241_FIELDSÚ_314_FIELDSrT   ÚtupleÚ_566_FIELDSÚ
ValueErrorÚ_643_FIELDSr!   )Úversions    r   Ú_version2fieldlistrb   v   sw   € Ø�%ÓÜÐØ	�EÓ	ÜÐØ	�EÓ	ÜÐØ	�NÓ	"äœUÑ"R­kÓ"RÓRÑRÐRØ	�EÓ	ÜÐFÓGÐGà	�EÓ	ÜÐÜ
*¨7Ó
3Ð3r   c                 ó�  • S nU R                  5        VVs/ sH  u  p#U/ SS4;  d  M  UPM     nnn/ SQnU GHZ  nU[        ;  a-  SU;   a'  UR                  S5        [        R	                  SU5        U[
        ;  a-  SU;   a'  UR                  S5        [        R	                  SU5        U[        ;  a-  S	U;   a'  UR                  S	5        [        R	                  S
U5        U[        ;  a-  SU;   a'  UR                  S5        [        R	                  SU5        U[        ;  a3  SU;   a-  US:w  a'  UR                  S5        [        R	                  SU5        U[        ;  d  GM*  SU;   d  GM3  UR                  S5        [        R	                  SU5        GM]     [        U5      S:X  a  US   $ [        U5      S:X  a!  [        R	                  SU 5        [        S5      eSU;   =(       a    U" U[        5      nS	U;   =(       a    U" U[        5      nSU;   =(       a    U" U[        5      nSU;   =(       a    U" U[        5      n	[        U5      [        U5      -   [        U5      -   [        U	5      -   S:”  a  [        S5      eU(       d%  U(       d  U(       d  U	(       d  [         U;   a  [         $ U(       a  gU(       a  g	U(       a  ggs  snnf )z5Detect the best version depending on the fields used.c                 ó.   ^ • [        U 4S jU 5       5      $ )Nc              3   ó*   >#   • U H	  oT;   v •  M     g 7frS   r   )rU   ÚmarkerÚkeyss     €r   rW   Ú5_best_version.<locals>._has_marker.<locals>.<genexpr>‹   s   øé € Ð8± f˜T–>²ùs   ƒ)Úany)rg   Úmarkerss   ` r   Ú_has_markerÚ"_best_version.<locals>._has_markerŠ   s   ø€ ÜÔ8±Ó8Ó8Ð8r   ÚUNKNOWNN)rN   r*   rO   rP   rQ   rZ   rN   zRemoved 1.0 due to %sr*   zRemoved 1.1 due to %srO   zRemoved 1.2 due to %srP   zRemoved 1.3 due to %srQ   r1   zRemoved 2.1 due to %srZ   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)Úitemsr[   ÚremoveÚloggerÚdebugr\   rT   r^   r`   Úlenr   Ú_314_MARKERSÚ_345_MARKERSÚ_566_MARKERSÚ_643_MARKERSÚintr(   )
Úfieldsrk   ÚkeyÚvaluerg   Úpossible_versionsÚis_1_1Úis_1_2Úis_2_1Úis_2_2s
             r   Ú_best_versionr€   ˆ   si  € ò9ð #)§,¡,¤.ÔW¡.‘J�C°EÀ"ÀiÐQUÐAVÑ4V�C¡.€DÑWÚBÐô ˆØ”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ñ' ô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
   —K©KÚ-Ú_)rB   r?   rA   )rC   )r.   )r/   r8   r:   r<   r;   r?   rA   rB   rD   r@   r7   rG   rI   rH   rL   )r@   )r2   )r4   r=   r0   r1   z[^A-Za-z0-9.]+c                 óš   • U(       a<  [         R                  SU 5      n [         R                  SUR                  SS5      5      nU < SU< 3$ )zdReturn the distribution name with version.

If for_filename is true, return a filename-escaped form.r�   Ú Ú.)Ú	_FILESAFEÚsubÚreplace)Únamera   Úfor_filenames      r   Ú_get_name_and_versionr‹   è   s?   € ö ô �}‰}˜S $Ó'ˆÜ—-‘-  W§_¡_°S¸#Ó%>Ó?ˆÛšGÐ$Ð$r   c                   óì   • \ rS rSrSr  S"S jrS rS rS rS r	S	 r
S
 rS rS rS rS rS#S jrS rS rS rS rS#S jrS#S jrS$S jrS r\4S jrS#S jrS#S jrS rS rS rS r S r!S  r"S!r#g)%ÚLegacyMetadataéõ   aS  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                 ó  • XU/R                  S 5      S:  a  [        S5      e0 U l        / U l        S U l        X@l        Ub  U R                  U5        g Ub  U R                  U5        g Ub"  U R                  U5        U R                  5         g g )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__ÚLegacyMetadata.__init__  sˆ   € à˜7Ð#×)Ñ)¨$Ó/°!Ó3ÜÐEÓFÐFØˆŒØ ˆÔØ!ˆÔØŒØÑØ�I‰I�d�OØÑ Ø�N‰N˜7Õ#ØÑ Ø�K‰K˜Ô Ø×%Ñ%Õ'ð !r   c                 óH   • [        U R                  5      U R                  S'   g ©Nr,   )r€   r”   ©rœ   s    r   r›   Ú#LegacyMetadata.set_metadata_version  s   € Ü+8¸¿¹Ó+Fˆ�‰Ð'Ò(r   c                 ó6   • UR                  U< SU< S35        g )Nz: Ú
)Úwrite)rœ   rž   r‰   rz   s       r   Ú_write_fieldÚLegacyMetadata._write_field  s   € Ø�‰£D«%Ð0Õ1r   c                 ó$   • U R                  U5      $ rS   )Úget©rœ   r‰   s     r   Ú__getitem__ÚLegacyMetadata.__getitem__  s   € Ø�x‰x˜‹~Ðr   c                 ó$   • U R                  X5      $ rS   )Úset)rœ   r‰   rz   s      r   Ú__setitem__ÚLegacyMetadata.__setitem__  s   € Ø�x‰x˜Ó$Ð$r   c                 ót   • U R                  U5      n U R                  U	 g ! [         a    [        U5      ef = frS   )Ú_convert_namer”   ÚKeyError)rœ   r‰   Ú
field_names      r   Ú__delitem__ÚLegacyMetadata.__delitem__  s<   € Ø×'Ñ'¨Ó-ˆ
ð	!Ø—‘˜ZÑ(øÜó 	!Ü˜4“.Ð ð	!ús   “! ¡7c                 óh   • XR                   ;   =(       d    U R                  U5      U R                   ;   $ rS   )r”   rµ   r­   s     r   Ú__contains__ÚLegacyMetadata.__contains__$  s-   € ØŸ™Ñ$÷ 9Ø×"Ñ" 4Ó(¨D¯L©LÑ8ð	:r   c                 ó„   • U[         ;   a  U$ UR                  SS5      R                  5       n[        R	                  X5      $ )Nr�   r‚   )Ú_ALL_FIELDSrˆ   ÚlowerÚ_ATTR2FIELDr¬   r­   s     r   rµ   ÚLegacyMetadata._convert_name(  s7   € Ø”;ÓØˆKØ�|‰|˜C Ó%×+Ñ+Ó-ˆÜ�‰˜tÓ*Ð*r   c                 ó0   • U[         ;   d
  U[        ;   a  / $ g)Nrm   )Ú_LISTFIELDSÚ_ELEMENTSFIELDr­   s     r   Ú_default_valueÚLegacyMetadata._default_value.  s   € Ø”;Ó $¬.Ó"8ØˆIØr   c                 óz   • U R                   S;   a  [        R                  SU5      $ [        R                  SU5      $ )N©rN   r*   r§   )Úmetadata_versionÚ_LINE_PREFIX_PRE_1_2r‡   Ú_LINE_PREFIX_1_2©rœ   rz   s     r   Ú_remove_line_prefixÚ"LegacyMetadata._remove_line_prefix3  s6   € Ø× Ñ  NÓ2Ü'×+Ñ+¨D°%Ó8Ð8ä#×'Ñ'¨¨eÓ4Ð4r   c                 ó4   • U[         ;   a  X   $ [        U5      erS   )rÀ   ÚAttributeErrorr­   s     r   Ú__getattr__ÚLegacyMetadata.__getattr__9  s   € Ø”;ÓØ‘:ÐÜ˜TÓ"Ð"r   c                 ó(   • [        U S   U S   U5      $ )z`Return the distribution name with version.

If filesafe is true, return a filename-escaped form.r-   r.   )r‹   )rœ   Úfilesafes     r   Úget_fullnameÚLegacyMetadata.get_fullnameD  s   € ô % T¨&¡\°4¸	±?ÀHÓMÐMr   c                 ó6   • U R                  U5      nU[        ;   $ )z+return True if name is a valid metadata key)rµ   r¾   r­   s     r   Úis_fieldÚLegacyMetadata.is_fieldJ  s   € à×!Ñ! $Ó'ˆØ”{Ñ"Ð"r   c                 ó6   • U R                  U5      nU[        ;   $ rS   )rµ   rÃ   r­   s     r   Úis_multi_fieldÚLegacyMetadata.is_multi_fieldO  s   € Ø×!Ñ! $Ó'ˆØ”{Ñ"Ð"r   c                 óž   • [         R                  " USSS9n U R                  U5        UR                  5         g! UR                  5         f = f)z*Read the metadata values from a file path.Úrr)   ©ÚencodingN)ÚcodecsÚopenr™   Úclose)rœ   ÚfilepathÚfps      r   r˜   ÚLegacyMetadata.readS  s8   € ä�[Š[˜ 3°Ñ9ˆð	Ø�N‰N˜2Ôà�H‰H�JøˆB�H‰H�Júó	   ˜: ºAc           	      ó¾  • [        U5      nUS   U R                  S'   [         H�  nX2;  a  M
  U[        ;   aZ  UR	                  U5      nU[
        ;   a,  Ub)  U Vs/ sH  n[        UR                  S5      5      PM     nnU R                  X45        Mn  X#   nUc  Mw  US:w  d  M  U R                  X55        M’     UR                  5       nU(       a  UOU S   U S'   gs  snf )z,Read the metadata values from a file object.zmetadata-versionr,   NÚ,rm   r1   )
r   r”   r¾   rÃ   Úget_allÚ_LISTTUPLEFIELDSr]   Úsplitr±   Úget_payload)rœ   ÚfileobÚmsgÚfieldÚvaluesrz   Úbodys          r   r™   ÚLegacyMetadata.read_file[  sÑ   € ä Ó'ˆØ+.Ð/AÑ+Bˆ�‰Ð'Ñ(÷ !ˆEØÓÙØœÓ#àŸ™ UÓ+�ØÔ,Ó,°Ñ1CÙCIÓJÁ6¸%œe E§K¡K°Ó$4Ö5Á6�FÐJØ—‘˜Ö'ð ™
�ØÓ$¨°)Õ);Ø—H‘H˜UÖ*ñ !ð" �‰Ó ˆÞ&*™d°°]Ñ0Cˆˆ]Òùò Ks   Á#Cc                 óž   • [         R                  " USSS9n U R                  X25        UR                  5         g! UR                  5         f = f)z&Write the metadata fields to filepath.Úwr)   rß   N)rá   râ   Ú
write_filerã   )rœ   rä   Úskip_unknownrå   s       r   r¨   ÚLegacyMetadata.writew  s8   € ä�[Š[˜ 3°Ñ9ˆð	Ø�O‰O˜BÔ-à�H‰H�JøˆB�H‰H�Júrç   c                 ó  • U R                  5         [        U S   5       Há  nU R                  U5      nU(       a  US/ S/4;   a  M'  U[        ;   a#  U R	                  XSR                  U5      5        MT  U[        ;  a>  US:X  a5  U R                  S;   a  UR                  SS5      nOUR                  SS5      nU/nU[        ;   a   U Vs/ sH  nSR                  U5      PM     nnU H  nU R	                  XU5        M     Mã     g	s  snf )
z0Write the PKG-INFO format data to a file object.r,   rm   ré   r1   rÈ   r§   r+   z	
       |N)
r›   rb   r¬   rÄ   r©   ÚjoinrÃ   rÉ   rˆ   rë   )rœ   Ú
fileobjectr÷   rð   rñ   rz   s         r   rö   ÚLegacyMetadata.write_file  sô   € à×!Ñ!Ô#ä'¨Ð-?Ñ(@ÖAˆEØ—X‘X˜e“_ˆFÞ ¨9°b¸9¸+Ð*FÓ FÙØœÓ&Ø×!Ñ! *°S·X±X¸fÓ5EÔFÙØœKÓ'Ø˜MÓ)Ø×,Ñ,°Ó>Ø!'§¡°°lÓ!C™à!'§¡°°lÓ!C˜Ø ˜�àÔ(Ó(Ù7=Ó>±v¨e˜#Ÿ(™( 5ž/±v�Ð>ã�Ø×!Ñ! *°UÖ;ó  ò% Bùò  ?s   Ã	Dc                 ó  ^ • U 4S jnU(       d  OG[        US5      (       a#  UR                  5        H  nU" XAU   5        M     OU H  u  pEU" XE5        M     U(       a"  UR                  5        H  u  pEU" XE5        M     gg)aU  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                 ón   >• U [         ;   a*  U(       a"  TR                  TR                  U 5      U5        g g g rS   )rÀ   r±   rµ   )ry   rz   rœ   s     €r   Ú_setÚ#LegacyMetadata.update.<locals>._set¢  s.   ø€ Ø”kÓ!¦eØ—‘˜×+Ñ+¨CÓ0°%Õ8ð ',Ð!r   rg   N)Úhasattrrg   rn   )rœ   ÚotherÚkwargsrÿ   ÚkÚvs   `     r   rš   ÚLegacyMetadata.update˜  sq   ø€ õ	9ö àÜ�U˜F×#Ñ#Ø—Z‘Z–\�Ù�Q˜a™Ö!ò "ó ‘�Ù�Q–
ñ ö ØŸ™ž‘�Ù�Q–
ò 'ð r   c                 ó  • U R                  U5      nU[        ;   d  US:X  aa  [        U[        [        45      (       dF  [        U[
        5      (       a.  UR                  S5       Vs/ sH  o3R                  5       PM     nnOC/ nO@U[        ;   a6  [        U[        [        45      (       d  [        U[
        5      (       a  U/nO/ n[        R                  [        R                  5      (       aç  U S   n[        U R                  5      nU[        ;   aN  UbK  U HD  nUR!                  UR                  S5      S   5      (       a  M-  [        R#                  SXCU5        MF     OuU[$        ;   a1  Ub.  UR'                  U5      (       d  [        R#                  SXBU5        O:U[(        ;   a0  Ub-  UR+                  U5      (       d  [        R#                  SXBU5        U[,        ;   a  US	:X  a  U R/                  U5      nX R0                  U'   gs  snf )
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')r1   )rµ   rÄ   Ú
isinstanceÚlistr]   r	   rì   ÚstriprÃ   rp   Ú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‰   rz   r  Úproject_namer—   s         r   r±   ÚLegacyMetadata.set´  s¬  € à×!Ñ! $Ó'ˆà”^Ó# t¨zÓ'9Ü˜5¤4¬ -×0Ñ0Ü˜%¤×.Ñ.Ø,1¯K©K¸Ô,<Ó=Ñ,< qŸ™žÑ,<�Ð=�à‘Ø”kÓ!Ü˜U¤T¬5 M×2Ñ2Ü˜%¤×.Ñ.Ø˜‘à�ä×ÑœwŸ™×/Ñ/Ø ™<ˆLä §¡Ó,ˆFØÔ(Ó(¨UÑ->Û�Aà!×2Ñ2°1·7±7¸3³<À±?×CÓCÜŸ™ØBØ(¨Tö3ò ð Ô)Ó)¨eÑ.?Ø×6Ñ6°u×=Ñ=Ü—N‘NÐ#SØ#/¸ô>øàœÓ(¨UÑ->Ø×.Ñ.¨u×5Ñ5Ü—N‘NÐ#SØ#/¸ô>ð ”>Ó!Ø�}Ó$Ø×0Ñ0°Ó7�à"�‰�TÒùòG >s   Á%Hc                 ó  • U R                  U5      nXR                  ;  a  U[        L a  U R                  U5      nU$ U[        ;   a  U R                  U   nU$ U[
        ;   aW  U R                  U   nUc  / $ / nU H9  nU[        ;  a  UR                  U5        M   UR                  US   US   45        M;     U$ U[        ;   a5  U R                  U   n[        U[        5      (       a  UR                  S5      $ U R                  U   $ )zGet a metadata field.r   r   ré   )rµ   r”   Ú_MISSINGrÅ   r  rÃ   rë   ÚappendrÄ   r	  r	   rì   )rœ   r‰   Údefaultrz   ÚresÚvals         r   r¬   ÚLegacyMetadata.getà  sú   € à×!Ñ! $Ó'ˆØ—|‘|Ó#Øœ(Ò"Ø×-Ñ-¨dÓ3�ØˆNØ”>Ó!Ø—L‘L Ñ&ˆEØˆLØ”[Ó Ø—L‘L Ñ&ˆEØ‰}Ø�	ØˆCÛ�ØÔ/Ó/Ø—J‘J˜s–Oð —J‘J  A¡¨¨A©Ð/Ö0ñ ð ˆJà”^Ó#Ø—L‘L Ñ&ˆEÜ˜%¤×.Ñ.Ø—{‘{ 3Ó'Ð'Ø�|‰|˜DÑ!Ð!r   c                 óR  ^• U R                  5         / / p2S H  nX@;  d  M
  UR                  U5        M     U(       a%  U/ :w  a  SSR                  U5      -  n[        U5      eS H  nX@;  d  M
  UR                  U5        M     U S   S:w  a  X#4$ [	        U R
                  5      mU4S jn[        U4[        TR                  4[        TR                  44 HM  u  pxU HB  n	U R                  U	S5      n
U
c  M  U" U
5      (       a  M)  UR                  S	U	< S
U
< 35        MD     MO     X#4$ )zcCheck 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ú, )r3   r4   r,   rO   c                 ól   >• U  H-  nTR                  UR                  S5      S   5      (       a  M-    g   g)Nr  r   FT)r  rì   )rz   r  r—   s     €r   Úare_valid_constraintsÚ3LegacyMetadata.check.<locals>.are_valid_constraints  s2   ø€ Û�Ø×.Ñ.¨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#  rx   Ú
controllerrð   rz   r—   s              @r   ÚcheckÚLegacyMetadata.checký  s,  ø€ ð 	×!Ñ!Ô#ð  �ã'ˆDØÕØ—‘˜tÖ$ñ (ö �g “mØ1°D·I±I¸gÓ4FÑFˆCÜ& sÓ+Ð+ã+ˆDØÕØ—‘˜tÖ$ñ ,ð
 Ð"Ñ# uÓ,ØÐ$Ð$ä˜DŸK™KÓ(ˆõ	ô %6Ð7LÐ#MÜ$4Ø$*×$CÑ$Cð$Eä$3Ø$*×$;Ñ$;ð$=ó#>ÑˆFó
  �ØŸ™ ¨Ó-�ØÓ$©Z¸×->Ó->Ø—O’OÃ%ÊÐ$OÖPó  ñ#>ð Ð Ð r   c                 ó
  • U R                  5         [        U S   5      n0 nU HW  nU(       a  X@R                  ;   d  M  [        U   nUS:w  a  X   X5'   M2  X    Vs/ sH  nSR	                  U5      PM     snX5'   MY     U$ s  snf )zá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›   rb   r”   Ú_FIELD2ATTRrú   )rœ   Úskip_missingrx   Údatar·   ry   Úus          r   ÚtodictÚLegacyMetadata.todict)  s‡   € ð 	×!Ñ!Ô#ä# DÐ);Ñ$<Ó=ˆàˆã ˆJÞ :·±Õ#=Ü! *Ñ-�Ø˜-Ó'Ø $Ñ 0�D“Ià6:Ò6FÓ GÑ6F° §¡¨!¦Ñ6FÑ G�D“Iñ !ð ˆùò !Hs   ÁB c                 óT   • U S   S:X  a  S H  nX ;   d  M
  X	 M     U S==   U-  ss'   g )Nr,   r*   )r:   r<   r;   rB   r   )rœ   Úrequirementsrð   s      r   Úadd_requirementsÚLegacyMetadata.add_requirements@  s6   € ØÐ"Ñ# uÓ,ã>�Ø•=Øšñ ?ð 	ˆ_Ó Ñ-Ôr   c                 ó0   • [        [        U S   5      5      $ r£   )r
  rb   r¤   s    r   rg   ÚLegacyMetadata.keysK  s   € ÜÔ& tÐ,>Ñ'?Ó@ÓAÐAr   c              #   óB   #   • U R                  5        H  nUv •  M	     g 7frS   ©rg   ©rœ   ry   s     r   Ú__iter__ÚLegacyMetadata.__iter__N  s   é € Ø—9‘9–;ˆCØŒIò ùs   ‚c                 óP   • U R                  5        Vs/ sH  oU   PM	     sn$ s  snf rS   r;  r<  s     r   rñ   ÚLegacyMetadata.valuesR  s"   € Ø%)§Y¡Y¤[Ó1¡[˜c�S”	¡[Ñ1Ð1ùÒ1s   “#c                 óR   • U R                  5        Vs/ sH  oX   4PM
     sn$ s  snf rS   r;  r<  s     r   rn   ÚLegacyMetadata.itemsU  s%   € Ø,0¯I©I¬KÓ8©K S�d‘iÓ ©KÑ8Ð8ùÒ8s   “$c                 óp   • SU R                   R                  < SU R                  < SU R                  < S3$ )NÚ<r„   Ú>)Ú	__class__r   r‰   ra   r¤   s    r   Ú__repr__ÚLegacyMetadata.__repr__X  s&   � Ø#Ÿ~™~×6Ô6¸¿	¼	Ø#Ÿ|œ|ð-ð 	-r   )r–   r”   r•   r—   ©NNNr  ©FrS   )$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*  r2  r6  rg   r=  rñ   rn   rG  r   r   r   r   r�   r�   õ   s«   † ñð 9=Ø!ô(ò Gò2òò%ò!ò:ò+òò
5ò#ôNò#ò
#òòDô8ô<ô2ò8*#ðX !)ô "ô:*!ôXò..òBòò2ò9õ-r   r�   zpydist.jsonzmetadata.jsonÚMETADATAc                   óz  • \ rS rSrSr\R                  " S5      r\R                  " S\R                  5      r	\R                  " S\R                  5      r
\r\R                  " S5      rSrS\-  rS	S	S
S.rSrSr\S	4\	S
4\S
4\S
4\
S
4S.rSr  S7S jr\" S5      rS\4rS\4rS\4S\4\\\S\4\\\\S\4SSS.rCCS rS8S jrS r \!S 5       r"\!S 5       r#\#RH                  S 5       r#S9S  jr%\!S! 5       r&\!S" 5       r'\'RH                  S# 5       r'S$ r(S% r)S& r*S' r+S(S)S*S+S,S-S.S/S0SS1.
r,S2 r-S:S3 jr.S4 r/S5 r0S6r1g);r&   ib  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}rY   zdistlib (%s)r   )Úlegacy)r‰   ra   Ú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‰   ra   rN  Údynamic)Ú_legacyÚ_datar—   Nc                 ó"  • XU/R                  S 5      S:  a  [        S5      eS U l        S U l        X@l        Ub   U R                  X45        X0l        g S nU(       a&  [        US5       nUR                  5       nS S S 5        OU(       a  UR                  5       nUc  U R                  U R                  S.U l        g [        U[        5      (       d  UR                  S5      n [         R"                  " U5      U l        U R                  U R                  U5        g ! [         a!    [        X4S9U l        U R                  5          g f = f! , (       d  f       N½= f! [$         a+    [        ['        U5      US9U l        U R                  5          g f = f)Nr�   r‘   )rŸ   r—   Úrb©rÉ   Ú	generatorr)   )rž   r—   )r’   r“   rP  rQ  r—   Ú_validate_mappingr!   r�   Úvalidaterâ   r˜   ÚMETADATA_VERSIONÚ	GENERATORr	  r
   ÚdecodeÚjsonÚloadsr_   r   )rœ   r�   rž   rŸ   r—   r0  rV   s          r   r    ÚMetadata.__init__�  sT  € à˜7Ð#×)Ñ)¨$Ó/°!Ó3ÜÐEÓFÐFØˆŒØˆŒ
ØŒàÑð Ø×&Ñ& wÔ7Ø$•
ð
 ˆDÞÜ˜$ Ô%¨ØŸ6™6›8�D÷ &Ð%æØ—|‘|“~�Ø‰|ð )-×(=Ñ(=Ø!%§¡ñ�•
ô
 " $¬	×2Ñ2ØŸ;™; wÓ/�Dð$Ü!%§¢¨DÓ!1�D”JØ×*Ñ*¨4¯:©:°vÕ>øô+ 4ó  Ü-°gÑM�”Ø—‘–ð ú÷ &Õ%ûô  "ó 	$ô $2¼(À4».Ø9?ñ$A�D”Là—M‘M–Oð	$ús/   »D Á(EÃ"7E Ä(EÅEÅ
EÅ2FÆF)r‰   ra   ÚlicenseÚkeywordsrN  rB   rG   rI   r8   )r9   N)r,   N)Úrun_requiresÚbuild_requiresÚdev_requiresÚtest_requiresÚmeta_requiresÚextrasÚmodulesÚ
namespacesÚexportsÚcommandsÚclassifiersÚ
source_urlrÉ   c                 ó²  • [         R                  U S5      n[         R                  U S5      nX;   Ga?  X1   u  pEU R                  (       a/  Uc  Uc  S OU" 5       nU$ U R                  R                  U5      n U$ Uc  S OU" 5       nUS;  a  U R                  R                  X5      nU$ [        5       nUnU R                  R                  S5      n	U	(       a”  US:X  a  U	R                  SU5      nO{US:X  a*  U	R                  S5      n	U	(       a  U	R                  X5      nOKU	R                  S	5      n	U	(       d  U R                  R                  S	5      n	U	(       a  U	R                  X5      nXhL a  UnU$ X;  a  [         R                  X5      nU$ U R                  (       a  U R                  R                  U5      nU$ U R                  R                  U5      nU$ )
NÚcommon_keysÚmapped_keys©ri  rh  rf  rg  rj  Ú
extensionsri  úpython.commandsrj  úpython.detailsúpython.exports)ÚobjectÚ__getattribute__rP  r¬   rQ  )
rœ   ry   ÚcommonÚmappedÚlkÚmakerÚresultrz   ÚsentinelÚds
             r   ru  ÚMetadata.__getattribute__Ó  s²  € Ü×(Ñ(¨¨}Ó=ˆÜ×(Ñ(¨¨}Ó=ˆØŒ=Ø™‰IˆBØ�|�|Ø‘:Ø%*¡]™T¹»�FðD ˆðA "Ÿ\™\×-Ñ-¨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Ó): øà !§¡Ð&6Ó 7˜AÞ#$Ø$(§J¡J§N¡NÐ3CÓ$D Þ Ø)*¯©¨sÓ): ØÒ)Ø!&˜ð ˆð ÓÜ×,Ñ,¨TÓ7ˆFð
 ˆð	 �\�\Ø—\‘\×%Ñ% cÓ*ˆFð ˆð —Z‘Z—^‘^ CÓ(ˆFØˆr   c                 óÒ   • XR                   ;   aX  U R                   U   u  pEU=(       d    U R                  U;  a-  UR                  U5      nU(       d  [        SU< SU< S35      eg g g )NÚ'z' is an invalid value for the 'z
' property)ÚSYNTAX_VALIDATORSr—   Úmatchr$   )rœ   ry   rz   r—   ÚpatternÚ
exclusionsÚms          r   Ú_validate_valueÚMetadata._validate_valueþ  sm   € Ø×(Ñ(Ó(Ø"&×"8Ñ"8¸Ñ"=ÑˆGØ×%˜$Ÿ+™+¨jÓ8Ø—M‘M %Ó(�ÞÝ.ÛFKÛDGð0Ió Jð Jð ð 9ð )r   c                 óä  • U R                  X5        [        R                  U S5      n[        R                  U S5      nX;   aŸ  XA   u  pVU R                  (       a  Uc  [        eX R                  U'   g US;  a  X R
                  U'   g U R
                  R                  S0 5      nUS:X  a  X'S'   g US:X  a  UR                  S0 5      nX'U'   g UR                  S	0 5      nX'U'   g X;  a  [        R                  XU5        g US
:X  a?  [        U[        5      (       a*  UR                  5       nU(       a  UR                  5       nO/ nU R                  (       a  X R                  U'   g X R
                  U'   g )Nrm  rn  ro  rp  ri  rq  rj  rr  rs  r_  )r…  rt  ru  rP  ÚNotImplementedErrorrQ  Ú
setdefaultÚ__setattr__r	  r	   r  rì   )rœ   ry   rz   rv  rw  rx  r‚   r|  s           r   rŠ  ÚMetadata.__setattr__  s@  € Ø×Ñ˜SÔ(Ü×(Ñ(¨¨}Ó=ˆÜ×(Ñ(¨¨}Ó=ˆØ‹=Ø‘K‰EˆBØ�|�|Ø‘:Ü-Ð-Ø#(—‘˜RÒ Øð ,ó ,à"'—
‘
˜3’ð —J‘J×)Ñ)¨,¸Ó;�Ø˜*Ó$Ø+0Ð'Ò(Ø˜MÓ)ØŸ™Ð%5°rÓ:�AØ"�c’FàŸ™Ð%5°rÓ:�AØ"�c’FØÓÜ×Ñ˜t¨%Õ0à�jÓ Ü˜e¤\×2Ñ2Ø!ŸK™K›M�EÞØ %§¡£™à "˜Ø�|�|Ø$)—‘˜SÒ!à"'—
‘
˜3’r   c                 óD   • [        U R                  U R                  S5      $ ©NT)r‹   r‰   ra   r¤   s    r   Úname_and_versionÚMetadata.name_and_version/  s   € ä$ T§Y¡Y°·±¸dÓCÐCr   c                 óè   • U R                   (       a  U R                   S   nOU R                  R                  S/ 5      nU R                  < SU R                  < S3nX!;  a  UR                  U5        U$ )NrA   Úprovidesú (Ú))rP  rQ  r‰  r‰   ra   r  )rœ   rz  Úss      r   r‘  ÚMetadata.provides3  sU   € à�<�<Ø—\‘\ /Ñ2‰Fà—Z‘Z×*Ñ*¨:°rÓ:ˆFØŸœ D§L¤LÐ1ˆØ‹?Ø�M‰M˜!ÔØˆr   c                 ó`   • U R                   (       a  XR                   S'   g XR                  S'   g )NrA   r‘  )rP  rQ  rÌ   s     r   r‘  r•  >  s!   € à�<�<Ø,1�L‰L˜Ò)à%*�J‰J�zÒ"r   c           	      ó2  • U R                   (       a  UnU$ / n[        U=(       d    / U R                  5      nU Hv  nSU;  a	  SU;  a  SnOGSU;  a  SnOUR                  S5      U;   nU(       a#  UR                  S5      nU(       a  [	        Xs5      nU(       d  Mb  UR                  US   5        Mx     S H^  nSU-  n	X’;   d  M  UR                  U	5        U R                  R                  SU-  / 5      nUR                  U R                  XUS95        M`     U$ )	aS  
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)	rP  r   re  r¬   r   Úextendro   rQ  Úget_requirements)
rœ   Úreqtsre  rž  rz  r|  Úincluderf   ry   Úes
             r   r   ÚMetadata.get_requirementsE  s  € ð �<�<ØˆFð< ˆð9 ˆFÜ §¨"¨d¯k©kÓ:ˆFÛ�Ø !Ó#¨¸QÓ(>à"‘Gà aÓ'à"&™à"#§%¡%¨£.°FÑ":˜Þà!"§¡ }Ó!5˜Þ!Ü&/°Ó&<˜Gß�7Ø—M‘M ! J¡-Ö0ñ! ó" 0�Ø˜S‘L�Ø•;Ø—M‘M !Ô$ð !ŸJ™JŸN™N¨=¸3Ñ+>ÀÓC�EØ—M‘M $×"7Ñ"7¸Ø<?ð #8ð #Aö Bñ 0ð ˆr   c                 ó\   • U R                   (       a  U R                  5       $ U R                  $ rS   )rP  Ú_from_legacyrQ  r¤   s    r   Ú
dictionaryÚMetadata.dictionaryo  s"   € à�<�<Ø×$Ñ$Ó&Ð&Ø�z‰zÐr   c                 óp   • U R                   (       a  [        e[        U R                  U R                  5      $ rS   )rP  rˆ  r   rQ  ÚDEPENDENCY_KEYSr¤   s    r   ÚdependenciesÚMetadata.dependenciesu  s&   € à�<�<Ü%Ð%ä! $§*¡*¨d×.BÑ.BÓCÐCr   c                 óh   • U R                   (       a  [        eU R                  R                  U5        g rS   )rP  rˆ  rQ  rš   rÌ   s     r   r«  r¬  |  s!   € à�<�<Ü%Ð%à�J‰J×Ñ˜eÕ$r   c                 ó€  • UR                  S5      U R                  :w  a
  [        5       e/ nU R                  R	                  5        H$  u  pEXA;  d  M  X%;  d  M  UR                  U5        M&     U(       a  SSR                  U5      -  n[        U5      eUR	                  5        H  u  pxU R                  XxU5        M     g )NrÉ   zMissing metadata items: %sr!  )	r¬   rX  r!   ÚMANDATORY_KEYSrn   r  rú   r   r…  )	rœ   rŸ   r—   r&  ry   rƒ  rï   r  r  s	            r   rV  ÚMetadata._validate_mappingƒ  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Ø× Ñ   vÖ.ò $r   c                 óø   • U R                   (       aC  U R                   R                  S5      u  pU(       d  U(       a  [        R                  SX5        g g U R	                  U R
                  U R                  5        g )NTz#Metadata: missing: %s, warnings: %s)rP  r*  rp   r  rV  rQ  r—   )rœ   r&  r'  s      r   rW  ÚMetadata.validate‘  sV   € Ø�<�<Ø $§¡× 2Ñ 2°4Ó 8ÑˆGÞž(Ü—‘ÐDØ&õ2ð #ð ×"Ñ" 4§:¡:¨t¯{©{Õ;r   c                 óž   • U R                   (       a  U R                   R                  S5      $ [        U R                  U R                  5      nU$ r�  )rP  r2  r   rQ  Ú
INDEX_KEYS)rœ   rz  s     r   r2  ÚMetadata.todictš  s7   € Ø�<�<Ø—<‘<×&Ñ& tÓ,Ð,ä# D§J¡J°·±Ó@ˆFØˆMr   c                 ó¬  • U R                   (       a  U R                  (       a   eU R                  U R                  S.nU R                   R	                  S5      nS H  nX2;   d  M
  US:X  a  SnOUnX#   X'   M     UR                  S/ 5      nUS/:X  a  / nXQS'   S	nU H   u  ptXr;   d  M  X'   (       d  M  S
X'   0/X'   M"     U R                  US'   0 n0 n	U$ )NrT  T)r‰   ra   r^  rN  ÚdescriptionÚ
classifierr¸  rj  r2   Ú r_  ))Úrequires_distr`  )Úsetup_requires_distra  rš  r‘  )rP  rQ  rX  rY  r2  r¬   r‘  )
rœ   rz  Úlmdr  ÚnkÚkwrg   ÚokÚauthorÚ
maintainers
             r   r¦  ÚMetadata._from_legacy¡  sä   € Ø�|�| D§J§JÐ.Ð.à $× 5Ñ 5ØŸ™ñ
ˆð �l‰l×!Ñ! $Ó'ˆó ˆAà�xØ˜Ó$Ø&‘Bà�BØ ™V�“
ñ ð �W‰W�Z Ó$ˆØ�"�‹:ØˆBØˆzÑð;ˆã‰FˆBØ�y˜SŸW™WØ)¨3©7Ð3Ð4�“
ñ ð "Ÿ]™]ˆˆzÑØˆØˆ
Øˆr   r-   r.   r6   r0   r1   r3   r4   r5   r9   )
r‰   ra   )rp  rr  r^  rN  r·  )rp  úpython.projectÚproject_urlsÚHome)rp  rÃ  Úcontactsr   r‰   )rp  rÃ  rÆ  r   Úemailrk  )rp  rr  rj  c                 ó†  • S nU R                   (       a  U R                  (       a   e[        5       nU R                   nU R                  R	                  5        HH  u  pE[        U[        5      (       d  XC;   a  X4   X%'   M'  M)  UnSnU H  n Xh   nM
     U(       d  MD  XbU'   MJ     U" U R                  U R                  -   5      n	U" U R                  U R                  -   5      n
U R                  (       a  [        U R                  5      US'   [        U	5      US'   [        U
5      US'   U$ ! [        [        4 a    Sn   M¬  f = f)Nc                 ób  • [        5       nU  Hž  nUR                  S5      nUR                  S5      nUS   nU Hn  nU(       d  U(       d  UR                  U5        M$  SnU(       a  SU-  nU(       a  U(       a  SU< SU< 3nOUnUR                  SR                  Xg45      5        Mp     M      U$ )	Nr˜  r™  rš  r¹  zextra == "%s"Ú(z) and r  )r±   r¬   Úaddrú   )Úentriesr¡  r£  r˜  rž  ÚrlistrÞ   rf   s           r   Úprocess_entriesÚ,Metadata._to_legacy.<locals>.process_entriesÌ  s–   € Ü“EˆEÛ�ØŸ™˜g›�Ø—e‘e˜MÓ*�Ø˜*™�Û�AÞ¦uØŸ	™	 !žà!#˜Þ Ø%4°uÑ%<˜FÞß%Û:=ºvÐ)F¡à), ØŸ	™	 #§(¡(¨A¨;Ó"7Ö8ó ñ	 ð" ˆLr   TFrI   rB   rG   )rQ  rP  r�   ÚLEGACY_MAPPINGrn   r	  r]   r¶   Ú
IndexErrorr`  rd  ra  rb  re  Úsorted)rœ   rÎ  rz  Únmdr½  r¿  r|  Úfoundr  Úr1Úr2s              r   Ú
_to_legacyÚMetadata._to_legacyË  s+  € ò	ð* �z�z $§,§,Ð.Ð.ÜÓ!ˆØ�j‰jˆà×)Ñ)×/Ñ/Ö1‰FˆBÜ˜b¤%×(Ñ(Ø“9Ø!$¡�F“Jñ ð �Ø�Û�AðØ™Dšñ ÷ �5Ø!"˜2“Jñ 2ñ ˜T×.Ñ.°×1CÑ1CÑCÓDˆÙ˜T×0Ñ0°4×3DÑ3DÑDÓEˆØ�;�;Ü'-¨d¯k©kÓ':ˆFÐ#Ñ$Ü"(¨£*ˆˆÑÜ(.¨r«
ˆÐ$Ñ%àˆøô %¤jÐ1ó Ø %˜Ûðús   ÂD)Ä)E Ä?E c           	      óJ  • X/R                  S 5      S:w  a  [        S5      eU R                  5         U(       aU  U R                  (       a  U R                  nOU R	                  5       nU(       a  UR                  XS9  g UR                  X$S9  g U R                  (       a  U R                  5       nOU R                  nU(       a  [        R                  " XbSSSS9  g [        R                  " USS5       n[        R                  " XgSSSS9  S S S 5        g ! , (       d  f       g = f)	Nr   z)Exactly one of path and fileobj is needed)r÷   Tr�   )Úensure_asciiÚindentÚ	sort_keysrõ   r)   )r’   r_   rW  rP  r×  r¨   rö   r¦  rQ  r[  Údumprá   râ   )rœ   r�   rž   rM  r÷   Ú	legacy_mdr|  rV   s           r   r¨   ÚMetadata.writeý  sØ   € Øˆ?× Ñ  Ó&¨!Ó+ÜÐHÓIÐIØ�‰ŒÞØ�|�|Ø ŸL™L‘	à ŸO™OÓ-�	ÞØ—‘ �Ò@à×$Ñ$ WÐ$ÒHà�|�|Ø×%Ñ%Ó'‘à—J‘J�ÞÜ—	’	˜!°4ÀØ$(ó*ô —[’[  s¨GÔ4¸Ü—I’I˜a°¸aØ(,ò.÷ 5×4Ö4ús   Ã3DÄ
D"c                 óT  • U R                   (       a  U R                   R                  U5        g U R                  R                  S/ 5      nS nU H  nSU;  d  M  SU;  d  M  Un  O   Uc  SU0nUR	                  SU5        g [        US   5      [        U5      -  n[        U5      US'   g )Nr`  r™  r˜  rš  r   )rP  r6  rQ  r‰  Úinsertr±   rÒ  )rœ   r5  r`  ÚalwaysÚentryÚrsets         r   r6  ÚMetadata.add_requirements  sŸ   € Ø�<�<Ø�L‰L×)Ñ)¨,Õ7àŸ:™:×0Ñ0°ÀÓDˆLØˆFÛ%�Ø ¨Õ-°'ÀÕ2FØ"�FÙñ &ð ‰~Ø% |Ð5�Ø×#Ñ# A vÕ.ä˜6 *Ñ-Ó.´°\Ó1BÑB�Ü%+¨D£\��zÒ"r   c           	      ó¸   • U R                   =(       d    SnU R                  =(       d    SnSU R                  R                  < SU R                  < SU< SU< S3	$ )Nz	(no name)z
no versionrD  r„   r’  z)>)r‰   ra   rF  r   rÉ   )rœ   r‰   ra   s      r   rG  ÚMetadata.__repr__(  sD   € Ø�y‰y×'˜KˆØ—,‘,×. ,‰Ø$(§N¡N×$;Ô$;Ø$(×$9Ô$9»4ÃðJð 	Jr   )rQ  rP  r—   rI  rS   )NN)NNFT)2r   r   r   r   r   ÚreÚcompileÚMETADATA_VERSION_MATCHERÚIÚNAME_MATCHERÚFIELDNAME_MATCHERr   ÚVERSION_MATCHERÚSUMMARY_MATCHERrX  r   rY  r¯  r´  rª  r€  Ú	__slots__r    r±   rm  r
  Ú	none_listÚdictÚ	none_dictrn  ru  r…  rŠ  ÚpropertyrŽ  r‘  Úsetterr   r§  r«  rV  rW  r2  r¦  rÐ  r×  r¨   r6  rG  r   r   r   r   r&   r&   b  s%  † ñð  "ŸzšzÐ*:Ó;Ðà—:’:ÐAÀ2Ç4Á4ÓH€LàŸ
š
Ð#AÀ2Ç4Á4ÓHÐà'€Oà—j’j Ó-€OàÐà Ñ,€Ið ØØñ€Nð!€Jð/€Oð
 6°rÐ:Ø˜{Ð+Ø# [Ð1Ø# [Ð1Ø% {Ð3ñÐð /€Ià8<Ø!ô+$ñZ ÐKÓL€Kà�t�€IØ�t�€Ið )¨$Ð/Ø0°$Ð7Ø!Ø"Ø"Ø# TÐ*ØØØØØ$ dÐ+Ø,Ø6ñ€Kð  	�9ò)ôVJò%(ðN ñDó ðDð ñó ðð ‡_�_ñ+ó ð+ô(ðT ñó ðð
 ñDó ðDð ×Ññ%ó ð%ò/ò<òòð< ØØ5>ØØ$ØBMØAIØBPØ$Ø9Eñ€Nò0ôd.ò42õ"Jr   r&   rJ  )Kr   Ú
__future__r   rá   rÇ  r   r[  r  rè  r¹  r   r   Úcompatr   r	   r
   rj   r   Úutilr   r   ra   r   r   Ú	getLoggerr   rp   r   r   r!   r$   Ú__all__r'   r(   ré  rË   rÊ   r[   r\   rs   rT   rt   Ú_426_FIELDSÚ_426_MARKERSr^   ru   rv   r`   r±   r¾   rš   ÚEXTRA_RErb   r€   r¿   rˆ   rÀ   rn   r.  r  r  r  rÃ   rë   rÄ   r  rt  r  r†   r‹   r�   ÚMETADATA_FILENAMEÚWHEEL_METADATA_FILENAMEÚLEGACY_METADATA_FILENAMEr&   )r‰   r(  rð   s   000r   Ú<module>r     sY  ðñõ (ã Ý #Û Û Û 	÷ ,ß 5Ñ 5Ý ß ,ß 2à	×	Ò	˜8Ó	$€ô)Ð+ô )ôIÐ,ô Iô+Ð'7ô +ô&Ð+ô &ò J€ð Ð ð #Ð à—:’:˜nÓ-Ð Ø—z’z ,Ó/Ð ð€ð
'€ð €ð7€ð3€ð!€ð4€ð ð Bñ B€ð -€à*€à˜LÑ(€á‹e€Ø × Ñ �;Ô Ø × Ñ �;Ô Ø × Ñ �;Ô Ø × Ñ �;Ô Ø × Ñ �;Ô Ø × Ñ �;Ô à�:Š:Ð?Ó@€ò4ò$DñR 6AóÙ5@¨T‡J�JƒL×Ñ˜˜cÓ" DÒ(±[ñ€ð /:×.?Ñ.?Ô.AÔBÑ.A™{˜tˆuŠ{Ñ.AÒB€àHÐ Ø'Ð Ø€ð>€ð
 $Ð à€àC€á‹8€à�JŠJÐ'Ó(€	ô
%ôe-�Vô e-ðP "Ð Ø)Ð Ø%Ð ôJJˆvõ JJùòeùó Cs   Å)G/ÆG4