
    5h+Z                    ~   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%&                    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+k    r ed,          d-d.d/e'd0<   d1 Z(d2 Z) ej*        d34          d5             Z+ej*        d6             Z,ej*        d7             Z-d8 Z.d9 Z/d:Z0d; Z1d< Z2d= Z3ej4        5                    d>d?d@dAe$6                    dBdC          fg          dD             Z7dE Z8dF Z9dG Z:dH Z;dIZ<dJZ=ej4        >                    dK          dL             Z?dM Z@ej4        5                    dN eAejB        C                                           eAejB                  O          dP             ZDdQ ZEdR ZFdS ZGdT ZHdU ZIdV ZJdW ZKdX ZLdY ZMej4        5                    dZd[d\g          ej4        N                     ejO                    d]k    d^_          d`                         ZPdfdcZQdd ZRde ZSdS )g    )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                 L   t           j                            d          rt          dd          nt	          ddi          }|                                 t          |          }|                                 D ]\  }}t          |||           |	                                 |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        Alib/python3.11/site-packages/setuptools/tests/test_bdist_wheel.pybdist_wheel_cmdr?      s     7>>*%%	=	*0000=*:;<< 
 !!!
h

C||~~ " "eT5!!!!J    c                    |                      |          }t          j                            t          |         t          |                     |S )Nprefix)mktempjaracor3   buildEXAMPLESstr)tmp_path_factorynamebasedirs      r>   	mkexamplerL      s?    %%d++G
KhtnS\\:::Nr@   session)scopec                   |                      d          }|                      d          }t          D ]}t          | |          }||z  }t          j                                                            |          5  t          t          |          t          |                    	                                 d d d            n# 1 swxY w Y   t          d |                    d          D                       S )NrF   dist	bdist_dirdist_dirc              3  4   K   | ]}t          |          V  d S NrH   .0fnames     r>   	<genexpr>zwheel_paths.<locals>.<genexpr>   s(      AA#e**AAAAAAr@   z*.whl)rD   rG   rL   rE   r3   DirectoryStackcontextr?   rH   runsortedglob)rI   
build_baserS   rJ   example_dir	build_dirs         r>   wheel_pathsrc      s2   !((11J&&v..H T T 0$77%	[''))11+>> 	T 	Tc)nns8}}MMMQQSSS	T 	T 	T 	T 	T 	T 	T 	T 	T 	T 	T 	T 	T 	T 	T AA(--*@*@AAAAAAs   :>CC	C	c                "    t          | d          S )Nr*   rL   rI   s    r>   
dummy_distrg      s    %|444r@   c                "    t          | d          S )Nr+   re   rf   s    r>   licenses_distri      s    %777r@   c                    t          d | D                       }t          |                                          D ]}d|j        vsJ dS )z0Make sure entry point scripts are not generated.c              3  "   K   | ]
}d |v |V  dS )complex_distN rX   r3   s     r>   rZ   z"test_no_scripts.<locals>.<genexpr>  ,      GG$0F0F0F0F0F0FGGr@   z.data/scripts/N)nextr   infolistfilename)rc   r3   entrys      r>   test_no_scriptsrt     s_    GGGGGGGD'')) 6 6u~555556 6r@   c                    t          d | D                       }t          |          5 }|                    d          }d d d            n# 1 swxY w Y   d                                |v sJ d S )Nc              3  "   K   | ]
}d |v |V  dS )unicode_distNrm   rn   s     r>   rZ   z&test_unicode_record.<locals>.<genexpr>  ro   r@   z!unicode_dist-0.1.dist-info/RECORDr$   )rp   r   readencode)rc   r3   zfrecords       r>   test_unicode_recordr|     s    GGGGGGGD	 >"<==> > > > > > > > > > > > > > > !''))V333333s   A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                   |                      |           |dz  }|dz  }|                                 |dz                      t          d           |dz                                    G d dt
                    } |            }|                    ||           |d	z                      d          }d
|v sJ d|v sJ d|v sJ d S )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dS );test_preserve_unicode_metadata.<locals>.simpler_bdist_wheelz1Avoid messing with setuptools/distutils internalsc                    d S rU   rm   selfs    r>   __init__zDtest_preserve_unicode_metadata.<locals>.simpler_bdist_wheel.__init__*  s    Dr@   c                    g S rU   rm   r   s    r>   license_pathszItest_preserve_unicode_metadata.<locals>.simpler_bdist_wheel.license_paths-  s    Ir@   N)__name__
__module____qualname____doc__r   propertyr   rm   r@   r>   simpler_bdist_wheelr   '  sD        ??	 	 	 
	 	 
	 	 	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MMOOOz%%mg%FFF%%,,...    k    "!##GWh''':%00'0BBH/8;;;;(**** H,,,,,,r@   c                `   |                     |            t          t          |                                                     t	          d          5 }d t
          D             }t          |                                          t          |z  k    sJ 	 d d d            d S # 1 swxY w Y   d S )NrR   $dist/dummy_dist-1.0-py3-none-any.whlc                    h | ]}d |z   S z"dummy_dist-1.0.dist-info/licenses/rm   rW   s     r>   	<setcomp>z(test_licenses_default.<locals>.<setcomp>>  -     
 
 
 158
 
 
r@   )	r   r?   rH   r]   r   DEFAULT_LICENSE_FILESsetnamelistDEFAULT_FILESrg   r   r   wflicense_filess        r>   test_licenses_defaultr   :  s   j!!!c(mm,,,00222	7	8	8 CB
 
.
 
 
 2;;==!!]]%BBBBBBC C C C C C C C C C C C C C C C C Cs   AB##B'*B'c                   |                      d                              dd           |                    |            t          t	          |                                                     t          d          5 }dh}t          |                                          t          |z  k    sJ 	 d d d            d S # 1 swxY w Y   d S )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   r   s        r>   test_licenses_deprecatedr   E  s   $$//9G 0    j!!!c(mm,,,00222	7	8	8 CBST2;;==!!]]%BBBBBBC C C C C C C C C C C C C C C C C Cs   >3B??CC)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                   |                      |                              |d           |                    |            t          t	          |                                                     t          d          5 }d dD             }t          |                                          t          |z  k    sJ |
                    d                              d          }d	|v sJ d
|v sJ 	 d d d            d S # 1 swxY w Y   d S )Nr   r   r   r   c                    h | ]}d |z   S r   rm   rW   s     r>   r   z)test_licenses_override.<locals>.<setcomp>d  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   rx   decode)rg   r   r   r   r   r   r   r   s           r>   test_licenses_overrider   R  s]    $$///IIIj!!!c(mm,,,00222	7	8	8 3B
 
>
 
 
 2;;==!!]]%BBBBB77>??FFvNN5AAAA&(222223 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3s   >A0C<<D D c                   |                     |            t          t          |                                                     t	          t          j        d                     t          d          5 }d t          D             }ddh}t          |
                                          ||z  k    sJ |                    d                              d          }d	|v sJ d
|v sJ 	 d d d            d S # 1 swxY w Y   d S )Nr   rP   z'dist/licenses_dist-1.0-py3-none-any.whlc                :    h | ]}|                     d d          S )dummy_	licenses_)replace)rX   rJ   s     r>   r   z:test_licenses_preserve_folder_structure.<locals>.<setcomp>s  s&    WWWh<<WWWr@   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   r   r   rx   r   )ri   r   r   r   default_filesr   r   s          r>   'test_licenses_preserve_folder_structurer   n  sN   m$$$c(mm,,,00222	"*V

	:	;	; 	3rWWWWW:E
 2;;==!!]]%BBBBB77ABBII&QQ1X====&(22222	3 	3 	3 	3 	3 	3 	3 	3 	3 	3 	3 	3 	3 	3 	3 	3 	3 	3s   5A4C77C;>C;c                   |                      d                              dd           |                    |            t          t	          |                                                     t          d          5 }t          |                                          t          k    sJ 	 d d d            d S # 1 swxY w Y   d S )Nr'   z[metadata]
license_files=
r   r   r   r   r   )rg   r   r   r   s       r>   test_licenses_disabledr   ~  s    $$//& 0    j!!!c(mm,,,00222	7	8	8 3B2;;==!!]222223 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3s   >-B99B= B=c                <   |                     |            t          t          |          d                                           t	          d          5 }t          |                                          }d|v sJ d|v sJ 	 d d d            d S # 1 swxY w Y   d S )N2rR   build_numberz&dist/dummy_dist-1.0-2-py3-none-any.whlr   r   )r   r?   rH   r]   r   r   r   )rg   r   r   r   	filenamess        r>   test_build_numberr     s    j!!!c(mm#>>>BBDDD	9	:	: @b&&	0I====2i?????@ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @s   .BBBc                8   |                     |            t          j        t          d          5  t	          t          |          d                                           d d d            n# 1 swxY w Y   t          j        	                    d          sJ d S )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   )rg   r   r   s      r>   test_universal_deprecatedr     s    j!!!	2:U	V	V	V G G#h--4@@@DDFFFG G G G G G G G G G G G G G G 7>>DEEEEEEEs   1A..A25A2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                   |                     d          }|dz                      t          d           |dz                      t          d           |                    d          }|                    d          }|                     |           t          t          |          t          |                                                     d	S )
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_dirrb   rS   s         r>   test_limited_abir     s    
 "(()9::J*(():W(MMM-++,=+PPP!!'**I  ((Hj!!!c)nns8}}EEEIIKKKKKr@   c                   t          |                    d                    }t          j        t          |           |           |                    |           t          j        |          D ]H\  }}}|D ]?}t          j        t
          j        	                    ||          t          j                   @It                                                       d S )Ndummy)rH   r   shutilcopytreer   r2   walkchmodr3   joinstatS_IREADr?   r]   )rg   r   r   rK   root_dirsfilesrY   s           r>   test_build_from_readonly_treer     s    (##G,,--G
OC
OOW---g !gg.. > >eU 	> 	>EHRW\\$..====	> r@   )optioncompress_type)idsc                j   |                     |            t          t          |          |                                           t	          d          5 }t          |                                          }d|v sJ d|v sJ |j        D ]}|j        |k    sJ 	 d d d            d S # 1 swxY w Y   d S )N)rR   compressionr   r   r   )	r   r?   rH   r]   r   r   r   filelistr   )rg   r   r   r   r   r   r   zinfos           r>   test_compressionr     s    j!!!c(mm@@@DDFFF	7	8	8 8B&&	0I====2i????[ 	8 	8E&-77777	8	8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8s   AB((B,/B,c                    | D ]c}t          |          5 }t          d |j        D                       }|                    |          }d|vsJ 	 d d d            n# 1 swxY w Y   dd S )Nc              3  N   K   | ] }|j                             d           |V  !dS )WHEELN)rr   endswith)rX   fns     r>   rZ   z.test_wheelfile_line_endings.<locals>.<genexpr>  s7      WWB9M9Mg9V9VWRWWWWWWr@      )r   rp   r   rx   )rc   r3   r   	wheelfilewheelfile_contentss        r>   test_wheelfile_line_endingsr     s     3 3T]] 	3bWW"+WWWWWI!#!3!3 222222	3 	3 	3 	3 	3 	3 	3 	3 	3 	3 	3 	3 	3 	3 	33 3s   :AA	"A	c                <   |                     dd           |                    |            t          t          |          d                                           t          d          5 }|j        D ]}|j        dk    sJ 	 d d d            d S # 1 swxY w Y   d S )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)rg   r   r   r   r   s        r>   test_unix_epoch_timestampsr     s    *C000j!!!c(mm$???CCEEE	:	;	; <r[ 	< 	<E?&;;;;;;	<< < < < < < < < < < < < < < < < < <s   +BBBc                   |                      t          dd            |                      t          dd            t                      dk    sJ |                      t          dd d           t                      d	k    sJ |                      t          dd
            t                      dk    sJ |                     t          d           t                      dk    sJ d S )Ninterpreter_namec                     dS )Ncprm   rm   r@   r>   <lambda>z*test_get_abi_tag_windows.<locals>.<lambda>      $ r@   get_config_varc                    dS )Nzcp313-win_amd64rm   xs    r>   r  z*test_get_abi_tag_windows.<locals>.<lambda>  s    ?P r@   cp313gettotalrefcountc                     dS )Nr   rm   rm   r@   r>   r  z*test_get_abi_tag_windows.<locals>.<lambda>  s     r@   Fcp313dc                    dS )Nzcp313t-win_amd64rm   r  s    r>   r  z*test_get_abi_tag_windows.<locals>.<lambda>  s    ?Q r@   cp313tdcp313t)r7   r   	sysconfigr	   sysdelattrr   s    r>   test_get_abi_tag_windowsr    s    0,,???	#35P5PQQQ==G####/EBBB==H$$$$	#35Q5QRRR==I%%%%/000==H$$$$$$r@   c                    |                      t          dd            |                      t          dd            t                      dk    sJ d S )Nr  c                     dS Npprm   rm   r@   r>   r  z+test_get_abi_tag_pypy_old.<locals>.<lambda>  r  r@   r  c                    dS )Nzpypy36-pp73rm   r  s    r>   r  z+test_get_abi_tag_pypy_old.<locals>.<lambda>  s    } r@   pypy36_pp73)r7   r   r  r	   r  s    r>   test_get_abi_tag_pypy_oldr    sU    0,,???	#35L5LMMM==M))))))r@   c                    |                      t          dd            |                      t          dd            t                      dk    sJ d S )Nr  c                    dS )Nzpypy37-pp73-darwinrm   r  s    r>   r  z+test_get_abi_tag_pypy_new.<locals>.<lambda>
      ?S r@   r  c                     dS r  rm   rm   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#  	  sU    	#35S5STTT0,,???==M))))))r@   c                    |                      t          dd            |                      t          dd            t                      dk    sJ d S )Nr  c                    dS )Nz"graalpy231-310-native-x86_64-linuxrm   r  s    r>   r  z*test_get_abi_tag_graalpy.<locals>.<lambda>  s    /S r@   r  c                     dS )Ngraalpyrm   rm   r@   r>   r  z*test_get_abi_tag_graalpy.<locals>.<lambda>  s    ) r@   graalpy231_310_nativer"  r  s    r>   test_get_abi_tag_graalpyr)    sa    #%S%S   02C2CDDD==3333333r@   c                    |                      t          dd            |                      t          dd            t                      dk    sJ d S )Nr  c                    dS )Nzunknown-python-310rm   r  s    r>   r  z+test_get_abi_tag_fallback.<locals>.<lambda>  r  r@   r  c                     dS )Nzunknown-pythonrm   rm   r@   r>   r  z+test_get_abi_tag_fallback.<locals>.<lambda>  s    :J r@   unknown_python_310r"  r  s    r>   test_get_abi_tag_fallbackr.    sX    	#35S5STTT02J2JKKK==0000000r@   c                t    |                     |            t          d                                           dS )z>Ensure building on platforms with a space in the name succeed.zisilon onefs)	plat_nameN)r   r?   r]   )rg   r   s     r>   test_platform_with_spacer1    s9    j!!!n---1133333r@   c                   |                      |           ddddd}|                                D ]Q\  }}t          |dd          5 }|                    t	          |                     ddd           n# 1 swxY w Y   Rt                                                       d	}t          j        	                    |          sJ t          t          |                                                    }d
D ]}||v sJ 	dD ]}	|	|vsJ 	dS )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_buildr=  #  s    h % E(  ( (g$g... 	("HHXg&&'''	( 	( 	( 	( 	( 	( 	( 	( 	( 	( 	( 	( 	( 	( 	(  7J7>>*%%%%%'*%%..0011G # # 7""""" + + 7*****+ +s   #A77A;	>A;	)reportedr;  )zlinux-x86_64
linux_i686)zlinux-aarch64linux_armv7lLinuxz!Only makes sense to test on Linux)reasonc                    |                     t          dd            t          j                    }t	          |          }| |_        d|_        |                                \  }}}||k    sJ d S )Ncalcsizec                    dS )N   rm   r  s    r>   r  z'test_platform_linux32.<locals>.<lambda>b  s    a r@   F)r7   struct
setuptoolsr
   r   r0  root_is_pureget_tag)r>  r;  r   rP   r;   _actuals          r>   test_platform_linux32rM  Z  sr     
KK888"$$D
d

CCMC;;==LAq&Xr@   returnNonec                   d
d}t          t                    5  |                     t          j        d           d d d            n# 1 swxY w Y   |                     t          d|           t          j        t          d          5  dd l
}d d d            n# 1 swxY w Y   |                     t          j        d	           dd l}d S )NrJ   rH   c                \    | dk    rt          d|            t          j        | g|R i |S )NctypeszNo module named )ModuleNotFoundError	importlib
__import__)rJ   argsr9   s      r>   _fake_importz$test_no_ctypes.<locals>._fake_importl  sE    8%&?&?&?@@@#D:4:::6:::r@   zwheel.macosx_libfilerU  zNo module named ctypesr   r   zsetuptools.command.bdist_wheel)rJ   rH   )r   KeyErrordelitemr  modulesr7   builtinsr   raisesrS  wheel.macosx_libfilesetuptools.command.bdist_wheel)r   rW  wheelrH  s       r>   test_no_ctypesr`  k  sd   ; ; ; ; 
(		 A ACK)?@@@A A A A A A A A A A A A A A A ,===	*2J	K	K	K $ $####$ $ $ $ $ $ $ $ $ $ $ $ $ $ $
 %EFFF))))))s#   !AA
A
BB Bc                &   |                     |            |dz  }|                                 |dz                      dd           |dz                      dd           t          t	          |          t	          |                                                     d	d
h}t          d          5 }t          |                                          }d d d            n# 1 swxY w Y   ||z
  t                      k    sJ d |D             rJ d S )Nr~   r   zname: helloworldr   r   FOObar)rR   dist_info_dirzdummy_dist-1.0.dist-info/FOOr   r   c                4    g | ]}d t          |          v |S )zegg-inforV   rn   s     r>   
<listcomp>z+test_dist_info_provided.<locals>.<listcomp>  s(    HHH
c$ii0G0G0G0G0Gr@   )	r   r   r   r?   rH   r]   r   r   r   )rg   r   r   r   r;  r   files_founds          r>   test_dist_info_providedrh    s\   j!!!00HNN
&&'9G&LLL
 !!%'!:::c(mm3x==IIIMMOOO&)H 
7	8	8 )B"++--(() ) ) ) ) ) ) ) ) ) ) ) ) ) ) k!SUU****HHHHHHHHHHs   3"C!!C%(C%c                   ddt          d          t          d          ddd}t          j                            |t	          |                     |                     |d	z             d
}t          j        t          |          5  t                      
                                 d d d            n# 1 swxY w Y   t          d          5 }t          |                                          }ddh}||k    sJ |                    d                              d          }d|v sJ d|v sJ 	 d d d            d S # 1 swxY w Y   d S )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   rl  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   rx   r   )r   r   r   msgr   rg  expected_filesr   s           r>   0test_allow_grace_period_parent_directory_licensero    s    (%&  "  %
 
 E0 KeCMM222h)***
3C	2#	>	>	>                                 	5	6	6 
6""++--((98
 ,,,,77<==DDVLL*h6666)X55555
6 
6 
6 
6 
6 
6 
6 
6 
6 
6 
6 
6 
6 
6 
6 
6 
6 
6s%   !B55B9<B9A"D??EE)rN  rO  )T
__future__r   r[  rT  os.pathr2   platformr   r   rG  r  r  
contextlibr   inspectr   zipfiler   jaraco.pathrE   r   	packagingr   rH  r^  r   r	   setuptools.distr
   setuptools.warningsr   distutils.corer   r   r   OTHER_IGNORED_FILESSETUPPY_EXAMPLEdictfromkeysrG   r?   rL   fixturerc   rg   ri   rt   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.  r1  r=  skipifsystemrM  r`  rh  ro  rm   r@   r>   <module>r     s   " " " " " "           



                                      C C C C C C C C ( ( ( ( ( ( < < < < < < $ $ $ $ $ $        $$b)  ---0CCR
H
H H	
 
    H
 
2 &';<5 : H	
 
  " H
 
 $&R88
 

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