hyb
2025-11-10 e0a856b5072c5a09f3f6de6da85abf90e00ee704
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
Ë
Añúhj7ãó´—ddlZddlZddlZddlZddlmZddlmZddlZ    ddl
Z
ddl m Z ddl mZddlmZd„Zd    „Zd
„Ze
j(j+d d ed ¬«d„«Zed«ddddddœdœed«dœZd„Ze
j(j5d«d„«Zed«ddddddœddidœidddœed«d œZd!„ZGd"„d#«Zd&d$„Zd%„Z y)'éN)ÚPath)ÚMock)ÚSetuptoolsDeprecationWarning)Ú Distributioné)ÚDALSc    ó¨—ttddgdgddgi¬««}tjd«|j    «|j «y)z†
    Directories matching the glob in package_data should
    not be included in the package data.
 
    Regression test for #261.
    úsetup.pyÚbuild_pyÚzpath/*©Ú script_nameÚ script_argsÚpackagesÚ package_dataz path/subpathN)rÚdictÚosÚmakedirsÚparse_command_lineÚ run_commands©Ú
tmpdir_cwdÚdists  úQH:\Change_password\venv_build\Lib\site-packages\setuptools/tests/test_build_py.pyÚ%test_directories_in_package_data_globrsS€ô Ü Ø"Ø#˜ ؐTؘx˜jÐ)ô        
ó €Dô‡KKÔØ×ÑÔØ×ÑÕóc    óN—ttddgdgddgi¬««}tjd«t    dd«j «|j «|j«tjtjd    «j«sJd
«‚y ) zt
    Files matching recursive globs (**) in package_data should
    be included in the package data.
 
    #1806
    r
r r z path/**/datar zpath/subpath/subsubpathzpath/subpath/subsubpath/dataÚwbz&build/lib/path/subpath/subsubpath/datazFile is not includedN) rrrrÚopenÚcloserrÚstatÚS_ISREGÚst_moders  rÚ#test_recursive_in_package_data_globr$%s•€ô Ü Ø"Ø#˜ ؐTؘ~Ð.Ð/ô        
ó €Dô‡KKÐ)Ô*ÜР   '¨Ó.×4Ñ4Ô6à×ÑÔØ×ÑÔä <‰<œŸ™РHÓI×QÑQÔ RðØóÑ Rrc    óÊ—ttddgdgddgi¬««}tjd«t    dd«j «t    dd«j «tj dtj«tj dtj«|j«|j«tjd    «y
) z·
    Ensure read-only flag is not preserved in copy
    for package modules and package data, as that
    causes problems with deleting read-only files on
    Windows.
 
    #1451
    r
r Úpkgzdata.datr úpkg/__init__.pyrz pkg/data.datÚbuildN) rrrrrr Úchmodr!ÚS_IREADrrÚshutilÚrmtreers  rÚtest_read_onlyr-?s«€ô Ü Ø"Ø#˜ ؐWØ * Ð.ô        
ó €Dô‡KKÔÜР   ˜DÓ!×'Ñ'Ô)܈˜Ó×$Ñ$Ô&܇HHÐ ¤§ ¡ Ô-܇HHˆ^œTŸ\™\Ô*Ø×ÑÔØ×ÑÔÜ
‡MM'Õrzplatform.system() == "Windows"z-On Windows, files do not have executable bitsT)ÚreasonÚraisesÚstrictc    óª—ttddgdgddgi¬««}tjd«t    dd«j «t    dd«j «tj dd    «|j«|j«tjd
«jtjzsJd «‚y ) zv
    Ensure executable bit is preserved in copy for
    package data, as users rely on it for scripts.
 
    #2041
    r
r r&zrun-mer r'rz
pkg/run-meiÀzbuild/lib/pkg/run-mezScript is not executableN) rrrrrr r)rrr!r#ÚS_IEXECrs  rÚtest_executable_datar3Zs´€ô Ü Ø"Ø#˜ ؐWØ ( Ð,ô        
ó €Dô‡KKÔÜР   ˜DÓ!×'Ñ'Ô)܈tÓ×"Ñ"Ô$܇HHˆ\˜5Ô!à×ÑÔØ×ÑÔä 7‰7Ð)Ó *× 2Ñ 2´T·\±\Ò AðØ"óÑ ArzÒ
        [metadata]
        name = mypkg
        version = 42
 
        [options]
        include_package_data = True
        packages = find:
 
        [options.packages.find]
        exclude = *.tests*
        r )ú __init__.pyz test_mypkg.pyz test_file.txt)r4úresource_file.txtÚtestszŒ
        global-include *.py *.txt
        global-exclude *.py[cod]
        prune dist
        prune build
        prune *.egg-info
        )z    setup.cfgÚmypkgú MANIFEST.incó—tjjt«t    ddi«}|j «|j d«}d}tjt|¬«5tjd«dk(rtjdd    d
¬ «|j«|j«ddd«t!|j d«j"«}|d z j%«sJ‚|d z j%«sJ‚dD]:}tj&t(«5||z j%«rJ‚    ddd«Œ<tj*d«y#1swYŒ¬xYw#1swYŒhxYw)Nrú    %PEP 517%r z9Python recognizes 'mypkg\.tests' as an importable package)ÚmatchÚSETUPTOOLS_USE_DISTUTILSÚstdlibÚignorez!'encoding' argument not specifiedzdistutils.text_file)Úmoduleúmypkg/__init__.pyzmypkg/resource_file.txt)zmypkg/tests/__init__.pyzmypkg/tests/test_mypkg.pyzmypkg/tests/test_file.txtz mypkg/testsz#3260)ÚjaracoÚpathr(ÚEXAMPLE_WITH_MANIFESTrÚparse_config_filesÚget_command_objÚpytestÚwarnsrrÚgetenvÚwarningsÚfilterwarningsÚfinalize_optionsÚrunrÚ    build_libÚexistsr/ÚAssertionErrorÚxfail)rrr ÚmsgÚ    build_dirÚfs      rÚtest_excluded_subpackagesrT s]€Ü
‡KK×ÑÔ+Ô,Ü ˜¨ Ð4Ó 5€DØ×ÑÔà×#Ñ# JÓ/€Hà
F€CÜ    ‰Ô2¸#Ô    >ñô
9‰9Ð/Ó 0°HÒ <ô × #Ñ #ØØ3Ø,õ ð    ×!Ñ!Ô#؏ ‰ Œ÷!ô$T×)Ñ)¨*Ó5×?Ñ?Ó@€IØ Ð+Ñ +× 3Ñ 3Ô 5Ð5Ð 5Ø Ð1Ñ 1× 9Ñ 9Ô ;Ð;Ð ;ðò    0ˆô ]‰]œ>Ó *ñ    0ð" A™ ×-Ñ-Ô/Ð /Ð/Ð/÷    0ð    0ð     0ô ‡LLÕ÷Gðú÷<    0ð    0úsÁ/AE+Ä4E7Å+E4Å7F    z/ignore::setuptools.SetuptoolsDeprecationWarningcóh—tjjt«t    ddi«}|j «|j sJ‚|jd«}|jd«tt|j«jd««}|j«sJ‚|jd«}|j«|jd«}t|j ¬«}|j#|d|«|j$j'dd    «|j)|«d    |_|j!«|j-«|j/«|j$j'dd    «|j)|«||_|j!«|j1«|j2sJ‚t5d
„|j7««}|sJ‚t9t|j:d ««j=t>j@d «}||vsJ‚y    ) zwWhen provided with the ``existing_egg_info_dir`` attribute, build_py should not
    attempt to run egg_info again.
    rr:Úegg_infoz
*.egg-infor )Ú side_effectrLÚ
data_filesNcóB—|jtjd«S©Nú/)ÚreplacerÚsep)Úxs rú<lambda>z(test_existing_egg_info.<locals>.<lambda>ÿs€˜AŸI™I¤b§f¡f¨cÓ2€rr@r[)!rArBr(rCrrDÚinclude_package_datarEÚ run_commandÚnextrÚegg_baseÚglobÚis_dirrKrrLÚsetattrÚ__dict__ÚpopÚreinitialize_commandÚexisting_egg_info_dirÚ assert_calledÚ
reset_mockÚassert_not_calledrXÚmapÚ get_outputsÚstrrMr\rr])    rÚ monkeypatchrrVÚ egg_info_dirr Ú egg_info_runÚoutputsÚexamples             rÚtest_existing_egg_inforvÎsÛ€ô ‡KK×ÑÔ+Ô,Ü ˜¨ Ð4Ó 5€DØ×ÑÔØ × $Ò $Ð$Ð $à×#Ñ# JÓ/€HØ×ѐZÔ Üœ˜X×.Ñ.Ó/×4Ñ4°\ÓBÓC€LØ × Ñ Ô  Ð Ð  ð×#Ñ# JÓ/€HØ ×ÑÔØ×#Ñ# JÓ/€HÜ H§L¡LÔ1€LØ×ј %¨Ô6ð
 ×Ñ×ј,¨Ô-Ø×јhÔ'ð&*€HÔ"Ø ‡LL„NØ×ÑÔ ð×ÑÔØ ×Ñ×ј,¨Ô-Ø×јhÔ'ð&2€HÔ"Ø ‡LL„NØ×"Ñ"Ô$Ø × Ò ÐÐ ôÑ2°H×4HÑ4HÓ4JÓK€GÙ €Nˆ7Ü”$x×)Ñ)Ð+>Ó?Ó@×HÑHÌÏÉÐQTÓU€GØ gÑ ÐÑ ra;
        [project]
        name = "mypkg"
        version = "42"
 
        [tool.setuptools]
        packages = ["mypkg", "mypkg.sub1", "mypkg.sub2", "mypkg.sub2.nested"]
 
        [tool.setuptools.package-dir]
        "" = "src"
        "mypkg.sub2" = "src/mypkg/_sub2"
        "mypkg.sub2.nested" = "other"
        r7)r4zmod1.pyzmod2.py)r4r5Úsub1Ú_sub2)r4zmod3.pyzL
        global-include *.py *.txt
        global-exclude *.py[cod]
        )úpyproject.tomlÚsrcÚotherr8có(—tjjt«t    ddi«}|j «|j d«}d|_|j«|jjtjd«}|j«Dchc]"}|jtjd«’Œ$}}||›d|›d|›d|›d    |›d
|›d |›d hk(sJ‚|j«j«Dcic]D\}}|jtjd«|jtjd«“ŒF}}}||›dd |›dd|›dd|›d    d|›d
d|›d d|›d dik(sJ‚ycc}wcc}}w)Nrz%test%r Tr[z/mypkg/__init__.pyz/mypkg/resource_file.txtz/mypkg/sub1/__init__.pyz/mypkg/sub1/mod1.pyz/mypkg/sub2/mod2.pyz/mypkg/sub2/nested/__init__.pyz/mypkg/sub2/nested/mod3.pyzsrc/mypkg/__init__.pyzsrc/mypkg/resource_file.txtzsrc/mypkg/sub1/__init__.pyzsrc/mypkg/sub1/mod1.pyzsrc/mypkg/_sub2/mod2.pyzother/__init__.pyz other/mod3.py)rArBr(ÚEXAMPLE_ARBITRARY_MAPPINGrrDrEÚ editable_modeÚensure_finalizedrMr\rr]roÚget_output_mappingÚitems)    rrr rMr^rtÚkÚvÚmappings             rÚtest_get_outputsr…/sÜ€Ü
‡KK×ÑÔ/Ô0Ü ˜¨Ð1Ó 2€DØ×ÑÔà×#Ñ# JÓ/€HØ!€HÔØ ×ÑÔØ×"Ñ"×*Ñ*¬2¯6©6°3Ó7€IØ/7×/CÑ/CÓ/EÖF¨!ˆqy‰yœŸ™ Õ%ÐF€GÐFØ Ø ˆ+Ð'Ð(Ø ˆ+Ð-Ð.Ø ˆ+Ð,Ð-Ø ˆ+Ð(Ð)Ø ˆ+Ð(Ð)Ø ˆ+Ð3Ð4Ø ˆ+Ð/Ð0ðò ðð ð×/Ñ/Ó1×7Ñ7Ó9÷á ˆAˆqð    
    ‰    ”"—&‘&˜#Ó §    ¡    ¬"¯&©&°#Ó 6Ñ6ð€Gñð Ø ˆ+Ð'Ð(Ð*AØ ˆ+Ð-Ð.Ð0MØ ˆ+Ð,Ð-Ð/KØ ˆ+Ð(Ð)Ð+CØ ˆ+Ð(Ð)Ð+DØ ˆ+Ð3Ð4Ð6IØ ˆ+Ð/Ð0°/ðò ðñ ùòGùós Â%'F    ÄA    Fc
ó0—eZdZed«ed«ed«dœZdddddœidd    hd
œdd ddd œiid dhd
œdddidddœihd£d
œdœZejjddejdejjd¬«¬«g«ejjdej««d„««Z ejjddg«ejjdej««d„««Z d„Zy)ÚTestTypeInfoFileszV
            [project]
            name = "foo"
            version = "1"
            zž
            [project]
            name = "foo"
            version = "1"
 
            [tool.setuptools]
            include-package-data = false
            zú
            [project]
            name = "foo"
            version = "1"
 
            [tool.setuptools]
            include-package-data = false
 
            [tool.setuptools.exclude-package-data]
            "*" = ["py.typed", "*.pyi"]
            )Údefault_pyprojectÚdont_include_package_dataÚexclude_type_infoÚfoor )úbar.pyiúpy.typedr4z foo/bar.pyiú foo/py.typed)Údirectory_structureÚexpected_type_filesÚbar)rzmod.pyizfoo/bar/mod.pyizfoo/bar/py.typedzfoo.pyi)Ú    namespaceú __init__.pyir>úfoo/__init__.pyiúfoo/namespace/foo.pyirŽ)Úsimple_namespaceÚnested_inside_namespaceÚnamespace_nested_inside_regularÚ    pyprojectrˆr‰zpypa/setuptools#4350)r.)Úmarksrucóè—i|j|d¥d|j|i¥}|j|d}tjj    |«t «}t |«}||ksJ‚y©Nrryr)ÚEXAMPLESÚ
PYPROJECTSrArBr(Úget_finalized_build_pyro©Úselfrr™ruÚ    structurerr rts        rÚ#test_type_files_included_by_defaultz5TestTypeInfoFiles.test_type_files_included_by_default›s|€ð
؏m‰m˜GÑ$Ð%:Ñ;ð
à ˜dŸo™o¨iÑ8ñ
ˆ    ð#Ÿm™m¨GÑ4Ð5JÑKÐ܏ ‰ ×ј)Ô$ä)Ó+ˆÜ˜hÓ'ˆØ" gÒ-Ð-Ñ-rrŠcó—i|j|d¥d|j|i¥}|j|d}tjj    |«t «}t |«}|j|«sJ‚yrœ)rržrArBr(rŸroÚ
isdisjointr s        rÚtest_type_files_can_be_excludedz1TestTypeInfoFiles.test_type_files_can_be_excluded²s‚€ð
؏m‰m˜GÑ$Ð%:Ñ;ð
à ˜dŸo™o¨iÑ8ñ
ˆ    ð#Ÿm™m¨GÑ4Ð5JÑKÐ܏ ‰ ×ј)Ô$ä)Ó+ˆÜ˜hÓ'ˆØ"×-Ñ-¨gÔ6Ð6Ñ6rcó¤—td«dddœdœ}ddh}tjj|«t    «}t |«}||ksJ‚y)Nzl
                [project]
                name = "foo-stubs"
                version = "1"
                r )r“rŒ)ryz    foo-stubszfoo-stubs/__init__.pyizfoo-stubs/bar.pyi)rrArBr(rŸro)r¡rr¢rr rts      rÚtest_stub_only_packagez(TestTypeInfoFiles.test_stub_only_packageÀs`€ä"ðóð+-¸Ñ<ñ    
ˆ    ð 8Ð9LÐMÐ܏ ‰ ×ј)Ô$ä)Ó+ˆÜ˜hÓ'ˆØ" gÒ-Ð-Ñ-rN)Ú__name__Ú
__module__Ú __qualname__rržrrFÚmarkÚ parametrizeÚparamrPÚkeysr£r¦r¨©rrr‡r‡Qs€„á!ð ó
ñ&*ð ó    &
ñ"ð
ó 
ñ%€JðHØ!Ø "Ø#%ñð$ð%2°>Ð#Bñ    
ðØØ$&Ø#%ñðð$ð%6Ð7IÐ#Jñ
$
ðà! 2ð"ð%'Ø "ñ ð$ò$ñ,
ñ-&€HðP ‡[[×ÑØà Ø ˆFL‰LØ+Ø—k‘k×'Ñ'Ð/EÐ'ÓFô ð    
ó    ð ‡[[×јY¨¯ © «Ó8ñ
.ó9ó    ð
.ð ‡[[×ј[Ð+>Ð*?Ó@Ø ‡[[×јY¨¯ © «Ó8ñ
7ó9óAð
7ó.rr‡có‚—td|i«}|j«|jd«}|j«|S)Nrr )rrDrErK)rrr s   rrŸrŸÓs>€Ü ˜¨ Ð4Ó 5€DØ×ÑÔØ×#Ñ# JÓ/€HØ ×ÑÔØ €Orcóê—t|j«}|j«Dchc]@}tjj ||«j tjd«’ŒBc}Scc}wrZ)rrMrorrBÚrelpathr\r])r rRr^s   rroroÛs]€ÜX×'Ñ'Ó(€Ið×%Ñ%Ó'ö à ô     ‰‰˜˜9Ó%×-Ñ-¬b¯f©f°cÕ:ò ðùò s¨AA0)z%build_py-test%)!rr+r!rIÚpathlibrÚ unittest.mockrÚ jaraco.pathrArFÚ
setuptoolsrÚsetuptools.distrÚtextwraprrr$r-r¬rPrOr3rCrTrJrvr}r…r‡rŸror°rrú<module>rºsUðÛ    Û Û ÛÝÝãÛ å3Ý(åòò(ò4ð6‡×ÑØ$Ø :Ø Ø ð    óñ ó ð ñ:ð      ó ðØàØØñ
ññð     óñ1!ÐòH+ð\‡×ÑÐMÓNñ3óOð3ñnð      óð     ØØ!#à!Øñð
˜2ðñ
 
ð ðØññð     óñC'ÐòT÷D.ñ.óDór