diff options
| author | Kevin Sheppard <kevin.k.sheppard@gmail.com> | 2021-02-11 13:43:33 +0000 |
|---|---|---|
| committer | Kevin Sheppard <kevin.k.sheppard@gmail.com> | 2021-02-13 22:58:12 +0000 |
| commit | 26bb3160856426dd21fb7a4ad956b0983e5065c4 (patch) | |
| tree | 3d7ab28e896057a3992087be93e98c75c05ed686 /numpy | |
| parent | 7a18e4ac4f0b9f0933a190ac25cd75729bcdd146 (diff) | |
| download | numpy-26bb3160856426dd21fb7a4ad956b0983e5065c4.tar.gz | |
ENH: Initial typing of random
Add typing to the lowest-level building blocks on random
Diffstat (limited to 'numpy')
| -rw-r--r-- | numpy/random/__init__.pyi | 3 | ||||
| -rw-r--r-- | numpy/random/bit_generator.pyi | 61 |
2 files changed, 62 insertions, 2 deletions
diff --git a/numpy/random/__init__.pyi b/numpy/random/__init__.pyi index bd5ece536..2b0571c45 100644 --- a/numpy/random/__init__.pyi +++ b/numpy/random/__init__.pyi @@ -1,4 +1,5 @@ from typing import Any, List +from numpy.random.bit_generator import BitGenerator, SeedSequence __all__: List[str] @@ -54,10 +55,8 @@ weibull: Any zipf: Any Generator: Any RandomState: Any -SeedSequence: Any MT19937: Any Philox: Any PCG64: Any SFC64: Any default_rng: Any -BitGenerator: Any diff --git a/numpy/random/bit_generator.pyi b/numpy/random/bit_generator.pyi new file mode 100644 index 000000000..c2c9ed50e --- /dev/null +++ b/numpy/random/bit_generator.pyi @@ -0,0 +1,61 @@ +from threading import Lock +from typing import Literal, Optional + +from numpy import DtypeLike, ndarray +from numpy.typing import ArrayLike, _ShapeLike + +class SeedlessSeedSequence: + def generate_state( + self, n_words: int, dtype: DtypeLike = ... + ) -> ndarray: ... + def spawn(self, n_children: int) -> List[SeedlessSeedSequence]: ... + +class SeedSequence: + def __init__( + self, + entropy: Optional[int, Sequence[int]] = ..., + *, + spawn_key: Tuple[int, ...] = ... + ) -> None: ... + def __repr__(self) -> str: ... + @property + def state( + self, + ) -> Dict[str, Union[None, Sequence[int], int, Tuple[int, ...]]]: ... + def generate_state( + self, n_words: int, dtype: DtypeLike = np.uint32 + ) -> ndarray: ... + def spawn(self, n_children: int) -> List[SeedSequence]: ... + +class BitGenerator: + lock: Lock + def __init__(self, seed=Optional[int, ArrayLike, 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]] + ]: ... + @property + def state(self) -> Dict[str, Any]: ... + @state.setter + def state(self, value: Dict[str, Any]): ... + @overload + def random_raw( + self, size: None = ..., output: Literal[True] = ... + ) -> int: ... + @overload + def random_raw( + self, size=_ShapeLike, output: Literal[True] = ... + ) -> ndarray: ... + @overload + def random_raw( + self, size=Optional[_ShapeLike], output: Literal[False] = ... + ) -> None: ... + def _benchmark(self, cnt: int, method: str = ...) -> None: ... + # TODO: These are untyped + @property + def ctypes(self) -> Any: ... + @property + def cffi(self) -> Any: ... |
