pyhs3.distributions.Distribution

class pyhs3.distributions.Distribution(**data)[source]

Base class for probability distributions in HS3.

Provides the foundation for all distribution implementations, handling parameter management, constant generation, and symbolic expression evaluation using PyTensor.

Distributions separate the main probability model (likelihood) from additional extended likelihood terms (e.g., constraints). The complete probability is the product of both terms.

Inherits parameter processing functionality from Evaluable. Subclasses must implement _expression() to define computation logic.

Parameters:

data (Any)

__init__(**data)

Create a new model by parsing and validating input data from keyword arguments.

Raises [ValidationError][pydantic_core.ValidationError] if the input data cannot be validated to form a valid model.

self is explicitly positional-only to allow self as a field name.

Parameters:

data (Any)

Methods

__init__(**data)

Create a new model by parsing and validating input data from keyword arguments.

construct([_fields_set])

copy(*[, include, exclude, update, deep])

Returns a copy of the model.

dict(*[, include, exclude, by_alias, ...])

expression(context)

Evaluate and return a named PyTensor expression.

extended_likelihood(_context[, _data])

Extended likelihood contribution in normal space.

from_orm(obj)

get_parameter_list(context, param_key)

Reconstruct a parameter list from flattened indexed keys.

json(*[, include, exclude, by_alias, ...])

likelihood(context)

Main probability model for the distribution.

log_expression(context)

Log-probability combining main likelihood with extended terms.

model_construct([_fields_set])

Creates a new instance of the Model class with validated data.

model_copy(*[, update, deep])

!!! abstract "Usage Documentation"

model_dump(*[, mode, include, exclude, ...])

!!! abstract "Usage Documentation"

model_dump_json(*[, indent, ensure_ascii, ...])

!!! abstract "Usage Documentation"

model_json_schema([by_alias, ref_template, ...])

Generates a JSON schema for a model class.

model_parametrized_name(params)

Compute the class name for parametrizations of generic classes.

model_post_init(context, /)

This function is meant to behave like a BaseModel method to initialise private attributes.

model_rebuild(*[, force, raise_errors, ...])

Try to rebuild the pydantic-core schema for the model.

model_validate(obj, *[, strict, extra, ...])

Validate a pydantic model instance.

model_validate_json(json_data, *[, strict, ...])

!!! abstract "Usage Documentation"

model_validate_strings(obj, *[, strict, ...])

Validate the given object with string data against the Pydantic model.

parse_file(path, *[, content_type, ...])

parse_obj(obj)

parse_raw(b, *[, content_type, encoding, ...])

process_parameter(param_key)

Process a single parameter that can be either a string reference or numeric value.

process_parameter_list(param_key)

Process a list parameter containing mixed string references and numeric values.

schema([by_alias, ref_template])

schema_json(*[, by_alias, ref_template])

update_forward_refs(**localns)

validate(value)

Attributes

constants

Dictionary of PyTensor constants generated from numeric field values.

model_computed_fields

model_config

Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].

model_extra

Get extra fields set during validation.

model_fields

model_fields_set

Returns the set of fields that have been explicitly set on this model instance.

parameters

Set of parameter names this component depends on.

name

type