+
     hD  c                   s   R t ^ RIHt ^ RIt^ RIHt ^ RIt^ RIt^ RIt^RI	H
t
Ht ^RIHtHtHt ^RIHt ^RIHtHt ^RIHtHt ]P0                  ! ]4      t ! R	 R
]
4      t ! R R]
4      t ! R R]
4      t ! R R]
4      t. R#OtRt Rt!]PD                  ! R4      t#]PD                  ! R4      t$R$t%R%t&R&t'R't(R(t)R)t*R*t+]*R+,           t,R,t-R-t.],].,           t/]0! 4       t1]1Pe                  ]%4       ]1Pe                  ]&4       ]1Pe                  ](4       ]1Pe                  ]*4       ]1Pe                  ],4       ]1Pe                  ]/4       ]PD                  ! R4      t3R t4R t5]1 U u/ uF#  q Pm                  4       Po                  RR4      V bK%  	  up t8]8Ps                  4        UUu/ uF  w  rW!bK	  	  uppt:R.t;R/t<R0t=R1t>R2t?R3t@R4tA]B! 4       tC]PD                  ! R4      tDR5R ltE ! R R]B4      tFRtGR tHR!tI ! R" R]B4      tJR# u up i u uppi )6zzImplementation 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                   s    ] tR t^tRtRtR# )MetadataMissingErrorzA required metadata is missing N__name__
__module____qualname____firstlineno____doc____static_attributes__r       A/usr/lib/python3.14/site-packages/pip/_vendor/distlib/metadata.pyr   r      s    (r   r   c                   s    ] tR t^tRtRtR# )MetadataConflictErrorz>Attempt to read or write metadata fields that are conflictual.r   Nr   r   r   r   r   r      s    Hr   r   c                   s    ] tR t^#tRtRtR# ) MetadataUnrecognizedVersionErrorz Unknown metadata version number.r   Nr   r   r   r   r   r   #   s    *r   r   c                   s    ] tR t^'tRtRtR# )MetadataInvalidErrorzA metadata value is invalidr   Nr   r   r   r   r   r   '   s    %r   r   Metadatautf-81.1z

       \|	
        z"extra\s*==\s*("([^"]+)"|'([^']+)')c                 s<   V R 8X  d   \         # V R8X  d   \        # V R8X  d   \        # V R9   dF   \        \        ;QJ d    . R \         4       F  NK  	  5,           # ! R \         4       4      ,           # V R8X  d   \        R4      hV R8X  d   \        # \        V 4      h)1.0r   1.2c              3   s>   "   T F  q\         9  g   K  Vx  K  	  R # 5iN)_345_FIELDS).0f   & r   	<genexpr>Z%_version2fieldlist.<locals>.<genexpr>p   s     "Rkk=Q11ks   
2.0z+Metadata 2.0 is withdrawn and not supported2.2)1.32.1)_241_FIELDS_314_FIELDSr!   tuple_566_FIELDS
ValueError_643_FIELDSr   )version   &r   _version2fieldlistr2   g   s    %	E		E		N	"UU"Rk"RURRU"Rk"RRRR	E	FGG	E	
*7
33r   c                s   R pV P                  4        UUu. uF  w  r#V. RR39  g   K  VNK  	  ppp. ROpV EFg  pV\        9  d/   RV9   d(   VP                  R4       \        P	                  R
V4       V\
        9  d/   RV9   d(   VP                  R4       \        P	                  RV4       V\        9  d/   RV9   d(   VP                  R4       \        P	                  RV4       V\        9  d/   RV9   d(   VP                  R4       \        P	                  RV4       V\        9  d6   RV9   d/   VR8w  d(   VP                  R4       \        P	                  RV4       V\        9  g   EK6  R	V9   g   EK@  VP                  R	4       \        P	                  RV4       EKj  	  \        V4      ^8X  d
   V^ ,          # \        V4      ^ 8X  d"   \        P	                  RV 4       \        R4      hRV9   ;'       d    V! V\        4      pRV9   ;'       d    V! V\        4      pRV9   ;'       d    V! V\        4      pR	V9   ;'       d    V! V\        4      p	\        V4      \        V4      ,           \        V4      ,           \        V	4      ,           ^8  d   \        R4      hV'       g*   V'       g"   V'       g   V	'       g   \         V9   d   \         # V'       d   R# V'       d   R# V'       d   R# R	# u uppi )z5Detect the best version depending on the fields used.c                 sx   a  \         ;QJ d    V 3R  lV 4       F  '       g   K   R# 	  R# ! V 3R  lV 4       4      # )c              3   s,   <"   T F	  qS9   x  K  	  R # 5ir    r   )r"   markerkeys   & r   r%   Z5_best_version.<locals>._has_marker.<locals>.<genexpr>}   s     8fT>s   TF)Zany)r4   markerss   f&r   _has_markerZ"_best_version.<locals>._has_marker|   s,    s88ss8s8s8888r   UNKNOWNNr   r   r   r(   r)   r'   zRemoved 1.0 due to %szRemoved 1.1 due to %szRemoved 1.2 due to %szRemoved 1.3 due to %sDescriptionzRemoved 2.1 due to %szRemoved 2.2 due to %sz)Out of options - unknown metadata set: %szUnknown metadata setz,You used incompatible 1.1/1.2/2.1/2.2 fields)r   r   r   r(   r)   r'   )itemsr*   removeloggerZdebugr+   r!   r-   r/   Zlenr   _314_MARKERS_345_MARKERS_566_MARKERS_643_MARKERSZintPKG_INFO_PREFERRED_VERSION)
fieldsr7   keyvaluer4   Zpossible_versionsZis_1_1Zis_1_2Zis_2_1Zis_2_2s
   &         r   _best_versionrE   y   sw   9 #),,.W.JCE"iQUAV4VCC.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#$:;; ''KKKl,KF''KKKl,KF''KKKl,KF''KKKl,KF
6{S[ 3v;.V<q@#$RSS &%)::--  Xs
   K3K3-_z[^A-Za-z0-9.]+c                s    V'       d=   \         P                  RV 4      p \         P                  RVP                  RR4      4      pV : RV: 2# )zdReturn the distribution name with version.

If for_filename is true, return a filename-escaped form.rF    Z.)	_FILESAFEsubreplace)namer0   Zfor_filename   &&&r   _get_name_and_versionrN      s?      }}S$'--W__S#%>?G$$r   c                   s   a  ] tR t^t o RtR!R ltR tR tR tR t	R t
R	 tR
 tR tR tR tR"R ltR tR tR tR tR"R ltR"R ltR#R ltR t]3R ltR"R ltR"R ltR tR tR tR t R t!R t"R t#V t$R# )$LegacyMetadataaS  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                s,   WV.P                  R 4      ^8  d   \        R4      h/ V n        . V n        R V n        W@n        Ve   V P                  V4       R # Ve   V P                  V4       R # Ve$   V P                  V4       V P                  4        R # R # )N'path, fileobj and mapping are exclusive)
count	TypeError_fieldsrequires_files_dependenciesschemeread	read_fileupdateset_metadata_version)selfpathfileobjmappingrV   s   &&&&&r   __init__ZLegacyMetadata.__init__   s    7#))$/!3EFF !IIdO NN7# KK %%' !r   c                sJ    \        V P                  4      V P                  R &   R# Metadata-VersionN)rE   rS   r[   r1   r   rZ   Z#LegacyMetadata.set_metadata_version   s    +8+F'(r   c                s8    VP                  V: R V: R24       R# )z: 
N)write)r[   r]   rL   rD   s   &&&&r   _write_fieldZLegacyMetadata._write_field  s    D%01r   c                s$    V P                  V4      # r    )getr[   rL      &&r   __getitem__ZLegacyMetadata.__getitem__  s    xx~r   c                s$    V P                  W4      # r    )set)r[   rL   rD   rM   r   __setitem__ZLegacyMetadata.__setitem__	  s    xx$$r   c                sx    V P                  V4      p V P                  V R #   \         d    \        T4      hi ; ir    )_convert_namerS   KeyError)r[   rL   
field_name   && r   __delitem__ZLegacyMetadata.__delitem__  s<    ''-
	!Z( 	!4. 	!s   " 9c                sj    WP                   9   ;'       g    V P                  V4      V P                   9   # r    )rS   rl   rg   rh   r   __contains__ZLegacyMetadata.__contains__  s+    $PP(:(:4(@DLL(PQr   c                s    V\         9   d   V# VP                  R R4      P                  4       p\        P	                  W4      # )rF   rG   )_ALL_FIELDSrK   lower_ATTR2FIELDrf   rg   rh   r   rl   ZLegacyMetadata._convert_name  s7    ;K||C%++-t**r   c                s6    V\         9   g   V\        9   d   . # R # )r8   )_LISTFIELDS_ELEMENTSFIELDrg   rh   r   _default_valueZLegacyMetadata._default_value  s    ;$."8Ir   c                s|    V P                   R9   d   \        P                  RV4      # \        P                  RV4      # )r   rc   r   r   )metadata_version_LINE_PREFIX_PRE_1_2rJ   _LINE_PREFIX_1_2r[   rD   rh   r   _remove_line_prefixZ"LegacyMetadata._remove_line_prefix!  s6      N2'++D%88#''e44r   c                s>    V\         9   d	   W,          # \        V4      hr    )rt   ZAttributeErrorrg   rh   r   __getattr__ZLegacyMetadata.__getattr__'  s    ;:T""r   c                s8    \        V R,          V R,          V4      # )zb
Return the distribution name with version.

If filesafe is true, return a filename-escaped form.
NameVersion)rN   )r[   Zfilesaferh   r   get_fullnameZLegacyMetadata.get_fullname0  s     %T&\4	?HMMr   c                6    V P                  V4      pV\        9   # )z+return True if name is a valid metadata key)rl   rr   rg   rh   r   is_fieldZLegacyMetadata.is_field8  s    !!$'{""r   c                r   r    )rl   ru   rg   rh   r   is_multi_fieldZLegacyMetadata.is_multi_field=  s    !!$'{""r   c                s    \         P                  ! VRRR7      p V P                  V4       VP                  4        R#   TP                  4        i ; i)z*Read the metadata values from a file path.rr   ZencodingN)codecsopenrX   close)r[   filepathfpro   r   rW   ZLegacyMetadata.readA  s8    [[39	NN2HHJBHHJ	   > Ac           	     s   \        V4      pVR,          V P                  R&   \         F  pW29  d   K  V\        9   d]   VP	                  V4      pV\
        9   d.   Ve*   V Uu. uF  p\        VP                  R4      4      NK  	  ppV P                  W44       Kr  W#,          pVf   K  VR8w  g   K  V P                  W54       K  	  VP                  4       pV'       d   TMV R,          V R&   R# u upi )z,Read the metadata values from a file object.zmetadata-versionra   N,r8   r9   )
r   rS   rr   ru   Zget_all_LISTTUPLEFIELDSr,   splitrj   Zget_payload)r[   ZfileobmsgfieldvaluesrD   Zbody   &&     r   rX   ZLegacyMetadata.read_fileI  s    '+./A+B'( !E#U+,,1CCIJ6%eEKK$456FJ' 
$));HHU* !"  &*d]0C] Ks   "#C.c                s    \         P                  ! VRRR7      p V P                  W24       VP                  4        R#   TP                  4        i ; i)z&Write the metadata fields to filepath.wr   r   N)r   r   
write_filer   )r[   r   skip_unknownr   s   &&& r   rd   ZLegacyMetadata.writee  s8    [[39	OOB-HHJBHHJr   c                s,   V P                  4        \        V R,          4       F  pV P                  V4      pV'       d   VR. R.39   d   K)  V\        9   d$   V P	                  WRP                  V4      4       KW  V\        9  dA   VR8X  d7   V P                  R	9   d   VP                  RR4      pMVP                  RR4      pV.pV\        9   d!   V Uu. uF  pRP                  V4      NK  	  ppV F  pV P	                  WV4       K  	  K  	  R# u upi )
z0Write the PKG-INFO format data to a file object.ra   r8   r   r9   rc   r   z	
       |Nrx   )
rZ   r2   rf   rv   re   joinru   ry   rK   r   )r[   Z
fileobjectr   r   r   rD      &&&   r   r   Z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                s  a  V 3R lpV'       g   ML\        VR4      '       d(   VP                  4        F  pV! WAV,          4       K  	  MV F  w  rEV! WE4       K  	  V'       d$   VP                  4        F  w  rEV! WE4       K  	  R# R# )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                 sx   < V \         9   d.   V'       d$   SP                  SP                  V 4      V4       R # R # R # r    )rt   rj   rl   )rC   rD   r[   s   &&r   _setZ#LegacyMetadata.update.<locals>._set  s.    k!e++C0%8 ',!r   r4   N)Zhasattrr4   r:   )r[   ZotherZkwargsr   kvs   f&,   r   rY   ZLegacyMetadata.update  sq    	9 UF##ZZ\Qa! " Q
  Q
 ' r   c                sF   V P                  V4      pV\        9   g   VR8X  dd   \        V\        \        34      '       gH   \        V\
        4      '       d/   VP                  R4       Uu. uF  q3P                  4       NK  	  ppMF. pMCV\        9   d9   \        V\        \        34      '       g   \        V\
        4      '       d   V.pM. p\        P                  \        P                  4      '       d   V R,          p\        V P                  4      pV\        9   dU   VeQ   V FI  pVP!                  VP                  R4      ^ ,          4      '       d   K2  \        P#                  RWCV4       KK  	  M{V\$        9   d4   Ve0   VP'                  V4      '       g   \        P#                  RWBV4       M=V\(        9   d3   Ve/   VP+                  V4      '       g   \        P#                  RWBV4       V\,        9   d   VR8X  d   V P/                  V4      pW P0                  V&   R# u upi )	z"Control then set a metadata field.Platformr   r   N;z$'%s': '%s' is not valid (field '%s')z.'%s': '%s' is not a valid version (field '%s')r9   )rl   rv   
isinstancelistr,   r   r   stripru   r<   ZisEnabledForloggingZWARNINGr
   rV   _PREDICATE_FIELDSis_valid_matcherwarning_VERSIONS_FIELDSis_valid_constraint_list_VERSION_FIELDSis_valid_version_UNICODEFIELDSr}   rS   )r[   rL   rD   r   Zproject_namerV   r   r   rj   Z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                sN   V P                  V4      pWP                  9  d   V\        J d   V P                  V4      pV# V\        9   d   V P                  V,          pV# V\
        9   df   V P                  V,          pVf   . # . pV FB  pV\        9  d   VP                  V4       K!  VP                  V^ ,          V^,          34       KD  	  V# V\        9   d;   V P                  V,          p\        V\        4      '       d   VP                  R4      # V P                  V,          # )zGet a metadata field.r   )rl   rS   _MISSINGrw   r   ru   r   appendrv   r   r   r   )r[   rL   defaultrD   ZresZvalr   r   rf   ZLegacyMetadata.get  s    !!$'||#("--d3N>!LL&EL[ LL&E}	C//JJsO JJAA/0  J^#LL&E%..{{3''||D!!r   c                sp  a V P                  4        . . r2R	 F  pW@9  g   K  VP                  V4       K  	  V'       d+   V. 8w  d$   RRP                  V4      ,          p\        V4      hR
 F  pW@9  g   K  VP                  V4       K  	  V R,          R8w  d   W#3# \	        V P
                  4      oV3R lp\        V3\        SP                  3\        SP                  33 FO  w  rxV FD  p	V P                  V	R4      p
V
f   K  V! V
4      '       d   K+  VP                  RV	: RV
: 24       KF  	  KQ  	  W#3# )zcCheck if the metadata is compliant. If strict is True then raise if
no Name or Version are providedzmissing required metadata: %s, ra   r   c                 sz   < V  F3  pSP                  VP                  R 4      ^ ,          4      '       d   K2   R# 	  R# )r   FT)r   r   )rD   r   rV   r5   r   are_valid_constraintsZ3LegacyMetadata.check.<locals>.are_valid_constraints   s2    ..qwws|A??   r   NzWrong value for 'z': )r   r   )	Home-pageAuthor)rZ   r   r   r   r
   rV   r   r   r   r   r   rf   )r[   Zstrictmissingwarningsattrr   r   rB   Z
controllerr   rD   rV   s   &&         @r   checkZ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                s0   V P                  4        \        V R,          4      p/ pV Ff  pV'       d   W@P                  9   g   K  \        V,          pVR8w  d   W,          W5&   K=  W,           Uu. uF  pRP	                  V4      NK  	  upW5&   Kh  	  V# u upi )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.
ra   Zproject_urlr   )rZ   r2   rS   _FIELD2ATTRr   )r[   Zskip_missingrB   datarn   rC   Zur   r   todictZLegacyMetadata.todict  s     	!!##D);$<= J:#=!*--' $ 0DI6:6F G6F!6F GDI !  !Hs   .Bc                sr    V R ,          R8X  d   R F  pW 9   g   K  W K  	  V R;;,          V,          uu&   R# )ra   r   Requires-DistN)	ObsoletesRequiresProvidesr   )r[   requirementsr   ro   r   add_requirementsZLegacyMetadata.add_requirements'  s6    "#u,>= ? 	_-r   c                s8    \        \        V R ,          4      4      # )ra   )r   r2   rb   r1   r   r4   ZLegacyMetadata.keys2  s    &t,>'?@AAr   c              #  sD   "   V P                  4        F  pVx  K	  	  R # 5ir    r4   r[   rC   r$   r   __iter__ZLegacyMetadata.__iter__5  s     99;CI s    c                sX    V P                  4        Uu. uF  qV,          NK  	  up# u upi r    r   r   r$   r   r   ZLegacyMetadata.values9  s$    %)YY[1[cS		[111s   'c                sZ    V P                  4        Uu. uF  qW,          3NK  	  up# u upi r    r   r   r$   r   r:   ZLegacyMetadata.items<  s%    ,0IIK8KSdi K888s   (c                sp    R V P                   P                  : RV P                  : RV P                  : R2# )<rH   Z>)	__class__r   rL   r0   rb   r1   r   __repr__ZLegacyMetadata.__repr__?  s!    #~~66		4<<PPr   )rU   rS   rT   rV   NNNr   Fr    )%r   r   r   r   r   r_   rZ   re   ri   rk   rp   rq   rl   rw   r}   r~   r   r   r   rW   rX   rd   r   rY   rj   r   rf   r   r   r   r4   r   r   r:   r   r   __classdictcell__Z__classdict__   @r   rO   rO      s     (G2%!R+
5#N#
#D8<2:$#L !) ":(!T..B29Q Qr   rO   zpydist.jsonzmetadata.jsonZMETADATAc                   s  a  ] tR tRt o Rt]P                  ! R4      t]P                  ! R]P                  4      t	]P                  ! R]P                  4      t
]t]P                  ! R4      tRtR],          tR	R?R
R?RR@/tRtRtR]R?3R	]	R@3R
]R@3R]R@3R]
R@3/tRAtRBR lt]! RC4      tR]3tR]3tRR]3RR]3R]R]R]RR]3R]R]R]R]RR ]3R!RDRRE/tAAR# tRFR$ ltR% t ]!R& 4       t"]!R' 4       t#]#PH                  R( 4       t#RGR) lt%]!R* 4       t&]!R+ 4       t']'PH                  R, 4       t'R- t(R. t)R/ t*R0 t+R	R1R
R2RHR3RR4R5R6RIR7RJR8RKR9R!R"RLR /
t,R: t-RMR; lt.R< t/R= t0R>t1V t2R# )Nr   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}r&   zdistlib (%s)rL   r0   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_environmentsry   ZdynamicNc                s^   WV.P                  R 4      ^8  d   \        R4      hR V n        R V n        W@n        Ve    V P                  W44       W0n        R # R pV'       d/   \        VR4      ;_uu_ 4       pVP                  4       pR R R 4       MV'       d   VP                  4       pVf"   RV P                  RV P                  /V n        R # \        V\        4      '       g   VP                  R4      p \         P"                  ! V4      V n        V P                  V P                  V4       R #   \         d&    \        Y4R7      T n        T P                  4         R # i ; i  + '       g   i     L; i  \$         d0    \        \'        T4      TR7      T n        T P                  4         R # i ; i)NrP   )r^   rV   Zrbry   	generatorr   )r]   rV   )rQ   rR   _legacy_datarV   _validate_mappingr   rO   validater   rW   METADATA_VERSION	GENERATORr   r   ZdecodejsonZloadsr.   r   )r[   r\   r]   r^   rV   r   r#   s   &&&&&  r   r_   ZMetadata.__init__u  sX   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, 4E37E2 ,,EEE/	26F,+F,run_requiresr   build_requiresSetup-Requires-Distdev_requiresZtest_requiresmeta_requiresextrasProvides-Extramodules
namespacesexportscommandsclassifiers
ClassifierZ
source_urlDownload-URLc                s   \         P                  V R 4      p\         P                  V R4      pW9   EdP   W1,          w  rEV P                  '       d2   Vf   Vf   RMV! 4       pV# V P                  P                  V4      p V# Vf   RMV! 4       pVR	9  d   V P                  P                  W4      pV# \        4       pTpV P                  P                  R4      p	V	'       d   VR8X  d   V	P                  RV4      pMVR8X  d,   V	P                  R4      p	V	'       d   V	P                  W4      pMMV	P                  R4      p	V	'       g   V P                  P                  R4      p	V	'       d   V	P                  W4      pWhJ d   TpV# W9  d   \         P                  W4      pV# V P                  '       d   V P                  P                  V4      pV# V P                  P                  V4      pV# )
common_keysmapped_keysNr   r   
extensionspython.commandspython.detailspython.exportsr   r   r   r   r   )object__getattribute__r   rf   r   )
r[   rC   commonmappedlkZmakerresultrD   Zsentinelds
   &&        r   r   Z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                s    WP                   9   db   V P                   V,          w  rET;'       g    V P                  V9  d0   VP                  V4      pV'       g   \        R V: RV: R24      hR# R# R# )Z'z' is an invalid value for the 'z
' propertyN)SYNTAX_VALIDATORSrV   Zmatchr   )r[   rC   rD   rV   Zpattern
exclusionsZms   &&&&   r   _validate_valueZMetadata._validate_value  so    ((("&"8"8"=G%%$++j8MM%(.FKS0R S S  9 )r   c                s   V P                  W4       \        P                  V R 4      p\        P                  V R4      pW9   d   WA,          w  rVV P                  '       d   Vf   \        hW P                  V&   R# VR
9  d   W P
                  V&   R# V P
                  P                  R/ 4      pVR8X  d   W'R&   R# VR8X  d   VP                  R/ 4      pW'V&   R# VP                  R/ 4      pW'V&   R# W9  d   \        P                  WV4       R# VR	8X  dB   \        V\        4      '       d,   VP                  4       pV'       d   VP                  4       pM. pV P                  '       d   W P                  V&   R# W P
                  V&   R# )r   r   Nr   r   r   r   r   r   keywordsr   )r   r   r   r   NotImplementedErrorr   
setdefault__setattr__r   r   r   r   )r[   rC   rD   r   r   r   rG   r   s   &&&     r   r   Z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                sD    \        V P                  V P                  R 4      # T)rN   rL   r0   rb   r1   r   name_and_versionZMetadata.name_and_version  s    $TYYdCCr   c                s    V P                   '       d   V P                   R ,          pMV P                  P                  R. 4      pV P                  : RV P                  : R2pW!9  d   VP                  V4       V# )Provides-Distprovides (Z))r   r   r   rL   r0   r   )r[   r   Zs   &  r   r   Metadata.provides  sW    <<<\\/2FZZ**:r:FDLL1?MM!r   c                sf    V P                   '       d   WP                   R &   R# WP                  R&   R# )r   r   N)r   r   r|   rh   r   r   r     s#    <<<,1LL)%*JJz"r   c           	     sb   V P                   '       d   TpV# . p\        T;'       g    . V P                  4      pV F  pRV9  d   RV9  d   RpMJRV9  d   RpMVP                  R4      V9   pV'       d%   VP                  R4      pV'       d   \	        Ws4      pV'       g   Kh  VP                  VR,          4       K  	  R Fj  pRV,          p	W9   g   K  VP                  V	4       V P                  P                  RV,          . 4      pVP                  V P                  WVR7      4       Kl  	  V# )	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requiresz:%s:z%s_requires)r   env)ZbuildZdevZtest)	r   r	   r   rf   r   Zextendr;   r   get_requirements)
r[   reqtsr   r   r   r   Zincluder3   rC   es
   &&&&      r   r   Z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                s^    V P                   '       d   V P                  4       # V P                  # r    )r   _from_legacyr   rb   r1   r   
dictionaryZMetadata.dictionaryO  s$    <<<$$&&zzr   c                sr    V P                   '       d   \        h\        V P                  V P                  4      # r    )r   r   r   r   DEPENDENCY_KEYSrb   r1   r   dependenciesMetadata.dependenciesU  s(    <<<%%!$**d.B.BCCr   c                sl    V P                   '       d   \        hV P                  P                  V4       R # r    )r   r   r   rY   r|   rh   r   r  r  \  s#    <<<%%JJe$r   c                s   VP                  R 4      V P                  8w  d   \        4       h. pV P                  P	                  4        F&  w  rEWA9  g   K  W%9  g   K  VP                  V4       K(  	  V'       d$   RRP                  V4      ,          p\        V4      hVP	                  4        F  w  rxV P                  WxV4       K  	  R# )ry   zMissing metadata items: %sr   N)	rf   r   r   MANDATORY_KEYSr:   r   r   r   r   )	r[   r^   rV   r   rC   r   r   r   r   s	   &&&      r   r   ZMetadata._validate_mappingc  s    ;;)*d.C.CC244#2288:OC!+NN3'  ; .71CCC&s++MMODA  v. $r   c                s   V P                   '       dH   V P                   P                  R 4      w  rV'       g	   V'       d   \        P                  RW4       R# R# V P	                  V P
                  V P                  4       R# )Tz#Metadata: missing: %s, warnings: %sN)r   r   r<   r   r   r   rV   )r[   r   r   r   r   r   ZMetadata.validateq  sU    <<< $ 2 24 8G(DgX # ""4::t{{;r   c                s    V P                   '       d   V P                   P                  R 4      # \        V P                  V P                  4      pV# r   )r   r   r   r   
INDEX_KEYS)r[   r   r$   r   r   ZMetadata.todicty  s9    <<<<<&&t,,#DJJ@FMr   c                s   V P                   '       d   V P                  '       d   Q hR V P                  RV P                  /pV P                   P	                  R4      pR
 F!  pW29   g   K  VR8X  d   RpMTpW#,          W&   K#  	  VP                  R. 4      pVR.8X  d   . pWQR&   RpV F*  w  rtWr9   g   K  W',          '       g   K  RW',          /.W&   K,  	  V P                  VR	&   V# )ry   r   T
classifierr   Keywords r   r   r   )rL   r0   licenser   descriptionr
  ))Zrequires_distr   )Zsetup_requires_distr   )r   r   r   r   r   rf   r   )r[   r   Zlmdr   nkZkwr4   ok   &       r   r  ZMetadata._from_legacy  s    |||DJJJ.. 5 5
 ll!!$'WAx$&BB V
 X WWZ$":Bz]FBySWW)3734
  "]]z r   r   r   LicenseSummaryr  r9   r   r   Author-emailc                s   R  pV P                   '       d   V P                  '       d   Q h\        4       pV P                   pV P                  P	                  4        FS  w  rE\        V\        4      '       g   WC9   d   W4,          W%&   K-  K/  TpRpV F  p Wh,          pK  	  V'       g   KO  WbV&   KU  	  V! V P                  V P                  ,           4      p	V! V P                  V P                  ,           4      p
V P                  '       d   \        V P                  4      VR&   \        V	4      VR&   \        V
4      VR&   V#   \        \        3 d    Rp  K  i ; i)c                 s|   \        4       pV  F  pVP                  R 4      pVP                  R4      pVR,          pV Fw  pV'       g   V'       g   VP                  V4       K&  RpV'       d
   RV,          pV'       d   V'       d   RV: RV: 2pMTpVP                  RP                  Wg34      4       Ky  	  K  	  V# )r   r   r   r  zextra == "%s"Z(z) and r   )rj   rf   Zaddr   )Zentriesr  r  r   r   Zrlistr   r3   r  r   process_entriesZ,Metadata._to_legacy.<locals>.process_entries  s    EEgeeM**Au		!!# %4u%<F%v:=v)F),		#((A;"78 	 " Lr   TFr   r   r   )r   r   rO   LEGACY_MAPPINGr:   r   r,   rm   Z
IndexErrorr   r   r   r   r   sorted)r[   r  r   Znmdr  r  r   Zfoundr   Zr1Zr2s   &          r   
_to_legacyZMetadata._to_legacy  s1   	* zzz$,,,..!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           
     s   W.P                  R 4      ^8w  d   \        R4      hV P                  4        V'       d`   V P                  '       d   V P                  pMV P	                  4       pV'       d   VP                  WR7       R # VP                  W$R7       R # V P                  '       d   V P                  4       pMV P                  pV'       d   \        P                  ! WbR^RR7       R # \        P                  ! VRR4      ;_uu_ 4       p\        P                  ! WgR^RR7       R R R 4       R #   + '       g   i     R # ; i)Nz)Exactly one of path and fileobj is needed)r   T)Zensure_asciiZindentZ	sort_keysr   r   )rQ   r.   r   r   r  rd   r   r  r   r   Zdumpr   r   )r[   r\   r]   legacyr   Z	legacy_mdr   r#   s   &&&&&   r   rd   ZMetadata.write  s    ?  &!+HII||| LL	 OO-	@$$W$H|||%%'JJ		!4TR[[sG44IIaa4P 5444s   D22E	c                sr   V P                   '       d   V P                   P                  V4       R# V P                  P                  R . 4      pRpV F  pRV9  g   K  RV9  g   K  Tp M	  Vf   RV/pVP	                  ^ V4       R# \        VR,          4      \        V4      ,          p\        V4      VR&   R# )r   Nr   r   r   )r   r   r   r   Zinsertrj   r  )r[   r   r   ZalwaysZentryZrsets   &&    r   r   ZMetadata.add_requirements  s    <<<LL)),7::00DLF% -'2F"F & ~$l3##Av.6*-.\1BB%+D\z"r   c           	     s    V P                   ;'       g    R pV P                  ;'       g    RpRV P                  P                  : RV P                  : RV: RV: R2	# )z	(no name)z
no versionr   rH   r   z)>)rL   r0   r   r   ry   )r[   rL   r0   r   r   r   ZMetadata.__repr__  sE    yy''K,,..,$(NN$;$;T=R=RTXZabbr   )r   r   rV   r   )r  )r   r   rV   r   )rL   r0   r  r   r   )r   Nr`   r    )NN)r   r   r  )r   python.projectZproject_urlsZHome)r   r  contacts    rL   )r   r  r  r  email)r   r   r   )NNFT)3r   r   r   r   r   recompileZMETADATA_VERSION_MATCHERZIZNAME_MATCHERZFIELDNAME_MATCHERr   ZVERSION_MATCHERZSUMMARY_MATCHERr   r   r   r  r	  r  r   Z	__slots__r_   rj   r   r   Z	none_listZdictZ	none_dictr   r   r   r   Zpropertyr   r   Zsetterr   r  r  r   r   r   r  r  r  rd   r   r   r   r   r   r   r   r   r   H  sm      "zz*:;::A244HL

#A244H'Ojj-O,I 	2<N!J/O
 	5r:|,O\2O\2%|4 /I)$V KLKtItI 	$/0$7	#T*9i9Id+,6K  	9(TS$(L D D   __+ +'R  
 D D % %/<8 	93Y9}@+?@.n7N1fQ02"c cr   )r   PKG_INFO_ENCODINGrA   )ra   r   r   r   r  r9   r  r   r   r  r  )ra   r   r   r   Supported-Platformr  r9   r  r   r   r  r  r   r   r   r   r   )r   r   r   r   r   )ra   r   r   r   r!  r  r9   r  r   r   r  
MaintainerMaintainer-emailr  r   r   Obsoletes-DistProject-URLr   r   Requires-PythonRequires-External)r   r   r&  r$  r'  r"  r#  r%  )ra   r   r   r   r!  r  r9   r  r   r   r  r"  r#  r  r   r   r$  r%  r   r   r&  r'  Private-VersionObsoleted-Byr   	Extensionr   )r(  r   r)  r   r*  )Description-Content-Typer   r   r   )r+  )ZDynamicLicense-File)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  r9   r   )Kr   Z
__future__r    r   r  r   r   r   r  r  r   r   Zcompatr   r   r   r6   r   Zutilr   r	   r0   r
   r   Z	getLoggerr   r<   r   r   r   r   Z__all__r   rA   r  r{   rz   r*   r+   r=   r!   r>   Z_426_FIELDSZ_426_MARKERSr-   r?   r@   r/   rj   rr   rY   ZEXTRA_REr2   rE   rs   rK   rt   r:   r   r   r   r   ru   r   rv   r   r   r   rI   rN   rO   ZMETADATA_FILENAMEZWHEEL_METADATA_FILENAMEZLEGACY_METADATA_FILENAMEr   )rL   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   )G8G=