
    h                    f    S r SSKJr  SSKrSSKJr  SSS jjr\R                  R                  =r
rg)zLSet of random number generator functions: seeding, generator, hashing seeds.    )annotationsN)errorc                   U bi  [        U [        5      (       a  SU ::  dN  [        U [        5      SL a"  [        R                  " S[	        U 5       35      e[        R                  " SU  35      e[
        R                  R                  U 5      nUR                  n[        [
        R                  R                  U5      5      nX24$ )a/  Returns a NumPy random number generator (RNG) along with seed value from the inputted seed.

If ``seed`` is ``None`` then a **random** seed will be generated as the RNG's initial seed.
This randomly selected seed is returned as the second value of the tuple.

.. py:currentmodule:: gymnasium.Env

This function is called in :meth:`reset` to reset an environment's initial RNG.

Args:
    seed: The seed used to create the generator

Returns:
    A NumPy-based Random Number Generator and generator seed

Raises:
    Error: Seed must be a non-negative integer
r   Fz,Seed must be a python integer, actual type: z5Seed must be greater or equal to zero, actual value: )
isinstanceintr   ErrortypenprandomSeedSequenceentropyRandomNumberGeneratorPCG64)seedseed_seqnp_seedrngs       Q/home/james-whalen/.local/lib/python3.13/site-packages/gymnasium/utils/seeding.py	np_randomr   
   s    & D#!6!619dC E)++>tDzlK  ++GvN  yy%%d+HG
		 9
:C<    )N)r   z
int | Nonereturnztuple[np.random.Generator, int])__doc__
__future__r   numpyr
   	gymnasiumr   r   r   	GeneratorRNGr    r   r   <module>r      s.    R "   F !ii11 1r   