Ë
    -TbjÊ.  ã                  ó   — 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dAd„ZdBd„Z dBd„Z!dCd„Z"dDd„Z#d„ Z$d„ Z%d„ Z&d„ Z'd„ Z(dEd„Z)d„ Z*d„ Z+dFd„Z,d„ Z-i d d “d!d"“d#d$“d%d&“d'd(“d)d*“d+d,“d-d-“d.d.“d/d0“d1d2“d3d3“d4d5“d6d6“d7d8“d9d:“d;d;“d<d=d>d?d%d@œ¥Z.y)Gz›
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.4)Úgetattrr   r   )ÚselfÚmvs     úL/var/www/html/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«      | _        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úlicense-expressionÚdescriptionz2.1Úkeywordsú,ÚplatformÚ
classifierz1.1ÚrequiresÚprovidesÚ	obsoletesúlicense-file)r   r   r   r,   r9   r:   rB   r<   Ú
maintainerÚauthor_emailÚmaintainer_emailÚurlÚdownload_urlr.   r@   Úlicense_expressionÚlong_descriptionr7   ÚsplitrC   r2   Ú	platformsÚclassifiersrG   rH   rI   Úlicense_files)r   Úfiler)   s      r   Úread_pkg_filerW   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Ü<¸SÐBVÓW€DÔä:¸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   rR   )Úvalr)   s     r   Úsingle_liner[   u   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_infort   ƒ   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                óÊ  ‡— | j                  «       }ˆfd„} |dt        |«      «        |d| j                  «       «        |d| j                  «       «       | j	                  «       }|r |dt        |«      «       d}|D ]  \  }}t        | |d«      }|€Œ |||«       Œ  | j                  x}	r
 |d|	«       n$| j                  «       x}
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,                  «       t/        t0        | j2                  xs g «      }| j                  ‰d|«       t5        | ‰«       t6        j                  «       D ]*  \  }}t        | |d«      x}sŒt9        |«      rŒ" |d|«       Œ, | j;                  «       }|r8‰j=                  d|› �«       |j?                  d«      s‰j=                  d«       yyy)z0Write the PKG-INFO format data to a file object.c                ó4   •— ‰j                  | › d|› d�«       y )Nz: r   )Úwrite)Úkeyr+   rV   s     €r   Úwrite_fieldz#write_pkg_file.<locals>.write_fieldš   s   ø€ Ø�
‰
�c�U˜"˜U˜G 2Ð&Õ'r   zMetadata-VersionÚNamer   ÚSummary))z	Home-pagerN   )zDownload-URLrO   )ÚAuthorr<   )zAuthor-emailrL   )Ú
MaintainerrK   )zMaintainer-emailrM   NzLicense-ExpressionÚLicensezProject-URLz, rD   ÚKeywordsÚPlatformÚ
ClassifierÚRequiresÚProvidesÚ	ObsoletesÚpython_requireszRequires-PythonzDescription-Content-TypezLicense-FileÚDynamicr   ) r   r4   Úget_nameÚget_versionÚget_descriptionr[   r   rP   Úget_licenser   Úproject_urlsÚitemsr   Úget_keywordsÚget_platformsÚ_write_listÚget_classifiersÚget_requiresÚget_providesÚget_obsoletesÚhasattrr…   Úlong_description_content_typeÚmapÚ_safe_license_filerU   Ú_write_requirementsÚ_POSSIBLE_DYNAMIC_FIELDSr   Úget_long_descriptionrw   Úendswith)r   rV   r:   ry   r;   Úoptional_fieldsr*   ÚattrÚattr_valrP   r@   ÚlabelrN   rC   rS   rE   Úsafe_license_filesrZ   rQ   s    `                 r   rd   rd   –   sÝ  ø€ à×'Ñ'Ó)€Gô(ñ Ð"¤C¨£LÔ1Ù�˜Ÿ™›Ô(Ù�	˜4×+Ñ+Ó-Ô.à×"Ñ"Ó$€GÙÙ�Iœ{¨7Ó3Ô4ð€Oð 'ò )‰ˆˆtÜ˜4  tÓ,ˆØÑÙ˜˜xÕ(ð)ð
 "×4Ñ4Ð4ÐÐ4ÙÐ(Ð*<Õ=Ø×$Ñ$Ó&Ð	&ˆÐ	&Ù�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äÔ/°×1CÑ1CÒ1IÀrÓJÐØ×Ñ�T˜>Ð+=Ô>Ü˜˜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_requiresrw   Úextras_requirerŒ   Ú	partitionr6   r   Ú
safe_extraÚ_write_provides_extraÚparse_stringsÚ_include_extra)r   rV   Ú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   rY   rw   )rV   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	   rl   r
   )r9   r:   s     r   rÆ   rÆ     s4   € ð �>‰>Ü˜$Ó×'Ñ'¨¨SÓ1Ü˜W¸%Ô@óð r   c                óÆ   — t         j                  j                  | «      j                  t         j                  d«      }d|v rt         j                  j                  |«      S |S )Nú/z../)rb   rc   Únormpathrl   ÚsepÚbasename)rV   Ú
normalizeds     r   r—   r—   )  sJ   € ä—‘×!Ñ! $Ó'×/Ñ/´·±¸Ó<€JØ�
ÑÜ�w‰w×Ñ 
Ó+Ð+ØÐr   r<   r=   rL   rF   rT   rB   rQ   zdescription-content-typer•   r?   rO   r>   rN   rC   r@   rJ   rU   rA   rP   rK   zmaintainer-emailrM   rI   rE   rS   zproject-urlr‹   rH   r¥   rG   r¤   r…   )zprovides-extrarG   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   rb   re   r    Úemailr   Úemail.messager   Útempfiler   Úpackaging.markersr   Úpackaging.requirementsr   Úpackaging.utilsr	   r
   Úpackaging.versionr   r]   r   r   Ú_staticr   Úwarningsr   Údistutils.utilr   r   r$   r,   r.   r2   r7   rW   r[   rt   rd   r˜   rª   r¨   rÇ   rÆ   r—   r™   r'   r   r   ú<module>rà      s{  ðñõ #ã 	Û Û Ý #Ý !Ý 'å $Ý .ß CÝ %ç #Ý Ý 2å (òóQóó"óóò'BòTòò&HòVó(ò0ò$Góò&ð àˆhð ð �Nð ð �-ð	 ð
 Ð%ð ð Ð ?ð ð �Nð ð �ð ð �
ð ð ˆyð ð �Oð ð  Ð.ð! ð" �,ð# ð$ Ð*ð% ð& �ð' ð* �ð+ ð, �>ð- ð. �
ð/ ð2 'ØØ'à(Øò= Ñ r   