+
    <jD                        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                       ] tR t^tRtRtR# )MetadataMissingErrorzA required metadata is missing N__name__
__module____qualname____firstlineno____doc____static_attributes__r       Q/opt/headortail/venv/lib/python3.14/site-packages/pip/_vendor/distlib/metadata.pyr   r      s    (r   r   c                       ] 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                       ] 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                       ] 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                 <   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   >   "   T F  q\         9  g   K  Vx  K  	  R # 5i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)1.32.1)_241_FIELDS_314_FIELDSr)   tuple_566_FIELDS
ValueError_643_FIELDSr   )versions   &r   _version2fieldlistr9   g   s    %	E		E		N	"UU"Rk"RURRU"Rk"RRRR	E	FGG	E	
*7
33r   c                   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                 x   a  \         ;QJ d    V 3R  lV 4       F  '       g   K   R# 	  R# ! V 3R  lV 4       4      # )c              3   ,   <"   T F	  qS9   x  K  	  R # 5ir(   r   )r*   markerkeyss   & r   r,   5_best_version.<locals>._has_marker.<locals>.<genexpr>}   s     8fT>s   TF)any)r>   markerss   f&r   _has_marker"_best_version.<locals>._has_marker|   s,    s88ss8s8s8888r   UNKNOWNNr%   r"   r&   r0   r1   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&   r0   r1   r/   )itemsr2   removeloggerdebugr3   r)   r5   r7   lenr   _314_MARKERS_345_MARKERS_566_MARKERS_643_MARKERSintPKG_INFO_PREFERRED_VERSION)
fieldsrB   keyvaluer>   possible_versionsis_1_1is_1_2is_2_1is_2_2s
   &         r   _best_versionrY   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                    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.rZ    .)	_FILESAFEsubreplace)namer8   for_filenames   &&&r   _get_name_and_versionrd      s?      }}S$'--W__S#%>?G$$r   c                      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                ,   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mappingrn   s   &&&&&r   __init__LegacyMetadata.__init__   s    7#))$/!3EFF !IIdO NN7# KK %%' !r   c                J    \        V P                  4      V P                  R &   R# Metadata-VersionN)rY   rk   rs   s   &r   rr   #LegacyMetadata.set_metadata_version   s    +8+F'(r   c                8    VP                  V: R V: R24       R# )z: 
N)write)rs   ru   rb   rS   s   &&&&r   _write_fieldLegacyMetadata._write_field  s    D%01r   c                $    V P                  V4      # r(   )getrs   rb   s   &&r   __getitem__LegacyMetadata.__getitem__  s    xx~r   c                $    V P                  W4      # r(   )set)rs   rb   rS   s   &&&r   __setitem__LegacyMetadata.__setitem__	  s    xx$$r   c                x    V P                  V4      p V P                  V R #   \         d    \        T4      hi ; ir(   )_convert_namerk   KeyError)rs   rb   
field_names   && r   __delitem__LegacyMetadata.__delitem__  s<    ''-
	!Z( 	!4. 	!s   " 9c                j    WP                   9   ;'       g    V P                  V4      V P                   9   # r(   )rk   r   r   s   &&r   __contains__LegacyMetadata.__contains__  s+    $PP(:(:4(@DLL(PQr   c                    V\         9   d   V# VP                  R R4      P                  4       p\        P	                  W4      # )rZ   r[   )_ALL_FIELDSra   lower_ATTR2FIELDr   r   s   &&r   r   LegacyMetadata._convert_name  s7    ;K||C%++-t**r   c                6    V\         9   g   V\        9   d   . # R # )rD   )_LISTFIELDS_ELEMENTSFIELDr   s   &&r   _default_valueLegacyMetadata._default_value  s    ;$."8Ir   c                |    V P                   R9   d   \        P                  RV4      # \        P                  RV4      # )r%   r   r%   r"   )metadata_version_LINE_PREFIX_PRE_1_2r`   _LINE_PREFIX_1_2rs   rS   s   &&r   _remove_line_prefix"LegacyMetadata._remove_line_prefix!  s6      N2'++D%88#''e44r   c                >    V\         9   d	   W,          # \        V4      hr(   )r   AttributeErrorr   s   &&r   __getattr__LegacyMetadata.__getattr__'  s    ;:T""r   c                8    \        V R,          V R,          V4      # )zb
Return the distribution name with version.

If filesafe is true, return a filename-escaped form.
NameVersion)rd   )rs   filesafes   &&r   get_fullname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)r   r   r   s   &&r   is_fieldLegacyMetadata.is_field8  s    !!$'{""r   c                6    V P                  V4      pV\        9   # r(   )r   r   r   s   &&r   is_multi_fieldLegacyMetadata.is_multi_field=  s    !!$'{""r   c                    \         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!   encodingN)codecsopenrp   close)rs   filepathfps   && r   ro   LegacyMetadata.readA  s8    [[39	NN2HHJBHHJ	   > Ac           	        \        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-versionr{   N,rD   rE   )
r   rk   r   r   get_all_LISTTUPLEFIELDSr4   splitr   get_payload)rs   fileobmsgfieldvaluesrS   bodys   &&     r   rp   LegacyMetadata.read_fileI  s    '+./A+B'( !E#U+,,1CCIJ6%eEKK$456FJ' 
$));HHU* !"  &*d]0C] Ks   "#C.c                    \         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   )rs   r   skip_unknownr   s   &&& r   r   LegacyMetadata.writee  s8    [[39	OOB-HHJBHHJr   c                ,   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.r{   rD   r   rE   r   r#   z	
       |Nr   )
rr   r9   r   r   r   joinr   r   ra   r   )rs   
fileobjectr   r   r   rS   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                  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                 x   < V \         9   d.   V'       d$   SP                  SP                  V 4      V4       R # R # R # r(   )r   r   r   )rR   rS   rs   s   &&r   _set#LegacyMetadata.update.<locals>._set  s.    k!e++C0%8 ',!r   r>   N)hasattrr>   rF   )rs   otherkwargsr   kvs   f&,   r   rq   LegacyMetadata.update  sq    	9 UF##ZZ\Qa! " Q
  Q
 ' r   c                F   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')rE   )r   r   
isinstancelistr4   r   r   stripr   rH   isEnabledForloggingWARNINGr   rn   _PREDICATE_FIELDSis_valid_matcherwarning_VERSIONS_FIELDSis_valid_constraint_list_VERSION_FIELDSis_valid_version_UNICODEFIELDSr   rk   )rs   rb   rS   r   project_namern   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                N   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   )r   rk   _MISSINGr   r   r   r   appendr   r   r   r   )rs   rb   defaultrS   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                p  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, r{   r&   c                 z   < V  F3  pSP                  VP                  R 4      ^ ,          4      '       d   K2   R# 	  R# )r   FT)r   r   )rS   r   rn   s   & r   are_valid_constraints3LegacyMetadata.check.<locals>.are_valid_constraints   s2    ..qwws|A??   r   NzWrong value for 'z': )r   r   )	Home-pageAuthor)rr   r   r   r   r   rn   r   r   r   r   r   r   )rs   strictmissingwarningsattrr   r   rQ   
controllerr   rS   rn   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                0   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.
r{   project_urlr   )rr   r9   rk   _FIELD2ATTRr   )rs   skip_missingrQ   datar   rR   us   &&     r   todictLegacyMetadata.todict  s     	!!##D);$<= J:#=!*--' $ 0DI6:6F G6F!6F GDI !  !Hs   .Bc                r    V R ,          R8X  d   R F  pW 9   g   K  W K  	  V R;;,          V,          uu&   R# )r{   r"   Requires-DistN)	ObsoletesRequiresProvidesr   )rs   requirementsr   s   && r   add_requirementsLegacyMetadata.add_requirements'  s6    "#u,>= ? 	_-r   c                8    \        \        V R ,          4      4      # )r{   )r   r9   r|   s   &r   r>   LegacyMetadata.keys2  s    &t,>'?@AAr   c              #  D   "   V P                  4        F  pVx  K	  	  R # 5ir(   r>   rs   rR   s   & r   __iter__LegacyMetadata.__iter__5  s     99;CI s    c                X    V P                  4        Uu. uF  qV,          NK  	  up# u upi r(   r  r  s   & r   r   LegacyMetadata.values9  s$    %)YY[1[cS		[111s   'c                Z    V P                  4        Uu. uF  qW,          3NK  	  up# u upi r(   r  r  s   & r   rF   LegacyMetadata.items<  s%    ,0IIK8KSdi K888s   (c                p    R V P                   P                  : RV P                  : RV P                  : R2# )<r]   >)	__class__r   rb   r8   r|   s   &r   __repr__LegacyMetadata.__repr__?  s!    #~~66		4<<PPr   )rm   rk   rl   rn   NNNr   Fr(   )%r   r   r   r   r   rw   rr   r   r   r   r   r   r   r   r   r   r   r   r   ro   rp   r   r   rq   r   r   r   r  r  r  r>   r  r   rF   r(  r   __classdictcell____classdict__s   @r   rf   rf      s     (G2%!R+
5#N#
#D8<2:$#L !) ":(!T..B29Q Qr   rf   zpydist.jsonzmetadata.jsonMETADATAc                     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)rb   r8   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_environmentsr   dynamicNc                ^   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)Nrh   )rv   rn   rbr   	generatorr!   )ru   rn   )ri   rj   _legacy_datarn   _validate_mappingr   rf   validater   ro   METADATA_VERSION	GENERATORr   r   decodejsonloadsr6   r   )rs   rt   ru   rv   rn   r  r+   s   &&&&&  r   rw   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_requirestest_requiresmeta_requiresextrasProvides-Extramodules
namespacesexportscommandsclassifiers
Classifier
source_urlDownload-URLc                   \         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_keysNrK  rL  
extensionspython.commandspython.detailspython.exportsrK  rJ  rH  rI  rL  )object__getattribute__r6  r   r7  )
rs   rR   commonmappedlkmakerresultrS   sentinelds
   &&        r   rY  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                    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' is an invalid value for the 'z
' propertyN)SYNTAX_VALIDATORSrn   matchr   )rs   rR   rS   rn   pattern
exclusionsms   &&&&   r   _validate_valueMetadata._validate_value  so    ((("&"8"8"=G%%$++j8MM%(.FKS0R S S  9 )r   c                   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# )rQ  rR  NrK  rL  rS  rT  rU  rV  keywordsrW  )ri  rX  rY  r6  NotImplementedErrorr7  
setdefault__setattr__r   r   r   r   )rs   rR   rS   rZ  r[  r\  r[   r`  s   &&&     r   ro  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    \        V P                  V P                  R 4      # T)rd   rb   r8   r|   s   &r   name_and_versionMetadata.name_and_version  s    $TYYdCCr   c                    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 ())r6  r7  rn  rb   r8   r   )rs   r^  ss   &  r   rw  Metadata.provides  sW    <<<\\/2FZZ**:r:FDLL1?MM!r   c                f    V P                   '       d   WP                   R &   R# WP                  R&   R# )rv  rw  N)r6  r7  r   s   &&r   rw  r{    s#    <<<,1LL)%*JJz"r   c           	     b   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)rF  env)builddevtest)	r6  r   rF  r   r	   extendrG   r7  get_requirements)
rs   reqtsrF  r  r^  r`  includer=   rR   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                ^    V P                   '       d   V P                  4       # V P                  # r(   )r6  _from_legacyr7  r|   s   &r   
dictionaryMetadata.dictionaryO  s$    <<<$$&&zzr   c                r    V P                   '       d   \        h\        V P                  V P                  4      # r(   )r6  rm  r
   r7  DEPENDENCY_KEYSr|   s   &r   dependenciesMetadata.dependenciesU  s(    <<<%%!$**d.B.BCCr   c                l    V P                   '       d   \        hV P                  P                  V4       R # r(   )r6  rm  r7  rq   r   s   &&r   r  r  \  s#    <<<%%JJe$r   c                   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# )r   zMissing metadata items: %sr   N)	r   r:  r   MANDATORY_KEYSrF   r   r   r   ri  )	rs   rv   rn   r  rR   rg  r   r   r   s	   &&&      r   r8  Metadata._validate_mappingc  s    ;;)*d.C.CC244#2288:OC!+NN3'  ; .71CCC&s++MMODA  v. $r   c                   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)r6  r  rH   r   r8  r7  rn   )rs   r  r  s   &  r   r9  Metadata.validateq  sU    <<< $ 2 24 8G(DgX # ""4::t{{;r   c                    V P                   '       d   V P                   P                  R 4      # \        V P                  V P                  4      pV# rr  )r6  r  r
   r7  
INDEX_KEYS)rs   r^  s   & r   r  Metadata.todicty  s9    <<<<<&&t,,#DJJ@FMr   c                   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# )r   r5  T
classifierrL  Keywords rl  r  rw  )rb   r8   licenser1  descriptionr  ))requires_distr@  )setup_requires_distrA  )r6  r7  r:  r;  r  r   rw  )rs   r^  lmdr   nkkwr>   oks   &       r   r  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  rE   r   r  Author-emailc                   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                 |   \        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) and r   )r   r   addr   )entriesr  r  r~  r  rlistr   r=   s   &       r   process_entries,Metadata._to_legacy.<locals>.process_entries  s    EEgeeM**Au		!!# %4u%<F%v:=v)F),		#((A;"78 	 " Lr   TFrG  r  rB  )r7  r6  rf   LEGACY_MAPPINGrF   r   r4   r   
IndexErrorr@  rE  rA  rC  rF  sorted)rs   r  r^  nmdr  r  r`  foundr   r1r2s   &          r   
_to_legacy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           
        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)ensure_asciiindent	sort_keysr   r!   )ri   r6   r9  r6  r  r   r   r  r7  r=  dumpr   r   )rs   rt   ru   legacyr   	legacy_mdr`  r+   s   &&&&&   r   r   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                r   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  )r6  r  r7  rn  insertr   r  )rs   r  r@  alwaysentryrsets   &&    r   r  Metadata.add_requirements  s    <<<LL)),7::00DLF% -'2F"F & ~$l3##Av.6*-.\1BB%+D\z"r   c           	         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%  r]   rx  z)>)rb   r8   r'  r   r   )rs   rb   r8   s   &  r   r(  Metadata.__repr__  sE    yy''K,,..,$(NN$;$;T=R=RTXZabbr   )r7  r6  rn   r   )r  )r6  r7  rn   r*  )rb   r8   r  rl  r1  )rO  Nrz   r(   )NN)rS  rU  r  )rS  python.projectproject_urlsHome)rS  r  contacts    rb   )rS  r  r  r  email)rS  rU  rL  )NNFT)3r   r   r   r   r   recompileMETADATA_VERSION_MATCHERINAME_MATCHERFIELDNAME_MATCHERr   VERSION_MATCHERSUMMARY_MATCHERr:  r   r;  r  r  r  rd  	__slots__rw   r   rQ  r   	none_listdict	none_dictrR  rY  ri  ro  propertyrs  rw  setterr  r  r  r8  r9  r  r  r  r  r   r  r(  r   r,  r-  s   @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_ENCODINGrP   )r{   r   r   r   r  rE   r  r   r  r  r  )r{   r   r   r   Supported-Platformr  rE   r  r   r  r  r  rM  rO  r  r  r  )r  r  r  rM  rO  )r{   r   r   r   r  r  rE   r  r   r  r  
MaintainerMaintainer-emailr  rM  rO  Obsoletes-DistProject-URLrv  r  Requires-PythonRequires-External)rv  r  r  r  r  r  r  r  )r{   r   r   r   r  r  rE   r  r   r  r  r  r  r  rM  rO  r  r  rv  r  r  r  Private-VersionObsoleted-ByrB  	ExtensionrG  )r  rG  r  rB  r  )Description-Content-Typer  r  r  )r  )DynamicLicense-File)r  r  rv  )r  )r   )r   rM  r  r  r  r  rv  r  r  r  r  rB  rG  r  r  )r  )r  )r  r  r  rE   r+  )Kr   
__future__r   r   r  r   r=  r   r  r  r   r   compatr   r   r   rA   r	   utilr
   r   r8   r   r   	getLoggerr   rH   r   r   r   r   __all__r  rP   r  r   r   r2   r3   rK   r)   rL   _426_FIELDS_426_MARKERSr5   rM   rN   r7   r   r   rq   EXTRA_REr9   rY   r   ra   r   rF   r  r   r   r   r   r   r   r   rX  r   r_   rd   rf   METADATA_FILENAMEWHEEL_METADATA_FILENAMELEGACY_METADATA_FILENAMEr    )rb   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=