1+ import os
12import sys
23from _typeshed import ReadableBuffer , Unused
34from collections .abc import Iterator
45from typing import Final , Literal , NoReturn , overload
56from 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
1415if 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 ]
1920if sys .version_info >= (3 , 11 ) and sys .platform != "win32" and sys .platform != "darwin" :
20- MAP_STACK : int
21+ MAP_STACK : Final [ int ]
2122
2223if 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
3334class 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
95100if 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
103108if 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
119124if 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
126131if 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
130135if sys .version_info >= (3 , 13 ) and sys .platform != "win32" :
131- MAP_32BIT : Final = 32768
136+ MAP_32BIT : Final [ int ]
132137
133138if sys .version_info >= (3 , 13 ) and sys .platform == "darwin" :
134139 MAP_NORESERVE : Final = 64
0 commit comments