Setting#
Module: exa.common.data.parameter
- class Setting(parameter=None, value=None, read_only=False, path='', source=None)#
Bases:
BaseModelPhysical 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.
Attributes
Element-wise indices of the parameter in
self.Label used as pretty identifier for display purposes, same as label of
parameter.Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].
Name used as identifier, same as name of
parameter.Parent label of the parameter of
self.Parent name of the parameter of
self.Return the source for this Setting's value.
SI unit of the
value, if applicable, same as unit ofparameter.The parameter this Setting represents.
Data value attached to the parameter, or None to indicate no value.
Indicates if the attribute is read-only.
Path in the settings tree (starting from the root
SettingNode) for this setting.Methods
Utility for creating an element-wise parameter for a single value in a collection valued parameter.
Return a one-sided difference between two sets of Settings, prioritising values in first.
High-performance constructor that bypasses Pydantic validation.
get_by_namemergeremove_by_namereplaceCreate a Sweep object that represents a 1d scan of this setting over the given values.
Create a new setting object with updated value and source.
validate_parameter_value_afterCopy of self with the parameter name replaced by the path name.
- Parameters:
parameter (Parameter | None)
value (SettingValue)
read_only (bool)
path (str)
source (SourceType)
- value: SettingValue#
Data value attached to the parameter, or None to indicate no value.
- classmethod fast_construct(parameter, value, read_only=False, path='', source=None)#
High-performance constructor that bypasses Pydantic validation.
- update(value, source=None)#
Create a new setting object with updated value and source.
- Parameters:
value (Annotated[bool | str | int | float | complex | ndarray, PlainValidator(func=~exa.common.data.value.validate_value, json_schema_input_type=~typing.Any), PlainSerializer(func=~exa.common.data.value.serialize_value, return_type=PydanticUndefined, when_used=always), WithJsonSchema(json_schema={'type': 'any'}, mode=None)] | list | None) – New value for the setting.
source (None | BaseModel | dict[str, Any]) – New source for the setting.
- Returns:
Copy of
selfwith modified properties.- Return type:
- model_config = {'extra': 'ignore', 'frozen': True, 'ser_json_inf_nan': 'constants', 'validate_assignment': True, 'validate_default': False}#
Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].
- property parent_name#
Parent name of the parameter of
self.
- property parent_label#
Parent label of the parameter of
self.
- static diff_sets(first, second)#
Return a one-sided difference between two sets of Settings, prioritising values in first.
- Parameters:
- 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:
- 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
selfis not collection-valued.- Return type:
- with_path_name()#
Copy of self with the parameter name replaced by the path name.
- Return type:
- sweep(values)#
Create a Sweep object that represents a 1d scan of this setting over the given values.
- Parameters:
values (Annotated[list[Any] | ndarray, PlainValidator(func=~exa.common.control.sweep.sweep_values.validate_sweep_values, json_schema_input_type=~typing.Any), PlainSerializer(func=~exa.common.control.sweep.sweep_values.serialize_sweep_values, return_type=PydanticUndefined, when_used=always), WithJsonSchema(json_schema={'type': 'any'}, mode=None)]) – Sweep values.
- Returns:
The Sweep object.
- Return type:
Inheritance
