lightweight_distribution

Lightweight distribution snapshot for transformation pipelines.

The snapshot keeps only metadata required by transformations and strategies, while avoiding strong references to full parent distribution objects.

class pysatl_core.transformations.lightweight_distribution.LightweightDistribution(*, distribution_type, analytical_computations, support=None, sampling_strategy=None, computation_strategy=None, bases=None, loop_analytical_flags=None)[source]

Bases: Distribution

Lightweight Distribution implementation for transformation internals.

Parameters:
  • distribution_type (pysatl_core.types.DistributionType) – Type descriptor of the distribution.

  • analytical_computations (Mapping[str, Union[AnalyticalComputation[Any, Any], Mapping[str, AnalyticalComputation[Any, Any]]]]) –

    GenericCharacteristicName, (

    AnalyticalComputation[Any, Any] | Mapping[LabelName, AnalyticalComputation[Any, Any]]

    ),

  • ] – Labeled characteristic methods exposed by the snapshot.

  • support (Optional[pysatl_core.distributions.support.Support]) – Support metadata copied from the source distribution.

  • sampling_strategy (Optional[pysatl_core.distributions.strategies.SamplingStrategy]) – Sampling strategy attached to the snapshot.

  • computation_strategy (Optional[pysatl_core.distributions.strategies.ComputationStrategy]) – Computation strategy attached to the snapshot.

  • bases (Mapping[str, LightweightDistribution] | None) – Lightweight base snapshots for chained transformations.

  • loop_analytical_flags (Mapping[str, Mapping[str, bool]] | None) – GenericCharacteristicName, Mapping[LabelName, bool],

  • None (] |) – Optional analytical flags for loop variants.

  • optional – Optional analytical flags for loop variants.

__init__(*, distribution_type, analytical_computations, support=None, sampling_strategy=None, computation_strategy=None, bases=None, loop_analytical_flags=None)[source]

Initialize common distribution state.

Parameters:
  • distribution_type (pysatl_core.types.DistributionType) – Type information about the distribution (kind, dimension, etc.).

  • analytical_computations (Mapping[str, Union[AnalyticalComputation[Any, Any], Mapping[str, AnalyticalComputation[Any, Any]]]]) –

    Distribution-provided characteristic methods. For non-transformed distributions these methods are fully analytical.

    Note

    Each characteristic callable should accept and return NumPy arrays (array semantics). Scalar-only callables are wrapped automatically via numpy.vectorize, but at a significant per-element overhead cost.

  • support (Optional[pysatl_core.distributions.support.Support]) – Support of the distribution.

  • sampling_strategy (Optional[pysatl_core.distributions.strategies.SamplingStrategy]) – Sampling strategy instance. If omitted, univariate default is used.

  • computation_strategy (Optional[pysatl_core.distributions.strategies.ComputationStrategy]) – Computation strategy instance. If omitted, default strategy is used.

  • bases (Mapping[ParentRole, LightweightDistribution] | None)

  • loop_analytical_flags (Mapping[GenericCharacteristicName, Mapping[LabelName, bool]] | None)

Return type:

None

classmethod from_distribution(distribution)[source]

Build a lightweight snapshot from an arbitrary distribution.

The method copies only strategy-relevant fields and recursively snapshots known bases when the source distribution exposes them.

Parameters:

distribution (pysatl_core.distributions.distribution.Distribution) – Source distribution.

Returns:

Lightweight snapshot compatible with Distribution.

Return type:

LightweightDistribution

property bases: Mapping[ParentRole, TypeAliasForwardRef('pysatl_core.distributions.distribution.Distribution')]

Get lightweight base snapshots grouped by role.

loop_is_analytical(characteristic_name, label_name)[source]

Return preserved loop analytical flag for the snapshot.

Return type:

bool

Parameters: