
    Ǆg
                        d dl mZ ddlmZ ddlmZ ddlmZ ddlm	Z	m
Z
 ddlmZ ddlmZ dd	lmZ ee	e
eed
Zd	ddZdefdZdefdZy)    )annotations   )BitGenerator)RandomState)Philox)PCG64	PCG64DXSM)SFC64)	Generator)MT19937)r   r   r	   r   r
   r   c                    t        | t              r	| } |       S | t        v rt        |    } |       S t        t	        |       dz         )a(  
    Pickling helper function that returns a bit generator object

    Parameters
    ----------
    bit_generator : type[BitGenerator] or str
        BitGenerator class or string containing the name of the BitGenerator

    Returns
    -------
    BitGenerator
        BitGenerator instance
    z$ is not a known BitGenerator module.)
isinstancetypeBitGenerators
ValueErrorstr)bit_generatorbit_gen_classs     \/home/mcse/projects/flask_80/flask-venv/lib/python3.12/site-packages/numpy/random/_pickle.py__bit_generator_ctorr      sX     -&% ? 
-	'%m4 ?	 !GG
 	
    c                Z    t        | t              rt        |       S t         ||             S )a  
    Pickling helper function that returns a Generator object

    Parameters
    ----------
    bit_generator_name : str or BitGenerator
        String containing the core BitGenerator's name or a
        BitGenerator instance
    bit_generator_ctor : callable, optional
        Callable function that takes bit_generator_name as its only argument
        and returns an instantized bit generator.

    Returns
    -------
    rg : Generator
        Generator using the named core BitGenerator
    )r   r   r   bit_generator_namebit_generator_ctors     r   __generator_ctorr   .   s-    & $l3+,,'(:;<<r   c                Z    t        | t              rt        |       S t         ||             S )a  
    Pickling helper function that returns a legacy RandomState-like object

    Parameters
    ----------
    bit_generator_name : str
        String containing the core BitGenerator's name
    bit_generator_ctor : callable, optional
        Callable function that takes bit_generator_name as its only argument
        and returns an instantized bit generator.

    Returns
    -------
    rs : RandomState
        Legacy RandomState using the named core BitGenerator
    )r   r   r   r   s     r   __randomstate_ctorr   G   s-    $ $l3-..)*<=>>r   N)r   zstr | type[BitGenerator])
__future__r   r   r   mtrandr   _philoxr   _pcg64r   r	   _sfc64r
   
_generatorr   _mt19937r   r   r   r   r    r   r   <module>r'      sR    " '   $  ! #'!	4 )2(<=2 +4*>?r   