Mixin Classes#

This module provides access to multiple Mixin classes useful to provide optional functionality to objects which repeatedly uses that functionality.

class RandomNumberGenerationMixin(random_seed=None)[source]#

Bases: object

Mixin class that provides a unified interface to random number generation functionality through Numpy Random Number Generator.

Note

When you use this Mixin, make sure you put it as the last class in the inheritance tuple.

This Mixin introduces the following to the object inheriting this Mixin class:

  • Attributes:

    • _RNG: a random number generator created by calling numpy.random.default_rng().

  • Properties:

    • random_number_generator: a reference to the underlying random number generator _RNG.

  • Methods:

    • update_random_number_generator: reset/Update the underlying random_number generator

      by resetting it’s random_seed

__init__(random_seed=None)[source]#

Initialize the random number generator

update_random_number_generator(random_seed)[source]#

Reset/Update the underlying random_number generator by resetting it’s random_seed. This actually replaces the current random number generator with a new one created from the given seed

Parameters:

random_seed (int|None) – an integer (or None) to be used to reset the random sequence

Remarks:

In the future we may provide an argument to enable changing the generator/algorithm

property random_number_generator#

Return a handle to the underlying random number generator