ó
    ¶'Ôi©s  ã                  óž  • S r SSKJr  SSKrSSKrSSKrSSKJr  SSKJ	r	  SSK
Jr  SSKrSSKJr  SSKJr  SSKrSS	KJr  SS
KJr  SSKJrJrJr  SSKJrJr  SSKJr  SSKJ r J!r!  SSK"J#r#J$r$  SSK%J&r&J'r'  \	" \(5      RR                  r*Sr+S r,S r-\R\                  R_                  S\'" \*\+-  5      5      \R\                  Ra                  S5      \R\                  Rb                  S 5       5       5       r2Sr3Sr4Sr5Sr6Sr7S\34S jr8S r9\R\                  R_                  S / S!Q5      S" 5       r:S# r;S$ r<\R\                  R_                  S%\Rz                  " \3S&S'S(9\Rz                  " \4S)\R\                  R}                  S*S+S,9S-S.945      S/ 5       r?\R\                  R_                  S0\Rz                  " \6S1SS2S3S4\R\                  Ra                  S55      /S69\Rz                  " \7SS7S8S9S:S(945      S; 5       r@S< rAS= rB " S> S?5      rC " S@ SA5      rD " SB SC5      rE " SD SE5      rF " SF SG5      rG " SH SI5      rH " SJ SK5      rI " SL SM5      rJSOSN jrKg)PzÍMake sure that applying the configuration from pyproject.toml is equivalent to
applying a similar configuration from setup.cfg

To run these tests offline, please have a look on ``./downloads/preload.py``
é    )ÚannotationsN)Úcleandoc)ÚPath)ÚMock)ÚLiteTranslator)ÚMetadata)Ú	is_static)Úwrite_requirements)ÚexpandÚpyprojecttomlÚsetupcfg)Ú_MissingDynamicÚ_some_attrgetter©ÚDistribution)ÚInvalidConfigErrorÚRemovedConfigError)ÚInformationOnlyÚSetuptoolsDeprecationWarningé   )Úretrieve_fileÚurls_from_filezsetupcfg_examples.txtc                ó    • [        SU 0UE5      $ )NÚsrc_rootr   )ÚpathÚattrss     Úo/var/www/surfInsights/venv3-11/lib/python3.13/site-packages/setuptools/tests/config/test_apply_pyprojecttoml.pyÚmakedistr   #   s   € Ü˜ TÐ3¨UÐ3Ó4Ð4ó    c           
     óŠ   • U  Vs/ s H1  n[         R                  " SSU[         R                  S9=(       d    SPM3     sn$ s  snf )zx
Allow comparing the given patterns for 2 dist objects.
We need to strip special chars to avoid errors when validating.
z
[^a-z0-9]+Ú )ÚflagsÚempty)ÚreÚsubÚ
IGNORECASE)ÚpatternsÚ_Ú__Úps       r   Ú_mock_expand_patternsr+   '   sB   € ñ NVóÚMUÈŒ�Šˆ|˜R ¬"¯-©-Ñ8×C¸GÒCÉXñð ùò s   …8A ÚurlÚignorec           	     óä  • UR                  [        S[        SS95        UR                  [        S[        [        S95        [        U 5      n[        US5      nUR                  SS9n[        5       R                  US	5      nUR                  USS9  [        R                  " [        U5      U5      n[        R                  " [        U5      U5      n[        U5      n	[        U5      n
Xš:X  d   e[!        S
 Xx4 5       5      (       a.  [#        UR$                  5      [#        UR$                  5      :X  d   e[!        S Xx4 5       5      (       a   ['        UR(                  5        UR(                  R+                  5        VVs1 s H  u  p¼U/[-        S U 5       5      Q7iM     nnnUR(                  R+                  5        VVs1 s H  u  p¼U/[-        S U 5       5      Q7iM     nnnXÞ:X  d   e[!        S Xx4 5       5      (       a~  UR.                  R+                  5        VVs1 s H  u  p¼U/[-        U5      Q7iM     nnnUR.                  R+                  5        VVs1 s H  u  p¼U/[-        U5      Q7iM     nnnUU:X  d   e[!        S Xx4 5       5      (       ab  UR0                   VVs1 s H  u  p¼U/[-        U5      Q7iM     nnnUR0                   VVs1 s H  u  p¼U/[-        U5      Q7iM     nnnUU:X  d   e[#        UR2                  5      [#        UR2                  5      :X  d   e[!        S Xx4 5       5      (       a  UR4                  R+                  5        VVs1 s H  u  p¼U/[-        U5      Q7iM     nnnUR4                  R+                  5        VVs1 s H  u  p¼U/[-        U5      Q7iM     nnnUU:X  d   eg g s  snnf s  snnf s  snnf s  snnf s  snnf s  snnf s  snnf s  snnf )NÚ	read_attrz0.0.1)Úreturn_valueÚ_expand_patterns)Úside_effectúpyproject.tomlúutf-8©Úencodingz	setup.cfgc              3  ó<   #   • U  H  n[        US S5      v •  M     g7f)Úlicense_filesN©Úgetattr©Ú.0Úds     r   Ú	<genexpr>Ú>test_apply_pyproject_equivalent_to_setupcfg.<locals>.<genexpr>F   s   é € Ð
LÒ6K°Œ7�1�o t×,Ð,Ò6Kùó   ‚c              3  ó<   #   • U  H  n[        US S5      v •  M     g7f)Úentry_pointsNr9   r;   s     r   r>   r?   I   ó   é € Ð
KÒ5J°Œ7�1�n d×+Ð+Ò5Jùr@   c              3  óD   #   • U  H  oR                  S S5      v •  M     g7f©Ú r!   N©Úreplace©r<   Úis     r   r>   r?   L   ó   é € Ð6²A¨qŸ	™	 # r×*Ð*²Aùó   ‚ c              3  óD   #   • U  H  oR                  S S5      v •  M     g7frE   rG   rI   s     r   r>   r?   P   rK   rL   c              3  ó<   #   • U  H  n[        US S5      v •  M     g7f)Úpackage_dataNr9   r;   s     r   r>   r?   U   rC   r@   c              3  ó<   #   • U  H  n[        US S5      v •  M     g7f)Ú
data_filesNr9   r;   s     r   r>   r?   Z   s   é € Ð
IÒ3H¨aŒ7�1�l D×)Ð)Ò3Hùr@   c              3  ó<   #   • U  H  n[        US S5      v •  M     g7f)Úextras_requireNr9   r;   s     r   r>   r?   `   s   é € Ð
MÒ7L°!Œ7�1Ð&¨×-Ð-Ò7Lùr@   )Úsetattrr   r   r   r+   r   r   Ú	read_textr   Ú	translateÚ
write_textr   Úapply_configurationr   r   Úcore_metadataÚanyÚsetr8   ÚprintrB   ÚitemsÚsortedrO   rQ   Úinstall_requiresrS   )r,   ÚmonkeypatchÚtmp_pathÚsetupcfg_exampleÚpyproject_exampleÚsetupcfg_textÚtoml_configÚ	dist_tomlÚdist_cfgÚpkg_info_tomlÚpkg_info_cfgÚkÚvÚep_tomlÚep_cfgÚpkg_data_tomlÚpkg_data_cfgÚdata_files_tomlÚdata_files_cfgÚextra_req_tomlÚextra_req_cfgs                        r   Ú+test_apply_pyproject_equivalent_to_setupcfgrt   1   sš  € ð ×Ñœ ¬T¸wÑ-GÔHØ×ÑÜÐ(¬$Ô;PÑ*Qôô % SÓ)ÐÜ˜XÐ'7Ó8ÐØ$×.Ñ.¸Ð.Ð@€MÜ Ó"×,Ñ,¨]¸KÓH€KØ× Ñ  °wÐ Ñ?ä×1Ò1´(¸8Ó2DÐFWÓX€IÜ×+Ò+¬H°XÓ,>Ð@PÓQ€Hä! )Ó,€MÜ  Ó*€LØÓ(Ð(Ð(ä
Ñ
L°yÑ6KÓ
L×LÑLÜ�9×*Ñ*Ó+¬s°8×3IÑ3IÓ/JÓJÐJÐJä
Ñ
K°iÑ5JÓ
K×KÑKÜˆh×#Ñ#Ô$ð "×.Ñ.×4Ñ4Ô6ô
â6‘�ð Ð7”Ñ6±AÓ6Ó6Ô7Ù6ð 	ñ 
ð !×-Ñ-×3Ñ3Ô5ô
â5‘�ð Ð7”Ñ6±AÓ6Ó6Ô7Ù5ð 	ñ 
ð Ó Ð Ð ä
Ñ
K°iÑ5JÓ
K×KÑKØ5>×5KÑ5K×5QÑ5QÔ5SÔTÒ5S©T¨Q˜!˜œf Q›iœÑ5SˆÑTØ4<×4IÑ4I×4OÑ4OÔ4QÔRÒ4Q©D¨A˜˜œV A›YœÑ4QˆÑRØ Ó,Ð,Ð,ä
Ñ
I°IÑ3HÓ
I×IÑIØ7@×7KÒ7KÔLÒ7K©t¨q˜A˜?¤ q£	œ?Ñ7KˆÑLØ6>×6IÒ6IÔJÒ6I©d¨a˜1˜/œv a›yœ/Ñ6IˆÑJØ .Ó0Ð0Ð0äˆy×)Ñ)Ó*¬c°(×2KÑ2KÓ.LÓLÐLÐLÜ
Ñ
M¸	Ñ7LÓ
M×MÑMØ6?×6NÑ6N×6TÑ6TÔ6VÔWÒ6V©d¨a˜1˜/œv a›yœ/Ñ6VˆÑWØ5=×5LÑ5L×5RÑ5RÔ5TÔUÒ5T©T¨Q˜!˜œf Q›iœÑ5TˆÑUØ Ó.Ð.Ñ.ð Nùó+
ùó
ùó UùÛRùó MùÛJùó
 XùÛUs0   Å>"OÇ "OÈ!OÉOÊ)OËO ÍO&ÎO,u¤  [project]
name = "spam"
version = "2020.0.0"
description = "Lovely Spam! Wonderful Spam!"
readme = "README.rst"
requires-python = ">=3.8"
license-files = ["LICENSE.txt"]  # Updated to be PEP 639 compliant
keywords = ["egg", "bacon", "sausage", "tomatoes", "Lobster Thermidor"]
authors = [
  {email = "hi@pradyunsg.me"},
  {name = "Tzu-Ping Chung"}
]
maintainers = [
  {name = "Brett Cannon", email = "brett@python.org"},
  {name = "John X. ÃƒÃ¸rÃ§eÄ�", email = "john@utf8.org"},
  {name = "Î“Î±Î¼Î± ï­‡ æ�±", email = "gama@utf8.org"},
]
classifiers = [
  "Development Status :: 4 - Beta",
  "Programming Language :: Python"
]

dependencies = [
  "httpx",
  "gidgethub[httpx]>4.0.0",
  "django>2.1; os_name != 'nt'",
  "django>2.0; os_name == 'nt'"
]

[project.optional-dependencies]
test = [
  "pytest < 5.0.0",
  "pytest-cov[all]"
]

[project.urls]
homepage = "http://example.com"
documentation = "http://readthedocs.org"
repository = "http://github.com"
changelog = "http://github.com/me/spam/blob/master/CHANGELOG.md"

[project.scripts]
spam-cli = "spam:main_cli"

[project.gui-scripts]
spam-gui = "spam:main_gui"

[project.entry-points."spam.magical"]
tomatoes = "spam:main_tomatoes"
uÖ   [project]
name = "spam"
version = "2020.0.0"
authors = [
  {email = "hi@pradyunsg.me"},
  {name = "Tzu-Ping Chung"}
]
maintainers = [
  {name = "à¤…à¤‚à¤•à¤¿à¤¤ à¤…à¤¹à¤²à¤¾à¤µà¤¤", email = "ankit@example.com"},
]
zE
def main_cli(): pass
def main_gui(): pass
def main_tomatoes(): pass
z�[project]
name = "spam"
version = "2020.0.0"
authors = [
  {email = "hi@pradyunsg.me"},
  {name = "Tzu-Ping Chung"}
]
license = {text = "MIT"}
a#  [project]
name = "spam"
version = "2020.0.0"
authors = [
  {email = "hi@pradyunsg.me"},
  {name = "Tzu-Ping Chung"}
]
license = "mit or apache-2.0"  # should be normalized in metadata
classifiers = [
    "Development Status :: 5 - Production/Stable",
    "Programming Language :: Python",
]
z
README.rstc                ó  • U S-  nUnSSU S30nUR                  5        H  u  pgUR                  Xg5      nM     UR                  USS9  X-  R                  SSS9  U S-  R                  S	SS9  U S
-  R                  [        SS9  U$ )Nr3   zreadme = "README.rst"z
readme = "Ú"r4   r5   zhello worldúLICENSE.txtú--- LICENSE stub ---zspam.py)r]   rH   rW   ÚPEP621_EXAMPLE_SCRIPT)ra   ÚreadmeÚpyproject_textÚ	pyprojectÚtextÚreplacementsÚorigÚsubsts           r   Ú_pep621_example_projectr�   È   s«   € ð
 Ð+Ñ+€IØ€DØ+¨z¸&¸ÀÐ-CÐD€LØ#×)Ñ)Ö+‰ˆØ�|‰|˜DÓ(Šñ ,à×Ñ˜¨ÐÑ0àÑ×"Ñ" =¸7Ð"ÑCØ�Ñ×)Ñ)Ð*@È7Ð)ÑSØ�	Ñ×%Ñ%Ô&;ÀgÐ%ÑNØÐr   c                ó¦   • [        U 5      n[        R                  " [        U 5      U5      n[	        UR
                  R                  5      S1:X  d   eg)z&Make sure the example in PEP 621 worksrw   N)r�   r   rX   r   r[   Úmetadatar8   ©ra   r|   Údists      r   Útest_pep621_exampler†   Ú   sB   € ä'¨Ó1€IÜ×,Ò,¬X°hÓ-?ÀÓK€DÜˆt�}‰}×*Ñ*Ó+°¨Ó>Ð>Ñ>r   )rz   Úctype))z
Readme.txtz
text/plain)z	readme.mdztext/markdown)ztext.rstz
text/x-rstc                ó’   • [        X5      n[        R                  " [        U 5      U5      nUR                  R
                  U:X  d   eg ©N©r�   r   rX   r   rƒ   Úlong_description_content_type)ra   rz   r‡   r|   r…   s        r   Útest_readme_content_typerŒ   á   s=   € ô (¨Ó9€IÜ×,Ò,¬X°hÓ-?ÀÓK€DØ�=‰=×6Ñ6¸%Ó?Ð?Ñ?r   c                óÂ   • [        U S5      n[        R                  " [        SS9   [        R
                  " [        U 5      U5        S S S 5        g ! , (       d  f       g = f)Nz
README.texz%Undefined content type for README.tex©Úmatch)r�   ÚpytestÚraisesÚ
ValueErrorr   rX   r   )ra   r|   s     r   Útest_undefined_content_typer“   ï   s?   € Ü'¨°,Ó?€IÜ	�Š”zÐ)PÓ	QÜ×)Ò)¬(°8Ó*<¸iÔH÷ 
R×	QÖ	Qús   ¦!AÁ
Ac                óŽ   • [        U S5      n[        R                  " [        U 5      U5      nUR                  R
                  b   eg )NÚREADMErŠ   r„   s      r   Ú3test_no_explicit_content_type_for_missing_extensionr–   õ   s;   € Ü'¨°(Ó;€IÜ×,Ò,¬X°hÓ-?ÀÓK€DØ�=‰=×6Ñ6Ñ>Ð>Ñ>r   )r{   Úexpected_maintainers_meta_valueug   Brett Cannon <brett@python.org>, "John X. ÃƒÃ¸rÃ§eÄ�" <john@utf8.org>, Î“Î±Î¼Î± ï­‡ æ�± <gama@utf8.org>znon-international-emails)Úidu?   Ankit Ahlawat <à¤…à¤‚à¤•à¤¿à¤¤@à¤‰à¤¦à¤¾à¤¹à¤°à¤£.à¤­à¤¾à¤°à¤¤>zlCPython's `email.headerregistry.Address` only supports RFC 5322, as of Oct 20, 2025 and latest Python 3.13.0T)ÚreasonÚstrictzinternational-email)Úmarksr˜   c                óP  • [        USUS9n[        R                  " [        U5      U5      nUR                  R
                  U :X  d   eUS-  n[        USSS9 nUR                  R                  U5        S S S 5        UR                  SS9nSU  3U;   d   eg ! , (       d  f       N)= f)Nr•   ©r{   úPKG-FILEÚwr4   r5   zMaintainer-email: )	r�   r   rX   r   rƒ   Úmaintainer_emailÚopenÚwrite_pkg_filerU   )r—   r{   ra   r|   r…   Úpkg_fileÚfhÚcontents           r   Ú test_utf8_maintainer_in_metadatar¦   û   s«   € ô8 (ØØØ%ñ€Iô
 ×,Ò,¬X°hÓ-?ÀÓK€DØ�=‰=×)Ñ)Ð-LÓLÐLÐLØ˜*Ñ$€HÜ	ˆh˜ gÒ	.°"Ø�‰×$Ñ$ RÔ(÷ 
/à× Ñ ¨'Ð Ð2€GØÐ ?Ð@ÐAÀWÓLÐLÑL÷ 
/Õ	.ús   ÁBÂ
B%)r{   ÚlicenseÚlicense_expressionÚcontent_strÚnot_content_strÚMITzLicense: MITzLicense-Expression: zlicense-textz6ignore:.project.license. as a TOML table is deprecated)r˜   r›   zMIT OR Apache-2.0z%License-Expression: MIT OR Apache-2.0z	License: zlicense-expressionc                óž  • [        USUS9n[        R                  " [        U5      U5      nUR                  R
                  U :X  d   eUR                  R                  U:X  d   eUS-  n[        USSS9 n	UR                  R                  U	5        S S S 5        UR                  SS9n
SU
;   d   eX*;   d   eX:;  d   eg ! , (       d  f       N4= f)Nr•   r�   rž   rŸ   r4   r5   zMetadata-Version: 2.4)
r�   r   rX   r   rƒ   r§   r¨   r¡   r¢   rU   )r§   r¨   r©   rª   r{   ra   r|   r…   r£   r¤   r¥   s              r   Útest_license_in_metadatar­   %  sÓ   € ôP (ØØØ%ñ€Iô
 ×,Ò,¬X°hÓ-?ÀÓK€DØ�=‰=× Ñ  GÓ+Ð+Ð+Ø�=‰=×+Ñ+Ð/AÓAÐAÐAØ˜*Ñ$€HÜ	ˆh˜ gÒ	.°"Ø�‰×$Ñ$ RÔ(÷ 
/à× Ñ ¨'Ð Ð2€GØ" gÓ-Ð-Ð-ØÓ!Ð!Ð!ØÓ)Ð)Ñ)÷ 
/Õ	.ús   Á4B>Â>
Cc                ó6  • [         R                  SS5      S   n[        U SU S35      nSn[        R                  " [
        US9 n[        R                  " [        U 5      U5        S S S 5        S[        WR                  5      ;   d   eg ! , (       d  f       N*= f)	NÚ
é   r   r•   z/
    "License :: OSI Approved :: MIT License"
]z?License classifiers have been superseded by license expressionsrŽ   ú&License :: OSI Approved :: MIT License)ÚPEP639_LICENSE_EXPRESSIONÚrsplitr�   r�   r‘   r   r   rX   r   ÚstrÚvalue)ra   r}   r|   ÚmsgÚexcs        r   Ú/test_license_classifier_with_license_expressionr¸   ^  sˆ   € Ü$×+Ñ+¨D°!Ó4°QÑ7€DÜ'ØØØˆ&ÐCÐDó€Ið
 L€CÜ	�ŠÔ)°Ò	5¸Ü×)Ò)¬(°8Ó*<¸iÔH÷ 
6ð 4´s¸3¿9¹9³~ÓEÐEÑE÷ 
6Õ	5ús   Á!B
Â

Bc                óx  • Sn[        U SU5      nSnSn[        R                  " [        US9   [        R                  " [        US9   [        R
                  " [        U 5      U5      nS S S 5        S S S 5        WR                  R                  5       S/:X  d   eg ! , (       d  f       N8= f! , (       d  f       NA= f)Nz¥    [project]
    name = "spam"
    version = "2020.0.0"
    license = {text = "mit or apache-2.0"}
    classifiers = ["License :: OSI Approved :: MIT License"]
    r•   z5License classifiers are deprecated(?:.|
)*MIT Licenseú/.project.license. as a TOML table is deprecatedrŽ   r±   )	r�   r�   Úwarnsr   r   rX   r   rƒ   Úget_classifiers)ra   r}   r|   Úmsg1Úmsg2r…   s         r   Ú2test_license_classifier_without_license_expressionr¿   l  s•   € ð€Dô (¨°(¸DÓA€IàC€DØ<€Dä�ŠÔ1¸Ó>Ü�ŠÔ1¸Ó>ä×0Ò0´¸(Ó1CÀYÓOˆ÷ 	?÷ 	?ð �=‰=×(Ñ(Ó*Ð/WÐ.XÓXÐXÑX÷ 	?Õ>ú÷ 	?Õ>ús#   ­B+Á!BÁ(B+Â
B(	Â$B+Â+
B9c                  óP   • \ rS rSr  SS jrSS jrS rS rS rS r	S r
S	 rS
rg)ÚTestLicenseFilesi‚  c                ó¤   • [         nSU;   d   eSU;  d   eSU;  d   e[        R                  " SUUSS9nX4;   d   eU SU S3n[        USUS	9nU$ )
Nzlicense = "mit or apache-2.0"zlicense-filesz[tool.setuptools]z(license = .*)\nr   )Úcountr¯   r•   r�   )r²   r$   r%   r�   )Úselfra   Úadditional_textÚlicense_tomlr}   r|   s         r   Úbase_pyprojectÚTestLicenseFiles.base_pyprojectƒ  s„   € ô )ˆð /°$Ó6Ð6Ð6Ø dÓ*Ð*Ð*Ø"¨$Ó.Ð.Ð.ä�vŠvØØØØñ	
ˆð Ó#Ð#Ð#Ø��r˜/Ð*¨"Ð-ˆÜ+¨H°hÈtÑTˆ	ØÐr   c                ó$   • U R                  UUSS9$ )Nz>license = "licenseref-Proprietary"
license-files = ["_FILE*"]
)rÅ   rÆ   )rÇ   )rÄ   ra   rÅ   s      r   Úbase_pyproject_license_pep639Ú.TestLicenseFiles.base_pyproject_license_pep639›  s%   € Ø×"Ñ"ØØ+ð-ð #ð 
ð 	
r   c                ó:  • SnU R                  X5      nUS-  R                  5         US-  R                  5         US-  nUR                  SSS9  SnS	n[        R                  " [
        US
9   [        R                  " [
        US
9   [        R                  " [        U5      U5      nS S S 5        S S S 5        [        WR                  R                  5      SS1:X  d   eUR                  R                  S:X  d   eg ! , (       d  f       NZ= f! , (       d  f       Nc= f)Nú,[tool.setuptools]
license-files = ["_FILE*"]ú	_FILE.txtú	_FILE.rstrw   zLicenseRef-Proprietary
r4   r5   zQ'tool.setuptools.license-files' is deprecated in favor of 'project.license-files'rº   rŽ   )rÇ   ÚtouchrW   r�   r»   r   r   rX   r   r[   rƒ   r8   r§   )rÄ   ra   Úsetuptools_configr|   r§   r½   r¾   r…   s           r   Ú+test_both_license_and_license_files_definedÚ<TestLicenseFiles.test_both_license_and_license_files_defined£  sö   € ØKÐØ×'Ñ'¨ÓDˆ	à	�KÑ	×&Ñ&Ô(Ø	�KÑ	×&Ñ&Ô(ð ˜]Ñ*ˆØ×ÑÐ5ÀÐÑHàbˆØ@ˆä�LŠLÔ5¸TÓBÜ�LŠLÔ5¸TÓBä ×4Ò4´X¸hÓ5GÈÓSˆD÷ C÷ Cô �4—=‘=×.Ñ.Ó/°KÀÐ3MÓMÐMÐMØ�}‰}×$Ñ$Ð(BÓBÐBÑB÷	 CÕBú÷ CÕBús$   Á,DÂ!C;Â'DÃ;
D		ÄDÄ
Dc                óÔ  • U R                  U5      nUS-  R                  5         US-  R                  5         Sn[        R                  " [        US9   [
        R                  " [        U5      U5      nS S S 5        [        WR                  R                  5      SS1:X  d   eUR                  R                  b   eUR                  R                  S:X  d   eg ! , (       d  f       Nk= f)NrÎ   rÏ   zNormalizing.*LicenseRefrŽ   zLicenseRef-Proprietary)rÊ   rÐ   r�   r»   r   r   rX   r   r[   rƒ   r8   r§   r¨   )rÄ   ra   r|   r¶   r…   s        r   Ú2test_both_license_and_license_files_defined_pep639ÚCTestLicenseFiles.test_both_license_and_license_files_defined_pep639¹  s¿   € à×6Ñ6°xÓ@ˆ	à	�KÑ	×&Ñ&Ô(Ø	�KÑ	×&Ñ&Ô(à'ˆÜ�\Š\œ/°Ó5Ü ×4Ò4´X¸hÓ5GÈÓSˆD÷ 6ô �4—=‘=×.Ñ.Ó/°KÀÐ3MÓMÐMÐMØ�}‰}×$Ñ$Ñ,Ð,Ð,Ø�}‰}×/Ñ/Ð3KÓKÐKÑK÷ 6Õ5ús   Á!CÃ
C'c                óÔ   • SnU R                  X5      nSn[        R                  " [        US9   [        R
                  " [        U5      U5        S S S 5        g ! , (       d  f       g = f)NrÍ   zR'project.license-files' is defined already. Remove 'tool.setuptools.license-files'rŽ   )rÊ   r�   r‘   r   r   rX   r   )rÄ   ra   rÑ   r|   r¶   s        r   Ú test_license_files_defined_twiceÚ1TestLicenseFiles.test_license_files_defined_twiceÈ  sM   € àKÐØ×6Ñ6°xÓSˆ	àbˆÜ�]Š]Ô-°SÓ9Ü×-Ò-¬h°xÓ.@À)ÔL÷ :×9Ö9ús   ¯!AÁ
A'c                óJ  • SnU R                  XSS9nSR                  5       nU H  nX-  R                  U S3SS9  M     [        R                  " [        U5      U5      nUS-  R                  5       (       d   e[        UR                  R                  5      1 UkSi:X  d   eg )	Nz"[tool.setuptools]
zip-safe = falser!   )rÆ   z5LICENCE-a.html COPYING-abc.txt AUTHORS-xyz NOTICE,defr¯   r4   r5   rw   )
rÇ   ÚsplitrW   r   rX   r   Úexistsr[   rƒ   r8   )rÄ   ra   rÑ   r|   r8   Úfnamer…   s          r   Útest_default_patternsÚ&TestLicenseFiles.test_default_patternsÑ  s­   € ØAÐà×'Ñ'¨ÐRTÐ'ÐUˆ	àO×UÑUÓWˆã"ˆEØÑ×)Ñ)¨U¨G°2¨,ÀÐ)ÓIñ #ô ×0Ò0´¸(Ó1CÀYÓOˆà˜=Ñ(×0Ñ0×2Ñ2Ð2Ð2Ü�4—=‘=×.Ñ.Ó/Ð3R°]Ð3RÀMÐ3RÓRÐRÑRr   c                óz  • U R                  U5      n[        UR                  S5      5      / :X  d   eSnSn[        R                  " [
        US9   [        R                  " [        US9   [        R                  " [        U5      U5        S S S 5        S S S 5        g ! , (       d  f       N= f! , (       d  f       g = f)Nz_FILE*z-Cannot find any files for the given pattern.*z@Normalizing 'licenseref-Proprietary' to 'LicenseRef-Proprietary'rŽ   )
rÊ   ÚlistÚglobr�   r»   r   r   r   rX   r   )rÄ   ra   r|   r½   r¾   s        r   Útest_missing_patternsÚ&TestLicenseFiles.test_missing_patternsà  s‰   € Ø×6Ñ6°xÓ@ˆ	Ü�H—M‘M (Ó+Ó,°Ó2Ð2Ð2à>ˆØQˆä�LŠLÔ5¸TÓBÜ�LŠLœ°Ó5ä×-Ò-¬h°xÓ.@À)ÔL÷ 6÷ CÐBß5Õ5ú÷ CÕBús$   ÁB,Á)!BÂ
B,Â
B)	Â%B,Â,
B:c                óˆ  • S[         ;   d   e[         R                  SS5      n[        XS9nSn[        R                  " [
        US9   [        R                  " [        U5      U5      nSSS5        WR                  R                  S:X  d   e[        UR                  R                  5      S1:X  d   eg! , (       d  f       NQ= f)	z?Make sure the old example with ``license = {text = ...}`` workszlicense-files = ["LICENSE.txt"]z license = {file = "LICENSE.txt"}r�   rº   rŽ   Nrx   rw   )ÚPEP621_EXAMPLErH   r�   r�   r»   r   r   rX   r   rƒ   r§   r[   r8   )rÄ   ra   r}   r|   r¶   r…   s         r   Ú$test_deprecated_file_expands_to_textÚ5TestLicenseFiles.test_deprecated_file_expands_to_textì  s©   € ð 1´NÓBÐBÐBÜ×%Ñ%Ø-Ø.ó
ˆô ,¨HÑJˆ	à?ˆÜ�\Š\Ô6¸cÓBÜ ×4Ò4´X¸hÓ5GÈÓSˆD÷ Cð �}‰}×$Ñ$Ð(>Ó>Ð>Ð>Ü�4—=‘=×.Ñ.Ó/°M°?ÓBÐBÑB÷	 CÕBús   Á!B3Â3
C© N)r!   z!license = {file = "LICENSE.txt"}
©r!   )Ú__name__Ú
__module__Ú__qualname__Ú__firstlineno__rÇ   rÊ   rÒ   rÕ   rØ   rÞ   rã   rç   Ú__static_attributes__ré   r   r   rÁ   rÁ   ‚  s8   † ð Ø9ô	ô0
òCò,LòMòSò
MõCr   rÁ   c                  óª   • \ rS rSrS r\R                  R                  SSS/5      S 5       r\R                  R                  S/ SQ5      S 5       r	S	r
g
)ÚTestPyModulesiþ  c                ó˜   • SU< S3n[        S5      nUR                  [        U5      SS9  [        R                  " [        0 5      U5      $ )Nzr
        [project]
        name = "test"
        version = "42.0"
        [tool.setuptools]
        py-modules = [z
]
        r3   r4   r5   )r   rW   r   r   rX   r   )rÄ   Únamere   r|   s       r   r…   ÚTestPyModules.dist  sW   € ðð
 ‘hð 	ðˆô Ð)Ó*ˆ	Ø×ÑœX kÓ2¸WÐÑEÜ×0Ò0´¸bÓ1AÀ9ÓMÐMr   Úmodulezpip-runu   abc-d.Î»-xyz-ec                óf   • UR                  U5        X0R                  U5      R                  ;   d   eg r‰   )Úchdirr…   Ú
py_modules©rÄ   ra   r`   rõ   s       r   Útest_valid_module_nameÚ$TestPyModules.test_valid_module_name  s+   € à×Ñ˜(Ô#ØŸ™ 6Ó*×5Ñ5Ó5Ð5Ñ5r   )zpip runz-pip-runzpip-run-stubsc                óÂ   • UR                  U5        [        R                  " [        SS9   U R	                  U5      R
                    S S S 5        g ! , (       d  f       g = f)Nz
py-modulesrŽ   )r÷   r�   r‘   r’   r…   rø   rù   s       r   Útest_invalid_module_nameÚ&TestPyModules.test_invalid_module_name  s<   € à×Ñ˜(Ô#Ü�]Š]œ:¨\Ó:Ø�I‰I�fÓ×(Ò(÷ ;×:Ö:ús   «AÁ
Aré   N)rë   rì   rí   rî   r…   r�   ÚmarkÚparametrizerú   rý   rï   ré   r   r   rñ   rñ   þ  s[   † ò
Nð ‡[�[×Ñ˜X¨	Ð3CÐ'DÓEñ6ó Fð6ð ‡[�[×Ñ˜XÒ'OÓPñ)ó Qó)r   rñ   c                  ó&   • \ rS rSrS rS rS rSrg)ÚTestExtModulesi  c                ó  • [        S5      nUR                  [        U5      SS9  [        R                  " [
        R                  5         [
        R                  " [        0 5      U5      sS S S 5        $ ! , (       d  f       g = f)Nr3   r4   r5   )	r   rW   r   r�   r»   r   Ú_ExperimentalConfigurationrX   r   )rÄ   re   r|   s      r   Ú	make_distÚTestExtModules.make_dist  sY   € ÜÐ)Ó*ˆ	Ø×ÑœX kÓ2¸WÐÑEÜ�\Š\œ-×BÑBÕCÜ ×4Ò4´\À"Ó5EÀyÓQ÷ D×C×Cús   Á	 A3Á3
Bc                ó  • UR                  U5        SnU R                  U5      n[        UR                  5      S:X  d   eUR                  S   R                  S:X  d   e[        UR                  S   R                  5      SS1:X  d   eg )NzÄ
        [project]
        name = "test"
        version = "42.0"
        [tool.setuptools]
        ext-modules = [
          {name = "my.ext", sources = ["hello.c", "world.c"]}
        ]
        r   r   zmy.extzhello.czworld.c)r÷   r  ÚlenÚext_modulesró   r[   Úsources©rÄ   ra   r`   re   r…   s        r   Útest_pyproject_sets_attributeÚ,TestExtModules.test_pyproject_sets_attribute   sˆ   € Ø×Ñ˜(Ô#ðˆð �~‰~˜kÓ*ˆÜ�4×#Ñ#Ó$¨Ó)Ð)Ð)Ø×Ñ Ñ"×'Ñ'¨8Ó3Ð3Ð3Ü�4×#Ñ# AÑ&×.Ñ.Ó/°I¸yÐ3IÓIÐIÑIr   c                ó6  • UR                  U5        SnU R                  U5      n[        UR                  S   R                  S   [
        5      (       d   eUR                  S   R                  S   S:X  d   eUR                  S   R                  S   S:X  d   eg )Nzó
        [project]
        name = "test"
        version = "42.0"
        [[tool.setuptools.ext-modules]]
        name = "my.ext"
        sources = ["hello.c", "world.c"]
        define-macros = [["FIRST_SINGLE"], ["SECOND_TWO", "1"]]
        r   )ÚFIRST_SINGLEr   )Ú
SECOND_TWOÚ1)r÷   r  Ú
isinstancer	  Údefine_macrosÚtupler  s        r   Ú&test_pyproject_define_macros_as_tuplesÚ5TestExtModules.test_pyproject_define_macros_as_tuples0  sš   € à×Ñ˜(Ô#ðˆð �~‰~˜kÓ*ˆÜ˜$×*Ñ*¨1Ñ-×;Ñ;¸AÑ>Ä×FÑFÐFÐFØ×Ñ Ñ"×0Ñ0°Ñ3Ð7HÓHÐHÐHØ×Ñ Ñ"×0Ñ0°Ñ3Ð7JÓJÐJÑJr   ré   N)rë   rì   rí   rî   r  r  r  rï   ré   r   r   r  r    s   † òRòJõ Kr   r  c                  ó   • \ rS rSrS rSrg)ÚTestDeprecatedFieldsiB  c                óê   • US-  nSnUR                  [        U5      SS9  [        R                  " [        SS9   [
        R                  " [        U5      U5        S S S 5        g ! , (       d  f       g = f)Nr3   z�
        [project]
        name = "myproj"
        version = "42"
        [tool.setuptools]
        namespace-packages = ["myproj.pkg"]
        r4   r5   znamespace-packagesrŽ   )rW   r   r�   r‘   r   r   rX   r   )rÄ   ra   r|   Úconfigs       r   Útest_namespace_packagesÚ,TestDeprecatedFields.test_namespace_packagesC  s`   € ØÐ/Ñ/ˆ	ðˆð 	×ÑœX fÓ-¸ÐÑ@Ü�]Š]Ô-Ð5IÓJÜ×-Ò-¬h°xÓ.@À)ÔL÷ K×JÖJús   º!A$Á$
A2ré   N)rë   rì   rí   rî   r  rï   ré   r   r   r  r  B  s   † õMr   r  c                  ó>  • \ rS rSrS#S jr\R                  R                  SS\R                  " SS\R                  R                  S5      /06SSS	/4S
SSS/04S
SSS/04\R                  " SSS/4S\R                  R                  S5      /06/5      S 5       r
\R                  R                  SSSS/ 4SS0 4SSS/4SSS	/4/5      S 5       rS rS rS r\R                  R                  SSS/5      \R                  R                  S5      S  5       5       rS!rg")$ÚTestPresetFieldiQ  c                óX   • SU< S3nSU;  a  US-  nUS-  nUR                  XC-   SS9  U$ )Nz"[project]
name = 'proj'
dynamic = r¯   Úversionzversion = '42'
r3   r4   r5   )rW   )rÄ   ra   ÚdynamicÚextra_contentr¥   Úfiles         r   r|   ÚTestPresetField.pyprojectR  sF   € Ø8¸¹À2ÐFˆØ˜GÓ#ØÐ)Ñ)ˆGØÐ*Ñ*ˆØ�‰˜Ñ/¸'ˆÑBØˆr   )ÚattrÚfieldrµ   )r¨   r§   r«   )r§   r§   zNot SPDXr›   zignore:.*license. overwrittenÚclassifierszPrivate :: ClassifierrB   ÚscriptsÚconsole_scriptsúfoobar=foobar:mainúgui-scriptsÚgui_scriptszbazquux=bazquux:mainr_   ÚdependenciesÚsixz&ignore:.*install_requires. overwrittenc                ó`  • U R                  U/ 5      n[        U40 X$0D6n[        R                  " SU 3[        R                  5      n[
        R                  " [        US9   [        R                  " Xe5      nSSS5        [        SU 3U5      " U5      nU(       a   eg! , (       d  f       N-= f)z:Setuptools cannot set a field if not listed in ``dynamic``z&defined outside of `pyproject.toml`:.*rŽ   Nú	metadata.)r|   r   r$   ÚcompileÚDOTALLr�   r»   r   r   rX   r   )	rÄ   ra   r%  r&  rµ   r|   r…   r¶   Ú
dist_values	            r   Útest_not_listed_in_dynamicÚ*TestPresetField.test_not_listed_in_dynamicZ  s‘   € ð* —N‘N 8¨RÓ0ˆ	Ü˜Ñ2 T MÑ2ˆÜ�jŠjÐAÀ%ÀÐIÌ2Ï9É9ÓUˆÜ�\Š\œ/°Ó5Ü ×4Ò4°TÓEˆD÷ 6ô &¨	°$°Ð&8¸$Ô?ÀÓEˆ
ÞÐˆ~�:÷	 6Õ5ús   Á!BÂ
B-rS   zoptional-dependenciesc                ó¦   • U R                  X/5      n[        U40 X$0D6n[        R                  " Xe5      n[	        SU 3U5      " U5      nXt:X  d   eg )Nr0  )r|   r   r   rX   r   )rÄ   ra   r%  r&  rµ   r|   r…   r3  s           r   Útest_listed_in_dynamicÚ&TestPresetField.test_listed_in_dynamicx  sY   € ð —N‘N 8¨WÓ5ˆ	Ü˜Ñ2 T MÑ2ˆÜ×0Ò0°ÓAˆÜ%¨	°$°Ð&8¸$Ô?ÀÓEˆ
ØÓ"Ð"Ñ"r   c                óì   • UR                  U5        U R                  U/ 5      n[        US/S9nUS-  R                  SSS9  [        R
                  " XC5      nUR                  R                  S/:X  d   eg)a(  
license-file is currently not considered in the context of dynamic.
As per 2025-02-19, https://packaging.python.org/en/latest/specifications/pyproject-toml/#license-files
allows setuptools to fill-in `license-files` the way it sees fit:

> If the license-files key is not defined, tools can decide how to handle license files.
> For example they can choose not to include any files or use their own
> logic to discover the appropriate files in the distribution.

Using license_files from setup.py to fill-in the value is in accordance
with this rule.
zLIC*)r8   ÚLIC1Ú42r4   r5   N)r÷   r|   r   rW   r   rX   rƒ   r8   )rÄ   r`   ra   r|   r…   s        r   Ú&test_license_files_exempt_from_dynamicÚ6TestPresetField.test_license_files_exempt_from_dynamic‰  sr   € ð 	×Ñ˜(Ô#Ø—N‘N 8¨RÓ0ˆ	Ü˜°°Ñ9ˆØ	�FÑ	×&Ñ& t°gÐ&Ñ>Ü×0Ò0°ÓAˆØ�}‰}×*Ñ*¨v¨hÓ6Ð6Ñ6r   c                óô   • SnUS-  nUR                  USS9  [        US/S9n[        R                  " SS9   [        R
                  " XC5      nS S S 5        SUR                  ;  d   eg ! , (       d  f       N!= f)	Nz:[project]
name='pkg'
version='0.1'
dependencies=['click']
r3   r4   r5   Úwheel©r_   z`install_requires` overwrittenrŽ   )rW   r   r�   r»   r   rX   r_   )rÄ   ra   Úsrcr|   r…   s        r   Ú%test_warning_overwritten_dependenciesÚ5TestPresetField.test_warning_overwritten_dependencies�  st   € ØNˆØÐ/Ñ/ˆ	Ø×Ñ˜S¨7ÐÑ3Ü˜°G°9Ñ=ˆÜ�\Š\Ð @ÓAÜ ×4Ò4°TÓEˆD÷ Bà˜d×3Ñ3Ó3Ð3Ñ3÷ BÕAús   ·A)Á)
A7c                ó,  • SnU R                  US/U5      nS/n[        XS9n[        R                  " XS5      nSUR                  ;   d   eUR                  S5      n[        XaUS-  5        US-  R                  SS	9nS
U;   d   eSU;   d   eSU;   d   eg)zû
Internally setuptools converts dependencies with markers to "extras".
If ``install_requires`` is given by ``setup.py``, we have to ensure that
applying ``optional-dependencies`` does not overwrite the mandatory
dependencies with markers (see #3204).
z1
[project.optional-dependencies]
foo = ['bar>1']
r-  z6importlib-resources (>=3.0.0) ; python_version < "3.7"r@  ÚfooÚegg_infozrequires.txtr4   r5   zimportlib-resourcesÚbarz:python_version < "3.7"N)r|   r   r   rX   rS   Úget_command_objr
   rU   )rÄ   ra   Úextrar|   Úinstall_reqr…   rF  Úreqss           r   Ú2test_optional_dependencies_dont_remove_env_markersÚBTestPresetField.test_optional_dependencies_dont_remove_env_markers¦  s´   € ð GˆØ—N‘N 8¨nÐ-=¸uÓEˆ	ØOÐPˆÜ˜Ñ?ˆÜ×0Ò0°ÓAˆØ˜×+Ñ+Ó+Ð+Ð+Ø×'Ñ'¨
Ó3ˆÜ˜8¨x¸.Ñ/HÔIØ˜>Ñ)×4Ñ4¸gÐ4ÐFˆØ$¨Ó,Ð,Ð,Ø˜‹}Ðˆ}Ø(¨DÓ0Ð0Ñ0r   )r&  Úgroup)r(  r)  )r+  r,  Úerrorc                óŽ   • U R                  X/5      n[        XS/0S9n[        R                  " XT5      nX5R                  ;   d   eg )Nr*  )rB   )r|   r   r   rX   rB   )rÄ   ra   r&  rN  r|   r…   s         r   Ú.test_scripts_dont_require_dynamic_entry_pointsÚ>TestPresetField.test_scripts_dont_require_dynamic_entry_points¼  sI   € ð —N‘N 8¨WÓ5ˆ	Ü˜Ð8LÐ7MÐ/NÑOˆÜ×0Ò0°ÓAˆØ×)Ñ)Ó)Ð)Ñ)r   ré   Nrê   )rë   rì   rí   rî   r|   r�   rÿ   r   ÚparamÚfilterwarningsr4  r7  r<  rB  rL  rQ  rï   ré   r   r   r  r  Q  s�  † ôð ‡[�[×ÑØ"à4Ø�LŠLØ3ðà—{‘{×1Ñ1Ð2QÓRÐSñð ˜MÐ,CÐ+DÐEØ˜YÐ):Ð=QÐ<RÐ(SÐTØ˜]¨]Ð=SÐ<TÐ,UÐVØ�LŠLØ$ n°u°gÐ>ðð —K‘K×.Ñ.Ð/WÓXðñð	
óñ&	ó'ð&	ð ‡[�[×ÑØ"à4Ø °Ð4ØÐ6¸Ð;Ø °%°Ð9Ø˜MÐ,CÐ+DÐEð	
ó	ñ#ó	ð#ò7ò(4ò1ð, ‡[�[×ÑØØ	'Ð)GÐHóð ‡[�[×Ñ Ó(ñ*ó )ó	ó
*r   r  c                  ó   • \ rS rSrS rSrg)ÚTestMetaiÉ  c                ó´   • [         R                  " U5       n[        S UR                  5        5       5      (       d   e SSS5        g! , (       d  f       g= f)z,Meta test to ensure tests can run from sdistc              3  óJ   #   • U  H  oR                  [        5      v •  M     g 7fr‰   )ÚendswithÚEXAMPLES_FILE)r<   ró   s     r   r>   Ú6TestMeta.test_example_file_in_sdist.<locals>.<genexpr>Í  s   é € ÐOÂ¸—}‘}¤]×3Ð3Âùs   ‚!#N)Útarfiler¡   rZ   Úgetnames)rÄ   Úsetuptools_sdistÚtars      r   Útest_example_file_in_sdistÚ#TestMeta.test_example_file_in_sdistÊ  s:   € ä�\Š\Ð*Ô+¨sÜÑOÀÇÁÄÓO×OÑOÐOÑO÷ ,×+Ö+ús   —(A	Á	
Aré   N)rë   rì   rí   rî   r`  rï   ré   r   r   rV  rV  É  s   † õPr   rV  c                  ó   • \ rS rSrS rSrg)ÚTestInteropCommandLineParsingiÐ  c                ó"  • UR                  U5        Sn[        US5      nUR                  [        U5      SS9  SS/0n[        R
                  " [        U5      U5      nUR                  5         UR                  5       nSUR                  ;   d   eg )NzJ
        [project]
        name = "test"
        version = "42.0"
        r3   r4   r5   Úscript_argsz	--versionz42.0)
r÷   r   rW   r   r   rX   r   Úparse_command_lineÚ
readouterrÚout)	rÄ   ra   r`   Úcapsysre   r|   Úoptsr…   Úcaptureds	            r   Útest_versionÚ*TestInteropCommandLineParsing.test_versionÑ  s�   € ð 	×Ñ˜(Ô#ðˆô
 ˜Ð#3Ó4ˆ	Ø×ÑœX kÓ2¸WÐÑEØ ˜}Ð-ˆÜ×0Ò0´¸dÓ1CÀYÓOˆØ×ÑÔ!Ø×$Ñ$Ó&ˆØ˜Ÿ™Ó%Ð%Ñ%r   ré   N)rë   rì   rí   rî   rl  rï   ré   r   r   rc  rc  Ð  s   † õ&r   rc  c                  ó   • \ rS rSrS rSrg)ÚTestStaticConfigiã  c                óh  • UR                  U5        Sn[        US5      nUR                  [        U5      SS9  [        R
                  " [        0 5      U5      n[        UR                  5      (       d   e[        UR                  R                  5      (       d   e[        UR                  R                  5      (       d   e[        UR                  R                  5      (       d   e[        UR                  R                  5      (       d   e[        UR                  R                  5      (       d   eg )Na)  
        [project]
        name = "test"
        version = "42.0"
        dependencies = ["hello"]
        keywords = ["world"]
        classifiers = ["private :: hello world"]
        [tool.setuptools]
        obsoletes = ["abcd"]
        provides = ["abcd"]
        platforms = ["abcd"]
        r3   r4   r5   )r÷   r   rW   r   r   rX   r   r	   r_   rƒ   Úkeywordsr'  Ú	obsoletesÚprovidesÚ	platforms)rÄ   ra   r`   re   r|   r…   s         r   Útest_mark_static_fieldsÚ(TestStaticConfig.test_mark_static_fieldsä  só   € Ø×Ñ˜(Ô#ðˆô ˜Ð#3Ó4ˆ	Ø×ÑœX kÓ2¸WÐÑEÜ×0Ò0´¸bÓ1AÀ9ÓMˆÜ˜×.Ñ.×/Ñ/Ð/Ð/Ü˜Ÿ™×/Ñ/×0Ñ0Ð0Ð0Ü˜Ÿ™×2Ñ2×3Ñ3Ð3Ð3Ü˜Ÿ™×0Ñ0×1Ñ1Ð1Ð1Ü˜Ÿ™×/Ñ/×0Ñ0Ð0Ð0Ü˜Ÿ™×0Ñ0×1Ñ1Ð1Ñ1r   ré   N)rë   rì   rí   rî   ru  rï   ré   r   r   ro  ro  ã  s   † õ2r   ro  c                óî  • [         R                  " 5        nU R                  R                  U5        UR	                  5       nS S S 5        [
        R                  " WSS9  Sn[        5       nUS-  nUS-  nUS-  nUR                  S5        / nUR                  5        H4  nUR                  U5      (       d  Xd;   a  M   UR                  US-   5        M6     SR                  U5      $ ! , (       d  f       Nª= f)	NT)Úvalidateré   )zAuthor:zAuthor-email:zMaintainer:zMaintainer-email:)zProject-URL: Homepage,z
Home-page:)zDescription-Content-Type:r!   r¯   )ÚioÚStringIOrƒ   r¢   Úgetvaluer   Ú
from_emailr[   ÚaddÚ
splitlinesÚ
startswithÚappendÚjoin)r…   ÚbufferÚpkg_file_txtÚskip_prefixesÚ
skip_linesÚresultÚlines          r   rY   rY      sÔ   € Ü	�ŠŒ˜&Ø�‰×$Ñ$ VÔ,Ø—‘Ó(ˆ÷ 
ô
 ×Ò˜¨tÒ4à%'€MÜ“€Jð ÐUÑU€MàÐ=Ñ=€MàÐ3Ñ3€Mà‡N�N�2Ôà€FØ×'Ñ'Ö)ˆØ�?‰?˜=×)Ñ)¨TÓ-?ÙØ�‰�d˜T‘kÖ"ñ *ð
 �7‰7�6‹?Ð÷3 
�ús   –,C&Ã&
C4)Úreturnr´   )LÚ__doc__Ú
__future__r   ry  r$   r\  Úinspectr   Úpathlibr   Úunittest.mockr   r�   Úini2toml.apir   Úpackaging.metadatar   Ú
setuptoolsÚsetuptools._staticr	   Úsetuptools.command.egg_infor
   Úsetuptools.configr   r   r   Ú&setuptools.config._apply_pyprojecttomlr   r   Úsetuptools.distr   Úsetuptools.errorsr   r   Úsetuptools.warningsr   r   Ú	downloadsr   r   Ú__file__ÚparentÚHERErZ  r   r+   rÿ   r   rT  Úuses_networkrt   ræ   Ú"PEP621_INTERNATIONAL_EMAIL_EXAMPLEry   ÚPEP639_LICENSE_TEXTr²   r�   r†   rŒ   r“   r–   rS  Úxfailr¦   r­   r¸   r¿   rÁ   rñ   r  r  r  rV  rc  ro  rY   ré   r   r   Ú<module>r      s«  ðñõ #ã 	Û 	Û Ý Ý Ý ã Ý 'Ý 'ã Ý (Ý :ß =Ñ =ß TÝ (ß Dß Mç 4áˆHƒ~×Ñ€Ø'€ò5òð ‡�×Ñ˜¡¨t°mÑ/CÓ DÓEØ‡�×Ñ˜HÓ%Ø‡�×Ññ//ó ó &ó Fð//ðd2€ðh&Ð "ðÐ ð	Ð ðÐ ð$ Ø!ôò$?ð ‡�×ÑØòóñ@óð@òIò?ð ‡�×ÑØ9à�ŠØð3ð *ñ	
ð 	�ŠØ.ØMØ—+‘+×#Ñ#ðHàð $ð ð
 %ñ		
ðóñ.Mó/ð.Mð& ‡�×Ñðð 	�ŠØØØØØ"Øà—‘×*Ñ*ØLóðñ	
ð 	�ŠØ%ØØØ3ØØ#ñ	
ðóñ@*óAð@*ò2FòY÷,yCñ yC÷x)ñ )÷6&Kñ &K÷RMñ M÷u*ñ u*÷pPñ P÷&ñ &÷&2ñ 2õ:r   