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
147
148
149
150
151
152
153
154
155
156
157
158
Ë
@ñúhé;ãó֗dZddlmZddlZddlZddlZddlZddlmZddl    m
Z
m Z ddl m Z ddlmZmZdd    lmZGd
„d «Zd „ZGd „de«Zej.fdd„Zd„Zdd„Zy)zsdistutils.filelist
 
Provides the FileList class, used for poking about the filesystem
and building lists of files.
é)Ú annotationsN)ÚIterable)ÚLiteralÚoverloadé)Úlog)ÚDistutilsInternalErrorÚDistutilsTemplateError)Ú convert_pathcó´—eZdZdZddd„Zdd„Zejfdd„Zdd„Z    dd„Z
dd„Z dd    „Z dd
„Z d „Zdd „Ze            d                                    dd „«Ze        d                                     d!d„«Ze                                        d!d„«Z            d                                    d"d„Ze            d                                    dd„«Ze        d                                     d!d„«Ze                                        d!d„«Z            d                                    d"d„Zy)#ÚFileListaÑA list of files built by on exploring the filesystem and filtered by
    applying various patterns to what we find there.
 
    Instance attributes:
      dir
        directory from which files will be taken -- only used if
        'allfiles' not supplied to constructor
      files
        list of filenames currently being built/filtered/manipulated
      allfiles
        complete list of files under consideration (ie. without any
        filtering applied)
    Ncó —d|_g|_y©N)ÚallfilesÚfiles)ÚselfÚwarnÚ debug_prints   úQH:\Change_password\venv_build\Lib\site-packages\setuptools/_distutils/filelist.pyÚ__init__zFileList.__init__$s€ð/3ˆŒ Ø "ˆ
ócó—||_yr)r)rrs  rÚ set_allfileszFileList.set_allfiles*s    €Ø ˆ rcó$—t|«|_yr)Úfindallr)rÚdirs  rrzFileList.findall-s €Ü › ˆ rcó,—ddlm}|r t|«yy)z~Print 'msg' to stdout if the global DEBUG (taken from the
        DISTUTILS_DEBUG environment variable) flag is true.
        r)ÚDEBUGN)Údistutils.debugrÚprint)rÚmsgrs   rrzFileList.debug_print0s€õ    *á Ü #Jð rcó:—|jj|«yr)rÚappend)rÚitems  rr#zFileList.append;s€Ø 
‰
×ј$Õrcó:—|jj|«yr)rÚextend)rÚitemss  rr&zFileList.extend>s€Ø 
‰
×ј%Õ rcóø—tttjj|j
««}g|_|D]7}|j
j tjj|Ž«Œ9yr)ÚsortedÚmapÚosÚpathÚsplitrr#Újoin)rÚsortable_filesÚ
sort_tuples   rÚsortz FileList.sortAsT€ä¤¤B§G¡G§M¡M°4·:±:Ó >Ó?ˆØˆŒ
Ø(ò    9ˆJØ J‰J× Ñ œbŸg™gŸl™l¨JÐ7Õ 8ñ    9rcó´—tt|j«dz
dd«D]2}|j||j|dz
k(sŒ&|j|=Œ4y)Nrréÿÿÿÿ)ÚrangeÚlenr)rÚis  rÚremove_duplicateszFileList.remove_duplicatesJsO€ä”s˜4Ÿ:™:“¨Ñ*¨A¨rÓ2ò    "ˆA؏z‰z˜!‰} §
¡
¨1¨q©5Ñ 1Ó1Ø—J‘J˜q‘Mñ    "rcóæ—|j«}|d}dx}x}}|dvr9t|«dkrtd|›d«‚|ddDcgc] }t|«‘Œ}}nŠ|dvrGt|«dkrtd|›d    «‚t|d«}|ddDcgc] }t|«‘Œ}}n?|d
vr,t|«dk7rtd|›d «‚t|d«}ntd |›d«‚||||fScc}wcc}w) Nr)ÚincludeÚexcludeúglobal-includeúglobal-excludeéú'z#' expects <pattern1> <pattern2> ...r)úrecursive-includeúrecursive-excludeéz)' expects <dir> <pattern1> <pattern2> ...)ÚgraftÚprunez ' expects a single <dir_pattern>zunknown action ')r-r5r
r )rÚlineÚwordsÚactionÚpatternsrÚ dir_patternÚws        rÚ_parse_template_linezFileList._parse_template_lineRs9€Ø—
‘
“ ˆØq‘ˆà'+Ð+ˆÐ+3˜à ÐOÑ Oܐ5‹z˜AŠ~Ü,ؘxÐBÐCóðð27°q°r°Ö;¨Aœ  QÐ;ˆHÑ;Ø ÐAÑ Aܐ5‹z˜AŠ~Ü,ؘxÐHÐIóðô˜u Q™xÓ(ˆCØ16°q°r°Ö;¨Aœ  QÐ;ˆHÑ;Ø Ð)Ñ )ܐ5‹z˜QŠÜ,ؘxÐ?Ð@óðô' u¨Q¡xÓ0‰Kä(Ð+;¸F¸8À1Ð)EÓFÐ Fà˜ # {Ð3Ð3ùò#<ùò<s ÁC)ÂC.cóЗ|j|«\}}}}|dk(rU|jddj|«z«|D],}|j|d¬«rŒt    j
d|«Œ.y|dk(rU|jddj|«z«|D],}|j |d¬«rŒt    j
d    |«Œ.y|d
k(rU|jd dj|«z«|D],}|j|d ¬«rŒt    j
d |«Œ.y|dk(rU|jddj|«z«|D],}|j |d ¬«rŒt    j
d|«Œ.y|dk(re|jdj|dj|«««|D]/}|j||¬«rŒd}t    j
|||«Œ1y|dk(rc|jdj|dj|«««|D]-}|j ||¬«rŒt    j
d||«Œ/y|dk(r?|jd|z«|jd|¬«st    j
d|«yy|dk(r?|jd|z«|j d|¬«st    j
d|«yytd|›d«‚) Nr9zinclude ú T)Úanchorz%warning: no files found matching '%s'r:zexclude z9warning: no previously-included files found matching '%s'r;zglobal-include Fz>warning: no files found matching '%s' anywhere in distributionr<zglobal-exclude zRwarning: no previously-included files matching '%s' found anywhere in distributionr?zrecursive-include {} {})Úprefixz:warning: no files found matching '%s' under directory '%s'r@zrecursive-exclude {} {}zNwarning: no previously-included files matching '%s' found under directory '%s'rBzgraft z+warning: no directories found matching '%s'rCzprune z6no previously-included directories found matching '%s'z$this cannot happen: invalid action 'r>)    rJrr.Úinclude_patternrÚwarningÚexclude_patternÚformatr    )rrDrFrGrrHÚpatternr!s        rÚprocess_template_linezFileList.process_template_lineps €ð 04×/HÑ/HÈÓ/NÑ,ˆ˜3  ð
YÒ Ø × Ñ ˜Z¨#¯(©(°8Ó*<Ñ<Ô =Ø#ò RØ×+Ñ+¨G¸DÐ+ÕAÜ—K‘KРGÈÕQñ RðyÒ  Ø × Ñ ˜Z¨#¯(©(°8Ó*<Ñ<Ô =Ø#ò Ø×+Ñ+¨G¸DÐ+ÕAÜ—K‘KØSØõñ ðÐ'Ò 'Ø × Ñ Ð.°·±¸(Ó1CÑCÔ DØ#ò Ø×+Ñ+¨G¸EÐ+ÕBÜ—K‘Kð7ð õ ñ ðÐ'Ò 'Ø × Ñ Ð.°·±¸(Ó1CÑCÔ DØ#ò Ø×+Ñ+¨G¸EÐ+ÕBÜ—K‘KðBð õ ñ ðÐ*Ò *Ø × Ñ Ð6×=Ñ=¸cÀ3Ç8Á8ÈHÓCUÓVÔ WØ#ò 3Ø×+Ñ+¨G¸CÐ+Õ@ØVCÜ—K‘K  W¨cÕ2ñ 3ð
Ð*Ò *Ø × Ñ Ð6×=Ñ=¸cÀ3Ç8Á8ÈHÓCUÓVÔ WØ#ò     Ø×+Ñ+¨G¸CÐ+Õ@Ü—K‘Kð>ð Øõ ñ     ðwÒ Ø × Ñ ˜X¨ Ñ3Ô 4Ø×'Ñ'¨°[Ð'ÔAÜ— ‘ ÐIÈ;ÕWðBðwÒ Ø × Ñ ˜X¨ Ñ3Ô 4Ø×'Ñ'¨°[Ð'ÔAÜ— ‘ ØMØõðBô )Ø6°v°h¸aÐ@óð rcó—yr©©rrSrMrNÚis_regexs     rrOzFileList.include_patternÈó€ðrcó—yrrVrWs     rrOzFileList.include_patternÐó€ðrcó—yrrVrWs     rrOzFileList.include_patternÙrYrcóD—d}t||||«}|jd|j›d«|j€|j    «|jD]E}|j |«sŒ|jd|z«|j j|«d}ŒG|S)a—Select strings (presumably filenames) from 'self.files' that
        match 'pattern', a Unix-style wildcard (glob) pattern.  Patterns
        are not quite the same as implemented by the 'fnmatch' module: '*'
        and '?'  match non-special characters, where "special" is platform-
        dependent: slash on Unix; colon, slash, and backslash on
        DOS/Windows; and colon on Mac OS.
 
        If 'anchor' is true (the default), then the pattern match is more
        stringent: "*.py" will match "foo.py" but not "foo/bar.py".  If
        'anchor' is false, both of these will match.
 
        If 'prefix' is supplied, then only filenames starting with 'prefix'
        (itself a pattern) and ending with 'pattern', with anything in between
        them, will match.  'anchor' is ignored in this case.
 
        If 'is_regex' is true, 'anchor' and 'prefix' are ignored, and
        'pattern' is assumed to be either a string containing a regex or a
        regex object -- no translation is done, the regex is just compiled
        and used as-is.
 
        Selected strings will be added to self.files.
 
        Return True if files are found, False otherwise.
        Fz"include_pattern: applying regex r'r>z adding T)Útranslate_patternrrSrrÚsearchrr#)rrSrMrNrXÚ files_foundÚ
pattern_reÚnames        rrOzFileList.include_patternás¢€ð@ˆ Ü& w°¸ÀÓIˆ
Ø ×ÑÐ=¸j×>PÑ>PÐ=QÐQRÐSÔTð =‰=Ð  Ø L‰LŒNà—M‘Mò    #ˆDØ× Ñ  Õ&Ø× Ñ  ¨dÑ!2Ô3Ø—
‘
×!Ñ! $Ô'Ø"‘ ð        #ð
Ðrcó—yrrVrWs     rrQzFileList.exclude_patternrYrcó—yrrVrWs     rrQzFileList.exclude_patternr[rcó—yrrVrWs     rrQzFileList.exclude_pattern!rYrcóR—d}t||||«}|jd|j›d«tt    |j
«dz
dd«D]Q}|j |j
|«sŒ"|jd|j
|z«|j
|=d}ŒS|S)aRemove strings (presumably filenames) from 'files' that match
        'pattern'.  Other parameters are the same as for
        'include_pattern()', above.
        The list 'self.files' is modified in place.
        Return True if files are found, False otherwise.
        Fz"exclude_pattern: applying regex r'r>rr3z
 removing T)r^rrSr4r5rr_)rrSrMrNrXr`rar6s        rrQzFileList.exclude_pattern)s§€ðˆ Ü& w°¸ÀÓIˆ
Ø ×ÑÐ=¸j×>PÑ>PÐ=QÐQRÐSÔTÜ”s˜4Ÿ:™:“¨Ñ*¨B°Ó3ò    #ˆAØ× Ñ  §¡¨A¡Õ/Ø× Ñ  °·
±
¸1± Ñ!=Ô>Ø—J‘J˜qMØ"‘ ð        #ð
Ðr)NN)rÚobjectrrgÚreturnÚNone)rú Iterable[str]rhri)rústr | os.PathLike[str]rhri)r!rgrhri)r$Ústrrhri)r'rjrhri)rhri)rDrlrhri©TNF)
rSrlrMÚboolrNú
str | NonerXzLiteral[False]rhrn)TN)
rSzstr | re.Pattern[str]rMrnrNrorXz Literal[True]rhrn)
rSzstr | re.PatternrMrnrNrorXrnrhrn)Ú__name__Ú
__module__Ú __qualname__Ú__doc__rrr+Úcurdirrrr#r&r1r7rJrTrrOrQrVrrr r sƒ„ñ ô#ó !ð57·I±Iô%óó ó!ó9ó"ò4ó<UðpðØ!Ø#(ð àððððð    ð
!ð ð
ò óðððØ!ð    à&ððððð    ð  ð ð
òóðððà&ððððð    ð
 ð ð
ò óððØ!Øð -à!ð-ðð-ðð    -ð
ð -ð
ó -ð^ðØ!Ø#(ð àððððð    ð
!ð ð
ò óðððØ!ð    à&ððððð    ð  ð ð
òóðððà&ððððð    ð
 ð ð
ò óððØ!Øð à!ððððð    ð
ð ð
ô rr có°—tjtj|d¬««}d„|D«}ttjj
|«S)z%
    Find all files under 'path'
    T)Ú followlinksc3órK—|]/\}}}|D]$}tjj||«–—Œ&Œ1y­wr)r+r,r.)Ú.0ÚbaseÚdirsrÚfiles     rú    <genexpr>z#_find_all_simple.<locals>.<genexpr>Is=èø€òÙ%6 T¨4°ÐQVòØIMŒ‰ ‰ T˜4× ðØ ñùs‚57)Ú _UniqueDirsÚfilterr+Úwalkr,Úisfile)r,Ú
all_uniqueÚresultss   rÚ_find_all_simplerƒDsE€ô×#Ñ#¤B§G¡G¨D¸dÔ$CÓD€JñØ:Dô€Gô ”"—'‘'—.‘. 'Ó *Ð*rcó&—eZdZdZd„Zed„«Zy)r}z†
    Exclude previously-seen dirs from walk results,
    avoiding infinite recursion.
    Ref https://bugs.python.org/issue44497.
    có¦—|\}}}tj|«}|j|jf}||v}|r|dd…=|j    |«| S)z®
        Given an item from an os.walk result, determine
        if the item represents a unique dir for this instance
        and if not, prevent further traversal.
        N)r+ÚstatÚst_devÚst_inoÚadd)rÚ    walk_itemryrzrr†Ú    candidateÚfounds        rÚ__call__z_UniqueDirs.__call__VsW€ð &шˆdE܏w‰wt‹}ˆØ—K‘K §¡Ð,ˆ    Ø˜TÐ!ˆÙ Ø’QØ ‰Ô؈yÐrcó$—t|«|«Sr)r~)Úclsr's  rr~z_UniqueDirs.filteres€ä‘c“e˜UÓ#Ð#rN)rprqrrrsrÚ classmethodr~rVrrr}r}Os „ñò ðñ$óñ$rr}cóʗt|«}|tjk(r;tjtj
j |¬«}t||«}t|«S)zŒ
    Find all files under 'dir' and return the list of full filenames.
    Unless dir is '.', return full filenames with dir prepended.
    )Ústart)    rƒr+rtÚ    functoolsÚpartialr,Úrelpathr*Úlist)rrÚmake_rels   rrrjsJ€ô
˜SÓ !€EØ
Œbi‰iÒÜ×$Ñ$¤R§W¡W§_¡_¸CÔ@ˆÜH˜eÓ$ˆÜ ‹;Ðrcó´—tj|«}tj}tjdk(rd}d|›d}t    j
d||«}|S)zæTranslate a shell-like glob pattern to a regular expression; return
    a string containing the regex.  Differs from 'fnmatch.translate()' in
    that '*' does not match "special characters" (which are
    platform-specific).
    ú\z\\\\z\1[^ú]z((?<!\\)(\\\\)*)\.)ÚfnmatchÚ    translater+ÚsepÚreÚsub)rSrarÚescapeds    rÚ
glob_to_rer¡vsW€ô ×"Ñ" 7Ó+€Jô &‰&€CÜ    ‡vv‚~ðˆØcU˜!ˆn€GÜ—‘Ð-¨w¸
ÓC€JØ Ðrcó —|r't|t«rtj|«S|St    d«j d«\}}}|r/t    |«}|j |«r|j|«sJ‚d}|©t    |«}|j |«r|j|«sJ‚|t|«t|«t|«z
}tj}    tjdk(rd}    |t|«t|«t|«z
}|›d|›|    ›d|›|›}n|r|›d|t|«d›}tj|«S)aTranslate a shell-like wildcard pattern to a compiled regular
    expression.  Return the compiled regex.  If 'is_regex' true,
    then 'pattern' is directly compiled to a regex (if it's a string)
    or just returned as-is (assumes it's a regex object).
    Ú_ÚNr™z\\z\Az.*) Ú
isinstancerlržÚcompiler¡Ú    partitionÚ
startswithÚendswithr5r+r)
rSrMrNrXr’r£ÚendraÚ    prefix_rers
          rr^r^sD€ñ Ü gœsÔ #Ü—:‘:˜gÓ&Ð &àˆNô˜s“O×-Ñ-¨cÓ2M€Eˆ1ˆcáÜ Ó(ˆ
Ø×$Ñ$ UÔ+°
×0CÑ0CÀCÔ0HÐHÐHàˆ
à ÐܘvÓ&ˆ    Ø×#Ñ# EÔ*¨y×/AÑ/AÀ#Ô/FÐFÐFØœc %›j¬3¨y«>¼CÀ»HÑ+DÐEˆ    Üf‰fˆÜ 6‰6TŠ>؈Cؤ E£
¬S°«_¼sÀ3»xÑ-GÐHˆ
ؘ˜r ) ¨S¨E°°J°<À¸uÐE‰
á Ø"˜G 2 j´°U³°Ð&>Ð%?Ð@ˆJä :‰:jÓ !Ð!r)rrkrm)rsÚ
__future__rr›r“r+ržÚcollections.abcrÚtypingrrÚ_logrÚerrorsr    r
Úutilr r rƒÚsetr}rtrr¡r^rVrrú<module>r³s`ðñõ #ãÛÛ    Û    Ý$ß$åßBÝ÷iñiò^    +ô$#ô$ð6+-¯)©)ô    òô.""r