Skip to content

Commit 9a0df4b

Browse files
committed
use the redef workaround from PR#12729
1 parent d564e54 commit 9a0df4b

File tree

2 files changed

+25
-27
lines changed

2 files changed

+25
-27
lines changed

stdlib/@tests/stubtest_allowlists/win32.txt

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -47,7 +47,6 @@ tty
4747
# Other allowlist entries that cannot or should not be fixed
4848
# ==========================================================
4949

50-
_stat.FILE_ATTRIBUTE_[A-Z_]+ # stdlib redefines these in stat.py
5150
multiprocessing.popen_fork # exists on Windows but fails to import
5251
multiprocessing.popen_forkserver # exists on Windows but fails to import
5352
multiprocessing.popen_spawn_posix # exists on Windows but fails to import

stdlib/stat.pyi

Lines changed: 25 additions & 26 deletions
Original file line numberDiff line numberDiff line change
@@ -1,32 +1,31 @@
1-
# pyright: reportConstantRedefinition=false
2-
31
import sys
4-
from _stat import * # pyright: ignore[reportGeneralTypeIssues]
2+
from _stat import *
53
from typing import Final
64

7-
# _stat.py defines FILE_ATTRIBUTE_* constants conditionally,
8-
# making them available only at runtime on Windows.
9-
# stat.py unconditionally redefines the same FILE_ATTRIBUTE_* constants
10-
# on all platforms.
11-
# See:
12-
# <https://github.com/python/cpython/blob/447c7a89fb41b7fa84b9b26f111aedd649bc5400/Lib/stat.py#L181-L200>
13-
FILE_ATTRIBUTE_ARCHIVE: Final = 32
14-
FILE_ATTRIBUTE_COMPRESSED: Final = 2048
15-
FILE_ATTRIBUTE_DEVICE: Final = 64
16-
FILE_ATTRIBUTE_DIRECTORY: Final = 16
17-
FILE_ATTRIBUTE_ENCRYPTED: Final = 16384
18-
FILE_ATTRIBUTE_HIDDEN: Final = 2
19-
FILE_ATTRIBUTE_INTEGRITY_STREAM: Final = 32768
20-
FILE_ATTRIBUTE_NORMAL: Final = 128
21-
FILE_ATTRIBUTE_NOT_CONTENT_INDEXED: Final = 8192
22-
FILE_ATTRIBUTE_NO_SCRUB_DATA: Final = 131072
23-
FILE_ATTRIBUTE_OFFLINE: Final = 4096
24-
FILE_ATTRIBUTE_READONLY: Final = 1
25-
FILE_ATTRIBUTE_REPARSE_POINT: Final = 1024
26-
FILE_ATTRIBUTE_SPARSE_FILE: Final = 512
27-
FILE_ATTRIBUTE_SYSTEM: Final = 4
28-
FILE_ATTRIBUTE_TEMPORARY: Final = 256
29-
FILE_ATTRIBUTE_VIRTUAL: Final = 65536
5+
if sys.platform != "win32":
6+
# _stat.py defines FILE_ATTRIBUTE_* constants conditionally,
7+
# making them available only at runtime on Windows.
8+
# stat.py unconditionally redefines the same FILE_ATTRIBUTE_* constants
9+
# on all platforms.
10+
# See:
11+
# <https://github.com/python/cpython/blob/447c7a89fb41b7fa84b9b26f111aedd649bc5400/Lib/stat.py#L181-L200>
12+
FILE_ATTRIBUTE_ARCHIVE: Final = 32
13+
FILE_ATTRIBUTE_COMPRESSED: Final = 2048
14+
FILE_ATTRIBUTE_DEVICE: Final = 64
15+
FILE_ATTRIBUTE_DIRECTORY: Final = 16
16+
FILE_ATTRIBUTE_ENCRYPTED: Final = 16384
17+
FILE_ATTRIBUTE_HIDDEN: Final = 2
18+
FILE_ATTRIBUTE_INTEGRITY_STREAM: Final = 32768
19+
FILE_ATTRIBUTE_NORMAL: Final = 128
20+
FILE_ATTRIBUTE_NOT_CONTENT_INDEXED: Final = 8192
21+
FILE_ATTRIBUTE_NO_SCRUB_DATA: Final = 131072
22+
FILE_ATTRIBUTE_OFFLINE: Final = 4096
23+
FILE_ATTRIBUTE_READONLY: Final = 1
24+
FILE_ATTRIBUTE_REPARSE_POINT: Final = 1024
25+
FILE_ATTRIBUTE_SPARSE_FILE: Final = 512
26+
FILE_ATTRIBUTE_SYSTEM: Final = 4
27+
FILE_ATTRIBUTE_TEMPORARY: Final = 256
28+
FILE_ATTRIBUTE_VIRTUAL: Final = 65536
3029

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

0 commit comments

Comments
 (0)