diff --git a/stdlib/@python2/mmap.pyi b/stdlib/@python2/mmap.pyi index 1b8a0202f..750d0829c 100644 --- a/stdlib/@python2/mmap.pyi +++ b/stdlib/@python2/mmap.pyi @@ -1,5 +1,5 @@ import sys -from typing import AnyStr, Generic, Optional, Sequence, Union +from typing import NoReturn, Optional, Sequence, Union ACCESS_DEFAULT: int ACCESS_READ: int @@ -23,7 +23,7 @@ if sys.platform != "win32": PAGESIZE: int -class _mmap(Generic[AnyStr]): +class mmap(Sequence[bytes]): if sys.platform == "win32": def __init__( self, fileno: int, length: int, tagname: Optional[str] = ..., access: int = ..., offset: int = ... @@ -35,21 +35,19 @@ class _mmap(Generic[AnyStr]): def close(self) -> None: ... def flush(self, offset: int = ..., size: int = ...) -> int: ... def move(self, dest: int, src: int, count: int) -> None: ... - def read_byte(self) -> AnyStr: ... - def readline(self) -> AnyStr: ... + def read_byte(self) -> bytes: ... + def readline(self) -> bytes: ... def resize(self, newsize: int) -> None: ... def seek(self, pos: int, whence: int = ...) -> None: ... def size(self) -> int: ... def tell(self) -> int: ... - def write_byte(self, byte: AnyStr) -> None: ... + def write_byte(self, byte: bytes) -> None: ... def __len__(self) -> int: ... - -class mmap(_mmap[bytes], Sequence[bytes]): def find(self, string: bytes, start: int = ..., end: int = ...) -> int: ... def rfind(self, string: bytes, start: int = ..., stop: int = ...) -> int: ... def read(self, num: int) -> bytes: ... def write(self, string: bytes) -> None: ... def __getitem__(self, index: Union[int, slice]) -> bytes: ... def __getslice__(self, i: Optional[int], j: Optional[int]) -> bytes: ... - def __delitem__(self, index: Union[int, slice]) -> None: ... + def __delitem__(self, index: Union[int, slice]) -> NoReturn: ... def __setitem__(self, index: Union[int, slice], object: bytes) -> None: ... diff --git a/stdlib/mmap.pyi b/stdlib/mmap.pyi index 691d4f621..b942ade9c 100644 --- a/stdlib/mmap.pyi +++ b/stdlib/mmap.pyi @@ -1,6 +1,6 @@ import sys from _typeshed import ReadableBuffer -from typing import AnyStr, ContextManager, Generic, Iterable, Iterator, Optional, Sized, Union, overload +from typing import ContextManager, Iterable, Iterator, NoReturn, Optional, Sized, Union, overload ACCESS_DEFAULT: int ACCESS_READ: int @@ -24,7 +24,7 @@ if sys.platform != "win32": PAGESIZE: int -class _mmap(Generic[AnyStr]): +class mmap(ContextManager[mmap], Iterable[int], Sized): if sys.platform == "win32": def __init__( self, fileno: int, length: int, tagname: Optional[str] = ..., access: int = ..., offset: int = ... @@ -39,16 +39,14 @@ class _mmap(Generic[AnyStr]): else: def flush(self, offset: int = ..., size: int = ...) -> int: ... def move(self, dest: int, src: int, count: int) -> None: ... - def read_byte(self) -> AnyStr: ... - def readline(self) -> AnyStr: ... + def read_byte(self) -> int: ... + def readline(self) -> bytes: ... def resize(self, newsize: int) -> None: ... def seek(self, pos: int, whence: int = ...) -> None: ... def size(self) -> int: ... def tell(self) -> int: ... - def write_byte(self, byte: AnyStr) -> None: ... + def write_byte(self, byte: int) -> None: ... def __len__(self) -> int: ... - -class mmap(_mmap[bytes], ContextManager[mmap], Iterable[bytes], Sized): closed: bool if sys.version_info >= (3, 8) and sys.platform != "win32": def madvise(self, option: int, start: int = ..., length: int = ...) -> None: ... @@ -60,14 +58,14 @@ class mmap(_mmap[bytes], ContextManager[mmap], Iterable[bytes], Sized): def __getitem__(self, index: int) -> int: ... @overload def __getitem__(self, index: slice) -> bytes: ... - def __delitem__(self, index: Union[int, slice]) -> None: ... + def __delitem__(self, index: Union[int, slice]) -> NoReturn: ... @overload def __setitem__(self, index: int, object: int) -> None: ... @overload - def __setitem__(self, index: slice, object: bytes) -> None: ... + def __setitem__(self, index: slice, object: ReadableBuffer) -> None: ... # Doesn't actually exist, but the object is actually iterable because it has __getitem__ and # __len__, so we claim that there is also an __iter__ to help type checkers. - def __iter__(self) -> Iterator[bytes]: ... + def __iter__(self) -> Iterator[int]: ... if sys.version_info >= (3, 8) and sys.platform != "win32": MADV_NORMAL: int