|
1 | 1 | 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 | +) |
3 | 68 | from typing import Final |
4 | 69 |
|
| 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 | + |
5 | 90 | # _stat.c defines FILE_ATTRIBUTE_* constants conditionally, |
6 | 91 | # making them available only at runtime on Windows. |
7 | 92 | # stat.py unconditionally redefines the same FILE_ATTRIBUTE_* constants |
8 | 93 | # 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 |
26 | 111 |
|
27 | 112 | if sys.version_info >= (3, 13): |
28 | 113 | # https://github.com/python/cpython/issues/114081#issuecomment-2119017790 |
|
0 commit comments