132 lines
3.5 KiB
Python
132 lines
3.5 KiB
Python
|
"""
|
||
|
This type stub file was generated by pyright.
|
||
|
"""
|
||
|
|
||
|
import abc
|
||
|
from threading import Lock
|
||
|
from collections.abc import Callable, Mapping, Sequence
|
||
|
from typing import Any, Literal, NamedTuple, TypeVar, TypedDict, Union, overload
|
||
|
from numpy import dtype, ndarray, uint32, uint64
|
||
|
from numpy._typing import _ArrayLikeInt_co, _ShapeLike, _SupportsDType, _UInt32Codes, _UInt64Codes
|
||
|
|
||
|
_T = TypeVar("_T")
|
||
|
_DTypeLikeUint32 = Union[dtype[uint32], _SupportsDType[dtype[uint32]], type[uint32], _UInt32Codes,]
|
||
|
_DTypeLikeUint64 = Union[dtype[uint64], _SupportsDType[dtype[uint64]], type[uint64], _UInt64Codes,]
|
||
|
class _SeedSeqState(TypedDict):
|
||
|
entropy: None | int | Sequence[int]
|
||
|
spawn_key: tuple[int, ...]
|
||
|
pool_size: int
|
||
|
n_children_spawned: int
|
||
|
...
|
||
|
|
||
|
|
||
|
class _Interface(NamedTuple):
|
||
|
state_address: Any
|
||
|
state: Any
|
||
|
next_uint64: Any
|
||
|
next_uint32: Any
|
||
|
next_double: Any
|
||
|
bit_generator: Any
|
||
|
...
|
||
|
|
||
|
|
||
|
class ISeedSequence(abc.ABC):
|
||
|
@abc.abstractmethod
|
||
|
def generate_state(self, n_words: int, dtype: _DTypeLikeUint32 | _DTypeLikeUint64 = ...) -> ndarray[Any, dtype[uint32 | uint64]]:
|
||
|
...
|
||
|
|
||
|
|
||
|
|
||
|
class ISpawnableSeedSequence(ISeedSequence):
|
||
|
@abc.abstractmethod
|
||
|
def spawn(self: _T, n_children: int) -> list[_T]:
|
||
|
...
|
||
|
|
||
|
|
||
|
|
||
|
class SeedlessSeedSequence(ISpawnableSeedSequence):
|
||
|
def generate_state(self, n_words: int, dtype: _DTypeLikeUint32 | _DTypeLikeUint64 = ...) -> ndarray[Any, dtype[uint32 | uint64]]:
|
||
|
...
|
||
|
|
||
|
def spawn(self: _T, n_children: int) -> list[_T]:
|
||
|
...
|
||
|
|
||
|
|
||
|
|
||
|
class SeedSequence(ISpawnableSeedSequence):
|
||
|
entropy: None | int | Sequence[int]
|
||
|
spawn_key: tuple[int, ...]
|
||
|
pool_size: int
|
||
|
n_children_spawned: int
|
||
|
pool: ndarray[Any, dtype[uint32]]
|
||
|
def __init__(self, entropy: None | int | Sequence[int] | _ArrayLikeInt_co = ..., *, spawn_key: Sequence[int] = ..., pool_size: int = ..., n_children_spawned: int = ...) -> None:
|
||
|
...
|
||
|
|
||
|
def __repr__(self) -> str:
|
||
|
...
|
||
|
|
||
|
@property
|
||
|
def state(self) -> _SeedSeqState:
|
||
|
...
|
||
|
|
||
|
def generate_state(self, n_words: int, dtype: _DTypeLikeUint32 | _DTypeLikeUint64 = ...) -> ndarray[Any, dtype[uint32 | uint64]]:
|
||
|
...
|
||
|
|
||
|
def spawn(self, n_children: int) -> list[SeedSequence]:
|
||
|
...
|
||
|
|
||
|
|
||
|
|
||
|
class BitGenerator(abc.ABC):
|
||
|
lock: Lock
|
||
|
def __init__(self, seed: None | _ArrayLikeInt_co | SeedSequence = ...) -> None:
|
||
|
...
|
||
|
|
||
|
def __getstate__(self) -> dict[str, Any]:
|
||
|
...
|
||
|
|
||
|
def __setstate__(self, state: dict[str, Any]) -> None:
|
||
|
...
|
||
|
|
||
|
def __reduce__(self) -> tuple[Callable[[str], BitGenerator], tuple[str], tuple[dict[str, Any]]]:
|
||
|
...
|
||
|
|
||
|
@abc.abstractmethod
|
||
|
@property
|
||
|
def state(self) -> Mapping[str, Any]:
|
||
|
...
|
||
|
|
||
|
@state.setter
|
||
|
def state(self, value: Mapping[str, Any]) -> None:
|
||
|
...
|
||
|
|
||
|
@property
|
||
|
def seed_seq(self) -> ISeedSequence:
|
||
|
...
|
||
|
|
||
|
def spawn(self, n_children: int) -> list[BitGenerator]:
|
||
|
...
|
||
|
|
||
|
@overload
|
||
|
def random_raw(self, size: None = ..., output: Literal[True] = ...) -> int:
|
||
|
...
|
||
|
|
||
|
@overload
|
||
|
def random_raw(self, size: _ShapeLike = ..., output: Literal[True] = ...) -> ndarray[Any, dtype[uint64]]:
|
||
|
...
|
||
|
|
||
|
@overload
|
||
|
def random_raw(self, size: None | _ShapeLike = ..., output: Literal[False] = ...) -> None:
|
||
|
...
|
||
|
|
||
|
@property
|
||
|
def ctypes(self) -> _Interface:
|
||
|
...
|
||
|
|
||
|
@property
|
||
|
def cffi(self) -> _Interface:
|
||
|
...
|
||
|
|
||
|
|
||
|
|