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:
DistributionLightweight
Distributionimplementation 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:
- 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:
- Parameters:
characteristic_name (GenericCharacteristicName)
label_name (LabelName)