
    ,h+Z                    8   d dl mZ d dlZd dlZd dlZd dlZd dlZd dl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Zd dlmZ d dlZd dlmZmZ d dlmZ d d	lmZ d d
lm Z  h dZ!h dZ"ddhZ#dZ$e$ddide%jM                  e"e#z  d       ed      dd ed      ddid ed      ddd ed      ddddddddiid ed       ddd!d" ed#      d$d% ed&      dd'd(diid)d*Z'e
j                  d+k7  r ed,      d-d.d/e'd0<   d1 Z(d2 Z) ejT                  d34      d5        Z+ejT                  d6        Z,ejT                  d7        Z-d8 Z.d9 Z/d:Z0d; Z1d< Z2d= Z3ejh                  jk                  d>d?d@dAe$jm                  dBdC      fg      dD        Z7dE Z8dF Z9dG Z:dH Z;dIZ<dJZ=ejh                  j}                  dK      dL        Z?dM Z@ejh                  jk                  dN eAej                  j                                eAej                        O      dP        ZDdQ ZEdR ZFdS ZGdT ZHdU ZIdV ZJdW ZKdX ZLdY ZMejh                  jk                  dZd[d\g      ejh                  j                   ej                         d]k7  d^_      d`               ZPdddaZQdb ZRdc ZSy)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/top_level.txtdummy_dist-1.0.dist-info/RECORD!dummy_dist-1.0.dist-info/METADATA>
   
COPYING.md
NOTICE.rstAUTHORS.txtLICENCE.txtNOTICEAUTHORSCOPYINGLICENCELICENSE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                    t         j                  j                  d      rt        dd      nt	        ddi      }|j                          t        |      }| j                         D ]  \  }}t        |||        |j                          |S )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        c/var/www/html/Resume-Scraper/venv/lib/python3.12/site-packages/setuptools/tests/test_bdist_wheel.pybdist_wheel_cmdr?      s     77>>*% 	*0=*:;< 
 !
h
C||~ "eT5!"J    c                    | j                  |      }t        j                  j                  t        |   t        |             |S )Nprefix)mktempjaracor3   buildEXAMPLESstr)tmp_path_factorynamebasedirs      r>   	mkexamplerL      s6    %%d+G
KKhtnS\:Nr@   session)scopec                   | j                  d      }| j                  d      }t        D ]v  }t        | |      }||z  }t        j                  j                         j                  |      5  t        t        |      t        |            j                          d d d        x t        d |j                  d      D              S # 1 sw Y   xY w)NrF   dist	bdist_dirdist_dirc              3  2   K   | ]  }t        |        y wN)rH   ).0fnames     r>   	<genexpr>zwheel_paths.<locals>.<genexpr>   s     A#e*As   z*.whl)rD   rG   rL   rE   r3   DirectoryStackcontextr?   rH   runsortedglob)rI   
build_baserS   rJ   example_dir	build_dirs         r>   wheel_pathsra      s    !((1J&&v.H T 0$7%	[['')11+> 	Tc)ns8}MQQS	T 	TT A(--*@AAA	T 	Ts   *.CC	c                    t        | d      S )Nr*   rL   rI   s    r>   
dummy_distre      s    %|44r@   c                    t        | d      S )Nr+   rc   rd   s    r>   licenses_distrg      s    %77r@   c                    t        d | D              }t        |      j                         D ]  }d|j                  vrJ  y)z0Make sure entry point scripts are not generated.c              3  *   K   | ]  }d |v s|  yw)complex_distN rV   r3   s     r>   rX   z"test_no_scripts.<locals>.<genexpr>       G$0FG   	z.data/scripts/N)nextr   infolistfilename)ra   r3   entrys      r>   test_no_scriptsrs     s=    GGGD'') 6u~~556r@   c                    t        d | D              }t        |      5 }|j                  d      }d d d        dj                         v sJ y # 1 sw Y   xY w)Nc              3  *   K   | ]  }d |v s|  yw)unicode_distNrk   rl   s     r>   rX   z&test_unicode_record.<locals>.<genexpr>  rm   rn   z!unicode_dist-0.1.dist-info/RECORDr$   )ro   r   readencode)ra   r3   zfrecords       r>   test_unicode_recordr{     sX    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                R   | j                  |       |dz  }|dz  }|j                          |dz  j                  t        d       |dz  j	                           G d dt
              } |       }|j                  ||       |d	z  j                  d      }d
|v sJ d|v sJ d|v sJ y )Nzdummy_dist.egg-infodummy_dist.dist-infozPKG-INFOutf-8encodingzdependency_links.txtc                  &    e Zd ZdZd Zed        Zy);test_preserve_unicode_metadata.<locals>.simpler_bdist_wheelz1Avoid messing with setuptools/distutils internalsc                     y rU   rk   selfs    r>   __init__zDtest_preserve_unicode_metadata.<locals>.simpler_bdist_wheel.__init__*  s    r@   c                    g S rU   rk   r   s    r>   license_pathszItest_preserve_unicode_metadata.<locals>.simpler_bdist_wheel.license_paths-  s    Ir@   N)__name__
__module____qualname____doc__r   propertyr   rk   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Wh':%00'0BH/8;;(** H,,,r@   c                .   |j                  |        t        t        |            j                          t	        d      5 }t
        D ch c]  }d|z   	 }}t        |j                               t        |z  k(  sJ 	 d d d        y c c}w # 1 sw Y   y xY w)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)re   r   r   wfrW   license_filess         r>   test_licenses_defaultr   :  s    j!c(m,002	7	8 CB /
 158
 
 2;;=!]]%BBBBC C
C Cs    	B	B'BBBc                B   | j                  d      j                  dd       |j                  |        t        t	        |            j                          t        d      5 }dh}t        |j                               t        |z  k(  sJ 	 d d d        y # 1 sw Y   y xY w)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   )re   r   r   r   r   s        r>   test_licenses_deprecatedr   E  s    $//9G 0  j!c(m,002	7	8 CBST2;;=!]]%BBBBC C Cs   ")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                   | j                  |      j                  |d       |j                  |        t        t	        |            j                          t        d      5 }dD ch c]  }d|z   	 }}t        |j                               t        |z  k(  sJ |j                  d      j                  d      }d	|v sJ d
|v sJ 	 d d d        y c c}w # 1 sw Y   y xY w)Nr~   r   r   r   >   licenses_dir/DUMMYFILEr   r   r   utf8z$License-File: licenses_dir/DUMMYFILELicense-File: LICENSE)r   r   r   r?   rH   r[   r   r   r   r   rw   decode)	re   r   r   r   r   r   rW   r   r   s	            r>   test_licenses_overrider   R  s     $///Ij!c(m,002	7	8 3B ?
 158
 
 2;;=!]]%BBB77>?FFvN5AA&(2223 3
3 3s   "C'C3ACCCc                   |j                  |        t        t        |            j                          t	        t        j                  d             t        d      5 }t        D ch c]  }|j                  dd       }}ddh}t        |j                               ||z  k(  sJ |j                  d      j                  d	      }d
|v sJ d|v sJ 	 d d d        y c c}w # 1 sw Y   y xY w)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   rw   r   )rg   r   r   r   rJ   default_filesr   r   s           r>   'test_licenses_preserve_folder_structurer   n  s    m$c(m,002	"**V
	:	; 	3rIVWh<WW:E
 2;;=!]]%BBB77ABII&Q1X==&(222	3 	3W	3 	3s   	C"'C AC"C""C+c                6   | j                  d      j                  dd       |j                  |        t        t	        |            j                          t        d      5 }t        |j                               t        k(  sJ 	 d d d        y # 1 sw Y   y xY w)Nr'   z[metadata]
license_files=
r~   r   r   r   r   )re   r   r   r   s       r>   test_licenses_disabledr   ~  s    $//& 0  j!c(m,002	7	8 3B2;;=!]2223 3 3s   "#BBc                    |j                  |        t        t        |      d      j                          t	        d      5 }t        |j                               }d|v sJ d|v sJ 	 d d d        y # 1 sw Y   y xY w)N2rR   build_numberz&dist/dummy_dist-1.0-2-py3-none-any.whlr   r   )r   r?   rH   r[   r   r   r   )re   r   r   r   	filenamess        r>   test_build_numberr     st    j!c(m#>BBD	9	: @b&	0I==2i???@ @ @s   &A11A:c                   |j                  |        t        j                  t        d      5  t	        t        |      d      j                          d d d        t        j                  j                  d      sJ y # 1 sw Y   +xY w)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   )re   r   r   s      r>   test_universal_deprecatedr     si    j!	2:U	V G#h-4@DDFG 77>>DEEE	G Gs   %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                N   |j                  d      }|dz  j                  t        d       |dz  j                  t        d       |j	                  d      }|j	                  d      }| j                  |       t        t        |      t        |            j                          y	)
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_dirr`   rS   s         r>   test_limited_abir     s    
 "(()9:J*(():W(M-++,=+P!!'*I  (Hj!c)ns8}EIIKr@   c                   t        |j                  d            }t        j                  t        |       |       |j	                  |       t        j                  |      D ]O  \  }}}|D ]D  }t        j                  t
        j                  j                  ||      t        j                         F Q t               j                          y )Ndummy)rH   r   shutilcopytreer   r2   walkchmodr3   joinstatS_IREADr?   r[   )re   r   r   rK   root_dirsfilesrW   s           r>   test_build_from_readonly_treer     s    (##G,-G
OOC
OW-g !ggg. >eU 	>EHHRWW\\$.=	>> r@   )optioncompress_type)idsc                >   |j                  |        t        t        |      |      j                          t	        d      5 }t        |j                               }d|v sJ d|v sJ |j                  D ]  }|j                  |k(  rJ  	 d d d        y # 1 sw Y   y xY w)N)rR   compressionr   r   r   )	r   r?   rH   r[   r   r   r   filelistr   )re   r   r   r   r   r   r   zinfos           r>   test_compressionr     s     j!c(m@DDF	7	8 8B&	0I==2i??[[ 	8E&&-77	8	8 8 8s   ABBBc                    | D ]J  }t        |      5 }t        d |j                  D              }|j                  |      }d|vsJ 	 d d d        L y # 1 sw Y   WxY w)Nc              3  X   K   | ]"  }|j                   j                  d       s| $ yw)WHEELN)rq   endswith)rV   fns     r>   rX   z.test_wheelfile_line_endings.<locals>.<genexpr>  s!     WB9M9Mg9VRWs    **   )r   ro   r   rw   )ra   r3   r   	wheelfilewheelfile_contentss        r>   test_wheelfile_line_endingsr     sf     3T] 	3bW"++WWI!#!3 2222	3 	33	3 	3s   4AA	c                   |j                  dd       |j                  |        t        t        |      d      j	                          t        d      5 }|j                  D ]  }|j                  dk\  rJ  	 d d d        y # 1 sw Y   y xY w)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)re   r   r   r   r   s        r>   test_unix_epoch_timestampsr     s{    *C0j!c(m$?CCE	:	; <r[[ 	<E??&;;;	<< < <s   B 3B  B	c                j   | j                  t        dd        | j                  t        dd        t               dk(  sJ | j                  t        dd d       t               d	k(  sJ | j                  t        dd
        t               dk(  sJ | j                  t        d       t               dk(  sJ y )Ninterpreter_namec                      y)Ncprk   rk   r@   r>   <lambda>z*test_get_abi_tag_windows.<locals>.<lambda>      r@   get_config_varc                     y)Nzcp313-win_amd64rk   xs    r>   r   z*test_get_abi_tag_windows.<locals>.<lambda>  r   r@   cp313gettotalrefcountc                      y)Nr   rk   rk   r@   r>   r   z*test_get_abi_tag_windows.<locals>.<lambda>  r   r@   Fcp313dc                     y)Nzcp313t-win_amd64rk   r  s    r>   r   z*test_get_abi_tag_windows.<locals>.<lambda>  r   r@   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                    | j                  t        dd        | j                  t        dd        t               dk(  sJ y )Nr   c                      yNpprk   rk   r@   r>   r   z+test_get_abi_tag_pypy_old.<locals>.<lambda>  r   r@   r   c                     y)Nzpypy36-pp73rk   r  s    r>   r   z+test_get_abi_tag_pypy_old.<locals>.<lambda>  r   r@   pypy36_pp73)r7   r   r
  r	   r  s    r>   test_get_abi_tag_pypy_oldr    s9    0,?	#35LM=M)))r@   c                    | j                  t        dd        | j                  t        dd        t               dk(  sJ y )Nr   c                     y)Nzpypy37-pp73-darwinrk   r  s    r>   r   z+test_get_abi_tag_pypy_new.<locals>.<lambda>
  r   r@   r   c                      yr  rk   rk   r@   r>   r   z+test_get_abi_tag_pypy_new.<locals>.<lambda>  r   r@   pypy37_pp73r7   r
  r   r	   r  s    r>   test_get_abi_tag_pypy_newr  	  s9    	#35ST0,?=M)))r@   c                    | j                  t        dd        | j                  t        dd        t               dk(  sJ y )Nr   c                     y)Nz"graalpy231-310-native-x86_64-linuxrk   r  s    r>   r   z*test_get_abi_tag_graalpy.<locals>.<lambda>  r   r@   r   c                      y)Ngraalpyrk   rk   r@   r>   r   z*test_get_abi_tag_graalpy.<locals>.<lambda>  r   r@   graalpy231_310_nativer  r  s    r>   test_get_abi_tag_graalpyr!    s@    #%S 02CD=3333r@   c                    | j                  t        dd        | j                  t        dd        t               dk(  sJ y )Nr   c                     y)Nzunknown-python-310rk   r  s    r>   r   z+test_get_abi_tag_fallback.<locals>.<lambda>  r   r@   r   c                      y)Nzunknown-pythonrk   rk   r@   r>   r   z+test_get_abi_tag_fallback.<locals>.<lambda>  r   r@   unknown_python_310r  r  s    r>   test_get_abi_tag_fallbackr&    s;    	#35ST02JK=0000r@   c                Z    |j                  |        t        d      j                          y)z>Ensure building on platforms with a space in the name succeed.zisilon onefs)	plat_nameN)r   r?   r[   )re   r   s     r>   test_platform_with_spacer)    s!    j!n-113r@   c                   | j                  |       ddddd}|j                         D ]6  \  }}t        |dd      5 }|j                  t	        |             ddd       8 t               j                          d	}t        j                  j                  |      sJ t        t        |      j                               }d
D ]  }||v rJ  dD ]  }	|	|vrJ  y# 1 sw Y   xY w)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_buildr5  #  s     h %E(  (g$g. 	("HHXg&'	( 	((  7J77>>*%%'*%..01G # 7""# + 7**+#	( 	(s   CC#	)reportedr3  )zlinux-x86_64
linux_i686)zlinux-aarch64linux_armv7lLinuxz!Only makes sense to test on Linux)reasonc                    |j                  t        dd        t        j                         }t	        |      }| |_        d|_        |j                         \  }}}||k(  sJ y )Ncalcsizec                     y)N   rk   r  s    r>   r   z'test_platform_linux32.<locals>.<lambda>b  r   r@   F)r7   struct
setuptoolsr
   r   r(  root_is_pureget_tag)r6  r3  r   rP   r;   _actuals          r>   test_platform_linux32rE  Z  s\     
K8""$D
d
CCMC;;=LAq&Xr@   c                r   dd}t        t              5  | j                  t        j                  d       d d d        | j                  t        d|       t        j                  t        d      5  dd l
}d d d        | j                  t        j                  d       dd l}y # 1 sw Y   mxY w# 1 sw Y   :xY w)	Nc                Z    | dk(  rt        d|        t        j                  | g|i |S )NctypeszNo module named )ModuleNotFoundError	importlib
__import__)rJ   argsr9   s      r>   _fake_importz$test_no_ctypes.<locals>._fake_importl  s8    8%(8&?@@##D:4:6::r@   zwheel.macosx_libfilerK  zNo module named ctypesr   r   zsetuptools.command.bdist_wheel)rJ   rH   )r   KeyErrordelitemr  modulesr7   builtinsr   raisesrI  wheel.macosx_libfilesetuptools.command.bdist_wheel)r   rM  wheelr@  s       r>   test_no_ctypesrV  k  s    ; 
(	 ACKK)?@A ,=	*2J	K $#$
 %EF)A A
$ $s   !B!/B-!B*-B6c                   |j                  |        |dz  }|j                          |dz  j                  dd       |dz  j                  dd       t        t	        |      t	        |            j                          d	d
h}t        d      5 }t        |j                               }d d d        |z
  t               k(  sJ |D cg c]  }dt	        |      v s| c}rJ y # 1 sw Y   <xY wc c}w )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   )re   r   r   r   r3  r   files_foundr3   s           r>   test_dist_info_providedr\    s    j!00HNN
&&'9G&L
 !!%'!:c(m3x=IMMO&)H 
7	8 )B"++-() k!SU**!,H
c$i0GHHH) )
 Is   C$C0C0$C-c                .   ddt        d      t        d      ddd}t        j                  j                  |t	        |             | j                  |d	z         d
}t        j                  t        |      5  t               j                          d d d        t        d      5 }t        |j                               }ddh}||k  sJ |j                  d      j                  d      }d|v sJ d|v sJ 	 d d d        y # 1 sw Y   oxY w# 1 sw Y   y xY w)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   r`  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   rw   r   )r   r   r   msgr   r[  expected_filesr   s           r>   0test_allow_grace_period_parent_directory_licenserc    s!    (%& " %
E0 KKeCM2h)*
3C	2#	>   	5	6 
6""++-(98
 ,,77<=DDVL*h66)X555
6 
6   
6 
6s   8C?$AD?DD)returnNone)T
__future__r   rQ  rJ  os.pathr2   platformr   r   r?  r  r
  
contextlibr   inspectr   zipfiler   jaraco.pathrE   r   	packagingr   r@  rT  r   r	   setuptools.distr
   setuptools.warningsr   distutils.corer   r   r   OTHER_IGNORED_FILESSETUPPY_EXAMPLEdictfromkeysrG   r?   rL   fixturera   re   rg   rs   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!  r&  r)  r5  skipifsystemrE  rV  r\  rc  rk   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 HOO )L  	*,I2*6r@   