Source code for quara.utils.number_util

from pathlib import Path
from typing import Union

import numpy as np


[docs]def check_positive_number(target: float, parameter_name: str) -> None: """check if ``target`` is positive number. Parameters ---------- target : int the number to check. parameter_name : str the parameter name of the number. this is used for error message. Raises ------ ValueError ``target`` is not positive number. """ # check data if target <= 0: raise ValueError( f"Invalid value range '{parameter_name}'. expected>0, actual={target}" )
[docs]def check_nonnegative_number(target: float, parameter_name: str) -> None: """check if ``target`` is nonnegative number. Parameters ---------- target : int the number to check. parameter_name : str the parameter name of the number. this is used for error message. Raises ------ ValueError ``target`` is not nonnegative number. """ # check data if target < 0: raise ValueError( f"Invalid value range '{parameter_name}'. expected>=0, actual={target}" )
[docs]def to_stream( seed_or_stream: Union[int, np.random.RandomState] = None ) -> np.random.RandomState: """returns RandomState to generate random numbers. Parameters ---------- seed_or_stream : Union[int, np.random.RandomState], optional If the type is int, generates RandomState with seed `seed_or_stream` and returned generated RandomState. If the type is RandomState, returns RandomState. If argument is None, returns np.random. Default value is None. Returns ------- np.random.RandomState RandomState to generate random numbers. """ if seed_or_stream is None: stream = np.random elif type(seed_or_stream) == int: stream = np.random.RandomState(seed_or_stream) else: stream = seed_or_stream return stream