2 from _typeshed import ReadableBuffer
3 from contextlib import AbstractContextManager
4 from typing import Iterable, Iterator, NoReturn, Sized, overload
11 ALLOCATIONGRANULARITY: int
13 if sys.platform == "linux":
17 if sys.platform != "win32":
28 class mmap(AbstractContextManager[mmap], Iterable[int], Sized):
29 if sys.platform == "win32":
30 def __init__(self, fileno: int, length: int, tagname: str | None = ..., access: int = ..., offset: int = ...) -> None: ...
33 self, fileno: int, length: int, flags: int = ..., prot: int = ..., access: int = ..., offset: int = ...
35 def close(self) -> None: ...
36 if sys.version_info >= (3, 8):
37 def flush(self, offset: int = ..., size: int = ...) -> None: ...
39 def flush(self, offset: int = ..., size: int = ...) -> int: ...
40 def move(self, dest: int, src: int, count: int) -> None: ...
41 def read_byte(self) -> int: ...
42 def readline(self) -> bytes: ...
43 def resize(self, newsize: int) -> None: ...
44 def seek(self, pos: int, whence: int = ...) -> None: ...
45 def size(self) -> int: ...
46 def tell(self) -> int: ...
47 def write_byte(self, byte: int) -> None: ...
48 def __len__(self) -> int: ...
50 if sys.version_info >= (3, 8) and sys.platform != "win32":
51 def madvise(self, option: int, start: int = ..., length: int = ...) -> None: ...
52 def find(self, sub: ReadableBuffer, start: int = ..., stop: int = ...) -> int: ...
53 def rfind(self, sub: ReadableBuffer, start: int = ..., stop: int = ...) -> int: ...
54 def read(self, n: int | None = ...) -> bytes: ...
55 def write(self, bytes: ReadableBuffer) -> int: ...
57 def __getitem__(self, index: int) -> int: ...
59 def __getitem__(self, index: slice) -> bytes: ...
60 def __delitem__(self, index: int | slice) -> NoReturn: ...
62 def __setitem__(self, index: int, object: int) -> None: ...
64 def __setitem__(self, index: slice, object: ReadableBuffer) -> None: ...
65 # Doesn't actually exist, but the object is actually iterable because it has __getitem__ and
66 # __len__, so we claim that there is also an __iter__ to help type checkers.
67 def __iter__(self) -> Iterator[int]: ...
69 if sys.version_info >= (3, 8) and sys.platform != "win32":
76 if sys.platform == "linux":
83 # Seems like this constant is not defined in glibc.
84 # See https://github.com/python/typeshed/pull/5360 for details
85 # MADV_SOFT_OFFLINE: int
92 # This Values are defined for FreeBSD but type checkers do not support conditions for these
93 if sys.platform != "linux" and sys.platform != "darwin":
100 if sys.version_info >= (3, 10) and sys.platform == "darwin":
101 MADV_FREE_REUSABLE: int