Spaces:
Configuration error
Configuration error
| # Use `Any` as the return type to avoid mypy problems with Union data types, | |
| # because numpy can return single number and ndarray | |
| import random as py_random | |
| from typing import Any, Optional, Sequence, Type, Union | |
| import numpy as np | |
| from .core.transforms_interface import NumType | |
| IntNumType = Union[int, np.ndarray] | |
| Size = Union[int, Sequence[int]] | |
| def get_random_state() -> np.random.RandomState: | |
| return np.random.RandomState(py_random.randint(0, (1 << 32) - 1)) | |
| def uniform( | |
| low: NumType = 0.0, | |
| high: NumType = 1.0, | |
| size: Optional[Size] = None, | |
| random_state: Optional[np.random.RandomState] = None, | |
| ) -> Any: | |
| if random_state is None: | |
| random_state = get_random_state() | |
| return random_state.uniform(low, high, size) | |
| def rand(d0: NumType, d1: NumType, *more, random_state: Optional[np.random.RandomState] = None, **kwargs) -> Any: | |
| if random_state is None: | |
| random_state = get_random_state() | |
| return random_state.rand(d0, d1, *more, **kwargs) # type: ignore | |
| def randn(d0: NumType, d1: NumType, *more, random_state: Optional[np.random.RandomState] = None, **kwargs) -> Any: | |
| if random_state is None: | |
| random_state = get_random_state() | |
| return random_state.randn(d0, d1, *more, **kwargs) # type: ignore | |
| def normal( | |
| loc: NumType = 0.0, | |
| scale: NumType = 1.0, | |
| size: Optional[Size] = None, | |
| random_state: Optional[np.random.RandomState] = None, | |
| ) -> Any: | |
| if random_state is None: | |
| random_state = get_random_state() | |
| return random_state.normal(loc, scale, size) | |
| def poisson( | |
| lam: NumType = 1.0, size: Optional[Size] = None, random_state: Optional[np.random.RandomState] = None | |
| ) -> Any: | |
| if random_state is None: | |
| random_state = get_random_state() | |
| return random_state.poisson(lam, size) | |
| def permutation( | |
| x: Union[int, Sequence[float], np.ndarray], random_state: Optional[np.random.RandomState] = None | |
| ) -> Any: | |
| if random_state is None: | |
| random_state = get_random_state() | |
| return random_state.permutation(x) | |
| def randint( | |
| low: IntNumType, | |
| high: Optional[IntNumType] = None, | |
| size: Optional[Size] = None, | |
| dtype: Type = np.int32, | |
| random_state: Optional[np.random.RandomState] = None, | |
| ) -> Any: | |
| if random_state is None: | |
| random_state = get_random_state() | |
| return random_state.randint(low, high, size, dtype) | |
| def random(size: Optional[NumType] = None, random_state: Optional[np.random.RandomState] = None) -> Any: | |
| if random_state is None: | |
| random_state = get_random_state() | |
| return random_state.random(size) # type: ignore | |
| def choice( | |
| a: NumType, | |
| size: Optional[Size] = None, | |
| replace: bool = True, | |
| p: Optional[Union[Sequence[float], np.ndarray]] = None, | |
| random_state: Optional[np.random.RandomState] = None, | |
| ) -> Any: | |
| if random_state is None: | |
| random_state = get_random_state() | |
| return random_state.choice(a, size, replace, p) # type: ignore | |