U
    Kvf?  ã                   @   s&   d dl Zd dlmZ dZddd„ZdS )é    Naw  Passing `None` as the seed currently return the NumPy singleton RandomState
(np.random.mtrand._rand). After release 0.13 this will change to using the
default generator provided by NumPy (np.random.default_rng()). If you need
reproducible draws, you should pass a seeded np.random.Generator, e.g.,

import numpy as np
seed = 32839283923801
rng = np.random.default_rng(seed)"
c                 C   sv   t tdƒrt| tjjƒr| S t| tjjƒr.| S t| tjjƒr@| S | dk	rTtj 	| ¡S ddl
}| tt¡ tjjjS dS )a›  
    Turn `seed` into a random number generator.

    Parameters
    ----------
    seed : {None, int, array_like[ints], `numpy.random.Generator`,
            `numpy.random.RandomState`, `scipy.stats.qmc.QMCEngine`}, optional

        If `seed` is None fresh, unpredictable entropy will be pulled
        from the OS and `numpy.random.Generator` is used.
        If `seed` is an int or ``array_like[ints]``, a new ``Generator``
        instance is used, seeded with `seed`.
        If `seed` is already a ``Generator``, ``RandomState`` or
        `scipy.stats.qmc.QMCEngine` instance then
        that instance is used.

        `scipy.stats.qmc.QMCEngine` requires SciPy >=1.7. It also means
        that the generator only have the method ``random``.

    Returns
    -------
    seed : {`numpy.random.Generator`, `numpy.random.RandomState`,
            `scipy.stats.qmc.QMCEngine`}

        Random number generator.
    ÚqmcNr   )ÚhasattrÚstatsÚ
isinstancer   Z	QMCEngineÚnpÚrandomZRandomStateÚ	GeneratorZdefault_rngÚwarningsÚwarnÚ_future_warnÚFutureWarningZmtrandZ_rand)Úseedr	   © r   ú>/tmp/pip-unpacked-wheel-2v6byqio/statsmodels/tools/rng_qrng.pyÚcheck_random_state   s    
ÿr   )N)Znumpyr   Zscipy.statsr   r   r   r   r   r   r   Ú<module>   s   