+
    SBiv0              
       j   ^ RI t ^ RIHt ^ RIHt ^ RIt^ RIt^ RIt^ RI	H
t
 ^ RIt^ RIHtHtHtHtHt ^ RIHt ^ RIHt ^ RItRtR	 tR
 tR t]P8                  P;                  R(R/ 3R/ 3RRRRR.///3.4      R 4       tRRR/RRR/RRR//t ! R R4      t  ! R R4      t!]P8                  P;                  R R)4      R! 4       t"]P8                  P;                  R*R+.4      R" 4       t#]P8                  P;                  R#R,4      R$ 4       t$]P8                  P;                  R#R-4      R% 4       t%R& t&R' t'R# ).    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           	          R \         RRRRR//pRRRRR	R
RRR//pV'       g   Q hVR8X  d   / VCVCpM/ VCRRRR///CW!&   \        P                  P                  W R7       R# )pyproject.tomlz	README.mdhello world_fileszfile.txt pkgz__init__.pyzmod.pyzclass CustomSdist: passz__version__.pyzVERSION = (3, 10)z__main__.pyzdef exec(): print('hello').othernestedprefixN)EXAMPLEjaracopathbuild)r   pkg_rootfilespackagess   &&  O/usr/lib/python3.14/site-packages/setuptools/tests/config/test_pyprojecttoml.pycreate_exampler    U   s    ']
E 	2/17	
H O83%5%H% QXPwM2;N0OP
KKe)    c                    VR ,          pVP                  \        P                  ! V 4      RR7       \        W4      pVR,          p\	        VRR7      V8X  g   Q hVR,          R8X  g   Q hVR,          R	,          R
8X  g   Q hRVR,          R,          9   g   Q hVR8X  d*   \        VR,          R,          R,          4      R08X  g   Q hM)\        VR,          R,          R,          4      0 Rm8X  g   Q hVR,          R,          R,          RJ g   Q hRVR,          R,          R,          9   g   Q hRVR,          R,          R,          9  g   Q hVR,          R,          R,          RR.3.8X  g   Q hR# )r   utf-8encodingprojectTexpandversionz3.10readmetextr   r   tool
setuptoolsr   r   include-package-datar   zpackage-data*z
data-filesdataz_files/file.txtN>   r   r   other.nested)
write_texttomli_wdumpsr   r	   set)configr   r   	pyprojectexpandedexpanded_projects   &&&   r   verify_exampler:   r   sy   ''Iv.A#F1H	*i5AAAI&&000H%f->>>&),777738F#L1*=>5'III8F#L1*=> C
 
 	
 

 FL)*@ATIII&!,/????hv&|4^DDDDFL),7	#$%<   r!   c                     \        V R 4       V R,          p\        VRR7      pVR,          P                  R4      e   Q hVR,          P                  R4      e   Q h\        W R 4       R# )srcr   Fr'   r&   r)   Nr*   )r    r	   getr:   )tmp_pathr7   r6   s   &  r   test_read_configurationr?      se    8U#++I	%8F)  +333)  *2226U+r!   r   r<   libr   findwherec                    \        W4       V R ,          p\        VRR7      pVR,          P                  R4      e   Q hVR,          P                  R4      e   Q hVR,          R,          P                  R	R4       VR,          R,          P                  R
R4       VR,          R,          P	                  V4       \        W@V4       R# )r   Fr'   r&   r)   Nr*   r,   r-   r   zpackage-dir)r    r	   r=   popupdater:   )r>   r   optsr7   r6   s   &&&  r   9test_discovered_package_dir_with_attr_directive_in_configrG      s     8&++I	%8F)  +333)  *222
6N< $$Z6
6N< $$]D9
6N< ''-6X.r!   console_scriptsa
mod.a:funcgui_scriptsb
mod.b:funcr   cmod.c:func [extra]c                   z   a  ] tR t^t o R tRR ltR t]P                  P                  RR	4      R 4       t
RtV tR# )
TestEntryPointsc                    \        4       pVP                  \        4       \        VR ,          RRR7      ;_uu_ 4       pVP	                  V4       RRR4       R#   + '       g   i     R# ; i)entry-points.txtwr#   r$   N)r   	read_dictENTRY_POINTSopenwrite)selfr>   entry_pointsfs   &&  r   write_entry_points"TestEntryPoints.write_entry_points   sL    #~|,(//wGG1q! HGGGs   AA*	Nc                B    R T;'       g    . RO/pR RRR///pRVRRV//# )dynamicentry-pointsfilerS   r&   r,   r-   )scriptsgui-scriptsr`    )rY   r_   r&   r,   s   &&  r   r7   TestEntryPoints.pyproject   s>    gSS)STNV5G,HIJ7F\4,@AAr!   c                   V P                  V4       \        V P                  4       V4      pVR ,          p\        VR,          4      ^8X  g   Q hVR,          R,          R8X  g   Q h\        VR,          4      ^8X  g   Q hVR,          R,          R8X  g   Q h\        VR,          4      ^8X  g   Q hVR,          R,          R	,          R
8X  g   Q hR# )r&   rb   rI   rJ   rc   rL   rM   r`   r   rN   rO   N)r\   r   r7   len)rY   r>   r8   r9   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3q888.s3|CCC#N34999/8=AUUUUr!   missing_dynamicc                H   V P                  V4       0 RmV0,
          pRV 2p\        P                  ! \        \        P
                  ! V\        P                  4      R7      ;_uu_ 4        \        V P                  V4      V4       RRR4       R#   + '       g   i     R# ; i)rb   z&defined outside of `pyproject.toml`:.*matchN>   rb   rc   r`   )	r\   pytestraisesr   recompileSr   r7   )rY   r>   rj   r_   msgs   &&&  r   "test_scripts_not_listed_in_dynamic2TestEntryPoints.test_scripts_not_listed_in_dynamic   sm    )<?PP66GH]];bjjbdd.CDD !8(C EDDDs   *BB!	rd   )N)rb   rc   )__name__
__module____qualname____firstlineno__r\   r7   rh   rn   markparametrizert   __static_attributes____classdictcell____classdict__s   @r   rQ   rQ      s@     "B
	V [[.0JKD LDr!   rQ   c                   8   a  ] tR t^t o R tR tR tR tRtV t	R# )TestClassifiersc                   \        VR 4       \        R4      pVR,          P                  VRR7       VR,          p\        VRR7      pVR,          R	,          p\	        0 VmR
k4      VR,          R	&   VR,          R,          R	,          pRR/VR
&   \        WC4       \        WA4      p\        VR,          R
,          4      RR08X  g   Q hR# )r<   zX
            Framework :: Flask
            Programming Language :: Haskell
            zclassifiers.txtr#   r$   r   Fr'   r&   r_   classifiersr,   r-   ra   zFramework :: FlaskzProgramming Language :: HaskellN)r    r   r2   r	   listr
   r   r5   )rY   r>   r   r7   r6   r_   dynamic_configr8   s   &&      r   test_dynamicTestClassifiers.test_dynamic   s     	x'
 
%	%11+1P//	#Ie<#I.'+,Eg,E},E'Fy)$5i@)/1B(C}% 	#'98I&}56 -;
 
 	
 
r!   c                    R pVR,          pVP                  \        V4      RR7       \        P                  ! \        RR7      ;_uu_ 4        \        V4       RRR4       R#   + '       g   i     R# ; i)zl
        [project]
        name = "myproj"
        version = '42'
        dynamic = ["classifiers"]
        r   r#   r$   z!No configuration .* .classifiers.rl   N)r2   r   rn   ro   r   r	   )rY   r>   r6   r7   s   &&  r   test_dynamic_without_config+TestClassifiers.test_dynamic_without_config   sX     //	Xf-@]];.QRRy) SRRRs   A""A3	c                    R pVR,          pVP                  \        V4      RR7       \        RR/R7      p\        WC4      pVP                  P
                  R8X  g   Q hR# )zg
        [project]
        name = "myproj"
        version = '42'
        dynamic = ["readme"]
        r   r#   r$   long_description42)attrsN)r2   r   r   r   metadatar   )rY   r>   r6   r7   dists   &&   r   *test_dynamic_readme_from_setup_script_args:TestClassifiers.test_dynamic_readme_from_setup_script_args  s`     //	Xf-@#5t"<="43}}--555r!   c                
   R pVR,          pVP                  \        V4      RR7       \        P                  ! \        RR7      ;_uu_ 4        \        V4      pRRR4       RXR,          9  g   Q hR#   + '       g   i     L"; i)	z
        [project]
        name = "myproj"
        version = '42'
        dynamic = ["classifiers"]

        [tool.setuptools.dynamic]
        classifiers = {file = ["classifiers.txt"]}
        r   r#   r$   z'File .*classifiers.txt. cannot be foundrl   Nr   r&   )r2   r   rn   warnsUserWarningr	   )rY   r>   r6   r7   r8   s   &&   r   test_dynamic_without_file)TestClassifiers.test_dynamic_without_file  sm     //	Xf-@\\+-VWW))4H XHY$7777 XWs   A22B	rd   N)
rv   rw   rx   ry   r   r   r   r   r|   r}   r~   s   @r   r   r      s     
:*68 8r!   r   examplec                 n    V R ,          pVP                  \        V4      RR7       \        V4      f   Q hR# r   r#   r$   N)r2   r   r	   )r>   r   r7   s   && r   test_ignore_unrelated_configr   !  s:     ++I'*W= i(444r!   c                 d   V R ,          pVP                  \        V4      RR7       \        P                  ! RV R2\        P                  \        P
                  ,          4      p\        P                  ! \        VR7      ;_uu_ 4        \        V4       RRR4       R#   + '       g   i     R# ; i)r   r#   r$   zinvalid pyproject.toml.*z.*rl   N)
r2   r   rp   rq   Mrr   rn   ro   
ValueErrorr	   )r>   r   	error_msgr7   patterns   &&&  r   test_invalid_exampler   6  su     ++I'*W=jj3I;bA244"$$;OG	z	1	19% 
2	1	1	1s   BB/	r6   c                 b    V R ,          pVP                  VRR7       \        V4      / 8X  g   Q hR# r   r2   r	   r>   r6   r7   s   && r   
test_emptyr   M  s5    ++I'2 i(B...r!   c                    V R,          pVP                  VRR7       \        V4      pVR,          R,          R,          RJ g   Q hR# )	zYBuilds with ``pyproject.toml`` should consider ``include-package-data=True`` as
default.
r   r#   r$   r,   r-   r.   TNr   r   s   && r   $test_include_package_data_by_defaultr   V  sI    
 ++I'2	*F&>,'(>?4GGGr!   c                t   RRRR/p\         P                  P                  WR7       \        V 4      ;_uu_ 4        \        P
                  P                  R/ RR7      pRRR4       XP                  4       R	8X  g   Q hVP                  4       R
8X  g   Q hVP                  RJ g   Q hR#   + '       g   i     LR; i)zBuilds with ``pyproject.toml`` should consider ``include_package_data`` set in
``setup.py``.

See https://github.com/pypa/setuptools/issues/3197#issuecomment-1079023889
r   '[project]
name = 'myproj'
version='42'
zsetup.pyz:__import__('setuptools').setup(include_package_data=False)r   r6   )
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   b  s     	FPE KKe-	h~~''
B8'L 
 ==?h&&&%%%$$--- 
s   #B''B7	c                    RpV R,          pVP                  \        V4      RR7       \        P                  ! \        4      ;_uu_ 4        \        V4       RRR4       R#   + '       g   i     R# ; i)zTest 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)r2   r   rn   r   r   r	   r   s   &  r   test_warn_tools_typor   v  sU    
F ++I&)G<	*	+	+9% 
,	+	+	+s   
A  A1	)r   rF   )z
        [project]
        name = "myproj"
        version = "1.2"

        [my-tool.that-disrespect.pep518]
        value = 42
        )r   r   )z
            [project]
            name = "myproj"
            version = "1.2"
            requires = ['pywin32; platform_system=="Windows"' ]
            zGconfiguration error: .project. must not contain ..requires.. properties)r   z[tool.something]
value = 42)r   )(rp   configparserr   inspectr   jaraco.pathr   rn   r3   r   r   r-   setuptools.config.pyprojecttomlr   r   r   r	   r
   setuptools.distr   setuptools.errorsr   distutils.corer   r   r    r:   r?   rz   r{   rG   rV   rQ   r   r   r   r   r   r   r   rd   r!   r   <module>r      s   	 %        ) ) ;|*:4, 	b			fw&89:;//  \*C&c'(D DBH8 H8V 	55 	

&& #GH/ I/ #RSH TH.(&r!   