
    n&ph+Z                    *   S SK Jr  S SKrS SKrS SKrS SKrS SKrS SK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rS SKJr  S SKrS SKJrJr  S SKJr  S S	KJr  S S
KJ r   1 Skr!1 Skr"SS1r#Sr$\$SS0S.\%RM                  \"\#-  S5      E\" S5      SS.\" S5      SS0S.\" S5      SSS.\" S5      SSSS.S.SSS00S.\" S 5      SSS!.S".\" S#5      S$S%.\" S&5      SS'S(S00S).S*.r'\
R                  S+:w  a  \" S,5      S-S.S/.\'S0'   S1 r(S2 r)\RT                  " S3S49S5 5       r+\RT                  S6 5       r,\RT                  S7 5       r-S8 r.S9 r/S:r0S; r1S< r2S= r3\Rh                  Rk                  S>S?S@SA\$Rm                  SBSC5      4/5      SD 5       r7SE r8SF r9SG r:SH r;SIr<SJr=\Rh                  R}                  SK5      SL 5       r?SM r@\Rh                  Rk                  SN\A" \R                  R                  5       5      \A" \R                  5      SO9SP 5       rDSQ rESR rFSS rGST rHSU rISV rJSW rKSX rLSY rM\Rh                  Rk                  SZS[S\/5      \Rh                  R                  \R                  " 5       S]:g  S^S_9S` 5       5       rPSdSa jrQSb rRSc rSg)e    )annotationsN)suppress)cleandoc)ZipFile)tags)bdist_wheelget_abi_tag)Distribution)SetuptoolsDeprecationWarning)	run_setup>   dummy_dist-1.0.dist-info/WHEELdummy_dist-1.0.dist-info/RECORD!dummy_dist-1.0.dist-info/METADATA&dummy_dist-1.0.dist-info/top_level.txt>
   NOTICEAUTHORSCOPYINGLICENCELICENSE
COPYING.md
NOTICE.rstAUTHORS.txtLICENCE.txtLICENSE.txtzLICENSE~zAUTHORS~zQfrom setuptools import setup

setup(
    name='dummy_dist',
    version='1.0',
)
	DUMMYFILE )setup.pylicenses_diru  
            from setuptools import setup

            setup(
                name="simple.dist",
                version="0.1",
                description="A testing distribution ☃",
                extras_require={"voting": ["beaglevote"]},
            )
            )r   
simpledistui  
            from setuptools import setup

            setup(
                name="complex-dist",
                version="0.1",
                description="Another testing distribution ☃",
                long_description="Another testing distribution ☃",
                author="Illustrious Author",
                author_email="illustrious@example.org",
                url="http://example.org/exemplary",
                packages=["complexdist"],
                setup_requires=["setuptools"],
                install_requires=["quux", "splort"],
                extras_require={"simple": ["simple.dist"]},
                entry_points={
                    "console_scripts": [
                        "complex-dist=complexdist:main",
                        "complex-dist2=complexdist:main",
                    ],
                },
            )
            __init__.pyzdef main(): return)r   complexdistz
            from setuptools import setup

            setup(
                name="headers.dist",
                version="0.1",
                description="A distribution with headers",
                headers=["header.h"],
            )
            )r   zheadersdist.pyzheader.hak  
            from setuptools import setup

            setup(
                name="testrepo",
                version="0.1",
                packages=["mypackage"],
                description="A test package with commas in file names",
                include_package_data=True,
                package_data={"mypackage.data": ["*"]},
            )
            )r    z	1,2,3.txt)r    data	mypackage)r   r#   ztestrepo-0.1.0u  
            from setuptools import setup

            setup(
                name="unicode.dist",
                version="0.1",
                description="A testing distribution ☃",
                packages=["unicodedist"],
                zip_safe=True,
            )
            )r       åäö_日本語.py)r   unicodedistu   
            [metadata]
            name = utf8-metadata-dist
            version = 42
            author_email = "John X. Ãørçeč" <john@utf8.org>, Γαμα קּ 東 <gama@utf8.org>
            long_description = file: README.rst
               UTF-8 描述 説明)	setup.cfgz
README.rstz
            [metadata]
            name = licenses-dist
            version = 1.0
            license_files = **/LICENSE
            vendorr   )r'   r   src)
dummy-distzsimple-distzcomplex-distzheaders-distzcommasinfilenames-distzunicode-distzutf8-metadata-distlicenses-distwin32u  
            from setuptools import Extension, setup

            setup(
                name="extension.dist",
                version="0.1",
                description="A testing distribution ☃",
                ext_modules=[
                    Extension(
                        name="extension", sources=["extension.c"], py_limited_api=True
                    )
                ],
            )
            z![bdist_wheel]
py_limited_api=cp32z5#define Py_LIMITED_API 0x03020000
#include <Python.h>)r   r'   extension.czabi3extension-distc                    [         R                  R                  S5      (       a
  [        SSS9O[	        SS05      nUR                  5         [        U5      nU R                  5        H  u  p4[        X#U5        M     UR                  5         U$ )zHRun command in the same process so that it is easier to collect coverager   init)
stop_afterscript_namez%%build_meta%%)
ospathexistsr   r
   parse_config_filesr   itemssetattrfinalize_options)kwargsdist_objcmdattrvalues        T/var/www/html/venv/lib/python3.13/site-packages/setuptools/tests/test_bdist_wheel.pybdist_wheel_cmdr?      s{     77>>*%% 	*0=*:;< 
 !
h
C||~5! &J    c                    U R                  U5      n[        R                  R                  [        U   [        U5      S9  U$ )Nprefix)mktempjaracor3   buildEXAMPLESstr)tmp_path_factorynamebasedirs      r>   	mkexamplerL      s6    %%d+G
KKhtnS\:Nr@   session)scopec                   U R                  S5      nU R                  S5      n[         Hr  n[        X5      nX-  n[        R                  R                  5       R                  U5         [        [        U5      [        U5      S9R                  5         S S S 5        Mt     [        S UR                  S5       5       5      $ ! , (       d  f       M  = f)NrF   dist	bdist_dirdist_dirc              3  8   #    U  H  n[        U5      v   M     g 7fN)rH   ).0fnames     r>   	<genexpr>wheel_paths.<locals>.<genexpr>   s     A*@#e***@s   z*.whl)rD   rG   rL   rE   r3   DirectoryStackcontextr?   rH   runsortedglob)rI   
build_baserS   rJ   example_dir	build_dirs         r>   wheel_pathsrb      s    !((1J&&v.H 07%	[['')11+>c)ns8}MQQS ?>  A(--*@AAA ?>s   (+C  
C	c                    [        U S5      $ )Nr*   rL   rI   s    r>   
dummy_distrf      s    %|44r@   c                    [        U S5      $ )Nr+   rd   re   s    r>   licenses_distrh      s    %77r@   c                    [        S U  5       5      n[        U5      R                  5        H  nSUR                  ;  a  M   e   g)z0Make sure entry point scripts are not generated.c              3  6   #    U  H  nS U;   d  M  Uv   M     g7f)complex_distN rV   r3   s     r>   rX   "test_no_scripts.<locals>.<genexpr>       G$0F   
	z.data/scripts/N)nextr   infolistfilename)rb   r3   entrys      r>   test_no_scriptsru     s;    GGGD'')u~~555 *r@   c                    [        S U  5       5      n[        U5       nUR                  S5      nS S S 5        SR                  5       W;   d   eg ! , (       d  f       N%= f)Nc              3  6   #    U  H  nS U;   d  M  Uv   M     g7f)unicode_distNrl   rm   s     r>   rX   &test_unicode_record.<locals>.<genexpr>  ro   rp   z!unicode_dist-0.1.dist-info/RECORDr$   )rq   r   readencode)rb   r3   zfrecords       r>   test_unicode_recordr~     sP    GGGD	"<= 
 !'')V333 
s   A
Au   Metadata-Version: 2.1
Name: helloworld
Version: 42
Author-email: "John X. Ãørçeč" <john@utf8.org>, Γαμα קּ 東 <gama@utf8.org>


UTF-8 描述 説明
c                P   U R                  U5        US-  nUS-  nUR                  5         US-  R                  [        SS9  US-  R	                  5          " S S[
        5      nU" 5       nUR                  X#5        US	-  R                  SS9nS
U;   d   eSU;   d   eSU;   d   eg )Nzdummy_dist.egg-infodummy_dist.dist-infozPKG-INFOutf-8encodingzdependency_links.txtc                  .    \ rS rSrSrS r\S 5       rSrg);test_preserve_unicode_metadata.<locals>.simpler_bdist_wheeli'  z1Avoid messing with setuptools/distutils internalsc                    g rU   rl   selfs    r>   __init__Dtest_preserve_unicode_metadata.<locals>.simpler_bdist_wheel.__init__*  s    r@   c                    / $ rU   rl   r   s    r>   license_pathsItest_preserve_unicode_metadata.<locals>.simpler_bdist_wheel.license_paths-  s    Ir@   rl   N)	__name__
__module____qualname____firstlineno____doc__r   propertyr   __static_attributes__rl   r@   r>   simpler_bdist_wheelr   '  s    ?	 
	 
	r@   r   METADATAu"   Author-email: "John X. Ãørçeč"u   Γαμα קּ 東 r&   )chdirmkdir
write_textUTF8_PKG_INFOtouchr   egg2dist	read_text)monkeypatchtmp_pathegginfodistinfor   cmd_objmetadatas          r>   test_preserve_unicode_metadatar     s    h..G00HMMOz%%mg%F%%,,.k  "#GW':%00'0BH/8;;;(*** H,,,r@   c                :   UR                  U 5        [        [        U5      S9R                  5         [	        S5       n[
         Vs1 s H  nSU-   iM
     nn[        UR                  5       5      [        U-  :X  d   e S S S 5        g s  snf ! , (       d  f       g = f)NrR   $dist/dummy_dist-1.0-py3-none-any.whl"dummy_dist-1.0.dist-info/licenses/)	r   r?   rH   r\   r   DEFAULT_LICENSE_FILESsetnamelistDEFAULT_FILES)rf   r   r   wfrW   license_filess         r>   test_licenses_defaultr   :  s    j!c(m,002	7	8B /
. 158. 	 
 2;;=!]]%BBBB 
9	8
 
9	8s   	BB(BB
Bc                B   U R                  S5      R                  SSS9  UR                  U 5        [        [	        U5      S9R                  5         [        S5       nS1n[        UR                  5       5      [        U-  :X  d   e S S S 5        g ! , (       d  f       g = f)Nr'   z.[metadata]
license_file=licenses_dir/DUMMYFILEr   r   r   r   z8dummy_dist-1.0.dist-info/licenses/licenses_dir/DUMMYFILE
joinpathr   r   r?   rH   r\   r   r   r   r   )rf   r   r   r   r   s        r>   test_licenses_deprecatedr   E  s    $//9G 0  j!c(m,002	7	8BST2;;=!]]%BBBB 
9	8	8s   *B
B)config_fileconfig)r'   z1[metadata]
license_files=licenses_dir/*
  LICENSE)r'   z0[metadata]
license_files=licenses_dir/*, LICENSEr   )z6  license_files=['licenses_dir/DUMMYFILE', 'LICENSE'])c                   U R                  U5      R                  USS9  UR                  U 5        [        [	        U5      S9R                  5         [        S5       nS Vs1 s H  nSU-   iM
     nn[        UR                  5       5      [        U-  :X  d   eUR                  S5      R                  S5      nS	U;   d   eS
U;   d   e S S S 5        g s  snf ! , (       d  f       g = f)Nr   r   r   r   >   r   licenses_dir/DUMMYFILEr   r   utf8z$License-File: licenses_dir/DUMMYFILELicense-File: LICENSE)r   r   r   r?   rH   r\   r   r   r   r   rz   decode)	rf   r   r   r   r   r   rW   r   r   s	            r>   test_licenses_overrider   R  s     $///Ij!c(m,002	7	8B ?
> 158> 	 
 2;;=!]]%BBBB77>?FFvN5AAA&(222 
9	8
 
9	8s   C!C0ACC
C%c                   UR                  U 5        [        [        U5      S9R                  5         [	        [
        R                  " S5      5        [        S5       n[         Vs1 s H  oDR                  SS5      iM     nnSS1n[        UR                  5       5      XV-  :X  d   eUR                  S5      R                  S	5      nS
U;   d   eSU;   d   e S S S 5        g s  snf ! , (       d  f       g = f)Nr   rP   z'dist/licenses_dist-1.0-py3-none-any.whldummy_	licenses_z,licenses_dist-1.0.dist-info/licenses/LICENSEz7licenses_dist-1.0.dist-info/licenses/src/vendor/LICENSEz$licenses_dist-1.0.dist-info/METADATAr   z License-File: src/vendor/LICENSEr   )r   r?   rH   r\   printr2   listdirr   r   replacer   r   rz   r   )rh   r   r   r   rJ   default_filesr   r   s           r>   'test_licenses_preserve_folder_structurer   n  s    m$c(m,002	"**V
	:	;rIVWh<W:E
 2;;=!]%BBBB77ABII&Q1X===&(222 
<	;W 
<	;s   	C&%C! AC&!C&&
C4c                6   U R                  S5      R                  SSS9  UR                  U 5        [        [	        U5      S9R                  5         [        S5       n[        UR                  5       5      [        :X  d   e S S S 5        g ! , (       d  f       g = f)Nr'   z[metadata]
license_files=
r   r   r   r   r   )rf   r   r   r   s       r>   test_licenses_disabledr   ~  sz    $//& 0  j!c(m,002	7	8B2;;=!]222 
9	8	8s   $B


Bc                   UR                  U 5        [        [        U5      SS9R                  5         [	        S5       n[        UR                  5       5      nSU;   d   eSU;   d   e S S S 5        g ! , (       d  f       g = f)N2rR   build_numberz&dist/dummy_dist-1.0-2-py3-none-any.whlr   r   )r   r?   rH   r\   r   r   r   )rf   r   r   r   	filenamess        r>   test_build_numberr     sj    j!c(m#>BBD	9	:b&	0I===2i??? 
;	:	:s   *A22
B c                   UR                  U 5        [        R                  " [        SS9   [	        [        U5      SS9R                  5         S S S 5        [        R                  R                  S5      (       d   eg ! , (       d  f       N5= f)Nz.*universal is deprecatedmatchT)rR   	universalz(dist/dummy_dist-1.0-py2.py3-none-any.whl)
r   pytestwarnsr   r?   rH   r\   r2   r3   r4   )rf   r   r   s      r>   test_universal_deprecatedr     sc    j!	2:U	V#h-4@DDF 
W 77>>DEEEE	 
W	Vs   "A<<
B
a&  #include <Python.h>

static PyMethodDef methods[] = {
  { NULL, NULL, 0, NULL }
};

static struct PyModuleDef module_def = {
  PyModuleDef_HEAD_INIT,
  "extension",
  "Dummy extension module",
  -1,
  methods
};

PyMODINIT_FUNC PyInit_extension(void) {
  return PyModule_Create(&module_def);
}
u   from __future__ import annotations

from setuptools import Extension, setup

setup(
    name="extension.dist",
    version="0.1",
    description="A testing distribution ☃",
    ext_modules=[Extension(name="extension", sources=["extension.c"])],
)
zEonce:Config variable '.*' is unset.*, Python ABI tag may be incorrectc                <   UR                  S5      nUS-  R                  [        SS9  US-  R                  [        SS9  UR	                  S5      nUR	                  S5      nU R                  U5        [        [        U5      [        U5      S9R                  5         g	)
z=Test that building a binary wheel with the limited ABI works.extension_distr   r   r   r-   rF   rP   rQ   N)	rD   r   EXTENSION_SETUPPYEXTENSION_EXAMPLEr   r   r?   rH   r\   )r   r   rI   
source_dirra   rS   s         r>   test_limited_abir     s    
 "(()9:J*(():W(M-++,=+P!!'*I  (Hj!c)ns8}EIIKr@   c                   [        UR                  S5      5      n[        R                  " [        U 5      U5        UR	                  U5        [
        R                  " U5       HQ  u  pEnU HE  n[
        R                  " [
        R                  R                  XG5      [        R                  5        MG     MS     [        5       R                  5         g )Ndummy)rH   r   shutilcopytreer   r2   walkchmodr3   joinstatS_IREADr?   r\   )rf   r   r   rK   root_dirsfilesrW   s           r>   test_build_from_readonly_treer     s    (##G,-G
OOC
OW-g !ggg.UEHHRWW\\$.=  / r@   )optioncompress_type)idsc                N   UR                  U 5        [        [        U5      US9R                  5         [	        S5       n[        UR                  5       5      nSU;   d   eSU;   d   eUR                   H  nUR                  U:X  a  M   e   S S S 5        g ! , (       d  f       g = f)N)rR   compressionr   r   r   )	r   r?   rH   r\   r   r   r   filelistr   )rf   r   r   r   r   r   r   zinfos           r>   test_compressionr     s     j!c(m@DDF	7	8B&	0I===2i???[[E&&-777 !	 
9	8	8s   AB	B
B$c                    U  HM  n[        U5       n[        S UR                   5       5      nUR                  U5      nSU;  d   e S S S 5        MO     g ! , (       d  f       Ma  = f)Nc              3  h   #    U  H(  oR                   R                  S 5      (       d  M$  Uv   M*     g7f)WHEELN)rs   endswith)rV   fns     r>   rX   .test_wheelfile_line_endings.<locals>.<genexpr>  s!     W+B9M9Mg9VRR+s   #2	2   )r   rq   r   rz   )rb   r3   r   	wheelfilewheelfile_contentss        r>   test_wheelfile_line_endingsr     sT    T]bW"++WWI!#!3 2222 ] ]s   6A
A$	c                    UR                  SS5        UR                  U 5        [        [        U5      SS9R	                  5         [        S5       nUR                   H  nUR                  S:  a  M   e   S S S 5        g ! , (       d  f       g = f)NSOURCE_DATE_EPOCH02ar   z'dist/dummy_dist-1.0-2a-py3-none-any.whl)i     r   r   r   r   )setenvr   r?   rH   r\   r   r   	date_time)rf   r   r   r   r   s        r>   test_unix_epoch_timestampsr     sp    *C0j!c(m$?CCE	:	;r[[E??&;;;; ! 
<	;	;s   A?2A??
Bc                r   U R                  [        SS 5        U R                  [        SS 5        [        5       S:X  d   eU R                  [        SS S5        [        5       S	:X  d   eU R                  [        SS
 5        [        5       S:X  d   eU R                  [        S5        [        5       S:X  d   eg )Ninterpreter_namec                     g)Ncprl   rl   r@   r>   <lambda>*test_get_abi_tag_windows.<locals>.<lambda>      $r@   get_config_varc                    g)Nzcp313-win_amd64rl   xs    r>   r  r    s    ?Pr@   cp313gettotalrefcountc                     g)Nr   rl   rl   r@   r>   r  r    s    r@   Fcp313dc                    g)Nzcp313t-win_amd64rl   r
  s    r>   r  r    s    ?Qr@   cp313tdcp313t)r7   r   	sysconfigr	   sysdelattrr   s    r>   test_get_abi_tag_windowsr    s    0,?	#35PQ=G###/EB=H$$$	#35QR=I%%%/0=H$$$r@   c                    U R                  [        SS 5        U R                  [        SS 5        [        5       S:X  d   eg )Nr  c                     gNpprl   rl   r@   r>   r  +test_get_abi_tag_pypy_old.<locals>.<lambda>  r  r@   r  c                    g)Nzpypy36-pp73rl   r
  s    r>   r  r    s    }r@   pypy36_pp73)r7   r   r  r	   r  s    r>   test_get_abi_tag_pypy_oldr    s9    0,?	#35LM=M)))r@   c                    U R                  [        SS 5        U R                  [        SS 5        [        5       S:X  d   eg )Nr  c                    g)Nzpypy37-pp73-darwinrl   r
  s    r>   r  +test_get_abi_tag_pypy_new.<locals>.<lambda>
      ?Sr@   r  c                     gr  rl   rl   r@   r>   r  r"    r  r@   pypy37_pp73r7   r  r   r	   r  s    r>   test_get_abi_tag_pypy_newr'  	  s9    	#35ST0,?=M)))r@   c                    U R                  [        SS 5        U R                  [        SS 5        [        5       S:X  d   eg )Nr  c                    g)Nz"graalpy231-310-native-x86_64-linuxrl   r
  s    r>   r  *test_get_abi_tag_graalpy.<locals>.<lambda>  s    /Sr@   r  c                     g)Ngraalpyrl   rl   r@   r>   r  r*    s    )r@   graalpy231_310_nativer&  r  s    r>   test_get_abi_tag_graalpyr.    s@    #%S 02CD=3333r@   c                    U R                  [        SS 5        U R                  [        SS 5        [        5       S:X  d   eg )Nr  c                    g)Nzunknown-python-310rl   r
  s    r>   r  +test_get_abi_tag_fallback.<locals>.<lambda>  r#  r@   r  c                     g)Nzunknown-pythonrl   rl   r@   r>   r  r1    s    :Jr@   unknown_python_310r&  r  s    r>   test_get_abi_tag_fallbackr4    s;    	#35ST02JK=0000r@   c                T    UR                  U 5        [        SS9R                  5         g)z>Ensure building on platforms with a space in the name succeed.zisilon onefs)	plat_nameN)r   r?   r\   )rf   r   s     r>   test_platform_with_spacer7    s!    j!n-113r@   c                   U R                  U5        SSSSS.nUR                  5        H3  u  p4[        USSS9 nUR                  [	        U5      5        SSS5        M5     [        5       R                  5         S	n[        R                  R                  U5      (       d   e[        [        U5      R                  5       5      nS
 H
  nX;   a  M
   e   S H
  n	X;  a  M
   e   g! , (       d  f       M  = f)z
Setuptools allow authors to set PEP 440's local version segments
using ``egg_info.tag_build``. This should be reflected not only in the
``.whl`` file name, but also in the ``.dist-info`` and ``.data`` dirs.
See pypa/setuptools#3997.
z]
            from setuptools import setup
            setup(headers=["hello.h"])
            z
            [metadata]
            name = test
            version = 1.0

            [options.data_files]
            hello/world = file.txt

            [egg_info]
            tag_build = +what
            tag_date = 0
            r   )r   r'   zfile.txtzhello.hwr   r   Nz#dist/test-1.0+what-py3-none-any.whl)z"test-1.0+what.data/headers/hello.hz,test-1.0+what.data/data/hello/world/file.txtz test-1.0+what.dist-info/METADATAztest-1.0+what.dist-info/WHEEL)ztest.data/headers/hello.hz'test-1.0.data/data/hello/world/file.txtztest.dist-info/METADATAztest-1.0.dist-info/WHEEL)r   r6   openwriter   r?   r\   r2   r3   r4   r   r   r   )
r   r   r   filecontentfh
wheel_pathentriesexpectednot_expecteds
             r>   test_data_dir_with_tag_buildrC  #  s     h %E( $g."HHXg&' /. '  7J77>>*%%%%'*%..01G """ ***# /.s   C##
C2	)reportedrA  )zlinux-x86_64
linux_i686)zlinux-aarch64linux_armv7lLinuxz!Only makes sense to test on Linux)reasonc                    UR                  [        SS 5        [        R                  " 5       n[	        U5      nXl        SUl        UR                  5       u    pVXa:X  d   eg )Ncalcsizec                    g)N   rl   r
  s    r>   r  'test_platform_linux32.<locals>.<lambda>b  s    ar@   F)r7   struct
setuptoolsr
   r   r6  root_is_pureget_tag)rD  rA  r   rP   r;   _actuals          r>   test_platform_linux32rT  Z  sV     
K8""$D
d
CMC;;=LAqr@   c                   SS jn[        [        5         U R                  [        R                  S5        S S S 5        U R                  [        SU5        [        R                  " [        SS9   SS K
nS S S 5        U R                  [        R                  S5        SS Kng ! , (       d  f       Np= f! , (       d  f       ND= f)	Nc                ^    U S:X  a  [        SU  35      e[        R                  " U /UQ70 UD6$ )NctypeszNo module named )ModuleNotFoundError	importlib
__import__)rJ   argsr9   s      r>   _fake_import$test_no_ctypes.<locals>._fake_importl  s8    8%(8&?@@##D:4:6::r@   zwheel.macosx_libfilerZ  zNo module named ctypesr   r   zsetuptools.command.bdist_wheel)rJ   rH   )r   KeyErrordelitemr  modulesr7   builtinsr   raisesrX  wheel.macosx_libfilesetuptools.command.bdist_wheel)r   r\  wheelrO  s       r>   test_no_ctypesrf  k  s    ; 
(	CKK)?@ 
 ,=	*2J	K# 
L
 %EF) 
	
 
L	Ks   !B .B1 
B.1
B?c                   UR                  U 5        US-  nUR                  5         US-  R                  SSS9  US-  R                  SSS9  [        [	        U5      [	        U5      S9R                  5         S	S
1n[        S5       n[        UR                  5       5      nS S S 5        UW-
  [        5       :X  d   eU Vs/ s H  nS[	        U5      ;   d  M  UPM     sn(       a   eg ! , (       d  f       NM= fs  snf )Nr   r   zname: helloworldr   r   FOObar)rR   dist_info_dirzdummy_dist-1.0.dist-info/FOOr   r   zegg-info)	r   r   r   r?   rH   r\   r   r   r   )rf   r   r   r   rA  r   files_foundr3   s           r>   test_dist_info_providedrl    s    j!00HNN
&&'9G&L
 !!%'!:c(m3x=IMMO&)H 
7	8B"++-( 
9 k!SU***!,H
c$i0GHHHH 
9	8
 Is   C'?C8C8'
C5c                @   SS[        S5      [        S5      SS.S.n[        R                  R                  U[	        U5      S9  U R                  US	-  5        S
n[        R                  " [        US9   [        5       R                  5         S S S 5        [        S5       n[        UR                  5       5      nSS1nXe::  d   eUR                  S5      R                  S5      nSU;   d   eSU;   d   e S S S 5        g ! , (       d  f       Nx= f! , (       d  f       g = f)Nzparent licensezparent noticez
                [project]
                name = "test-proj"
                dynamic = ["version"]      # <---- testing dynamic will not break
                [tool.setuptools.dynamic]
                version.file = "VERSION"
                z
                [metadata]
                license_files =
                  ../LICENSE.txt
                  ../NOTICE.txt
                42)zpyproject.tomlr'   VERSION)r   z
NOTICE.txtpythonrB   rp  z'Pattern '../.*.txt' cannot contain '..'r   z"dist/test_proj-42-py3-none-any.whlz+test_proj-42.dist-info/licenses/LICENSE.txtz*test_proj-42.dist-info/licenses/NOTICE.txtztest_proj-42.dist-info/METADATAr   zLicense-File: LICENSE.txtzLicense-File: NOTICE.txt)r   rE   r3   rF   rH   r   r   r   r   r?   r\   r   r   r   rz   r   )r   r   r   msgr   rk  expected_filesr   s           r>   0test_allow_grace_period_parent_directory_licensers    s    (%& " %
E0 KKeCM2h)*
3C	2#	> 
?	5	6""++-(98
 ,,,77<=DDVL*h666)X555 
7	6 
?	>	6	6s   3C>AD>
D
D)returnNone)T
__future__r   ra  rY  os.pathr2   platformr   r   rN  r  r  
contextlibr   inspectr   zipfiler   jaraco.pathrE   r   	packagingr   rO  rd  r   r	   setuptools.distr
   setuptools.warningsr   distutils.corer   r   r   OTHER_IGNORED_FILESSETUPPY_EXAMPLEdictfromkeysrG   r?   rL   fixturerb   rf   rh   ru   r~   r   r   r   r   markparametrizer   r   r   r   r   r   r   r   filterwarningsr   r   listsupported_compressionsr6   r   r   r   r  r  r'  r.  r4  r7  rC  skipifsystemrT  rf  rl  rs  rl   r@   r>   <module>r     s   "        
         C ( < $    $$b) ---0CCR
H 	
   
2 &';<5: 	
 " 
 $&R8

 -,
'0 

 (*"E" 
 , 
 y"o
iBJ <<7 
  :O%&H!", i 	B !	B 5 5 8 864-8C
C LJ##M	
	333 3@F &  KLL
 	+	+	1	1	34[//0  
8
83<	%**4144+n #%FG OO )L  	*,I2*6r@   