Skip to content

Commit cdbbf03

Browse files
committed
Update mmap stubs for newer Python versions
Based on the Python stdlib documentation: - Since Python 3.5, mmap.{find,rfind,write} all accept any bytes-like. I've used the _typeshed.ReadableBuffer alias defined in python#4232. - Since Python 3.6, mmap.write returns the number of bytes written. - Since Python 3.3, mmap.read allows None as the parameter; while in Python 2 the argument cannot be omitted.
1 parent e05fbab commit cdbbf03

File tree

1 file changed

+18
-3
lines changed

1 file changed

+18
-3
lines changed

stdlib/2and3/mmap.pyi

Lines changed: 18 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,7 @@
11
import sys
22
from typing import (Optional, Sequence, Union, Generic, overload,
33
Iterable, Iterator, Sized, ContextManager, AnyStr)
4+
from _typeshed import ReadableBuffer
45

56
ACCESS_DEFAULT: int
67
ACCESS_READ: int
@@ -40,14 +41,20 @@ class _mmap(Generic[AnyStr]):
4041
else:
4142
def flush(self, offset: int = ..., size: int = ...) -> int: ...
4243
def move(self, dest: int, src: int, count: int) -> None: ...
43-
def read(self, n: int = ...) -> AnyStr: ...
44+
if sys.version_info >= (3, 3):
45+
def read(self, n: int = ...) -> AnyStr: ...
46+
else:
47+
def read(self, n: int) -> AnyStr: ...
4448
def read_byte(self) -> AnyStr: ...
4549
def readline(self) -> AnyStr: ...
4650
def resize(self, newsize: int) -> None: ...
4751
def seek(self, pos: int, whence: int = ...) -> None: ...
4852
def size(self) -> int: ...
4953
def tell(self) -> int: ...
50-
def write(self, bytes: AnyStr) -> None: ...
54+
if sys.version_info >= (3, 6):
55+
def write(self, bytes: AnyStr) -> int: ...
56+
else:
57+
def write(self, bytes: AnyStr) -> None: ...
5158
def write_byte(self, byte: AnyStr) -> None: ...
5259
def __len__(self) -> int: ...
5360

@@ -56,7 +63,15 @@ if sys.version_info >= (3,):
5663
closed: bool
5764
if sys.version_info >= (3, 8) and sys.platform != "win32":
5865
def madvise(self, option: int, start: int = ..., length: int = ...) -> None: ...
59-
def rfind(self, sub: bytes, start: int = ..., stop: int = ...) -> int: ...
66+
if sys.version_info >= (3, 5):
67+
def find(self, sub: ReadableBuffer, start: int = ..., stop: int = ...) -> int: ...
68+
def rfind(self, sub: ReadableBuffer, start: int = ..., stop: int = ...) -> int: ...
69+
else:
70+
def rfind(self, sub: bytes, start: int = ..., stop: int = ...) -> int: ...
71+
if sys.version_info >= (3, 6):
72+
def write(self, bytes: ReadableBuffer) -> int: ...
73+
elif sys.version_info >= (3, 5):
74+
def write(self, bytes: ReadableBuffer) -> None: ...
6075
@overload
6176
def __getitem__(self, index: int) -> int: ...
6277
@overload

0 commit comments

Comments
 (0)