ó
    ÷Þ jK¤  ã                  ób  • S SK Jr  S SKrS SKrS SKrS SKrS SKrS SKrS SK	r	S SK
r
S SK
JrJrJrJrJrJr  SSKJrJrJrJr  SSKJr  SSKJrJr  \
R6                  (       a  SSKJr  SS	KJr  \
R<                  " S
5      r/ SQr SPS jr! " S S\"5      r# " S S\SS9r$1 Skr%1 Skr&S1r'SQS jr(SRS jr)SSS jr*0 SS_SS_SS_SS_SS _S!S"_S#S#_S$S%_S&S'_S(S)_S*S*_S+S+_S,S-_S.S/_S0S0_S1S2_S3S4_S5S6S7S8SS9S:S;S<S=S>S?S@SASBSC.Er+\+RY                  5        V Vs0 sH  u  pX_M	     snn r-\	R\                  " SD5      r/ " SE SF\R`                  Rb                  5      r2 " SG SH\Rf                  Rh                  5      r5STSI jr6\7" 5       r8/ SJQr9\SJ   r:\;" / SKQ5      r< " SL SM\\   5      r= " SN SO5      r>gs  snn f )Ué    )ÚannotationsN)ÚAnyÚCallableÚGenericÚLiteralÚ	TypedDictÚcasté   )ÚlicensesÚrequirementsÚ
specifiersÚutils)Úversion)ÚExceptionGroupÚ_ErrorCollector)ÚNormalizedLicenseExpression)ÚVersionÚT)r   ÚInvalidMetadataÚMetadataÚRFC822MessageÚRFC822PolicyÚRawMetadataÚparse_emailc                 ó   • [         $ ©N)Ú__all__© ó    ÚL/var/www/html/gaurav/venv/lib/python3.13/site-packages/packaging/metadata.pyÚ__dir__r!   *   s   € Ü€Nr   c                  óH   ^ • \ rS rSr% SrS\S'    SU 4S jjrS	S jrSrU =r	$ )
r   é.   z@A metadata field contains invalid data.

.. versionadded:: 23.2
ÚstrÚfieldc                ó0   >• Xl         [        TU ]	  U5        g r   )r%   ÚsuperÚ__init__)Úselfr%   ÚmessageÚ	__class__s      €r    r(   ÚInvalidMetadata.__init__7   s   ø€ ØŒ
Ü‰Ñ˜Õ!r   c                óP   • U R                   U R                  U R                  S   44$ )Nr   )r+   r%   Úargs)r)   s    r    Ú
__reduce__ÚInvalidMetadata.__reduce__<   s"   € Ø—‘ §¡¨T¯Y©Y°q©\Ð :Ð;Ð;r   )r%   )r%   r$   r*   r$   ÚreturnÚNone)r1   z-tuple[type[InvalidMetadata], tuple[str, str]])
Ú__name__Ú
__module__Ú__qualname__Ú__firstlineno__Ú__doc__Ú__annotations__r(   r/   Ú__static_attributes__Ú__classcell__©r+   s   @r    r   r   .   s!   ø‡ ñð
 ƒJØ;÷"÷
<ò <r   r   c                  ó`  • \ rS rSr% SrS\S'   S\S'   S\S'   S\S'   S\S	'   S\S
'   S\S'   S\S'   S\S'   S\S'   S\S'   S\S'   S\S'   S\S'   S\S'   S\S'   S\S'   S\S'   S\S'   S\S'   S\S'   S\S'   S\S'   S\S'   S\S'   S\S'   S\S '   S\S!'   S\S"'    S\S#'    S\S$'    S\S%'   S&rg')(r   éD   aº  A dictionary of raw core metadata.

Each field in core metadata maps to a key of this dictionary (when data is
provided). The key is lower-case and underscores are used instead of dashes
compared to the equivalent core metadata field. Any core metadata field that
can be specified multiple times or can hold multiple values in a single
field have a key with a plural name. See :class:`Metadata` whose attributes
match the keys of this dictionary.

Core metadata fields that can be specified multiple times are stored as a
list or dict depending on which is appropriate for the field. Any fields
which hold multiple values in a single field are stored as a list. All fields
are considered optional.
r$   Úmetadata_versionÚnamer   ú	list[str]Ú	platformsÚsummaryÚdescriptionÚkeywordsÚ	home_pageÚauthorÚauthor_emailÚlicenseÚsupported_platformsÚdownload_urlÚclassifiersÚrequiresÚprovidesÚ	obsoletesÚ
maintainerÚmaintainer_emailÚrequires_distÚprovides_distÚobsoletes_distÚrequires_pythonÚrequires_externalúdict[str, str]Úproject_urlsÚdescription_content_typeÚprovides_extraÚdynamicÚlicense_expressionÚlicense_filesÚimport_namesÚimport_namespacesr   N)r3   r4   r5   r6   r7   r8   r9   r   r   r    r   r   D   sÚ   ‡ ñð  ÓØ
ƒIØƒLØÓØƒLØÓØÓØƒNØƒKØÓØƒLð #Ó"ØÓØÓØÓØÓØÓð ƒOØÓØÓØÓØÓØÓØ Ó Ø Ó ð "Ó!ØÓð Óð ÓØ ØÓØ ð ÓØ Ø Ó Ú r   r   F)Útotal>   r?   rF   rH   rB   r   rE   rO   rC   rG   rJ   rT   rP   r>   r[   rX   >   rZ   rM   rL   rN   rA   rK   r]   r\   rR   rQ   rS   rY   r^   rU   rI   rW   c                óh   • U R                  S5       Vs/ sH  oR                  5       PM     sn$ s  snf )zCSplit a string of comma-separated keywords into a list of keywords.Ú,)ÚsplitÚstrip)ÚdataÚks     r    Ú_parse_keywordsrf   Á   s&   € à#Ÿz™z¨#œÓ/™˜!�G‰GŽI™Ñ/Ð/ùÒ/s   ”/c                óz   • 0 nU  H2  nS UR                  S5       5       u  p4nX1;   a  [        S5      eXQU'   M4     U$ )z?Parse a list of label/URL string pairings separated by a comma.c              3  ó>   #   • U H  oR                  5       v •  M     g 7fr   )rc   )Ú.0Úss     r    Ú	<genexpr>Ú&_parse_project_urls.<locals>.<genexpr>á   s   é € Ð@Ñ,? qŸ™Ÿ˜Ò,?ùs   ‚ra   z duplicate labels in project urls)Ú	partitionÚKeyError)rd   ÚurlsÚpairÚlabelÚ_Úurls         r    Ú_parse_project_urlsrt   Æ   sM   € à€DÛˆñ0 A¨D¯N©N¸3Ô,?Ó@‰ˆ�#à‹=ô Ð=Ó>Ð>ØˆU‹ñ? ðB €Kr   c                óP  • [        U[        5      (       a2  U R                  5       n[        U[        5      (       d  [        S5      eU$ U R                  SS9n[        U[        5      (       d  [        S5      e UR                  SS5      $ ! [         a  n[        S5      UeSnAff = f)zGet the body of the message.zpayload is not a stringT©Údecodezpayload in an invalid encodingÚutf8ÚstrictN)Ú
isinstancer$   Úget_payloadÚ
ValueErrorÚbytesrw   ÚUnicodeDecodeError)ÚmsgÚsourceÚpayloadÚbpayloadÚexcs        r    Ú_get_payloadr„   í   s¡   € ô �&œ#×ÑØ—/‘/Ó#ˆô ˜'¤3×'Ñ'ÜÐ6Ó7Ð7Øˆð —?‘?¨$�?Ð/ˆô ˜(¤E×*Ñ*ÜÐ=Ó>Ð>ð	HØ—?‘? 6¨8Ó4Ð4øÜ!ó 	HÜÐ=Ó>ÀCÐGûð	Hús   Á8B
 Â

B%ÂB Â B%rF   zauthor-emailrG   Ú
classifierrK   rC   zdescription-content-typerX   zdownload-urlrJ   rZ   z	home-pagerE   úimport-namer]   zimport-namespacer^   rD   rH   zlicense-expressionr[   zlicense-filer\   rO   zmaintainer-emailrP   úmetadata-versionr>   r?   rN   rS   rA   rM   rR   rY   rL   rQ   rU   rT   rB   rI   r   )r?   rN   zobsoletes-distÚplatformúproject-urlrM   zprovides-distzprovides-extrarL   zrequires-distzrequires-externalzrequires-pythonrB   zsupported-platformr   z+\r\n|[\n\r\v\f\x1c\x1d\x1e\x85\u2028\u2029]c                  ó.   • \ rS rSrSrSrSrSrS	S jrSr	g)
r   i>  z´
This is :class:`email.policy.EmailPolicy`, but with a simple ``header_store_parse``
implementation that handles multi-line values, and some nice defaults.

.. versionadded:: 26.0
TFr   c                ó\   • [        U5      S-   n[        R                  SSU-  -   U5      nX4$ )Né   Ú
Ú )ÚlenÚ_LINE_BOUNDARY_REÚsub)r)   r?   ÚvalueÚsizes       r    Úheader_store_parseÚRFC822Policy.header_store_parseJ  s2   € Ü�4‹y˜1‰}ˆÜ!×%Ñ% d¨S°4©ZÑ&7¸Ó?ˆØˆ}Ðr   r   N)r?   r$   r’   r$   r1   ztuple[str, str])
r3   r4   r5   r6   r7   rx   Úmangle_from_Úmax_line_lengthr”   r9   r   r   r    r   r   >  s   † ñð €DØ€LØ€O÷r   r   c                  óJ   ^ • \ rS rSrSrSU 4S jjr S     SS jjrSrU =r$ )	r   iQ  zÂ
This is :class:`email.message.EmailMessage` with two small changes: it defaults to
our `RFC822Policy`, and it correctly writes unicode when being called
with `bytes()`.

.. versionadded:: 26.0
c                ó0   >• [         TU ]  [        5       S9  g )N©Úpolicy)r'   r(   r   )r)   r+   s    €r    r(   ÚRFC822Message.__init__Z  s   ø€ Ü‰Ñ¤£ÐÒ/r   c                ó>   • U R                  XS9R                  S5      $ )zQ
Return the bytes representation of the message.

This handles unicode encoding.
rš   úutf-8)Ú	as_stringÚencode)r)   Úunixfromr›   s      r    Úas_bytesÚRFC822Message.as_bytes]  s    € ð �~‰~˜hˆ~Ð6×=Ñ=¸gÓFÐFr   r   )r1   r2   )FN)r¡   Úboolr›   zemail.policy.Policy | Noner1   r}   )	r3   r4   r5   r6   r7   r(   r¢   r9   r:   r;   s   @r    r   r   Q  s;   ø† ñ÷0ð LPðGØðGØ.HðGà	÷Gó Gr   r   c           	     óJ  • 0 n0 n[        U [        5      (       aE  [        R                  R	                  [        R
                  R                  S9R                  U 5      nOD[        R                  R                  [        R
                  R                  S9R                  U 5      n[        UR                  5       5       GHè  nUR                  5       nUR                  U5      =(       d    / n/ nSnU Hø  n	[        U	[        R                  R                  [        45      (       d   e[        U	[        R                  R                  5      (       aŠ  / n
[        R                  R!                  U	5       H,  u  p¼ UR#                  SS5        SnU
R'                  X½45        M.     UR'                  [        [        R                  R)                  U
5      5      5        Mç  UR'                  U	5        Mú     U(       d  XrU'   GM>  [*        R-                  U5      nUc  XrU'   GM]  U[.        ;   a  [1        U5      S:X  a
  US   X'   GM€  US	:X  a  US
/:X  a  / X'   GM”  U[2        ;   a  XqU'   GM¥  US:X  a"  [1        U5      S:X  a  [5        US   5      X'   GMÍ  US:X  a   [7        U5      X'   GMä  XrU'   GMë      [;        X05      nU(       ad  SU;   a?  [=        SUR?                  S5      5      nURA                  S/ 5      RC                  UU/5        OSU;   a  US   R'                  U5        OXñS'   [=        SU5      U4$ ! [$         a    SnSn GN·f = f! [8         a	    XrU'    GM™  f = f! [D         a?    URA                  S/ 5      R'                  URG                  [        U [H        5      S95         N�f = f)aÞ  Parse a distribution's metadata stored as email headers (e.g. from ``METADATA``).

This function returns a two-item tuple of dicts. The first dict is of
recognized fields from the core metadata specification. Fields that can be
parsed and translated into Python's built-in types are converted
appropriately. All other fields are left as-is. Fields that are allowed to
appear multiple times are stored as lists.

The second dict contains all other fields from the metadata. This includes
any unrecognized fields. It also includes any fields which are expected to
be parsed into a built-in type but were not formatted appropriately. Finally,
any fields that are expected to appear only once but are repeated are
included in this dict.

rš   Trx   ry   Úlatin1Fr
   r   r]   Ú rD   rW   rC   r$   rv   r   )%rz   r$   ÚemailÚparserÚParserr›   Úcompat32ÚparsestrÚBytesParserÚ
parsebytesÚ	frozensetÚkeysÚlowerÚget_allÚheaderÚHeaderÚdecode_headerrw   r~   ÚappendÚmake_headerÚ_EMAIL_TO_RAW_MAPPINGÚgetÚ_STRING_FIELDSr�   Ú_LIST_FIELDSrf   rt   rn   r„   r	   ÚpopÚ
setdefaultÚextendr|   r{   r}   )rd   ÚrawÚunparsedÚparsedÚname_with_caser?   Úheadersr’   Úvalid_encodingÚhÚchunksÚbinaryÚ	_encodingÚencodingÚraw_namer�   Údescription_headers                    r    r   r   h  sN  € ð  8:€CØ%'€Hä�$œ×ÑÜ—‘×$Ñ$¬E¯L©L×,AÑ,AÐ$ÐB×KÑKÈDÓQ‰ä—‘×)Ñ)´·±×1FÑ1FÐ)ÐG×RÑRÐSWÓXˆô
 $ F§K¡K£M×2ˆð ×#Ñ#Ó%ˆð
 —.‘. Ó&×,¨"ˆð ˆð ˆÛˆAô ˜a¤%§,¡,×"5Ñ"5´sÐ!;×<Ñ<Ð<Ð<ô ˜!œUŸ\™\×0Ñ0×1Ñ1ð :<�Ü).¯©×)CÑ)CÀAÖ)FÑ%�Fð*ØŸ™ f¨hÔ7ð $*˜Ø—M‘M 6Ð"4Ö5ñ *Gð —‘œS¤§¡×!9Ñ!9¸&Ó!AÓBÖCð —‘˜Q–ñG öP Ø"�T‰NÚä(×,Ñ,¨TÓ2ˆØÑð #�T‰NÚð ”~Ó%¬#¨e«*¸«/Ø! !™HˆCŒMð ˜Ó'¨E°b°T«MØˆCŒMð œÓ%Ø!�ŒMð ˜Ó#¬¨E«
°a«Ü+¨E°!©HÓ5ˆCŒMð ˜Ó'ð'Ü 3°EÓ :�”ð #�TŒNñs 3ð~-Ü˜vÓ,ˆö ð  Ó#Ü%)¨%°·±¸Ó1GÓ%HÐ"Ø×#Ñ# M°2Ó6×=Ñ=Ø'¨Ð1õð  (Ó*Ø˜Ñ'×.Ñ.¨wÕ7à%,�MÑ"ô �˜sÓ# XÐ-Ð-øô[ .ó /à#+˜Ø).›ð/ûôT ó 'Ø!&˜•ð'ûô ó 
Ø×Ñ˜M¨2Ó.×5Ñ5Ø×Ñ¤j°´uÓ&=ÐÐ>ö	
ð
ús7   Å4L.ÊMÊ*M Ì.M 	Ì?M 	ÍMÍMÍAN"Î!N")	ú1.0ú1.1ú1.2ú2.1ú2.2z2.3ú2.4ú2.5z2.6)r>   r?   r   c                  ó
  • \ rS rSr% SrS\S'   S\S'   S\S'   SS	.   SS
 jjrSS jrSS jr S     S S jjr	S!S jr
S"S jrS#S jrS"S jrS"S jrS$S jr    S%S jrS&S jr    S'S jrS(S jrS$S jrS$S jr\rSrg))Ú
_Validatori3  a^  Validate a metadata field.

All _process_*() methods correspond to a core metadata field. The method is
called with the field's raw value. If the raw value is valid it is returned
in its "enriched" form (e.g. ``version.Version`` for the ``Version`` field).
If the raw value is invalid, :exc:`InvalidMetadata` is raised (with a cause
as appropriate).
r$   r?   rÊ   Ú_MetadataVersionÚaddedrÌ   ©rÖ   c               ó   • Xl         g r   r×   )r)   rÖ   s     r    r(   Ú_Validator.__init__A  s	   € ð
 �
r   c                ó,   • X l         [        U   U l        g r   )r?   Ú_RAW_TO_EMAIL_MAPPINGrÊ   )r)   Ú_ownerr?   s      r    Ú__set_name__Ú_Validator.__set_name__H  s   € ØŒ	Ü-¨dÑ3ˆ�r   c                óz  • UR                   nUR                  R                  U R                  5      nU R                  [        ;   d  Ub"   [        U SU R                   35      nU" U5      nXCU R                  '    UR                  U R                  	 [        SU5      $ ! [         a     N>f = f! [         a     N(f = f)NÚ	_process_r   )	Ú__dict__Ú_rawr¹   r?   Ú_REQUIRED_ATTRSÚgetattrÚAttributeErrorrn   r	   )r)   ÚinstancerÜ   Úcacher’   Ú	converters         r    Ú__get__Ú_Validator.__get__L  s¹   € ð ×!Ñ!ˆØ—‘×!Ñ! $§)¡)Ó,ˆð �9‰9œÓ'¨5Ñ+<ð)Ü07¸À	È$Ï)É)ÈÐ>UÓ0V�	ñ " %Ó(�à ˆd�i‰iÑð	Ø—‘˜dŸi™iÐ(ô �C˜ÓÐøô "ó Ùðûô ó 	Ùð	ús$   Á
B Á:B- Â
B*Â)B*Â-
B:Â9B:Nc                ó>   • [        U R                  U5      nX#l        U$ r   )r   rÊ   Ú	__cause__)r)   r   Úcauserƒ   s       r    Ú_invalid_metadataÚ_Validator._invalid_metadatag  s   € ô ˜dŸm™m¨SÓ1ˆØŒØˆ
r   c                óX   • U[         ;  a  U R                  U< S35      e[        SU5      $ )Nz  is not a valid metadata versionrÕ   )Ú_VALID_METADATA_VERSIONSrî   r	   ©r)   r’   s     r    Ú_process_metadata_versionÚ$_Validator._process_metadata_versionn  s2   € àÔ0Ó0Ø×(Ñ(¨E©9Ð4TÐ)UÓVÐVÜÐ&¨Ó.Ð.r   c                óú   • U(       d  U R                  U R                  < S35      e [        R                  " USS9  U$ ! [        R                   a'  nU R                  U< SU R                  < 3US9UeS nAff = f)Nú is a required fieldT©Úvalidateú is invalid for ©rí   )rî   rÊ   r   Úcanonicalize_nameÚInvalidName©r)   r’   rƒ   s      r    Ú_process_nameÚ_Validator._process_namet  sˆ   € ÞØ×(Ñ(¨D¯M©MÑ+<Ð<PÐ)QÓRÐRð	Ü×#Ò# E°DÒ9ð ˆLøô × Ñ ó 	Ø×(Ñ(Ø‘)Ð+¨D¯M©MÑ+<Ð=ÀSð )ð àðûð	ús   ¨? ¿A:Á"A5Á5A:c                óø   • U(       d  U R                  U R                  < S35      e [        R                  " U5      $ ! [        R                   a'  nU R                  U< SU R                  < 3US9UeS nAff = f)Nrö   rù   rú   )rî   rÊ   Úversion_moduleÚparseÚInvalidVersionrý   s      r    Ú_process_versionÚ_Validator._process_version�  s€   € ÞØ×(Ñ(¨D¯M©MÑ+<Ð<PÐ)QÓRÐRð	Ü!×'Ò'¨Ó.Ð.øÜ×,Ñ,ó 	Ø×(Ñ(Ø‘)Ð+¨D¯M©MÑ+<Ð=ÀSð )ð àðûð	ús   ¨> ¾A9Á"A4Á4A9c                óx   • [         R                  U5      (       a  U R                  U R                  < S35      eU$ )z(Check the field contains no line breaks.z must be a single line)r�   Úsearchrî   rÊ   rò   s     r    Ú_process_summaryÚ_Validator._process_summary‹  s6   € ä×#Ñ# E×*Ñ*Ø×(Ñ(¨D¯M©MÑ+<Ð<RÐ)SÓTÐTØˆr   c                ór  • 1 SknU R                   < S[        U5       SU< 3n[        R                  R	                  5       n XS'   US   nUR                  (       a5  UR                  S   nU< SU R                   < SU 3nU R                  XhS9UeUR                  5       R                  5       UR                  p©X’;  d  X‘R                  5       ;  a  U R                  U5      eU
R                  S	S
5      nUR                  5       S:w  a"  U R                  U R                   < SU< 35      eSS1nU
R                  SS5      nU	S:X  a4  XÜ;  a/  U R                  SU R                   < S[        U5       SU< 35      eU$ ! [
        [        4 a(  nU< SU R                   < 3nU R                  XeS9UeS nAff = f)N>   ú
text/plainú
text/x-rstútext/markdownz must be one of ú, not zcontent-typez! is not a valid content type for rú   r   z: ÚcharsetzUTF-8rž   z) can only specify the UTF-8 charset, not ÚGFMÚ
CommonMarkÚvariantr  zvalid Markdown variants for z are )rÊ   Úlistr¨   r*   ÚEmailMessager|   Ú
IndexErrorrî   ÚdefectsÚget_content_typer±   Úparamsr¹   )r)   r’   Úcontent_typesÚinvalid_msgr*   rƒ   r   Úcontent_type_headerÚdefectÚcontent_typeÚ
parametersr  Úmarkdown_variantsr  s                 r    Ú!_process_description_content_typeÚ,_Validator._process_description_content_type‘  sé  € ÚEˆà�}‰}ÑÐ/´°]Ó0CÐ/DÀFÈ5É)ÐTð 	ô —-‘-×,Ñ,Ó.ˆð	BØ&+�NÑ#ð & nÑ5ÐØ×&×&Ø(×0Ñ0°Ñ3ˆFà‘)Ð<¸T¿]¹]Ñ<MÈRÐPVÈxÐXð ð ×(Ñ(¨Ð(Ð;ÀÐGð ×$Ñ$Ó&×,Ñ,Ó.Ø×&Ñ&ð !ð Ó,°ÇKÁKÃMÓ0QØ×(Ñ(¨Ó5Ð5à—.‘. ¨GÓ4ˆØ�=‰=‹?˜gÓ%Ø×(Ñ(Ø—=‘=Ñ#Ð#LÈWÉKÐXóð ð # LÐ1ÐØ—.‘. ¨EÓ2ˆØ˜?Ó*¨wÓ/OØ×(Ñ(Ø.¨t¯}©}Ñ.?¸uÜÐ)Ó*Ð+¨6°'±ð>óð ð ˆøôE œJÐ'ó 	BØ‘IÐ>¸t¿}¹}Ñ>OÐPˆCØ×(Ñ(¨Ð(Ð8¸cÐAûð	Bús   ÁE> Å>F6Æ#F1Æ1F6c                óÒ   • [        [        [        R                  U5      5      nU H=  nUS;   a  U R	                  U< S35      eU[
        ;  d  M*  U R	                  U< S35      e   U$ )N>   r?   r   r‡   z" is not allowed as a dynamic fieldz is not a valid dynamic field)r  Úmapr$   r±   rî   r¸   )r)   r’   Údynamic_fieldsÚdynamic_fields       r    Ú_process_dynamicÚ_Validator._process_dynamic¿  s{   € Üœc¤#§)¡)¨UÓ3Ó4ˆÛ+ˆMØÐ GÓGØ×,Ñ,Ø$Ñ'Ð'IÐJóð ð Ô&;Õ;Ø×,Ñ,Ø$Ñ'Ð'DÐEóð ñ ,ð Ðr   c                óâ   • / n U H'  nUR                  [        R                  " USS95        M)     U$ ! [        R                   a'  nU R	                  W< SU R
                  < 3US9UeS nAff = f)NTr÷   rù   rú   )r¶   r   rû   rü   rî   rÊ   )r)   r’   Únormalized_namesr?   rƒ   s        r    Ú_process_provides_extraÚ"_Validator._process_provides_extraÌ  s…   € ð Ðð	$Û�Ø ×'Ñ'¬×(?Ò(?ÀÈtÑ(TÖUñ ð $Ð#øô × Ñ ó 	Ø×(Ñ(Ø‘(Ð*¨4¯=©=Ñ*;Ð<ÀCð )ð àðûð	ús   „-3 ³A.Á"A)Á)A.c                ó¬   •  [         R                  " U5      $ ! [         R                   a'  nU R                  U< SU R                  < 3US9UeS nAff = f©Nrù   rú   )r   ÚSpecifierSetÚInvalidSpecifierrî   rÊ   rý   s      r    Ú_process_requires_pythonÚ#_Validator._process_requires_pythonÛ  s_   € ð	Ü×*Ò*¨5Ó1Ð1øÜ×*Ñ*ó 	Ø×(Ñ(Ø‘)Ð+¨D¯M©MÑ+<Ð=ÀSð )ð àðûð	ús   ‚ ˜A¬"AÁAc                óä   • / n U H(  nUR                  [        R                  " U5      5        M*     U$ ! [        R                   a'  nU R	                  W< SU R
                  < 3US9UeS nAff = fr-  )r¶   r   ÚRequirementÚInvalidRequirementrî   rÊ   )r)   r’   ÚreqsÚreqrƒ   s        r    Ú_process_requires_distÚ!_Validator._process_requires_distã  s   € ð ˆð	Û�Ø—‘œL×4Ò4°SÓ9Ö:ñ ð ˆKøô ×.Ñ.ó 	Ø×(Ñ(Ø‘'Ð)¨$¯-©-Ñ):Ð;À3ð )ð àðûð	ús   „.4 ´A/Á"A*Á*A/c                ó˜   •  [         R                  " U5      $ ! [         a'  nU R                  U< SU R                  < 3US9UeS nAff = fr-  )r   Úcanonicalize_license_expressionr|   rî   rÊ   rý   s      r    Ú_process_license_expressionÚ&_Validator._process_license_expressionò  sY   € ð	Ü×;Ò;¸EÓBÐBøÜó 	Ø×(Ñ(Ø‘)Ð+¨D¯M©MÑ+<Ð=ÀSð )ð àðûð	ús   ‚ ˜
A	¢"AÁA	c                óf  • / nU GH'  nSU;   a#  U R                  U< SU R                  < S35      eSU;   a#  U R                  U< SU R                  < S35      e[        R                  " U5      R	                  5       (       d)  [        R
                  " U5      R	                  5       (       a#  U R                  U< SU R                  < S35      e[        R
                  " U5      R                  5       U:w  a#  U R                  U< SU R                  < S35      eUR                  U5        GM*     U$ )Nz..rù   z-, parent directory indicators are not allowedÚ*z, paths must be resolvedz, paths must be relativez, paths must use '/' delimiter)rî   rÊ   ÚpathlibÚPurePosixPathÚis_absoluteÚPureWindowsPathÚas_posixr¶   )r)   r’   ÚpathsÚpaths       r    Ú_process_license_filesÚ!_Validator._process_license_filesú  s>  € ØˆÜˆDØ�t‹|Ø×,Ñ,Ø‘hÐ.¨t¯}©}Ñ.?ð @Bð Bóð ð �d‹{Ø×,Ñ,Ø‘hÐ.¨t¯}©}Ñ.?Ð?WÐXóð ô ×%Ò% dÓ+×7Ñ7×9Ñ9Ü×*Ò*¨4Ó0×<Ñ<×>Ñ>à×,Ñ,Ø‘hÐ.¨t¯}©}Ñ.?Ð?WÐXóð ô ×&Ò& tÓ,×5Ñ5Ó7¸4Ó?Ø×,Ñ,Ø‘hÐ.¨t¯}©}Ñ.?ð @3ð 3óð ð �L‰L˜×ñ- ð. ˆr   c           
     ó  • U Hý  nUR                  S5      u  p4nUR                  5       nUR                  S5       H�  nUR                  5       (       d'  U R	                  U< SU R
                  < SU< S35      e[        R                  " U5      (       d  M\  U R	                  U< SU R
                  < SU< S35      e   U(       d  MÆ  UR                  5       S:w  d  MÜ  U R	                  U< SU R
                  < S35      e   U$ )	NÚ;Ú.rù   z; z is not a valid identifierz is a keywordÚprivatez$; the only valid option is 'private')	rm   Úrstriprb   Úisidentifierrî   rÊ   ÚkeywordÚ	iskeywordÚlstrip)r)   r’   Úimport_namer?   Ú	semicolonrK  Ú
identifiers          r    Ú_process_import_namesÚ _Validator._process_import_names  s  € Û ˆKØ'2×'<Ñ'<¸SÓ'AÑ$ˆD˜WØ—;‘;“=ˆDØ"Ÿj™j¨žo�
Ø!×.Ñ.×0Ñ0Ø×0Ñ0Ø™(Ð"2°4·=±=Ñ2CÀ2Ø%™.Ð(BðDóð ô ×&Ò& z×2Ó2Ø×0Ñ0Ø™(Ð"2°4·=±=Ñ2CÀ2Ø%™.¨ð7óð ñ .÷ ˆy˜WŸ^™^Ó-°Õ:Ø×,Ñ,Ø"‘oÐ%5°d·m±mÑ5Fð G9ð 9óð ñ !ð& ˆr   )rÖ   r?   rÊ   )rÖ   rÕ   r1   r2   )rÜ   r   r?   r$   r1   r2   )ræ   r   rÜ   ztype[Metadata]r1   r   r   )r   r$   rí   zException | Noner1   r   )r’   r$   r1   rÕ   )r’   r$   r1   r$   )r’   r$   r1   r   )r’   r@   r1   r@   )r’   r@   r1   zlist[utils.NormalizedName])r’   r$   r1   zspecifiers.SpecifierSet)r’   r@   r1   zlist[requirements.Requirement])r’   r$   r1   r   )r3   r4   r5   r6   r7   r8   r(   rÝ   ré   rî   ró   rþ   r  r  r   r&  r*  r0  r7  r;  rF  rT  Ú_process_import_namespacesr9   r   r   r    rÔ   rÔ   3  sÌ   ‡ ñð ƒIØƒMØÓð
 #(ñð  ðð 
õ	ô4ô ð8 37ðØðØ/ðà	õô/ôôôô,ô\ð$àð$ð 
$ô$ôðàðð 
(ôôôô6ð, "7Ór   rÔ   c                  ó†  • \ rS rSr% SrS\S'   \SS.S>S jj5       r\SS.S?S jj5       r\	" 5       r
S	\S
'    \	" 5       rS\S'    \	" 5       rS\S'    \	" SS9rS\S'    \	" 5       rS\S'    \	" SS9rS\S'    \	" 5       rS\S'    \	" 5       rS\S'    \	" SS9rS\S'    \	" 5       rS\S'    \	" 5       rS\S'    \	" SS9rS\S'    \	" 5       rS\S'    \	" 5       rS\S'    \	" S S9rS\S!'    \	" S S9rS\S"'    \	" 5       rS\S#'    \	" S$S9rS%\S&'    \	" S$S9rS\S''    \	" SS9rS\S('    \	" S S9rS)\S*'    \	" S S9rS+\S,'    \	" S S9r S\S-'    \	" S S9r!S.\S/'    \	" SS9r"S0\S1'    \	" S S9r#S\S2'    \	" S S9r$S\S3'    \	" S4S9r%S\S5'    \	" S4S9r&S\S6'    \	" SS9r'S\S7'    \	" SS9r(S\S8'    \	" SS9r)S\S9'    S@S: jr*SAS; jr+S<r,g=)Br   i.  aÁ  Representation of distribution metadata.

Compared to :class:`RawMetadata`, this class provides objects representing
metadata fields instead of only using built-in types. Any invalid metadata
will cause :exc:`InvalidMetadata` to be raised (with a
:py:attr:`~BaseException.__cause__` attribute as appropriate).

.. versionadded:: 23.2

.. versionchanged:: 24.0
    Optional attributes now return None when the field is absent instead of
    raising.
r   râ   Tr÷   c          	     ó"  • U " 5       nUR                  5       Ul        U(       aÿ  [        5       nSnUR                  [        5         UR
                  n[        R                  U5      nSSS5        [        UR                  5      [        -  nUS1-  nU H{  n U(       ae   U R                  U   R                  n	[        R                  U	5      nUW:”  a0  [        U   n[	        UU SU	 SU 35      n
UR                  U
5        Mp  [        X85        M}     UR!                  S5        U$ ! , (       d  f       NÄ= f! [         a%    [	        USU< 35      n
UR                  U
5         MÑ  f = f! [         a  n
UR                  U
5         Sn
A
Mö  Sn
A
ff = f)züCreate an instance from :class:`RawMetadata`.

If *validate* is true, all metadata will be validated and all related
exceptions will be gathered and raised as an :class:`ExceptionGroup`;
otherwise, validation happens per attribute when it is accessed.
Nr>   úunrecognized field: z  introduced in metadata version r  zinvalid metadata)Úcopyrâ   r   Úcollectr   r>   rñ   Úindexr¯   rã   rá   rÖ   rn   ÚerrorrÛ   rä   Úfinalize)Úclsrd   rø   ÚinsÚ	collectorr>   Úmetadata_ageÚfields_to_checkÚkeyÚfield_metadata_versionrƒ   Ú	field_ager%   s                r    Úfrom_rawÚMetadata.from_raw?  s†  € ñ ‹eˆØ—9‘9“;ˆŒæÜ'Ó)ˆIØ#ÐØ×"Ñ"¤?Õ3Ø#&×#7Ñ#7Ð Ü7×=Ñ=Ð>NÓO�÷ 4ô (¨¯©Ó1´OÑCˆOàÐ 2Ð3Ñ3ˆOã&�ð)Þ'ð%Ø58·\±\À#Ñ5F×5LÑ5LÐ2ô
 %=×$BÑ$BØ2ó%˜	ð % |Ó3Ü$9¸#Ñ$>˜EÜ"1Ø %Ø#( 'Ð)IØ#9Ð":¸&ÐAQÐ@Rð!Tó#˜Cð
 &ŸO™O¨CÔ0Ù$Ü˜CÖ%ñ/ 'ð6 ×ÑÐ1Ô2àˆ
÷O 4Õ3ûô"  (ó %Ü"1°#Ð9MÈcÉWÐ7UÓ"V˜CØ%ŸO™O¨CÔ0Ú$ð%ûô" 'ó )Ø—O‘O C×(Ò(ûð)úsO   Á"D%ÂE(ÂD6Â8A	E(ÄE(Ä%
D3Ä6+E%Å!E(Å$E%Å%E(Å(
FÅ2F	Æ	Fc               ó†  • [        U5      u  p4U(       a‰  [        5       R                  S5       nU H4  nU[        ;   a  U< S3nOSU< 3nUR	                  [        Xg5      5        M6      U R                  X2S9nUR                  (       d  UsSSS5        $  SSS5        U R                  X2S9$ ! [         ax  n	U	R                   H^  n
[        U
[
        5      (       a5  U
R                  U;   a%  [        R                  U
R                  5      U;  a  MM  UR	                  U
5        M`      Sn	A	N”Sn	A	ff = f! , (       d  f       N¢= f)z»Parse metadata from email headers.

If *validate* is true, the metadata will be validated. All exceptions
related to validation will be gathered and raised as an :class:`ExceptionGroup`.
zinvalid or unparsed metadataz has invalid datarY  r÷   N)r   r   Úon_exitr¸   r]  r   rg  Úerrorsr   Ú
exceptionsrz   r%   r¹   )r_  rd   rø   r¿   rÀ   ra  Úunparsed_keyr*   Ú	validatedÚ	exc_grouprƒ   s              r    Ú
from_emailÚMetadata.from_emailv  s  € ô $ DÓ)‰ˆæÜ Ó"×*Ñ*Ð+IÔJÈiÛ$,�LØ#Ô'<Ó<Ø%1Ñ$4Ð4EÐ"F™à$8¸Ñ8HÐ"I˜Ø—O‘O¤O°LÓ$JÖKñ %-ð)Ø #§¡¨S Ð D�Ið %×+×+Ø(÷/ KÑJð, ,÷- Kð2 �|‰|˜Cˆ|Ð3Ð3øô! &ó 1à(×3Ô3˜ô
 ' s¬O×<Ñ<Ø #§	¡	¨XÓ 5Ü 5× 9Ñ 9¸#¿)¹)Ó DÈCÕ Oà%ŸO™O¨CÖ0ö  4ûð1ú÷ KÕJúsB   ®;D2Á*B-Á9D2ÂD2Â-
D/Â7AD*ÄD*Ä%D2Ä*D/Ä/D2Ä2
E z_Validator[_MetadataVersion]r>   z_Validator[str]r?   z_Validator[Version]r   rÐ   r×   z_Validator[list[str] | None]rZ   rA   rÍ   rI   z_Validator[str | None]rB   rC   rÏ   rX   rD   rE   rJ   rF   rG   rÎ   rO   rP   rH   rÑ   z._Validator[NormalizedLicenseExpression | None]r[   r\   rK   z1_Validator[list[requirements.Requirement] | None]rQ   z*_Validator[specifiers.SpecifierSet | None]rT   rU   z!_Validator[dict[str, str] | None]rW   z-_Validator[list[utils.NormalizedName] | None]rY   rR   rS   rÒ   r]   r^   rL   rM   rN   c                ó<   • [        5       nU R                  U5        U$ )zE
Return an RFC822 message with the metadata.

.. versionadded:: 26.0
)r   Ú_write_metadata)r)   r*   s     r    Ú	as_rfc822ÚMetadata.as_rfc822ü  s   € ô  “/ˆØ×Ñ˜WÔ%Øˆr   c                óB  • U R                   R                  R                  5        HÎ  u  p#[        U[        5      (       d  M  US:w  d  M$  [        X5      n[        U   nUc  M=  US:X  a$  UR                  5        H  u  pgU SU 3X'   M     Mg  US:X  a  SR                  U5      X'   M‚  US:X  a  U/ :X  a  SX'   M”  [        U[        5      (       a  U H  n[        U5      X'   M     MÁ  [        U5      X'   MÐ     U R                  b  UR                  U R                  5        gg)	z-
Return an RFC822 message with the metadata.
rC   Nr‰   z, rD   ra   r†   r§   )r+   rá   Úitemsrz   rÔ   rä   rÛ   Újoinr  r$   rC   Úset_payload)	r)   r*   r?   Ú	validatorr’   Ú
email_namerq   rs   Úitems	            r    rs  ÚMetadata._write_metadata  s  € ð  $Ÿ~™~×6Ñ6×<Ñ<Ö>‰OˆDÜ˜)¤Z×0Ó0°T¸]Õ5JÜ Ó+�Ü2°4Ñ8�
ØÓ$Ø! ]Ó2Ø*/¯+©+®-™J˜EØ5:°G¸2¸c¸UÐ2C˜GÓ/ó +8à# zÓ1Ø.1¯h©h°u«o˜Ó+Ø# }Ó4¸À"»Ø.0˜Ó+Ü# E¬4×0Ñ0Û$)˜DÜ25°d³)˜GÓ/ó %*ô /2°%«j˜Ó+ñ!  ?ð& ×ÑÑ'Ø×Ñ × 0Ñ 0Õ1ð (r   r   N)rd   r   rø   r¤   r1   r   )rd   úbytes | strrø   r¤   r1   r   )r1   r   )r*   r   r1   r2   )-r3   r4   r5   r6   r7   r8   Úclassmethodrg  rp  rÔ   r>   r?   r   rZ   rA   rI   rB   rC   rX   rD   rE   rJ   rF   rG   rO   rP   rH   r[   r\   rK   rQ   rT   rU   rW   rY   rR   rS   r]   r^   rL   rM   rN   rt  rs  r9   r   r   r    r   r   .  sÕ  ‡ ñð ÓàØ=Aö 4ó ð4ðl Ø?Cö "4ó ð"4ñH 6@³\ÐÐ2ÓAð<ñ '›L€Dˆ/Ó(ðñ $.£<€GÐ Ó/Ø:Ù,6Øñ-€GÐ)ó ðDá.8«l€IÐ+Ó:Ø0Ù8BÈÑ8OÐÐ5ÓOØ:Ù&0£l€GÐ#Ó2ØRÙ*4«,€KÐ'Ó6Ø3Ù7AÈÑ7NÐÐ4ÓNØLÙ-7«\€HÐ*Ó9Ø0Ù(2«€IÐ%Ó4Ø1Ù+5¸EÑ+B€LÐ(ÓBØ4Ù%/£\€FÐ"Ó1Ø.Ù+5«<€LÐ(Ó7Ø4Ù)3¸%Ñ)@€JÐ&Ó@Ø2Ù/9ÀÑ/FÐÐ,ÓFØ8Ù&0£l€GÐ#Ó2Ø/ÙISØñJÐÐFó ðñ 3=À5Ñ2I€MÐ/ÓIðñ 1;ÀÑ0G€KÐ-ÓGØ2ÙGQØñH€MÐDó ð 6ÙBLØñC€OÐ?ó ð 8ñ 7AÀuÑ6MÐÐ3ÓMØ9Ù6@ÀuÑ6M€LÐ3ÓMØ3ñ EOØñE€NÐAó ð 7Ù2<À5Ñ2I€MÐ/ÓIØ5Ù3=ÀEÑ3J€NÐ0ÓJØ6Ù1;À%Ñ1H€LÐ.ÓHðñ 7AÀuÑ6MÐÐ3ÓMðñ .8¸eÑ-D€HÐ*ÓDØ#Ù-7¸eÑ-D€HÐ*ÓDØ#Ù.8¸uÑ.E€IÐ+ÓEØ$ô÷2r   r   )r1   r@   )rd   r$   r1   r@   )rd   r@   r1   rV   )r   zemail.message.Messager€   r~  r1   r$   )rd   r~  r1   z(tuple[RawMetadata, dict[str, list[str]]])?Ú
__future__r   Úemail.headerr¨   Úemail.messageÚemail.parserÚemail.policyrN  r?  ÚreÚtypingr   r   r   r   r   r	   r§   r   r   r   r   r   r  rk  r   r   ÚTYPE_CHECKINGr   r   ÚTypeVarr   r   r!   r|   r   r   rº   r»   Ú_DICT_FIELDSrf   rt   r„   r¸   rw  rÛ   Úcompiler�   r›   ÚEmailPolicyr   r*   r  r   r   ÚobjectÚ
_NOT_FOUNDrñ   rÕ   r¯   rã   rÔ   r   )r¨   r¿   s   00r    Ú<module>rŽ     sw  ðÝ "ã Û Û Û Û Û Û 	Û ÷÷ ÷ 8Ó 7Ý 'ß 3à	××Ý5Ý à
‡N‚N�3Ó€ò€ôô<�jô <ô,M!�) 5ò M!òh€ò$€ð& ð€ô
0ô
$ôNHðJ!Øˆhð!à�Nð!ð �-ð!ð �=ð	!ð
 Ð :ð!ð �Nð!ð ˆyð!ð �ð!ð �>ð!ð Ð+ð!ð �
ð!ð ˆyð!ð Ð.ð!ð �Oð!ð �,ð!ð  Ð*ð!!ð" Ð*ð#!ð$ ØØ&ØØ!ØØ$Ø&ØØ$Ø,Ø(ØØ/ØòA!Ð ðD 7L×6QÑ6QÔ6SÔTÑ6S©
¨˜šÑ6SÒTÐ ð —J’JÐMÓNÐ ô�5—<‘<×+Ñ+ô ô&G�E—M‘M×.Ñ.ô Gô.r.ñj ‹X€
ò
Ð ð ØAñÐ ñ ÒCÓD€ôx7�˜‘ô x7÷vp2ò p2ùóu Us   ÄF+