11import sys
2- from typing import Literal
3-
4- SF_APPEND : Literal [ 0x00040000 ]
5- SF_ARCHIVED : Literal [ 0x00010000 ]
6- SF_IMMUTABLE : Literal [ 0x00020000 ]
7- SF_NOUNLINK : Literal [ 0x00100000 ]
8- SF_SNAPSHOT : Literal [ 0x00200000 ]
9-
10- ST_MODE : Literal [ 0 ]
11- ST_INO : Literal [ 1 ]
12- ST_DEV : Literal [ 2 ]
13- ST_NLINK : Literal [ 3 ]
14- ST_UID : Literal [ 4 ]
15- ST_GID : Literal [ 5 ]
16- ST_SIZE : Literal [ 6 ]
17- ST_ATIME : Literal [ 7 ]
18- ST_MTIME : Literal [ 8 ]
19- ST_CTIME : Literal [ 9 ]
20-
21- S_IFIFO : Literal [ 0o010000 ]
22- S_IFLNK : Literal [ 0o120000 ]
23- S_IFREG : Literal [ 0o100000 ]
24- S_IFSOCK : Literal [ 0o140000 ]
25- S_IFBLK : Literal [ 0o060000 ]
26- S_IFCHR : Literal [ 0o020000 ]
27- S_IFDIR : Literal [ 0o040000 ]
2+ from typing import Final
3+
4+ SF_APPEND : Final = 0x00040000
5+ SF_ARCHIVED : Final = 0x00010000
6+ SF_IMMUTABLE : Final = 0x00020000
7+ SF_NOUNLINK : Final = 0x00100000
8+ SF_SNAPSHOT : Final = 0x00200000
9+
10+ ST_MODE : Final = 0
11+ ST_INO : Final = 1
12+ ST_DEV : Final = 2
13+ ST_NLINK : Final = 3
14+ ST_UID : Final = 4
15+ ST_GID : Final = 5
16+ ST_SIZE : Final = 6
17+ ST_ATIME : Final = 7
18+ ST_MTIME : Final = 8
19+ ST_CTIME : Final = 9
20+
21+ S_IFIFO : Final = 0o010000
22+ S_IFLNK : Final = 0o120000
23+ S_IFREG : Final = 0o100000
24+ S_IFSOCK : Final = 0o140000
25+ S_IFBLK : Final = 0o060000
26+ S_IFCHR : Final = 0o020000
27+ S_IFDIR : Final = 0o040000
2828
2929# These are 0 on systems that don't support the specific kind of file.
3030# Example: Linux doesn't support door files, so S_IFDOOR is 0 on linux.
3131S_IFDOOR : int
3232S_IFPORT : int
3333S_IFWHT : int
3434
35- S_ISUID : Literal [ 0o4000 ]
36- S_ISGID : Literal [ 0o2000 ]
37- S_ISVTX : Literal [ 0o1000 ]
38-
39- S_IRWXU : Literal [ 0o0700 ]
40- S_IRUSR : Literal [ 0o0400 ]
41- S_IWUSR : Literal [ 0o0200 ]
42- S_IXUSR : Literal [ 0o0100 ]
43-
44- S_IRWXG : Literal [ 0o0070 ]
45- S_IRGRP : Literal [ 0o0040 ]
46- S_IWGRP : Literal [ 0o0020 ]
47- S_IXGRP : Literal [ 0o0010 ]
48-
49- S_IRWXO : Literal [ 0o0007 ]
50- S_IROTH : Literal [ 0o0004 ]
51- S_IWOTH : Literal [ 0o0002 ]
52- S_IXOTH : Literal [ 0o0001 ]
53-
54- S_ENFMT : Literal [ 0o2000 ]
55- S_IREAD : Literal [ 0o0400 ]
56- S_IWRITE : Literal [ 0o0200 ]
57- S_IEXEC : Literal [ 0o0100 ]
58-
59- UF_APPEND : Literal [ 0x00000004 ]
60- UF_COMPRESSED : Literal [ 0x00000020 ] # OS X 10.6+ only
61- UF_HIDDEN : Literal [ 0x00008000 ] # OX X 10.5+ only
62- UF_IMMUTABLE : Literal [ 0x00000002 ]
63- UF_NODUMP : Literal [ 0x00000001 ]
64- UF_NOUNLINK : Literal [ 0x00000010 ]
65- UF_OPAQUE : Literal [ 0x00000008 ]
35+ S_ISUID : Final = 0o4000
36+ S_ISGID : Final = 0o2000
37+ S_ISVTX : Final = 0o1000
38+
39+ S_IRWXU : Final = 0o0700
40+ S_IRUSR : Final = 0o0400
41+ S_IWUSR : Final = 0o0200
42+ S_IXUSR : Final = 0o0100
43+
44+ S_IRWXG : Final = 0o0070
45+ S_IRGRP : Final = 0o0040
46+ S_IWGRP : Final = 0o0020
47+ S_IXGRP : Final = 0o0010
48+
49+ S_IRWXO : Final = 0o0007
50+ S_IROTH : Final = 0o0004
51+ S_IWOTH : Final = 0o0002
52+ S_IXOTH : Final = 0o0001
53+
54+ S_ENFMT : Final = 0o2000
55+ S_IREAD : Final = 0o0400
56+ S_IWRITE : Final = 0o0200
57+ S_IEXEC : Final = 0o0100
58+
59+ UF_APPEND : Final = 0x00000004
60+ UF_COMPRESSED : Final = 0x00000020 # OS X 10.6+ only
61+ UF_HIDDEN : Final = 0x00008000 # OX X 10.5+ only
62+ UF_IMMUTABLE : Final = 0x00000002
63+ UF_NODUMP : Final = 0x00000001
64+ UF_NOUNLINK : Final = 0x00000010
65+ UF_OPAQUE : Final = 0x00000008
6666
6767def S_IMODE (mode : int , / ) -> int : ...
6868def S_IFMT (mode : int , / ) -> int : ...
@@ -84,34 +84,36 @@ if sys.platform == "win32":
8484 IO_REPARSE_TAG_APPEXECLINK : int
8585
8686if sys .platform == "win32" :
87- FILE_ATTRIBUTE_ARCHIVE : Literal [ 32 ]
88- FILE_ATTRIBUTE_COMPRESSED : Literal [ 2048 ]
89- FILE_ATTRIBUTE_DEVICE : Literal [ 64 ]
90- FILE_ATTRIBUTE_DIRECTORY : Literal [ 16 ]
91- FILE_ATTRIBUTE_ENCRYPTED : Literal [ 16384 ]
92- FILE_ATTRIBUTE_HIDDEN : Literal [ 2 ]
93- FILE_ATTRIBUTE_INTEGRITY_STREAM : Literal [ 32768 ]
94- FILE_ATTRIBUTE_NORMAL : Literal [ 128 ]
95- FILE_ATTRIBUTE_NOT_CONTENT_INDEXED : Literal [ 8192 ]
96- FILE_ATTRIBUTE_NO_SCRUB_DATA : Literal [ 131072 ]
97- FILE_ATTRIBUTE_OFFLINE : Literal [ 4096 ]
98- FILE_ATTRIBUTE_READONLY : Literal [ 1 ]
99- FILE_ATTRIBUTE_REPARSE_POINT : Literal [ 1024 ]
100- FILE_ATTRIBUTE_SPARSE_FILE : Literal [ 512 ]
101- FILE_ATTRIBUTE_SYSTEM : Literal [ 4 ]
102- FILE_ATTRIBUTE_TEMPORARY : Literal [ 256 ]
103- FILE_ATTRIBUTE_VIRTUAL : Literal [ 65536 ]
87+ FILE_ATTRIBUTE_ARCHIVE : Final = 32
88+ FILE_ATTRIBUTE_COMPRESSED : Final = 2048
89+ FILE_ATTRIBUTE_DEVICE : Final = 64
90+ FILE_ATTRIBUTE_DIRECTORY : Final = 16
91+ FILE_ATTRIBUTE_ENCRYPTED : Final = 16384
92+ FILE_ATTRIBUTE_HIDDEN : Final = 2
93+ FILE_ATTRIBUTE_INTEGRITY_STREAM : Final = 32768
94+ FILE_ATTRIBUTE_NORMAL : Final = 128
95+ FILE_ATTRIBUTE_NOT_CONTENT_INDEXED : Final = 8192
96+ FILE_ATTRIBUTE_NO_SCRUB_DATA : Final = 131072
97+ FILE_ATTRIBUTE_OFFLINE : Final = 4096
98+ FILE_ATTRIBUTE_READONLY : Final = 1
99+ FILE_ATTRIBUTE_REPARSE_POINT : Final = 1024
100+ FILE_ATTRIBUTE_SPARSE_FILE : Final = 512
101+ FILE_ATTRIBUTE_SYSTEM : Final = 4
102+ FILE_ATTRIBUTE_TEMPORARY : Final = 256
103+ FILE_ATTRIBUTE_VIRTUAL : Final = 65536
104104
105105if sys .version_info >= (3 , 13 ):
106- SF_SETTABLE : Literal [0x3FFF0000 ]
106+ # Varies by platform.
107+ SF_SETTABLE : Final [int ]
107108 # https://github.com/python/cpython/issues/114081#issuecomment-2119017790
108109 # SF_RESTRICTED: Literal[0x00080000]
109- SF_FIRMLINK : Literal [ 0x00800000 ]
110- SF_DATALESS : Literal [ 0x40000000 ]
110+ SF_FIRMLINK : Final = 0x00800000
111+ SF_DATALESS : Final = 0x40000000
111112
112- SF_SUPPORTED : Literal [0x9F0000 ]
113- SF_SYNTHETIC : Literal [0xC0000000 ]
113+ if sys .platform == "darwin" :
114+ SF_SUPPORTED : Final = 0x9F0000
115+ SF_SYNTHETIC : Final = 0xC0000000
114116
115- UF_TRACKED : Literal [ 0x00000040 ]
116- UF_DATAVAULT : Literal [ 0x00000080 ]
117- UF_SETTABLE : Literal [ 0x0000FFFF ]
117+ UF_TRACKED : Final = 0x00000040
118+ UF_DATAVAULT : Final = 0x00000080
119+ UF_SETTABLE : Final = 0x0000FFFF
0 commit comments