Ë
    nûàg>O  ã                  ó´  — 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ZddlmZ ddlmZ ddlZdd	lmZ dd
lmZ ddlmZmZmZ ddlmZmZ ddlmZ ddlm Z  ddl!m"Z"m#Z#  e	e$«      jJ                  Z&dZ'd„ Z(ejR                  jU                  d e#e&e'z  «      «      ejR                  jW                  d«      ejR                  jX                  d„ «       «       «       Z-dZ.dZ/dZ0de.fd„Z1d„ Z2ejR                  jU                  dg d¢«      d„ «       Z3d„ Z4d „ Z5ejR                  jU                  d! ejl                  e.d"d#¬$«       ejl                  e/d%ejR                  jo                  d&d'¬(«      d)¬*«      f«      d+„ «       Z8 G d,„ d-«      Z9 G d.„ d/«      Z: G d0„ d1«      Z; G d2„ d3«      Z< G d4„ d5«      Z= G d6„ d7«      Z> G d8„ d9«      Z? G d:„ d;«      Z@d=d<„ZAy)>zÍ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)ÚRemovedConfigErroré   )Úretrieve_fileÚurls_from_filezsetupcfg_examples.txtc                ó    — t        d| i|¥«      S )NÚsrc_rootr   )ÚpathÚattrss     ún/var/www/skyplay_api_hub/venv/lib/python3.12/site-packages/setuptools/tests/config/test_apply_pyprojecttoml.pyÚmakedistr   "   s   € Ü˜ TÐ3¨UÐ3Ó4Ð4ó    ÚurlÚignorec           	     ó\  — |j                  t        dt        d¬«      «       t        | «      }t	        |d«      }|j                  d¬«      }t        «       j                  |d«      }|j                  |d¬«       t        j                  t        |«      |«      }t        j                  t        |«      |«      }t        |«      }	t        |«      }
|	|
k(  sJ ‚t        d„ ||fD «       «      r-t        |j                   «      t        |j                   «      k(  sJ ‚t        d	„ ||fD «       «      rœt#        |j$                  «       |j$                  j'                  «       D ��ch c]  \  }}|gt)        d
„ |D «       «      ¢­’Œ }}}|j$                  j'                  «       D ��ch c]  \  }}|gt)        d„ |D «       «      ¢­’Œ }}}||k(  sJ ‚t        d„ ||fD «       «      ry|j*                  j'                  «       D ��ch c]  \  }}|gt)        |«      ¢­’Œ }}}|j*                  j'                  «       D ��ch c]  \  }}|gt)        |«      ¢­’Œ }}}||k(  sJ ‚t        d„ ||fD «       «      r]|j,                  D ��ch c]  \  }}|gt)        |«      ¢­’Œ }}}|j,                  D ��ch c]  \  }}|gt)        |«      ¢­’Œ }}}||k(  sJ ‚t        |j.                  «      t        |j.                  «      k(  sJ ‚t        d„ ||fD «       «      rz|j0                  j'                  «       D ��ch c]  \  }}|gt)        |«      ¢­’Œ }}}|j0                  j'                  «       D ��ch c]  \  }}|gt)        |«      ¢­’Œ }}}||k(  sJ ‚y y c c}}w c c}}w c c}}w c c}}w c c}}w c c}}w c c}}w c c}}w )NÚ	read_attrz0.0.1)Úreturn_valueúpyproject.tomlúutf-8©Úencodingz	setup.cfgc              3  ó6   K  — | ]  }t        |d d«      –— Œ y­w)Úlicense_filesN©Úgetattr©Ú.0Úds     r   ú	<genexpr>z>test_apply_pyproject_equivalent_to_setupcfg.<locals>.<genexpr>8   s   è ø€ Ò
L°Œ7�1�o t×,Ñ
Lùó   ‚c              3  ó6   K  — | ]  }t        |d d«      –— Œ y­w)Úentry_pointsNr(   r*   s     r   r-   z>test_apply_pyproject_equivalent_to_setupcfg.<locals>.<genexpr>;   ó   è ø€ Ò
K°Œ7�1�n d×+Ñ
Kùr.   c              3  ó@   K  — | ]  }|j                  d d«      –— Œ y­w©ú Ú N©Úreplace©r+   Úis     r   r-   z>test_apply_pyproject_equivalent_to_setupcfg.<locals>.<genexpr>>   ó   è ø€ Ò6¨q˜Ÿ	™	 # r×*Ñ6ùó   ‚c              3  ó@   K  — | ]  }|j                  d d«      –— Œ y­wr3   r6   r8   s     r   r-   z>test_apply_pyproject_equivalent_to_setupcfg.<locals>.<genexpr>B   r:   r;   c              3  ó6   K  — | ]  }t        |d d«      –— Œ y­w)Úpackage_dataNr(   r*   s     r   r-   z>test_apply_pyproject_equivalent_to_setupcfg.<locals>.<genexpr>G   r1   r.   c              3  ó6   K  — | ]  }t        |d d«      –— Œ y­w)Ú
data_filesNr(   r*   s     r   r-   z>test_apply_pyproject_equivalent_to_setupcfg.<locals>.<genexpr>L   s   è ø€ Ò
I¨aŒ7�1�l D×)Ñ
Iùr.   c              3  ó6   K  — | ]  }t        |d d«      –— Œ y­w)Úextras_requireNr(   r*   s     r   r-   z>test_apply_pyproject_equivalent_to_setupcfg.<locals>.<genexpr>R   s   è ø€ Ò
M°!Œ7�1Ð&¨×-Ñ
Mùr.   )Úsetattrr   r   r   r   Ú	read_textr   Ú	translateÚ
write_textr   Úapply_configurationr   r   Úcore_metadataÚanyÚsetr'   Úprintr0   ÚitemsÚsortedr>   r@   Úinstall_requiresrB   )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_setupcfgrc   &   ss  € ð ×Ñœ ¬T¸wÔ-GÔHÜ$ SÓ)ÐÜ˜XÐ'7Ó8ÐØ$×.Ñ.¸Ð.Ó@€MÜ Ó"×,Ñ,¨]¸KÓH€KØ× Ñ  °wÐ Ô?ä×1Ñ1´(¸8Ó2DÐFWÓX€IÜ×+Ñ+¬H°XÓ,>Ð@PÓQ€Hä! )Ó,€MÜ  Ó*€LØ˜LÒ(Ð(Ð(ä
Ñ
L°yÀ(Ð6KÔ
LÔLÜ�9×*Ñ*Ó+¬s°8×3IÑ3IÓ/JÒJÐJÐJä
Ñ
K°iÀÐ5JÔ
KÔKÜˆh×#Ñ#Ô$ð "×.Ñ.×4Ñ4Ó6÷
á��1ð Ð7”Ñ6°AÔ6Ó6Ó7ð
ˆñ 
ð !×-Ñ-×3Ñ3Ó5÷
á��1ð Ð7”Ñ6°AÔ6Ó6Ó7ð
ˆñ 
ð ˜&Ò Ð Ð ä
Ñ
K°iÀÐ5JÔ
KÔKØ5>×5KÑ5K×5QÑ5QÓ5S×T©T¨Q°˜!˜œf Q›i›ÐTˆÑTØ4<×4IÑ4I×4OÑ4OÓ4Q×R©D¨A¨q˜˜œV A›Y›ÐRˆÑRØ Ò,Ð,Ð,ä
Ñ
I°I¸xÐ3HÔ
IÔIØ7@×7KÑ7K×L©t¨q°!˜A˜?¤ q£	›?ÐLˆÑLØ6>×6IÑ6I×J©d¨a°˜1˜/œv a›y›/ÐJˆÑJØ .Ò0Ð0Ð0äˆy×)Ñ)Ó*¬c°(×2KÑ2KÓ.LÒLÐLÐLÜ
Ñ
M¸	À8Ð7LÔ
MÔMØ6?×6NÑ6N×6TÑ6TÓ6V×W©d¨a°˜1˜/œv a›y›/ÐWˆÑWØ5=×5LÑ5L×5RÑ5RÓ5T×U©T¨Q°˜!˜œf Q›i›ÐUˆÑUØ Ò.Ð.Ñ.ð Nùó+
ùó
ùó UùÛRùó MùÛJùó
 XùÛUs0   Å M>Æ NÇ5N
È.NÉ4NÊNÌ N"ÍN(u‚  [project]
name = "spam"
version = "2020.0.0"
description = "Lovely Spam! Wonderful Spam!"
readme = "README.rst"
requires-python = ">=3.8"
license = {file = "LICENSE.txt"}
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 = "ÐºÑ€Ð¸Ñ—Ð²ÐºÐ°@Ð¾ÑƒÐ½-ÑƒÐ¿Ð°.ÑƒÐºÑ€"},
]
zE
def main_cli(): pass
def main_gui(): pass
def main_tomatoes(): pass
z
README.rstc                ó*  — | dz  }|}dd|› d�i}|j                  «       D ]  \  }}|j                  ||«      }Œ |j                  |d¬«       | |z  j                  dd¬«       | dz  j                  d	d¬«       | d
z  j                  t        d¬«       |S )Nr"   zreadme = "README.rst"z
readme = "ú"r#   r$   zhello worldúLICENSE.txtú--- LICENSE stub ---zspam.py)rL   r7   rF   ÚPEP621_EXAMPLE_SCRIPT)rP   ÚreadmeÚpyproject_textÚ	pyprojectÚtextÚreplacementsÚorigÚsubsts           r   Ú_pep621_example_projectrp       s¶   € ð
 Ð+Ñ+€IØ€DØ+¨z¸&¸ÀÐ-CÐD€LØ#×)Ñ)Ó+ò )‰ˆˆeØ�|‰|˜D %Ó(‰ð)à×Ñ˜¨ÐÔ0à�Ñ×"Ñ" =¸7Ð"ÔCØ�Ñ×)Ñ)Ð*@È7Ð)ÔSØ�	Ñ×%Ñ%Ô&;ÀgÐ%ÔNØÐr   c                óØ   — t        | «      }t        j                  t        | «      |«      }|j                  j
                  dk(  sJ ‚t        |j                  j                  «      dhk(  sJ ‚y)z&Make sure the example in PEP 621 worksrg   rf   N)rp   r   rG   r   ÚmetadataÚlicenserJ   r'   ©rP   rk   Údists      r   Útest_pep621_examplerv   ²   s[   € ä'¨Ó1€IÜ×,Ñ,¬X°hÓ-?ÀÓK€DØ�=‰=× Ñ Ð$:Ò:Ð:Ð:Üˆt�}‰}×*Ñ*Ó+°¨Ò>Ð>Ñ>r   )ri   Úctype))z
Readme.txtz
text/plain)z	readme.mdztext/markdown)ztext.rstz
text/x-rstc                ó�   — t        | |«      }t        j                  t        | «      |«      }|j                  j
                  |k(  sJ ‚y ©N©rp   r   rG   r   rr   Úlong_description_content_type)rP   ri   rw   rk   ru   s        r   Útest_readme_content_typer|   º   s?   € ô (¨°&Ó9€IÜ×,Ñ,¬X°hÓ-?ÀÓK€DØ�=‰=×6Ñ6¸%Ò?Ð?Ñ?r   c                óº   — t        | d«      }t        j                  t        d¬«      5  t	        j
                  t        | «      |«       d d d «       y # 1 sw Y   y xY w)Nz
README.texz%Undefined content type for README.tex©Úmatch)rp   ÚpytestÚraisesÚ
ValueErrorr   rG   r   )rP   rk   s     r   Útest_undefined_content_typerƒ   È   sK   € Ü'¨°,Ó?€IÜ	�‰”zÐ)PÔ	Qñ IÜ×)Ñ)¬(°8Ó*<¸iÔH÷I÷ Iñ Iús   ¨ AÁAc                óŠ   — t        | d«      }t        j                  t        | «      |«      }|j                  j
                  �J ‚y )NÚREADMErz   rt   s      r   Ú3test_no_explicit_content_type_for_missing_extensionr†   Î   s;   € Ü'¨°(Ó;€IÜ×,Ñ,¬X°hÓ-?ÀÓK€DØ�=‰=×6Ñ6Ð>Ð>Ñ>r   )rj   Úexpected_maintainers_meta_valueug   Brett Cannon <brett@python.org>, "John X. ÃƒÃ¸rÃ§eÄ�" <john@utf8.org>, Î“Î±Î¼Î± ï­‡ æ�± <gama@utf8.org>znon-international-emails)ÚiduA   Ð¡Ñ‚ÐµÐ¿Ð°Ð½ Ð‘Ð°Ð½Ð´ÐµÑ€Ð° <ÐºÑ€Ð¸Ñ—Ð²ÐºÐ°@Ð¾ÑƒÐ½-ÑƒÐ¿Ð°.ÑƒÐºÑ€>zlCPython's `email.headerregistry.Address` only supports RFC 5322, as of Nov 10, 2022 and latest Python 3.11.0T)ÚreasonÚstrictzinternational-email)Úmarksrˆ   c                óP  — t        |d|¬«      }t        j                  t        |«      |«      }|j                  j
                  | k(  sJ ‚|dz  }t        |dd¬«      5 }|j                  j                  |«       d d d «       |j                  d¬«      }d| › �|v sJ ‚y # 1 sw Y   Œ%xY w)Nr…   )rj   zPKG-FILEÚwr#   r$   zMaintainer-email: )	rp   r   rG   r   rr   Úmaintainer_emailÚopenÚwrite_pkg_filerD   )r‡   rj   rP   rk   ru   Ú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%c                  ó   — e Zd Zd„ Zd„ Zd„ Zy)ÚTestLicenseFilesc                ó�   — t        |d«      }|j                  d¬«      }d|v sJ ‚d|vsJ ‚|› d|› d�}|j                  |d¬«       |S )Nr…   r#   r$   z license = {file = "LICENSE.txt"}z[tool.setuptools]ú
)rp   rD   rF   )ÚselfrP   Úadditional_textrk   rl   s        r   Úbase_pyprojectzTestLicenseFiles.base_pyproject  sk   € Ü+¨H°hÓ?ˆ	Ø×"Ñ"¨GÐ"Ó4ˆð 2°TÑ9Ð9Ð9Ø"¨$Ñ.Ð.Ð.à��r˜/Ð*¨"Ð-ˆØ×Ñ˜T¨GÐÔ4ØÐr   c                óh  — d}| j                  ||«      }|dz  j                  «        |dz  j                  «        |dz  }|j                  dd¬«       t        j                  t        |«      |«      }t        |j                  j                  «      ddhk(  sJ ‚|j                  j                  dk(  sJ ‚y )Nz,[tool.setuptools]
license-files = ["_FILE*"]z	_FILE.txtz	_FILE.rstrf   zLicenseRef-Proprietary
r#   r$   )
r›   ÚtouchrF   r   rG   r   rJ   rr   r'   rs   )r™   rP   Úsetuptools_configrk   rs   ru   s         r   Ú+test_both_license_and_license_files_definedz<TestLicenseFiles.test_both_license_and_license_files_defined  s¯   € ØKÐØ×'Ñ'¨Ð2CÓDˆ	à	�KÑ	×&Ñ&Ô(Ø	�KÑ	×&Ñ&Ô(ð ˜]Ñ*ˆØ×ÑÐ5ÀÐÔHä×0Ñ0´¸(Ó1CÀYÓOˆÜ�4—=‘=×.Ñ.Ó/°KÀÐ3MÒMÐMÐMØ�}‰}×$Ñ$Ð(BÒBÐBÑBr   c                óD  — d}| j                  ||«      }dj                  «       }|D ]  }||z  j                  |› d�d¬«       Œ t        j                  t        |«      |«      }|dz  j                  «       sJ ‚t        |j                  j                  «      h |£d’k(  sJ ‚y )Nz"[tool.setuptools]
zip-safe = falsez5LICENCE-a.html COPYING-abc.txt AUTHORS-xyz NOTICE,defr˜   r#   r$   rf   )
r›   ÚsplitrF   r   rG   r   ÚexistsrJ   rr   r'   )r™   rP   rž   rk   r'   Úfnameru   s          r   Útest_default_patternsz&TestLicenseFiles.test_default_patterns  s°   € ØAÐà×'Ñ'¨Ð2CÓDˆ	àO×UÑUÓWˆà"ò 	JˆEØ˜Ñ×)Ñ)¨U¨G°2¨,ÀÐ)ÕIð	Jô ×0Ñ0´¸(Ó1CÀYÓOˆØ˜=Ñ(×0Ñ0Ô2Ð2Ð2Ü�4—=‘=×.Ñ.Ó/Ð3R°]Ð3RÀMÐ3RÒRÐRÑRr   N)Ú__name__Ú
__module__Ú__qualname__r›   rŸ   r¤   © r   r   r–   r–   þ   s   „ ò
òCó Sr   r–   c                  ó¢   — e Zd Zd„ Zej
                  j                  dddg«      d„ «       Zej
                  j                  dg d¢«      d„ «       Zy)	ÚTestPyModulesc                óš   — d|›d�}t        d«      }|j                  t        |«      d¬«       t        j                  t        i «      |«      S )Nzr
        [project]
        name = "test"
        version = "42.0"
        [tool.setuptools]
        py-modules = [z
]
        r"   r#   r$   )r   rF   r   r   rG   r   )r™   ÚnamerT   rk   s       r   ru   zTestPyModules.dist0  sW   € ðð
 �hð 	ðˆô Ð)Ó*ˆ	Ø×ÑœX kÓ2¸WÐÔEÜ×0Ñ0´¸bÓ1AÀ9ÓMÐMr   Úmodulezpip-runu   abc-d.Î»-xyz-ec                ód   — |j                  |«       || j                  |«      j                  v sJ ‚y ry   )Úchdirru   Ú
py_modules©r™   rP   rO   r­   s       r   Útest_valid_module_namez$TestPyModules.test_valid_module_name<  s-   € à×Ñ˜(Ô#Ø˜Ÿ™ 6Ó*×5Ñ5Ñ5Ð5Ñ5r   )zpip runz-pip-runzpip-run-stubsc                ó¼   — |j                  |«       t        j                  t        d¬«      5  | j	                  |«      j
                   d d d «       y # 1 sw Y   y xY w)Nz
py-modulesr~   )r¯   r€   r�   r‚   ru   r°   r±   s       r   Útest_invalid_module_namez&TestPyModules.test_invalid_module_nameA  sE   € à×Ñ˜(Ô#Ü�]‰]œ:¨\Ô:ñ 	)Ø�I‰I�fÓ×(Ò(÷	)÷ 	)ñ 	)ús   ­AÁAN)	r¥   r¦   r§   ru   r€   ÚmarkÚparametrizer²   r´   r¨   r   r   rª   rª   -  s[   „ ò
Nð ‡[�[×Ñ˜X¨	Ð3CÐ'DÓEñ6ó Fð6ð ‡[�[×Ñ˜XÒ'OÓPñ)ó Qñ)r   rª   c                  ó   — e Zd Zd„ Zy)ÚTestExtModulesc                óè  — |j                  |«       t        d«      }d}|j                  t        |«      d¬«       t	        j
                  t        j                  «      5  t        j                  t        i «      |«      }d d d «       t        j                  «      dk(  sJ ‚|j                  d   j                  dk(  sJ ‚t        |j                  d   j                  «      dd	hk(  sJ ‚y # 1 sw Y   ŒkxY w)
Nr"   zÄ
        [project]
        name = "test"
        version = "42.0"
        [tool.setuptools]
        ext-modules = [
          {name = "my.ext", sources = ["hello.c", "world.c"]}
        ]
        r#   r$   r   r   zmy.extzhello.czworld.c)r¯   r   rF   r   r€   Úwarnsr   Ú_ExperimentalConfigurationrG   r   ÚlenÚext_modulesr¬   rJ   Úsources)r™   rP   rO   rk   rT   ru   s         r   Útest_pyproject_sets_attributez,TestExtModules.test_pyproject_sets_attributeI  sß   € Ø×Ñ˜(Ô#ÜÐ)Ó*ˆ	ðˆð 	×ÑœX kÓ2¸WÐÔEÜ�\‰\œ-×BÑBÓCñ 	RÜ ×4Ñ4´\À"Ó5EÀyÓQˆD÷	Rä�4×#Ñ#Ó$¨Ò)Ð)Ð)Ø×Ñ Ñ"×'Ñ'¨8Ò3Ð3Ð3Ü�4×#Ñ# AÑ&×.Ñ.Ó/°I¸yÐ3IÒIÐIÑI÷		Rð 	Rús   Á C(Ã(C1N)r¥   r¦   r§   r¿   r¨   r   r   r¸   r¸   H  s   „ óJr   r¸   c                  ó   — e Zd Zd„ Zy)ÚTestDeprecatedFieldsc                óè   — |dz  }d}|j                  t        |«      d¬«       t        j                  t        d¬«      5  t        j                  t        |«      |«       d d d «       y # 1 sw Y   y xY w)Nr"   z�
        [project]
        name = "myproj"
        version = "42"
        [tool.setuptools]
        namespace-packages = ["myproj.pkg"]
        r#   r$   znamespace-packagesr~   )rF   r   r€   r�   r   r   rG   r   )r™   rP   rk   Úconfigs       r   Útest_namespace_packagesz,TestDeprecatedFields.test_namespace_packages^  sl   € ØÐ/Ñ/ˆ	ðˆð 	×ÑœX fÓ-¸ÐÔ@Ü�]‰]Ô-Ð5IÔJñ 	MÜ×-Ñ-¬h°xÓ.@À)ÔL÷	M÷ 	Mñ 	Mús   ¿ A(Á(A1N)r¥   r¦   r§   rÄ   r¨   r   r   rÁ   rÁ   ]  s   „ óMr   rÁ   c                  óÔ  — e Zd Zdd„Zej
                  j                  ddddgfddddgifdd	d
dgif ej                  dddgfdej
                  j                  d«      giŽg«      d„ «       Z	ej
                  j                  dddg fddi fdddgfdddgfg«      d„ «       Z
d„ Zd„ Zej
                  j                  dddg«      ej
                  j                  d«      d„ «       «       Zy)ÚTestPresetFieldc                óZ   — d|›d�}d|vr|dz  }|dz  }|j                  ||z   d¬«       |S )Nz"[project]
name = 'proj'
dynamic = r˜   Úversionzversion = '42'
r"   r#   r$   )rF   )r™   rP   ÚdynamicÚextra_contentr“   Úfiles         r   rk   zTestPresetField.pyprojectm  sH   € Ø8¸¸À2ÐFˆØ˜GÑ#ØÐ)Ñ)ˆGØÐ*Ñ*ˆØ�‰˜ -Ñ/¸'ˆÔBØˆr   )ÚattrÚfieldÚvalueÚclassifierszPrivate :: Classifierr0   ÚscriptsÚconsole_scriptsúfoobar=foobar:mainúgui-scriptsÚgui_scriptszbazquux=bazquux:mainrN   ÚdependenciesÚsixr‹   z&ignore:.*install_requires. overwrittenc                óP  — | j                  |g «      }t        |fi ||i¤Ž}t        j                  d|› �t        j                  «      }t        j                  t        |¬«      5  t        j                  ||«      }ddd«        t        d|› �|«      |«      }|rJ ‚y# 1 sw Y   Œ#xY w)z:Setuptools cannot set a field if not listed in ``dynamic``z&defined outside of `pyproject.toml`:.*r~   Nú	metadata.)rk   r   ÚreÚcompileÚSr€   rº   r   r   rG   r   )	r™   rP   rÌ   rÍ   rÎ   rk   ru   ÚmsgÚ
dist_values	            r   Útest_not_listed_in_dynamicz*TestPresetField.test_not_listed_in_dynamicu  s¤   € ð  —N‘N 8¨RÓ0ˆ	Ü˜Ñ2 T¨5 MÑ2ˆÜ�j‰jÐAÀ%ÀÐIÌ2Ï4É4ÓPˆÜ�\‰\œ/°Ô5ñ 	FÜ ×4Ñ4°T¸9ÓEˆD÷	Fð @Ô%¨	°$°Ð&8¸$Ó?ÀÓEˆ
ÙÐˆ~�:÷		Fð 	Fús   Á#BÂB%rB   zoptional-dependenciesc                óª   — | j                  ||g«      }t        |fi ||i¤Ž}t        j                  ||«      } t	        d|› �|«      |«      }||k(  sJ ‚y )NrØ   )rk   r   r   rG   r   )r™   rP   rÌ   rÍ   rÎ   rk   ru   rÝ   s           r   Útest_listed_in_dynamicz&TestPresetField.test_listed_in_dynamicŽ  sd   € ð —N‘N 8¨e¨WÓ5ˆ	Ü˜Ñ2 T¨5 MÑ2ˆÜ×0Ñ0°°yÓAˆØ?Ô%¨	°$°Ð&8¸$Ó?ÀÓEˆ
Ø˜UÒ"Ð"Ñ"r   c                óö   — d}|dz  }|j                  |d¬«       t        |dg¬«      }t        j                  d¬«      5  t	        j
                  ||«      }d d d «       d|j                  vsJ ‚y # 1 sw Y   ŒxY w)	Nz:[project]
name='pkg'
version='0.1'
dependencies=['click']
r"   r#   r$   Úwheel©rN   z`install_requires` overwrittenr~   )rF   r   r€   rº   r   rG   rN   )r™   rP   Úsrcrk   ru   s        r   Ú%test_warning_overwritten_dependenciesz5TestPresetField.test_warning_overwritten_dependenciesž  s   € ØNˆØÐ/Ñ/ˆ	Ø×Ñ˜S¨7ÐÔ3Ü˜°G°9Ô=ˆÜ�\‰\Ð @ÔAñ 	FÜ ×4Ñ4°T¸9ÓEˆD÷	Fà˜d×3Ñ3Ñ3Ð3Ñ3÷	Fð 	Fús   ¿A/Á/A8c                ó,  — d}| j                  |dg|«      }dg}t        ||¬«      }t        j                  ||«      }d|j                  v sJ ‚|j                  d«      }t        |||dz  «       |dz  j                  d¬	«      }d
|v sJ ‚d|v sJ ‚d|v sJ ‚y)a#  
        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.txtr#   r$   zimportlib-resourcesÚbarz:python_version < "3.7"N)rk   r   r   rG   rB   Úget_command_objr
   rD   )r™   rP   Úextrark   Úinstall_reqru   rè   Úreqss           r   Ú2test_optional_dependencies_dont_remove_env_markerszBTestPresetField.test_optional_dependencies_dont_remove_env_markers§  sº   € ð GˆØ—N‘N 8¨nÐ-=¸uÓEˆ	ØOÐPˆÜ˜°;Ô?ˆÜ×0Ñ0°°yÓAˆØ˜×+Ñ+Ñ+Ð+Ð+Ø×'Ñ'¨
Ó3ˆÜ˜8 X¨x¸.Ñ/HÔIØ˜>Ñ)×4Ñ4¸gÐ4ÓFˆØ$¨Ñ,Ð,Ð,Ø˜‰}Ðˆ}Ø(¨DÑ0Ð0Ñ0r   )rÍ   Úgroup)rÐ   rÑ   )rÓ   rÔ   Úerrorc                ó–   — | j                  ||g«      }t        ||dgi¬«      }t        j                  ||«      }||j                  v sJ ‚y )NrÒ   )r0   )rk   r   r   rG   r0   )r™   rP   rÍ   rï   rk   ru   s         r   Ú.test_scripts_dont_require_dynamic_entry_pointsz>TestPresetField.test_scripts_dont_require_dynamic_entry_points½  sQ   € ð —N‘N 8¨e¨WÓ5ˆ	Ü˜°Ð8LÐ7MÐ/NÔOˆÜ×0Ñ0°°yÓAˆØ˜×)Ñ)Ñ)Ð)Ñ)r   N)r5   )r¥   r¦   r§   rk   r€   rµ   r¶   ÚparamÚfilterwarningsrÞ   rà   rå   rî   rò   r¨   r   r   rÆ   rÆ   l  sL  „ óð ‡[�[×ÑØ"à˜MÐ,CÐ+DÐEØ˜YÐ):Ð=QÐ<RÐ(SÐTØ˜]¨]Ð=SÐ<TÐ,UÐVØˆF�L‰LØ$ n°u°gÐ>ðð —K‘K×.Ñ.Ð/WÓXðñð	
	
óñ	óð	ð ‡[�[×ÑØ"à °Ð4ØÐ6¸Ð;Ø °%°Ð9Ø˜MÐ,CÐ+DÐEð		
óñ#óð#ò4ò1ð, ‡[�[×ÑØØ	'Ð)GÐHóð ‡[�[×Ñ Ó(ñ*ó )ó	ñ
*r   rÆ   c                  ó   — e Zd Zd„ Zy)ÚTestMetac                óž   — t        j                  |«      5 }t        d„ |j                  «       D «       «      sJ ‚	 ddd«       y# 1 sw Y   yxY w)z,Meta test to ensure tests can run from sdistc              3  óF   K  — | ]  }|j                  t        «      –— Œ y ­wry   )ÚendswithÚEXAMPLES_FILE)r+   r¬   s     r   r-   z6TestMeta.test_example_file_in_sdist.<locals>.<genexpr>Î  s   è ø€ ÒO¸�t—}‘}¤]×3ÑOùs   ‚!N)Útarfiler�   rI   Úgetnames)r™   Úsetuptools_sdistÚtars      r   Útest_example_file_in_sdistz#TestMeta.test_example_file_in_sdistË  sD   € ä�\‰\Ð*Ó+ð 	P¨sÜÑOÀÇÁÃÔOÔOÐOÑO÷	P÷ 	Pñ 	Pús   –#AÁAN)r¥   r¦   r§   rÿ   r¨   r   r   rö   rö   Ê  s   „ óPr   rö   c                  ó   — e Zd Zd„ Zy)ÚTestInteropCommandLineParsingc                ó"  — |j                  |«       d}t        |d«      }|j                  t        |«      d¬«       ddgi}t	        j
                  t        |«      |«      }|j                  «        |j                  «       }d|j                  v sJ ‚y )NzJ
        [project]
        name = "test"
        version = "42.0"
        r"   r#   r$   Úscript_argsz	--versionz42.0)
r¯   r   rF   r   r   rG   r   Úparse_command_lineÚ
readouterrÚout)	r™   rP   rO   ÚcapsysrT   rk   Úoptsru   Úcaptureds	            r   Útest_versionz*TestInteropCommandLineParsing.test_versionÒ  s�   € ð 	×Ñ˜(Ô#ðˆô
 ˜Ð#3Ó4ˆ	Ø×ÑœX kÓ2¸WÐÔEØ ˜}Ð-ˆÜ×0Ñ0´¸dÓ1CÀYÓOˆØ×ÑÔ!Ø×$Ñ$Ó&ˆØ˜Ÿ™Ñ%Ð%Ñ%r   N)r¥   r¦   r§   r
  r¨   r   r   r  r  Ñ  s   „ ó&r   r  c                  ó   — e Zd Zd„ Zy)ÚTestStaticConfigc                ó0  — |j                  |«       d}t        |d«      }|j                  t        |«      d¬«       t	        j
                  t        i «      |«      }t        |j                  «      sJ ‚t        |j                  j                  «      sJ ‚t        |j                  j                  «      sJ ‚t        |j                  j                  «      sJ ‚t        |j                  j                  «      sJ ‚t        |j                  j                  «      sJ ‚y )Na)  
        [project]
        name = "test"
        version = "42.0"
        dependencies = ["hello"]
        keywords = ["world"]
        classifiers = ["private :: hello world"]
        [tool.setuptools]
        obsoletes = ["abcd"]
        provides = ["abcd"]
        platforms = ["abcd"]
        r"   r#   r$   )r¯   r   rF   r   r   rG   r   r	   rN   rr   ÚkeywordsrÏ   Ú	obsoletesÚprovidesÚ	platforms)r™   rP   rO   rT   rk   ru   s         r   Útest_mark_static_fieldsz(TestStaticConfig.test_mark_static_fieldså  sá   € Ø×Ñ˜(Ô#ðˆô ˜Ð#3Ó4ˆ	Ø×ÑœX kÓ2¸WÐÔEÜ×0Ñ0´¸bÓ1AÀ9ÓMˆÜ˜×.Ñ.Ô/Ð/Ð/Ü˜Ÿ™×/Ñ/Ô0Ð0Ð0Ü˜Ÿ™×2Ñ2Ô3Ð3Ð3Ü˜Ÿ™×0Ñ0Ô1Ð1Ð1Ü˜Ÿ™×/Ñ/Ô0Ð0Ð0Ü˜Ÿ™×0Ñ0Ô1Ð1Ñ1r   N)r¥   r¦   r§   r  r¨   r   r   r  r  ä  s   „ ó2r   r  c                óÔ  — t        j                  «       5 }| j                  j                  |«       |j	                  «       }d d d «       t        j                  d¬«       d}t        «       }|dz  }|dz  }|dz  }|j                  d«       g }|j                  «       D ],  }|j                  |«      s||v rŒ|j                  |dz   «       Œ. dj                  |«      S # 1 sw Y   ŒžxY w)	NT)Úvalidater¨   )zAuthor:zAuthor-email:zMaintainer:zMaintainer-email:)zProject-URL: Homepage,z
Home-page:)zDescription-Content-Type:r5   r˜   )ÚioÚStringIOrr   r�   Úgetvaluer   Ú
from_emailrJ   ÚaddÚ
splitlinesÚ
startswithÚappendÚjoin)ru   ÚbufferÚpkg_file_txtÚskip_prefixesÚ
skip_linesÚresultÚlines          r   rH   rH     sà   € Ü	�‰‹ð )˜&Ø�‰×$Ñ$ VÔ,Ø—‘Ó(ˆ÷)ô
 ×Ñ˜¨tÕ4à%'€MÜ“€Jð ÐUÑU€MàÐ=Ñ=€MàÐ3Ñ3€Mà‡N�N�2Ôà€FØ×'Ñ'Ó)ò #ˆØ�?‰?˜=Ô)¨T°ZÑ-?ØØ�‰�d˜T‘kÕ"ð#ð
 �7‰7�6‹?Ð÷3)ð )ús   •,CÃC')ÚreturnÚstr)BÚ__doc__Ú
__future__r   r  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   Ú	downloadsr   r   Ú__file__ÚparentÚHERErú   r   rµ   r¶   rô   Úuses_networkrc   ÚPEP621_EXAMPLEÚ"PEP621_INTERNATIONAL_EMAIL_EXAMPLErh   rp   rv   r|   rƒ   r†   ró   Úxfailr”   r–   rª   r¸   rÁ   rÆ   rö   r  r  rH   r¨   r   r   ú<module>r<     sþ  ðñõ #ã 	Û 	Û Ý Ý Ý ã Ý 'Ý 'ã Ý (Ý :ß =Ñ =ß TÝ (Ý 0ç 4áˆHƒ~×Ñ€Ø'€ò5ð ‡�×Ñ˜¡¨t°mÑ/CÓ DÓEØ‡�×Ñ˜HÓ%Ø‡�×Ññ,/ó ó &ó Fð,/ð^2€ðh&Ð "ðÐ ð Ø!óò$?ð ‡�×ÑØòóñ@óð@òIò?ð ‡�×ÑØ9àˆ�‰Øð3ð *ô	
ð 	ˆ�‰Ø.ØOØ—+‘+×#Ñ#ðHàð $ó ð
 %ô		
ðóñ.Mó/ð.M÷&,Sñ ,S÷^)ñ )÷6Jñ J÷*Mñ M÷[*ñ [*÷|Pñ P÷&ñ &÷&2ñ 2ô:r   