
    q"hD                        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       N/var/www/html/env/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>p   s     "Rkk=Q11ks   	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   g   sw    %	E		E		N	"U"Rk"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fT>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   y   si   9 #),,.W.JCE"iQUAV4VC.DWB k!e/@&@$$U+LL0#6k!e/@&@$$U+LL0#6k!e/@&@$$U+LL0#6k!e/@&@$$U+LL0#6k!e/@&@m#!((/4c:k!e/@&@$$U+LL0#6' 2 " ##		1	$@&I#$:;; ''KKl,KF''KKl,KF''KKl,KF''KKl,KF
6{S[ 3v;.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 !IIdO NN7# KK %%' !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    xx~r   c                 $    U R                  X5      $ rS   )set)r   r   rz   s      r   __setitem__LegacyMetadata.__setitem__	  s    xx$$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(    $P(:(:4(@DLL(PQr   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_prefix!  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__'  s    ;:T""r   c                 (    [        U S   U S   U5      $ )zb
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_fullname0  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_field8  s    !!$'{""r   c                 6    U R                  U5      nU[        ;   $ rS   )r   r   r   s     r   is_multi_fieldLegacyMetadata.is_multi_field=  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.readA  s8    [[39	NN2HHJBHHJ	   : Ac           	         [        U5      nUS   U R                  S'   [         H  nX2;  a  M
  U[        ;   a[  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        Mo  X#   nUc  Mx  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_fileI  s    '+./A+B'( !E#U+,,1CCIJ6%eEKK$456FJ' 
$));HHU* !"  &*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.writee  s8    [[39	OOB-HHJBHHJr   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_filem  s    !!#'-?(@AEXXe_F9b9+*F F&!!*SXXf5EFK'M),,>!'l!C!'l!C ((7=>ve#((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 UF##ZZ\Qa! " Q
  Q
 ' r   c                    U R                  U5      nU[        ;   d  US:X  ab  [        U[        [        45      (       dG  [        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   !!$'^#tz'9:eVZ\aUbCcCc%..,1KK,<=,<q,<=k!*UT5M*J*J%..w//<L,F((U->A!221773<?CC'M|`de 
 ))e.?66u==NN#SUajno(U->..u55NN#SUajno>!}$007"T= >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>!LL&EL[ LL&E}	C//JJsO JJAA/0  J^#LL&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_constraints3LegacyMetadata.check.<locals>.are_valid_constraints   s2    ..qwws|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1DIIg4FFC&s+++Dt$ ,
 "#u,$$DKK(	 %67L#M$4f6U6U#VYhY_YpYpYr#sF  -$Z->->OO%$OP  #s   r   c                    U R                  5         [        U S   5      n0 nU HX  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'   MZ     U$ s  snf )zReturn 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:#=!*--' $ 0DI6:6F G6F!6F GDI !  !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.keys2  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__5  s     99;CI s   c                 R    U R                  5        Vs/ s H  oU   PM	     sn$ s  snf rS   r;  r<  s     r   r   LegacyMetadata.values9  s"    %)YY[1[cS	[111s   $c                 T    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.items<  s%    ,0IIK8KSdi 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__?  s!    #~~66		4<<PPr   )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    (G2%!R+
5#N#
#D8<2:$#L !) ":(!T..B29Qr   r   zpydist.jsonzmetadata.jsonMETADATAc                   v   \ 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&   iH  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__u  sQ   7#))$/!3EFF
 &&w7$

 D$%668D &%||~| )-(=(=!%

 "$	22;;w/D$!%D!1DJ**4::v>+ 4  -gM  &%  " $ $2(4.QW#XDLMMO$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   ((}=((}==IB||:%*]TFB ? "\\--b1F> ; !&57]]!ZZ^^C7F6 1  &xH%F

|4A*,%&UU+<e%DF M1 !&6 7A )*s): !&6 7A#$$(JJNN3C$D )*s):)!&  ,,T7F
 	 \\\\%%c*F  ZZ^^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  sl    ((("&"8"8"=G%$++j8MM%(.FKS0R S S  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(((}=((}==KEB||:--#(R [["'

3 JJ)),;*$+0'(M)%5r:A"cF%5r:A"cFt%0j e\22!KKME % "||$)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    $TYY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.provides  sU    <<\\/2FZZ**:r:FDLL1?MM!r   c                 `    U R                   (       a  XR                   S'   g XR                  S'   g )NrA   r  )rP  rQ  r   s     r   r  r    s!    <<,1LL)%*JJz"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_requirements&  s    <<F: 7 F"dkk:F!#Q(>"Ga'"&"#%%.F":!"}!5!&/&<G7MM!J-0! " 0SL;MM!$ !JJNN=3+>CEMM$"7"7RU"7"VW 0 r   c                 \    U R                   (       a  U R                  5       $ U R                  $ rS   )rP  _from_legacyrQ  r   s    r   
dictionaryMetadata.dictionaryO  s"    <<$$&&zz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!    <<%%JJ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_mappingc  s    ;;)*d.C.CC244#2288:OC!+NN3'  ; .71CCC&s++MMODA  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.validateq  sS    << $ 2 24 8G(DgX # ""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.todicty  s7    <<<<&&t,,#DJJ@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'   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   oks           r   r  Metadata._from_legacy  s    ||DJJ.. $ 5 5
 ll!!$'WAx$&BB V
 X WWZ$":Bz]FBySWW)37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    EEgeeM**Au		!!# %4u%<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+   	* zz$,,..!jj))//1FBb%((9!$FJ  AD  5!"2J 2 T..1C1CCDT0043D3DDE;;'-dkk':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|| LL	 OO-	@$$W$H||%%'JJ		!4TR[[sG4IIaa4P 544s   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    <<LL)),7::00DLF% -'2F"F & ~$l3##Av.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__  s?    yy'K,,.,$(NN$;$;T=R=RTXZabbr   )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&   H  s      "zz*:;::A244HL

#A244H'Ojj-O,I N!J/O
 6r:|,#\2#\2%|4 /I)$V KLKtItI )$/0$7!""#T*$d+,6K  	9(TS$(L D D   __+ +'R  
 D D % %/<8 5>$BMAIBP$9EN1fQ02"c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     sL   (  #   	 + 5 5  , 2			8	$)+ )I, I+'7 +&+ &
 J   # ::n- zz,/ 4' S7
A. i ]]-*L(e   ;    ;    ;    ;    ;    ; ::?@4$ET ALLzz|##C-t3L.9.?.?.AB.A{tu{.ABH ( > % C8JJ'(	
%\QV \Q~
 " ) % cv cK MBs   *G1G6