strategies

Computation and Sampling Strategies

This module defines strategies for computing distribution characteristics and generating random samples.

class pysatl_core.distributions.strategies.ComputationStrategy(*args, **kwargs)[source]

Bases: Protocol

Protocol for strategies that resolve computation methods for characteristics.

enable_caching

Whether to cache fitted computation methods.

Type:

bool

query_method(state, distr, **options)[source]
Return type:

GenericAlias[Any, Any]

Parameters:
  • state (GenericCharacteristicName)

  • distr (Distribution)

  • options (Any)

__init__(*args, **kwargs)
class pysatl_core.distributions.strategies.DefaultComputationStrategy(enable_caching=False)[source]

Bases: object

Default strategy for resolving characteristic computation methods.

This strategy first checks for analytical implementations provided by the distribution. If none exists, it walks the characteristic graph to find a conversion path from an analytical characteristic to the target characteristic.

Parameters:

enable_caching (bool, default False) – If True, cache fitted conversions to avoid repeated fitting.

_enable_caching

Whether caching is enabled.

Type:

bool

_cache

Cache of fitted computation methods.

Type:

dict[str, FittedComputationMethod]

_resolving

Tracking of currently resolving characteristics to detect cycles.

Type:

dict[int, set[str]]

__init__(enable_caching=False)[source]
Parameters:

enable_caching (bool)

Return type:

None

property is_caching_enabled: bool
query_method(state, distr, **options)[source]

Resolve a computation method for the target characteristic.

Resolution order: 1. Cached fitted method (if caching enabled) 2. Analytical implementation for non-registry characteristics 3. Analytical self-loop from the registry view 4. Conversion path from analytical-loop characteristics via the graph

Parameters:
  • state (str) – Target characteristic name (e.g., “pdf”, “cdf”).

  • distr (Distribution) – Distribution to compute the characteristic for.

  • **options (Any) – Additional options passed to fitters.

Returns:

Callable that computes the characteristic.

Return type:

Method

Raises:

RuntimeError – If no analytical base exists, no conversion path is found, or a cycle is detected.

class pysatl_core.distributions.strategies.SamplingStrategy(*args, **kwargs)[source]

Bases: Protocol

Protocol for strategies that generate samples from distributions.

sample(n, distr, **options)[source]
Return type:

TypeAliasType

Parameters:
__init__(*args, **kwargs)