DiscreteDependenciesConstraint

class baybe.constraints.discrete.DiscreteDependenciesConstraint[source]

Bases: DiscreteConstraint

Constraint that specifies dependencies between parameters.

For instance some parameters might only be relevant when another parameter has a certain value (e.g. parameter switch is ‘on’). All dependencies must be declared in a single constraint.

Public methods

__init__(parameters, conditions, ...)

Method generated by attrs for class DiscreteDependenciesConstraint.

from_dict(dictionary)

Create an object from its dictionary representation.

from_json(source, /)

Create an object from its JSON representation.

get_invalid(data)

Get the indices of dataframe entries that are invalid under the constraint.

get_invalid_polars()

Translate the constraint to Polars expression identifying undesired rows.

get_valid(df, /)

Get the indices of dataframe entries that are valid under the constraint.

summary()

Return a custom summarization of the constraint.

to_dict()

Create an object's dictionary representation.

to_json([sink, overwrite])

Create an object's JSON representation.

to_symmetries([use_data_augmentation])

Convert to DependencySymmetry objects.

Public attributes and properties

conditions

The list of individual conditions.

affected_parameters

The parameters affected by the individual conditions.

permutation_invariant

Flag that indicates whether the affected parameters are permutation invariant.

eval_during_creation

Class variable encoding whether the condition is evaluated during creation.

eval_during_modeling

Class variable encoding whether the condition is evaluated during modeling.

is_continuous

Boolean indicating if this is a constraint over continuous parameters.

is_discrete

Boolean indicating if this is a constraint over discrete parameters.

numerical_only

Class variable encoding whether the constraint is valid only for numerical parameters.

parameters

The list of parameters used for the constraint.

__init__(parameters: list[str], conditions: list[Condition], affected_parameters: list[list[str]])

Method generated by attrs for class DiscreteDependenciesConstraint.

For details on the parameters, see Public attributes and properties.

classmethod from_dict(dictionary: dict)

Create an object from its dictionary representation.

Parameters:

dictionary (dict) – The dictionary representation.

Return type:

TypeVar(_T, bound= SerialMixin)

Returns:

The reconstructed object.

classmethod from_json(source: str | Path | SupportsRead[str], /)

Create an object from its JSON representation.

Parameters:

source (str | Path | SupportsRead[str]) –

The JSON source. Can be:

  • A string containing JSON content.

  • A file path or Path object pointing to a JSON file.

  • A file-like object with a read() method.

Raises:

ValueError – If source is not one of the allowed types.

Return type:

_T

Returns:

The reconstructed object.

get_invalid(data: DataFrame)[source]

Get the indices of dataframe entries that are invalid under the constraint.

Parameters:

data (DataFrame) – A dataframe where each row represents a parameter configuration.

Return type:

Index

Returns:

The dataframe indices of rows that violate the constraint.

get_invalid_polars()

Translate the constraint to Polars expression identifying undesired rows.

Return type:

pl.Expr

Returns:

The Polars expressions to pass to polars.LazyFrame.filter().

Raises:

NotImplementedError – If the constraint class does not have a Polars implementation.

get_valid(df: DataFrame, /)

Get the indices of dataframe entries that are valid under the constraint.

Parameters:

df (DataFrame) – A dataframe where each row represents a parameter configuration.

Return type:

Index

Returns:

The dataframe indices of rows that fulfill the constraint.

summary()

Return a custom summarization of the constraint.

Return type:

dict

to_dict()

Create an object’s dictionary representation.

Return type:

dict

Returns:

The dictionary representation of the object.

to_json(sink: str | Path | SupportsWrite[str] | None = None, /, *, overwrite: bool = False, **kwargs: Any)

Create an object’s JSON representation.

Parameters:
  • sink (str | Path | SupportsWrite[str] | None) –

    The JSON sink. Can be:

    • None (only returns the JSON string).

    • A file path or Path object pointing to a location where to write the JSON content.

    • A file-like object with a write() method.

  • overwrite (bool) – Boolean flag indicating if to overwrite the file if it already exists. Only relevant if sink is a file path or Path object.

  • **kwargs (Any) – Additional keyword arguments to pass to json.dumps().

Raises:

FileExistsError – If sink points to an already existing file but overwrite is False.

Return type:

str

Returns:

The JSON representation as a string.

to_symmetries(use_data_augmentation: bool = True)[source]

Convert to DependencySymmetry objects.

Create one symmetry object per dependency relationship, i.e., per (parameter, condition, affected_parameters) triple.

Parameters:

use_data_augmentation (bool) – Flag indicating whether the resulting symmetry objects should apply data augmentation. True means that measurement augmentation will be performed by replacing inactive affected parameter values with all possible values.

Return type:

tuple[DependencySymmetry, …]

Returns:

A tuple of dependency symmetries, one for each dependency in the constraint.

affected_parameters: list[list[str]]

The parameters affected by the individual conditions.

conditions: list[Condition]

The list of individual conditions.

eval_during_creation: ClassVar[bool] = True

Class variable encoding whether the condition is evaluated during creation.

eval_during_modeling: ClassVar[bool] = False

Class variable encoding whether the condition is evaluated during modeling.

property is_continuous: bool

Boolean indicating if this is a constraint over continuous parameters.

property is_discrete: bool

Boolean indicating if this is a constraint over discrete parameters.

numerical_only: ClassVar[bool] = False

Class variable encoding whether the constraint is valid only for numerical parameters.

parameters: list[str]

The list of parameters used for the constraint.

permutation_invariant: bool

Flag that indicates whether the affected parameters are permutation invariant. This should not be changed by the user but by other constraints using the class.