- 3q ~ddlmZddlZddlZddlZddlZddlZddlZddl Z ddl Z ddl Z ddl m Z ddlmZddlmZddlZddlZddlmZddlZddlmZmZddlmZdd lmZdd lm Z hd Z!hd Z"d dhZ#dZ$e$ddide%&e"e#zdedddedddideddddedddddddddiided ddd!d"ed#d$d%ed&dd'd(diid)d*Z'e jd+kred,d-d.d/e'd0<d1Z(d2Z)ej*d34d5Z+ej*d6Z,ej*d7Z-d8Z.d9Z/d:Z0d;Z1d<Z2d=Z3ej45d>d?d@dAe$6dBdCfgdDZ7dEZ8dFZ9dGZ:dHZ;dIZdKdLZ?dMZ@ej45dNeAejBCeAejBOdPZDdQZEdRZFdSZGdTZHdUZIdVZJdWZKdXZLdYZMej45dZd[d\gej4NejOd]kd^_d`ZPdfdcZQddZRdeZSdS)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.txtdummy_dist-1.0.dist-info/RECORD!dummy_dist-1.0.dist-info/METADATA> COPYING.md NOTICE.rst AUTHORS.txt LICENCE.txtNOTICEAUTHORSCOPYINGLICENCELICENSE LICENSE.txtzLICENSE~zAUTHORS~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__.pyzdef main(): return)r complexdistz from setuptools import setup setup( name="headers.dist", version="0.1", description="A distribution with headers", headers=["header.h"], ) )rzheadersdist.pyzheader.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)rr#ztestrepo-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č" , Γαμα קּ 東 long_description = file: README.rst UTF-8 描述 説明) setup.cfgz README.rstz [metadata] name = licenses-dist version = 1.0 license_files = **/LICENSE vendorr)r'rsrc) dummy-distz simple-distz complex-distz headers-distzcommasinfilenames-distz unicode-distzutf8-metadata-dist licenses-distwin32u 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 )rr' extension.czabi3extension-distc Ltjdrtddnt ddi}|t |}|D]\}}t|||| |S)zHRun command in the same process so that it is easier to collect coveragerinit) stop_after script_namez%%build_meta%%) ospathexistsr r parse_config_filesritemssetattrfinalize_options)kwargsdist_objcmdattrvalues s/builddir/build/BUILD/cloudlinux-venv-1.0.10/venv/lib/python3.11/site-packages/setuptools/tests/test_bdist_wheel.pybdist_wheel_cmdr?s 7>>* % % = *0000 =*:; < <  !!! h  C||~~"" eT5!!!! Jc||}tjt|t ||S)Nprefix)mktempjaracor3buildEXAMPLESstr)tmp_path_factorynamebasedirs r> mkexamplerLs?%%d++G KhtnS\\::: Nr@session)scopec|d}|d}tD]}t||}||z }tj|5tt|t| dddn #1swxYwYtd| dDS)NrFdist bdist_dirdist_dirc34K|]}t|VdSNrH.0fnames r> zwheel_paths..s(AA#e**AAAAAAr@z*.whl) rDrGrLrEr3DirectoryStackcontextr?rHrunsortedglob)rI build_baserSrJ example_dir build_dirs r> wheel_pathsrcs2!((11J&&v..HTT 0$77 % [ ' ' ) ) 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 AA(--*@*@AAA A AAs:>CC C c"t|dS)Nr*rLrIs r> dummy_distrgs %| 4 44r@c"t|dS)Nr+rerfs r> licenses_distris % 7 77r@ctd|D}t|D] }d|jvsJdS)z0Make sure entry point scripts are not generated.c3"K|] }d|v|V dS) complex_distNrXr3s r>rZz"test_no_scripts..,GG$0F0F0F0F0F0FGGr@z.data/scripts/N)nextrinfolistfilename)rcr3entrys r>test_no_scriptsrts_ GGGGG G GD''))66u~5555566r@ctd|D}t|5}|d}dddn #1swxYwYd|vsJdS)Nc3"K|] }d|v|V dS) unicode_distNrmrns r>rZz&test_unicode_record.. ror@z!unicode_dist-0.1.dist-info/RECORDr$)rprreadencode)rcr3zfrecords r>test_unicode_recordr| s GGGGG G GD >"<==>>>>>>>>>>>>>>> ! ' ' ) )V 3 3 3 3 3 3sA  AAuMetadata-Version: 2.1 Name: helloworld Version: 42 Author-email: "John X. Ãørçeč" , Γαμα קּ 東 UTF-8 描述 説明 c|||dz }|dz }||dz td|dz Gddt }|}||||d z d}d |vsJd |vsJd |vsJdS) Nzdummy_dist.egg-infodummy_dist.dist-infozPKG-INFOutf-8encodingzdependency_links.txtc.eZdZdZdZedZdS);test_preserve_unicode_metadata..simpler_bdist_wheelz1Avoid messing with setuptools/distutils internalscdSrUrmselfs r>__init__zDtest_preserve_unicode_metadata..simpler_bdist_wheel.__init__*s Dr@cgSrUrmrs r> license_pathszItest_preserve_unicode_metadata..simpler_bdist_wheel.license_paths-sIr@N)__name__ __module__ __qualname____doc__rpropertyrrmr@r>simpler_bdist_wheelr'sD??          r@rMETADATAu"Author-email: "John X. Ãørçeč"uΓαμα קּ 東 r&)chdirmkdir write_text UTF8_PKG_INFOtouchregg2dist read_text) monkeypatchtmp_pathegginfodistinforcmd_objmetadatas r>test_preserve_unicode_metadatarsh..G00H MMOOO z%%mg%FFF %%,,...k"!##G Wh''':%00'0BBH /8 ; ; ; ; ( * * * * H , , , , , ,r@c`||tt|t d5}dt D}t |t|zksJ ddddS#1swxYwYdS)NrR$dist/dummy_dist-1.0-py3-none-any.whlch|]}d|zSz"dummy_dist-1.0.dist-info/licenses/rmrWs r> z(test_licenses_default..>-    15 8   r@) rr?rHr]rDEFAULT_LICENSE_FILESsetnamelist DEFAULT_FILESrgrrwf license_filess r>test_licenses_defaultr:sj!!!c(mm,,,00222 7 8 8CB  .   2;;==!!]]%BBBBBB CCCCCCCCCCCCCCCCCCsAB##B'*B'c|ddd||tt |t d5}dh}t|t|zksJ ddddS#1swxYwYdS)Nr'z.[metadata] license_file=licenses_dir/DUMMYFILErrrrz8dummy_dist-1.0.dist-info/licenses/licenses_dir/DUMMYFILE joinpathrrr?rHr]rrrrrs r>test_licenses_deprecatedrEs $$//9G0j!!!c(mm,,,00222 7 8 8CBST 2;;==!!]]%BBBBBBCCCCCCCCCCCCCCCCCCs>3B??CC) config_fileconfig)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||tt |t d5}ddD}t|t|zksJ| d d}d |vsJd |vsJ ddddS#1swxYwYdS) Nrrrrch|]}d|zSrrmrWs r>rz)test_licenses_override..drr@>licenses_dir/DUMMYFILErrutf8z$License-File: licenses_dir/DUMMYFILELicense-File: LICENSE) rrrr?rHr]rrrrrxdecode)rgrrrrrrrs r>test_licenses_overriderRs] $$///IIIj!!!c(mm,,,00222 7 8 83B  >   2;;==!!]]%BBBBB77>??FFvNN5AAAA&(22222333333333333333333s>A0C<<DDc||tt|t t jdtd5}dtD}ddh}t| ||zksJ| d d}d |vsJd |vsJ ddddS#1swxYwYdS) NrrPz'dist/licenses_dist-1.0-py3-none-any.whlc:h|]}|ddS)dummy_ licenses_)replace)rXrJs r>rz:test_licenses_preserve_folder_structure..ss&WWWh <<WWWr@z,licenses_dist-1.0.dist-info/licenses/LICENSEz7licenses_dist-1.0.dist-info/licenses/src/vendor/LICENSEz$licenses_dist-1.0.dist-info/METADATArz License-File: src/vendor/LICENSEr) rr?rHr]printr2listdirrrrrrxr)rirrr default_filesrrs r>'test_licenses_preserve_folder_structurernsNm$$$c(mm,,,00222 "*V   : ; ; 3rWWWWW : E 2;;==!!]]%BBBBB77ABBII&QQ1X====&(22222 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3s5A4C77C;>C;c|ddd||tt |t d5}t|tksJ ddddS#1swxYwYdS)Nr'z[metadata] license_files= rrrrr)rgrrrs r>test_licenses_disabledr~s $$//&0j!!!c(mm,,,00222 7 8 83B2;;==!!]22222333333333333333333s>-B99B=B=c<||tt|dt d5}t |}d|vsJd|vsJ ddddS#1swxYwYdS)N2rR build_numberz&dist/dummy_dist-1.0-2-py3-none-any.whlrr)rr?rHr]rrr)rgrrr filenamess r>test_build_numberrsj!!!c(mm#>>>BBDDD 9 : :@b && 0I====2i?????@@@@@@@@@@@@@@@@@@s.BBBc8||tjtd5t t |ddddn #1swxYwYtj dsJdS)Nz.*universal is deprecatedmatchT)rR universalz(dist/dummy_dist-1.0-py2.py3-none-any.whl) rpytestwarnsr r?rHr]r2r3r4)rgrrs r>test_universal_deprecatedrsj!!! 2:U V V VGG#h--4@@@DDFFFGGGGGGGGGGGGGGG 7>>D E EEE EEEs1A..A25A2a&#include 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); } ufrom __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}|dz td|dz td|d}|d}||t t|t|d S) z=Test that building a binary wheel with the limited ABI works.extension_distrrrr-rFrPrQN) rDrEXTENSION_SETUPPYEXTENSION_EXAMPLErrr?rHr])rrrI source_dirrbrSs r>test_limited_abirs "(()9::J*(():W(MMM-++,=+PPP!!'**I  ((Hj!!!c)nns8}}EEEIIKKKKKr@ct|d}tjt||||t j|D]H\}}}|D]?}t jt j ||tj @It dS)Ndummy)rHrshutilcopytreerr2walkchmodr3joinstatS_IREADr?r])rgrrrKroot_dirsfilesrYs r>test_build_from_readonly_treers(##G,,--G OC OOW---g!gg..>>eU > >E HRW\\$.. = = = = >r@)option compress_type)idscj||tt||t d5}t |}d|vsJd|vsJ|jD]}|j|ksJ ddddS#1swxYwYdS)N)rR compressionrrr) rr?rHr]rrrfilelistr)rgrrrrrrzinfos r>test_compressionrs j!!!c(mm@@@DDFFF 7 8 88B && 0I====2i????[ 8 8E&-77777 8 888888888888888888sAB((B,/B,c|D]c}t|5}td|jD}||}d|vsJ dddn #1swxYwYddS)Nc3NK|] }|jd|V!dS)WHEELN)rrendswith)rXfns r>rZz.test_wheelfile_line_endings..s7WWB9M9Mg9V9VWRWWWWWWr@ )rrprrx)rcr3r wheelfilewheelfile_contentss r>test_wheelfile_line_endingsrs33 T]] 3bWW"+WWWWWI!#!3!3  222222 3 3 3 3 3 3 3 3 3 3 3 3 3 3 333s:AA "A c<|dd||tt|dt d5}|jD]}|jdksJ ddddS#1swxYwYdS)NSOURCE_DATE_EPOCH02arz'dist/dummy_dist-1.0-2a-py3-none-any.whl)irrrr)setenvrr?rHr]rr date_time)rgrrrrs r>test_unix_epoch_timestampsrs*C000j!!!c(mm$???CCEEE : ; ;z*test_get_abi_tag_windows..$r@get_config_varcdS)Nzcp313-win_amd64rmxs r>rz*test_get_abi_tag_windows..s?Pr@cp313gettotalrefcountcdS)Nrrmrmr@r>rz*test_get_abi_tag_windows..sr@Fcp313dcdS)Nzcp313t-win_amd64rmrs r>rz*test_get_abi_tag_windows..s?Qr@cp313tdcp313t)r7r sysconfigr sysdelattrrs r>test_get_abi_tag_windowsrs0,,??? #35P5PQQQ ==G # # # #/EBBB ==H $ $ $ $ #35Q5QRRR ==I % % % %/000 ==H $ $ $ $ $ $r@c|tdd|tddtdksJdS)NrcdSNpprmrmr@r>rz+test_get_abi_tag_pypy_old..rr@rcdS)Nz pypy36-pp73rmrs r>rz+test_get_abi_tag_pypy_old..s}r@ pypy36_pp73)r7rrr rs r>test_get_abi_tag_pypy_oldrsU0,,??? #35L5LMMM ==M ) ) ) ) ) )r@c|tdd|tddtdksJdS)NrcdS)Nzpypy37-pp73-darwinrmrs r>rz+test_get_abi_tag_pypy_new.. ?Sr@rcdSrrmrmr@r>rz+test_get_abi_tag_pypy_new.. rr@ pypy37_pp73r7rrr rs r>test_get_abi_tag_pypy_newr# sU #35S5STTT0,,??? ==M ) ) ) ) ) )r@c|tdd|tddtdksJdS)NrcdS)Nz"graalpy231-310-native-x86_64-linuxrmrs r>rz*test_get_abi_tag_graalpy..s/Sr@rcdS)Ngraalpyrmrmr@r>rz*test_get_abi_tag_graalpy..s)r@graalpy231_310_nativer"rs r>test_get_abi_tag_graalpyr)sa#%S%S02C2CDDD ==3 3 3 3 3 3 3r@c|tdd|tddtdksJdS)NrcdS)Nzunknown-python-310rmrs r>rz+test_get_abi_tag_fallback..rr@rcdS)Nzunknown-pythonrmrmr@r>rz+test_get_abi_tag_fallback..s:Jr@unknown_python_310r"rs r>test_get_abi_tag_fallbackr.sX #35S5STTT02J2JKKK ==0 0 0 0 0 0 0r@ct||tddS)z>Ensure building on platforms with a space in the name succeed.z isilon onefs) plat_nameN)rr?r])rgrs r>test_platform_with_spacer1s9j!!!n---1133333r@c||ddddd}|D]Q\}}t|dd5}|t |dddn #1swxYwYRt d }tj |sJtt| }d D]}||vsJ d D]} | |vsJ dS) 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)rr'zfile.txtzhello.hwrrNz#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/METADATAztest-1.0+what.dist-info/WHEEL)ztest.data/headers/hello.hz'test-1.0.data/data/hello/world/file.txtztest.dist-info/METADATAztest-1.0.dist-info/WHEEL) rr6openwriterr?r]r2r3r4rrr) rrrfilecontentfh wheel_pathentriesexpected not_expecteds r>test_data_dir_with_tag_buildr=#sh %  E((( g $g . . . (" HHXg&& ' ' ' ( ( ( ( ( ( ( ( ( ( ( ( ( ( (7J 7>>* % %%% %'*%%..0011G## 7"""""++ 7***** ++s#A77A; >A; )reportedr;)z linux-x86_64 linux_i686)z linux-aarch64 linux_armv7lLinuxz!Only makes sense to test on Linux)reasonc|tddtj}t |}||_d|_|\}}}||ksJdS)NcalcsizecdS)Nrmrs r>rz'test_platform_linux32..bsar@F)r7struct setuptoolsr rr0 root_is_pureget_tag)r>r;rrPr;_actuals r>test_platform_linux32rMZsr KK888  " $ $D d  CCMC;;==LAq& X      r@returnNonecd d}tt5|tjddddn #1swxYwY|t d|tjtd5ddl }dddn #1swxYwY|tjd ddl }dS) NrJrHc\|dkrtd|tj|g|Ri|S)NctypeszNo module named )ModuleNotFoundError importlib __import__)rJargsr9s r> _fake_importz$test_no_ctypes.._fake_importlsE 8  %&?&?&?@@ @#D:4:::6:::r@zwheel.macosx_libfilerUzNo module named ctypesrrzsetuptools.command.bdist_wheel)rJrH) rKeyErrordelitemrmodulesr7builtinsrraisesrSwheel.macosx_libfilesetuptools.command.bdist_wheel)rrWwheelrHs r>test_no_ctypesr`ksd;;;; (  AACK)?@@@AAAAAAAAAAAAAAA, === *2J K K K$$####$$$$$$$$$$$$$$$  %EFFF))))))s#!AA  A BB Bc&|||dz }||dz dd|dz ddtt |t |d d h}t d 5}t|}dddn #1swxYwY||z tksJd |DrJdS) Nr~rzname: helloworldrrFOObar)rR dist_info_dirzdummy_dist-1.0.dist-info/FOOrrc4g|]}dt|v|S)zegg-inforVrns r> z+test_dist_info_provided..s(HHH c$ii0G0G0G0G0Gr@) rrrr?rHr]rrr)rgrrrr;r files_founds r>test_dist_info_providedrhs\j!!!00H NN &&'9G&LLL !!%'!:::c(mm3x==IIIMMOOO&)H 7 8 8)B"++--(( ))))))))))))))) k !SUU * * * *HHHHHHH HHHs3"C!!C%(C%cddtdtdddd}tj|t |||d z d }t jt| 5t dddn #1swxYwYtd 5}t| }d dh}||ksJ|dd}d|vsJd|vsJ ddddS#1swxYwYdS)Nzparent 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)zpyproject.tomlr'VERSION)rz NOTICE.txtpythonrBrlz'Pattern '../.*.txt' cannot contain '..'rz"dist/test_proj-42-py3-none-any.whlz+test_proj-42.dist-info/licenses/LICENSE.txtz*test_proj-42.dist-info/licenses/NOTICE.txtztest_proj-42.dist-info/METADATArzLicense-File: LICENSE.txtzLicense-File: NOTICE.txt)rrEr3rFrHrrrr r?r]rrrrxr)rrrmsgrrgexpected_filesrs r>0test_allow_grace_period_parent_directory_licenseros(%&"%    E0 KeCMM222h)*** 3C 2# > > >                 5 6 6 6""++--(( 9 8 ,,,,77<==DDVLL*h6666)X55555 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6s%!B55B9<B9A"D??EE)rNrO)T __future__rr[rTos.pathr2platformrrrGrr contextlibrinspectrzipfiler jaraco.pathrEr packagingrrHr^rr setuptools.distr setuptools.warningsr distutils.corer rrOTHER_IGNORED_FILESSETUPPY_EXAMPLEdictfromkeysrGr?rLfixturercrgrirtr|rrrrmark parametrizerrrrrrrrfilterwarningsrrlistsupported_compressionsr6rrrrrr#r)r.r1r=skipifsystemrMr`rhrormr@r>rs""""""  CCCCCCCC((((((<<<<<<$$$$$$   $$b) ---0CCR H H H     H   2&';<5:H    "H    $&R88  -, '0H    (*"EE"X   ,  X    y"o   iB B J<7H   :O%&&H !",    i    B B!  B555888666444 ---8CCC C C CLJ   # #M       3 3   3 3 3 3 333@@@FFF& KLLL   D + 1 1 3 344 [ /00 88  8333<<< % % %*** *** 444111 444 4+4+4+n#%FGHO )L ****,III2*6*6*6*6*6r@