ó
    ¶'Ôi~3  ã            
       óx  • S SK r S SKJ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rS SKJrJrJrJrJr  S SKJr  S SKJr  S SKrSrS	 rS
 rS r\R8                  R;                  SS0 4S0 4SSSSS/0004/5      S 5       rSS0SS0SS0S.r " S S5      r  " S S5      r! " S S 5      r"\R8                  R;                  S!S"5      S# 5       r#\R8                  R;                  S$S%/5      S& 5       r$\R8                  R;                  S'S(5      S) 5       r%\R8                  R;                  S'S*5      S+ 5       r&S, r'S- r(g).é    N)ÚConfigParser)Úcleandoc)ÚPath)Ú_ToolsTypoInMetadataÚapply_configurationÚexpand_configurationÚread_configurationÚvalidate)ÚDistribution)ÚOptionErroraÀ  
[project]
name = "myproj"
keywords = ["some", "key", "words"]
dynamic = ["version", "readme"]
requires-python = ">=2.7, !=3.0.*, !=3.1.*, !=3.2.*, !=3.3.*, !=3.4.*"
dependencies = [
    'importlib-metadata>=0.12;python_version<"3.8"',
    'importlib-resources>=1.0;python_version<"3.7"',
    'pathlib2>=2.3.3,<3;python_version < "3.4" and sys.platform != "win32"',
]

[project.optional-dependencies]
docs = [
    "sphinx>=3",
    "sphinx-argparse>=0.2.5",
    "sphinx-rtd-theme>=0.4.3",
]
testing = [
    "pytest>=1",
    "coverage>=3,<5",
]

[project.scripts]
exec = "pkg.__main__:exec"

[build-system]
requires = ["setuptools", "wheel"]
build-backend = "setuptools.build_meta"

[tool.setuptools]
package-dir = {"" = "src"}
zip-safe = true
platforms = ["any"]

[tool.setuptools.packages.find]
where = ["src"]

[tool.setuptools.cmdclass]
sdist = "pkg.mod.CustomSdist"

[tool.setuptools.dynamic.version]
attr = "pkg.__version__.VERSION"

[tool.setuptools.dynamic.readme]
file = ["README.md"]
content-type = "text/markdown"

[tool.setuptools.package-data]
"*" = ["*.txt"]

[tool.setuptools.data-files]
"data" = ["_files/*.txt"]

[tool.distutils.sdist]
formats = "gztar"

[tool.distutils.bdist_wheel]
universal = true
c                 ó°   • [         SSS0S.nSSSSSS	.0nU(       d   eUS
:X  a  0 UEUEnO0 UESSSS000EX!'   [        R                  R                  X S9  g )Núhello worldzfile.txtÚ )úpyproject.tomlz	README.mdÚ_filesÚpkgzclass CustomSdist: passzVERSION = (3, 10)zdef exec(): print('hello'))ú__init__.pyzmod.pyz__version__.pyz__main__.pyÚ.ÚotherÚnestedr   ©Úprefix)ÚEXAMPLEÚjaracoÚpathÚbuild)r   Úpkg_rootÚfilesÚpackagess       Úi/var/www/surfInsights/venv3-11/lib/python3.13/site-packages/setuptools/tests/config/test_pyprojecttoml.pyÚcreate_exampler!   U   sŠ   € ä!Ø"à˜ð
ñ€Eð 	ØØ/Ø1Ø7ñ	
ð€Hö €Oˆ8à�3ƒØ%�5Ð%˜HÐ%‰ð Q˜XÐP w°¸MÈ2Ð;NÐ0OÑPˆ‰ä
‡K�K×Ñ�eÐÒ)ó    c                 óî  • US-  nUR                  [        R                  " U 5      SS9  [        X5      nUS   n[	        USS9U:X  d   eUS   S:X  d   eUS	   S
   S:X  d   eSUS   S   ;   d   eUS:X  a  [        US   S   S   5      S1:X  d   eO[        US   S   S   5      1 Sk:X  d   eUS   S   S   SL d   eSUS   S   S   ;   d   eSUS   S   S   ;  d   eUS   S   S   SS/4/:X  d   eg )Nr   úutf-8©ÚencodingÚprojectT©ÚexpandÚversionz3.10ÚreadmeÚtextr   r   ÚtoolÚ
setuptoolsr   r   >   r   r   úother.nestedúinclude-package-datar   zpackage-dataÚ*z
data-filesÚdataz_files/file.txt)Ú
write_textÚtomli_wÚdumpsr   r	   Úset)Úconfigr   r   Ú	pyprojectÚexpandedÚexpanded_projects         r    Úverify_exampler;   r   sy  € ØÐ'Ñ'€IØ×ÑœŸš vÓ.¸ÐÑAÜ# FÓ1€HØ 	Ñ*ÐÜ˜i°Ñ5¸ÓAÐAÐAØ˜IÑ&¨&Ó0Ð0Ð0Ø˜HÑ% fÑ-°Ó>Ð>Ð>Ø˜ &Ñ)¨,Ñ7Ó7Ð7Ð7Ø�3ƒä�8˜FÑ# LÑ1°*Ñ=Ó>À5À'ÓIÐIÑIä�8˜FÑ# LÑ1°*Ñ=Ó>ò C
ó 
ð 	
ð 
ð
 �FÑ˜LÑ)Ð*@ÑAÀTÒIÐIÐIØ�˜&Ñ! ,Ñ/°Ñ?Ó?Ð?Ð?Ø�h˜vÑ& |Ñ4°^ÑDÓDÐDÐDØ�FÑ˜LÑ)¨,Ñ7Ø	Ð#Ð$Ð%ð<ó ð ñ r"   c                 ó®   • [        U S5        U S-  n[        USS9nUS   R                  S5      b   eUS   R                  S5      b   e[        X S5        g )NÚsrcr   Fr(   r'   r*   r+   )r!   r	   Úgetr;   )Útmp_pathr8   r7   s      r    Útest_read_configurationr@   Œ   se   € Ü�8˜UÔ#ØÐ+Ñ+€Iä 	°%Ñ8€FØ�)Ñ× Ñ  Ó+Ñ3Ð3Ð3Ø�)Ñ× Ñ  Ó*Ñ2Ð2Ð2ä�6 UÕ+r"   )r   Úoptsr   r=   Úlibr   ÚfindÚwherec                 ó:  • [        X5        U S-  n[        USS9nUS   R                  S5      b   eUS   R                  S5      b   eUS   S   R                  S	S 5        US   S   R                  S
S 5        US   S   R	                  U5        [        X@U5        g )Nr   Fr(   r'   r*   r+   r-   r.   r   zpackage-dir)r!   r	   r>   ÚpopÚupdater;   )r?   r   rA   r8   r7   s        r    Ú9test_discovered_package_dir_with_attr_directive_in_configrH   —   s®   € ô �8Ô&àÐ+Ñ+€Iä 	°%Ñ8€FØ�)Ñ× Ñ  Ó+Ñ3Ð3Ð3Ø�)Ñ× Ñ  Ó*Ñ2Ð2Ð2Ø
ˆ6�N�<Ñ ×$Ñ$ Z°Ô6Ø
ˆ6�N�<Ñ ×$Ñ$ ]°DÔ9à
ˆ6�N�<Ñ ×'Ñ'¨Ô-Ü�6 XÕ.r"   Úaú
mod.a:funcÚbú
mod.b:funcÚcúmod.c:func [extra])Úconsole_scriptsÚgui_scriptsr   c                   ón   • \ rS rSrS rS
S jrS r\R                  R                  SS5      S 5       r
S	rg)ÚTestEntryPointséµ   c                 ó´   • [        5       nUR                  [        5        [        US-  SSS9 nUR	                  U5        S S S 5        g ! , (       d  f       g = f)Núentry-points.txtÚwr$   r%   )r   Ú	read_dictÚENTRY_POINTSÚopenÚwrite)Úselfr?   Úentry_pointsÚfs       r    Úwrite_entry_pointsÚ"TestEntryPoints.write_entry_points¶   sF   € Ü#“~ˆØ×Ñœ|Ô,Ü�(Ð/Ñ/°¸wÒGÈ1Ø×Ñ˜qÔ!÷ H×GÖGús   ®A	Á	
ANc                 ó>   • SU=(       d    / SQ0nSSSS000nUSU0S.$ )NÚdynamic)Úscriptsúgui-scriptsúentry-pointsrd   ÚfilerU   r.   )r'   r-   © )r[   ra   r'   r-   s       r    r8   ÚTestEntryPoints.pyproject¼   s7   € Ø˜g×SÒ)SÐTˆØ˜N¨VÐ5GÐ,HÐIÐJˆØ"¨\¸4Ð,@ÑAÐAr"   c                 ó6  • U R                  U5        [        U R                  5       U5      nUS   n[        US   5      S:X  d   eUS   S   S:X  d   e[        US   5      S:X  d   eUS   S   S:X  d   e[        US	   5      S:X  d   eUS	   S
   S   S:X  d   eg )Nr'   rb   é   rI   rJ   rc   rK   rL   rd   r   rM   rN   )r^   r   r8   Úlen)r[   r?   r9   r:   s       r    Útest_all_listed_in_dynamicÚ*TestEntryPoints.test_all_listed_in_dynamicÁ   sÇ   € Ø×Ñ Ô)Ü'¨¯©Ó(8¸(ÓCˆØ# IÑ.ÐÜÐ# IÑ.Ó/°1Ó4Ð4Ð4Ø 	Ñ*¨3Ñ/°<Ó?Ð?Ð?ÜÐ# MÑ2Ó3°qÓ8Ð8Ð8Ø Ñ.¨sÑ3°|ÓCÐCÐCÜÐ# NÑ3Ó4¸Ó9Ð9Ð9Ø Ñ/°Ñ8¸Ñ=ÐAUÓUÐUÑUr"   Úmissing_dynamic)rb   rc   c                 ó"  • U R                  U5        1 SkU1-
  nSU 3n[        R                  " [        [        R
                  " U[        R                  5      S9   [        U R                  U5      U5        S S S 5        g ! , (       d  f       g = f)N>   rb   rc   rd   z&defined outside of `pyproject.toml`:.*©Úmatch)	r^   ÚpytestÚraisesr   ÚreÚcompileÚDOTALLr   r8   )r[   r?   rm   ra   Úmsgs        r    Ú"test_scripts_not_listed_in_dynamicÚ2TestEntryPoints.test_scripts_not_listed_in_dynamicÌ   sg   € à×Ñ Ô)Ú<ÀÐ?PÑPˆà6°Ð6GÐHˆÜ�]Š]œ;¬b¯jªj¸¼b¿i¹iÓ.HÓIÜ  §¡°Ó!8¸(ÔC÷ J×IÖIús   ÁB Â 
Brf   )N)Ú__name__Ú
__module__Ú__qualname__Ú__firstlineno__r^   r8   rk   rq   ÚmarkÚparametrizerw   Ú__static_attributes__rf   r"   r    rR   rR   µ   s=   † ò"ôBò
	Vð ‡[�[×ÑÐ.Ð0JÓKñDó LóDr"   rR   c                   ó,   • \ rS rSrS rS rS rS rSrg)ÚTestClassifierséÖ   c                 ó2  • [        US5        [        S5      nUS-  R                  USS9  US-  n[        USS9nUS	   S
   n[	        1 UkSi5      US	   S
'   US   S   S
   nSS0US'   [        XC5        [        XA5      n[        US	   S   5      SS1:X  d   eg )Nr=   zX
            Framework :: Flask
            Programming Language :: Haskell
            zclassifiers.txtr$   r%   r   Fr(   r'   ra   Úclassifiersr-   r.   re   zFramework :: FlaskzProgramming Language :: Haskell)r!   r   r3   r	   Úlistr
   r   r6   )r[   r?   r„   r8   r7   ra   Údynamic_configr9   s           r    Útest_dynamicÚTestClassifiers.test_dynamic×   sà   € ô 	�x Ô'Üðó
ˆð 
Ð%Ñ	%×1Ñ1°+ÈÐ1ÑPàÐ/Ñ/ˆ	Ü# I°eÑ<ˆØ˜Ñ# IÑ.ˆÜ'+Ð,E¨gÐ,E°}Ð,EÓ'FˆˆyÑ˜)Ñ$Ø ™¨Ñ5°iÑ@ˆØ)/Ð1BÐ(Cˆ�}Ñ%ô 	�Ô#Ü'¨Ó9ˆä�8˜IÑ& }Ñ5Ó6Ø Ø-ð;
ó 
ð 	
ñ 
r"   c                 óÀ   • SnUS-  nUR                  [        U5      SS9  [        R                  " [        SS9   [        U5        S S S 5        g ! , (       d  f       g = f)Nzl
        [project]
        name = "myproj"
        version = '42'
        dynamic = ["classifiers"]
        r   r$   r%   z!No configuration .* .classifiers.ro   )r3   r   rq   rr   r   r	   )r[   r?   r7   r8   s       r    Útest_dynamic_without_configÚ+TestClassifiers.test_dynamic_without_configô   sR   € ðˆð Ð/Ñ/ˆ	Ø×ÑœX fÓ-¸ÐÑ@Ü�]Š]œ;Ð.QÓRÜ˜yÔ)÷ S×RÖRús   ºAÁ
Ac                 ó¨   • SnUS-  nUR                  [        U5      SS9  [        SS0S9n[        XC5      nUR                  R
                  S:X  d   eg )Nzg
        [project]
        name = "myproj"
        version = '42'
        dynamic = ["readme"]
        r   r$   r%   Úlong_descriptionÚ42)Úattrs)r3   r   r   r   Úmetadatar�   )r[   r?   r7   r8   Údists        r    Ú*test_dynamic_readme_from_setup_script_argsÚ:TestClassifiers.test_dynamic_readme_from_setup_script_args  s`   € ðˆð Ð/Ñ/ˆ	Ø×ÑœX fÓ-¸ÐÑ@ÜÐ#5°tÐ"<Ñ=ˆä" 4Ó3ˆØ�}‰}×-Ñ-°Ó5Ð5Ñ5r"   c                 óÖ   • SnUS-  nUR                  [        U5      SS9  [        R                  " [        SS9   [        U5      nS S S 5        SWS   ;  d   eg ! , (       d  f       N= f)	NzÂ
        [project]
        name = "myproj"
        version = '42'
        dynamic = ["classifiers"]

        [tool.setuptools.dynamic]
        classifiers = {file = ["classifiers.txt"]}
        r   r$   r%   z'File .*classifiers.txt. cannot be foundro   r„   r'   )r3   r   rq   ÚwarnsÚUserWarningr	   )r[   r?   r7   r8   r9   s        r    Útest_dynamic_without_fileÚ)TestClassifiers.test_dynamic_without_file  sj   € ðˆð Ð/Ñ/ˆ	Ø×ÑœX fÓ-¸ÐÑ@Ü�\Š\œ+Ð-VÓWÜ)¨)Ó4ˆH÷ Xà H¨YÑ$7Ó7Ð7Ñ7÷ XÕWús   ºAÁ
A(rf   N)	ry   rz   r{   r|   r‡   rŠ   r’   r—   r   rf   r"   r    r�   r�   Ö   s   † ò
ò:*ò6õ8r"   r�   c                   ó`   • \ rS rSr/ SQr\R                  R                  S\5      S 5       rSr	g)ÚTestImportNamesi!  )z!import-names = ["hello", "world"]z&import-namespaces = ["hello", "world"]zdynamic = ["import-names"]zdynamic = ["import-namespaces"]Úexamplec                 ó
  • UR                  U5        [        S5      nSU S3nUR                  [        U5      SS9  [        R
                  " [        SS9   [        [        0 5      U5        S S S 5        g ! , (       d  f       g = f)Nr   zH
        [project]
        name = 'proj'
        version = '42'
        z	
        r$   r%   zimport-namesro   )	Úchdirr   r3   r   rq   rr   ÚNotImplementedErrorr   r   )r[   Úmonkeypatchr?   r›   r8   Útoml_configs         r    Útest_not_implementedÚ$TestImportNames.test_not_implemented)  sx   € à×Ñ˜(Ô#ÜÐ)Ó*ˆ	ð	ð 
ˆ	ð 	ð	ˆð 	×ÑœX kÓ2¸WÐÑEÜ�]Š]Ô.°nÓEÜ¤¨RÓ 0°)Ô<÷ F×EÖEús   ÁA4Á4
Brf   N)
ry   rz   r{   r|   ÚEXAMPLESrq   r}   r~   r¡   r   rf   r"   r    rš   rš   !  s.   † ò€Hð ‡[�[×Ñ˜Y¨Ó1ñ=ó 2ó=r"   rš   r›   )zˆ
        [project]
        name = "myproj"
        version = "1.2"

        [my-tool.that-disrespect.pep518]
        value = 42
        c                 ó\   • U S-  nUR                  [        U5      SS9  [        U5      c   eg ©Nr   r$   r%   )r3   r   r	   )r?   r›   r8   s      r    Útest_ignore_unrelated_configr¦   8  s:   € ð Ð+Ñ+€IØ×Ñœ 'Ó*°WÐÑ=ô ˜iÓ(Ñ4Ð4Ñ4r"   )r›   Ú	error_msg)z›
            [project]
            name = "myproj"
            version = "1.2"
            requires = ['pywin32; platform_system=="Windows"' ]
            zGconfiguration error: .project. must not contain ..requires.. propertiesc                 ó0  • U S-  nUR                  [        U5      SS9  [        R                  " SU S3[        R                  [        R
                  -  5      n[        R                  " [        US9   [        U5        S S S 5        g ! , (       d  f       g = f)Nr   r$   r%   zinvalid pyproject.toml.*z.*ro   )
r3   r   rs   rt   Ú	MULTILINEru   rq   rr   Ú
ValueErrorr	   )r?   r›   r§   r8   Úpatterns        r    Útest_invalid_exampler¬   M  st   € ð Ð+Ñ+€IØ×Ñœ 'Ó*°WÐÑ=ä�jŠjØ
" 9 +¨RÐ0´"·,±,ÄÇÁÑ2Jó€Gô 
�Š”z¨Ó	1Ü˜9Ô%÷ 
2×	1Ö	1ús   Á2BÂ
Br7   )r   z[tool.something]
value = 42c                 óP   • U S-  nUR                  USS9  [        U5      0 :X  d   eg r¥   ©r3   r	   ©r?   r7   r8   s      r    Ú
test_emptyr°   f  s5   € àÐ+Ñ+€IØ×Ñ˜¨'ÐÑ2ô ˜iÓ(¨BÓ.Ð.Ñ.r"   )ú'[project]
name = 'myproj'
version='42'
c                 ód   • U S-  nUR                  USS9  [        U5      nUS   S   S   SL d   eg)	zYBuilds with ``pyproject.toml`` should consider ``include-package-data=True`` as
default.
r   r$   r%   r-   r.   r0   TNr®   r¯   s      r    Ú$test_include_package_data_by_defaultr³   o  sI   € ð
 Ð+Ñ+€IØ×Ñ˜¨'ÐÑ2ä 	Ó*€FØ�&‰>˜,Ñ'Ð(>Ñ?À4ÒGÐGÑGr"   c                 óJ  • SSS.n[         R                  R                  XS9  [        U 5         [        R
                  R                  S0 SS9nSSS5        WR                  5       S	:X  d   eUR                  5       S
:X  d   eUR                  SL d   eg! , (       d  f       NL= f)z©Builds with ``pyproject.toml`` should consider ``include_package_data`` set in
``setup.py``.

See https://github.com/pypa/setuptools/issues/3197#issuecomment-1079023889
r±   z:__import__('setuptools').setup(include_package_data=False))r   úsetup.pyr   rµ   r7   )Ú
stop_afterNÚmyprojrŽ   F)
r   r   r   r   Ú	distutilsÚcoreÚ	run_setupÚget_nameÚget_versionÚinclude_package_data)r?   r   r‘   s      r    Ú$test_include_package_data_in_setuppyr¾   {  s™   € ð GØPñ€Eô ‡K�K×Ñ�eÐÑ-ä	ˆh�Ü�~‰~×'Ñ'¨
°BÀ8Ð'ÐLˆ÷ 
ð �=‰=‹?˜hÓ&Ð&Ð&Ø×ÑÓ Ó%Ð%Ð%Ø×$Ñ$¨Ò-Ð-Ñ-÷ 
�ús   ® BÂ
B"c                 óÂ   • SnU S-  nUR                  [        U5      SS9  [        R                  " [        5         [        U5        SSS5        g! , (       d  f       g= f)zŠTest that the common ``tools.setuptools`` typo in ``pyproject.toml`` issues a warning

See https://github.com/pypa/setuptools/issues/4150
zË
    [build-system]
    requires = ["setuptools"]
    build-backend = "setuptools.build_meta"

    [project]
    name = "myproj"
    version = '42'

    [tools.setuptools]
    packages = ["package"]
    r   r$   r%   N)r3   r   rq   r•   r   r	   r¯   s      r    Útest_warn_tools_typorÀ   �  sO   € ð
€Fð Ð+Ñ+€IØ×Ñœ &Ó)°GÐÑ<ä	�ŠÔ*Õ	+Ü˜9Ô%÷ 
,×	+Ö	+ús   »AÁ
A))rs   Úconfigparserr   Úinspectr   Újaraco.pathr   rq   r4   r   r   r.   Úsetuptools.config.pyprojecttomlr   r   r   r	   r
   Úsetuptools.distr   Úsetuptools.errorsr   Údistutils.corer¸   r   r!   r;   r@   r}   r~   rH   rX   rR   r�   rš   r¦   r¬   r°   r³   r¾   rÀ   rf   r"   r    Ú<module>rÈ      s–  ðÛ 	Ý %Ý ã Û Û Ý ã ÷õ õ )Ý )ã ð;€ò|*ò:ò4,ð ‡�×ÑØà	ˆbˆ	Ø	�ˆØ	�˜f w°°Ð&8Ð9Ð:Ð;ðóñ/óð/ð  ˜\Ð*Ø˜Ð&ØÐ'Ð(ñ€÷Dñ D÷BH8ñ H8÷V=ñ =ð. ‡�×ÑØð	óñ5óð5ð ‡�×ÑØð	
ð
óñ&óð&ð ‡�×Ñ˜Ð#GÓHñ/ó Ið/ð ‡�×Ñ˜Ð#RÓSñHó TðHò.ó(&r"   