hyb
2025-12-31 6cdcd01f77e11b72c323603e27ebdb85b15223c9
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
147
148
149
150
151
152
153
154
155
156
157
158
Ë
Añúh³<ãó—ddlmZddlZddlZddlZddlZddlZddlmZm    Z    ddl
m Z ddl m Z ddl mZddlmZdd    lmZmZdd
lmZdd lmZddlmcmZddlZdd lmZd Z dd„Z!Gd„dej4«Zd„Z"Gd„d«Z#y)é)Ú annotationsN)ÚIterableÚIterator)Úpartial)Úglob)ÚPath)Úunique_everseené)ÚStrPathÚStrPathT)Ú Distribution)ÚSetuptoolsDeprecationWarning)Ú convert_path)z*.pyizpy.typedcóŒ—tj|tj|«jtjz«y©N)ÚosÚchmodÚstatÚst_modeÚS_IWRITE)Útargets úNH:\Change_password\venv_build\Lib\site-packages\setuptools/command/build_py.pyÚ make_writablers'€Ü‡HHˆV”R—W‘W˜V“_×,Ñ,¬t¯}©}Ñ<Õ=ócó‡—eZdZUdZded<dZded<dZded    <d
„Z                d                                                    d ˆfd „ Zd!d „Z    d"d „Z
d„Z d„Z d„Z d„Zd#d$ˆfd„ Zd%d„Zd&d„Zd&d„Zd!d„Zd!d„Z                        d'd„Zd!d„Zd„Zd„Zd„Zd„Zed(d„«ZˆxZS))Úbuild_pyaXEnhanced 'build_py' command that includes data files with packages
 
    The data files are specified via a 'package_data' argument to 'setup()'.
    See 'setuptools.dist.Distribution' for more details.
 
    Also, this version of the 'build_py' command allows you to specify both
    'py_modules' and 'packages' in the same setup operation.
    r Ú distributionFÚboolÚ editable_modeNzStrPath | NoneÚexisting_egg_info_dircóî—tjj|«|jj|_|jj
xsi|_d|j vr|j d=yy)NÚ
data_files)ÚorigrÚfinalize_optionsrÚ package_dataÚexclude_package_dataÚ__dict__©Úselfs rr$zbuild_py.finalize_options,s^€Ü  ‰ ×&Ñ& tÔ,Ø ×-Ñ-×:Ñ:ˆÔØ$(×$5Ñ$5×$JÑ$JÒ$PÈbˆÔ!Ø ˜4Ÿ=™=Ñ (Ø— ‘ ˜lÑ+ð )rc󸕗|rDtt|«j««}tt|«j««}t‰|||||||«Sr)ÚstrrÚresolveÚsuperÚ    copy_file)r)ÚinfileÚoutfileÚ preserve_modeÚpreserve_timesÚlinkÚlevelÚ    __class__s       €rr.zbuild_py.copy_file3sUø€ñ Üœ˜f›×-Ñ-Ó/Ó0ˆFÜœ$˜w›-×/Ñ/Ó1Ó2ˆG܉wÑ Ø G˜]¨N¸DÀ%ó
ð    
rcó>—|js |jr |jry|jr|j«|jr |j    «|j «|j tjj|d¬««y)z?Build modules, packages, and copy data files to build directoryNF)Úinclude_bytecode)
Ú
py_modulesÚpackagesrÚ build_modulesÚbuild_packagesÚbuild_package_dataÚ byte_compiler#rÚ get_outputsr(s rÚrunz build_py.runDsp€à—’ 4§=¢=°T×5GÒ5GØ à ?Š?Ø × Ñ Ô  à =Š=Ø × Ñ Ô !Ø × #Ñ #Ô %ð     ×Ñœ$Ÿ-™-×3Ñ3°DÈ5Ð3ÓQÕRrcóŽ—|dk(r!|j«|_|jStjj    ||«S)zlazily compute data filesr")Ú_get_data_filesr"r#rÚ __getattr__)r)Úattrs  rrBzbuild_py.__getattr__Ts;€à <Ò Ø"×2Ñ2Ó4ˆDŒOØ—?‘?Ð "܏}‰}×(Ñ(¨¨tÓ4Ð4rcó|—|j«tt|j|jxsd««S)z?Generate list of '(package,src_dir,build_dir,filenames)' tuples©)Úanalyze_manifestÚlistÚmapÚ_get_pkg_data_filesr9r(s rrAzbuild_py._get_data_files[s/€à ×ÑÔÜ”C˜×0Ñ0°$·-±-Ò2EÀ2ÓFÓGÐGrcó”—|jjdi«tt|j|j
xsd««S)z¡
        Generate list of ``(package,src_dir,build_dir,filenames)`` tuples,
        but without triggering any attempt to analyze or build the manifest.
        Úmanifest_filesrE)r'Ú
setdefaultrGrHrIr9r(s rÚget_data_files_without_manifestz(build_py.get_data_files_without_manifest`s:€ð      ‰ × Ñ Ð!1°2Ô6Ü”C˜×0Ñ0°$·-±-Ò2EÀ2ÓFÓGÐGrcó&—|j|«}tjj|jg|j d«zŽ}|j ||«Dcgc]"}tjj||«‘Œ$}}||||fScc}w©Nú.)Úget_package_dirrÚpathÚjoinÚ    build_libÚsplitÚfind_data_filesÚrelpath)r)ÚpackageÚsrc_dirÚ    build_dirÚfileÚ    filenamess      rrIzbuild_py._get_pkg_data_filesjsŒ€à×&Ñ& wÓ/ˆô—G‘G—L‘L D§N¡NÐ#3°g·m±mÀCÓ6HÑ#HÐJˆ    ð
×,Ñ,¨W°gÓ>ö
àô G‰GO‰O˜D 'Õ *ð
ˆ    ð
𘠨IÐ5Ð5ùò    
sÁ'BcóŠ—|j|j||t¬«}tt    t
d¬«|«}t jj|«}ttjj|«}t j|jj|g«|«}|j|||«S)z6Return filenames for package's data files in 'src_dir')Úextra_patternsT)Ú    recursive)Ú_get_platform_patternsr%Ú_IMPLICIT_DATA_FILESrHrrÚ    itertoolsÚchainÚ from_iterableÚfilterrrRÚisfilerKÚgetÚexclude_data_files)r)rXrYÚpatternsÚglobs_expandedÚ globs_matchesÚ
glob_filesÚfiless        rrVzbuild_py.find_data_filesxs¤€à×.Ñ.Ø × Ñ Ø Ø Ü/ð    /ó
ˆô œW¤T°TÔ:¸HÓEˆä!Ÿ™×5Ñ5°nÓEˆ ÜœBŸG™GŸN™N¨MÓ:ˆ
Ü—‘Ø × Ñ × #Ñ # G¨RÓ 0Ø ó
ˆð×&Ñ& w°¸Ó?Ð?rc󈕗|jr't|j«j««St‰||«S)ú1See :class:`setuptools.commands.build.SubCommand`)rrGÚget_output_mappingÚkeysr-r>)r)r7r5s  €rr>zbuild_py.get_outputsŠs:ø€à × Ò Ü˜×/Ñ/Ó1×6Ñ6Ó8Ó9Ð 9܉wÑ"Ð#3Ó4Ð4rcó”—tj|j«|j««}t    t |d„¬««S)rocó —|dS)NrrE)Úxs rú<lambda>z-build_py.get_output_mapping.<locals>.<lambda>–s
€°!°A±$€r)Úkey)rbrcÚ _get_package_data_output_mappingÚ_get_module_mappingÚdictÚsorted)r)Úmappings  rrpzbuild_py.get_output_mappings<€ä—/‘/Ø × 1Ñ 1Ó 3Ø × $Ñ $Ó &ó
ˆô”F˜7©Ô7Ó8Ð8rc#ó¦K—|j«D]:\}}}|jd«}|j|j||«}||f–—Œ<y­w)z5Iterate over all modules producing (dest, src) pairs.rPN)Úfind_all_modulesrUÚget_module_outfilerT)r)rXÚmoduleÚ module_fileÚfilenames     rrxzbuild_py._get_module_mapping˜sVèø€à,0×,AÑ,AÓ,Cò    *Ñ (ˆGV˜[Ø—m‘m CÓ(ˆGØ×.Ñ.¨t¯~©~¸wÈÓOˆHؘ[Ð)Ó )ñ    *ùs‚AAc#óÒK—|jD]T\}}}}|D]H}tjj||«}tjj||«}||f–—ŒJŒVy­w)z6Iterate over package data producing (dest, src) pairs.N)r"rrRrS)r)rXrYrZr\rrÚsrcfiles        rrwz)build_py._get_package_data_output_mappingŸsdèø€à6:·o±oò    (Ñ 2ˆGW˜i¨Ø%ò (ÜŸ™Ÿ™ i°Ó:ÜŸ'™'Ÿ,™, w°Ó9Ø˜wÐ'Ó'ñ (ñ    (ùs‚A%A'cóЗ|j«D]S\}}|jtjj    |««|j ||«\}}t |«ŒUy)z$Copy data files into build directoryN)rwÚmkpathrrRÚdirnamer.r)r)rrƒÚ_outfÚ_copieds     rr<zbuild_py.build_package_data§sS€à#×DÑDÓFò    "‰OˆFGØ K‰KœŸ™Ÿ™¨Ó/Ô 0Ø!Ÿ^™^¨G°VÓ<‰NˆE7Ü ˜&Õ !ñ    "rcó>—i|_|jjsyi}|jxsdD]}||t    |j |««<Œ!|j r]t|j d«j«r9|j }t|d«}|jd¬«j«}nD|jd«|jd«}|j}|jj}t!«}|j#||«D]ÿ}t$j&j)t    |««\}    }
d} |
} |    rY|    | k7rT|    |vrP|    } t$j&j)|    «\}    } t$j&j+| |
«}
|    r
|    | k7r|    |vrŒP|    |vsŒ’|
| k(r|j-|
«r)Œ©|j/||    |
«}|r|j1|«|jj3||    g«j5|«Œy)NrEz SOURCES.txtzutf-8)ÚencodingÚegg_info)rKrÚinclude_package_datar9Úassert_relativerQr rÚexistsÚ    read_textÚ
splitlinesÚ run_commandÚget_finalized_commandr‹ÚfilelistrmÚ_IncludePackageDataAbuseÚ_filter_build_filesrrRrUrSÚ    is_moduleÚimportable_subpackageÚwarnrLÚappend)r)Úsrc_dirsrXÚ egg_info_dirÚmanifestrmÚei_cmdÚcheckrRÚdÚfÚprevÚoldfÚdfÚ
importables               rrFzbuild_py.analyze_manifest®sç€Ø46ˆÔØ× Ñ ×5Ò5Ø Ø#%ˆØ—}‘}Ò*¨ò    OˆGàGNˆH”_ T×%9Ñ%9¸'Ó%BÓCÒ Dð    Oð
× &Ò &ܐT×/Ñ/°Ó?×FÑFÔHà×5Ñ5ˆLܘL¨-Ó8ˆHØ×&Ñ&°Ð&Ó8×CÑCÓE‰Eà × Ñ ˜ZÔ (Ø×/Ñ/°
Ó;ˆFØ!Ÿ?™?ˆLØ—O‘O×)Ñ)ˆEä(Ó*ˆØ×,Ñ,¨U°LÓAò    MˆDÜ—7‘7—=‘=¤°Ó!6Ó7‰DˆAˆq؈D؈DÙ˜˜Tš     a¨xÑ&7ؐܟ™Ÿ ™  aÓ(‘2Ü—G‘G—L‘L  QÓ'ñ˜˜Tš     a¨xÒ&7ðHŠ}ؘ’9Ø—‘ qÔ)Ø à!&×!<Ñ!<¸XÀa¹[È!Ó!LJÙ!ØŸ
™
 :Ô.Ø×#Ñ#×.Ñ.¨x¸©{¸BÓ?×FÑFÀtÖLñ!    Mrc#óœ‡K—|jd«}||j|j|jf}|Dcgc]$}|sŒtj
j |«‘Œ&}}|D]Y}tj
j |«Štj
j|«rtˆfd„|D««sŒV|–—Œ[ycc}w­w)a}
        ``build_meta`` may try to create egg_info outside of the project directory,
        and this can be problematic for certain plugins (reported in issue #3500).
 
        Extensions might also include between their sources files created on the
        ``build_lib`` and ``build_temp`` directories.
 
        This function should filter this case of invalid files out.
        Úbuildc3ó&•K—|]}|‰v–—Œ
y­wrrE)Ú.0rŸÚ    norm_paths  €rú    <genexpr>z/build_py._filter_build_files.<locals>.<genexpr>ésøèø€Ò-TÀQ¨a°yÔ.@Ñ-TùsƒN)    r’rTÚ
build_tempÚ
build_baserrRÚnormpathÚisabsÚall)    r)rmr‹r¦Ú
build_dirsÚpÚ    norm_dirsr[r©s            @rr•zbuild_py._filter_build_files×s¦øèø€ð×*Ñ*¨7Ó3ˆØ §¡°×0@Ñ0@À%×BRÑBRÐSˆ
Ø2<ÖB¨Q”R—W‘W×%Ñ% aÕ(ÐBˆ    ÐBàò    ˆDÜŸ™×(Ñ(¨Ó.ˆIÜ—7‘7—=‘= Ô&¬#Ó-TÈ)Ô-TÕ*TØ“
ñ    ùòCùsƒ:C ½CÁ!CÁ&AC à C có—yrrEr(s rÚget_data_fileszbuild_py.get_data_filesìs€Ø rcóú—    |j|S#t$rYnwxYwtjj    |||«}||j|<|r|j
j s|S|j
j D]}||k(s|j|dz«sŒn|St|d«5}|j«}ddd«n #1swYnxYwdvr#tjjd|›d«‚|S)z8Check namespace packages' __init__ for declare_namespacerPÚrbNsdeclare_namespacezNamespace package problem: z¤ is a namespace package, but its
__init__.py does not call declare_namespace()! Please fix it.
(See the setuptools manual under "Namespace Packages" for details.)
") Úpackages_checkedÚKeyErrorr#rÚ check_packagerÚnamespace_packagesÚ
startswithÚopenÚreadÚ    distutilsÚerrorsÚDistutilsError)r)rXÚ package_dirÚinit_pyÚpkgr Úcontentss       rr¹zbuild_py.check_packageïs
€ð    Ø×(Ñ(¨Ñ1Ð 1øÜò    Ù ð    úô—-‘-×-Ñ-¨d°G¸[ÓIˆØ)0ˆ×јgÑ&á˜d×/Ñ/×BÒB؈Nà×$Ñ$×7Ñ7ò    ˆCؐgŠ~ §¡°¸#± Õ!>Ùð    ðˆNä '˜4Ó  ð      AØ—v‘v“xˆH÷     ÷     ñ     úà  xÑ /Ü×"Ñ"×1Ñ1Ø-¨g¨Yð78ð8óð ð ˆs‚‘    œÂ.CÃCcól—i|_tjj|«d|_d|_y)NF)r·r#rÚinitialize_optionsrr r(s rrÆzbuild_py.initialize_options s,€Ø "ˆÔÜ  ‰ ×(Ñ(¨Ô.Ø"ˆÔØ%)ˆÕ"rcóڗtjj||«}|jj4t
j j|jj|«S|Sr)r#rrQrÚsrc_rootrrRrS)r)rXÚress   rrQzbuild_py.get_package_dirsP€Üm‰m×+Ñ+¨D°'Ó:ˆØ × Ñ × %Ñ %Ð 1Ü—7‘7—<‘< × 1Ñ 1× :Ñ :¸CÓ@Ð @؈
rcóþ‡‡—t‰«Š|j|j||«}ˆfd„|D«}tjj |«}t |«Šˆfd„‰D«}tt|««S)z6Filter filenames for package's data files in 'src_dir'c3óJ•K—|]}tj‰|«–—Œy­wr)Úfnmatchre)r¨Úpatternrms  €rrªz.build_py.exclude_data_files.<locals>.<genexpr>!søèø€ÒO¸7œŸ™ u¨g×6ÑOùsƒ #c3ó,•K—|] }|‰vsŒ|–—Œ y­wrrE)r¨ÚfnÚbads  €rrªz.build_py.exclude_data_files.<locals>.<genexpr>%søèø€Ò7˜"¨°3ª”2Ñ7ùsƒ    )rGr`r&rbrcrdÚsetr    )    r)rXrYrmriÚ match_groupsÚmatchesÚkeepersrÐs       `    @rrhzbuild_py.exclude_data_filessoù€äU“ ˆØ×.Ñ.Ø × %Ñ %Ø Ø ó
ˆó
PÀhÔOˆ ä—/‘/×/Ñ/° Ó=ˆÜ'‹lˆÛ7 Ô7ˆä”O GÓ,Ó-Ð-rc󈇗tj||jdg«|j|g««}ˆfd„|D«S)zÜ
        yield platform-specific path patterns (suitable for glob
        or fn_match) from a glob-based spec (such as
        self.package_data or self.exclude_package_data)
        matching package in src_dir.
        Úc3óp•K—|]-}tjj‰t|««–—Œ/y­wr)rrRrSr)r¨rÍrYs  €rrªz2build_py._get_platform_patterns.<locals>.<genexpr>6s/øèø€ò
ðô G‰GL‰L˜¤,¨wÓ"7× 8ñ
ùsƒ36)rbrcrg)ÚspecrXrYr^Ú raw_patternss  `  rr`zbuild_py._get_platform_patterns)sFø€ô!—‘Ø Ø H‰HR˜Ó Ø H‰HW˜bÓ !ó
ˆ ó
 
ð(ô
ð    
r)TTNé)r/r r0r r1rr2rr3z
str | Noner4ÚobjectÚreturnztuple[StrPathT | str, bool]©rÜÚNone)rCr+)T)r7rrÜz    list[str])rÜzdict[str, str])rÜzIterator[tuple[str, str]])rmz Iterable[str]r‹r rÜz Iterator[str])rE)Ú__name__Ú
__module__Ú __qualname__Ú__doc__Ú__annotations__rr r$r.r?rBrArMrIrVr>rprxrwr<rFr•r´r¹rÆrQrhÚ staticmethodr`Ú __classcell__)r5s@rrrs ø…ñðÓØ€M4ÓØ,0И>Ó0ò,ð#Ø#ØØð
àð
ðð
ðð    
ð
ð 
ð ð 
ðð
ð
%õ
ó"Só 5òHò
Hò 6ò@ö$5ó 9ó*ó(ó"ó'MðRØ"ðØ.5ðà    óó* òò<*ò ò .ð ò
óô
rrcó¬—tjj|«s|Sddlm}t j d«j«|z}||«‚)Nr)ÚDistutilsSetupErrorzÓ
        Error: setup script specifies an absolute path:
 
            %s
 
        setup() arguments must *always* be /-separated paths relative to the
        setup.py directory, *never* absolute paths.
        )rrRr®Údistutils.errorsrçÚtextwrapÚdedentÚlstrip)rRrçÚmsgs   rrr=sP€Ü 7‰7=‰=˜Ô ؈ Ý4ô    ‰ð ó        
÷ ‰&‹(Ø
ñ
    ðñ ˜cÓ
"Ð"rcó>—eZdZdZGd„de«Zd„Zd„Zd„Zd„Z    y)    r”z>Inform users that package or module is included as 'data file'có—eZdZdZdZy)ú!_IncludePackageDataAbuse._WarningzU
        Package {importable!r} is absent from the `packages` configuration.
        a|
        ############################
        # Package would be ignored #
        ############################
        Python recognizes {importable!r} as an importable package[^1],
        but it is absent from setuptools' `packages` configuration.
 
        This leads to an ambiguous overall configuration. If you want to distribute this
        package, please make sure that {importable!r} is explicitly added
        to the `packages` configuration field.
 
        Alternatively, you can also rely on setuptools' discovery methods
        (for example by using `find_namespace_packages(...)`/`find_namespace:`
        instead of `find_packages(...)`/`find:`).
 
        You can read more about "package discovery" on setuptools documentation page:
 
        - https://setuptools.pypa.io/en/latest/userguide/package_discovery.html
 
        If you don't want {importable!r} to be distributed and are
        already explicitly excluding {importable!r} via
        `find_namespace_packages(...)/find_namespace` or `find_packages(...)/find`,
        you can try to use `exclude_package_data`, or `include-package-data=False` in
        combination with a more fine grained `package-data` configuration.
 
        You can read more about "package data files" on setuptools documentation page:
 
        - https://setuptools.pypa.io/en/latest/userguide/datafiles.html
 
 
        [^1]: For Python, any directory (with suitable naming) can be imported,
              even if it does not contain any `.py` files.
              On the other hand, currently there is no concept of package data
              directory, all directories are treated like packages.
        N)rßràráÚ_SUMMARYÚ_DETAILSrErrÚ_WarningrïUs„ð ˆð" ‰rròcó"—t«|_yr)rÑÚ_already_warnedr(s rÚ__init__z!_IncludePackageDataAbuse.__init__€s €Ü"›uˆÕrcób—|jd«xr|dtd« j«S)Nz.py)ÚendswithÚlenÚ isidentifier)r)r[s  rr–z"_IncludePackageDataAbuse.is_moduleƒs,€Ø}‰}˜UÓ#ÒJ¨¨]´°E³
¨{Ð(;×(HÑ(HÓ(JÐJrcóȗt|«j}ttjt
j |j««}|rdj|g|¢«SyrO)    rÚparentrGrbÚ    takewhiler+rùÚpartsrS)r)rûr[rÃrýs     rr—z._IncludePackageDataAbuse.importable_subpackage†sO€Ü4‹j×шܔY×(Ñ(¬×)9Ñ)9¸3¿9¹9ÓEÓFˆÙ Ø—8‘8˜VÐ, eÐ,Ó-Ð -Ørcó—||jvr8|jj|¬«|jj|«yy)N)r¤)rôròÚemitÚadd)r)r¤s  rr˜z_IncludePackageDataAbuse.warns>€Ø ˜T×1Ñ1Ñ 1Ø M‰M× Ñ ¨*Ð Ô 5Ø ×  Ñ  × $Ñ $ ZÕ 0ð 2rN)
rßràrárârròrõr–r—r˜rErrr”r”Rs(„ÙHô' Ð/ô' òV%òKòó1rr”rÝ)$Ú
__future__rrÌrbrrréÚcollections.abcrrÚ    functoolsrrÚpathlibrÚmore_itertoolsr    Ú_pathr r Údistr ÚwarningsrÚdistutils.command.build_pyÚcommandrr#rèr¾Údistutils.utilrrarrr”rErrú<module>r shðÝ"ãÛÛ    Û Ûß.ÝÝÝå*ç%ÝÝ3ç)Ð)ÛÝ'à,Ðó>ô\
ˆt}‰}ô\
ò~#÷*>1ò>1r