Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
115 changes: 79 additions & 36 deletions stdlib/_blake2.pyi
Original file line number Diff line number Diff line change
@@ -1,3 +1,4 @@
import sys
from _typeshed import ReadableBuffer
from typing import ClassVar, Final, final
from typing_extensions import Self
Expand All @@ -20,24 +21,45 @@ class blake2b:
block_size: int
digest_size: int
name: str
def __new__(
cls,
data: ReadableBuffer = b"",
/,
*,
digest_size: int = 64,
key: ReadableBuffer = b"",
salt: ReadableBuffer = b"",
person: ReadableBuffer = b"",
fanout: int = 1,
depth: int = 1,
leaf_size: int = 0,
node_offset: int = 0,
node_depth: int = 0,
inner_size: int = 0,
last_node: bool = False,
usedforsecurity: bool = True,
) -> Self: ...
if sys.version_info >= (3, 13):
def __new__(
cls,
data: ReadableBuffer = b"",
*,
digest_size: int = 64,
key: ReadableBuffer = b"",
salt: ReadableBuffer = b"",
person: ReadableBuffer = b"",
fanout: int = 1,
depth: int = 1,
leaf_size: int = 0,
node_offset: int = 0,
node_depth: int = 0,
inner_size: int = 0,
last_node: bool = False,
usedforsecurity: bool = True,
string: ReadableBuffer | None = None,
) -> Self: ...
else:
def __new__(
cls,
data: ReadableBuffer = b"",
/,
*,
digest_size: int = 64,
key: ReadableBuffer = b"",
salt: ReadableBuffer = b"",
person: ReadableBuffer = b"",
fanout: int = 1,
depth: int = 1,
leaf_size: int = 0,
node_offset: int = 0,
node_depth: int = 0,
inner_size: int = 0,
last_node: bool = False,
usedforsecurity: bool = True,
) -> Self: ...

def copy(self) -> Self: ...
def digest(self) -> bytes: ...
def hexdigest(self) -> str: ...
Expand All @@ -52,24 +74,45 @@ class blake2s:
block_size: int
digest_size: int
name: str
def __new__(
cls,
data: ReadableBuffer = b"",
/,
*,
digest_size: int = 32,
key: ReadableBuffer = b"",
salt: ReadableBuffer = b"",
person: ReadableBuffer = b"",
fanout: int = 1,
depth: int = 1,
leaf_size: int = 0,
node_offset: int = 0,
node_depth: int = 0,
inner_size: int = 0,
last_node: bool = False,
usedforsecurity: bool = True,
) -> Self: ...
if sys.version_info >= (3, 13):
def __new__(
cls,
data: ReadableBuffer = b"",
*,
digest_size: int = 32,
key: ReadableBuffer = b"",
salt: ReadableBuffer = b"",
person: ReadableBuffer = b"",
fanout: int = 1,
depth: int = 1,
leaf_size: int = 0,
node_offset: int = 0,
node_depth: int = 0,
inner_size: int = 0,
last_node: bool = False,
usedforsecurity: bool = True,
string: ReadableBuffer | None = None,
) -> Self: ...
else:
def __new__(
cls,
data: ReadableBuffer = b"",
/,
*,
digest_size: int = 32,
key: ReadableBuffer = b"",
salt: ReadableBuffer = b"",
person: ReadableBuffer = b"",
fanout: int = 1,
depth: int = 1,
leaf_size: int = 0,
node_offset: int = 0,
node_depth: int = 0,
inner_size: int = 0,
last_node: bool = False,
usedforsecurity: bool = True,
) -> Self: ...

def copy(self) -> Self: ...
def digest(self) -> bytes: ...
def hexdigest(self) -> str: ...
Expand Down
29 changes: 24 additions & 5 deletions stdlib/_io.pyi
Original file line number Diff line number Diff line change
Expand Up @@ -11,7 +11,10 @@ from typing_extensions import Self

_T = TypeVar("_T")

DEFAULT_BUFFER_SIZE: Final = 8192
if sys.version_info >= (3, 14):
DEFAULT_BUFFER_SIZE: Final = 131072
else:
DEFAULT_BUFFER_SIZE: Final = 8192

open = builtins.open

Expand Down Expand Up @@ -118,14 +121,22 @@ _BufferedReaderStreamT = TypeVar("_BufferedReaderStreamT", bound=_BufferedReader

class BufferedReader(BufferedIOBase, _BufferedIOBase, BinaryIO, Generic[_BufferedReaderStreamT]): # type: ignore[misc] # incompatible definitions of methods in the base classes
raw: _BufferedReaderStreamT
def __init__(self, raw: _BufferedReaderStreamT, buffer_size: int = 8192) -> None: ...
if sys.version_info >= (3, 14):
def __init__(self, raw: _BufferedReaderStreamT, buffer_size: int = 131072) -> None: ...
else:
def __init__(self, raw: _BufferedReaderStreamT, buffer_size: int = 8192) -> None: ...

def peek(self, size: int = 0, /) -> bytes: ...
def seek(self, target: int, whence: int = 0, /) -> int: ...
def truncate(self, pos: int | None = None, /) -> int: ...

class BufferedWriter(BufferedIOBase, _BufferedIOBase, BinaryIO): # type: ignore[misc] # incompatible definitions of writelines in the base classes
raw: RawIOBase
def __init__(self, raw: RawIOBase, buffer_size: int = 8192) -> None: ...
if sys.version_info >= (3, 14):
def __init__(self, raw: RawIOBase, buffer_size: int = 131072) -> None: ...
else:
def __init__(self, raw: RawIOBase, buffer_size: int = 8192) -> None: ...

def write(self, buffer: ReadableBuffer, /) -> int: ...
def seek(self, target: int, whence: int = 0, /) -> int: ...
def truncate(self, pos: int | None = None, /) -> int: ...
Expand All @@ -134,13 +145,21 @@ class BufferedRandom(BufferedIOBase, _BufferedIOBase, BinaryIO): # type: ignore
mode: str
name: Any
raw: RawIOBase
def __init__(self, raw: RawIOBase, buffer_size: int = 8192) -> None: ...
if sys.version_info >= (3, 14):
def __init__(self, raw: RawIOBase, buffer_size: int = 131072) -> None: ...
else:
def __init__(self, raw: RawIOBase, buffer_size: int = 8192) -> None: ...

def seek(self, target: int, whence: int = 0, /) -> int: ... # stubtest needs this
def peek(self, size: int = 0, /) -> bytes: ...
def truncate(self, pos: int | None = None, /) -> int: ...

class BufferedRWPair(BufferedIOBase, _BufferedIOBase, Generic[_BufferedReaderStreamT]):
def __init__(self, reader: _BufferedReaderStreamT, writer: RawIOBase, buffer_size: int = 8192, /) -> None: ...
if sys.version_info >= (3, 14):
def __init__(self, reader: _BufferedReaderStreamT, writer: RawIOBase, buffer_size: int = 131072, /) -> None: ...
else:
def __init__(self, reader: _BufferedReaderStreamT, writer: RawIOBase, buffer_size: int = 8192, /) -> None: ...

def peek(self, size: int = 0, /) -> bytes: ...

class _TextIOBase(_IOBase):
Expand Down
9 changes: 7 additions & 2 deletions stdlib/_random.pyi
Original file line number Diff line number Diff line change
@@ -1,10 +1,15 @@
from typing_extensions import TypeAlias
import sys
from typing_extensions import Self, TypeAlias

# Actually Tuple[(int,) * 625]
_State: TypeAlias = tuple[int, ...]

class Random:
def __init__(self, seed: object = ...) -> None: ...
if sys.version_info >= (3, 10):
def __init__(self, seed: object = ..., /) -> None: ...
else:
def __new__(self, seed: object = ..., /) -> Self: ...

def seed(self, n: object = None, /) -> None: ...
def getstate(self) -> _State: ...
def setstate(self, state: _State, /) -> None: ...
Expand Down
5 changes: 5 additions & 0 deletions stdlib/random.pyi
Original file line number Diff line number Diff line change
Expand Up @@ -4,6 +4,7 @@ from _typeshed import SupportsLenAndGetItem
from collections.abc import Callable, Iterable, MutableSequence, Sequence, Set as AbstractSet
from fractions import Fraction
from typing import Any, ClassVar, NoReturn, TypeVar
from typing_extensions import Self

__all__ = [
"Random",
Expand Down Expand Up @@ -44,6 +45,10 @@ class Random(_random.Random):
# Using other `seed` types is deprecated since 3.9 and removed in 3.11
# Ignore Y041, since random.seed doesn't treat int like a float subtype. Having an explicit
# int better documents conventional usage of random.seed.
if sys.version_info < (3, 10):
# this is a workaround for pyright correctly flagging an inconsistent inherited constructor, see #14624
def __new__(cls, x: int | float | str | bytes | bytearray | None = None) -> Self: ... # noqa: Y041

def seed(self, a: int | float | str | bytes | bytearray | None = None, version: int = 2) -> None: ... # type: ignore[override] # noqa: Y041
def getstate(self) -> tuple[Any, ...]: ...
def setstate(self, state: tuple[Any, ...]) -> None: ...
Expand Down
2 changes: 1 addition & 1 deletion stdlib/select.pyi
Original file line number Diff line number Diff line change
Expand Up @@ -114,7 +114,7 @@ if sys.platform != "linux" and sys.platform != "win32":
if sys.platform == "linux":
@final
class epoll:
def __init__(self, sizehint: int = ..., flags: int = ...) -> None: ...
def __new__(self, sizehint: int = ..., flags: int = ...) -> Self: ...
def __enter__(self) -> Self: ...
def __exit__(
self,
Expand Down
7 changes: 6 additions & 1 deletion stubs/networkx/networkx/utils/misc.pyi
Original file line number Diff line number Diff line change
@@ -1,6 +1,7 @@
import random
import sys
from types import ModuleType
from typing_extensions import TypeAlias
from typing_extensions import Self, TypeAlias

import numpy

Expand Down Expand Up @@ -36,6 +37,10 @@ def create_random_state(random_state=None): ...

class PythonRandomViaNumpyBits(random.Random):
def __init__(self, rng: numpy.random.Generator | None = None) -> None: ...
if sys.version_info < (3, 10):
# this is a workaround for pyright correctly flagging an inconsistent inherited constructor, see #14624
def __new__(cls, rng: numpy.random.Generator | None = None) -> Self: ...

def getrandbits(self, k: int) -> int: ...

class PythonRandomInterface:
Expand Down
Loading