Sam Chaudry
Upload folder using huggingface_hub
7885a28 verified
raw
history blame
3.53 kB
import abc
from collections.abc import Callable, Mapping, Sequence
from threading import Lock
from typing import Any, ClassVar, Literal, NamedTuple, TypeAlias, TypedDict, overload, type_check_only
from _typeshed import Incomplete
from typing_extensions import CapsuleType, Self
import numpy as np
from numpy._typing import NDArray, _ArrayLikeInt_co, _DTypeLike, _ShapeLike, _UInt32Codes, _UInt64Codes
__all__ = ["BitGenerator", "SeedSequence"]
###
_DTypeLikeUint_: TypeAlias = _DTypeLike[np.uint32 | np.uint64] | _UInt32Codes | _UInt64Codes
@type_check_only
class _SeedSeqState(TypedDict):
entropy: int | Sequence[int] | None
spawn_key: tuple[int, ...]
pool_size: int
n_children_spawned: int
@type_check_only
class _Interface(NamedTuple):
state_address: Incomplete
state: Incomplete
next_uint64: Incomplete
next_uint32: Incomplete
next_double: Incomplete
bit_generator: Incomplete
@type_check_only
class _CythonMixin:
def __setstate_cython__(self, pyx_state: object, /) -> None: ...
def __reduce_cython__(self) -> Any: ... # noqa: ANN401
@type_check_only
class _GenerateStateMixin(_CythonMixin):
def generate_state(self, /, n_words: int, dtype: _DTypeLikeUint_ = ...) -> NDArray[np.uint32 | np.uint64]: ...
###
class ISeedSequence(abc.ABC):
@abc.abstractmethod
def generate_state(self, /, n_words: int, dtype: _DTypeLikeUint_ = ...) -> NDArray[np.uint32 | np.uint64]: ...
class ISpawnableSeedSequence(ISeedSequence, abc.ABC):
@abc.abstractmethod
def spawn(self, /, n_children: int) -> list[Self]: ...
class SeedlessSeedSequence(_GenerateStateMixin, ISpawnableSeedSequence):
def spawn(self, /, n_children: int) -> list[Self]: ...
class SeedSequence(_GenerateStateMixin, ISpawnableSeedSequence):
__pyx_vtable__: ClassVar[CapsuleType] = ...
entropy: int | Sequence[int] | None
spawn_key: tuple[int, ...]
pool_size: int
n_children_spawned: int
pool: NDArray[np.uint32]
def __init__(
self,
/,
entropy: _ArrayLikeInt_co | None = None,
*,
spawn_key: Sequence[int] = (),
pool_size: int = 4,
n_children_spawned: int = ...,
) -> None: ...
def spawn(self, /, n_children: int) -> list[Self]: ...
@property
def state(self) -> _SeedSeqState: ...
class BitGenerator(_CythonMixin, abc.ABC):
lock: Lock
@property
def state(self) -> Mapping[str, Any]: ...
@state.setter
def state(self, value: Mapping[str, Any], /) -> None: ...
@property
def seed_seq(self) -> ISeedSequence: ...
@property
def ctypes(self) -> _Interface: ...
@property
def cffi(self) -> _Interface: ...
@property
def capsule(self) -> CapsuleType: ...
#
def __init__(self, /, seed: _ArrayLikeInt_co | SeedSequence | None = None) -> None: ...
def __reduce__(self) -> tuple[Callable[[str], Self], tuple[str], tuple[Mapping[str, Any], ISeedSequence]]: ...
def spawn(self, /, n_children: int) -> list[Self]: ...
def _benchmark(self, /, cnt: int, method: str = "uint64") -> None: ...
#
@overload
def random_raw(self, /, size: None = None, output: Literal[True] = True) -> int: ...
@overload
def random_raw(self, /, size: _ShapeLike, output: Literal[True] = True) -> NDArray[np.uint64]: ...
@overload
def random_raw(self, /, size: _ShapeLike | None, output: Literal[False]) -> None: ...
@overload
def random_raw(self, /, size: _ShapeLike | None = None, *, output: Literal[False]) -> None: ...