Skip to content

Commit d55212e

Browse files
committed
fix: explicitly import symbols from _stat
1 parent 32ea94e commit d55212e

File tree

1 file changed

+103
-18
lines changed

1 file changed

+103
-18
lines changed

stdlib/stat.pyi

Lines changed: 103 additions & 18 deletions
Original file line numberDiff line numberDiff line change
@@ -1,28 +1,113 @@
11
import sys
2-
from _stat import *
2+
from _stat import (
3+
S_ENFMT as S_ENFMT,
4+
S_IEXEC as S_IEXEC,
5+
S_IFBLK as S_IFBLK,
6+
S_IFCHR as S_IFCHR,
7+
S_IFDIR as S_IFDIR,
8+
S_IFDOOR as S_IFDOOR,
9+
S_IFIFO as S_IFIFO,
10+
S_IFLNK as S_IFLNK,
11+
S_IFMT as S_IFMT,
12+
S_IFPORT as S_IFPORT,
13+
S_IFREG as S_IFREG,
14+
S_IFSOCK as S_IFSOCK,
15+
S_IFWHT as S_IFWHT,
16+
S_IMODE as S_IMODE,
17+
S_IREAD as S_IREAD,
18+
S_IRGRP as S_IRGRP,
19+
S_IROTH as S_IROTH,
20+
S_IRUSR as S_IRUSR,
21+
S_IRWXG as S_IRWXG,
22+
S_IRWXO as S_IRWXO,
23+
S_IRWXU as S_IRWXU,
24+
S_ISBLK as S_ISBLK,
25+
S_ISCHR as S_ISCHR,
26+
S_ISDIR as S_ISDIR,
27+
S_ISDOOR as S_ISDOOR,
28+
S_ISFIFO as S_ISFIFO,
29+
S_ISGID as S_ISGID,
30+
S_ISLNK as S_ISLNK,
31+
S_ISPORT as S_ISPORT,
32+
S_ISREG as S_ISREG,
33+
S_ISSOCK as S_ISSOCK,
34+
S_ISUID as S_ISUID,
35+
S_ISVTX as S_ISVTX,
36+
S_ISWHT as S_ISWHT,
37+
S_IWGRP as S_IWGRP,
38+
S_IWOTH as S_IWOTH,
39+
S_IWRITE as S_IWRITE,
40+
S_IWUSR as S_IWUSR,
41+
S_IXGRP as S_IXGRP,
42+
S_IXOTH as S_IXOTH,
43+
S_IXUSR as S_IXUSR,
44+
SF_APPEND as SF_APPEND,
45+
SF_ARCHIVED as SF_ARCHIVED,
46+
SF_IMMUTABLE as SF_IMMUTABLE,
47+
SF_NOUNLINK as SF_NOUNLINK,
48+
SF_SNAPSHOT as SF_SNAPSHOT,
49+
ST_ATIME as ST_ATIME,
50+
ST_CTIME as ST_CTIME,
51+
ST_DEV as ST_DEV,
52+
ST_GID as ST_GID,
53+
ST_INO as ST_INO,
54+
ST_MODE as ST_MODE,
55+
ST_MTIME as ST_MTIME,
56+
ST_NLINK as ST_NLINK,
57+
ST_SIZE as ST_SIZE,
58+
ST_UID as ST_UID,
59+
UF_APPEND as UF_APPEND,
60+
UF_COMPRESSED as UF_COMPRESSED,
61+
UF_HIDDEN as UF_HIDDEN,
62+
UF_IMMUTABLE as UF_IMMUTABLE,
63+
UF_NODUMP as UF_NODUMP,
64+
UF_NOUNLINK as UF_NOUNLINK,
65+
UF_OPAQUE as UF_OPAQUE,
66+
filemode as filemode,
67+
)
368
from typing import Final
469

70+
if sys.platform == "win32":
71+
from _stat import (
72+
IO_REPARSE_TAG_APPEXECLINK as IO_REPARSE_TAG_APPEXECLINK,
73+
IO_REPARSE_TAG_MOUNT_POINT as IO_REPARSE_TAG_MOUNT_POINT,
74+
IO_REPARSE_TAG_SYMLINK as IO_REPARSE_TAG_SYMLINK,
75+
)
76+
77+
if sys.version_info >= (3, 13):
78+
from _stat import (
79+
SF_DATALESS as SF_DATALESS,
80+
SF_FIRMLINK as SF_FIRMLINK,
81+
SF_SETTABLE as SF_SETTABLE,
82+
UF_DATAVAULT as UF_DATAVAULT,
83+
UF_SETTABLE as UF_SETTABLE,
84+
UF_TRACKED as UF_TRACKED,
85+
)
86+
87+
if sys.platform == "darwin":
88+
from _stat import SF_SUPPORTED as SF_SUPPORTED, SF_SYNTHETIC as SF_SYNTHETIC
89+
590
# _stat.c defines FILE_ATTRIBUTE_* constants conditionally,
691
# making them available only at runtime on Windows.
792
# stat.py unconditionally redefines the same FILE_ATTRIBUTE_* constants
893
# on all platforms.
9-
FILE_ATTRIBUTE_ARCHIVE: Final = 32 # type: ignore[misc]
10-
FILE_ATTRIBUTE_COMPRESSED: Final = 2048 # type: ignore[misc]
11-
FILE_ATTRIBUTE_DEVICE: Final = 64 # type: ignore[misc]
12-
FILE_ATTRIBUTE_DIRECTORY: Final = 16 # type: ignore[misc]
13-
FILE_ATTRIBUTE_ENCRYPTED: Final = 16384 # type: ignore[misc]
14-
FILE_ATTRIBUTE_HIDDEN: Final = 2 # type: ignore[misc]
15-
FILE_ATTRIBUTE_INTEGRITY_STREAM: Final = 32768 # type: ignore[misc]
16-
FILE_ATTRIBUTE_NORMAL: Final = 128 # type: ignore[misc]
17-
FILE_ATTRIBUTE_NOT_CONTENT_INDEXED: Final = 8192 # type: ignore[misc]
18-
FILE_ATTRIBUTE_NO_SCRUB_DATA: Final = 131072 # type: ignore[misc]
19-
FILE_ATTRIBUTE_OFFLINE: Final = 4096 # type: ignore[misc]
20-
FILE_ATTRIBUTE_READONLY: Final = 1 # type: ignore[misc]
21-
FILE_ATTRIBUTE_REPARSE_POINT: Final = 1024 # type: ignore[misc]
22-
FILE_ATTRIBUTE_SPARSE_FILE: Final = 512 # type: ignore[misc]
23-
FILE_ATTRIBUTE_SYSTEM: Final = 4 # type: ignore[misc]
24-
FILE_ATTRIBUTE_TEMPORARY: Final = 256 # type: ignore[misc]
25-
FILE_ATTRIBUTE_VIRTUAL: Final = 65536 # type: ignore[misc]
94+
FILE_ATTRIBUTE_ARCHIVE: Final = 32
95+
FILE_ATTRIBUTE_COMPRESSED: Final = 2048
96+
FILE_ATTRIBUTE_DEVICE: Final = 64
97+
FILE_ATTRIBUTE_DIRECTORY: Final = 16
98+
FILE_ATTRIBUTE_ENCRYPTED: Final = 16384
99+
FILE_ATTRIBUTE_HIDDEN: Final = 2
100+
FILE_ATTRIBUTE_INTEGRITY_STREAM: Final = 32768
101+
FILE_ATTRIBUTE_NORMAL: Final = 128
102+
FILE_ATTRIBUTE_NOT_CONTENT_INDEXED: Final = 8192
103+
FILE_ATTRIBUTE_NO_SCRUB_DATA: Final = 131072
104+
FILE_ATTRIBUTE_OFFLINE: Final = 4096
105+
FILE_ATTRIBUTE_READONLY: Final = 1
106+
FILE_ATTRIBUTE_REPARSE_POINT: Final = 1024
107+
FILE_ATTRIBUTE_SPARSE_FILE: Final = 512
108+
FILE_ATTRIBUTE_SYSTEM: Final = 4
109+
FILE_ATTRIBUTE_TEMPORARY: Final = 256
110+
FILE_ATTRIBUTE_VIRTUAL: Final = 65536
26111

27112
if sys.version_info >= (3, 13):
28113
# https://github.com/python/cpython/issues/114081#issuecomment-2119017790

0 commit comments

Comments
 (0)