gemseo / uncertainty / distributions

factory module

Module containing a factory to create an instance of Distribution.

class gemseo.uncertainty.distributions.factory.DistributionFactory[source]

Bases: object

Factory to build instances of Distribution.

At initialization, this factory scans the following modules to search for subclasses of this class:

  • the modules located in gemseo.uncertainty.distributions and its sub-packages,

  • the modules referenced in the GEMSEO_PATH,

  • the modules referenced in the PYTHONPATH and starting with gemseo_.

Then, it can check if a class is present or return the list of available classes.

Lastly, it can create an instance of a class.

Examples

>>> from gemseo.uncertainty.distributions.factory import DistributionFactory
>>> factory = DistributionFactory()
>>> factory.is_available("OTNormalDistribution")
True
>>> factory.available_distributions[-3:]
['SPNormalDistribution', 'SPTriangularDistribution', 'SPUniformDistribution']
>>> distribution = factory.create("OTNormalDistribution", "x")
>>> print(distribution)
Normal(mu=0.0, sigma=1.0)
create(distribution_name, variable, **parameters)[source]

Create a probability distribution for a given random variable.

Parameters:
Returns:

The probability distribution instance.

Return type:

Distribution

is_available(distribution_name)[source]

Check the availability of a probability distribution.

Parameters:

distribution_name (str) – The name of a class defining a distribution.

Returns:

The availability of the distribution.

Return type:

bool

property available_distributions: list[str]

The available probability distributions.