Ë
    nûàg>+  ã                  ó–  — d Z ddlmZ ddlZddlZddlZddlmZ ddlm	Z	 ddl
mZ ddlmZ ddlmZ dd	lmZmZ dd
lmZ ddlmZmZ ddlmZ ddlmZ ddlmZ d„ Zd=d„Zd>d„Z d>d„Z!d?d„Z"d@d„Z#d„ Z$d„ Z%d„ Z&d„ Z'd„ Z(dAd„Z)d„ Z*d„ Z+dBd„Z,i dd“d d!“d"d#“d$d%“d&d'“d(d)“d*d+“d,d,“d-d-“d.d.“d/d0“d1d1“d2d3“d4d5“d6d6“d7d8“d9d9“d:d;d$d<œ¥Z-y)Cz›
Handling of Core Metadata for Python packages (including reading and writing).

See: https://packaging.python.org/en/latest/specifications/core-metadata/
é    )ÚannotationsN)Úmessage_from_file)ÚMessage)ÚNamedTemporaryFile)ÚMarker)ÚRequirement)Úcanonicalize_nameÚcanonicalize_version)ÚVersioné   )Ú_normalizationÚ_reqs)Ú	is_static)ÚSetuptoolsDeprecationWarning)Úrfc822_escapec                óH   — t        | dd «      }|€t        d«      }|| _        |S )NÚmetadata_versionz2.2)Úgetattrr   r   )ÚselfÚmvs     úW/var/www/skyplay_api_hub/venv/lib/python3.12/site-packages/setuptools/_core_metadata.pyÚget_metadata_versionr      s,   € Ü	�Ð)¨4Ó	0€BØ	€zÜ�U‹^ˆØ "ˆÔØ€Ió    c           
     óö   — | j                  «       }t        |«      dk(  r|d   j                  «       S dj                  |d   j                  «       t	        j
                  dj                  |dd «      «      f«      S )zFReverse RFC-822 escaping by removing leading whitespaces from content.r   r   ú
N)Ú
splitlinesÚlenÚlstripÚjoinÚtextwrapÚdedent)ÚcontentÚliness     r   Úrfc822_unescaper$   $   sc   € à×ÑÓ €EÜ
ˆ5ƒz�Q‚Ø�Q‰x�‰Ó Ð Ø�9‰9�e˜A‘h—o‘oÓ'¬¯©¸¿¹À5ÈÈÀ9Ó9MÓ)NÐOÓPÐPr   c                ó   — | |   }|dk(  ry|S )zRead Message header field.ÚUNKNOWNN© ©ÚmsgÚfieldÚvalues      r   Ú_read_field_from_msgr,   ,   s   € à�‰J€EØ�	ÒØØ€Lr   c                ó8   — t        | |«      }|€|S t        |«      S )z4Read Message header field and apply rfc822_unescape.)r,   r$   r(   s      r   Ú_read_field_unescaped_from_msgr.   4   s#   € ä   eÓ,€EØ€}ØˆÜ˜5Ó!Ð!r   c                ó6   — | j                  |d«      }|g k(  ry|S )z9Read Message header field and return all results as list.N)Úget_all)r)   r*   Úvaluess      r   Ú_read_list_from_msgr2   <   s!   € à�[‰[˜ Ó%€FØ�‚|ØØ€Mr   c                ód   — t        | j                  «       «      j                  «       }|dk(  s|sy |S )Nr&   )ÚstrÚget_payloadÚstrip)r)   r+   s     r   Ú_read_payload_from_msgr7   D   s.   € Ü�—‘Ó!Ó"×(Ñ(Ó*€EØ�	Ò¡ØØ€Lr   c                óˆ  — t        |«      }t        |d   «      | _        t        |d«      | _        t        |d«      | _        t        |d«      | _        t        |d«      | _        d| _        t        |d«      | _	        d| _
        t        |d«      | _        t        |d	«      | _        t        |d
«      | _        t        |d«      | _        | j                  €(| j                  t        d«      k\  rt!        |«      | _        t        |d«      | _        d|v r t        |d«      j#                  d«      | _        t'        |d«      | _        t'        |d«      | _        | j                  t        d«      k(  r4t'        |d«      | _        t'        |d«      | _        t'        |d«      | _        nd| _        d| _        d| _        t'        |d«      | _        y)z-Reads the metadata values from a file object.zmetadata-versionÚnameÚversionÚsummaryÚauthorNúauthor-emailú	home-pageúdownload-urlÚlicenseÚdescriptionz2.1Úkeywordsú,ÚplatformÚ
classifierz1.1ÚrequiresÚprovidesÚ	obsoleteszlicense-file)r   r   r   r,   r9   r:   rA   r<   Ú
maintainerÚauthor_emailÚmaintainer_emailÚurlÚdownload_urlr.   r@   Úlong_descriptionr7   ÚsplitrB   r2   Ú	platformsÚclassifiersrF   rG   rH   Úlicense_files)r   Úfiler)   s      r   Úread_pkg_filerT   K   s‰  € ä
˜DÓ
!€Cä# CÐ(:Ñ$;Ó<€DÔÜ$ S¨&Ó1€D„IÜ'¨¨YÓ7€D„LÜ+¨C°Ó;€DÔä& s¨HÓ5€D„KØ€D„OÜ,¨S°.ÓA€DÔØ €DÔÜ# C¨Ó5€D„HÜ,¨S°.ÓA€DÔÜ1°#°yÓA€D„Lä:¸3ÀÓN€DÔØ×ÑÐ$¨×)>Ñ)>Ä'È%Ã.Ò)PÜ 6°sÓ ;ˆÔÜ+¨C°Ó;€DÔà�SÑÜ,¨S°*Ó=×CÑCÀCÓHˆŒä(¨¨jÓ9€D„NÜ*¨3°Ó=€DÔð ×Ñ¤¨£Ò.Ü+¨C°Ó<ˆŒÜ+¨C°Ó<ˆŒÜ,¨S°+Ó>ˆ�àˆŒØˆŒØˆŒä,¨S°.ÓA€DÕr   c                ó‚   — d| v r:d}t        j                  d|«       | j                  «       j                  d«      d   } | S )zF
    Quick and dirty validation for Summary pypa/setuptools#1390.
    r   zBnewlines are not allowed in `summary` and will break in the futurezInvalid config.r   )r   Úemitr6   rO   )Úvalr)   s     r   Úsingle_linerX   t   sD   € ð ˆs�{ð SˆÜ$×)Ñ)Ð*;¸SÔAà�i‰i‹k×Ñ Ó% aÑ(ˆØ€Jr   c                ó¶  — d}t         j                  j                  |d«      }	 t        dd|d¬«      5 }|j                  }| j                  |«       ddd«       t        j                  t        j                  |«      j                  «      }t        j                  ||t        j                  z  t        j                  z  «       t        j                  ||«       |r6t         j                  j                  |«      rt        j                  |«       yyy# 1 sw Y   ŒÂxY w# |r6t         j                  j                  |«      rt        j                  |«       w w w xY w)z.Write the PKG-INFO file into the release tree.Ú zPKG-INFOÚwzutf-8F)ÚencodingÚdirÚdeleteN)ÚosÚpathr   r   r9   Úwrite_pkg_fileÚstatÚS_IMODEÚlstatÚst_modeÚchmodÚS_IRGRPÚS_IROTHÚreplaceÚexistsÚremove)r   Úbase_dirÚtempÚfinalÚfÚpermissionss         r   Úwrite_pkg_inforq   ‚   sö   € à€DÜ�G‰G�L‰L˜ :Ó.€Eðô   ¨g¸8ÈEÔRð 	#ÐVWØ—6‘6ˆDØ×Ñ Ô"÷	#ô —l‘l¤2§8¡8¨D£>×#9Ñ#9Ó:ˆÜ
�‰��{¤T§\¡\Ñ1´D·L±LÑ@ÔAÜ
�
‰
�4˜Ôá”B—G‘G—N‘N 4Ô(Ü�I‰I�d�Oð )ˆ4÷	#ð 	#ûñ ”B—G‘G—N‘N 4Ô(Ü�I‰I�d�Oð )ˆ4ús#   ¤D ³DÁBD ÄDÄD Ä:Ec                óz  ‡— | j                  «       }ˆfd„} |dt        |«      «        |d| j                  «       «        |d| j                  «       «       | j	                  «       }|r |dt        |«      «       d}|D ]  \  }}t        | |d«      }|€Œ |||«       Œ  | j                  «       }	|	r |dt        |	«      «       | j                  j                  «       D ]  \  }
} |d	|
› d
|› �«       Œ dj                  | j                  «       «      }|r	 |d|«       | j                  «       xs g }|D ]  } |d|«       Œ | j                  ‰d| j                  «       «       | j                  ‰d| j!                  «       «       | j                  ‰d| j#                  «       «       | j                  ‰d| j%                  «       «       t'        | d«      r |d| j(                  «       | j*                  r |d| j*                  «       | j                  ‰d| j,                  xs g «       t/        | ‰«       t0        j                  «       D ]*  \  }}t        | |d«      x}sŒt3        |«      rŒ" |d|«       Œ, | j5                  «       }|r8‰j7                  d|› �«       |j9                  d«      s‰j7                  d«       yyy)z0Write the PKG-INFO format data to a file object.c                ó4   •— ‰j                  | › d|› d�«       y )Nz: r   )Úwrite)Úkeyr+   rS   s     €r   Úwrite_fieldz#write_pkg_file.<locals>.write_field™   s   ø€ Ø�
‰
�c�U˜"˜U˜G 2Ð&Õ'r   zMetadata-VersionÚNamer   ÚSummary))z	Home-pagerL   )zDownload-URLrM   )ÚAuthorr<   )zAuthor-emailrJ   )Ú
MaintainerrI   )zMaintainer-emailrK   NÚLicensezProject-URLz, rC   ÚKeywordsÚPlatformÚ
ClassifierÚRequiresÚProvidesÚ	ObsoletesÚpython_requireszRequires-PythonzDescription-Content-TypezLicense-FileÚDynamicr   )r   r4   Úget_nameÚget_versionÚget_descriptionrX   r   Úget_licenser   Úproject_urlsÚitemsr   Úget_keywordsÚget_platformsÚ_write_listÚget_classifiersÚget_requiresÚget_providesÚget_obsoletesÚhasattrr‚   Úlong_description_content_typerR   Ú_write_requirementsÚ_POSSIBLE_DYNAMIC_FIELDSr   Úget_long_descriptionrt   Úendswith)r   rS   r:   rv   r;   Úoptional_fieldsr*   ÚattrÚattr_valr@   ÚlabelrL   rB   rP   rD   rW   rN   s    `               r   ra   ra   •   s­  ø€ à×'Ñ'Ó)€Gô(ñ Ð"¤C¨£LÔ1Ù�˜Ÿ™›Ô(Ù�	˜4×+Ñ+Ó-Ô.à×"Ñ"Ó$€GÙÙ�Iœ{¨7Ó3Ô4ð€Oð 'ò )‰ˆˆtÜ˜4  tÓ,ˆØÑÙ˜˜xÕ(ð)ð
 ×ÑÓ €GÙÙ�Iœ}¨WÓ5Ô6à×'Ñ'×-Ñ-Ó/ò 6‰
ˆˆsÙ�M e W¨B¨s¨eÐ#4Õ5ð6ð �x‰x˜×)Ñ)Ó+Ó,€HÙÙ�J Ô)à×"Ñ"Ó$Ò*¨€IØò *ˆÙ�J Õ)ð*ð 	×Ñ�T˜<¨×)=Ñ)=Ó)?Ô@ð 	×Ñ�T˜: t×'8Ñ'8Ó':Ô;Ø×Ñ�T˜: t×'8Ñ'8Ó':Ô;Ø×Ñ�T˜;¨×(:Ñ(:Ó(<Ô=ô ˆtÐ&Ô'ÙÐ% t×';Ñ';Ô<ð ×)Ò)ÙÐ.°×0RÑ0RÔSà×Ñ�T˜>¨4×+=Ñ+=Ò+CÀÔDÜ˜˜dÔ#ä/×5Ñ5Ó7ò *‰ˆˆtÜ˜4  tÓ,Ð,ˆCÑ,´iÀµnÙ˜	 5Õ)ð*ð ×0Ñ0Ó2ÐÙØ�
‰
�RÐ(Ð)Ð*Ô+Ø×(Ñ(¨Ô.Ø�J‰J�tÕð /ð r   c                óè  — t        j                  | j                  «      D ]  }|j                  d|› d�«       Œ i }| j                  j                  «       D ]™  \  }}|j                  d«      \  }}}|j                  «       }t        j                  |«      }	|	rt        |||	|«       t        j                  |«      D ]2  }t        ||	|j                  «       «      }
|j                  d|
› d�«       Œ4 Œ› |S )NzRequires-Dist: r   ú:)r   ÚparseÚinstall_requiresrt   Úextras_requirer‰   Ú	partitionr6   r   Ú
safe_extraÚ_write_provides_extraÚparse_stringsÚ_include_extra)r   rS   ÚreqÚprocessed_extrasÚaugmented_extraÚreqsÚunsafe_extraÚ_Ú	conditionÚextraÚrs              r   r“   r“   Þ   só   € Ü�{‰{˜4×0Ñ0Ó1ò .ˆØ�
‰
�_ S E¨Ð,Õ-ð.ð ÐØ!%×!4Ñ!4×!:Ñ!:Ó!<ò 
0Ñˆ˜à%4×%>Ñ%>¸sÓ%CÑ"ˆ�a˜Ø#×)Ñ)Ó+ˆÜ×)Ñ)¨,Ó7ˆáÜ! $Ð(8¸%ÀÔNÜ×&Ñ& tÓ,ò 	0ˆCÜ˜s E¨9¯?©?Ó+<Ó=ˆAØ�J‰J˜¨¨¨2Ð.Õ/ñ	0ð
0ð Ðr   c                óÈ   — t        | «      }|j                  rd|j                  › d�nd |rd|› d�nd |rd|›�nd f}t        dj                  d„ |D «       «      «      |_        |S )Nú(ú)z	extra == ú and c              3  ó&   K  — | ]	  }|sŒ|–— Œ y ­w©Nr'   )Ú.0Úxs     r   ú	<genexpr>z!_include_extra.<locals>.<genexpr>ù   s   è ø€ Ò"9¨²q¤1Ñ"9ùs   ‚Š)r   Úmarkerr   r   )r¥   r¬   r«   r­   Úpartss        r   r¤   r¤   ò   sj   € Ü�CÓ€AàŸ8š8ˆ!ˆA�H‰Hˆ:�Q‰¨Ù%ˆ!ˆIˆ;�aÑ¨4Ù!&ˆ)�E�9Ñ¨Dð€Eô
 �g—l‘lÑ"9¨eÔ"9Ó9Ó:€A„HØ€Hr   c           
     óª   — |j                  |«      }||k(  r#t        j                  dd|›d|›d|›d�d¬«       y |||<   | j                  d|› d	�«       y )
Nz8Ambiguity during "extra" normalization for dependencies.z
            r±   z/ normalize to the same value:

                zW

            In future versions, setuptools might halt the build process.
            z!https://peps.python.org/pep-0685/)Úsee_urlzProvides-Extra: r   )Úgetr   rV   rt   )rS   r¦   ÚsafeÚunsafeÚpreviouss        r   r¢   r¢   ý   sw   € Ø×#Ñ# DÓ)€HØ�6ÒÜ$×)Ñ)ØFðØˆL˜˜f˜Zð (Ø�ð ðð
 8ö	
ð "(Ð˜ÑØ�
‰
Ð% d V¨2Ð.Õ/r   c                óR   — t        | j                  «       | j                  «       «      S r³   )Ú_distribution_fullnamer„   r…   )r   s    r   Úget_fullnamerÁ     s   € Ü! $§-¡-£/°4×3CÑ3CÓ3EÓFÐFr   c                ón   — dj                  t        | «      j                  dd«      t        |d¬«      «      S )aµ  
    >>> _distribution_fullname('setup.tools', '1.0-2')
    'setup_tools-1.0.post2'
    >>> _distribution_fullname('setup-tools', '1.2post2')
    'setup_tools-1.2.post2'
    >>> _distribution_fullname('setup-tools', '1.0-r2')
    'setup_tools-1.0.post2'
    >>> _distribution_fullname('setup.tools', '1.0.post')
    'setup_tools-1.0.post0'
    >>> _distribution_fullname('setup.tools', '1.0+ubuntu-1')
    'setup_tools-1.0+ubuntu.1'
    z{}-{}ú-rª   F)Ústrip_trailing_zero)Úformatr	   ri   r
   )r9   r:   s     r   rÀ   rÀ     s4   € ð �>‰>Ü˜$Ó×'Ñ'¨¨SÓ1Ü˜W¸%Ô@óð r   r<   r=   rJ   rE   rQ   rA   rN   zdescription-content-typer’   r?   rM   r>   rL   rB   r@   rI   zmaintainer-emailrK   rH   rD   rP   zproject-urlrˆ   rG   zprovides-extrarŸ   rF   rž   r‚   )zrequires-distzrequires-pythonr;   )r"   r4   Úreturnr4   )r)   r   r*   r4   rÆ   ú
str | None)r)   r   r*   r4   rÆ   zlist[str] | None)r)   r   rÆ   rÇ   )r¥   r4   r¬   r4   r«   r4   rÆ   r   )r9   r4   r:   r4   rÆ   r4   ).Ú__doc__Ú
__future__r   r_   rb   r    Úemailr   Úemail.messager   Útempfiler   Úpackaging.markersr   Úpackaging.requirementsr   Úpackaging.utilsr	   r
   Úpackaging.versionr   rZ   r   r   Ú_staticr   Úwarningsr   Údistutils.utilr   r   r$   r,   r.   r2   r7   rT   rX   rq   ra   r“   r¤   r¢   rÁ   rÀ   r”   r'   r   r   ú<module>rÔ      sp  ðñõ #ã 	Û Û Ý #Ý !Ý 'å $Ý .ß CÝ %ç #Ý Ý 2å (òóQóó"óóò&BòRòò&FòRó(ò0ò$Góð&àˆhðð �Nðð �-ð	ð
 Ð%ðð Ð ?ðð �Nðð �ðð �
ðð ˆyðð �,ðð Ð*ðð �ðð  �ð!ð" �>ð#ð$ �
ð%ð( Ð&ð)ð* �
ð+ð, (à(Øò3Ñ r   