CardinalityConstraint

class baybe.constraints.base.CardinalityConstraint[source]

Bases: Constraint, ABC

Abstract base class for cardinality constraints.

Places a constraint on the set of nonzero (i.e. “active”) values among the specified parameters, bounding it between the two given integers, i.e.

\[\text{min_cardinality} \leq |\{p_i : p_i \neq 0\}| \leq \text{max_cardinality}\]

where \(\{p_i\}\) are the parameters specified for the constraint.

Note that this can be equivalently regarded as L0-constraint on the vector containing the specified parameters.

Public methods

__init__(parameters[, min_cardinality, ...])

Method generated by attrs for class CardinalityConstraint.

from_dict(dictionary)

Create an object from its dictionary representation.

from_json(source, /)

Create an object from its JSON representation.

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.

Public attributes and properties

min_cardinality

The minimum required cardinality.

max_cardinality

The maximum allowed cardinality.

eval_during_augmentation

Class variable encoding whether the constraint could be considered during data augmentation.

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.

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.

__init__(parameters: list[str], min_cardinality: int = 0, max_cardinality: int = NOTHING)

Method generated by attrs for class CardinalityConstraint.

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.

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.

eval_during_augmentation: ClassVar[bool] = False

Class variable encoding whether the constraint could be considered during data augmentation.

eval_during_creation: ClassVar[bool]

Class variable encoding whether the condition is evaluated during creation.

eval_during_modeling: ClassVar[bool]

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.

max_cardinality: int

The maximum allowed cardinality.

min_cardinality: int

The minimum required cardinality.

numerical_only: ClassVar[bool] = True

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

parameters: list[str]

The list of parameters used for the constraint.