Setting#

class Setting(parameter=None, value=None, read_only=False, path='', source=None)#

Bases: BaseModel

Physical quantity represented as a Parameter attached to a numerical value.

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.

Module: exa.common.data.parameter

Attributes

element_indices

Element-wise indices of the parameter in self.

label

Label used as pretty identifier for display purposes, same as label of parameter.

model_config

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

name

Name used as identifier, same as name of parameter.

parent_label

Parent label of the parameter of self.

parent_name

Parent name of the parameter of self.

source

Return the source for this Setting's value.

unit

SI unit of the value, if applicable, same as unit of parameter.

parameter

The parameter this Setting represents.

value

Data value attached to the parameter.

read_only

Indicates if the attribute is read-only.

path

Path in the settings tree (starting from the root SettingNode) for this setting.

Methods

create_element_parameter_for

Utility for creating an element-wise parameter for a single value in a collection valued parameter.

diff_sets

Return a one-sided difference between two sets of Settings, prioritising values in first.

get_by_name

merge

model_post_init

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

remove_by_name

replace

update

Create a new setting object with updated value and source.

validate_parameter_value_after

with_path_name

Copy of self with the parameter name replaced by the path name.

Parameters:
  • parameter (Parameter | None) –

  • value (ObservationValue | None) –

  • read_only (bool) –

  • path (str) –

  • source (SourceType) –

parameter: Parameter#

The parameter this Setting represents.

value: ObservationValue#

Data value attached to the parameter.

read_only: bool#

Indicates if the attribute is read-only.

path: str#

Path in the settings tree (starting from the root SettingNode) for this setting.

_source: SourceType = ModelPrivateAttr()#

The source for this Setting value. May contain an observation (ObservationDefinition or ObservationData) or a source-dict (e.g. {"type": "configuration_source", "configurator": "defaults_from_yml"}). By default, None, which denotes the source not being specified (e.g. hardcoded defaults). The source is stored in a private attribute and thus is never serialized (the source field can contain non-serializable data such as Callables).

update(value, source=None)#

Create a new setting object with updated value and source.

Parameters:
Returns:

Copy of self with modified properties.

Return type:

Setting

property name#

Name used as identifier, same as name of parameter.

property parent_name#

Parent name of the parameter of self.

property label#

Label used as pretty identifier for display purposes, same as label of parameter.

model_config: ClassVar[ConfigDict] = {'extra': 'ignore', 'frozen': True, 'ser_json_inf_nan': 'constants', 'validate_assignment': True, 'validate_default': True}#

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

model_post_init(context, /)#

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

It takes context as an argument since that’s what pydantic-core passes when calling it.

Parameters:
  • self (BaseModel) – The BaseModel instance.

  • context (Any) – The context.

Return type:

None

property parent_label#

Parent label of the parameter of self.

property unit#

SI unit of the value, if applicable, same as unit of parameter.

property element_indices: int | list[int] | None#

Element-wise indices of the parameter in self.

property source: None | BaseModel | dict[str, Any]#

Return the source for this Setting’s value.

static diff_sets(first, second)#

Return a one-sided difference between two sets of Settings, prioritising values in first.

Parameters:
  • first (set[Setting]) – Set whose values will be in the resulting diff.

  • second (set[Setting]) – Set that is compared to first.

Returns:

A new set of Settings whose parameters are only found in first, and Settings in first whose values differ from their counterparts in second.

Return type:

set[Setting]

create_element_parameter_for(indices)#

Utility for creating an element-wise parameter for a single value in a collection valued parameter.

Parameters:

indices (int | list[int]) – The indices in the collection for which to create the element-wise parameter.

Returns:

The element-wise parameter.

Raises:

ValueError – If self is not collection-valued.

Return type:

Parameter

with_path_name()#

Copy of self with the parameter name replaced by the path name.

Return type:

Setting