Skip to content

Commit c06621b

Browse files
authored
[mmap] Use Final for constants (#14494)
1 parent 78faddc commit c06621b

File tree

2 files changed

+60
-55
lines changed

2 files changed

+60
-55
lines changed

stdlib/mmap.pyi

Lines changed: 55 additions & 50 deletions
Original file line numberDiff line numberDiff line change
@@ -1,38 +1,39 @@
1+
import os
12
import sys
23
from _typeshed import ReadableBuffer, Unused
34
from collections.abc import Iterator
45
from typing import Final, Literal, NoReturn, overload
56
from typing_extensions import Self
67

7-
ACCESS_DEFAULT: int
8-
ACCESS_READ: int
9-
ACCESS_WRITE: int
10-
ACCESS_COPY: int
8+
ACCESS_DEFAULT: Final = 0
9+
ACCESS_READ: Final = 1
10+
ACCESS_WRITE: Final = 2
11+
ACCESS_COPY: Final = 3
1112

12-
ALLOCATIONGRANULARITY: int
13+
ALLOCATIONGRANULARITY: Final[int]
1314

1415
if sys.platform == "linux":
15-
MAP_DENYWRITE: int
16-
MAP_EXECUTABLE: int
16+
MAP_DENYWRITE: Final[int]
17+
MAP_EXECUTABLE: Final[int]
1718
if sys.version_info >= (3, 10):
18-
MAP_POPULATE: int
19+
MAP_POPULATE: Final[int]
1920
if sys.version_info >= (3, 11) and sys.platform != "win32" and sys.platform != "darwin":
20-
MAP_STACK: int
21+
MAP_STACK: Final[int]
2122

2223
if sys.platform != "win32":
23-
MAP_ANON: int
24-
MAP_ANONYMOUS: int
25-
MAP_PRIVATE: int
26-
MAP_SHARED: int
27-
PROT_EXEC: int
28-
PROT_READ: int
29-
PROT_WRITE: int
24+
MAP_ANON: Final[int]
25+
MAP_ANONYMOUS: Final[int]
26+
MAP_PRIVATE: Final[int]
27+
MAP_SHARED: Final[int]
28+
PROT_EXEC: Final[int]
29+
PROT_READ: Final[int]
30+
PROT_WRITE: Final[int]
3031

31-
PAGESIZE: int
32+
PAGESIZE: Final[int]
3233

3334
class mmap:
3435
if sys.platform == "win32":
35-
def __init__(self, fileno: int, length: int, tagname: str | None = ..., access: int = ..., offset: int = ...) -> None: ...
36+
def __init__(self, fileno: int, length: int, tagname: str | None = None, access: int = 0, offset: int = 0) -> None: ...
3637
else:
3738
if sys.version_info >= (3, 13):
3839
def __new__(
@@ -41,34 +42,38 @@ class mmap:
4142
length: int,
4243
flags: int = ...,
4344
prot: int = ...,
44-
access: int = ...,
45-
offset: int = ...,
45+
access: int = 0,
46+
offset: int = 0,
4647
*,
4748
trackfd: bool = True,
4849
) -> Self: ...
4950
else:
5051
def __new__(
51-
cls, fileno: int, length: int, flags: int = ..., prot: int = ..., access: int = ..., offset: int = ...
52+
cls, fileno: int, length: int, flags: int = ..., prot: int = ..., access: int = 0, offset: int = 0
5253
) -> Self: ...
5354

5455
def close(self) -> None: ...
55-
def flush(self, offset: int = ..., size: int = ...) -> None: ...
56+
def flush(self, offset: int = 0, size: int = ...) -> None: ...
5657
def move(self, dest: int, src: int, count: int) -> None: ...
5758
def read_byte(self) -> int: ...
5859
def readline(self) -> bytes: ...
5960
def resize(self, newsize: int) -> None: ...
60-
def seek(self, pos: int, whence: int = ...) -> None: ...
61+
if sys.platform != "win32":
62+
def seek(self, pos: int, whence: Literal[0, 1, 2, 3, 4] = os.SEEK_SET) -> None: ...
63+
else:
64+
def seek(self, pos: int, whence: Literal[0, 1, 2] = os.SEEK_SET) -> None: ...
65+
6166
def size(self) -> int: ...
6267
def tell(self) -> int: ...
6368
def write_byte(self, byte: int) -> None: ...
6469
def __len__(self) -> int: ...
6570
closed: bool
6671
if sys.platform != "win32":
67-
def madvise(self, option: int, start: int = ..., length: int = ...) -> None: ...
72+
def madvise(self, option: int, start: int = 0, length: int = ...) -> None: ...
6873

6974
def find(self, sub: ReadableBuffer, start: int = ..., stop: int = ...) -> int: ...
7075
def rfind(self, sub: ReadableBuffer, start: int = ..., stop: int = ...) -> int: ...
71-
def read(self, n: int | None = ...) -> bytes: ...
76+
def read(self, n: int | None = None) -> bytes: ...
7277
def write(self, bytes: ReadableBuffer) -> int: ...
7378
@overload
7479
def __getitem__(self, key: int, /) -> int: ...
@@ -93,42 +98,42 @@ class mmap:
9398
def seekable(self) -> Literal[True]: ...
9499

95100
if sys.platform != "win32":
96-
MADV_NORMAL: int
97-
MADV_RANDOM: int
98-
MADV_SEQUENTIAL: int
99-
MADV_WILLNEED: int
100-
MADV_DONTNEED: int
101-
MADV_FREE: int
101+
MADV_NORMAL: Final[int]
102+
MADV_RANDOM: Final[int]
103+
MADV_SEQUENTIAL: Final[int]
104+
MADV_WILLNEED: Final[int]
105+
MADV_DONTNEED: Final[int]
106+
MADV_FREE: Final[int]
102107

103108
if sys.platform == "linux":
104-
MADV_REMOVE: int
105-
MADV_DONTFORK: int
106-
MADV_DOFORK: int
107-
MADV_HWPOISON: int
108-
MADV_MERGEABLE: int
109-
MADV_UNMERGEABLE: int
109+
MADV_REMOVE: Final[int]
110+
MADV_DONTFORK: Final[int]
111+
MADV_DOFORK: Final[int]
112+
MADV_HWPOISON: Final[int]
113+
MADV_MERGEABLE: Final[int]
114+
MADV_UNMERGEABLE: Final[int]
110115
# Seems like this constant is not defined in glibc.
111116
# See https://github.com/python/typeshed/pull/5360 for details
112-
# MADV_SOFT_OFFLINE: int
113-
MADV_HUGEPAGE: int
114-
MADV_NOHUGEPAGE: int
115-
MADV_DONTDUMP: int
116-
MADV_DODUMP: int
117+
# MADV_SOFT_OFFLINE: Final[int]
118+
MADV_HUGEPAGE: Final[int]
119+
MADV_NOHUGEPAGE: Final[int]
120+
MADV_DONTDUMP: Final[int]
121+
MADV_DODUMP: Final[int]
117122

118123
# This Values are defined for FreeBSD but type checkers do not support conditions for these
119124
if sys.platform != "linux" and sys.platform != "darwin" and sys.platform != "win32":
120-
MADV_NOSYNC: int
121-
MADV_AUTOSYNC: int
122-
MADV_NOCORE: int
123-
MADV_CORE: int
124-
MADV_PROTECT: int
125+
MADV_NOSYNC: Final[int]
126+
MADV_AUTOSYNC: Final[int]
127+
MADV_NOCORE: Final[int]
128+
MADV_CORE: Final[int]
129+
MADV_PROTECT: Final[int]
125130

126131
if sys.version_info >= (3, 10) and sys.platform == "darwin":
127-
MADV_FREE_REUSABLE: int
128-
MADV_FREE_REUSE: int
132+
MADV_FREE_REUSABLE: Final[int]
133+
MADV_FREE_REUSE: Final[int]
129134

130135
if sys.version_info >= (3, 13) and sys.platform != "win32":
131-
MAP_32BIT: Final = 32768
136+
MAP_32BIT: Final[int]
132137

133138
if sys.version_info >= (3, 13) and sys.platform == "darwin":
134139
MAP_NORESERVE: Final = 64

stdlib/os/__init__.pyi

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -597,12 +597,12 @@ if sys.platform == "darwin" and sys.version_info >= (3, 12):
597597
PRIO_DARWIN_PROCESS: int
598598
PRIO_DARWIN_THREAD: int
599599

600-
SEEK_SET: int
601-
SEEK_CUR: int
602-
SEEK_END: int
600+
SEEK_SET: Final = 0
601+
SEEK_CUR: Final = 1
602+
SEEK_END: Final = 2
603603
if sys.platform != "win32":
604-
SEEK_DATA: int
605-
SEEK_HOLE: int
604+
SEEK_DATA: Final = 3
605+
SEEK_HOLE: Final = 4
606606

607607
O_RDONLY: int
608608
O_WRONLY: int

0 commit comments

Comments
 (0)