Data Models

This section documents the data model classes used to define optimization problems, evaluator interfaces, and variable types in the Standard Evaluator library.

Optimization Problem

class OptProblem

Bases: BaseModel

Represents information about an optimization problem.

Parameters:
  • name – The name of the problem. Defaults to ‘opt_problem’.

  • variables – A list of input variables.

  • responses – A list of output variables.

  • objectives – Names of the objective(s) for the optimization problem. Must be either variables or responses defined in the problem.

  • constraints – Names of the constraints of the optimization problem. Must be responses defined in the problem. To define bounds on variables use the variable bounds.

  • description – A description of the optimization problem. To define mathematical symbols use markdown syntax.

  • cite – Listing of relevant citations that should be referenced when publishing work that uses this class.

  • options – Additional options for the problem.

Methods:

calculate_default([overwrite])

Calculate and set default values for all input variables.

variable_names()

Retrieve the names of all input variables.

response_names()

Retrieve the names of all output variables.

set_defaults(new_defaults)

Set new default values for input variables based on a provided dictionary.

validate_outputs(var)

Validate the names of the variables and responses.

unroll_names(elements)

Unroll the names of the variables and responses into a flat list.

check_problem()

Check the validity of the optimization problem setup.

build_maps()

Build flattened variable and response maps with Jacobian/gradient indexing.

model_post_init(context, /)

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

Attributes:

var_map

Return the flattened variable map DataFrame.

res_map

Return the flattened response map DataFrame.

flat_partials_res_indices

Return 1-D int array of response indices flagged as objective or constraint.

num_partials_responses

Return the count of selected responses for partials computation.

grad_cols

Return 1-D int array mapping selected responses to gradient column index or -1.

jac_cols

Return 1-D int array mapping selected responses to jacobian column index or -1.

num_objs_total

Return the total number of objective flattened responses.

__pydantic_fields_set__

The names of fields explicitly set during instantiation.

__pydantic_extra__

A dictionary containing extra values, if [extra][pydantic.config.ConfigDict.extra] is set to 'allow'.

__pydantic_private__

Values of private attributes set on the model instance.

__class_vars__

The names of the class variables defined on the model.

__private_attributes__

Metadata about the private attributes of the model.

__pydantic_complete__

Whether model building is completed, or if there are still undefined fields.

__pydantic_computed_fields__

A dictionary of computed field names and their corresponding [ComputedFieldInfo][pydantic.fields.ComputedFieldInfo] objects.

__pydantic_core_schema__

The core schema of the model.

__pydantic_custom_init__

Whether the model has a custom __init__ method.

__pydantic_decorators__

Metadata containing the decorators defined on the model.

__pydantic_extra_info__

A wrapper around the __pydantic_extra__ annotation, if explicitly annotated on a model.

__pydantic_fields__

A dictionary of field names and their corresponding [FieldInfo][pydantic.fields.FieldInfo] objects.

__pydantic_generic_metadata__

A dictionary containing metadata about generic Pydantic models.

__pydantic_parent_namespace__

Parent namespace of the model, used for automatic rebuilding of models.

__pydantic_post_init__

The name of the post-init method for the model, if defined.

__pydantic_serializer__

The pydantic-core SchemaSerializer used to dump instances of the model.

__pydantic_setattr_handlers__

__setattr__ handlers.

__pydantic_validator__

The pydantic-core SchemaValidator used to validate instances of the model.

__signature__

The synthesized __init__ [Signature][inspect.Signature] of the model.

model_config

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

num_cons_total

Return the total number of constraint flattened responses.

free_flat_var_mask

Return 1-D bool array over flattened variables (True => free).

free_flat_var_positions

Return 1-D int array of full flattened positions for free elements.

num_flat_vars

Return the number of free flattened variables.

full_to_free_var_index

Return 1-D int array mapping full flattened index to free index or -1.

calculate_default(overwrite=True)

Calculate and set default values for all input variables.

This method iterates through the list of variables and calls the calculate_default method on each variable to compute its default value.

Parameters:

overwrite (bool) – A flag indicating whether to overwrite existing default values. Defaults to True.

Return type:

None

variable_names()

Retrieve the names of all input variables.

This method returns a list of names for all variables defined in the variables attribute.

Returns:

A list of names of the input variables.

Return type:

List[str]

response_names()

Retrieve the names of all output variables.

This method returns a list of names for all variables defined in the responses attribute.

Returns:

A list of names of the output variables.

Return type:

List[str]

set_defaults(new_defaults)

Set new default values for input variables based on a provided dictionary.

This method updates the default values of the variables in the variables list if their names match the keys in the new_defaults dictionary.

Parameters:

new_defaults (dict) – A dictionary where keys are variable names and values are the new default values to set.

Return type:

None

classmethod validate_outputs(var)

Validate the names of the variables and responses.

This method checks that the names of the variables and responses are unique using the unique_names function.

Parameters:

var (List[Variable]) – The list of variables or responses to validate.

Returns:

The validated list of variables or responses.

Return type:

List[Variable]

unroll_names(elements)

Unroll the names of the variables and responses into a flat list.

This method generates a list of names for all elements, including expanding array variables into their individual components.

Parameters:

elements (List[Variable]) – The list of variables or responses to unroll.

Returns:

A flat list of names for the variables and responses.

Return type:

List[str]

check_problem()

Check the validity of the optimization problem setup.

This method verifies that all objectives and constraints are defined correctly. It checks that objectives are either variables or responses and that constraints are defined as responses.

Returns:

The instance of the class after validation.

Return type:

OptProblem

Raises:

ValueError – If any objective is not defined as a variable or response. If any constraint is defined as a variable instead of a response.

build_maps()

Build flattened variable and response maps with Jacobian/gradient indexing.

This routine: - Flattens model variables and responses into element-wise entries. - Detects objectives and constraints using whitespace-insensitive matching

against self.objectives and self.constraints.

  • Marks fixed variable elements (where variable lower == upper bound).

  • Assigns compact contiguous row indices (jac_row/grad_row) to free flattened variable elements; fixed elements have None in these columns.

  • Assigns contiguous column indices in the response map for objectives (grad_col) and constraints (jac_col), with None for non-applicable entries.

Returns:

A tuple (var_map, res_map) where:

  • var_map columns: name, multi, flat, fixed, jac_row, grad_row

  • res_map columns: name, multi, flat, objective, constraint, grad_col, jac_col

Return type:

Tuple[pd.DataFrame, pd.DataFrame]

property var_map: DataFrame | None

Return the flattened variable map DataFrame.

property res_map: DataFrame | None

Return the flattened response map DataFrame.

property flat_partials_res_indices: ndarray | None

Return 1-D int array of response indices flagged as objective or constraint.

property num_partials_responses: int | None

Return the count of selected responses for partials computation.

property grad_cols: ndarray | None

Return 1-D int array mapping selected responses to gradient column index or -1.

property jac_cols: ndarray | None

Return 1-D int array mapping selected responses to jacobian column index or -1.

property num_objs_total: int | None

Return the total number of objective flattened responses.

__pydantic_fields_set__: set[str]

The names of fields explicitly set during instantiation.

__pydantic_extra__: Dict[str, Any] | None

A dictionary containing extra values, if [extra][pydantic.config.ConfigDict.extra] is set to ‘allow’.

__pydantic_private__: Dict[str, Any] | None

Values of private attributes set on the model instance.

__class_vars__: ClassVar[set[str]] = {}

The names of the class variables defined on the model.

__private_attributes__: ClassVar[Dict[str, ModelPrivateAttr]] = {'_flat_partials_res_indices': ModelPrivateAttr(), '_free_flat_var_mask': ModelPrivateAttr(), '_free_flat_var_positions': ModelPrivateAttr(), '_full_to_free_var_index': ModelPrivateAttr(), '_grad_cols': ModelPrivateAttr(), '_jac_cols': ModelPrivateAttr(), '_num_cons_total': ModelPrivateAttr(), '_num_flat_vars': ModelPrivateAttr(), '_num_objs_total': ModelPrivateAttr(), '_num_partials_responses': ModelPrivateAttr(), '_res_map': ModelPrivateAttr(), '_var_map': ModelPrivateAttr()}

Metadata about the private attributes of the model.

__pydantic_complete__: ClassVar[bool] = True

Whether model building is completed, or if there are still undefined fields.

__pydantic_computed_fields__: ClassVar[Dict[str, ComputedFieldInfo]] = {}

A dictionary of computed field names and their corresponding [ComputedFieldInfo][pydantic.fields.ComputedFieldInfo] objects.

__pydantic_core_schema__: ClassVar[CoreSchema] = {'definitions': [{'cls': <class 'standard_evaluator.problem.FloatVariable'>, 'config': {'title': 'FloatVariable'}, 'custom_init': False, 'metadata': {'pydantic_js_functions': [<bound method BaseModel.__get_pydantic_json_schema__ of <class 'standard_evaluator.problem.FloatVariable'>>]}, 'ref': 'standard_evaluator.problem.FloatVariable:94146690615344', 'root_model': False, 'schema': {'computed_fields': [], 'fields': {'bounds': {'metadata': {'pydantic_js_updates': {'description': 'Lower and upper bounds of the variable'}}, 'schema': {'default': (-inf, inf), 'schema': {'function': {'function': <bound method FloatVariable.validate_bounds of <class 'standard_evaluator.problem.FloatVariable'>>, 'type': 'no-info'}, 'schema': {'schema': {'items_schema': [{'type': 'float'}, {'type': 'float'}], 'type': 'tuple'}, 'type': 'nullable'}, 'type': 'function-after'}, 'type': 'default'}, 'type': 'model-field'}, 'class_type': {'metadata': {'pydantic_js_updates': {'description': 'Class marker'}}, 'schema': {'default': 'float', 'schema': {'expected': ['float'], 'type': 'literal'}, 'type': 'default'}, 'type': 'model-field'}, 'default': {'metadata': {'pydantic_js_updates': {'description': 'Default value for this variable'}}, 'schema': {'default': None, 'schema': {'schema': {'type': 'float'}, 'type': 'nullable'}, 'type': 'default'}, 'type': 'model-field'}, 'description': {'metadata': {'pydantic_js_updates': {'description': 'A description of the variable.'}}, 'schema': {'default': '', 'schema': {'schema': {'type': 'str'}, 'type': 'nullable'}, 'type': 'default'}, 'type': 'model-field'}, 'name': {'metadata': {'pydantic_js_updates': {'description': 'Name of the variable.'}}, 'schema': {'function': {'function': <bound method FloatVariable.check_name of <class 'standard_evaluator.problem.FloatVariable'>>, 'type': 'no-info'}, 'schema': {'type': 'str'}, 'type': 'function-after'}, 'type': 'model-field'}, 'options': {'metadata': {'pydantic_js_updates': {'description': 'Options for the variable.'}}, 'schema': {'default_factory': <class 'dict'>, 'default_factory_takes_data': False, 'schema': {'keys_schema': {'type': 'any'}, 'type': 'dict', 'values_schema': {'type': 'any'}}, 'type': 'default'}, 'type': 'model-field'}, 'scale': {'metadata': {'pydantic_js_updates': {'description': 'Scale value to be used for this variable. Cannot be zero.'}}, 'schema': {'default': 1.0, 'schema': {'function': {'function': <bound method FloatVariable.validate_scale of <class 'standard_evaluator.problem.FloatVariable'>>, 'type': 'no-info'}, 'schema': {'schema': {'type': 'float'}, 'type': 'nullable'}, 'type': 'function-after'}, 'type': 'default'}, 'type': 'model-field'}, 'shift': {'metadata': {'pydantic_js_updates': {'description': 'Shift value to be used for this variable.'}}, 'schema': {'default': 0.0, 'schema': {'schema': {'type': 'float'}, 'type': 'nullable'}, 'type': 'default'}, 'type': 'model-field'}, 'units': {'metadata': {}, 'schema': {'default': None, 'schema': {'schema': {'type': 'str'}, 'type': 'nullable'}, 'type': 'default'}, 'type': 'model-field'}}, 'model_name': 'FloatVariable', 'type': 'model-fields'}, 'type': 'model'}, {'cls': <class 'standard_evaluator.problem.IntVariable'>, 'config': {'title': 'IntVariable'}, 'custom_init': False, 'metadata': {'pydantic_js_functions': [<bound method BaseModel.__get_pydantic_json_schema__ of <class 'standard_evaluator.problem.IntVariable'>>]}, 'ref': 'standard_evaluator.problem.IntVariable:94146690641792', 'root_model': False, 'schema': {'computed_fields': [], 'fields': {'bounds': {'metadata': {'pydantic_js_updates': {'description': 'Lower and upper bounds of the variable'}}, 'schema': {'default': [-9223372036854775808, 9223372036854775808], 'schema': {'function': {'function': <bound method IntVariable.validate_bounds of <class 'standard_evaluator.problem.IntVariable'>>, 'type': 'no-info'}, 'schema': {'schema': {'items_schema': [{'type': 'int'}, {'type': 'int'}], 'type': 'tuple'}, 'type': 'nullable'}, 'type': 'function-after'}, 'type': 'default'}, 'type': 'model-field'}, 'class_type': {'metadata': {'pydantic_js_updates': {'description': 'Class marker'}}, 'schema': {'default': 'int', 'schema': {'expected': ['int'], 'type': 'literal'}, 'type': 'default'}, 'type': 'model-field'}, 'default': {'metadata': {'pydantic_js_updates': {'description': 'Default value for this variable'}}, 'schema': {'default': None, 'schema': {'schema': {'type': 'int'}, 'type': 'nullable'}, 'type': 'default'}, 'type': 'model-field'}, 'description': {'metadata': {'pydantic_js_updates': {'description': 'A description of the variable.'}}, 'schema': {'default': '', 'schema': {'schema': {'type': 'str'}, 'type': 'nullable'}, 'type': 'default'}, 'type': 'model-field'}, 'name': {'metadata': {'pydantic_js_updates': {'description': 'Name of the variable.'}}, 'schema': {'function': {'function': <bound method FloatVariable.check_name of <class 'standard_evaluator.problem.IntVariable'>>, 'type': 'no-info'}, 'schema': {'type': 'str'}, 'type': 'function-after'}, 'type': 'model-field'}, 'options': {'metadata': {'pydantic_js_updates': {'description': 'Options for the variable.'}}, 'schema': {'default_factory': <class 'dict'>, 'default_factory_takes_data': False, 'schema': {'keys_schema': {'type': 'any'}, 'type': 'dict', 'values_schema': {'type': 'any'}}, 'type': 'default'}, 'type': 'model-field'}, 'scale': {'metadata': {'pydantic_js_updates': {'description': 'Scale value to be used for this variable. Cannot be zero.'}}, 'schema': {'default': 1, 'schema': {'function': {'function': <bound method FloatVariable.validate_scale of <class 'standard_evaluator.problem.IntVariable'>>, 'type': 'no-info'}, 'schema': {'schema': {'type': 'int'}, 'type': 'nullable'}, 'type': 'function-after'}, 'type': 'default'}, 'type': 'model-field'}, 'shift': {'metadata': {'pydantic_js_updates': {'description': 'Shift value to be used for this variable.'}}, 'schema': {'default': 0, 'schema': {'schema': {'type': 'int'}, 'type': 'nullable'}, 'type': 'default'}, 'type': 'model-field'}, 'units': {'metadata': {}, 'schema': {'default': None, 'schema': {'schema': {'type': 'str'}, 'type': 'nullable'}, 'type': 'default'}, 'type': 'model-field'}}, 'model_name': 'IntVariable', 'type': 'model-fields'}, 'type': 'model'}, {'function': {'function': <function ArrayVariable.check_shape>, 'type': 'no-info'}, 'metadata': {'pydantic_js_functions': [<bound method BaseModel.__get_pydantic_json_schema__ of <class 'standard_evaluator.problem.ArrayVariable'>>]}, 'ref': 'standard_evaluator.problem.ArrayVariable:94146690729520', 'schema': {'cls': <class 'standard_evaluator.problem.ArrayVariable'>, 'config': {'title': 'ArrayVariable'}, 'custom_init': False, 'root_model': False, 'schema': {'computed_fields': [], 'fields': {'bounds': {'metadata': {'pydantic_js_updates': {'description': 'Lower and upper bounds of the arrays'}}, 'schema': {'default': (None, None), 'schema': {'function': {'function': <bound method ArrayVariable.validate_bounds of <class 'standard_evaluator.problem.ArrayVariable'>>, 'type': 'no-info'}, 'schema': {'schema': {'items_schema': [{'choices': [{'type': 'float'}, {'type': 'int'}, {'function': {'function': <function get_validate_interface.<locals>.validate_interface>, 'type': 'with-info'}, 'metadata': {'definitions': [{'choices': [{'items_schema': {'schema_ref': 'any-shape-array-676be5e2aeaa3799', 'type': 'definition-ref'}, 'type': 'list'}, {'ge': -1.7976931348623157e+308, 'le': 1.7976931348623157e+308, 'type': 'float'}], 'ref': 'any-shape-array-676be5e2aeaa3799', 'type': 'union'}], 'pydantic_js_functions': [<bound method NDArrayMeta.__get_pydantic_json_schema__ of <class 'numpydantic.ndarray.NDArray'>>], 'schema': {'items_schema': {'schema_ref': 'any-shape-array-676be5e2aeaa3799', 'type': 'definition-ref'}, 'type': 'list'}, 'type': 'definitions'}, 'serialization': {'function': <function jsonize_array>, 'info_arg': True, 'type': 'function-plain', 'when_used': 'json'}, 'type': 'function-plain'}], 'type': 'union'}, {'choices': [{'type': 'float'}, {'type': 'int'}, {'function': {'function': <function get_validate_interface.<locals>.validate_interface>, 'type': 'with-info'}, 'metadata': {'definitions': [{'choices': [{'items_schema': {'schema_ref': 'any-shape-array-676be5e2aeaa3799', 'type': 'definition-ref'}, 'type': 'list'}, {'ge': -1.7976931348623157e+308, 'le': 1.7976931348623157e+308, 'type': 'float'}], 'ref': 'any-shape-array-676be5e2aeaa3799', 'type': 'union'}], 'pydantic_js_functions': [<bound method NDArrayMeta.__get_pydantic_json_schema__ of <class 'numpydantic.ndarray.NDArray'>>], 'schema': {'items_schema': {'schema_ref': 'any-shape-array-676be5e2aeaa3799', 'type': 'definition-ref'}, 'type': 'list'}, 'type': 'definitions'}, 'serialization': {'function': <function jsonize_array>, 'info_arg': True, 'type': 'function-plain', 'when_used': 'json'}, 'type': 'function-plain'}], 'type': 'union'}], 'type': 'tuple'}, 'type': 'nullable'}, 'type': 'function-after'}, 'serialization': {'function': <function ArrayVariable.serialize_bounds>, 'info_arg': False, 'is_field_serializer': True, 'type': 'function-plain'}, 'type': 'default'}, 'type': 'model-field'}, 'class_type': {'metadata': {}, 'schema': {'default': 'floatarray', 'schema': {'expected': ['floatarray'], 'type': 'literal'}, 'type': 'default'}, 'type': 'model-field'}, 'default': {'metadata': {'pydantic_js_updates': {'description': 'NumPy array with the default values to be used for the array variable'}}, 'schema': {'default': None, 'schema': {'schema': {'function': {'function': <function get_validate_interface.<locals>.validate_interface>, 'type': 'with-info'}, 'metadata': {'definitions': [{'choices': [{'items_schema': {'schema_ref': 'any-shape-array-676be5e2aeaa3799', 'type': 'definition-ref'}, 'type': 'list'}, {'ge': -1.7976931348623157e+308, 'le': 1.7976931348623157e+308, 'type': 'float'}], 'ref': 'any-shape-array-676be5e2aeaa3799', 'type': 'union'}], 'pydantic_js_functions': [<bound method NDArrayMeta.__get_pydantic_json_schema__ of <class 'numpydantic.ndarray.NDArray'>>], 'schema': {'items_schema': {'schema_ref': 'any-shape-array-676be5e2aeaa3799', 'type': 'definition-ref'}, 'type': 'list'}, 'type': 'definitions'}, 'serialization': {'function': <function jsonize_array>, 'info_arg': True, 'type': 'function-plain', 'when_used': 'json'}, 'type': 'function-plain'}, 'type': 'nullable'}, 'type': 'default'}, 'type': 'model-field'}, 'description': {'metadata': {'pydantic_js_updates': {'description': 'A description of the variable.'}}, 'schema': {'default': '', 'schema': {'schema': {'type': 'str'}, 'type': 'nullable'}, 'type': 'default'}, 'type': 'model-field'}, 'name': {'metadata': {'pydantic_js_updates': {'description': 'Name of the variable.'}}, 'schema': {'function': {'function': <bound method FloatVariable.check_name of <class 'standard_evaluator.problem.ArrayVariable'>>, 'type': 'no-info'}, 'schema': {'type': 'str'}, 'type': 'function-after'}, 'type': 'model-field'}, 'options': {'metadata': {'pydantic_js_updates': {'description': 'Options for the variable.'}}, 'schema': {'default_factory': <class 'dict'>, 'default_factory_takes_data': False, 'schema': {'keys_schema': {'type': 'any'}, 'type': 'dict', 'values_schema': {'type': 'any'}}, 'type': 'default'}, 'type': 'model-field'}, 'scale': {'metadata': {'pydantic_js_updates': {'description': 'NumPy array with the scale values to be used for the array variable. Cannot be zero.'}}, 'schema': {'default': None, 'schema': {'function': {'function': <bound method ArrayVariable.validate_scale of <class 'standard_evaluator.problem.ArrayVariable'>>, 'type': 'no-info'}, 'schema': {'schema': {'choices': [{'type': 'float'}, {'type': 'int'}, {'function': {'function': <function get_validate_interface.<locals>.validate_interface>, 'type': 'with-info'}, 'metadata': {'definitions': [{'choices': [{'items_schema': {'schema_ref': 'any-shape-array-676be5e2aeaa3799', 'type': 'definition-ref'}, 'type': 'list'}, {'ge': -1.7976931348623157e+308, 'le': 1.7976931348623157e+308, 'type': 'float'}], 'ref': 'any-shape-array-676be5e2aeaa3799', 'type': 'union'}], 'pydantic_js_functions': [<bound method NDArrayMeta.__get_pydantic_json_schema__ of <class 'numpydantic.ndarray.NDArray'>>], 'schema': {'items_schema': {'schema_ref': 'any-shape-array-676be5e2aeaa3799', 'type': 'definition-ref'}, 'type': 'list'}, 'type': 'definitions'}, 'serialization': {'function': <function jsonize_array>, 'info_arg': True, 'type': 'function-plain', 'when_used': 'json'}, 'type': 'function-plain'}], 'type': 'union'}, 'type': 'nullable'}, 'type': 'function-after'}, 'serialization': {'function': <function ArrayVariable.serialize_scale>, 'info_arg': False, 'is_field_serializer': True, 'type': 'function-plain'}, 'type': 'default'}, 'type': 'model-field'}, 'shape': {'metadata': {'pydantic_js_updates': {'description': 'Shape of the arrays'}}, 'schema': {'default': None, 'schema': {'schema': {'items_schema': [{'type': 'int'}], 'type': 'tuple', 'variadic_item_index': 0}, 'type': 'nullable'}, 'type': 'default'}, 'type': 'model-field'}, 'shift': {'metadata': {'pydantic_js_updates': {'description': 'NumPy array with the shift values to be used for the array variable.'}}, 'schema': {'default': None, 'schema': {'schema': {'choices': [{'type': 'float'}, {'type': 'int'}, {'function': {'function': <function get_validate_interface.<locals>.validate_interface>, 'type': 'with-info'}, 'metadata': {'definitions': [{'choices': [{'items_schema': {'schema_ref': 'any-shape-array-676be5e2aeaa3799', 'type': 'definition-ref'}, 'type': 'list'}, {'ge': -1.7976931348623157e+308, 'le': 1.7976931348623157e+308, 'type': 'float'}], 'ref': 'any-shape-array-676be5e2aeaa3799', 'type': 'union'}], 'pydantic_js_functions': [<bound method NDArrayMeta.__get_pydantic_json_schema__ of <class 'numpydantic.ndarray.NDArray'>>], 'schema': {'items_schema': {'schema_ref': 'any-shape-array-676be5e2aeaa3799', 'type': 'definition-ref'}, 'type': 'list'}, 'type': 'definitions'}, 'serialization': {'function': <function jsonize_array>, 'info_arg': True, 'type': 'function-plain', 'when_used': 'json'}, 'type': 'function-plain'}], 'type': 'union'}, 'type': 'nullable'}, 'serialization': {'function': <function ArrayVariable.serialize_shift>, 'info_arg': False, 'is_field_serializer': True, 'type': 'function-plain'}, 'type': 'default'}, 'type': 'model-field'}, 'units': {'metadata': {}, 'schema': {'default': None, 'schema': {'schema': {'type': 'str'}, 'type': 'nullable'}, 'type': 'default'}, 'type': 'model-field'}}, 'model_name': 'ArrayVariable', 'type': 'model-fields'}, 'type': 'model'}, 'type': 'function-after'}, {'function': {'function': <function CategoricalVariable.check_default>, 'type': 'no-info'}, 'metadata': {'pydantic_js_functions': [<bound method BaseModel.__get_pydantic_json_schema__ of <class 'standard_evaluator.problem.CategoricalVariable'>>]}, 'ref': 'standard_evaluator.problem.CategoricalVariable:94146690688272', 'schema': {'cls': <class 'standard_evaluator.problem.CategoricalVariable'>, 'config': {'title': 'CategoricalVariable'}, 'custom_init': False, 'root_model': False, 'schema': {'computed_fields': [], 'fields': {'bounds': {'metadata': {'pydantic_js_updates': {'description': 'Values this variable or response can take on. Must be defined.'}}, 'schema': {'function': {'function': <bound method CategoricalVariable.validate_bounds of <class 'standard_evaluator.problem.CategoricalVariable'>>, 'type': 'no-info'}, 'schema': {'items_schema': {'type': 'any'}, 'type': 'list'}, 'type': 'function-after'}, 'type': 'model-field'}, 'class_type': {'metadata': {'pydantic_js_updates': {'description': 'Class marker'}}, 'schema': {'default': 'cat', 'schema': {'expected': ['cat'], 'type': 'literal'}, 'type': 'default'}, 'type': 'model-field'}, 'default': {'metadata': {'pydantic_js_updates': {'description': 'Default value for this variable'}}, 'schema': {'default': None, 'schema': {'schema': {'type': 'any'}, 'type': 'nullable'}, 'type': 'default'}, 'type': 'model-field'}, 'description': {'metadata': {'pydantic_js_updates': {'description': 'A description of the variable.'}}, 'schema': {'default': '', 'schema': {'schema': {'type': 'str'}, 'type': 'nullable'}, 'type': 'default'}, 'type': 'model-field'}, 'name': {'metadata': {'pydantic_js_updates': {'description': 'Name of the variable.'}}, 'schema': {'function': {'function': <bound method FloatVariable.check_name of <class 'standard_evaluator.problem.CategoricalVariable'>>, 'type': 'no-info'}, 'schema': {'type': 'str'}, 'type': 'function-after'}, 'type': 'model-field'}, 'options': {'metadata': {'pydantic_js_updates': {'description': 'Options for the variable.'}}, 'schema': {'default_factory': <class 'dict'>, 'default_factory_takes_data': False, 'schema': {'keys_schema': {'type': 'any'}, 'type': 'dict', 'values_schema': {'type': 'any'}}, 'type': 'default'}, 'type': 'model-field'}, 'scale': {'metadata': {'pydantic_js_updates': {'description': 'Scale value to be used for this variable. Does not make sense for categorical variables.'}}, 'schema': {'default': None, 'schema': {'function': {'function': <bound method FloatVariable.validate_scale of <class 'standard_evaluator.problem.CategoricalVariable'>>, 'type': 'no-info'}, 'schema': {'expected': [None], 'type': 'literal'}, 'type': 'function-after'}, 'type': 'default'}, 'type': 'model-field'}, 'shift': {'metadata': {'pydantic_js_updates': {'description': 'Shift value to be used for this variable. Does not make sense for categorical variables.'}}, 'schema': {'default': None, 'schema': {'expected': [None], 'type': 'literal'}, 'type': 'default'}, 'type': 'model-field'}, 'units': {'metadata': {}, 'schema': {'default': None, 'schema': {'schema': {'type': 'str'}, 'type': 'nullable'}, 'type': 'default'}, 'type': 'model-field'}}, 'model_name': 'CategoricalVariable', 'type': 'model-fields'}, 'type': 'model'}, 'type': 'function-after'}], 'schema': {'function': {'function': <function OptProblem._init_maps_and_partials>, 'type': 'no-info'}, 'metadata': {'pydantic_js_functions': [<bound method BaseModel.__get_pydantic_json_schema__ of <class 'standard_evaluator.problem.OptProblem'>>]}, 'ref': 'standard_evaluator.problem.OptProblem:94146690761776', 'schema': {'function': {'function': <function OptProblem.check_problem>, 'type': 'no-info'}, 'schema': {'cls': <class 'standard_evaluator.problem.OptProblem'>, 'config': {'title': 'OptProblem'}, 'custom_init': False, 'post_init': 'model_post_init', 'root_model': False, 'schema': {'computed_fields': [], 'fields': {'cite': {'metadata': {'pydantic_js_updates': {'description': 'Listing of relevant citations that should be referenced when publishing work that uses this class.'}}, 'schema': {'default': None, 'schema': {'schema': {'type': 'str'}, 'type': 'nullable'}, 'type': 'default'}, 'type': 'model-field'}, 'class_type': {'metadata': {}, 'schema': {'default': 'OptProblem', 'schema': {'expected': ['OptProblem'], 'type': 'literal'}, 'type': 'default'}, 'type': 'model-field'}, 'constraints': {'metadata': {'pydantic_js_updates': {'description': 'Names of the constraints of the optimization problem. Must be responses defined in the problem. To define bounds on variables use the variable bounds.'}}, 'schema': {'default_factory': <class 'list'>, 'default_factory_takes_data': False, 'schema': {'items_schema': {'type': 'str'}, 'type': 'list'}, 'type': 'default'}, 'type': 'model-field'}, 'description': {'metadata': {'pydantic_js_updates': {'description': 'A description of the optimization problem. To define mathematical symbols use markdown syntax.'}}, 'schema': {'default': None, 'schema': {'schema': {'type': 'str'}, 'type': 'nullable'}, 'type': 'default'}, 'type': 'model-field'}, 'name': {'metadata': {'pydantic_js_updates': {'description': 'The name of the problem. Defaults to "opt_problem".'}}, 'schema': {'default': 'opt_problem', 'schema': {'type': 'str'}, 'type': 'default'}, 'type': 'model-field'}, 'objectives': {'metadata': {'pydantic_js_updates': {'description': 'Names of the objective(s) for the optimization problem. Must be either variables or responses defined in the problem.'}}, 'schema': {'default_factory': <class 'list'>, 'default_factory_takes_data': False, 'schema': {'items_schema': {'type': 'str'}, 'type': 'list'}, 'type': 'default'}, 'type': 'model-field'}, 'options': {'metadata': {'pydantic_js_updates': {'description': 'Additional options for the problem.'}}, 'schema': {'default_factory': <class 'dict'>, 'default_factory_takes_data': False, 'schema': {'keys_schema': {'type': 'any'}, 'type': 'dict', 'values_schema': {'type': 'any'}}, 'type': 'default'}, 'type': 'model-field'}, 'responses': {'metadata': {'pydantic_js_updates': {'description': 'Output variables'}}, 'schema': {'function': {'function': <bound method OptProblem.validate_outputs of <class 'standard_evaluator.problem.OptProblem'>>, 'type': 'no-info'}, 'schema': {'items_schema': {'choices': [{'schema_ref': 'standard_evaluator.problem.FloatVariable:94146690615344', 'type': 'definition-ref'}, {'schema_ref': 'standard_evaluator.problem.IntVariable:94146690641792', 'type': 'definition-ref'}, {'schema_ref': 'standard_evaluator.problem.ArrayVariable:94146690729520', 'type': 'definition-ref'}, {'schema_ref': 'standard_evaluator.problem.CategoricalVariable:94146690688272', 'type': 'definition-ref'}], 'type': 'union'}, 'type': 'list'}, 'type': 'function-after'}, 'type': 'model-field'}, 'variables': {'metadata': {'pydantic_js_updates': {'description': 'Input variables'}}, 'schema': {'function': {'function': <bound method OptProblem.validate_outputs of <class 'standard_evaluator.problem.OptProblem'>>, 'type': 'no-info'}, 'schema': {'items_schema': {'choices': [{'schema_ref': 'standard_evaluator.problem.FloatVariable:94146690615344', 'type': 'definition-ref'}, {'schema_ref': 'standard_evaluator.problem.IntVariable:94146690641792', 'type': 'definition-ref'}, {'schema_ref': 'standard_evaluator.problem.ArrayVariable:94146690729520', 'type': 'definition-ref'}, {'schema_ref': 'standard_evaluator.problem.CategoricalVariable:94146690688272', 'type': 'definition-ref'}], 'type': 'union'}, 'type': 'list'}, 'type': 'function-after'}, 'type': 'model-field'}}, 'model_name': 'OptProblem', 'type': 'model-fields'}, 'type': 'model'}, 'type': 'function-after'}, 'type': 'function-after'}, 'type': 'definitions'}

The core schema of the model.

__pydantic_custom_init__: ClassVar[bool] = False

Whether the model has a custom __init__ method.

__pydantic_decorators__: ClassVar[_decorators.DecoratorInfos] = DecoratorInfos(validators={}, field_validators={'validate_outputs': Decorator(cls_ref='standard_evaluator.problem.OptProblem:94146690761776', cls_var_name='validate_outputs', func=<bound method OptProblem.validate_outputs of <class 'standard_evaluator.problem.OptProblem'>>, shim=None, info=FieldValidatorDecoratorInfo(fields=('variables', 'responses'), mode='after', check_fields=None, json_schema_input_type=PydanticUndefined))}, root_validators={}, field_serializers={}, model_serializers={}, model_validators={'check_problem': Decorator(cls_ref='standard_evaluator.problem.OptProblem:94146690761776', cls_var_name='check_problem', func=<function OptProblem.check_problem>, shim=None, info=ModelValidatorDecoratorInfo(mode='after')), '_init_maps_and_partials': Decorator(cls_ref='standard_evaluator.problem.OptProblem:94146690761776', cls_var_name='_init_maps_and_partials', func=<function OptProblem._init_maps_and_partials>, shim=None, info=ModelValidatorDecoratorInfo(mode='after'))}, computed_fields={})

Metadata containing the decorators defined on the model. This replaces Model.__validators__ and Model.__root_validators__ from Pydantic V1.

__pydantic_extra_info__: ClassVar[PydanticExtraInfo | None] = None

A wrapper around the __pydantic_extra__ annotation, if explicitly annotated on a model.

This is a private attribute, not meant to be used outside Pydantic.

__pydantic_fields__: ClassVar[Dict[str, FieldInfo]] = {'cite': FieldInfo(annotation=Union[str, NoneType], required=False, default=None, description='Listing of relevant citations that should be referenced when publishing work that uses this class.'), 'class_type': FieldInfo(annotation=Literal['OptProblem'], required=False, default='OptProblem'), 'constraints': FieldInfo(annotation=List[str], required=False, default_factory=list, description='Names of the constraints of the optimization problem. Must be responses defined in the problem. To define bounds on variables use the variable bounds.'), 'description': FieldInfo(annotation=Union[str, NoneType], required=False, default=None, description='A description of the optimization problem. To define mathematical symbols use markdown syntax.'), 'name': FieldInfo(annotation=str, required=False, default='opt_problem', description='The name of the problem. Defaults to "opt_problem".'), 'objectives': FieldInfo(annotation=List[str], required=False, default_factory=list, description='Names of the objective(s) for the optimization problem. Must be either variables or responses defined in the problem.'), 'options': FieldInfo(annotation=Dict, required=False, default_factory=dict, description='Additional options for the problem.'), 'responses': FieldInfo(annotation=List[Union[FloatVariable, IntVariable, ArrayVariable, CategoricalVariable]], required=True, description='Output variables'), 'variables': FieldInfo(annotation=List[Union[FloatVariable, IntVariable, ArrayVariable, CategoricalVariable]], required=True, description='Input variables')}

A dictionary of field names and their corresponding [FieldInfo][pydantic.fields.FieldInfo] objects. This replaces Model.__fields__ from Pydantic V1.

__pydantic_generic_metadata__: ClassVar[_generics.PydanticGenericMetadata] = {'args': (), 'origin': None, 'parameters': ()}

A dictionary containing metadata about generic Pydantic models.

The origin and args items map to the [__origin__][genericalias.__origin__] and [__args__][genericalias.__args__] attributes of [generic aliases][types-genericalias], and the parameter item maps to the __parameter__ attribute of generic classes.

__pydantic_parent_namespace__: ClassVar[Dict[str, Any] | None] = None

Parent namespace of the model, used for automatic rebuilding of models.

__pydantic_post_init__: ClassVar[None | Literal['model_post_init']] = 'model_post_init'

The name of the post-init method for the model, if defined.

__pydantic_serializer__: ClassVar[SchemaSerializer] = SchemaSerializer(serializer=PolymorphismTrampoline(     PolymorphismTrampoline {         class: Py(             0x000055a03c0f4430,         ),         serializer: PolymorphismTrampoline(             PolymorphismTrampoline {                 class: Py(                     0x000055a03c0f4430,                 ),                 serializer: Model(                     ModelSerializer {                         class: Py(                             0x000055a03c0f4430,                         ),                         serializer: Fields(                             GeneralFieldsSerializer {                                 fields: {                                     "constraints": SerField {                                         key: "constraints",                                         alias: None,                                         serializer: Some(                                             WithDefault(                                                 WithDefaultSerializer {                                                     default: DefaultFactory(                                                         Py(                                                             0x00007f82f7c42020,                                                         ),                                                         false,                                                     ),                                                     serializer: List(                                                         ListSerializer {                                                             item_serializer: Str(                                                                 StrSerializer,                                                             ),                                                             filter: SchemaFilter {                                                                 include: None,                                                                 exclude: None,                                                             },                                                             name: "list[str]",                                                         },                                                     ),                                                 },                                             ),                                         ),                                         required: true,                                         serialize_by_alias: None,                                         serialization_exclude_if: None,                                     },                                     "name": SerField {                                         key: "name",                                         alias: None,                                         serializer: Some(                                             WithDefault(                                                 WithDefaultSerializer {                                                     default: Default(                                                         Py(                                                             0x00007f82d674ce70,                                                         ),                                                     ),                                                     serializer: Str(                                                         StrSerializer,                                                     ),                                                 },                                             ),                                         ),                                         required: true,                                         serialize_by_alias: None,                                         serialization_exclude_if: None,                                     },                                     "description": SerField {                                         key: "description",                                         alias: None,                                         serializer: Some(                                             WithDefault(                                                 WithDefaultSerializer {                                                     default: Default(                                                         Py(                                                             0x00007f82f7c468c0,                                                         ),                                                     ),                                                     serializer: Nullable(                                                         NullableSerializer {                                                             serializer: Str(                                                                 StrSerializer,                                                             ),                                                         },                                                     ),                                                 },                                             ),                                         ),                                         required: true,                                         serialize_by_alias: None,                                         serialization_exclude_if: None,                                     },                                     "variables": SerField {                                         key: "variables",                                         alias: None,                                         serializer: Some(                                             List(                                                 ListSerializer {                                                     item_serializer: Union(                                                         UnionSerializer {                                                             choices: UnionChoices {                                                                 choices: [                                                                     Recursive(                                                                         DefinitionRefSerializer {                                                                             definition: "...",                                                                             retry_with_lax_check: true,                                                                         },                                                                     ),                                                                     Recursive(                                                                         DefinitionRefSerializer {                                                                             definition: "...",                                                                             retry_with_lax_check: true,                                                                         },                                                                     ),                                                                     Recursive(                                                                         DefinitionRefSerializer {                                                                             definition: "...",                                                                             retry_with_lax_check: true,                                                                         },                                                                     ),                                                                     Recursive(                                                                         DefinitionRefSerializer {                                                                             definition: "...",                                                                             retry_with_lax_check: true,                                                                         },                                                                     ),                                                                 ],                                                             },                                                             name: "Union[definition-ref, definition-ref, definition-ref, definition-ref]",                                                         },                                                     ),                                                     filter: SchemaFilter {                                                         include: None,                                                         exclude: None,                                                     },                                                     name: "list[Union[definition-ref, definition-ref, definition-ref, definition-ref]]",                                                 },                                             ),                                         ),                                         required: true,                                         serialize_by_alias: None,                                         serialization_exclude_if: None,                                     },                                     "class_type": SerField {                                         key: "class_type",                                         alias: None,                                         serializer: Some(                                             WithDefault(                                                 WithDefaultSerializer {                                                     default: Default(                                                         Py(                                                             0x00007f82f59875f0,                                                         ),                                                     ),                                                     serializer: Literal(                                                         LiteralSerializer {                                                             expected_int: {},                                                             expected_str: {                                                                 "OptProblem",                                                             },                                                             expected_py: None,                                                             name: "literal['OptProblem']",                                                         },                                                     ),                                                 },                                             ),                                         ),                                         required: true,                                         serialize_by_alias: None,                                         serialization_exclude_if: None,                                     },                                     "responses": SerField {                                         key: "responses",                                         alias: None,                                         serializer: Some(                                             List(                                                 ListSerializer {                                                     item_serializer: Union(                                                         UnionSerializer {                                                             choices: UnionChoices {                                                                 choices: [                                                                     Recursive(                                                                         DefinitionRefSerializer {                                                                             definition: "...",                                                                             retry_with_lax_check: true,                                                                         },                                                                     ),                                                                     Recursive(                                                                         DefinitionRefSerializer {                                                                             definition: "...",                                                                             retry_with_lax_check: true,                                                                         },                                                                     ),                                                                     Recursive(                                                                         DefinitionRefSerializer {                                                                             definition: "...",                                                                             retry_with_lax_check: true,                                                                         },                                                                     ),                                                                     Recursive(                                                                         DefinitionRefSerializer {                                                                             definition: "...",                                                                             retry_with_lax_check: true,                                                                         },                                                                     ),                                                                 ],                                                             },                                                             name: "Union[definition-ref, definition-ref, definition-ref, definition-ref]",                                                         },                                                     ),                                                     filter: SchemaFilter {                                                         include: None,                                                         exclude: None,                                                     },                                                     name: "list[Union[definition-ref, definition-ref, definition-ref, definition-ref]]",                                                 },                                             ),                                         ),                                         required: true,                                         serialize_by_alias: None,                                         serialization_exclude_if: None,                                     },                                     "objectives": SerField {                                         key: "objectives",                                         alias: None,                                         serializer: Some(                                             WithDefault(                                                 WithDefaultSerializer {                                                     default: DefaultFactory(                                                         Py(                                                             0x00007f82f7c42020,                                                         ),                                                         false,                                                     ),                                                     serializer: List(                                                         ListSerializer {                                                             item_serializer: Str(                                                                 StrSerializer,                                                             ),                                                             filter: SchemaFilter {                                                                 include: None,                                                                 exclude: None,                                                             },                                                             name: "list[str]",                                                         },                                                     ),                                                 },                                             ),                                         ),                                         required: true,                                         serialize_by_alias: None,                                         serialization_exclude_if: None,                                     },                                     "cite": SerField {                                         key: "cite",                                         alias: None,                                         serializer: Some(                                             WithDefault(                                                 WithDefaultSerializer {                                                     default: Default(                                                         Py(                                                             0x00007f82f7c468c0,                                                         ),                                                     ),                                                     serializer: Nullable(                                                         NullableSerializer {                                                             serializer: Str(                                                                 StrSerializer,                                                             ),                                                         },                                                     ),                                                 },                                             ),                                         ),                                         required: true,                                         serialize_by_alias: None,                                         serialization_exclude_if: None,                                     },                                     "options": SerField {                                         key: "options",                                         alias: None,                                         serializer: Some(                                             WithDefault(                                                 WithDefaultSerializer {                                                     default: DefaultFactory(                                                         Py(                                                             0x00007f82f7c43b80,                                                         ),                                                         false,                                                     ),                                                     serializer: Dict(                                                         DictSerializer {                                                             key_serializer: Any(                                                                 AnySerializer,                                                             ),                                                             value_serializer: Any(                                                                 AnySerializer,                                                             ),                                                             filter: SchemaFilter {                                                                 include: None,                                                                 exclude: None,                                                             },                                                             name: "dict[any, any]",                                                         },                                                     ),                                                 },                                             ),                                         ),                                         required: true,                                         serialize_by_alias: None,                                         serialization_exclude_if: None,                                     },                                 },                                 computed_fields: Some(                                     ComputedFields(                                         [],                                     ),                                 ),                                 mode: SimpleDict,                                 extra_serializer: None,                                 filter: SchemaFilter {                                     include: None,                                     exclude: None,                                 },                                 required_fields: 9,                             },                         ),                         has_extra: false,                         root_model: false,                         name: "OptProblem",                     },                 ),                 enabled_from_config: false,             },         ),         enabled_from_config: false,     }, ), definitions=[PolymorphismTrampoline(PolymorphismTrampoline { class: Py(0x55a03c0d0830), serializer: Prebuilt(PrebuiltSerializer { schema_serializer: Py(0x7f82d66e67a0) }), enabled_from_config: false }), PolymorphismTrampoline(PolymorphismTrampoline { class: Py(0x55a03c0e2510), serializer: Prebuilt(PrebuiltSerializer { schema_serializer: Py(0x7f82d66e69e0) }), enabled_from_config: false }), PolymorphismTrampoline(PolymorphismTrampoline { class: Py(0x55a03c0d6f80), serializer: Prebuilt(PrebuiltSerializer { schema_serializer: Py(0x7f82d66e68c0) }), enabled_from_config: false }), PolymorphismTrampoline(PolymorphismTrampoline { class: Py(0x55a03c0ec630), serializer: Prebuilt(PrebuiltSerializer { schema_serializer: Py(0x7f82d66e6b00) }), enabled_from_config: false })])

The pydantic-core SchemaSerializer used to dump instances of the model.

__pydantic_setattr_handlers__: ClassVar[Dict[str, Callable[[BaseModel, str, Any], None]]] = {}

__setattr__ handlers. Memoizing the handlers leads to a dramatic performance improvement in __setattr__

__pydantic_validator__: ClassVar[SchemaValidator | PluggableSchemaValidator] = SchemaValidator(title="OptProblem", validator=FunctionAfter(     FunctionAfterValidator {         validator: FunctionAfter(             FunctionAfterValidator {                 validator: Model(                     ModelValidator {                         revalidate: Never,                         validator: ModelFields(                             ModelFieldsValidator {                                 fields: [                                     Field {                                         name: "name",                                         lookup_path_collection: LookupPathCollection {                                             by_name: LookupPath {                                                 first_item: PathItemString(                                                     "name",                                                 ),                                                 rest: [],                                             },                                             by_alias: [],                                         },                                         validator: WithDefault(                                             WithDefaultValidator {                                                 default: Default(                                                     Py(                                                         0x00007f82d674ce70,                                                     ),                                                 ),                                                 on_error: Raise,                                                 validator: Str(                                                     StrValidator {                                                         strict: false,                                                         coerce_numbers_to_str: false,                                                     },                                                 ),                                                 validate_default: false,                                                 copy_default: false,                                                 name: "default[str]",                                                 undefined: Py(                                                     0x00007f82f5afadb0,                                                 ),                                             },                                         ),                                         frozen: false,                                     },                                     Field {                                         name: "class_type",                                         lookup_path_collection: LookupPathCollection {                                             by_name: LookupPath {                                                 first_item: PathItemString(                                                     "class_type",                                                 ),                                                 rest: [],                                             },                                             by_alias: [],                                         },                                         validator: WithDefault(                                             WithDefaultValidator {                                                 default: Default(                                                     Py(                                                         0x00007f82f59875f0,                                                     ),                                                 ),                                                 on_error: Raise,                                                 validator: Literal(                                                     LiteralValidator {                                                         lookup: LiteralLookup {                                                             expected_bool: None,                                                             expected_int: None,                                                             expected_str: Some(                                                                 {                                                                     "OptProblem": 0,                                                                 },                                                             ),                                                             expected_py_dict: None,                                                             expected_py_values: None,                                                             expected_py_primitives: Some(                                                                 Py(                                                                     0x00007f82d630fdc0,                                                                 ),                                                             ),                                                             values: [                                                                 Py(                                                                     0x00007f82f59875f0,                                                                 ),                                                             ],                                                         },                                                         expected_repr: "'OptProblem'",                                                         name: "literal['OptProblem']",                                                     },                                                 ),                                                 validate_default: false,                                                 copy_default: false,                                                 name: "default[literal['OptProblem']]",                                                 undefined: Py(                                                     0x00007f82f5afadb0,                                                 ),                                             },                                         ),                                         frozen: false,                                     },                                     Field {                                         name: "variables",                                         lookup_path_collection: LookupPathCollection {                                             by_name: LookupPath {                                                 first_item: PathItemString(                                                     "variables",                                                 ),                                                 rest: [],                                             },                                             by_alias: [],                                         },                                         validator: FunctionAfter(                                             FunctionAfterValidator {                                                 validator: List(                                                     ListValidator {                                                         strict: false,                                                         item_validator: Some(                                                             Union(                                                                 UnionValidator {                                                                     mode: Smart,                                                                     choices: [                                                                         (                                                                             DefinitionRef(                                                                                 DefinitionRefValidator {                                                                                     definition: "FloatVariable",                                                                                 },                                                                             ),                                                                             None,                                                                         ),                                                                         (                                                                             DefinitionRef(                                                                                 DefinitionRefValidator {                                                                                     definition: "IntVariable",                                                                                 },                                                                             ),                                                                             None,                                                                         ),                                                                         (                                                                             DefinitionRef(                                                                                 DefinitionRefValidator {                                                                                     definition: "function-after[check_shape(), ArrayVariable]",                                                                                 },                                                                             ),                                                                             None,                                                                         ),                                                                         (                                                                             DefinitionRef(                                                                                 DefinitionRefValidator {                                                                                     definition: "function-after[check_default(), CategoricalVariable]",                                                                                 },                                                                             ),                                                                             None,                                                                         ),                                                                     ],                                                                     custom_error: None,                                                                     name: "union[FloatVariable,IntVariable,function-after[check_shape(), ArrayVariable],function-after[check_default(), CategoricalVariable]]",                                                                 },                                                             ),                                                         ),                                                         min_length: None,                                                         max_length: None,                                                         name: OnceLock(                                                             "list[union[FloatVariable,IntVariable,function-after[check_shape(), ArrayVariable],function-after[check_default(), CategoricalVariable]]]",                                                         ),                                                         fail_fast: false,                                                     },                                                 ),                                                 func: Py(                                                     0x00007f82d630f140,                                                 ),                                                 config: Py(                                                     0x00007f82d62e3540,                                                 ),                                                 name: "function-after[validate_outputs(), list[union[FloatVariable,IntVariable,function-after[check_shape(), ArrayVariable],function-after[check_default(), CategoricalVariable]]]]",                                                 field_name: None,                                                 info_arg: false,                                             },                                         ),                                         frozen: false,                                     },                                     Field {                                         name: "responses",                                         lookup_path_collection: LookupPathCollection {                                             by_name: LookupPath {                                                 first_item: PathItemString(                                                     "responses",                                                 ),                                                 rest: [],                                             },                                             by_alias: [],                                         },                                         validator: FunctionAfter(                                             FunctionAfterValidator {                                                 validator: List(                                                     ListValidator {                                                         strict: false,                                                         item_validator: Some(                                                             Union(                                                                 UnionValidator {                                                                     mode: Smart,                                                                     choices: [                                                                         (                                                                             DefinitionRef(                                                                                 DefinitionRefValidator {                                                                                     definition: "FloatVariable",                                                                                 },                                                                             ),                                                                             None,                                                                         ),                                                                         (                                                                             DefinitionRef(                                                                                 DefinitionRefValidator {                                                                                     definition: "IntVariable",                                                                                 },                                                                             ),                                                                             None,                                                                         ),                                                                         (                                                                             DefinitionRef(                                                                                 DefinitionRefValidator {                                                                                     definition: "function-after[check_shape(), ArrayVariable]",                                                                                 },                                                                             ),                                                                             None,                                                                         ),                                                                         (                                                                             DefinitionRef(                                                                                 DefinitionRefValidator {                                                                                     definition: "function-after[check_default(), CategoricalVariable]",                                                                                 },                                                                             ),                                                                             None,                                                                         ),                                                                     ],                                                                     custom_error: None,                                                                     name: "union[FloatVariable,IntVariable,function-after[check_shape(), ArrayVariable],function-after[check_default(), CategoricalVariable]]",                                                                 },                                                             ),                                                         ),                                                         min_length: None,                                                         max_length: None,                                                         name: OnceLock(                                                             "list[union[FloatVariable,IntVariable,function-after[check_shape(), ArrayVariable],function-after[check_default(), CategoricalVariable]]]",                                                         ),                                                         fail_fast: false,                                                     },                                                 ),                                                 func: Py(                                                     0x00007f82d630f140,                                                 ),                                                 config: Py(                                                     0x00007f82d62e3540,                                                 ),                                                 name: "function-after[validate_outputs(), list[union[FloatVariable,IntVariable,function-after[check_shape(), ArrayVariable],function-after[check_default(), CategoricalVariable]]]]",                                                 field_name: None,                                                 info_arg: false,                                             },                                         ),                                         frozen: false,                                     },                                     Field {                                         name: "objectives",                                         lookup_path_collection: LookupPathCollection {                                             by_name: LookupPath {                                                 first_item: PathItemString(                                                     "objectives",                                                 ),                                                 rest: [],                                             },                                             by_alias: [],                                         },                                         validator: WithDefault(                                             WithDefaultValidator {                                                 default: DefaultFactory(                                                     Py(                                                         0x00007f82f7c42020,                                                     ),                                                     false,                                                 ),                                                 on_error: Raise,                                                 validator: List(                                                     ListValidator {                                                         strict: false,                                                         item_validator: Some(                                                             Str(                                                                 StrValidator {                                                                     strict: false,                                                                     coerce_numbers_to_str: false,                                                                 },                                                             ),                                                         ),                                                         min_length: None,                                                         max_length: None,                                                         name: OnceLock(                                                             "list[str]",                                                         ),                                                         fail_fast: false,                                                     },                                                 ),                                                 validate_default: false,                                                 copy_default: false,                                                 name: "default[list[str]]",                                                 undefined: Py(                                                     0x00007f82f5afadb0,                                                 ),                                             },                                         ),                                         frozen: false,                                     },                                     Field {                                         name: "constraints",                                         lookup_path_collection: LookupPathCollection {                                             by_name: LookupPath {                                                 first_item: PathItemString(                                                     "constraints",                                                 ),                                                 rest: [],                                             },                                             by_alias: [],                                         },                                         validator: WithDefault(                                             WithDefaultValidator {                                                 default: DefaultFactory(                                                     Py(                                                         0x00007f82f7c42020,                                                     ),                                                     false,                                                 ),                                                 on_error: Raise,                                                 validator: List(                                                     ListValidator {                                                         strict: false,                                                         item_validator: Some(                                                             Str(                                                                 StrValidator {                                                                     strict: false,                                                                     coerce_numbers_to_str: false,                                                                 },                                                             ),                                                         ),                                                         min_length: None,                                                         max_length: None,                                                         name: OnceLock(                                                             "list[str]",                                                         ),                                                         fail_fast: false,                                                     },                                                 ),                                                 validate_default: false,                                                 copy_default: false,                                                 name: "default[list[str]]",                                                 undefined: Py(                                                     0x00007f82f5afadb0,                                                 ),                                             },                                         ),                                         frozen: false,                                     },                                     Field {                                         name: "description",                                         lookup_path_collection: LookupPathCollection {                                             by_name: LookupPath {                                                 first_item: PathItemString(                                                     "description",                                                 ),                                                 rest: [],                                             },                                             by_alias: [],                                         },                                         validator: WithDefault(                                             WithDefaultValidator {                                                 default: Default(                                                     Py(                                                         0x00007f82f7c468c0,                                                     ),                                                 ),                                                 on_error: Raise,                                                 validator: Nullable(                                                     NullableValidator {                                                         validator: Str(                                                             StrValidator {                                                                 strict: false,                                                                 coerce_numbers_to_str: false,                                                             },                                                         ),                                                         name: "nullable[str]",                                                     },                                                 ),                                                 validate_default: false,                                                 copy_default: false,                                                 name: "default[nullable[str]]",                                                 undefined: Py(                                                     0x00007f82f5afadb0,                                                 ),                                             },                                         ),                                         frozen: false,                                     },                                     Field {                                         name: "cite",                                         lookup_path_collection: LookupPathCollection {                                             by_name: LookupPath {                                                 first_item: PathItemString(                                                     "cite",                                                 ),                                                 rest: [],                                             },                                             by_alias: [],                                         },                                         validator: WithDefault(                                             WithDefaultValidator {                                                 default: Default(                                                     Py(                                                         0x00007f82f7c468c0,                                                     ),                                                 ),                                                 on_error: Raise,                                                 validator: Nullable(                                                     NullableValidator {                                                         validator: Str(                                                             StrValidator {                                                                 strict: false,                                                                 coerce_numbers_to_str: false,                                                             },                                                         ),                                                         name: "nullable[str]",                                                     },                                                 ),                                                 validate_default: false,                                                 copy_default: false,                                                 name: "default[nullable[str]]",                                                 undefined: Py(                                                     0x00007f82f5afadb0,                                                 ),                                             },                                         ),                                         frozen: false,                                     },                                     Field {                                         name: "options",                                         lookup_path_collection: LookupPathCollection {                                             by_name: LookupPath {                                                 first_item: PathItemString(                                                     "options",                                                 ),                                                 rest: [],                                             },                                             by_alias: [],                                         },                                         validator: WithDefault(                                             WithDefaultValidator {                                                 default: DefaultFactory(                                                     Py(                                                         0x00007f82f7c43b80,                                                     ),                                                     false,                                                 ),                                                 on_error: Raise,                                                 validator: Dict(                                                     DictValidator {                                                         strict: false,                                                         key_validator: Any(                                                             AnyValidator,                                                         ),                                                         value_validator: Any(                                                             AnyValidator,                                                         ),                                                         min_length: None,                                                         max_length: None,                                                         fail_fast: false,                                                         name: "dict[any,any]",                                                     },                                                 ),                                                 validate_default: false,                                                 copy_default: false,                                                 name: "default[dict[any,any]]",                                                 undefined: Py(                                                     0x00007f82f5afadb0,                                                 ),                                             },                                         ),                                         frozen: false,                                     },                                 ],                                 model_name: "OptProblem",                                 extra_behavior: Ignore,                                 extras_validator: None,                                 extras_keys_validator: None,                                 strict: false,                                 from_attributes: false,                                 loc_by_alias: true,                                 lookup: LookupTree {                                     inner: {                                         PathItemString(                                             "variables",                                         ): LookupTreeNode {                                             fields: [                                                 LookupFieldInfo {                                                     field_index: 2,                                                     lookup_priority: LookupFieldPriority {                                                         lookup_type: Both,                                                         alias_index: 0,                                                     },                                                 },                                             ],                                             map: {},                                             list: {},                                         },                                         PathItemString(                                             "options",                                         ): LookupTreeNode {                                             fields: [                                                 LookupFieldInfo {                                                     field_index: 8,                                                     lookup_priority: LookupFieldPriority {                                                         lookup_type: Both,                                                         alias_index: 0,                                                     },                                                 },                                             ],                                             map: {},                                             list: {},                                         },                                         PathItemString(                                             "constraints",                                         ): LookupTreeNode {                                             fields: [                                                 LookupFieldInfo {                                                     field_index: 5,                                                     lookup_priority: LookupFieldPriority {                                                         lookup_type: Both,                                                         alias_index: 0,                                                     },                                                 },                                             ],                                             map: {},                                             list: {},                                         },                                         PathItemString(                                             "name",                                         ): LookupTreeNode {                                             fields: [                                                 LookupFieldInfo {                                                     field_index: 0,                                                     lookup_priority: LookupFieldPriority {                                                         lookup_type: Both,                                                         alias_index: 0,                                                     },                                                 },                                             ],                                             map: {},                                             list: {},                                         },                                         PathItemString(                                             "responses",                                         ): LookupTreeNode {                                             fields: [                                                 LookupFieldInfo {                                                     field_index: 3,                                                     lookup_priority: LookupFieldPriority {                                                         lookup_type: Both,                                                         alias_index: 0,                                                     },                                                 },                                             ],                                             map: {},                                             list: {},                                         },                                         PathItemString(                                             "description",                                         ): LookupTreeNode {                                             fields: [                                                 LookupFieldInfo {                                                     field_index: 6,                                                     lookup_priority: LookupFieldPriority {                                                         lookup_type: Both,                                                         alias_index: 0,                                                     },                                                 },                                             ],                                             map: {},                                             list: {},                                         },                                         PathItemString(                                             "objectives",                                         ): LookupTreeNode {                                             fields: [                                                 LookupFieldInfo {                                                     field_index: 4,                                                     lookup_priority: LookupFieldPriority {                                                         lookup_type: Both,                                                         alias_index: 0,                                                     },                                                 },                                             ],                                             map: {},                                             list: {},                                         },                                         PathItemString(                                             "cite",                                         ): LookupTreeNode {                                             fields: [                                                 LookupFieldInfo {                                                     field_index: 7,                                                     lookup_priority: LookupFieldPriority {                                                         lookup_type: Both,                                                         alias_index: 0,                                                     },                                                 },                                             ],                                             map: {},                                             list: {},                                         },                                         PathItemString(                                             "class_type",                                         ): LookupTreeNode {                                             fields: [                                                 LookupFieldInfo {                                                     field_index: 1,                                                     lookup_priority: LookupFieldPriority {                                                         lookup_type: Both,                                                         alias_index: 0,                                                     },                                                 },                                             ],                                             map: {},                                             list: {},                                         },                                     },                                 },                                 validate_by_alias: None,                                 validate_by_name: None,                             },                         ),                         class: Py(                             0x000055a03c0f4430,                         ),                         generic_origin: None,                         post_init: Some(                             Py(                                 0x00007f82e570d970,                             ),                         ),                         frozen: false,                         custom_init: false,                         root_model: false,                         undefined: Py(                             0x00007f82f5afadb0,                         ),                         name: "OptProblem",                     },                 ),                 func: Py(                     0x00007f82d62d9b20,                 ),                 config: Py(                     0x00007f82d630f900,                 ),                 name: "function-after[check_problem(), OptProblem]",                 field_name: None,                 info_arg: false,             },         ),         func: Py(             0x00007f82d62da520,         ),         config: Py(             0x00007f82d630f900,         ),         name: "function-after[_init_maps_and_partials(), function-after[check_problem(), OptProblem]]",         field_name: None,         info_arg: false,     }, ), definitions=[Prebuilt(PrebuiltValidator { schema_validator: Py(0x7f82d66e6830) }), Prebuilt(PrebuiltValidator { schema_validator: Py(0x7f82d66e6710) }), FunctionAfter(FunctionAfterValidator { validator: Model(ModelValidator { revalidate: Never, validator: ModelFields(ModelFieldsValidator { fields: [Field { name: "name", lookup_path_collection: LookupPathCollection { by_name: LookupPath { first_item: PathItemString("name"), rest: [] }, by_alias: [] }, validator: FunctionAfter(FunctionAfterValidator { validator: Str(StrValidator { strict: false, coerce_numbers_to_str: false }), func: Py(0x7f82d62fa5c0), config: Py(0x7f82d62d0480), name: "function-after[check_name(), str]", field_name: None, info_arg: false }), frozen: false }, Field { name: "default", lookup_path_collection: LookupPathCollection { by_name: LookupPath { first_item: PathItemString("default"), rest: [] }, by_alias: [] }, validator: WithDefault(WithDefaultValidator { default: Default(Py(0x7f82f7c468c0)), on_error: Raise, validator: Nullable(NullableValidator { validator: FunctionPlain(FunctionPlainValidator { func: Py(0x7f82d62d9580), config: Py(0x7f82d62d0480), name: "function-plain[validate_interface()]", field_name: None, info_arg: true }), name: "nullable[function-plain[validate_interface()]]" }), validate_default: false, copy_default: false, name: "default[nullable[function-plain[validate_interface()]]]", undefined: Py(0x7f82f5afadb0) }), frozen: false }, Field { name: "bounds", lookup_path_collection: LookupPathCollection { by_name: LookupPath { first_item: PathItemString("bounds"), rest: [] }, by_alias: [] }, validator: WithDefault(WithDefaultValidator { default: Default(Py(0x7f82d6742180)), on_error: Raise, validator: FunctionAfter(FunctionAfterValidator { validator: Nullable(NullableValidator { validator: Tuple(TupleValidator { strict: false, validators: [Union(UnionValidator { mode: Smart, choices: [(Float(FloatValidator { strict: false, allow_inf_nan: true }), None), (Int(IntValidator { strict: false }), None), (FunctionPlain(FunctionPlainValidator { func: Py(0x7f82d62d96c0), config: Py(0x7f82d62d0480), name: "function-plain[validate_interface()]", field_name: None, info_arg: true }), None)], custom_error: None, name: "union[float,int,function-plain[validate_interface()]]" }), Union(UnionValidator { mode: Smart, choices: [(Float(FloatValidator { strict: false, allow_inf_nan: true }), None), (Int(IntValidator { strict: false }), None), (FunctionPlain(FunctionPlainValidator { func: Py(0x7f82d62d9800), config: Py(0x7f82d62d0480), name: "function-plain[validate_interface()]", field_name: None, info_arg: true }), None)], custom_error: None, name: "union[float,int,function-plain[validate_interface()]]" })], variadic_item_index: None, min_length: None, max_length: None, name: "tuple[union[float,int,function-plain[validate_interface()]], union[float,int,function-plain[validate_interface()]]]", fail_fast: false }), name: "nullable[tuple[union[float,int,function-plain[validate_interface()]], union[float,int,function-plain[validate_interface()]]]]" }), func: Py(0x7f82d62fad80), config: Py(0x7f82d62d0480), name: "function-after[validate_bounds(), nullable[tuple[union[float,int,function-plain[validate_interface()]], union[float,int,function-plain[validate_interface()]]]]]", field_name: None, info_arg: false }), validate_default: false, copy_default: false, name: "default[function-after[validate_bounds(), nullable[tuple[union[float,int,function-plain[validate_interface()]], union[float,int,function-plain[validate_interface()]]]]]]", undefined: Py(0x7f82f5afadb0) }), frozen: false }, Field { name: "shift", lookup_path_collection: LookupPathCollection { by_name: LookupPath { first_item: PathItemString("shift"), rest: [] }, by_alias: [] }, validator: WithDefault(WithDefaultValidator { default: Default(Py(0x7f82f7c468c0)), on_error: Raise, validator: Nullable(NullableValidator { validator: Union(UnionValidator { mode: Smart, choices: [(Float(FloatValidator { strict: false, allow_inf_nan: true }), None), (Int(IntValidator { strict: false }), None), (FunctionPlain(FunctionPlainValidator { func: Py(0x7f82d62d98a0), config: Py(0x7f82d62d0480), name: "function-plain[validate_interface()]", field_name: None, info_arg: true }), None)], custom_error: None, name: "union[float,int,function-plain[validate_interface()]]" }), name: "nullable[union[float,int,function-plain[validate_interface()]]]" }), validate_default: false, copy_default: false, name: "default[nullable[union[float,int,function-plain[validate_interface()]]]]", undefined: Py(0x7f82f5afadb0) }), frozen: false }, Field { name: "scale", lookup_path_collection: LookupPathCollection { by_name: LookupPath { first_item: PathItemString("scale"), rest: [] }, by_alias: [] }, validator: WithDefault(WithDefaultValidator { default: Default(Py(0x7f82f7c468c0)), on_error: Raise, validator: FunctionAfter(FunctionAfterValidator { validator: Nullable(NullableValidator { validator: Union(UnionValidator { mode: Smart, choices: [(Float(FloatValidator { strict: false, allow_inf_nan: true }), None), (Int(IntValidator { strict: false }), None), (FunctionPlain(FunctionPlainValidator { func: Py(0x7f82d62d9620), config: Py(0x7f82d62d0480), name: "function-plain[validate_interface()]", field_name: None, info_arg: true }), None)], custom_error: None, name: "union[float,int,function-plain[validate_interface()]]" }), name: "nullable[union[float,int,function-plain[validate_interface()]]]" }), func: Py(0x7f82d62faf40), config: Py(0x7f82d62d0480), name: "function-after[validate_scale(), nullable[union[float,int,function-plain[validate_interface()]]]]", field_name: None, info_arg: false }), validate_default: false, copy_default: false, name: "default[function-after[validate_scale(), nullable[union[float,int,function-plain[validate_interface()]]]]]", undefined: Py(0x7f82f5afadb0) }), frozen: false }, Field { name: "units", lookup_path_collection: LookupPathCollection { by_name: LookupPath { first_item: PathItemString("units"), rest: [] }, by_alias: [] }, validator: WithDefault(WithDefaultValidator { default: Default(Py(0x7f82f7c468c0)), on_error: Raise, validator: Nullable(NullableValidator { validator: Str(StrValidator { strict: false, coerce_numbers_to_str: false }), name: "nullable[str]" }), validate_default: false, copy_default: false, name: "default[nullable[str]]", undefined: Py(0x7f82f5afadb0) }), frozen: false }, Field { name: "description", lookup_path_collection: LookupPathCollection { by_name: LookupPath { first_item: PathItemString("description"), rest: [] }, by_alias: [] }, validator: WithDefault(WithDefaultValidator { default: Default(Py(0x7f82f7d3f660)), on_error: Raise, validator: Nullable(NullableValidator { validator: Str(StrValidator { strict: false, coerce_numbers_to_str: false }), name: "nullable[str]" }), validate_default: false, copy_default: false, name: "default[nullable[str]]", undefined: Py(0x7f82f5afadb0) }), frozen: false }, Field { name: "options", lookup_path_collection: LookupPathCollection { by_name: LookupPath { first_item: PathItemString("options"), rest: [] }, by_alias: [] }, validator: WithDefault(WithDefaultValidator { default: DefaultFactory(Py(0x7f82f7c43b80), false), on_error: Raise, validator: Dict(DictValidator { strict: false, key_validator: Any(AnyValidator), value_validator: Any(AnyValidator), min_length: None, max_length: None, fail_fast: false, name: "dict[any,any]" }), validate_default: false, copy_default: false, name: "default[dict[any,any]]", undefined: Py(0x7f82f5afadb0) }), frozen: false }, Field { name: "class_type", lookup_path_collection: LookupPathCollection { by_name: LookupPath { first_item: PathItemString("class_type"), rest: [] }, by_alias: [] }, validator: WithDefault(WithDefaultValidator { default: Default(Py(0x7f82d70a4db0)), on_error: Raise, validator: Literal(LiteralValidator { lookup: LiteralLookup { expected_bool: None, expected_int: None, expected_str: Some({"floatarray": 0}), expected_py_dict: None, expected_py_values: None, expected_py_primitives: Some(Py(0x7f82d630f600)), values: [Py(0x7f82d70a4db0)] }, expected_repr: "'floatarray'", name: "literal['floatarray']" }), validate_default: false, copy_default: false, name: "default[literal['floatarray']]", undefined: Py(0x7f82f5afadb0) }), frozen: false }, Field { name: "shape", lookup_path_collection: LookupPathCollection { by_name: LookupPath { first_item: PathItemString("shape"), rest: [] }, by_alias: [] }, validator: WithDefault(WithDefaultValidator { default: Default(Py(0x7f82f7c468c0)), on_error: Raise, validator: Nullable(NullableValidator { validator: Tuple(TupleValidator { strict: false, validators: [Int(IntValidator { strict: false })], variadic_item_index: Some(0), min_length: None, max_length: None, name: "tuple[int, ...]", fail_fast: false }), name: "nullable[tuple[int, ...]]" }), validate_default: false, copy_default: false, name: "default[nullable[tuple[int, ...]]]", undefined: Py(0x7f82f5afadb0) }), frozen: false }], model_name: "ArrayVariable", extra_behavior: Ignore, extras_validator: None, extras_keys_validator: None, strict: false, from_attributes: false, loc_by_alias: true, lookup: LookupTree { inner: {PathItemString("scale"): LookupTreeNode { fields: [LookupFieldInfo { field_index: 4, lookup_priority: LookupFieldPriority { lookup_type: Both, alias_index: 0 } }], map: {}, list: {} }, PathItemString("description"): LookupTreeNode { fields: [LookupFieldInfo { field_index: 6, lookup_priority: LookupFieldPriority { lookup_type: Both, alias_index: 0 } }], map: {}, list: {} }, PathItemString("bounds"): LookupTreeNode { fields: [LookupFieldInfo { field_index: 2, lookup_priority: LookupFieldPriority { lookup_type: Both, alias_index: 0 } }], map: {}, list: {} }, PathItemString("name"): LookupTreeNode { fields: [LookupFieldInfo { field_index: 0, lookup_priority: LookupFieldPriority { lookup_type: Both, alias_index: 0 } }], map: {}, list: {} }, PathItemString("default"): LookupTreeNode { fields: [LookupFieldInfo { field_index: 1, lookup_priority: LookupFieldPriority { lookup_type: Both, alias_index: 0 } }], map: {}, list: {} }, PathItemString("class_type"): LookupTreeNode { fields: [LookupFieldInfo { field_index: 8, lookup_priority: LookupFieldPriority { lookup_type: Both, alias_index: 0 } }], map: {}, list: {} }, PathItemString("shift"): LookupTreeNode { fields: [LookupFieldInfo { field_index: 3, lookup_priority: LookupFieldPriority { lookup_type: Both, alias_index: 0 } }], map: {}, list: {} }, PathItemString("shape"): LookupTreeNode { fields: [LookupFieldInfo { field_index: 9, lookup_priority: LookupFieldPriority { lookup_type: Both, alias_index: 0 } }], map: {}, list: {} }, PathItemString("options"): LookupTreeNode { fields: [LookupFieldInfo { field_index: 7, lookup_priority: LookupFieldPriority { lookup_type: Both, alias_index: 0 } }], map: {}, list: {} }, PathItemString("units"): LookupTreeNode { fields: [LookupFieldInfo { field_index: 5, lookup_priority: LookupFieldPriority { lookup_type: Both, alias_index: 0 } }], map: {}, list: {} }} }, validate_by_alias: None, validate_by_name: None }), class: Py(0x55a03c0ec630), generic_origin: None, post_init: None, frozen: false, custom_init: false, root_model: false, undefined: Py(0x7f82f5afadb0), name: "ArrayVariable" }), func: Py(0x7f82d62d91c0), config: Py(0x7f82d630f900), name: "function-after[check_shape(), ArrayVariable]", field_name: None, info_arg: false }), FunctionAfter(FunctionAfterValidator { validator: Model(ModelValidator { revalidate: Never, validator: ModelFields(ModelFieldsValidator { fields: [Field { name: "name", lookup_path_collection: LookupPathCollection { by_name: LookupPath { first_item: PathItemString("name"), rest: [] }, by_alias: [] }, validator: FunctionAfter(FunctionAfterValidator { validator: Str(StrValidator { strict: false, coerce_numbers_to_str: false }), func: Py(0x7f82d62e2c80), config: Py(0x7f82d62e3700), name: "function-after[check_name(), str]", field_name: None, info_arg: false }), frozen: false }, Field { name: "default", lookup_path_collection: LookupPathCollection { by_name: LookupPath { first_item: PathItemString("default"), rest: [] }, by_alias: [] }, validator: WithDefault(WithDefaultValidator { default: Default(Py(0x7f82f7c468c0)), on_error: Raise, validator: Nullable(NullableValidator { validator: Any(AnyValidator), name: "nullable[any]" }), validate_default: false, copy_default: false, name: "default[nullable[any]]", undefined: Py(0x7f82f5afadb0) }), frozen: false }, Field { name: "bounds", lookup_path_collection: LookupPathCollection { by_name: LookupPath { first_item: PathItemString("bounds"), rest: [] }, by_alias: [] }, validator: FunctionAfter(FunctionAfterValidator { validator: List(ListValidator { strict: false, item_validator: None, min_length: None, max_length: None, name: OnceLock("list[any]"), fail_fast: false }), func: Py(0x7f82d62e2e80), config: Py(0x7f82d62e3700), name: "function-after[validate_bounds(), list[any]]", field_name: None, info_arg: false }), frozen: false }, Field { name: "shift", lookup_path_collection: LookupPathCollection { by_name: LookupPath { first_item: PathItemString("shift"), rest: [] }, by_alias: [] }, validator: WithDefault(WithDefaultValidator { default: Default(Py(0x7f82f7c468c0)), on_error: Raise, validator: Literal(LiteralValidator { lookup: LiteralLookup { expected_bool: None, expected_int: None, expected_str: None, expected_py_dict: Some(Py(0x7f82d62e0a80)), expected_py_values: None, expected_py_primitives: None, values: [Py(0x7f82f7c468c0)] }, expected_repr: "None", name: "literal[None]" }), validate_default: false, copy_default: false, name: "default[literal[None]]", undefined: Py(0x7f82f5afadb0) }), frozen: false }, Field { name: "scale", lookup_path_collection: LookupPathCollection { by_name: LookupPath { first_item: PathItemString("scale"), rest: [] }, by_alias: [] }, validator: WithDefault(WithDefaultValidator { default: Default(Py(0x7f82f7c468c0)), on_error: Raise, validator: FunctionAfter(FunctionAfterValidator { validator: Literal(LiteralValidator { lookup: LiteralLookup { expected_bool: None, expected_int: None, expected_str: None, expected_py_dict: Some(Py(0x7f82d630f880)), expected_py_values: None, expected_py_primitives: None, values: [Py(0x7f82f7c468c0)] }, expected_repr: "None", name: "literal[None]" }), func: Py(0x7f82d62e2c00), config: Py(0x7f82d62e3700), name: "function-after[validate_scale(), literal[None]]", field_name: None, info_arg: false }), validate_default: false, copy_default: false, name: "default[function-after[validate_scale(), literal[None]]]", undefined: Py(0x7f82f5afadb0) }), frozen: false }, Field { name: "units", lookup_path_collection: LookupPathCollection { by_name: LookupPath { first_item: PathItemString("units"), rest: [] }, by_alias: [] }, validator: WithDefault(WithDefaultValidator { default: Default(Py(0x7f82f7c468c0)), on_error: Raise, validator: Nullable(NullableValidator { validator: Str(StrValidator { strict: false, coerce_numbers_to_str: false }), name: "nullable[str]" }), validate_default: false, copy_default: false, name: "default[nullable[str]]", undefined: Py(0x7f82f5afadb0) }), frozen: false }, Field { name: "description", lookup_path_collection: LookupPathCollection { by_name: LookupPath { first_item: PathItemString("description"), rest: [] }, by_alias: [] }, validator: WithDefault(WithDefaultValidator { default: Default(Py(0x7f82f7d3f660)), on_error: Raise, validator: Nullable(NullableValidator { validator: Str(StrValidator { strict: false, coerce_numbers_to_str: false }), name: "nullable[str]" }), validate_default: false, copy_default: false, name: "default[nullable[str]]", undefined: Py(0x7f82f5afadb0) }), frozen: false }, Field { name: "options", lookup_path_collection: LookupPathCollection { by_name: LookupPath { first_item: PathItemString("options"), rest: [] }, by_alias: [] }, validator: WithDefault(WithDefaultValidator { default: DefaultFactory(Py(0x7f82f7c43b80), false), on_error: Raise, validator: Dict(DictValidator { strict: false, key_validator: Any(AnyValidator), value_validator: Any(AnyValidator), min_length: None, max_length: None, fail_fast: false, name: "dict[any,any]" }), validate_default: false, copy_default: false, name: "default[dict[any,any]]", undefined: Py(0x7f82f5afadb0) }), frozen: false }, Field { name: "class_type", lookup_path_collection: LookupPathCollection { by_name: LookupPath { first_item: PathItemString("class_type"), rest: [] }, by_alias: [] }, validator: WithDefault(WithDefaultValidator { default: Default(Py(0x7f82f733c630)), on_error: Raise, validator: Literal(LiteralValidator { lookup: LiteralLookup { expected_bool: None, expected_int: None, expected_str: Some({"cat": 0}), expected_py_dict: None, expected_py_values: None, expected_py_primitives: Some(Py(0x7f82d630fe40)), values: [Py(0x7f82f733c630)] }, expected_repr: "'cat'", name: "literal['cat']" }), validate_default: false, copy_default: false, name: "default[literal['cat']]", undefined: Py(0x7f82f5afadb0) }), frozen: false }], model_name: "CategoricalVariable", extra_behavior: Ignore, extras_validator: None, extras_keys_validator: None, strict: false, from_attributes: false, loc_by_alias: true, lookup: LookupTree { inner: {PathItemString("name"): LookupTreeNode { fields: [LookupFieldInfo { field_index: 0, lookup_priority: LookupFieldPriority { lookup_type: Both, alias_index: 0 } }], map: {}, list: {} }, PathItemString("bounds"): LookupTreeNode { fields: [LookupFieldInfo { field_index: 2, lookup_priority: LookupFieldPriority { lookup_type: Both, alias_index: 0 } }], map: {}, list: {} }, PathItemString("units"): LookupTreeNode { fields: [LookupFieldInfo { field_index: 5, lookup_priority: LookupFieldPriority { lookup_type: Both, alias_index: 0 } }], map: {}, list: {} }, PathItemString("scale"): LookupTreeNode { fields: [LookupFieldInfo { field_index: 4, lookup_priority: LookupFieldPriority { lookup_type: Both, alias_index: 0 } }], map: {}, list: {} }, PathItemString("description"): LookupTreeNode { fields: [LookupFieldInfo { field_index: 6, lookup_priority: LookupFieldPriority { lookup_type: Both, alias_index: 0 } }], map: {}, list: {} }, PathItemString("options"): LookupTreeNode { fields: [LookupFieldInfo { field_index: 7, lookup_priority: LookupFieldPriority { lookup_type: Both, alias_index: 0 } }], map: {}, list: {} }, PathItemString("default"): LookupTreeNode { fields: [LookupFieldInfo { field_index: 1, lookup_priority: LookupFieldPriority { lookup_type: Both, alias_index: 0 } }], map: {}, list: {} }, PathItemString("shift"): LookupTreeNode { fields: [LookupFieldInfo { field_index: 3, lookup_priority: LookupFieldPriority { lookup_type: Both, alias_index: 0 } }], map: {}, list: {} }, PathItemString("class_type"): LookupTreeNode { fields: [LookupFieldInfo { field_index: 8, lookup_priority: LookupFieldPriority { lookup_type: Both, alias_index: 0 } }], map: {}, list: {} }} }, validate_by_alias: None, validate_by_name: None }), class: Py(0x55a03c0e2510), generic_origin: None, post_init: None, frozen: false, custom_init: false, root_model: false, undefined: Py(0x7f82f5afadb0), name: "CategoricalVariable" }), func: Py(0x7f82d62d8cc0), config: Py(0x7f82d630f900), name: "function-after[check_default(), CategoricalVariable]", field_name: None, info_arg: false })], cache_strings=True)

The pydantic-core SchemaValidator used to validate instances of the model.

__signature__: ClassVar[Signature] = <Signature (*, name: str = 'opt_problem', class_type: Literal['OptProblem'] = 'OptProblem', variables: List[Union[standard_evaluator.problem.FloatVariable, standard_evaluator.problem.IntVariable, standard_evaluator.problem.ArrayVariable, standard_evaluator.problem.CategoricalVariable]], responses: List[Union[standard_evaluator.problem.FloatVariable, standard_evaluator.problem.IntVariable, standard_evaluator.problem.ArrayVariable, standard_evaluator.problem.CategoricalVariable]], objectives: List[str] = <factory>, constraints: List[str] = <factory>, description: Optional[str] = None, cite: Optional[str] = None, options: Dict = <factory>) -> None>

The synthesized __init__ [Signature][inspect.Signature] of the model.

model_config: ClassVar[ConfigDict] = {}

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 initialize 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 num_cons_total: int | None

Return the total number of constraint flattened responses.

property free_flat_var_mask: ndarray | None

Return 1-D bool array over flattened variables (True => free).

property free_flat_var_positions: ndarray | None

Return 1-D int array of full flattened positions for free elements.

property num_flat_vars: int | None

Return the number of free flattened variables.

property full_to_free_var_index: ndarray | None

Return 1-D int array mapping full flattened index to free index or -1.

Evaluator Info

class EvaluatorInfo

Bases: BaseModel

Represents information about an evaluator.

Parameters:
  • name – The name of the evaluator.

  • class_type – Identifier

  • inputs – Input elements

  • outputs – Output elements

  • description – A description of the component. To define mathematical symbols use markdown syntax.

  • cite – Listing of relevant citations that should be referenced when publishing work that uses this class.

  • tool – Name of the tool wrapped

  • evaluator_identifier – Unique identifier for the evaluator.

  • version – Version of the evaluator.

  • component_type – Component type (ExplicitComponent, ImplicitComponent, Group, etc.).

  • options – Additional options for the component.

Methods:

calculate_default([overwrite])

Calculate and set default values for all inputs.

input_names()

Retrieve the names of all input inputs.

response_names()

Retrieve the names of all outputs.

set_defaults(new_defaults)

Set new default values for input outputs based on a provided dictionary.

Attributes:

__pydantic_fields_set__

The names of fields explicitly set during instantiation.

__pydantic_extra__

A dictionary containing extra values, if [extra][pydantic.config.ConfigDict.extra] is set to 'allow'.

__pydantic_private__

Values of private attributes set on the model instance.

__class_vars__

The names of the class variables defined on the model.

__private_attributes__

Metadata about the private attributes of the model.

__pydantic_complete__

Whether model building is completed, or if there are still undefined fields.

__pydantic_computed_fields__

A dictionary of computed field names and their corresponding [ComputedFieldInfo][pydantic.fields.ComputedFieldInfo] objects.

__pydantic_core_schema__

The core schema of the model.

__pydantic_custom_init__

Whether the model has a custom __init__ method.

__pydantic_decorators__

Metadata containing the decorators defined on the model.

__pydantic_extra_info__

A wrapper around the __pydantic_extra__ annotation, if explicitly annotated on a model.

__pydantic_fields__

A dictionary of field names and their corresponding [FieldInfo][pydantic.fields.FieldInfo] objects.

__pydantic_generic_metadata__

A dictionary containing metadata about generic Pydantic models.

__pydantic_parent_namespace__

Parent namespace of the model, used for automatic rebuilding of models.

__pydantic_post_init__

The name of the post-init method for the model, if defined.

__pydantic_serializer__

The pydantic-core SchemaSerializer used to dump instances of the model.

__pydantic_setattr_handlers__

__setattr__ handlers.

__pydantic_validator__

The pydantic-core SchemaValidator used to validate instances of the model.

__signature__

The synthesized __init__ [Signature][inspect.Signature] of the model.

model_config

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

calculate_default(overwrite=True)

Calculate and set default values for all inputs.

This method iterates through the list of inputs and calls the calculate_default method on each input to compute its default value.

Parameters:

overwrite (bool) – A flag indicating whether to overwrite existing default values. Defaults to True.

Return type:

None

input_names()

Retrieve the names of all input inputs.

This method returns a list of names for all inputs defined in the inputs attribute.

Returns:

A list of names of the input inputs.

Return type:

List[str]

response_names()

Retrieve the names of all outputs.

This method returns a list of names for all outputs defined in the responses attribute.

Returns:

A list of names of the output outputs.

Return type:

List[str]

set_defaults(new_defaults)

Set new default values for input outputs based on a provided dictionary.

This method updates the default values of the inputs in the inputs list if their names match the keys in the new_defaults dictionary.

Parameters:

new_defaults (dict) – A dictionary where keys are input names and values are the new default values to set.

Return type:

None

__pydantic_fields_set__: set[str]

The names of fields explicitly set during instantiation.

__pydantic_extra__: Dict[str, Any] | None

A dictionary containing extra values, if [extra][pydantic.config.ConfigDict.extra] is set to ‘allow’.

__pydantic_private__: Dict[str, Any] | None

Values of private attributes set on the model instance.

__class_vars__: ClassVar[set[str]] = {}

The names of the class variables defined on the model.

__private_attributes__: ClassVar[Dict[str, ModelPrivateAttr]] = {}

Metadata about the private attributes of the model.

__pydantic_complete__: ClassVar[bool] = True

Whether model building is completed, or if there are still undefined fields.

__pydantic_computed_fields__: ClassVar[Dict[str, ComputedFieldInfo]] = {}

A dictionary of computed field names and their corresponding [ComputedFieldInfo][pydantic.fields.ComputedFieldInfo] objects.

__pydantic_core_schema__: ClassVar[CoreSchema] = {'definitions': [{'cls': <class 'standard_evaluator.problem.FloatVariable'>, 'config': {'title': 'FloatVariable'}, 'custom_init': False, 'metadata': {'pydantic_js_functions': [<bound method BaseModel.__get_pydantic_json_schema__ of <class 'standard_evaluator.problem.FloatVariable'>>]}, 'ref': 'standard_evaluator.problem.FloatVariable:94146690615344', 'root_model': False, 'schema': {'computed_fields': [], 'fields': {'bounds': {'metadata': {'pydantic_js_updates': {'description': 'Lower and upper bounds of the variable'}}, 'schema': {'default': (-inf, inf), 'schema': {'function': {'function': <bound method FloatVariable.validate_bounds of <class 'standard_evaluator.problem.FloatVariable'>>, 'type': 'no-info'}, 'schema': {'schema': {'items_schema': [{'type': 'float'}, {'type': 'float'}], 'type': 'tuple'}, 'type': 'nullable'}, 'type': 'function-after'}, 'type': 'default'}, 'type': 'model-field'}, 'class_type': {'metadata': {'pydantic_js_updates': {'description': 'Class marker'}}, 'schema': {'default': 'float', 'schema': {'expected': ['float'], 'type': 'literal'}, 'type': 'default'}, 'type': 'model-field'}, 'default': {'metadata': {'pydantic_js_updates': {'description': 'Default value for this variable'}}, 'schema': {'default': None, 'schema': {'schema': {'type': 'float'}, 'type': 'nullable'}, 'type': 'default'}, 'type': 'model-field'}, 'description': {'metadata': {'pydantic_js_updates': {'description': 'A description of the variable.'}}, 'schema': {'default': '', 'schema': {'schema': {'type': 'str'}, 'type': 'nullable'}, 'type': 'default'}, 'type': 'model-field'}, 'name': {'metadata': {'pydantic_js_updates': {'description': 'Name of the variable.'}}, 'schema': {'function': {'function': <bound method FloatVariable.check_name of <class 'standard_evaluator.problem.FloatVariable'>>, 'type': 'no-info'}, 'schema': {'type': 'str'}, 'type': 'function-after'}, 'type': 'model-field'}, 'options': {'metadata': {'pydantic_js_updates': {'description': 'Options for the variable.'}}, 'schema': {'default_factory': <class 'dict'>, 'default_factory_takes_data': False, 'schema': {'keys_schema': {'type': 'any'}, 'type': 'dict', 'values_schema': {'type': 'any'}}, 'type': 'default'}, 'type': 'model-field'}, 'scale': {'metadata': {'pydantic_js_updates': {'description': 'Scale value to be used for this variable. Cannot be zero.'}}, 'schema': {'default': 1.0, 'schema': {'function': {'function': <bound method FloatVariable.validate_scale of <class 'standard_evaluator.problem.FloatVariable'>>, 'type': 'no-info'}, 'schema': {'schema': {'type': 'float'}, 'type': 'nullable'}, 'type': 'function-after'}, 'type': 'default'}, 'type': 'model-field'}, 'shift': {'metadata': {'pydantic_js_updates': {'description': 'Shift value to be used for this variable.'}}, 'schema': {'default': 0.0, 'schema': {'schema': {'type': 'float'}, 'type': 'nullable'}, 'type': 'default'}, 'type': 'model-field'}, 'units': {'metadata': {}, 'schema': {'default': None, 'schema': {'schema': {'type': 'str'}, 'type': 'nullable'}, 'type': 'default'}, 'type': 'model-field'}}, 'model_name': 'FloatVariable', 'type': 'model-fields'}, 'type': 'model'}, {'cls': <class 'standard_evaluator.problem.IntVariable'>, 'config': {'title': 'IntVariable'}, 'custom_init': False, 'metadata': {'pydantic_js_functions': [<bound method BaseModel.__get_pydantic_json_schema__ of <class 'standard_evaluator.problem.IntVariable'>>]}, 'ref': 'standard_evaluator.problem.IntVariable:94146690641792', 'root_model': False, 'schema': {'computed_fields': [], 'fields': {'bounds': {'metadata': {'pydantic_js_updates': {'description': 'Lower and upper bounds of the variable'}}, 'schema': {'default': [-9223372036854775808, 9223372036854775808], 'schema': {'function': {'function': <bound method IntVariable.validate_bounds of <class 'standard_evaluator.problem.IntVariable'>>, 'type': 'no-info'}, 'schema': {'schema': {'items_schema': [{'type': 'int'}, {'type': 'int'}], 'type': 'tuple'}, 'type': 'nullable'}, 'type': 'function-after'}, 'type': 'default'}, 'type': 'model-field'}, 'class_type': {'metadata': {'pydantic_js_updates': {'description': 'Class marker'}}, 'schema': {'default': 'int', 'schema': {'expected': ['int'], 'type': 'literal'}, 'type': 'default'}, 'type': 'model-field'}, 'default': {'metadata': {'pydantic_js_updates': {'description': 'Default value for this variable'}}, 'schema': {'default': None, 'schema': {'schema': {'type': 'int'}, 'type': 'nullable'}, 'type': 'default'}, 'type': 'model-field'}, 'description': {'metadata': {'pydantic_js_updates': {'description': 'A description of the variable.'}}, 'schema': {'default': '', 'schema': {'schema': {'type': 'str'}, 'type': 'nullable'}, 'type': 'default'}, 'type': 'model-field'}, 'name': {'metadata': {'pydantic_js_updates': {'description': 'Name of the variable.'}}, 'schema': {'function': {'function': <bound method FloatVariable.check_name of <class 'standard_evaluator.problem.IntVariable'>>, 'type': 'no-info'}, 'schema': {'type': 'str'}, 'type': 'function-after'}, 'type': 'model-field'}, 'options': {'metadata': {'pydantic_js_updates': {'description': 'Options for the variable.'}}, 'schema': {'default_factory': <class 'dict'>, 'default_factory_takes_data': False, 'schema': {'keys_schema': {'type': 'any'}, 'type': 'dict', 'values_schema': {'type': 'any'}}, 'type': 'default'}, 'type': 'model-field'}, 'scale': {'metadata': {'pydantic_js_updates': {'description': 'Scale value to be used for this variable. Cannot be zero.'}}, 'schema': {'default': 1, 'schema': {'function': {'function': <bound method FloatVariable.validate_scale of <class 'standard_evaluator.problem.IntVariable'>>, 'type': 'no-info'}, 'schema': {'schema': {'type': 'int'}, 'type': 'nullable'}, 'type': 'function-after'}, 'type': 'default'}, 'type': 'model-field'}, 'shift': {'metadata': {'pydantic_js_updates': {'description': 'Shift value to be used for this variable.'}}, 'schema': {'default': 0, 'schema': {'schema': {'type': 'int'}, 'type': 'nullable'}, 'type': 'default'}, 'type': 'model-field'}, 'units': {'metadata': {}, 'schema': {'default': None, 'schema': {'schema': {'type': 'str'}, 'type': 'nullable'}, 'type': 'default'}, 'type': 'model-field'}}, 'model_name': 'IntVariable', 'type': 'model-fields'}, 'type': 'model'}, {'function': {'function': <function ArrayVariable.check_shape>, 'type': 'no-info'}, 'metadata': {'pydantic_js_functions': [<bound method BaseModel.__get_pydantic_json_schema__ of <class 'standard_evaluator.problem.ArrayVariable'>>]}, 'ref': 'standard_evaluator.problem.ArrayVariable:94146690729520', 'schema': {'cls': <class 'standard_evaluator.problem.ArrayVariable'>, 'config': {'title': 'ArrayVariable'}, 'custom_init': False, 'root_model': False, 'schema': {'computed_fields': [], 'fields': {'bounds': {'metadata': {'pydantic_js_updates': {'description': 'Lower and upper bounds of the arrays'}}, 'schema': {'default': (None, None), 'schema': {'function': {'function': <bound method ArrayVariable.validate_bounds of <class 'standard_evaluator.problem.ArrayVariable'>>, 'type': 'no-info'}, 'schema': {'schema': {'items_schema': [{'choices': [{'type': 'float'}, {'type': 'int'}, {'function': {'function': <function get_validate_interface.<locals>.validate_interface>, 'type': 'with-info'}, 'metadata': {'definitions': [{'choices': [{'items_schema': {'schema_ref': 'any-shape-array-676be5e2aeaa3799', 'type': 'definition-ref'}, 'type': 'list'}, {'ge': -1.7976931348623157e+308, 'le': 1.7976931348623157e+308, 'type': 'float'}], 'ref': 'any-shape-array-676be5e2aeaa3799', 'type': 'union'}], 'pydantic_js_functions': [<bound method NDArrayMeta.__get_pydantic_json_schema__ of <class 'numpydantic.ndarray.NDArray'>>], 'schema': {'items_schema': {'schema_ref': 'any-shape-array-676be5e2aeaa3799', 'type': 'definition-ref'}, 'type': 'list'}, 'type': 'definitions'}, 'serialization': {'function': <function jsonize_array>, 'info_arg': True, 'type': 'function-plain', 'when_used': 'json'}, 'type': 'function-plain'}], 'type': 'union'}, {'choices': [{'type': 'float'}, {'type': 'int'}, {'function': {'function': <function get_validate_interface.<locals>.validate_interface>, 'type': 'with-info'}, 'metadata': {'definitions': [{'choices': [{'items_schema': {'schema_ref': 'any-shape-array-676be5e2aeaa3799', 'type': 'definition-ref'}, 'type': 'list'}, {'ge': -1.7976931348623157e+308, 'le': 1.7976931348623157e+308, 'type': 'float'}], 'ref': 'any-shape-array-676be5e2aeaa3799', 'type': 'union'}], 'pydantic_js_functions': [<bound method NDArrayMeta.__get_pydantic_json_schema__ of <class 'numpydantic.ndarray.NDArray'>>], 'schema': {'items_schema': {'schema_ref': 'any-shape-array-676be5e2aeaa3799', 'type': 'definition-ref'}, 'type': 'list'}, 'type': 'definitions'}, 'serialization': {'function': <function jsonize_array>, 'info_arg': True, 'type': 'function-plain', 'when_used': 'json'}, 'type': 'function-plain'}], 'type': 'union'}], 'type': 'tuple'}, 'type': 'nullable'}, 'type': 'function-after'}, 'serialization': {'function': <function ArrayVariable.serialize_bounds>, 'info_arg': False, 'is_field_serializer': True, 'type': 'function-plain'}, 'type': 'default'}, 'type': 'model-field'}, 'class_type': {'metadata': {}, 'schema': {'default': 'floatarray', 'schema': {'expected': ['floatarray'], 'type': 'literal'}, 'type': 'default'}, 'type': 'model-field'}, 'default': {'metadata': {'pydantic_js_updates': {'description': 'NumPy array with the default values to be used for the array variable'}}, 'schema': {'default': None, 'schema': {'schema': {'function': {'function': <function get_validate_interface.<locals>.validate_interface>, 'type': 'with-info'}, 'metadata': {'definitions': [{'choices': [{'items_schema': {'schema_ref': 'any-shape-array-676be5e2aeaa3799', 'type': 'definition-ref'}, 'type': 'list'}, {'ge': -1.7976931348623157e+308, 'le': 1.7976931348623157e+308, 'type': 'float'}], 'ref': 'any-shape-array-676be5e2aeaa3799', 'type': 'union'}], 'pydantic_js_functions': [<bound method NDArrayMeta.__get_pydantic_json_schema__ of <class 'numpydantic.ndarray.NDArray'>>], 'schema': {'items_schema': {'schema_ref': 'any-shape-array-676be5e2aeaa3799', 'type': 'definition-ref'}, 'type': 'list'}, 'type': 'definitions'}, 'serialization': {'function': <function jsonize_array>, 'info_arg': True, 'type': 'function-plain', 'when_used': 'json'}, 'type': 'function-plain'}, 'type': 'nullable'}, 'type': 'default'}, 'type': 'model-field'}, 'description': {'metadata': {'pydantic_js_updates': {'description': 'A description of the variable.'}}, 'schema': {'default': '', 'schema': {'schema': {'type': 'str'}, 'type': 'nullable'}, 'type': 'default'}, 'type': 'model-field'}, 'name': {'metadata': {'pydantic_js_updates': {'description': 'Name of the variable.'}}, 'schema': {'function': {'function': <bound method FloatVariable.check_name of <class 'standard_evaluator.problem.ArrayVariable'>>, 'type': 'no-info'}, 'schema': {'type': 'str'}, 'type': 'function-after'}, 'type': 'model-field'}, 'options': {'metadata': {'pydantic_js_updates': {'description': 'Options for the variable.'}}, 'schema': {'default_factory': <class 'dict'>, 'default_factory_takes_data': False, 'schema': {'keys_schema': {'type': 'any'}, 'type': 'dict', 'values_schema': {'type': 'any'}}, 'type': 'default'}, 'type': 'model-field'}, 'scale': {'metadata': {'pydantic_js_updates': {'description': 'NumPy array with the scale values to be used for the array variable. Cannot be zero.'}}, 'schema': {'default': None, 'schema': {'function': {'function': <bound method ArrayVariable.validate_scale of <class 'standard_evaluator.problem.ArrayVariable'>>, 'type': 'no-info'}, 'schema': {'schema': {'choices': [{'type': 'float'}, {'type': 'int'}, {'function': {'function': <function get_validate_interface.<locals>.validate_interface>, 'type': 'with-info'}, 'metadata': {'definitions': [{'choices': [{'items_schema': {'schema_ref': 'any-shape-array-676be5e2aeaa3799', 'type': 'definition-ref'}, 'type': 'list'}, {'ge': -1.7976931348623157e+308, 'le': 1.7976931348623157e+308, 'type': 'float'}], 'ref': 'any-shape-array-676be5e2aeaa3799', 'type': 'union'}], 'pydantic_js_functions': [<bound method NDArrayMeta.__get_pydantic_json_schema__ of <class 'numpydantic.ndarray.NDArray'>>], 'schema': {'items_schema': {'schema_ref': 'any-shape-array-676be5e2aeaa3799', 'type': 'definition-ref'}, 'type': 'list'}, 'type': 'definitions'}, 'serialization': {'function': <function jsonize_array>, 'info_arg': True, 'type': 'function-plain', 'when_used': 'json'}, 'type': 'function-plain'}], 'type': 'union'}, 'type': 'nullable'}, 'type': 'function-after'}, 'serialization': {'function': <function ArrayVariable.serialize_scale>, 'info_arg': False, 'is_field_serializer': True, 'type': 'function-plain'}, 'type': 'default'}, 'type': 'model-field'}, 'shape': {'metadata': {'pydantic_js_updates': {'description': 'Shape of the arrays'}}, 'schema': {'default': None, 'schema': {'schema': {'items_schema': [{'type': 'int'}], 'type': 'tuple', 'variadic_item_index': 0}, 'type': 'nullable'}, 'type': 'default'}, 'type': 'model-field'}, 'shift': {'metadata': {'pydantic_js_updates': {'description': 'NumPy array with the shift values to be used for the array variable.'}}, 'schema': {'default': None, 'schema': {'schema': {'choices': [{'type': 'float'}, {'type': 'int'}, {'function': {'function': <function get_validate_interface.<locals>.validate_interface>, 'type': 'with-info'}, 'metadata': {'definitions': [{'choices': [{'items_schema': {'schema_ref': 'any-shape-array-676be5e2aeaa3799', 'type': 'definition-ref'}, 'type': 'list'}, {'ge': -1.7976931348623157e+308, 'le': 1.7976931348623157e+308, 'type': 'float'}], 'ref': 'any-shape-array-676be5e2aeaa3799', 'type': 'union'}], 'pydantic_js_functions': [<bound method NDArrayMeta.__get_pydantic_json_schema__ of <class 'numpydantic.ndarray.NDArray'>>], 'schema': {'items_schema': {'schema_ref': 'any-shape-array-676be5e2aeaa3799', 'type': 'definition-ref'}, 'type': 'list'}, 'type': 'definitions'}, 'serialization': {'function': <function jsonize_array>, 'info_arg': True, 'type': 'function-plain', 'when_used': 'json'}, 'type': 'function-plain'}], 'type': 'union'}, 'type': 'nullable'}, 'serialization': {'function': <function ArrayVariable.serialize_shift>, 'info_arg': False, 'is_field_serializer': True, 'type': 'function-plain'}, 'type': 'default'}, 'type': 'model-field'}, 'units': {'metadata': {}, 'schema': {'default': None, 'schema': {'schema': {'type': 'str'}, 'type': 'nullable'}, 'type': 'default'}, 'type': 'model-field'}}, 'model_name': 'ArrayVariable', 'type': 'model-fields'}, 'type': 'model'}, 'type': 'function-after'}, {'function': {'function': <function CategoricalVariable.check_default>, 'type': 'no-info'}, 'metadata': {'pydantic_js_functions': [<bound method BaseModel.__get_pydantic_json_schema__ of <class 'standard_evaluator.problem.CategoricalVariable'>>]}, 'ref': 'standard_evaluator.problem.CategoricalVariable:94146690688272', 'schema': {'cls': <class 'standard_evaluator.problem.CategoricalVariable'>, 'config': {'title': 'CategoricalVariable'}, 'custom_init': False, 'root_model': False, 'schema': {'computed_fields': [], 'fields': {'bounds': {'metadata': {'pydantic_js_updates': {'description': 'Values this variable or response can take on. Must be defined.'}}, 'schema': {'function': {'function': <bound method CategoricalVariable.validate_bounds of <class 'standard_evaluator.problem.CategoricalVariable'>>, 'type': 'no-info'}, 'schema': {'items_schema': {'type': 'any'}, 'type': 'list'}, 'type': 'function-after'}, 'type': 'model-field'}, 'class_type': {'metadata': {'pydantic_js_updates': {'description': 'Class marker'}}, 'schema': {'default': 'cat', 'schema': {'expected': ['cat'], 'type': 'literal'}, 'type': 'default'}, 'type': 'model-field'}, 'default': {'metadata': {'pydantic_js_updates': {'description': 'Default value for this variable'}}, 'schema': {'default': None, 'schema': {'schema': {'type': 'any'}, 'type': 'nullable'}, 'type': 'default'}, 'type': 'model-field'}, 'description': {'metadata': {'pydantic_js_updates': {'description': 'A description of the variable.'}}, 'schema': {'default': '', 'schema': {'schema': {'type': 'str'}, 'type': 'nullable'}, 'type': 'default'}, 'type': 'model-field'}, 'name': {'metadata': {'pydantic_js_updates': {'description': 'Name of the variable.'}}, 'schema': {'function': {'function': <bound method FloatVariable.check_name of <class 'standard_evaluator.problem.CategoricalVariable'>>, 'type': 'no-info'}, 'schema': {'type': 'str'}, 'type': 'function-after'}, 'type': 'model-field'}, 'options': {'metadata': {'pydantic_js_updates': {'description': 'Options for the variable.'}}, 'schema': {'default_factory': <class 'dict'>, 'default_factory_takes_data': False, 'schema': {'keys_schema': {'type': 'any'}, 'type': 'dict', 'values_schema': {'type': 'any'}}, 'type': 'default'}, 'type': 'model-field'}, 'scale': {'metadata': {'pydantic_js_updates': {'description': 'Scale value to be used for this variable. Does not make sense for categorical variables.'}}, 'schema': {'default': None, 'schema': {'function': {'function': <bound method FloatVariable.validate_scale of <class 'standard_evaluator.problem.CategoricalVariable'>>, 'type': 'no-info'}, 'schema': {'expected': [None], 'type': 'literal'}, 'type': 'function-after'}, 'type': 'default'}, 'type': 'model-field'}, 'shift': {'metadata': {'pydantic_js_updates': {'description': 'Shift value to be used for this variable. Does not make sense for categorical variables.'}}, 'schema': {'default': None, 'schema': {'expected': [None], 'type': 'literal'}, 'type': 'default'}, 'type': 'model-field'}, 'units': {'metadata': {}, 'schema': {'default': None, 'schema': {'schema': {'type': 'str'}, 'type': 'nullable'}, 'type': 'default'}, 'type': 'model-field'}}, 'model_name': 'CategoricalVariable', 'type': 'model-fields'}, 'type': 'model'}, 'type': 'function-after'}], 'schema': {'cls': <class 'standard_evaluator.evaluator.EvaluatorInfo'>, 'config': {'title': 'EvaluatorInfo'}, 'custom_init': False, 'metadata': {'pydantic_js_functions': [<bound method BaseModel.__get_pydantic_json_schema__ of <class 'standard_evaluator.evaluator.EvaluatorInfo'>>]}, 'ref': 'standard_evaluator.evaluator.EvaluatorInfo:94146690675680', 'root_model': False, 'schema': {'computed_fields': [], 'fields': {'cite': {'metadata': {'pydantic_js_updates': {'description': 'Listing of relevant citations that should be referenced when publishing work that uses this class.'}}, 'schema': {'default': None, 'schema': {'schema': {'type': 'str'}, 'type': 'nullable'}, 'type': 'default'}, 'type': 'model-field'}, 'class_type': {'metadata': {}, 'schema': {'default': 'EvaluatorInfo', 'schema': {'expected': ['EvaluatorInfo'], 'type': 'literal'}, 'type': 'default'}, 'type': 'model-field'}, 'component_type': {'metadata': {'pydantic_js_updates': {'description': 'Component type (ExplicitComponent, ImplicitComponent, Group, etc.).'}}, 'schema': {'default': None, 'schema': {'schema': {'type': 'str'}, 'type': 'nullable'}, 'type': 'default'}, 'type': 'model-field'}, 'description': {'metadata': {'pydantic_js_updates': {'description': 'A description of the component. To define mathematical symbols use markdown syntax.'}}, 'schema': {'default': None, 'schema': {'schema': {'type': 'str'}, 'type': 'nullable'}, 'type': 'default'}, 'type': 'model-field'}, 'evaluator_identifier': {'metadata': {'pydantic_js_updates': {'description': 'Unique identifier for the evaluator.'}}, 'schema': {'default': None, 'schema': {'schema': {'type': 'str'}, 'type': 'nullable'}, 'type': 'default'}, 'type': 'model-field'}, 'inputs': {'metadata': {'pydantic_js_updates': {'description': 'Input elements'}}, 'schema': {'function': {'function': <bound method EvaluatorInfo.validate_outputs of <class 'standard_evaluator.evaluator.EvaluatorInfo'>>, 'type': 'no-info'}, 'schema': {'items_schema': {'choices': [{'schema_ref': 'standard_evaluator.problem.FloatVariable:94146690615344', 'type': 'definition-ref'}, {'schema_ref': 'standard_evaluator.problem.IntVariable:94146690641792', 'type': 'definition-ref'}, {'schema_ref': 'standard_evaluator.problem.ArrayVariable:94146690729520', 'type': 'definition-ref'}, {'schema_ref': 'standard_evaluator.problem.CategoricalVariable:94146690688272', 'type': 'definition-ref'}], 'type': 'union'}, 'type': 'list'}, 'type': 'function-after'}, 'type': 'model-field'}, 'name': {'metadata': {'pydantic_js_updates': {'description': 'The name of the evaluator'}}, 'schema': {'type': 'str'}, 'type': 'model-field'}, 'options': {'metadata': {'pydantic_js_updates': {'description': 'Additional options for the problem.'}}, 'schema': {'default_factory': <class 'dict'>, 'default_factory_takes_data': False, 'schema': {'keys_schema': {'type': 'any'}, 'type': 'dict', 'values_schema': {'type': 'any'}}, 'type': 'default'}, 'type': 'model-field'}, 'outputs': {'metadata': {'pydantic_js_updates': {'description': 'Output elements'}}, 'schema': {'function': {'function': <bound method EvaluatorInfo.validate_outputs of <class 'standard_evaluator.evaluator.EvaluatorInfo'>>, 'type': 'no-info'}, 'schema': {'items_schema': {'choices': [{'schema_ref': 'standard_evaluator.problem.FloatVariable:94146690615344', 'type': 'definition-ref'}, {'schema_ref': 'standard_evaluator.problem.IntVariable:94146690641792', 'type': 'definition-ref'}, {'schema_ref': 'standard_evaluator.problem.ArrayVariable:94146690729520', 'type': 'definition-ref'}, {'schema_ref': 'standard_evaluator.problem.CategoricalVariable:94146690688272', 'type': 'definition-ref'}], 'type': 'union'}, 'type': 'list'}, 'type': 'function-after'}, 'type': 'model-field'}, 'tool': {'metadata': {'pydantic_js_updates': {'description': 'Name of the tool wrapped'}}, 'schema': {'default': None, 'schema': {'schema': {'type': 'str'}, 'type': 'nullable'}, 'type': 'default'}, 'type': 'model-field'}, 'version': {'metadata': {'pydantic_js_updates': {'description': 'Version of the evaluator.'}}, 'schema': {'default': None, 'schema': {'schema': {'type': 'str'}, 'type': 'nullable'}, 'type': 'default'}, 'type': 'model-field'}}, 'model_name': 'EvaluatorInfo', 'type': 'model-fields'}, 'type': 'model'}, 'type': 'definitions'}

The core schema of the model.

__pydantic_custom_init__: ClassVar[bool] = False

Whether the model has a custom __init__ method.

__pydantic_decorators__: ClassVar[_decorators.DecoratorInfos] = DecoratorInfos(validators={}, field_validators={'validate_outputs': Decorator(cls_ref='standard_evaluator.evaluator.EvaluatorInfo:94146690675680', cls_var_name='validate_outputs', func=<bound method EvaluatorInfo.validate_outputs of <class 'standard_evaluator.evaluator.EvaluatorInfo'>>, shim=None, info=FieldValidatorDecoratorInfo(fields=('inputs', 'outputs'), mode='after', check_fields=None, json_schema_input_type=PydanticUndefined))}, root_validators={}, field_serializers={}, model_serializers={}, model_validators={}, computed_fields={})

Metadata containing the decorators defined on the model. This replaces Model.__validators__ and Model.__root_validators__ from Pydantic V1.

__pydantic_extra_info__: ClassVar[PydanticExtraInfo | None] = None

A wrapper around the __pydantic_extra__ annotation, if explicitly annotated on a model.

This is a private attribute, not meant to be used outside Pydantic.

__pydantic_fields__: ClassVar[Dict[str, FieldInfo]] = {'cite': FieldInfo(annotation=Union[str, NoneType], required=False, default=None, description='Listing of relevant citations that should be referenced when publishing work that uses this class.'), 'class_type': FieldInfo(annotation=Literal['EvaluatorInfo'], required=False, default='EvaluatorInfo'), 'component_type': FieldInfo(annotation=Union[str, NoneType], required=False, default=None, description='Component type (ExplicitComponent, ImplicitComponent, Group, etc.).'), 'description': FieldInfo(annotation=Union[str, NoneType], required=False, default=None, description='A description of the component. To define mathematical symbols use markdown syntax.'), 'evaluator_identifier': FieldInfo(annotation=Union[str, NoneType], required=False, default=None, description='Unique identifier for the evaluator.'), 'inputs': FieldInfo(annotation=List[Union[FloatVariable, IntVariable, ArrayVariable, CategoricalVariable]], required=True, description='Input elements'), 'name': FieldInfo(annotation=str, required=True, description='The name of the evaluator'), 'options': FieldInfo(annotation=Dict, required=False, default_factory=dict, description='Additional options for the problem.'), 'outputs': FieldInfo(annotation=List[Union[FloatVariable, IntVariable, ArrayVariable, CategoricalVariable]], required=True, description='Output elements'), 'tool': FieldInfo(annotation=Union[str, NoneType], required=False, default=None, description='Name of the tool wrapped'), 'version': FieldInfo(annotation=Union[str, NoneType], required=False, default=None, description='Version of the evaluator.')}

A dictionary of field names and their corresponding [FieldInfo][pydantic.fields.FieldInfo] objects. This replaces Model.__fields__ from Pydantic V1.

__pydantic_generic_metadata__: ClassVar[_generics.PydanticGenericMetadata] = {'args': (), 'origin': None, 'parameters': ()}

A dictionary containing metadata about generic Pydantic models.

The origin and args items map to the [__origin__][genericalias.__origin__] and [__args__][genericalias.__args__] attributes of [generic aliases][types-genericalias], and the parameter item maps to the __parameter__ attribute of generic classes.

__pydantic_parent_namespace__: ClassVar[Dict[str, Any] | None] = None

Parent namespace of the model, used for automatic rebuilding of models.

__pydantic_post_init__: ClassVar[None | Literal['model_post_init']] = None

The name of the post-init method for the model, if defined.

__pydantic_serializer__: ClassVar[SchemaSerializer] = SchemaSerializer(serializer=PolymorphismTrampoline(     PolymorphismTrampoline {         class: Py(             0x000055a03c0df3e0,         ),         serializer: PolymorphismTrampoline(             PolymorphismTrampoline {                 class: Py(                     0x000055a03c0df3e0,                 ),                 serializer: Model(                     ModelSerializer {                         class: Py(                             0x000055a03c0df3e0,                         ),                         serializer: Fields(                             GeneralFieldsSerializer {                                 fields: {                                     "cite": SerField {                                         key: "cite",                                         alias: None,                                         serializer: Some(                                             WithDefault(                                                 WithDefaultSerializer {                                                     default: Default(                                                         Py(                                                             0x00007f82f7c468c0,                                                         ),                                                     ),                                                     serializer: Nullable(                                                         NullableSerializer {                                                             serializer: Str(                                                                 StrSerializer,                                                             ),                                                         },                                                     ),                                                 },                                             ),                                         ),                                         required: true,                                         serialize_by_alias: None,                                         serialization_exclude_if: None,                                     },                                     "name": SerField {                                         key: "name",                                         alias: None,                                         serializer: Some(                                             Str(                                                 StrSerializer,                                             ),                                         ),                                         required: true,                                         serialize_by_alias: None,                                         serialization_exclude_if: None,                                     },                                     "outputs": SerField {                                         key: "outputs",                                         alias: None,                                         serializer: Some(                                             List(                                                 ListSerializer {                                                     item_serializer: Union(                                                         UnionSerializer {                                                             choices: UnionChoices {                                                                 choices: [                                                                     Recursive(                                                                         DefinitionRefSerializer {                                                                             definition: "...",                                                                             retry_with_lax_check: true,                                                                         },                                                                     ),                                                                     Recursive(                                                                         DefinitionRefSerializer {                                                                             definition: "...",                                                                             retry_with_lax_check: true,                                                                         },                                                                     ),                                                                     Recursive(                                                                         DefinitionRefSerializer {                                                                             definition: "...",                                                                             retry_with_lax_check: true,                                                                         },                                                                     ),                                                                     Recursive(                                                                         DefinitionRefSerializer {                                                                             definition: "...",                                                                             retry_with_lax_check: true,                                                                         },                                                                     ),                                                                 ],                                                             },                                                             name: "Union[definition-ref, definition-ref, definition-ref, definition-ref]",                                                         },                                                     ),                                                     filter: SchemaFilter {                                                         include: None,                                                         exclude: None,                                                     },                                                     name: "list[Union[definition-ref, definition-ref, definition-ref, definition-ref]]",                                                 },                                             ),                                         ),                                         required: true,                                         serialize_by_alias: None,                                         serialization_exclude_if: None,                                     },                                     "description": SerField {                                         key: "description",                                         alias: None,                                         serializer: Some(                                             WithDefault(                                                 WithDefaultSerializer {                                                     default: Default(                                                         Py(                                                             0x00007f82f7c468c0,                                                         ),                                                     ),                                                     serializer: Nullable(                                                         NullableSerializer {                                                             serializer: Str(                                                                 StrSerializer,                                                             ),                                                         },                                                     ),                                                 },                                             ),                                         ),                                         required: true,                                         serialize_by_alias: None,                                         serialization_exclude_if: None,                                     },                                     "tool": SerField {                                         key: "tool",                                         alias: None,                                         serializer: Some(                                             WithDefault(                                                 WithDefaultSerializer {                                                     default: Default(                                                         Py(                                                             0x00007f82f7c468c0,                                                         ),                                                     ),                                                     serializer: Nullable(                                                         NullableSerializer {                                                             serializer: Str(                                                                 StrSerializer,                                                             ),                                                         },                                                     ),                                                 },                                             ),                                         ),                                         required: true,                                         serialize_by_alias: None,                                         serialization_exclude_if: None,                                     },                                     "version": SerField {                                         key: "version",                                         alias: None,                                         serializer: Some(                                             WithDefault(                                                 WithDefaultSerializer {                                                     default: Default(                                                         Py(                                                             0x00007f82f7c468c0,                                                         ),                                                     ),                                                     serializer: Nullable(                                                         NullableSerializer {                                                             serializer: Str(                                                                 StrSerializer,                                                             ),                                                         },                                                     ),                                                 },                                             ),                                         ),                                         required: true,                                         serialize_by_alias: None,                                         serialization_exclude_if: None,                                     },                                     "class_type": SerField {                                         key: "class_type",                                         alias: None,                                         serializer: Some(                                             WithDefault(                                                 WithDefaultSerializer {                                                     default: Default(                                                         Py(                                                             0x00007f82f5987630,                                                         ),                                                     ),                                                     serializer: Literal(                                                         LiteralSerializer {                                                             expected_int: {},                                                             expected_str: {                                                                 "EvaluatorInfo",                                                             },                                                             expected_py: None,                                                             name: "literal['EvaluatorInfo']",                                                         },                                                     ),                                                 },                                             ),                                         ),                                         required: true,                                         serialize_by_alias: None,                                         serialization_exclude_if: None,                                     },                                     "inputs": SerField {                                         key: "inputs",                                         alias: None,                                         serializer: Some(                                             List(                                                 ListSerializer {                                                     item_serializer: Union(                                                         UnionSerializer {                                                             choices: UnionChoices {                                                                 choices: [                                                                     Recursive(                                                                         DefinitionRefSerializer {                                                                             definition: "...",                                                                             retry_with_lax_check: true,                                                                         },                                                                     ),                                                                     Recursive(                                                                         DefinitionRefSerializer {                                                                             definition: "...",                                                                             retry_with_lax_check: true,                                                                         },                                                                     ),                                                                     Recursive(                                                                         DefinitionRefSerializer {                                                                             definition: "...",                                                                             retry_with_lax_check: true,                                                                         },                                                                     ),                                                                     Recursive(                                                                         DefinitionRefSerializer {                                                                             definition: "...",                                                                             retry_with_lax_check: true,                                                                         },                                                                     ),                                                                 ],                                                             },                                                             name: "Union[definition-ref, definition-ref, definition-ref, definition-ref]",                                                         },                                                     ),                                                     filter: SchemaFilter {                                                         include: None,                                                         exclude: None,                                                     },                                                     name: "list[Union[definition-ref, definition-ref, definition-ref, definition-ref]]",                                                 },                                             ),                                         ),                                         required: true,                                         serialize_by_alias: None,                                         serialization_exclude_if: None,                                     },                                     "evaluator_identifier": SerField {                                         key: "evaluator_identifier",                                         alias: None,                                         serializer: Some(                                             WithDefault(                                                 WithDefaultSerializer {                                                     default: Default(                                                         Py(                                                             0x00007f82f7c468c0,                                                         ),                                                     ),                                                     serializer: Nullable(                                                         NullableSerializer {                                                             serializer: Str(                                                                 StrSerializer,                                                             ),                                                         },                                                     ),                                                 },                                             ),                                         ),                                         required: true,                                         serialize_by_alias: None,                                         serialization_exclude_if: None,                                     },                                     "component_type": SerField {                                         key: "component_type",                                         alias: None,                                         serializer: Some(                                             WithDefault(                                                 WithDefaultSerializer {                                                     default: Default(                                                         Py(                                                             0x00007f82f7c468c0,                                                         ),                                                     ),                                                     serializer: Nullable(                                                         NullableSerializer {                                                             serializer: Str(                                                                 StrSerializer,                                                             ),                                                         },                                                     ),                                                 },                                             ),                                         ),                                         required: true,                                         serialize_by_alias: None,                                         serialization_exclude_if: None,                                     },                                     "options": SerField {                                         key: "options",                                         alias: None,                                         serializer: Some(                                             WithDefault(                                                 WithDefaultSerializer {                                                     default: DefaultFactory(                                                         Py(                                                             0x00007f82f7c43b80,                                                         ),                                                         false,                                                     ),                                                     serializer: Dict(                                                         DictSerializer {                                                             key_serializer: Any(                                                                 AnySerializer,                                                             ),                                                             value_serializer: Any(                                                                 AnySerializer,                                                             ),                                                             filter: SchemaFilter {                                                                 include: None,                                                                 exclude: None,                                                             },                                                             name: "dict[any, any]",                                                         },                                                     ),                                                 },                                             ),                                         ),                                         required: true,                                         serialize_by_alias: None,                                         serialization_exclude_if: None,                                     },                                 },                                 computed_fields: Some(                                     ComputedFields(                                         [],                                     ),                                 ),                                 mode: SimpleDict,                                 extra_serializer: None,                                 filter: SchemaFilter {                                     include: None,                                     exclude: None,                                 },                                 required_fields: 11,                             },                         ),                         has_extra: false,                         root_model: false,                         name: "EvaluatorInfo",                     },                 ),                 enabled_from_config: false,             },         ),         enabled_from_config: false,     }, ), definitions=[PolymorphismTrampoline(PolymorphismTrampoline { class: Py(0x55a03c0d0830), serializer: Prebuilt(PrebuiltSerializer { schema_serializer: Py(0x7f82d66e67a0) }), enabled_from_config: false }), PolymorphismTrampoline(PolymorphismTrampoline { class: Py(0x55a03c0d6f80), serializer: Prebuilt(PrebuiltSerializer { schema_serializer: Py(0x7f82d66e68c0) }), enabled_from_config: false }), PolymorphismTrampoline(PolymorphismTrampoline { class: Py(0x55a03c0ec630), serializer: Prebuilt(PrebuiltSerializer { schema_serializer: Py(0x7f82d66e6b00) }), enabled_from_config: false }), PolymorphismTrampoline(PolymorphismTrampoline { class: Py(0x55a03c0e2510), serializer: Prebuilt(PrebuiltSerializer { schema_serializer: Py(0x7f82d66e69e0) }), enabled_from_config: false })])

The pydantic-core SchemaSerializer used to dump instances of the model.

__pydantic_setattr_handlers__: ClassVar[Dict[str, Callable[[BaseModel, str, Any], None]]] = {}

__setattr__ handlers. Memoizing the handlers leads to a dramatic performance improvement in __setattr__

__pydantic_validator__: ClassVar[SchemaValidator | PluggableSchemaValidator] = SchemaValidator(title="EvaluatorInfo", validator=Model(     ModelValidator {         revalidate: Never,         validator: ModelFields(             ModelFieldsValidator {                 fields: [                     Field {                         name: "name",                         lookup_path_collection: LookupPathCollection {                             by_name: LookupPath {                                 first_item: PathItemString(                                     "name",                                 ),                                 rest: [],                             },                             by_alias: [],                         },                         validator: Str(                             StrValidator {                                 strict: false,                                 coerce_numbers_to_str: false,                             },                         ),                         frozen: false,                     },                     Field {                         name: "class_type",                         lookup_path_collection: LookupPathCollection {                             by_name: LookupPath {                                 first_item: PathItemString(                                     "class_type",                                 ),                                 rest: [],                             },                             by_alias: [],                         },                         validator: WithDefault(                             WithDefaultValidator {                                 default: Default(                                     Py(                                         0x00007f82f5987630,                                     ),                                 ),                                 on_error: Raise,                                 validator: Literal(                                     LiteralValidator {                                         lookup: LiteralLookup {                                             expected_bool: None,                                             expected_int: None,                                             expected_str: Some(                                                 {                                                     "EvaluatorInfo": 0,                                                 },                                             ),                                             expected_py_dict: None,                                             expected_py_values: None,                                             expected_py_primitives: Some(                                                 Py(                                                     0x00007f82d6311f00,                                                 ),                                             ),                                             values: [                                                 Py(                                                     0x00007f82f5987630,                                                 ),                                             ],                                         },                                         expected_repr: "'EvaluatorInfo'",                                         name: "literal['EvaluatorInfo']",                                     },                                 ),                                 validate_default: false,                                 copy_default: false,                                 name: "default[literal['EvaluatorInfo']]",                                 undefined: Py(                                     0x00007f82f5afadb0,                                 ),                             },                         ),                         frozen: false,                     },                     Field {                         name: "inputs",                         lookup_path_collection: LookupPathCollection {                             by_name: LookupPath {                                 first_item: PathItemString(                                     "inputs",                                 ),                                 rest: [],                             },                             by_alias: [],                         },                         validator: FunctionAfter(                             FunctionAfterValidator {                                 validator: List(                                     ListValidator {                                         strict: false,                                         item_validator: Some(                                             Union(                                                 UnionValidator {                                                     mode: Smart,                                                     choices: [                                                         (                                                             DefinitionRef(                                                                 DefinitionRefValidator {                                                                     definition: "FloatVariable",                                                                 },                                                             ),                                                             None,                                                         ),                                                         (                                                             DefinitionRef(                                                                 DefinitionRefValidator {                                                                     definition: "IntVariable",                                                                 },                                                             ),                                                             None,                                                         ),                                                         (                                                             DefinitionRef(                                                                 DefinitionRefValidator {                                                                     definition: "function-after[check_shape(), ArrayVariable]",                                                                 },                                                             ),                                                             None,                                                         ),                                                         (                                                             DefinitionRef(                                                                 DefinitionRefValidator {                                                                     definition: "function-after[check_default(), CategoricalVariable]",                                                                 },                                                             ),                                                             None,                                                         ),                                                     ],                                                     custom_error: None,                                                     name: "union[FloatVariable,IntVariable,function-after[check_shape(), ArrayVariable],function-after[check_default(), CategoricalVariable]]",                                                 },                                             ),                                         ),                                         min_length: None,                                         max_length: None,                                         name: OnceLock(                                             "list[union[FloatVariable,IntVariable,function-after[check_shape(), ArrayVariable],function-after[check_default(), CategoricalVariable]]]",                                         ),                                         fail_fast: false,                                     },                                 ),                                 func: Py(                                     0x00007f82d6311440,                                 ),                                 config: Py(                                     0x00007f82d6311ec0,                                 ),                                 name: "function-after[validate_outputs(), list[union[FloatVariable,IntVariable,function-after[check_shape(), ArrayVariable],function-after[check_default(), CategoricalVariable]]]]",                                 field_name: None,                                 info_arg: false,                             },                         ),                         frozen: false,                     },                     Field {                         name: "outputs",                         lookup_path_collection: LookupPathCollection {                             by_name: LookupPath {                                 first_item: PathItemString(                                     "outputs",                                 ),                                 rest: [],                             },                             by_alias: [],                         },                         validator: FunctionAfter(                             FunctionAfterValidator {                                 validator: List(                                     ListValidator {                                         strict: false,                                         item_validator: Some(                                             Union(                                                 UnionValidator {                                                     mode: Smart,                                                     choices: [                                                         (                                                             DefinitionRef(                                                                 DefinitionRefValidator {                                                                     definition: "FloatVariable",                                                                 },                                                             ),                                                             None,                                                         ),                                                         (                                                             DefinitionRef(                                                                 DefinitionRefValidator {                                                                     definition: "IntVariable",                                                                 },                                                             ),                                                             None,                                                         ),                                                         (                                                             DefinitionRef(                                                                 DefinitionRefValidator {                                                                     definition: "function-after[check_shape(), ArrayVariable]",                                                                 },                                                             ),                                                             None,                                                         ),                                                         (                                                             DefinitionRef(                                                                 DefinitionRefValidator {                                                                     definition: "function-after[check_default(), CategoricalVariable]",                                                                 },                                                             ),                                                             None,                                                         ),                                                     ],                                                     custom_error: None,                                                     name: "union[FloatVariable,IntVariable,function-after[check_shape(), ArrayVariable],function-after[check_default(), CategoricalVariable]]",                                                 },                                             ),                                         ),                                         min_length: None,                                         max_length: None,                                         name: OnceLock(                                             "list[union[FloatVariable,IntVariable,function-after[check_shape(), ArrayVariable],function-after[check_default(), CategoricalVariable]]]",                                         ),                                         fail_fast: false,                                     },                                 ),                                 func: Py(                                     0x00007f82d6311440,                                 ),                                 config: Py(                                     0x00007f82d6311ec0,                                 ),                                 name: "function-after[validate_outputs(), list[union[FloatVariable,IntVariable,function-after[check_shape(), ArrayVariable],function-after[check_default(), CategoricalVariable]]]]",                                 field_name: None,                                 info_arg: false,                             },                         ),                         frozen: false,                     },                     Field {                         name: "description",                         lookup_path_collection: LookupPathCollection {                             by_name: LookupPath {                                 first_item: PathItemString(                                     "description",                                 ),                                 rest: [],                             },                             by_alias: [],                         },                         validator: WithDefault(                             WithDefaultValidator {                                 default: Default(                                     Py(                                         0x00007f82f7c468c0,                                     ),                                 ),                                 on_error: Raise,                                 validator: Nullable(                                     NullableValidator {                                         validator: Str(                                             StrValidator {                                                 strict: false,                                                 coerce_numbers_to_str: false,                                             },                                         ),                                         name: "nullable[str]",                                     },                                 ),                                 validate_default: false,                                 copy_default: false,                                 name: "default[nullable[str]]",                                 undefined: Py(                                     0x00007f82f5afadb0,                                 ),                             },                         ),                         frozen: false,                     },                     Field {                         name: "cite",                         lookup_path_collection: LookupPathCollection {                             by_name: LookupPath {                                 first_item: PathItemString(                                     "cite",                                 ),                                 rest: [],                             },                             by_alias: [],                         },                         validator: WithDefault(                             WithDefaultValidator {                                 default: Default(                                     Py(                                         0x00007f82f7c468c0,                                     ),                                 ),                                 on_error: Raise,                                 validator: Nullable(                                     NullableValidator {                                         validator: Str(                                             StrValidator {                                                 strict: false,                                                 coerce_numbers_to_str: false,                                             },                                         ),                                         name: "nullable[str]",                                     },                                 ),                                 validate_default: false,                                 copy_default: false,                                 name: "default[nullable[str]]",                                 undefined: Py(                                     0x00007f82f5afadb0,                                 ),                             },                         ),                         frozen: false,                     },                     Field {                         name: "tool",                         lookup_path_collection: LookupPathCollection {                             by_name: LookupPath {                                 first_item: PathItemString(                                     "tool",                                 ),                                 rest: [],                             },                             by_alias: [],                         },                         validator: WithDefault(                             WithDefaultValidator {                                 default: Default(                                     Py(                                         0x00007f82f7c468c0,                                     ),                                 ),                                 on_error: Raise,                                 validator: Nullable(                                     NullableValidator {                                         validator: Str(                                             StrValidator {                                                 strict: false,                                                 coerce_numbers_to_str: false,                                             },                                         ),                                         name: "nullable[str]",                                     },                                 ),                                 validate_default: false,                                 copy_default: false,                                 name: "default[nullable[str]]",                                 undefined: Py(                                     0x00007f82f5afadb0,                                 ),                             },                         ),                         frozen: false,                     },                     Field {                         name: "evaluator_identifier",                         lookup_path_collection: LookupPathCollection {                             by_name: LookupPath {                                 first_item: PathItemString(                                     "evaluator_identifier",                                 ),                                 rest: [],                             },                             by_alias: [],                         },                         validator: WithDefault(                             WithDefaultValidator {                                 default: Default(                                     Py(                                         0x00007f82f7c468c0,                                     ),                                 ),                                 on_error: Raise,                                 validator: Nullable(                                     NullableValidator {                                         validator: Str(                                             StrValidator {                                                 strict: false,                                                 coerce_numbers_to_str: false,                                             },                                         ),                                         name: "nullable[str]",                                     },                                 ),                                 validate_default: false,                                 copy_default: false,                                 name: "default[nullable[str]]",                                 undefined: Py(                                     0x00007f82f5afadb0,                                 ),                             },                         ),                         frozen: false,                     },                     Field {                         name: "version",                         lookup_path_collection: LookupPathCollection {                             by_name: LookupPath {                                 first_item: PathItemString(                                     "version",                                 ),                                 rest: [],                             },                             by_alias: [],                         },                         validator: WithDefault(                             WithDefaultValidator {                                 default: Default(                                     Py(                                         0x00007f82f7c468c0,                                     ),                                 ),                                 on_error: Raise,                                 validator: Nullable(                                     NullableValidator {                                         validator: Str(                                             StrValidator {                                                 strict: false,                                                 coerce_numbers_to_str: false,                                             },                                         ),                                         name: "nullable[str]",                                     },                                 ),                                 validate_default: false,                                 copy_default: false,                                 name: "default[nullable[str]]",                                 undefined: Py(                                     0x00007f82f5afadb0,                                 ),                             },                         ),                         frozen: false,                     },                     Field {                         name: "component_type",                         lookup_path_collection: LookupPathCollection {                             by_name: LookupPath {                                 first_item: PathItemString(                                     "component_type",                                 ),                                 rest: [],                             },                             by_alias: [],                         },                         validator: WithDefault(                             WithDefaultValidator {                                 default: Default(                                     Py(                                         0x00007f82f7c468c0,                                     ),                                 ),                                 on_error: Raise,                                 validator: Nullable(                                     NullableValidator {                                         validator: Str(                                             StrValidator {                                                 strict: false,                                                 coerce_numbers_to_str: false,                                             },                                         ),                                         name: "nullable[str]",                                     },                                 ),                                 validate_default: false,                                 copy_default: false,                                 name: "default[nullable[str]]",                                 undefined: Py(                                     0x00007f82f5afadb0,                                 ),                             },                         ),                         frozen: false,                     },                     Field {                         name: "options",                         lookup_path_collection: LookupPathCollection {                             by_name: LookupPath {                                 first_item: PathItemString(                                     "options",                                 ),                                 rest: [],                             },                             by_alias: [],                         },                         validator: WithDefault(                             WithDefaultValidator {                                 default: DefaultFactory(                                     Py(                                         0x00007f82f7c43b80,                                     ),                                     false,                                 ),                                 on_error: Raise,                                 validator: Dict(                                     DictValidator {                                         strict: false,                                         key_validator: Any(                                             AnyValidator,                                         ),                                         value_validator: Any(                                             AnyValidator,                                         ),                                         min_length: None,                                         max_length: None,                                         fail_fast: false,                                         name: "dict[any,any]",                                     },                                 ),                                 validate_default: false,                                 copy_default: false,                                 name: "default[dict[any,any]]",                                 undefined: Py(                                     0x00007f82f5afadb0,                                 ),                             },                         ),                         frozen: false,                     },                 ],                 model_name: "EvaluatorInfo",                 extra_behavior: Ignore,                 extras_validator: None,                 extras_keys_validator: None,                 strict: false,                 from_attributes: false,                 loc_by_alias: true,                 lookup: LookupTree {                     inner: {                         PathItemString(                             "outputs",                         ): LookupTreeNode {                             fields: [                                 LookupFieldInfo {                                     field_index: 3,                                     lookup_priority: LookupFieldPriority {                                         lookup_type: Both,                                         alias_index: 0,                                     },                                 },                             ],                             map: {},                             list: {},                         },                         PathItemString(                             "tool",                         ): LookupTreeNode {                             fields: [                                 LookupFieldInfo {                                     field_index: 6,                                     lookup_priority: LookupFieldPriority {                                         lookup_type: Both,                                         alias_index: 0,                                     },                                 },                             ],                             map: {},                             list: {},                         },                         PathItemString(                             "options",                         ): LookupTreeNode {                             fields: [                                 LookupFieldInfo {                                     field_index: 10,                                     lookup_priority: LookupFieldPriority {                                         lookup_type: Both,                                         alias_index: 0,                                     },                                 },                             ],                             map: {},                             list: {},                         },                         PathItemString(                             "name",                         ): LookupTreeNode {                             fields: [                                 LookupFieldInfo {                                     field_index: 0,                                     lookup_priority: LookupFieldPriority {                                         lookup_type: Both,                                         alias_index: 0,                                     },                                 },                             ],                             map: {},                             list: {},                         },                         PathItemString(                             "class_type",                         ): LookupTreeNode {                             fields: [                                 LookupFieldInfo {                                     field_index: 1,                                     lookup_priority: LookupFieldPriority {                                         lookup_type: Both,                                         alias_index: 0,                                     },                                 },                             ],                             map: {},                             list: {},                         },                         PathItemString(                             "inputs",                         ): LookupTreeNode {                             fields: [                                 LookupFieldInfo {                                     field_index: 2,                                     lookup_priority: LookupFieldPriority {                                         lookup_type: Both,                                         alias_index: 0,                                     },                                 },                             ],                             map: {},                             list: {},                         },                         PathItemString(                             "cite",                         ): LookupTreeNode {                             fields: [                                 LookupFieldInfo {                                     field_index: 5,                                     lookup_priority: LookupFieldPriority {                                         lookup_type: Both,                                         alias_index: 0,                                     },                                 },                             ],                             map: {},                             list: {},                         },                         PathItemString(                             "version",                         ): LookupTreeNode {                             fields: [                                 LookupFieldInfo {                                     field_index: 8,                                     lookup_priority: LookupFieldPriority {                                         lookup_type: Both,                                         alias_index: 0,                                     },                                 },                             ],                             map: {},                             list: {},                         },                         PathItemString(                             "evaluator_identifier",                         ): LookupTreeNode {                             fields: [                                 LookupFieldInfo {                                     field_index: 7,                                     lookup_priority: LookupFieldPriority {                                         lookup_type: Both,                                         alias_index: 0,                                     },                                 },                             ],                             map: {},                             list: {},                         },                         PathItemString(                             "component_type",                         ): LookupTreeNode {                             fields: [                                 LookupFieldInfo {                                     field_index: 9,                                     lookup_priority: LookupFieldPriority {                                         lookup_type: Both,                                         alias_index: 0,                                     },                                 },                             ],                             map: {},                             list: {},                         },                         PathItemString(                             "description",                         ): LookupTreeNode {                             fields: [                                 LookupFieldInfo {                                     field_index: 4,                                     lookup_priority: LookupFieldPriority {                                         lookup_type: Both,                                         alias_index: 0,                                     },                                 },                             ],                             map: {},                             list: {},                         },                     },                 },                 validate_by_alias: None,                 validate_by_name: None,             },         ),         class: Py(             0x000055a03c0df3e0,         ),         generic_origin: None,         post_init: None,         frozen: false,         custom_init: false,         root_model: false,         undefined: Py(             0x00007f82f5afadb0,         ),         name: "EvaluatorInfo",     }, ), definitions=[Prebuilt(PrebuiltValidator { schema_validator: Py(0x7f82d66e6830) }), FunctionAfter(FunctionAfterValidator { validator: Model(ModelValidator { revalidate: Never, validator: ModelFields(ModelFieldsValidator { fields: [Field { name: "name", lookup_path_collection: LookupPathCollection { by_name: LookupPath { first_item: PathItemString("name"), rest: [] }, by_alias: [] }, validator: FunctionAfter(FunctionAfterValidator { validator: Str(StrValidator { strict: false, coerce_numbers_to_str: false }), func: Py(0x7f82d62fa5c0), config: Py(0x7f82d62d0480), name: "function-after[check_name(), str]", field_name: None, info_arg: false }), frozen: false }, Field { name: "default", lookup_path_collection: LookupPathCollection { by_name: LookupPath { first_item: PathItemString("default"), rest: [] }, by_alias: [] }, validator: WithDefault(WithDefaultValidator { default: Default(Py(0x7f82f7c468c0)), on_error: Raise, validator: Nullable(NullableValidator { validator: FunctionPlain(FunctionPlainValidator { func: Py(0x7f82d62d9580), config: Py(0x7f82d62d0480), name: "function-plain[validate_interface()]", field_name: None, info_arg: true }), name: "nullable[function-plain[validate_interface()]]" }), validate_default: false, copy_default: false, name: "default[nullable[function-plain[validate_interface()]]]", undefined: Py(0x7f82f5afadb0) }), frozen: false }, Field { name: "bounds", lookup_path_collection: LookupPathCollection { by_name: LookupPath { first_item: PathItemString("bounds"), rest: [] }, by_alias: [] }, validator: WithDefault(WithDefaultValidator { default: Default(Py(0x7f82d6742180)), on_error: Raise, validator: FunctionAfter(FunctionAfterValidator { validator: Nullable(NullableValidator { validator: Tuple(TupleValidator { strict: false, validators: [Union(UnionValidator { mode: Smart, choices: [(Float(FloatValidator { strict: false, allow_inf_nan: true }), None), (Int(IntValidator { strict: false }), None), (FunctionPlain(FunctionPlainValidator { func: Py(0x7f82d62d96c0), config: Py(0x7f82d62d0480), name: "function-plain[validate_interface()]", field_name: None, info_arg: true }), None)], custom_error: None, name: "union[float,int,function-plain[validate_interface()]]" }), Union(UnionValidator { mode: Smart, choices: [(Float(FloatValidator { strict: false, allow_inf_nan: true }), None), (Int(IntValidator { strict: false }), None), (FunctionPlain(FunctionPlainValidator { func: Py(0x7f82d62d9800), config: Py(0x7f82d62d0480), name: "function-plain[validate_interface()]", field_name: None, info_arg: true }), None)], custom_error: None, name: "union[float,int,function-plain[validate_interface()]]" })], variadic_item_index: None, min_length: None, max_length: None, name: "tuple[union[float,int,function-plain[validate_interface()]], union[float,int,function-plain[validate_interface()]]]", fail_fast: false }), name: "nullable[tuple[union[float,int,function-plain[validate_interface()]], union[float,int,function-plain[validate_interface()]]]]" }), func: Py(0x7f82d62fad80), config: Py(0x7f82d62d0480), name: "function-after[validate_bounds(), nullable[tuple[union[float,int,function-plain[validate_interface()]], union[float,int,function-plain[validate_interface()]]]]]", field_name: None, info_arg: false }), validate_default: false, copy_default: false, name: "default[function-after[validate_bounds(), nullable[tuple[union[float,int,function-plain[validate_interface()]], union[float,int,function-plain[validate_interface()]]]]]]", undefined: Py(0x7f82f5afadb0) }), frozen: false }, Field { name: "shift", lookup_path_collection: LookupPathCollection { by_name: LookupPath { first_item: PathItemString("shift"), rest: [] }, by_alias: [] }, validator: WithDefault(WithDefaultValidator { default: Default(Py(0x7f82f7c468c0)), on_error: Raise, validator: Nullable(NullableValidator { validator: Union(UnionValidator { mode: Smart, choices: [(Float(FloatValidator { strict: false, allow_inf_nan: true }), None), (Int(IntValidator { strict: false }), None), (FunctionPlain(FunctionPlainValidator { func: Py(0x7f82d62d98a0), config: Py(0x7f82d62d0480), name: "function-plain[validate_interface()]", field_name: None, info_arg: true }), None)], custom_error: None, name: "union[float,int,function-plain[validate_interface()]]" }), name: "nullable[union[float,int,function-plain[validate_interface()]]]" }), validate_default: false, copy_default: false, name: "default[nullable[union[float,int,function-plain[validate_interface()]]]]", undefined: Py(0x7f82f5afadb0) }), frozen: false }, Field { name: "scale", lookup_path_collection: LookupPathCollection { by_name: LookupPath { first_item: PathItemString("scale"), rest: [] }, by_alias: [] }, validator: WithDefault(WithDefaultValidator { default: Default(Py(0x7f82f7c468c0)), on_error: Raise, validator: FunctionAfter(FunctionAfterValidator { validator: Nullable(NullableValidator { validator: Union(UnionValidator { mode: Smart, choices: [(Float(FloatValidator { strict: false, allow_inf_nan: true }), None), (Int(IntValidator { strict: false }), None), (FunctionPlain(FunctionPlainValidator { func: Py(0x7f82d62d9620), config: Py(0x7f82d62d0480), name: "function-plain[validate_interface()]", field_name: None, info_arg: true }), None)], custom_error: None, name: "union[float,int,function-plain[validate_interface()]]" }), name: "nullable[union[float,int,function-plain[validate_interface()]]]" }), func: Py(0x7f82d62faf40), config: Py(0x7f82d62d0480), name: "function-after[validate_scale(), nullable[union[float,int,function-plain[validate_interface()]]]]", field_name: None, info_arg: false }), validate_default: false, copy_default: false, name: "default[function-after[validate_scale(), nullable[union[float,int,function-plain[validate_interface()]]]]]", undefined: Py(0x7f82f5afadb0) }), frozen: false }, Field { name: "units", lookup_path_collection: LookupPathCollection { by_name: LookupPath { first_item: PathItemString("units"), rest: [] }, by_alias: [] }, validator: WithDefault(WithDefaultValidator { default: Default(Py(0x7f82f7c468c0)), on_error: Raise, validator: Nullable(NullableValidator { validator: Str(StrValidator { strict: false, coerce_numbers_to_str: false }), name: "nullable[str]" }), validate_default: false, copy_default: false, name: "default[nullable[str]]", undefined: Py(0x7f82f5afadb0) }), frozen: false }, Field { name: "description", lookup_path_collection: LookupPathCollection { by_name: LookupPath { first_item: PathItemString("description"), rest: [] }, by_alias: [] }, validator: WithDefault(WithDefaultValidator { default: Default(Py(0x7f82f7d3f660)), on_error: Raise, validator: Nullable(NullableValidator { validator: Str(StrValidator { strict: false, coerce_numbers_to_str: false }), name: "nullable[str]" }), validate_default: false, copy_default: false, name: "default[nullable[str]]", undefined: Py(0x7f82f5afadb0) }), frozen: false }, Field { name: "options", lookup_path_collection: LookupPathCollection { by_name: LookupPath { first_item: PathItemString("options"), rest: [] }, by_alias: [] }, validator: WithDefault(WithDefaultValidator { default: DefaultFactory(Py(0x7f82f7c43b80), false), on_error: Raise, validator: Dict(DictValidator { strict: false, key_validator: Any(AnyValidator), value_validator: Any(AnyValidator), min_length: None, max_length: None, fail_fast: false, name: "dict[any,any]" }), validate_default: false, copy_default: false, name: "default[dict[any,any]]", undefined: Py(0x7f82f5afadb0) }), frozen: false }, Field { name: "class_type", lookup_path_collection: LookupPathCollection { by_name: LookupPath { first_item: PathItemString("class_type"), rest: [] }, by_alias: [] }, validator: WithDefault(WithDefaultValidator { default: Default(Py(0x7f82d70a4db0)), on_error: Raise, validator: Literal(LiteralValidator { lookup: LiteralLookup { expected_bool: None, expected_int: None, expected_str: Some({"floatarray": 0}), expected_py_dict: None, expected_py_values: None, expected_py_primitives: Some(Py(0x7f82d6311e00)), values: [Py(0x7f82d70a4db0)] }, expected_repr: "'floatarray'", name: "literal['floatarray']" }), validate_default: false, copy_default: false, name: "default[literal['floatarray']]", undefined: Py(0x7f82f5afadb0) }), frozen: false }, Field { name: "shape", lookup_path_collection: LookupPathCollection { by_name: LookupPath { first_item: PathItemString("shape"), rest: [] }, by_alias: [] }, validator: WithDefault(WithDefaultValidator { default: Default(Py(0x7f82f7c468c0)), on_error: Raise, validator: Nullable(NullableValidator { validator: Tuple(TupleValidator { strict: false, validators: [Int(IntValidator { strict: false })], variadic_item_index: Some(0), min_length: None, max_length: None, name: "tuple[int, ...]", fail_fast: false }), name: "nullable[tuple[int, ...]]" }), validate_default: false, copy_default: false, name: "default[nullable[tuple[int, ...]]]", undefined: Py(0x7f82f5afadb0) }), frozen: false }], model_name: "ArrayVariable", extra_behavior: Ignore, extras_validator: None, extras_keys_validator: None, strict: false, from_attributes: false, loc_by_alias: true, lookup: LookupTree { inner: {PathItemString("shift"): LookupTreeNode { fields: [LookupFieldInfo { field_index: 3, lookup_priority: LookupFieldPriority { lookup_type: Both, alias_index: 0 } }], map: {}, list: {} }, PathItemString("description"): LookupTreeNode { fields: [LookupFieldInfo { field_index: 6, lookup_priority: LookupFieldPriority { lookup_type: Both, alias_index: 0 } }], map: {}, list: {} }, PathItemString("options"): LookupTreeNode { fields: [LookupFieldInfo { field_index: 7, lookup_priority: LookupFieldPriority { lookup_type: Both, alias_index: 0 } }], map: {}, list: {} }, PathItemString("bounds"): LookupTreeNode { fields: [LookupFieldInfo { field_index: 2, lookup_priority: LookupFieldPriority { lookup_type: Both, alias_index: 0 } }], map: {}, list: {} }, PathItemString("default"): LookupTreeNode { fields: [LookupFieldInfo { field_index: 1, lookup_priority: LookupFieldPriority { lookup_type: Both, alias_index: 0 } }], map: {}, list: {} }, PathItemString("class_type"): LookupTreeNode { fields: [LookupFieldInfo { field_index: 8, lookup_priority: LookupFieldPriority { lookup_type: Both, alias_index: 0 } }], map: {}, list: {} }, PathItemString("units"): LookupTreeNode { fields: [LookupFieldInfo { field_index: 5, lookup_priority: LookupFieldPriority { lookup_type: Both, alias_index: 0 } }], map: {}, list: {} }, PathItemString("name"): LookupTreeNode { fields: [LookupFieldInfo { field_index: 0, lookup_priority: LookupFieldPriority { lookup_type: Both, alias_index: 0 } }], map: {}, list: {} }, PathItemString("scale"): LookupTreeNode { fields: [LookupFieldInfo { field_index: 4, lookup_priority: LookupFieldPriority { lookup_type: Both, alias_index: 0 } }], map: {}, list: {} }, PathItemString("shape"): LookupTreeNode { fields: [LookupFieldInfo { field_index: 9, lookup_priority: LookupFieldPriority { lookup_type: Both, alias_index: 0 } }], map: {}, list: {} }} }, validate_by_alias: None, validate_by_name: None }), class: Py(0x55a03c0ec630), generic_origin: None, post_init: None, frozen: false, custom_init: false, root_model: false, undefined: Py(0x7f82f5afadb0), name: "ArrayVariable" }), func: Py(0x7f82d62d91c0), config: Py(0x7f82d6311d40), name: "function-after[check_shape(), ArrayVariable]", field_name: None, info_arg: false }), Prebuilt(PrebuiltValidator { schema_validator: Py(0x7f82d66e6710) }), FunctionAfter(FunctionAfterValidator { validator: Model(ModelValidator { revalidate: Never, validator: ModelFields(ModelFieldsValidator { fields: [Field { name: "name", lookup_path_collection: LookupPathCollection { by_name: LookupPath { first_item: PathItemString("name"), rest: [] }, by_alias: [] }, validator: FunctionAfter(FunctionAfterValidator { validator: Str(StrValidator { strict: false, coerce_numbers_to_str: false }), func: Py(0x7f82d62e2c80), config: Py(0x7f82d62e3700), name: "function-after[check_name(), str]", field_name: None, info_arg: false }), frozen: false }, Field { name: "default", lookup_path_collection: LookupPathCollection { by_name: LookupPath { first_item: PathItemString("default"), rest: [] }, by_alias: [] }, validator: WithDefault(WithDefaultValidator { default: Default(Py(0x7f82f7c468c0)), on_error: Raise, validator: Nullable(NullableValidator { validator: Any(AnyValidator), name: "nullable[any]" }), validate_default: false, copy_default: false, name: "default[nullable[any]]", undefined: Py(0x7f82f5afadb0) }), frozen: false }, Field { name: "bounds", lookup_path_collection: LookupPathCollection { by_name: LookupPath { first_item: PathItemString("bounds"), rest: [] }, by_alias: [] }, validator: FunctionAfter(FunctionAfterValidator { validator: List(ListValidator { strict: false, item_validator: None, min_length: None, max_length: None, name: OnceLock("list[any]"), fail_fast: false }), func: Py(0x7f82d62e2e80), config: Py(0x7f82d62e3700), name: "function-after[validate_bounds(), list[any]]", field_name: None, info_arg: false }), frozen: false }, Field { name: "shift", lookup_path_collection: LookupPathCollection { by_name: LookupPath { first_item: PathItemString("shift"), rest: [] }, by_alias: [] }, validator: WithDefault(WithDefaultValidator { default: Default(Py(0x7f82f7c468c0)), on_error: Raise, validator: Literal(LiteralValidator { lookup: LiteralLookup { expected_bool: None, expected_int: None, expected_str: None, expected_py_dict: Some(Py(0x7f82d6311c00)), expected_py_values: None, expected_py_primitives: None, values: [Py(0x7f82f7c468c0)] }, expected_repr: "None", name: "literal[None]" }), validate_default: false, copy_default: false, name: "default[literal[None]]", undefined: Py(0x7f82f5afadb0) }), frozen: false }, Field { name: "scale", lookup_path_collection: LookupPathCollection { by_name: LookupPath { first_item: PathItemString("scale"), rest: [] }, by_alias: [] }, validator: WithDefault(WithDefaultValidator { default: Default(Py(0x7f82f7c468c0)), on_error: Raise, validator: FunctionAfter(FunctionAfterValidator { validator: Literal(LiteralValidator { lookup: LiteralLookup { expected_bool: None, expected_int: None, expected_str: None, expected_py_dict: Some(Py(0x7f82d6311c40)), expected_py_values: None, expected_py_primitives: None, values: [Py(0x7f82f7c468c0)] }, expected_repr: "None", name: "literal[None]" }), func: Py(0x7f82d62e2c00), config: Py(0x7f82d62e3700), name: "function-after[validate_scale(), literal[None]]", field_name: None, info_arg: false }), validate_default: false, copy_default: false, name: "default[function-after[validate_scale(), literal[None]]]", undefined: Py(0x7f82f5afadb0) }), frozen: false }, Field { name: "units", lookup_path_collection: LookupPathCollection { by_name: LookupPath { first_item: PathItemString("units"), rest: [] }, by_alias: [] }, validator: WithDefault(WithDefaultValidator { default: Default(Py(0x7f82f7c468c0)), on_error: Raise, validator: Nullable(NullableValidator { validator: Str(StrValidator { strict: false, coerce_numbers_to_str: false }), name: "nullable[str]" }), validate_default: false, copy_default: false, name: "default[nullable[str]]", undefined: Py(0x7f82f5afadb0) }), frozen: false }, Field { name: "description", lookup_path_collection: LookupPathCollection { by_name: LookupPath { first_item: PathItemString("description"), rest: [] }, by_alias: [] }, validator: WithDefault(WithDefaultValidator { default: Default(Py(0x7f82f7d3f660)), on_error: Raise, validator: Nullable(NullableValidator { validator: Str(StrValidator { strict: false, coerce_numbers_to_str: false }), name: "nullable[str]" }), validate_default: false, copy_default: false, name: "default[nullable[str]]", undefined: Py(0x7f82f5afadb0) }), frozen: false }, Field { name: "options", lookup_path_collection: LookupPathCollection { by_name: LookupPath { first_item: PathItemString("options"), rest: [] }, by_alias: [] }, validator: WithDefault(WithDefaultValidator { default: DefaultFactory(Py(0x7f82f7c43b80), false), on_error: Raise, validator: Dict(DictValidator { strict: false, key_validator: Any(AnyValidator), value_validator: Any(AnyValidator), min_length: None, max_length: None, fail_fast: false, name: "dict[any,any]" }), validate_default: false, copy_default: false, name: "default[dict[any,any]]", undefined: Py(0x7f82f5afadb0) }), frozen: false }, Field { name: "class_type", lookup_path_collection: LookupPathCollection { by_name: LookupPath { first_item: PathItemString("class_type"), rest: [] }, by_alias: [] }, validator: WithDefault(WithDefaultValidator { default: Default(Py(0x7f82f733c630)), on_error: Raise, validator: Literal(LiteralValidator { lookup: LiteralLookup { expected_bool: None, expected_int: None, expected_str: Some({"cat": 0}), expected_py_dict: None, expected_py_values: None, expected_py_primitives: Some(Py(0x7f82d6311dc0)), values: [Py(0x7f82f733c630)] }, expected_repr: "'cat'", name: "literal['cat']" }), validate_default: false, copy_default: false, name: "default[literal['cat']]", undefined: Py(0x7f82f5afadb0) }), frozen: false }], model_name: "CategoricalVariable", extra_behavior: Ignore, extras_validator: None, extras_keys_validator: None, strict: false, from_attributes: false, loc_by_alias: true, lookup: LookupTree { inner: {PathItemString("units"): LookupTreeNode { fields: [LookupFieldInfo { field_index: 5, lookup_priority: LookupFieldPriority { lookup_type: Both, alias_index: 0 } }], map: {}, list: {} }, PathItemString("name"): LookupTreeNode { fields: [LookupFieldInfo { field_index: 0, lookup_priority: LookupFieldPriority { lookup_type: Both, alias_index: 0 } }], map: {}, list: {} }, PathItemString("options"): LookupTreeNode { fields: [LookupFieldInfo { field_index: 7, lookup_priority: LookupFieldPriority { lookup_type: Both, alias_index: 0 } }], map: {}, list: {} }, PathItemString("class_type"): LookupTreeNode { fields: [LookupFieldInfo { field_index: 8, lookup_priority: LookupFieldPriority { lookup_type: Both, alias_index: 0 } }], map: {}, list: {} }, PathItemString("description"): LookupTreeNode { fields: [LookupFieldInfo { field_index: 6, lookup_priority: LookupFieldPriority { lookup_type: Both, alias_index: 0 } }], map: {}, list: {} }, PathItemString("scale"): LookupTreeNode { fields: [LookupFieldInfo { field_index: 4, lookup_priority: LookupFieldPriority { lookup_type: Both, alias_index: 0 } }], map: {}, list: {} }, PathItemString("shift"): LookupTreeNode { fields: [LookupFieldInfo { field_index: 3, lookup_priority: LookupFieldPriority { lookup_type: Both, alias_index: 0 } }], map: {}, list: {} }, PathItemString("default"): LookupTreeNode { fields: [LookupFieldInfo { field_index: 1, lookup_priority: LookupFieldPriority { lookup_type: Both, alias_index: 0 } }], map: {}, list: {} }, PathItemString("bounds"): LookupTreeNode { fields: [LookupFieldInfo { field_index: 2, lookup_priority: LookupFieldPriority { lookup_type: Both, alias_index: 0 } }], map: {}, list: {} }} }, validate_by_alias: None, validate_by_name: None }), class: Py(0x55a03c0e2510), generic_origin: None, post_init: None, frozen: false, custom_init: false, root_model: false, undefined: Py(0x7f82f5afadb0), name: "CategoricalVariable" }), func: Py(0x7f82d62d8cc0), config: Py(0x7f82d6311d40), name: "function-after[check_default(), CategoricalVariable]", field_name: None, info_arg: false })], cache_strings=True)

The pydantic-core SchemaValidator used to validate instances of the model.

__signature__: ClassVar[Signature] = <Signature (*, name: str, class_type: Literal['EvaluatorInfo'] = 'EvaluatorInfo', inputs: List[Union[standard_evaluator.problem.FloatVariable, standard_evaluator.problem.IntVariable, standard_evaluator.problem.ArrayVariable, standard_evaluator.problem.CategoricalVariable]], outputs: List[Union[standard_evaluator.problem.FloatVariable, standard_evaluator.problem.IntVariable, standard_evaluator.problem.ArrayVariable, standard_evaluator.problem.CategoricalVariable]], description: Optional[str] = None, cite: Optional[str] = None, tool: Optional[str] = None, evaluator_identifier: Optional[str] = None, version: Optional[str] = None, component_type: Optional[str] = None, options: Dict = <factory>) -> None>

The synthesized __init__ [Signature][inspect.Signature] of the model.

model_config: ClassVar[ConfigDict] = {}

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

Group Info

class GroupInfo

Bases: EvaluatorInfo

Attributes:

__pydantic_fields_set__

The names of fields explicitly set during instantiation.

__pydantic_extra__

A dictionary containing extra values, if [extra][pydantic.config.ConfigDict.extra] is set to 'allow'.

__pydantic_private__

Values of private attributes set on the model instance.

__class_vars__

The names of the class variables defined on the model.

__private_attributes__

Metadata about the private attributes of the model.

__pydantic_complete__

Whether model building is completed, or if there are still undefined fields.

__pydantic_computed_fields__

A dictionary of computed field names and their corresponding [ComputedFieldInfo][pydantic.fields.ComputedFieldInfo] objects.

__pydantic_core_schema__

The core schema of the model.

__pydantic_custom_init__

Whether the model has a custom __init__ method.

__pydantic_decorators__

Metadata containing the decorators defined on the model.

__pydantic_extra_info__

A wrapper around the __pydantic_extra__ annotation, if explicitly annotated on a model.

__pydantic_fields__

A dictionary of field names and their corresponding [FieldInfo][pydantic.fields.FieldInfo] objects.

__pydantic_generic_metadata__

A dictionary containing metadata about generic Pydantic models.

__pydantic_parent_namespace__

Parent namespace of the model, used for automatic rebuilding of models.

__pydantic_post_init__

The name of the post-init method for the model, if defined.

__pydantic_serializer__

The pydantic-core SchemaSerializer used to dump instances of the model.

__pydantic_setattr_handlers__

__setattr__ handlers.

__pydantic_validator__

The pydantic-core SchemaValidator used to validate instances of the model.

__signature__

The synthesized __init__ [Signature][inspect.Signature] of the model.

model_config

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

__pydantic_fields_set__: set[str]

The names of fields explicitly set during instantiation.

__pydantic_extra__: Dict[str, Any] | None

A dictionary containing extra values, if [extra][pydantic.config.ConfigDict.extra] is set to ‘allow’.

__pydantic_private__: Dict[str, Any] | None

Values of private attributes set on the model instance.

__class_vars__: ClassVar[set[str]] = {}

The names of the class variables defined on the model.

__private_attributes__: ClassVar[Dict[str, ModelPrivateAttr]] = {}

Metadata about the private attributes of the model.

__pydantic_complete__: ClassVar[bool] = True

Whether model building is completed, or if there are still undefined fields.

__pydantic_computed_fields__: ClassVar[Dict[str, ComputedFieldInfo]] = {}

A dictionary of computed field names and their corresponding [ComputedFieldInfo][pydantic.fields.ComputedFieldInfo] objects.

__pydantic_core_schema__: ClassVar[CoreSchema] = {'definitions': [{'cls': <class 'standard_evaluator.evaluator.GroupInfo'>, 'config': {'title': 'GroupInfo'}, 'custom_init': False, 'metadata': {'pydantic_js_functions': [<bound method BaseModel.__get_pydantic_json_schema__ of <class 'standard_evaluator.evaluator.GroupInfo'>>]}, 'ref': 'standard_evaluator.evaluator.GroupInfo:94146691023440', 'root_model': False, 'schema': {'computed_fields': [], 'fields': {'cite': {'metadata': {'pydantic_js_updates': {'description': 'Listing of relevant citations that should be referenced when publishing work that uses this class.'}}, 'schema': {'default': None, 'schema': {'schema': {'type': 'str'}, 'type': 'nullable'}, 'type': 'default'}, 'type': 'model-field'}, 'class_type': {'metadata': {}, 'schema': {'default': 'GroupInfo', 'schema': {'expected': ['GroupInfo'], 'type': 'literal'}, 'type': 'default'}, 'type': 'model-field'}, 'component_order': {'metadata': {'pydantic_js_updates': {'description': 'List of the components in this group in the order they should be displayed'}}, 'schema': {'items_schema': {'type': 'str'}, 'type': 'list'}, 'type': 'model-field'}, 'component_type': {'metadata': {'pydantic_js_updates': {'description': 'Component type (ExplicitComponent, ImplicitComponent, Group, etc.).'}}, 'schema': {'default': None, 'schema': {'schema': {'type': 'str'}, 'type': 'nullable'}, 'type': 'default'}, 'type': 'model-field'}, 'components': {'metadata': {}, 'schema': {'keys_schema': {'type': 'str'}, 'type': 'dict', 'values_schema': {'choices': [{'cls': <class 'standard_evaluator.evaluator.EquationInfo'>, 'config': {'title': 'EquationInfo'}, 'custom_init': False, 'metadata': {'pydantic_js_functions': [<bound method BaseModel.__get_pydantic_json_schema__ of <class 'standard_evaluator.evaluator.EquationInfo'>>]}, 'ref': 'standard_evaluator.evaluator.EquationInfo:94146690968544', 'root_model': False, 'schema': {'computed_fields': [], 'fields': {'cite': {'metadata': {'pydantic_js_updates': {'description': 'Listing of relevant citations that should be referenced when publishing work that uses this class.'}}, 'schema': {'default': None, 'schema': {'schema': {'type': 'str'}, 'type': 'nullable'}, 'type': 'default'}, 'type': 'model-field'}, 'class_type': {'metadata': {}, 'schema': {'default': 'EquationInfo', 'schema': {'expected': ['EquationInfo'], 'type': 'literal'}, 'type': 'default'}, 'type': 'model-field'}, 'component_type': {'metadata': {'pydantic_js_updates': {'description': 'Component type (ExplicitComponent, ImplicitComponent, Group, etc.).'}}, 'schema': {'default': None, 'schema': {'schema': {'type': 'str'}, 'type': 'nullable'}, 'type': 'default'}, 'type': 'model-field'}, 'description': {'metadata': {'pydantic_js_updates': {'description': 'A description of the component. To define mathematical symbols use markdown syntax.'}}, 'schema': {'default': None, 'schema': {'schema': {'type': 'str'}, 'type': 'nullable'}, 'type': 'default'}, 'type': 'model-field'}, 'equations': {'metadata': {'pydantic_js_updates': {'description': 'String or list of strings containing the equation or equations that should be used to calculate the outputs.'}}, 'schema': {'choices': [{'type': 'str'}, {'items_schema': {'type': 'str'}, 'type': 'list'}], 'type': 'union'}, 'type': 'model-field'}, 'evaluator_identifier': {'metadata': {'pydantic_js_updates': {'description': 'Unique identifier for the evaluator.'}}, 'schema': {'default': None, 'schema': {'schema': {'type': 'str'}, 'type': 'nullable'}, 'type': 'default'}, 'type': 'model-field'}, 'inputs': {'metadata': {'pydantic_js_updates': {'description': 'Input elements'}}, 'schema': {'function': {'function': <bound method EvaluatorInfo.validate_outputs of <class 'standard_evaluator.evaluator.EquationInfo'>>, 'type': 'no-info'}, 'schema': {'items_schema': {'choices': [{'schema_ref': 'standard_evaluator.problem.FloatVariable:94146690615344', 'type': 'definition-ref'}, {'schema_ref': 'standard_evaluator.problem.IntVariable:94146690641792', 'type': 'definition-ref'}, {'schema_ref': 'standard_evaluator.problem.ArrayVariable:94146690729520', 'type': 'definition-ref'}, {'schema_ref': 'standard_evaluator.problem.CategoricalVariable:94146690688272', 'type': 'definition-ref'}], 'type': 'union'}, 'type': 'list'}, 'type': 'function-after'}, 'type': 'model-field'}, 'name': {'metadata': {'pydantic_js_updates': {'description': 'The name of the evaluator'}}, 'schema': {'type': 'str'}, 'type': 'model-field'}, 'options': {'metadata': {'pydantic_js_updates': {'description': 'Additional options for the problem.'}}, 'schema': {'default_factory': <class 'dict'>, 'default_factory_takes_data': False, 'schema': {'keys_schema': {'type': 'any'}, 'type': 'dict', 'values_schema': {'type': 'any'}}, 'type': 'default'}, 'type': 'model-field'}, 'outputs': {'metadata': {'pydantic_js_updates': {'description': 'Output elements'}}, 'schema': {'function': {'function': <bound method EvaluatorInfo.validate_outputs of <class 'standard_evaluator.evaluator.EquationInfo'>>, 'type': 'no-info'}, 'schema': {'items_schema': {'choices': [{'schema_ref': 'standard_evaluator.problem.FloatVariable:94146690615344', 'type': 'definition-ref'}, {'schema_ref': 'standard_evaluator.problem.IntVariable:94146690641792', 'type': 'definition-ref'}, {'schema_ref': 'standard_evaluator.problem.ArrayVariable:94146690729520', 'type': 'definition-ref'}, {'schema_ref': 'standard_evaluator.problem.CategoricalVariable:94146690688272', 'type': 'definition-ref'}], 'type': 'union'}, 'type': 'list'}, 'type': 'function-after'}, 'type': 'model-field'}, 'tool': {'metadata': {'pydantic_js_updates': {'description': 'Name of the tool wrapped'}}, 'schema': {'default': None, 'schema': {'schema': {'type': 'str'}, 'type': 'nullable'}, 'type': 'default'}, 'type': 'model-field'}, 'version': {'metadata': {'pydantic_js_updates': {'description': 'Version of the evaluator.'}}, 'schema': {'default': None, 'schema': {'schema': {'type': 'str'}, 'type': 'nullable'}, 'type': 'default'}, 'type': 'model-field'}}, 'model_name': 'EquationInfo', 'type': 'model-fields'}, 'type': 'model'}, {'cls': <class 'standard_evaluator.evaluator.EvaluatorInfo'>, 'config': {'title': 'EvaluatorInfo'}, 'custom_init': False, 'metadata': {'pydantic_js_functions': [<bound method BaseModel.__get_pydantic_json_schema__ of <class 'standard_evaluator.evaluator.EvaluatorInfo'>>]}, 'ref': 'standard_evaluator.evaluator.EvaluatorInfo:94146690675680', 'root_model': False, 'schema': {'computed_fields': [], 'fields': {'cite': {'metadata': {'pydantic_js_updates': {'description': 'Listing of relevant citations that should be referenced when publishing work that uses this class.'}}, 'schema': {'default': None, 'schema': {'schema': {'type': 'str'}, 'type': 'nullable'}, 'type': 'default'}, 'type': 'model-field'}, 'class_type': {'metadata': {}, 'schema': {'default': 'EvaluatorInfo', 'schema': {'expected': ['EvaluatorInfo'], 'type': 'literal'}, 'type': 'default'}, 'type': 'model-field'}, 'component_type': {'metadata': {'pydantic_js_updates': {'description': 'Component type (ExplicitComponent, ImplicitComponent, Group, etc.).'}}, 'schema': {'default': None, 'schema': {'schema': {'type': 'str'}, 'type': 'nullable'}, 'type': 'default'}, 'type': 'model-field'}, 'description': {'metadata': {'pydantic_js_updates': {'description': 'A description of the component. To define mathematical symbols use markdown syntax.'}}, 'schema': {'default': None, 'schema': {'schema': {'type': 'str'}, 'type': 'nullable'}, 'type': 'default'}, 'type': 'model-field'}, 'evaluator_identifier': {'metadata': {'pydantic_js_updates': {'description': 'Unique identifier for the evaluator.'}}, 'schema': {'default': None, 'schema': {'schema': {'type': 'str'}, 'type': 'nullable'}, 'type': 'default'}, 'type': 'model-field'}, 'inputs': {'metadata': {'pydantic_js_updates': {'description': 'Input elements'}}, 'schema': {'function': {'function': <bound method EvaluatorInfo.validate_outputs of <class 'standard_evaluator.evaluator.EvaluatorInfo'>>, 'type': 'no-info'}, 'schema': {'items_schema': {'choices': [{'schema_ref': 'standard_evaluator.problem.FloatVariable:94146690615344', 'type': 'definition-ref'}, {'schema_ref': 'standard_evaluator.problem.IntVariable:94146690641792', 'type': 'definition-ref'}, {'schema_ref': 'standard_evaluator.problem.ArrayVariable:94146690729520', 'type': 'definition-ref'}, {'schema_ref': 'standard_evaluator.problem.CategoricalVariable:94146690688272', 'type': 'definition-ref'}], 'type': 'union'}, 'type': 'list'}, 'type': 'function-after'}, 'type': 'model-field'}, 'name': {'metadata': {'pydantic_js_updates': {'description': 'The name of the evaluator'}}, 'schema': {'type': 'str'}, 'type': 'model-field'}, 'options': {'metadata': {'pydantic_js_updates': {'description': 'Additional options for the problem.'}}, 'schema': {'default_factory': <class 'dict'>, 'default_factory_takes_data': False, 'schema': {'keys_schema': {'type': 'any'}, 'type': 'dict', 'values_schema': {'type': 'any'}}, 'type': 'default'}, 'type': 'model-field'}, 'outputs': {'metadata': {'pydantic_js_updates': {'description': 'Output elements'}}, 'schema': {'function': {'function': <bound method EvaluatorInfo.validate_outputs of <class 'standard_evaluator.evaluator.EvaluatorInfo'>>, 'type': 'no-info'}, 'schema': {'items_schema': {'choices': [{'schema_ref': 'standard_evaluator.problem.FloatVariable:94146690615344', 'type': 'definition-ref'}, {'schema_ref': 'standard_evaluator.problem.IntVariable:94146690641792', 'type': 'definition-ref'}, {'schema_ref': 'standard_evaluator.problem.ArrayVariable:94146690729520', 'type': 'definition-ref'}, {'schema_ref': 'standard_evaluator.problem.CategoricalVariable:94146690688272', 'type': 'definition-ref'}], 'type': 'union'}, 'type': 'list'}, 'type': 'function-after'}, 'type': 'model-field'}, 'tool': {'metadata': {'pydantic_js_updates': {'description': 'Name of the tool wrapped'}}, 'schema': {'default': None, 'schema': {'schema': {'type': 'str'}, 'type': 'nullable'}, 'type': 'default'}, 'type': 'model-field'}, 'version': {'metadata': {'pydantic_js_updates': {'description': 'Version of the evaluator.'}}, 'schema': {'default': None, 'schema': {'schema': {'type': 'str'}, 'type': 'nullable'}, 'type': 'default'}, 'type': 'model-field'}}, 'model_name': 'EvaluatorInfo', 'type': 'model-fields'}, 'type': 'model'}, {'schema_ref': 'standard_evaluator.evaluator.GroupInfo:94146691023440', 'type': 'definition-ref'}], 'type': 'union'}}, 'type': 'model-field'}, 'description': {'metadata': {'pydantic_js_updates': {'description': 'A description of the component. To define mathematical symbols use markdown syntax.'}}, 'schema': {'default': None, 'schema': {'schema': {'type': 'str'}, 'type': 'nullable'}, 'type': 'default'}, 'type': 'model-field'}, 'evaluator_identifier': {'metadata': {'pydantic_js_updates': {'description': 'Unique identifier for the evaluator.'}}, 'schema': {'default': None, 'schema': {'schema': {'type': 'str'}, 'type': 'nullable'}, 'type': 'default'}, 'type': 'model-field'}, 'inputs': {'metadata': {'pydantic_js_updates': {'description': 'Input elements'}}, 'schema': {'function': {'function': <bound method EvaluatorInfo.validate_outputs of <class 'standard_evaluator.evaluator.GroupInfo'>>, 'type': 'no-info'}, 'schema': {'items_schema': {'choices': [{'schema_ref': 'standard_evaluator.problem.FloatVariable:94146690615344', 'type': 'definition-ref'}, {'schema_ref': 'standard_evaluator.problem.IntVariable:94146690641792', 'type': 'definition-ref'}, {'schema_ref': 'standard_evaluator.problem.ArrayVariable:94146690729520', 'type': 'definition-ref'}, {'schema_ref': 'standard_evaluator.problem.CategoricalVariable:94146690688272', 'type': 'definition-ref'}], 'type': 'union'}, 'type': 'list'}, 'type': 'function-after'}, 'type': 'model-field'}, 'linkage': {'metadata': {'pydantic_js_updates': {'description': 'Map that allows linkage between inputs and outputs between components inside this group. Needs to use component_name.element_name'}}, 'schema': {'default': [], 'schema': {'items_schema': {'items_schema': [{'type': 'str'}, {'type': 'str'}], 'type': 'tuple'}, 'type': 'list'}, 'type': 'default'}, 'type': 'model-field'}, 'name': {'metadata': {'pydantic_js_updates': {'description': 'The name of the evaluator'}}, 'schema': {'type': 'str'}, 'type': 'model-field'}, 'options': {'metadata': {'pydantic_js_updates': {'description': 'Additional options for the problem.'}}, 'schema': {'default_factory': <class 'dict'>, 'default_factory_takes_data': False, 'schema': {'keys_schema': {'type': 'any'}, 'type': 'dict', 'values_schema': {'type': 'any'}}, 'type': 'default'}, 'type': 'model-field'}, 'outputs': {'metadata': {'pydantic_js_updates': {'description': 'Output elements'}}, 'schema': {'function': {'function': <bound method EvaluatorInfo.validate_outputs of <class 'standard_evaluator.evaluator.GroupInfo'>>, 'type': 'no-info'}, 'schema': {'items_schema': {'choices': [{'schema_ref': 'standard_evaluator.problem.FloatVariable:94146690615344', 'type': 'definition-ref'}, {'schema_ref': 'standard_evaluator.problem.IntVariable:94146690641792', 'type': 'definition-ref'}, {'schema_ref': 'standard_evaluator.problem.ArrayVariable:94146690729520', 'type': 'definition-ref'}, {'schema_ref': 'standard_evaluator.problem.CategoricalVariable:94146690688272', 'type': 'definition-ref'}], 'type': 'union'}, 'type': 'list'}, 'type': 'function-after'}, 'type': 'model-field'}, 'promotions': {'metadata': {'pydantic_js_updates': {'description': 'Dictionary of lists that map the name of an input / output in a component to an input / output of this group'}}, 'schema': {'default': {}, 'schema': {'keys_schema': {'type': 'str'}, 'type': 'dict', 'values_schema': {'items_schema': {'items_schema': [{'type': 'str'}, {'type': 'str'}], 'type': 'tuple'}, 'type': 'list'}}, 'type': 'default'}, 'type': 'model-field'}, 'tool': {'metadata': {'pydantic_js_updates': {'description': 'Name of the tool wrapped'}}, 'schema': {'default': None, 'schema': {'schema': {'type': 'str'}, 'type': 'nullable'}, 'type': 'default'}, 'type': 'model-field'}, 'version': {'metadata': {'pydantic_js_updates': {'description': 'Version of the evaluator.'}}, 'schema': {'default': None, 'schema': {'schema': {'type': 'str'}, 'type': 'nullable'}, 'type': 'default'}, 'type': 'model-field'}}, 'model_name': 'GroupInfo', 'type': 'model-fields'}, 'type': 'model'}, {'cls': <class 'standard_evaluator.problem.FloatVariable'>, 'config': {'title': 'FloatVariable'}, 'custom_init': False, 'metadata': {'pydantic_js_functions': [<bound method BaseModel.__get_pydantic_json_schema__ of <class 'standard_evaluator.problem.FloatVariable'>>]}, 'ref': 'standard_evaluator.problem.FloatVariable:94146690615344', 'root_model': False, 'schema': {'computed_fields': [], 'fields': {'bounds': {'metadata': {'pydantic_js_updates': {'description': 'Lower and upper bounds of the variable'}}, 'schema': {'default': (-inf, inf), 'schema': {'function': {'function': <bound method FloatVariable.validate_bounds of <class 'standard_evaluator.problem.FloatVariable'>>, 'type': 'no-info'}, 'schema': {'schema': {'items_schema': [{'type': 'float'}, {'type': 'float'}], 'type': 'tuple'}, 'type': 'nullable'}, 'type': 'function-after'}, 'type': 'default'}, 'type': 'model-field'}, 'class_type': {'metadata': {'pydantic_js_updates': {'description': 'Class marker'}}, 'schema': {'default': 'float', 'schema': {'expected': ['float'], 'type': 'literal'}, 'type': 'default'}, 'type': 'model-field'}, 'default': {'metadata': {'pydantic_js_updates': {'description': 'Default value for this variable'}}, 'schema': {'default': None, 'schema': {'schema': {'type': 'float'}, 'type': 'nullable'}, 'type': 'default'}, 'type': 'model-field'}, 'description': {'metadata': {'pydantic_js_updates': {'description': 'A description of the variable.'}}, 'schema': {'default': '', 'schema': {'schema': {'type': 'str'}, 'type': 'nullable'}, 'type': 'default'}, 'type': 'model-field'}, 'name': {'metadata': {'pydantic_js_updates': {'description': 'Name of the variable.'}}, 'schema': {'function': {'function': <bound method FloatVariable.check_name of <class 'standard_evaluator.problem.FloatVariable'>>, 'type': 'no-info'}, 'schema': {'type': 'str'}, 'type': 'function-after'}, 'type': 'model-field'}, 'options': {'metadata': {'pydantic_js_updates': {'description': 'Options for the variable.'}}, 'schema': {'default_factory': <class 'dict'>, 'default_factory_takes_data': False, 'schema': {'keys_schema': {'type': 'any'}, 'type': 'dict', 'values_schema': {'type': 'any'}}, 'type': 'default'}, 'type': 'model-field'}, 'scale': {'metadata': {'pydantic_js_updates': {'description': 'Scale value to be used for this variable. Cannot be zero.'}}, 'schema': {'default': 1.0, 'schema': {'function': {'function': <bound method FloatVariable.validate_scale of <class 'standard_evaluator.problem.FloatVariable'>>, 'type': 'no-info'}, 'schema': {'schema': {'type': 'float'}, 'type': 'nullable'}, 'type': 'function-after'}, 'type': 'default'}, 'type': 'model-field'}, 'shift': {'metadata': {'pydantic_js_updates': {'description': 'Shift value to be used for this variable.'}}, 'schema': {'default': 0.0, 'schema': {'schema': {'type': 'float'}, 'type': 'nullable'}, 'type': 'default'}, 'type': 'model-field'}, 'units': {'metadata': {}, 'schema': {'default': None, 'schema': {'schema': {'type': 'str'}, 'type': 'nullable'}, 'type': 'default'}, 'type': 'model-field'}}, 'model_name': 'FloatVariable', 'type': 'model-fields'}, 'type': 'model'}, {'cls': <class 'standard_evaluator.problem.IntVariable'>, 'config': {'title': 'IntVariable'}, 'custom_init': False, 'metadata': {'pydantic_js_functions': [<bound method BaseModel.__get_pydantic_json_schema__ of <class 'standard_evaluator.problem.IntVariable'>>]}, 'ref': 'standard_evaluator.problem.IntVariable:94146690641792', 'root_model': False, 'schema': {'computed_fields': [], 'fields': {'bounds': {'metadata': {'pydantic_js_updates': {'description': 'Lower and upper bounds of the variable'}}, 'schema': {'default': [-9223372036854775808, 9223372036854775808], 'schema': {'function': {'function': <bound method IntVariable.validate_bounds of <class 'standard_evaluator.problem.IntVariable'>>, 'type': 'no-info'}, 'schema': {'schema': {'items_schema': [{'type': 'int'}, {'type': 'int'}], 'type': 'tuple'}, 'type': 'nullable'}, 'type': 'function-after'}, 'type': 'default'}, 'type': 'model-field'}, 'class_type': {'metadata': {'pydantic_js_updates': {'description': 'Class marker'}}, 'schema': {'default': 'int', 'schema': {'expected': ['int'], 'type': 'literal'}, 'type': 'default'}, 'type': 'model-field'}, 'default': {'metadata': {'pydantic_js_updates': {'description': 'Default value for this variable'}}, 'schema': {'default': None, 'schema': {'schema': {'type': 'int'}, 'type': 'nullable'}, 'type': 'default'}, 'type': 'model-field'}, 'description': {'metadata': {'pydantic_js_updates': {'description': 'A description of the variable.'}}, 'schema': {'default': '', 'schema': {'schema': {'type': 'str'}, 'type': 'nullable'}, 'type': 'default'}, 'type': 'model-field'}, 'name': {'metadata': {'pydantic_js_updates': {'description': 'Name of the variable.'}}, 'schema': {'function': {'function': <bound method FloatVariable.check_name of <class 'standard_evaluator.problem.IntVariable'>>, 'type': 'no-info'}, 'schema': {'type': 'str'}, 'type': 'function-after'}, 'type': 'model-field'}, 'options': {'metadata': {'pydantic_js_updates': {'description': 'Options for the variable.'}}, 'schema': {'default_factory': <class 'dict'>, 'default_factory_takes_data': False, 'schema': {'keys_schema': {'type': 'any'}, 'type': 'dict', 'values_schema': {'type': 'any'}}, 'type': 'default'}, 'type': 'model-field'}, 'scale': {'metadata': {'pydantic_js_updates': {'description': 'Scale value to be used for this variable. Cannot be zero.'}}, 'schema': {'default': 1, 'schema': {'function': {'function': <bound method FloatVariable.validate_scale of <class 'standard_evaluator.problem.IntVariable'>>, 'type': 'no-info'}, 'schema': {'schema': {'type': 'int'}, 'type': 'nullable'}, 'type': 'function-after'}, 'type': 'default'}, 'type': 'model-field'}, 'shift': {'metadata': {'pydantic_js_updates': {'description': 'Shift value to be used for this variable.'}}, 'schema': {'default': 0, 'schema': {'schema': {'type': 'int'}, 'type': 'nullable'}, 'type': 'default'}, 'type': 'model-field'}, 'units': {'metadata': {}, 'schema': {'default': None, 'schema': {'schema': {'type': 'str'}, 'type': 'nullable'}, 'type': 'default'}, 'type': 'model-field'}}, 'model_name': 'IntVariable', 'type': 'model-fields'}, 'type': 'model'}, {'function': {'function': <function ArrayVariable.check_shape>, 'type': 'no-info'}, 'metadata': {'pydantic_js_functions': [<bound method BaseModel.__get_pydantic_json_schema__ of <class 'standard_evaluator.problem.ArrayVariable'>>]}, 'ref': 'standard_evaluator.problem.ArrayVariable:94146690729520', 'schema': {'cls': <class 'standard_evaluator.problem.ArrayVariable'>, 'config': {'title': 'ArrayVariable'}, 'custom_init': False, 'root_model': False, 'schema': {'computed_fields': [], 'fields': {'bounds': {'metadata': {'pydantic_js_updates': {'description': 'Lower and upper bounds of the arrays'}}, 'schema': {'default': (None, None), 'schema': {'function': {'function': <bound method ArrayVariable.validate_bounds of <class 'standard_evaluator.problem.ArrayVariable'>>, 'type': 'no-info'}, 'schema': {'schema': {'items_schema': [{'choices': [{'type': 'float'}, {'type': 'int'}, {'function': {'function': <function get_validate_interface.<locals>.validate_interface>, 'type': 'with-info'}, 'metadata': {'definitions': [{'choices': [{'items_schema': {'schema_ref': 'any-shape-array-676be5e2aeaa3799', 'type': 'definition-ref'}, 'type': 'list'}, {'ge': -1.7976931348623157e+308, 'le': 1.7976931348623157e+308, 'type': 'float'}], 'ref': 'any-shape-array-676be5e2aeaa3799', 'type': 'union'}], 'pydantic_js_functions': [<bound method NDArrayMeta.__get_pydantic_json_schema__ of <class 'numpydantic.ndarray.NDArray'>>], 'schema': {'items_schema': {'schema_ref': 'any-shape-array-676be5e2aeaa3799', 'type': 'definition-ref'}, 'type': 'list'}, 'type': 'definitions'}, 'serialization': {'function': <function jsonize_array>, 'info_arg': True, 'type': 'function-plain', 'when_used': 'json'}, 'type': 'function-plain'}], 'type': 'union'}, {'choices': [{'type': 'float'}, {'type': 'int'}, {'function': {'function': <function get_validate_interface.<locals>.validate_interface>, 'type': 'with-info'}, 'metadata': {'definitions': [{'choices': [{'items_schema': {'schema_ref': 'any-shape-array-676be5e2aeaa3799', 'type': 'definition-ref'}, 'type': 'list'}, {'ge': -1.7976931348623157e+308, 'le': 1.7976931348623157e+308, 'type': 'float'}], 'ref': 'any-shape-array-676be5e2aeaa3799', 'type': 'union'}], 'pydantic_js_functions': [<bound method NDArrayMeta.__get_pydantic_json_schema__ of <class 'numpydantic.ndarray.NDArray'>>], 'schema': {'items_schema': {'schema_ref': 'any-shape-array-676be5e2aeaa3799', 'type': 'definition-ref'}, 'type': 'list'}, 'type': 'definitions'}, 'serialization': {'function': <function jsonize_array>, 'info_arg': True, 'type': 'function-plain', 'when_used': 'json'}, 'type': 'function-plain'}], 'type': 'union'}], 'type': 'tuple'}, 'type': 'nullable'}, 'type': 'function-after'}, 'serialization': {'function': <function ArrayVariable.serialize_bounds>, 'info_arg': False, 'is_field_serializer': True, 'type': 'function-plain'}, 'type': 'default'}, 'type': 'model-field'}, 'class_type': {'metadata': {}, 'schema': {'default': 'floatarray', 'schema': {'expected': ['floatarray'], 'type': 'literal'}, 'type': 'default'}, 'type': 'model-field'}, 'default': {'metadata': {'pydantic_js_updates': {'description': 'NumPy array with the default values to be used for the array variable'}}, 'schema': {'default': None, 'schema': {'schema': {'function': {'function': <function get_validate_interface.<locals>.validate_interface>, 'type': 'with-info'}, 'metadata': {'definitions': [{'choices': [{'items_schema': {'schema_ref': 'any-shape-array-676be5e2aeaa3799', 'type': 'definition-ref'}, 'type': 'list'}, {'ge': -1.7976931348623157e+308, 'le': 1.7976931348623157e+308, 'type': 'float'}], 'ref': 'any-shape-array-676be5e2aeaa3799', 'type': 'union'}], 'pydantic_js_functions': [<bound method NDArrayMeta.__get_pydantic_json_schema__ of <class 'numpydantic.ndarray.NDArray'>>], 'schema': {'items_schema': {'schema_ref': 'any-shape-array-676be5e2aeaa3799', 'type': 'definition-ref'}, 'type': 'list'}, 'type': 'definitions'}, 'serialization': {'function': <function jsonize_array>, 'info_arg': True, 'type': 'function-plain', 'when_used': 'json'}, 'type': 'function-plain'}, 'type': 'nullable'}, 'type': 'default'}, 'type': 'model-field'}, 'description': {'metadata': {'pydantic_js_updates': {'description': 'A description of the variable.'}}, 'schema': {'default': '', 'schema': {'schema': {'type': 'str'}, 'type': 'nullable'}, 'type': 'default'}, 'type': 'model-field'}, 'name': {'metadata': {'pydantic_js_updates': {'description': 'Name of the variable.'}}, 'schema': {'function': {'function': <bound method FloatVariable.check_name of <class 'standard_evaluator.problem.ArrayVariable'>>, 'type': 'no-info'}, 'schema': {'type': 'str'}, 'type': 'function-after'}, 'type': 'model-field'}, 'options': {'metadata': {'pydantic_js_updates': {'description': 'Options for the variable.'}}, 'schema': {'default_factory': <class 'dict'>, 'default_factory_takes_data': False, 'schema': {'keys_schema': {'type': 'any'}, 'type': 'dict', 'values_schema': {'type': 'any'}}, 'type': 'default'}, 'type': 'model-field'}, 'scale': {'metadata': {'pydantic_js_updates': {'description': 'NumPy array with the scale values to be used for the array variable. Cannot be zero.'}}, 'schema': {'default': None, 'schema': {'function': {'function': <bound method ArrayVariable.validate_scale of <class 'standard_evaluator.problem.ArrayVariable'>>, 'type': 'no-info'}, 'schema': {'schema': {'choices': [{'type': 'float'}, {'type': 'int'}, {'function': {'function': <function get_validate_interface.<locals>.validate_interface>, 'type': 'with-info'}, 'metadata': {'definitions': [{'choices': [{'items_schema': {'schema_ref': 'any-shape-array-676be5e2aeaa3799', 'type': 'definition-ref'}, 'type': 'list'}, {'ge': -1.7976931348623157e+308, 'le': 1.7976931348623157e+308, 'type': 'float'}], 'ref': 'any-shape-array-676be5e2aeaa3799', 'type': 'union'}], 'pydantic_js_functions': [<bound method NDArrayMeta.__get_pydantic_json_schema__ of <class 'numpydantic.ndarray.NDArray'>>], 'schema': {'items_schema': {'schema_ref': 'any-shape-array-676be5e2aeaa3799', 'type': 'definition-ref'}, 'type': 'list'}, 'type': 'definitions'}, 'serialization': {'function': <function jsonize_array>, 'info_arg': True, 'type': 'function-plain', 'when_used': 'json'}, 'type': 'function-plain'}], 'type': 'union'}, 'type': 'nullable'}, 'type': 'function-after'}, 'serialization': {'function': <function ArrayVariable.serialize_scale>, 'info_arg': False, 'is_field_serializer': True, 'type': 'function-plain'}, 'type': 'default'}, 'type': 'model-field'}, 'shape': {'metadata': {'pydantic_js_updates': {'description': 'Shape of the arrays'}}, 'schema': {'default': None, 'schema': {'schema': {'items_schema': [{'type': 'int'}], 'type': 'tuple', 'variadic_item_index': 0}, 'type': 'nullable'}, 'type': 'default'}, 'type': 'model-field'}, 'shift': {'metadata': {'pydantic_js_updates': {'description': 'NumPy array with the shift values to be used for the array variable.'}}, 'schema': {'default': None, 'schema': {'schema': {'choices': [{'type': 'float'}, {'type': 'int'}, {'function': {'function': <function get_validate_interface.<locals>.validate_interface>, 'type': 'with-info'}, 'metadata': {'definitions': [{'choices': [{'items_schema': {'schema_ref': 'any-shape-array-676be5e2aeaa3799', 'type': 'definition-ref'}, 'type': 'list'}, {'ge': -1.7976931348623157e+308, 'le': 1.7976931348623157e+308, 'type': 'float'}], 'ref': 'any-shape-array-676be5e2aeaa3799', 'type': 'union'}], 'pydantic_js_functions': [<bound method NDArrayMeta.__get_pydantic_json_schema__ of <class 'numpydantic.ndarray.NDArray'>>], 'schema': {'items_schema': {'schema_ref': 'any-shape-array-676be5e2aeaa3799', 'type': 'definition-ref'}, 'type': 'list'}, 'type': 'definitions'}, 'serialization': {'function': <function jsonize_array>, 'info_arg': True, 'type': 'function-plain', 'when_used': 'json'}, 'type': 'function-plain'}], 'type': 'union'}, 'type': 'nullable'}, 'serialization': {'function': <function ArrayVariable.serialize_shift>, 'info_arg': False, 'is_field_serializer': True, 'type': 'function-plain'}, 'type': 'default'}, 'type': 'model-field'}, 'units': {'metadata': {}, 'schema': {'default': None, 'schema': {'schema': {'type': 'str'}, 'type': 'nullable'}, 'type': 'default'}, 'type': 'model-field'}}, 'model_name': 'ArrayVariable', 'type': 'model-fields'}, 'type': 'model'}, 'type': 'function-after'}, {'function': {'function': <function CategoricalVariable.check_default>, 'type': 'no-info'}, 'metadata': {'pydantic_js_functions': [<bound method BaseModel.__get_pydantic_json_schema__ of <class 'standard_evaluator.problem.CategoricalVariable'>>]}, 'ref': 'standard_evaluator.problem.CategoricalVariable:94146690688272', 'schema': {'cls': <class 'standard_evaluator.problem.CategoricalVariable'>, 'config': {'title': 'CategoricalVariable'}, 'custom_init': False, 'root_model': False, 'schema': {'computed_fields': [], 'fields': {'bounds': {'metadata': {'pydantic_js_updates': {'description': 'Values this variable or response can take on. Must be defined.'}}, 'schema': {'function': {'function': <bound method CategoricalVariable.validate_bounds of <class 'standard_evaluator.problem.CategoricalVariable'>>, 'type': 'no-info'}, 'schema': {'items_schema': {'type': 'any'}, 'type': 'list'}, 'type': 'function-after'}, 'type': 'model-field'}, 'class_type': {'metadata': {'pydantic_js_updates': {'description': 'Class marker'}}, 'schema': {'default': 'cat', 'schema': {'expected': ['cat'], 'type': 'literal'}, 'type': 'default'}, 'type': 'model-field'}, 'default': {'metadata': {'pydantic_js_updates': {'description': 'Default value for this variable'}}, 'schema': {'default': None, 'schema': {'schema': {'type': 'any'}, 'type': 'nullable'}, 'type': 'default'}, 'type': 'model-field'}, 'description': {'metadata': {'pydantic_js_updates': {'description': 'A description of the variable.'}}, 'schema': {'default': '', 'schema': {'schema': {'type': 'str'}, 'type': 'nullable'}, 'type': 'default'}, 'type': 'model-field'}, 'name': {'metadata': {'pydantic_js_updates': {'description': 'Name of the variable.'}}, 'schema': {'function': {'function': <bound method FloatVariable.check_name of <class 'standard_evaluator.problem.CategoricalVariable'>>, 'type': 'no-info'}, 'schema': {'type': 'str'}, 'type': 'function-after'}, 'type': 'model-field'}, 'options': {'metadata': {'pydantic_js_updates': {'description': 'Options for the variable.'}}, 'schema': {'default_factory': <class 'dict'>, 'default_factory_takes_data': False, 'schema': {'keys_schema': {'type': 'any'}, 'type': 'dict', 'values_schema': {'type': 'any'}}, 'type': 'default'}, 'type': 'model-field'}, 'scale': {'metadata': {'pydantic_js_updates': {'description': 'Scale value to be used for this variable. Does not make sense for categorical variables.'}}, 'schema': {'default': None, 'schema': {'function': {'function': <bound method FloatVariable.validate_scale of <class 'standard_evaluator.problem.CategoricalVariable'>>, 'type': 'no-info'}, 'schema': {'expected': [None], 'type': 'literal'}, 'type': 'function-after'}, 'type': 'default'}, 'type': 'model-field'}, 'shift': {'metadata': {'pydantic_js_updates': {'description': 'Shift value to be used for this variable. Does not make sense for categorical variables.'}}, 'schema': {'default': None, 'schema': {'expected': [None], 'type': 'literal'}, 'type': 'default'}, 'type': 'model-field'}, 'units': {'metadata': {}, 'schema': {'default': None, 'schema': {'schema': {'type': 'str'}, 'type': 'nullable'}, 'type': 'default'}, 'type': 'model-field'}}, 'model_name': 'CategoricalVariable', 'type': 'model-fields'}, 'type': 'model'}, 'type': 'function-after'}], 'schema': {'schema_ref': 'standard_evaluator.evaluator.GroupInfo:94146691023440', 'type': 'definition-ref'}, 'type': 'definitions'}

The core schema of the model.

__pydantic_custom_init__: ClassVar[bool] = False

Whether the model has a custom __init__ method.

__pydantic_decorators__: ClassVar[_decorators.DecoratorInfos] = DecoratorInfos(validators={}, field_validators={'validate_outputs': Decorator(cls_ref='standard_evaluator.evaluator.GroupInfo:94146691023440', cls_var_name='validate_outputs', func=<bound method EvaluatorInfo.validate_outputs of <class 'standard_evaluator.evaluator.GroupInfo'>>, shim=None, info=FieldValidatorDecoratorInfo(fields=('inputs', 'outputs'), mode='after', check_fields=None, json_schema_input_type=PydanticUndefined))}, root_validators={}, field_serializers={}, model_serializers={}, model_validators={}, computed_fields={})

Metadata containing the decorators defined on the model. This replaces Model.__validators__ and Model.__root_validators__ from Pydantic V1.

__pydantic_extra_info__: ClassVar[PydanticExtraInfo | None] = None

A wrapper around the __pydantic_extra__ annotation, if explicitly annotated on a model.

This is a private attribute, not meant to be used outside Pydantic.

__pydantic_fields__: ClassVar[Dict[str, FieldInfo]] = {'cite': FieldInfo(annotation=Union[str, NoneType], required=False, default=None, description='Listing of relevant citations that should be referenced when publishing work that uses this class.'), 'class_type': FieldInfo(annotation=Literal['GroupInfo'], required=False, default='GroupInfo'), 'component_order': FieldInfo(annotation=List[str], required=True, description='List of the components in this group in the order they should be displayed'), 'component_type': FieldInfo(annotation=Union[str, NoneType], required=False, default=None, description='Component type (ExplicitComponent, ImplicitComponent, Group, etc.).'), 'components': FieldInfo(annotation=Dict[str, Union[EquationInfo, EvaluatorInfo, GroupInfo]], required=True), 'description': FieldInfo(annotation=Union[str, NoneType], required=False, default=None, description='A description of the component. To define mathematical symbols use markdown syntax.'), 'evaluator_identifier': FieldInfo(annotation=Union[str, NoneType], required=False, default=None, description='Unique identifier for the evaluator.'), 'inputs': FieldInfo(annotation=List[Union[FloatVariable, IntVariable, ArrayVariable, CategoricalVariable]], required=True, description='Input elements'), 'linkage': FieldInfo(annotation=List[Tuple[str, str]], required=False, default=[], description='Map that allows linkage between inputs and outputs between components inside this group. Needs to use component_name.element_name'), 'name': FieldInfo(annotation=str, required=True, description='The name of the evaluator'), 'options': FieldInfo(annotation=Dict, required=False, default_factory=dict, description='Additional options for the problem.'), 'outputs': FieldInfo(annotation=List[Union[FloatVariable, IntVariable, ArrayVariable, CategoricalVariable]], required=True, description='Output elements'), 'promotions': FieldInfo(annotation=Dict[str, List[Tuple[str, str]]], required=False, default={}, description='Dictionary of lists that map the name of an input / output in a component to an input / output of this group'), 'tool': FieldInfo(annotation=Union[str, NoneType], required=False, default=None, description='Name of the tool wrapped'), 'version': FieldInfo(annotation=Union[str, NoneType], required=False, default=None, description='Version of the evaluator.')}

A dictionary of field names and their corresponding [FieldInfo][pydantic.fields.FieldInfo] objects. This replaces Model.__fields__ from Pydantic V1.

__pydantic_generic_metadata__: ClassVar[_generics.PydanticGenericMetadata] = {'args': (), 'origin': None, 'parameters': ()}

A dictionary containing metadata about generic Pydantic models.

The origin and args items map to the [__origin__][genericalias.__origin__] and [__args__][genericalias.__args__] attributes of [generic aliases][types-genericalias], and the parameter item maps to the __parameter__ attribute of generic classes.

__pydantic_parent_namespace__: ClassVar[Dict[str, Any] | None] = None

Parent namespace of the model, used for automatic rebuilding of models.

__pydantic_post_init__: ClassVar[None | Literal['model_post_init']] = None

The name of the post-init method for the model, if defined.

__pydantic_serializer__: ClassVar[SchemaSerializer] = SchemaSerializer(serializer=Recursive(     DefinitionRefSerializer {         definition: "...",         retry_with_lax_check: true,     }, ), definitions=[PolymorphismTrampoline(PolymorphismTrampoline { class: Py(0x55a03c0d0830), serializer: Prebuilt(PrebuiltSerializer { schema_serializer: Py(0x7f82d66e67a0) }), enabled_from_config: false }), PolymorphismTrampoline(PolymorphismTrampoline { class: Py(0x55a03c0ec630), serializer: Prebuilt(PrebuiltSerializer { schema_serializer: Py(0x7f82d66e6b00) }), enabled_from_config: false }), PolymorphismTrampoline(PolymorphismTrampoline { class: Py(0x55a03c0d6f80), serializer: Prebuilt(PrebuiltSerializer { schema_serializer: Py(0x7f82d66e68c0) }), enabled_from_config: false }), PolymorphismTrampoline(PolymorphismTrampoline { class: Py(0x55a03c0e2510), serializer: Prebuilt(PrebuiltSerializer { schema_serializer: Py(0x7f82d66e69e0) }), enabled_from_config: false }), PolymorphismTrampoline(PolymorphismTrampoline { class: Py(0x55a03c134250), serializer: PolymorphismTrampoline(PolymorphismTrampoline { class: Py(0x55a03c134250), serializer: Model(ModelSerializer { class: Py(0x55a03c134250), serializer: Fields(GeneralFieldsSerializer { fields: {"options": SerField { key: "options", alias: None, serializer: Some(WithDefault(WithDefaultSerializer { default: DefaultFactory(Py(0x7f82f7c43b80), false), serializer: Dict(DictSerializer { key_serializer: Any(AnySerializer), value_serializer: Any(AnySerializer), filter: SchemaFilter { include: None, exclude: None }, name: "dict[any, any]" }) })), required: true, serialize_by_alias: None, serialization_exclude_if: None }, "component_order": SerField { key: "component_order", alias: None, serializer: Some(List(ListSerializer { item_serializer: Str(StrSerializer), filter: SchemaFilter { include: None, exclude: None }, name: "list[str]" })), required: true, serialize_by_alias: None, serialization_exclude_if: None }, "promotions": SerField { key: "promotions", alias: None, serializer: Some(WithDefault(WithDefaultSerializer { default: Default(Py(0x7f82d63137c0)), serializer: Dict(DictSerializer { key_serializer: Str(StrSerializer), value_serializer: List(ListSerializer { item_serializer: Tuple(TupleSerializer { serializers: [Str(StrSerializer), Str(StrSerializer)], variadic_item_index: None, filter: SchemaFilter { include: None, exclude: None }, name: "tuple[str, str]" }), filter: SchemaFilter { include: None, exclude: None }, name: "list[tuple[str, str]]" }), filter: SchemaFilter { include: None, exclude: None }, name: "dict[str, list[tuple[str, str]]]" }) })), required: true, serialize_by_alias: None, serialization_exclude_if: None }, "cite": SerField { key: "cite", alias: None, serializer: Some(WithDefault(WithDefaultSerializer { default: Default(Py(0x7f82f7c468c0)), serializer: Nullable(NullableSerializer { serializer: Str(StrSerializer) }) })), required: true, serialize_by_alias: None, serialization_exclude_if: None }, "components": SerField { key: "components", alias: None, serializer: Some(Dict(DictSerializer { key_serializer: Str(StrSerializer), value_serializer: Union(UnionSerializer { choices: UnionChoices { choices: [PolymorphismTrampoline(PolymorphismTrampoline { class: Py(0x55a03c126be0), serializer: Prebuilt(PrebuiltSerializer { schema_serializer: Py(0x7f82d66e7010) }), enabled_from_config: false }), PolymorphismTrampoline(PolymorphismTrampoline { class: Py(0x55a03c0df3e0), serializer: Prebuilt(PrebuiltSerializer { schema_serializer: Py(0x7f82d66e6d40) }), enabled_from_config: false }), Recursive(DefinitionRefSerializer { definition: "...", retry_with_lax_check: true })] }, name: "Union[EquationInfo, EvaluatorInfo, definition-ref]" }), filter: SchemaFilter { include: None, exclude: None }, name: "dict[str, Union[EquationInfo, EvaluatorInfo, definition-ref]]" })), required: true, serialize_by_alias: None, serialization_exclude_if: None }, "linkage": SerField { key: "linkage", alias: None, serializer: Some(WithDefault(WithDefaultSerializer { default: Default(Py(0x7f82d6328140)), serializer: List(ListSerializer { item_serializer: Tuple(TupleSerializer { serializers: [Str(StrSerializer), Str(StrSerializer)], variadic_item_index: None, filter: SchemaFilter { include: None, exclude: None }, name: "tuple[str, str]" }), filter: SchemaFilter { include: None, exclude: None }, name: "list[tuple[str, str]]" }) })), required: true, serialize_by_alias: None, serialization_exclude_if: None }, "class_type": SerField { key: "class_type", alias: None, serializer: Some(WithDefault(WithDefaultSerializer { default: Default(Py(0x7f82f59876f0)), serializer: Literal(LiteralSerializer { expected_int: {}, expected_str: {"GroupInfo"}, expected_py: None, name: "literal['GroupInfo']" }) })), required: true, serialize_by_alias: None, serialization_exclude_if: None }, "component_type": SerField { key: "component_type", alias: None, serializer: Some(WithDefault(WithDefaultSerializer { default: Default(Py(0x7f82f7c468c0)), serializer: Nullable(NullableSerializer { serializer: Str(StrSerializer) }) })), required: true, serialize_by_alias: None, serialization_exclude_if: None }, "description": SerField { key: "description", alias: None, serializer: Some(WithDefault(WithDefaultSerializer { default: Default(Py(0x7f82f7c468c0)), serializer: Nullable(NullableSerializer { serializer: Str(StrSerializer) }) })), required: true, serialize_by_alias: None, serialization_exclude_if: None }, "evaluator_identifier": SerField { key: "evaluator_identifier", alias: None, serializer: Some(WithDefault(WithDefaultSerializer { default: Default(Py(0x7f82f7c468c0)), serializer: Nullable(NullableSerializer { serializer: Str(StrSerializer) }) })), required: true, serialize_by_alias: None, serialization_exclude_if: None }, "outputs": SerField { key: "outputs", alias: None, serializer: Some(List(ListSerializer { item_serializer: Union(UnionSerializer { choices: UnionChoices { choices: [Recursive(DefinitionRefSerializer { definition: "...", retry_with_lax_check: true }), Recursive(DefinitionRefSerializer { definition: "...", retry_with_lax_check: true }), Recursive(DefinitionRefSerializer { definition: "...", retry_with_lax_check: true }), Recursive(DefinitionRefSerializer { definition: "...", retry_with_lax_check: true })] }, name: "Union[definition-ref, definition-ref, definition-ref, definition-ref]" }), filter: SchemaFilter { include: None, exclude: None }, name: "list[Union[definition-ref, definition-ref, definition-ref, definition-ref]]" })), required: true, serialize_by_alias: None, serialization_exclude_if: None }, "version": SerField { key: "version", alias: None, serializer: Some(WithDefault(WithDefaultSerializer { default: Default(Py(0x7f82f7c468c0)), serializer: Nullable(NullableSerializer { serializer: Str(StrSerializer) }) })), required: true, serialize_by_alias: None, serialization_exclude_if: None }, "name": SerField { key: "name", alias: None, serializer: Some(Str(StrSerializer)), required: true, serialize_by_alias: None, serialization_exclude_if: None }, "inputs": SerField { key: "inputs", alias: None, serializer: Some(List(ListSerializer { item_serializer: Union(UnionSerializer { choices: UnionChoices { choices: [Recursive(DefinitionRefSerializer { definition: "...", retry_with_lax_check: true }), Recursive(DefinitionRefSerializer { definition: "...", retry_with_lax_check: true }), Recursive(DefinitionRefSerializer { definition: "...", retry_with_lax_check: true }), Recursive(DefinitionRefSerializer { definition: "...", retry_with_lax_check: true })] }, name: "Union[definition-ref, definition-ref, definition-ref, definition-ref]" }), filter: SchemaFilter { include: None, exclude: None }, name: "list[Union[definition-ref, definition-ref, definition-ref, definition-ref]]" })), required: true, serialize_by_alias: None, serialization_exclude_if: None }, "tool": SerField { key: "tool", alias: None, serializer: Some(WithDefault(WithDefaultSerializer { default: Default(Py(0x7f82f7c468c0)), serializer: Nullable(NullableSerializer { serializer: Str(StrSerializer) }) })), required: true, serialize_by_alias: None, serialization_exclude_if: None }}, computed_fields: Some(ComputedFields([])), mode: SimpleDict, extra_serializer: None, filter: SchemaFilter { include: None, exclude: None }, required_fields: 15 }), has_extra: false, root_model: false, name: "GroupInfo" }), enabled_from_config: false }), enabled_from_config: false })])

The pydantic-core SchemaSerializer used to dump instances of the model.

__pydantic_setattr_handlers__: ClassVar[Dict[str, Callable[[BaseModel, str, Any], None]]] = {}

__setattr__ handlers. Memoizing the handlers leads to a dramatic performance improvement in __setattr__

__pydantic_validator__: ClassVar[SchemaValidator | PluggableSchemaValidator] = SchemaValidator(title="GroupInfo", validator=DefinitionRef(     DefinitionRefValidator {         definition: "...",     }, ), definitions=[Model(ModelValidator { revalidate: Never, validator: ModelFields(ModelFieldsValidator { fields: [Field { name: "name", lookup_path_collection: LookupPathCollection { by_name: LookupPath { first_item: PathItemString("name"), rest: [] }, by_alias: [] }, validator: Str(StrValidator { strict: false, coerce_numbers_to_str: false }), frozen: false }, Field { name: "class_type", lookup_path_collection: LookupPathCollection { by_name: LookupPath { first_item: PathItemString("class_type"), rest: [] }, by_alias: [] }, validator: WithDefault(WithDefaultValidator { default: Default(Py(0x7f82f59876f0)), on_error: Raise, validator: Literal(LiteralValidator { lookup: LiteralLookup { expected_bool: None, expected_int: None, expected_str: Some({"GroupInfo": 0}), expected_py_dict: None, expected_py_values: None, expected_py_primitives: Some(Py(0x7f82c5fd7b80)), values: [Py(0x7f82f59876f0)] }, expected_repr: "'GroupInfo'", name: "literal['GroupInfo']" }), validate_default: false, copy_default: false, name: "default[literal['GroupInfo']]", undefined: Py(0x7f82f5afadb0) }), frozen: false }, Field { name: "inputs", lookup_path_collection: LookupPathCollection { by_name: LookupPath { first_item: PathItemString("inputs"), rest: [] }, by_alias: [] }, validator: FunctionAfter(FunctionAfterValidator { validator: List(ListValidator { strict: false, item_validator: Some(Union(UnionValidator { mode: Smart, choices: [(DefinitionRef(DefinitionRefValidator { definition: "..." }), None), (DefinitionRef(DefinitionRefValidator { definition: "..." }), None), (DefinitionRef(DefinitionRefValidator { definition: "..." }), None), (DefinitionRef(DefinitionRefValidator { definition: "..." }), None)], custom_error: None, name: "union[...,...,...,...]" })), min_length: None, max_length: None, name: OnceLock("list[union[...,...,...,...]]"), fail_fast: false }), func: Py(0x7f82d6329fc0), config: Py(0x7f82c60b1d40), name: "function-after[validate_outputs(), list[union[...,...,...,...]]]", field_name: None, info_arg: false }), frozen: false }, Field { name: "outputs", lookup_path_collection: LookupPathCollection { by_name: LookupPath { first_item: PathItemString("outputs"), rest: [] }, by_alias: [] }, validator: FunctionAfter(FunctionAfterValidator { validator: List(ListValidator { strict: false, item_validator: Some(Union(UnionValidator { mode: Smart, choices: [(DefinitionRef(DefinitionRefValidator { definition: "..." }), None), (DefinitionRef(DefinitionRefValidator { definition: "..." }), None), (DefinitionRef(DefinitionRefValidator { definition: "..." }), None), (DefinitionRef(DefinitionRefValidator { definition: "..." }), None)], custom_error: None, name: "union[...,...,...,...]" })), min_length: None, max_length: None, name: OnceLock("list[union[...,...,...,...]]"), fail_fast: false }), func: Py(0x7f82d6329fc0), config: Py(0x7f82c60b1d40), name: "function-after[validate_outputs(), list[union[...,...,...,...]]]", field_name: None, info_arg: false }), frozen: false }, Field { name: "description", lookup_path_collection: LookupPathCollection { by_name: LookupPath { first_item: PathItemString("description"), rest: [] }, by_alias: [] }, validator: WithDefault(WithDefaultValidator { default: Default(Py(0x7f82f7c468c0)), on_error: Raise, validator: Nullable(NullableValidator { validator: Str(StrValidator { strict: false, coerce_numbers_to_str: false }), name: "nullable[str]" }), validate_default: false, copy_default: false, name: "default[nullable[str]]", undefined: Py(0x7f82f5afadb0) }), frozen: false }, Field { name: "cite", lookup_path_collection: LookupPathCollection { by_name: LookupPath { first_item: PathItemString("cite"), rest: [] }, by_alias: [] }, validator: WithDefault(WithDefaultValidator { default: Default(Py(0x7f82f7c468c0)), on_error: Raise, validator: Nullable(NullableValidator { validator: Str(StrValidator { strict: false, coerce_numbers_to_str: false }), name: "nullable[str]" }), validate_default: false, copy_default: false, name: "default[nullable[str]]", undefined: Py(0x7f82f5afadb0) }), frozen: false }, Field { name: "tool", lookup_path_collection: LookupPathCollection { by_name: LookupPath { first_item: PathItemString("tool"), rest: [] }, by_alias: [] }, validator: WithDefault(WithDefaultValidator { default: Default(Py(0x7f82f7c468c0)), on_error: Raise, validator: Nullable(NullableValidator { validator: Str(StrValidator { strict: false, coerce_numbers_to_str: false }), name: "nullable[str]" }), validate_default: false, copy_default: false, name: "default[nullable[str]]", undefined: Py(0x7f82f5afadb0) }), frozen: false }, Field { name: "evaluator_identifier", lookup_path_collection: LookupPathCollection { by_name: LookupPath { first_item: PathItemString("evaluator_identifier"), rest: [] }, by_alias: [] }, validator: WithDefault(WithDefaultValidator { default: Default(Py(0x7f82f7c468c0)), on_error: Raise, validator: Nullable(NullableValidator { validator: Str(StrValidator { strict: false, coerce_numbers_to_str: false }), name: "nullable[str]" }), validate_default: false, copy_default: false, name: "default[nullable[str]]", undefined: Py(0x7f82f5afadb0) }), frozen: false }, Field { name: "version", lookup_path_collection: LookupPathCollection { by_name: LookupPath { first_item: PathItemString("version"), rest: [] }, by_alias: [] }, validator: WithDefault(WithDefaultValidator { default: Default(Py(0x7f82f7c468c0)), on_error: Raise, validator: Nullable(NullableValidator { validator: Str(StrValidator { strict: false, coerce_numbers_to_str: false }), name: "nullable[str]" }), validate_default: false, copy_default: false, name: "default[nullable[str]]", undefined: Py(0x7f82f5afadb0) }), frozen: false }, Field { name: "component_type", lookup_path_collection: LookupPathCollection { by_name: LookupPath { first_item: PathItemString("component_type"), rest: [] }, by_alias: [] }, validator: WithDefault(WithDefaultValidator { default: Default(Py(0x7f82f7c468c0)), on_error: Raise, validator: Nullable(NullableValidator { validator: Str(StrValidator { strict: false, coerce_numbers_to_str: false }), name: "nullable[str]" }), validate_default: false, copy_default: false, name: "default[nullable[str]]", undefined: Py(0x7f82f5afadb0) }), frozen: false }, Field { name: "options", lookup_path_collection: LookupPathCollection { by_name: LookupPath { first_item: PathItemString("options"), rest: [] }, by_alias: [] }, validator: WithDefault(WithDefaultValidator { default: DefaultFactory(Py(0x7f82f7c43b80), false), on_error: Raise, validator: Dict(DictValidator { strict: false, key_validator: Any(AnyValidator), value_validator: Any(AnyValidator), min_length: None, max_length: None, fail_fast: false, name: "dict[any,any]" }), validate_default: false, copy_default: false, name: "default[dict[any,any]]", undefined: Py(0x7f82f5afadb0) }), frozen: false }, Field { name: "component_order", lookup_path_collection: LookupPathCollection { by_name: LookupPath { first_item: PathItemString("component_order"), rest: [] }, by_alias: [] }, validator: List(ListValidator { strict: false, item_validator: Some(Str(StrValidator { strict: false, coerce_numbers_to_str: false })), min_length: None, max_length: None, name: OnceLock(<uninit>), fail_fast: false }), frozen: false }, Field { name: "components", lookup_path_collection: LookupPathCollection { by_name: LookupPath { first_item: PathItemString("components"), rest: [] }, by_alias: [] }, validator: Dict(DictValidator { strict: false, key_validator: Str(StrValidator { strict: false, coerce_numbers_to_str: false }), value_validator: Union(UnionValidator { mode: Smart, choices: [(Prebuilt(PrebuiltValidator { schema_validator: Py(0x7f82d66e6f80) }), None), (Prebuilt(PrebuiltValidator { schema_validator: Py(0x7f82d66e6b90) }), None), (DefinitionRef(DefinitionRefValidator { definition: "..." }), None)], custom_error: None, name: "union[EquationInfo,EvaluatorInfo,...]" }), min_length: None, max_length: None, fail_fast: false, name: "dict[str,union[EquationInfo,EvaluatorInfo,...]]" }), frozen: false }, Field { name: "promotions", lookup_path_collection: LookupPathCollection { by_name: LookupPath { first_item: PathItemString("promotions"), rest: [] }, by_alias: [] }, validator: WithDefault(WithDefaultValidator { default: Default(Py(0x7f82d63137c0)), on_error: Raise, validator: Dict(DictValidator { strict: false, key_validator: Str(StrValidator { strict: false, coerce_numbers_to_str: false }), value_validator: List(ListValidator { strict: false, item_validator: Some(Tuple(TupleValidator { strict: false, validators: [Str(StrValidator { strict: false, coerce_numbers_to_str: false }), Str(StrValidator { strict: false, coerce_numbers_to_str: false })], variadic_item_index: None, min_length: None, max_length: None, name: "tuple[str, str]", fail_fast: false })), min_length: None, max_length: None, name: OnceLock("list[tuple[str, str]]"), fail_fast: false }), min_length: None, max_length: None, fail_fast: false, name: "dict[str,list[tuple[str, str]]]" }), validate_default: false, copy_default: true, name: "default[dict[str,list[tuple[str, str]]]]", undefined: Py(0x7f82f5afadb0) }), frozen: false }, Field { name: "linkage", lookup_path_collection: LookupPathCollection { by_name: LookupPath { first_item: PathItemString("linkage"), rest: [] }, by_alias: [] }, validator: WithDefault(WithDefaultValidator { default: Default(Py(0x7f82d6328140)), on_error: Raise, validator: List(ListValidator { strict: false, item_validator: Some(Tuple(TupleValidator { strict: false, validators: [Str(StrValidator { strict: false, coerce_numbers_to_str: false }), Str(StrValidator { strict: false, coerce_numbers_to_str: false })], variadic_item_index: None, min_length: None, max_length: None, name: "tuple[str, str]", fail_fast: false })), min_length: None, max_length: None, name: OnceLock("list[tuple[str, str]]"), fail_fast: false }), validate_default: false, copy_default: true, name: "default[list[tuple[str, str]]]", undefined: Py(0x7f82f5afadb0) }), frozen: false }], model_name: "GroupInfo", extra_behavior: Ignore, extras_validator: None, extras_keys_validator: None, strict: false, from_attributes: false, loc_by_alias: true, lookup: LookupTree { inner: {PathItemString("version"): LookupTreeNode { fields: [LookupFieldInfo { field_index: 8, lookup_priority: LookupFieldPriority { lookup_type: Both, alias_index: 0 } }], map: {}, list: {} }, PathItemString("evaluator_identifier"): LookupTreeNode { fields: [LookupFieldInfo { field_index: 7, lookup_priority: LookupFieldPriority { lookup_type: Both, alias_index: 0 } }], map: {}, list: {} }, PathItemString("component_order"): LookupTreeNode { fields: [LookupFieldInfo { field_index: 11, lookup_priority: LookupFieldPriority { lookup_type: Both, alias_index: 0 } }], map: {}, list: {} }, PathItemString("name"): LookupTreeNode { fields: [LookupFieldInfo { field_index: 0, lookup_priority: LookupFieldPriority { lookup_type: Both, alias_index: 0 } }], map: {}, list: {} }, PathItemString("components"): LookupTreeNode { fields: [LookupFieldInfo { field_index: 12, lookup_priority: LookupFieldPriority { lookup_type: Both, alias_index: 0 } }], map: {}, list: {} }, PathItemString("tool"): LookupTreeNode { fields: [LookupFieldInfo { field_index: 6, lookup_priority: LookupFieldPriority { lookup_type: Both, alias_index: 0 } }], map: {}, list: {} }, PathItemString("outputs"): LookupTreeNode { fields: [LookupFieldInfo { field_index: 3, lookup_priority: LookupFieldPriority { lookup_type: Both, alias_index: 0 } }], map: {}, list: {} }, PathItemString("inputs"): LookupTreeNode { fields: [LookupFieldInfo { field_index: 2, lookup_priority: LookupFieldPriority { lookup_type: Both, alias_index: 0 } }], map: {}, list: {} }, PathItemString("cite"): LookupTreeNode { fields: [LookupFieldInfo { field_index: 5, lookup_priority: LookupFieldPriority { lookup_type: Both, alias_index: 0 } }], map: {}, list: {} }, PathItemString("description"): LookupTreeNode { fields: [LookupFieldInfo { field_index: 4, lookup_priority: LookupFieldPriority { lookup_type: Both, alias_index: 0 } }], map: {}, list: {} }, PathItemString("linkage"): LookupTreeNode { fields: [LookupFieldInfo { field_index: 14, lookup_priority: LookupFieldPriority { lookup_type: Both, alias_index: 0 } }], map: {}, list: {} }, PathItemString("options"): LookupTreeNode { fields: [LookupFieldInfo { field_index: 10, lookup_priority: LookupFieldPriority { lookup_type: Both, alias_index: 0 } }], map: {}, list: {} }, PathItemString("promotions"): LookupTreeNode { fields: [LookupFieldInfo { field_index: 13, lookup_priority: LookupFieldPriority { lookup_type: Both, alias_index: 0 } }], map: {}, list: {} }, PathItemString("component_type"): LookupTreeNode { fields: [LookupFieldInfo { field_index: 9, lookup_priority: LookupFieldPriority { lookup_type: Both, alias_index: 0 } }], map: {}, list: {} }, PathItemString("class_type"): LookupTreeNode { fields: [LookupFieldInfo { field_index: 1, lookup_priority: LookupFieldPriority { lookup_type: Both, alias_index: 0 } }], map: {}, list: {} }} }, validate_by_alias: None, validate_by_name: None }), class: Py(0x55a03c134250), generic_origin: None, post_init: None, frozen: false, custom_init: false, root_model: false, undefined: Py(0x7f82f5afadb0), name: "GroupInfo" }), Prebuilt(PrebuiltValidator { schema_validator: Py(0x7f82d66e6830) }), FunctionAfter(FunctionAfterValidator { validator: Model(ModelValidator { revalidate: Never, validator: ModelFields(ModelFieldsValidator { fields: [Field { name: "name", lookup_path_collection: LookupPathCollection { by_name: LookupPath { first_item: PathItemString("name"), rest: [] }, by_alias: [] }, validator: FunctionAfter(FunctionAfterValidator { validator: Str(StrValidator { strict: false, coerce_numbers_to_str: false }), func: Py(0x7f82d62fa5c0), config: Py(0x7f82d62d0480), name: "function-after[check_name(), str]", field_name: None, info_arg: false }), frozen: false }, Field { name: "default", lookup_path_collection: LookupPathCollection { by_name: LookupPath { first_item: PathItemString("default"), rest: [] }, by_alias: [] }, validator: WithDefault(WithDefaultValidator { default: Default(Py(0x7f82f7c468c0)), on_error: Raise, validator: Nullable(NullableValidator { validator: FunctionPlain(FunctionPlainValidator { func: Py(0x7f82d62d9580), config: Py(0x7f82d62d0480), name: "function-plain[validate_interface()]", field_name: None, info_arg: true }), name: "nullable[function-plain[validate_interface()]]" }), validate_default: false, copy_default: false, name: "default[nullable[function-plain[validate_interface()]]]", undefined: Py(0x7f82f5afadb0) }), frozen: false }, Field { name: "bounds", lookup_path_collection: LookupPathCollection { by_name: LookupPath { first_item: PathItemString("bounds"), rest: [] }, by_alias: [] }, validator: WithDefault(WithDefaultValidator { default: Default(Py(0x7f82d6742180)), on_error: Raise, validator: FunctionAfter(FunctionAfterValidator { validator: Nullable(NullableValidator { validator: Tuple(TupleValidator { strict: false, validators: [Union(UnionValidator { mode: Smart, choices: [(Float(FloatValidator { strict: false, allow_inf_nan: true }), None), (Int(IntValidator { strict: false }), None), (FunctionPlain(FunctionPlainValidator { func: Py(0x7f82d62d96c0), config: Py(0x7f82d62d0480), name: "function-plain[validate_interface()]", field_name: None, info_arg: true }), None)], custom_error: None, name: "union[float,int,function-plain[validate_interface()]]" }), Union(UnionValidator { mode: Smart, choices: [(Float(FloatValidator { strict: false, allow_inf_nan: true }), None), (Int(IntValidator { strict: false }), None), (FunctionPlain(FunctionPlainValidator { func: Py(0x7f82d62d9800), config: Py(0x7f82d62d0480), name: "function-plain[validate_interface()]", field_name: None, info_arg: true }), None)], custom_error: None, name: "union[float,int,function-plain[validate_interface()]]" })], variadic_item_index: None, min_length: None, max_length: None, name: "tuple[union[float,int,function-plain[validate_interface()]], union[float,int,function-plain[validate_interface()]]]", fail_fast: false }), name: "nullable[tuple[union[float,int,function-plain[validate_interface()]], union[float,int,function-plain[validate_interface()]]]]" }), func: Py(0x7f82d62fad80), config: Py(0x7f82d62d0480), name: "function-after[validate_bounds(), nullable[tuple[union[float,int,function-plain[validate_interface()]], union[float,int,function-plain[validate_interface()]]]]]", field_name: None, info_arg: false }), validate_default: false, copy_default: false, name: "default[function-after[validate_bounds(), nullable[tuple[union[float,int,function-plain[validate_interface()]], union[float,int,function-plain[validate_interface()]]]]]]", undefined: Py(0x7f82f5afadb0) }), frozen: false }, Field { name: "shift", lookup_path_collection: LookupPathCollection { by_name: LookupPath { first_item: PathItemString("shift"), rest: [] }, by_alias: [] }, validator: WithDefault(WithDefaultValidator { default: Default(Py(0x7f82f7c468c0)), on_error: Raise, validator: Nullable(NullableValidator { validator: Union(UnionValidator { mode: Smart, choices: [(Float(FloatValidator { strict: false, allow_inf_nan: true }), None), (Int(IntValidator { strict: false }), None), (FunctionPlain(FunctionPlainValidator { func: Py(0x7f82d62d98a0), config: Py(0x7f82d62d0480), name: "function-plain[validate_interface()]", field_name: None, info_arg: true }), None)], custom_error: None, name: "union[float,int,function-plain[validate_interface()]]" }), name: "nullable[union[float,int,function-plain[validate_interface()]]]" }), validate_default: false, copy_default: false, name: "default[nullable[union[float,int,function-plain[validate_interface()]]]]", undefined: Py(0x7f82f5afadb0) }), frozen: false }, Field { name: "scale", lookup_path_collection: LookupPathCollection { by_name: LookupPath { first_item: PathItemString("scale"), rest: [] }, by_alias: [] }, validator: WithDefault(WithDefaultValidator { default: Default(Py(0x7f82f7c468c0)), on_error: Raise, validator: FunctionAfter(FunctionAfterValidator { validator: Nullable(NullableValidator { validator: Union(UnionValidator { mode: Smart, choices: [(Float(FloatValidator { strict: false, allow_inf_nan: true }), None), (Int(IntValidator { strict: false }), None), (FunctionPlain(FunctionPlainValidator { func: Py(0x7f82d62d9620), config: Py(0x7f82d62d0480), name: "function-plain[validate_interface()]", field_name: None, info_arg: true }), None)], custom_error: None, name: "union[float,int,function-plain[validate_interface()]]" }), name: "nullable[union[float,int,function-plain[validate_interface()]]]" }), func: Py(0x7f82d62faf40), config: Py(0x7f82d62d0480), name: "function-after[validate_scale(), nullable[union[float,int,function-plain[validate_interface()]]]]", field_name: None, info_arg: false }), validate_default: false, copy_default: false, name: "default[function-after[validate_scale(), nullable[union[float,int,function-plain[validate_interface()]]]]]", undefined: Py(0x7f82f5afadb0) }), frozen: false }, Field { name: "units", lookup_path_collection: LookupPathCollection { by_name: LookupPath { first_item: PathItemString("units"), rest: [] }, by_alias: [] }, validator: WithDefault(WithDefaultValidator { default: Default(Py(0x7f82f7c468c0)), on_error: Raise, validator: Nullable(NullableValidator { validator: Str(StrValidator { strict: false, coerce_numbers_to_str: false }), name: "nullable[str]" }), validate_default: false, copy_default: false, name: "default[nullable[str]]", undefined: Py(0x7f82f5afadb0) }), frozen: false }, Field { name: "description", lookup_path_collection: LookupPathCollection { by_name: LookupPath { first_item: PathItemString("description"), rest: [] }, by_alias: [] }, validator: WithDefault(WithDefaultValidator { default: Default(Py(0x7f82f7d3f660)), on_error: Raise, validator: Nullable(NullableValidator { validator: Str(StrValidator { strict: false, coerce_numbers_to_str: false }), name: "nullable[str]" }), validate_default: false, copy_default: false, name: "default[nullable[str]]", undefined: Py(0x7f82f5afadb0) }), frozen: false }, Field { name: "options", lookup_path_collection: LookupPathCollection { by_name: LookupPath { first_item: PathItemString("options"), rest: [] }, by_alias: [] }, validator: WithDefault(WithDefaultValidator { default: DefaultFactory(Py(0x7f82f7c43b80), false), on_error: Raise, validator: Dict(DictValidator { strict: false, key_validator: Any(AnyValidator), value_validator: Any(AnyValidator), min_length: None, max_length: None, fail_fast: false, name: "dict[any,any]" }), validate_default: false, copy_default: false, name: "default[dict[any,any]]", undefined: Py(0x7f82f5afadb0) }), frozen: false }, Field { name: "class_type", lookup_path_collection: LookupPathCollection { by_name: LookupPath { first_item: PathItemString("class_type"), rest: [] }, by_alias: [] }, validator: WithDefault(WithDefaultValidator { default: Default(Py(0x7f82d70a4db0)), on_error: Raise, validator: Literal(LiteralValidator { lookup: LiteralLookup { expected_bool: None, expected_int: None, expected_str: Some({"floatarray": 0}), expected_py_dict: None, expected_py_values: None, expected_py_primitives: Some(Py(0x7f82c5fd7bc0)), values: [Py(0x7f82d70a4db0)] }, expected_repr: "'floatarray'", name: "literal['floatarray']" }), validate_default: false, copy_default: false, name: "default[literal['floatarray']]", undefined: Py(0x7f82f5afadb0) }), frozen: false }, Field { name: "shape", lookup_path_collection: LookupPathCollection { by_name: LookupPath { first_item: PathItemString("shape"), rest: [] }, by_alias: [] }, validator: WithDefault(WithDefaultValidator { default: Default(Py(0x7f82f7c468c0)), on_error: Raise, validator: Nullable(NullableValidator { validator: Tuple(TupleValidator { strict: false, validators: [Int(IntValidator { strict: false })], variadic_item_index: Some(0), min_length: None, max_length: None, name: "tuple[int, ...]", fail_fast: false }), name: "nullable[tuple[int, ...]]" }), validate_default: false, copy_default: false, name: "default[nullable[tuple[int, ...]]]", undefined: Py(0x7f82f5afadb0) }), frozen: false }], model_name: "ArrayVariable", extra_behavior: Ignore, extras_validator: None, extras_keys_validator: None, strict: false, from_attributes: false, loc_by_alias: true, lookup: LookupTree { inner: {PathItemString("shape"): LookupTreeNode { fields: [LookupFieldInfo { field_index: 9, lookup_priority: LookupFieldPriority { lookup_type: Both, alias_index: 0 } }], map: {}, list: {} }, PathItemString("shift"): LookupTreeNode { fields: [LookupFieldInfo { field_index: 3, lookup_priority: LookupFieldPriority { lookup_type: Both, alias_index: 0 } }], map: {}, list: {} }, PathItemString("class_type"): LookupTreeNode { fields: [LookupFieldInfo { field_index: 8, lookup_priority: LookupFieldPriority { lookup_type: Both, alias_index: 0 } }], map: {}, list: {} }, PathItemString("scale"): LookupTreeNode { fields: [LookupFieldInfo { field_index: 4, lookup_priority: LookupFieldPriority { lookup_type: Both, alias_index: 0 } }], map: {}, list: {} }, PathItemString("name"): LookupTreeNode { fields: [LookupFieldInfo { field_index: 0, lookup_priority: LookupFieldPriority { lookup_type: Both, alias_index: 0 } }], map: {}, list: {} }, PathItemString("description"): LookupTreeNode { fields: [LookupFieldInfo { field_index: 6, lookup_priority: LookupFieldPriority { lookup_type: Both, alias_index: 0 } }], map: {}, list: {} }, PathItemString("bounds"): LookupTreeNode { fields: [LookupFieldInfo { field_index: 2, lookup_priority: LookupFieldPriority { lookup_type: Both, alias_index: 0 } }], map: {}, list: {} }, PathItemString("options"): LookupTreeNode { fields: [LookupFieldInfo { field_index: 7, lookup_priority: LookupFieldPriority { lookup_type: Both, alias_index: 0 } }], map: {}, list: {} }, PathItemString("units"): LookupTreeNode { fields: [LookupFieldInfo { field_index: 5, lookup_priority: LookupFieldPriority { lookup_type: Both, alias_index: 0 } }], map: {}, list: {} }, PathItemString("default"): LookupTreeNode { fields: [LookupFieldInfo { field_index: 1, lookup_priority: LookupFieldPriority { lookup_type: Both, alias_index: 0 } }], map: {}, list: {} }} }, validate_by_alias: None, validate_by_name: None }), class: Py(0x55a03c0ec630), generic_origin: None, post_init: None, frozen: false, custom_init: false, root_model: false, undefined: Py(0x7f82f5afadb0), name: "ArrayVariable" }), func: Py(0x7f82d62d91c0), config: Py(0x7f82c5fcc3c0), name: "function-after[check_shape(), ArrayVariable]", field_name: None, info_arg: false }), FunctionAfter(FunctionAfterValidator { validator: Model(ModelValidator { revalidate: Never, validator: ModelFields(ModelFieldsValidator { fields: [Field { name: "name", lookup_path_collection: LookupPathCollection { by_name: LookupPath { first_item: PathItemString("name"), rest: [] }, by_alias: [] }, validator: FunctionAfter(FunctionAfterValidator { validator: Str(StrValidator { strict: false, coerce_numbers_to_str: false }), func: Py(0x7f82d62e2c80), config: Py(0x7f82d62e3700), name: "function-after[check_name(), str]", field_name: None, info_arg: false }), frozen: false }, Field { name: "default", lookup_path_collection: LookupPathCollection { by_name: LookupPath { first_item: PathItemString("default"), rest: [] }, by_alias: [] }, validator: WithDefault(WithDefaultValidator { default: Default(Py(0x7f82f7c468c0)), on_error: Raise, validator: Nullable(NullableValidator { validator: Any(AnyValidator), name: "nullable[any]" }), validate_default: false, copy_default: false, name: "default[nullable[any]]", undefined: Py(0x7f82f5afadb0) }), frozen: false }, Field { name: "bounds", lookup_path_collection: LookupPathCollection { by_name: LookupPath { first_item: PathItemString("bounds"), rest: [] }, by_alias: [] }, validator: FunctionAfter(FunctionAfterValidator { validator: List(ListValidator { strict: false, item_validator: None, min_length: None, max_length: None, name: OnceLock("list[any]"), fail_fast: false }), func: Py(0x7f82d62e2e80), config: Py(0x7f82d62e3700), name: "function-after[validate_bounds(), list[any]]", field_name: None, info_arg: false }), frozen: false }, Field { name: "shift", lookup_path_collection: LookupPathCollection { by_name: LookupPath { first_item: PathItemString("shift"), rest: [] }, by_alias: [] }, validator: WithDefault(WithDefaultValidator { default: Default(Py(0x7f82f7c468c0)), on_error: Raise, validator: Literal(LiteralValidator { lookup: LiteralLookup { expected_bool: None, expected_int: None, expected_str: None, expected_py_dict: Some(Py(0x7f82c5fd4080)), expected_py_values: None, expected_py_primitives: None, values: [Py(0x7f82f7c468c0)] }, expected_repr: "None", name: "literal[None]" }), validate_default: false, copy_default: false, name: "default[literal[None]]", undefined: Py(0x7f82f5afadb0) }), frozen: false }, Field { name: "scale", lookup_path_collection: LookupPathCollection { by_name: LookupPath { first_item: PathItemString("scale"), rest: [] }, by_alias: [] }, validator: WithDefault(WithDefaultValidator { default: Default(Py(0x7f82f7c468c0)), on_error: Raise, validator: FunctionAfter(FunctionAfterValidator { validator: Literal(LiteralValidator { lookup: LiteralLookup { expected_bool: None, expected_int: None, expected_str: None, expected_py_dict: Some(Py(0x7f82c5fd7cc0)), expected_py_values: None, expected_py_primitives: None, values: [Py(0x7f82f7c468c0)] }, expected_repr: "None", name: "literal[None]" }), func: Py(0x7f82d62e2c00), config: Py(0x7f82d62e3700), name: "function-after[validate_scale(), literal[None]]", field_name: None, info_arg: false }), validate_default: false, copy_default: false, name: "default[function-after[validate_scale(), literal[None]]]", undefined: Py(0x7f82f5afadb0) }), frozen: false }, Field { name: "units", lookup_path_collection: LookupPathCollection { by_name: LookupPath { first_item: PathItemString("units"), rest: [] }, by_alias: [] }, validator: WithDefault(WithDefaultValidator { default: Default(Py(0x7f82f7c468c0)), on_error: Raise, validator: Nullable(NullableValidator { validator: Str(StrValidator { strict: false, coerce_numbers_to_str: false }), name: "nullable[str]" }), validate_default: false, copy_default: false, name: "default[nullable[str]]", undefined: Py(0x7f82f5afadb0) }), frozen: false }, Field { name: "description", lookup_path_collection: LookupPathCollection { by_name: LookupPath { first_item: PathItemString("description"), rest: [] }, by_alias: [] }, validator: WithDefault(WithDefaultValidator { default: Default(Py(0x7f82f7d3f660)), on_error: Raise, validator: Nullable(NullableValidator { validator: Str(StrValidator { strict: false, coerce_numbers_to_str: false }), name: "nullable[str]" }), validate_default: false, copy_default: false, name: "default[nullable[str]]", undefined: Py(0x7f82f5afadb0) }), frozen: false }, Field { name: "options", lookup_path_collection: LookupPathCollection { by_name: LookupPath { first_item: PathItemString("options"), rest: [] }, by_alias: [] }, validator: WithDefault(WithDefaultValidator { default: DefaultFactory(Py(0x7f82f7c43b80), false), on_error: Raise, validator: Dict(DictValidator { strict: false, key_validator: Any(AnyValidator), value_validator: Any(AnyValidator), min_length: None, max_length: None, fail_fast: false, name: "dict[any,any]" }), validate_default: false, copy_default: false, name: "default[dict[any,any]]", undefined: Py(0x7f82f5afadb0) }), frozen: false }, Field { name: "class_type", lookup_path_collection: LookupPathCollection { by_name: LookupPath { first_item: PathItemString("class_type"), rest: [] }, by_alias: [] }, validator: WithDefault(WithDefaultValidator { default: Default(Py(0x7f82f733c630)), on_error: Raise, validator: Literal(LiteralValidator { lookup: LiteralLookup { expected_bool: None, expected_int: None, expected_str: Some({"cat": 0}), expected_py_dict: None, expected_py_values: None, expected_py_primitives: Some(Py(0x7f82c5fd7300)), values: [Py(0x7f82f733c630)] }, expected_repr: "'cat'", name: "literal['cat']" }), validate_default: false, copy_default: false, name: "default[literal['cat']]", undefined: Py(0x7f82f5afadb0) }), frozen: false }], model_name: "CategoricalVariable", extra_behavior: Ignore, extras_validator: None, extras_keys_validator: None, strict: false, from_attributes: false, loc_by_alias: true, lookup: LookupTree { inner: {PathItemString("bounds"): LookupTreeNode { fields: [LookupFieldInfo { field_index: 2, lookup_priority: LookupFieldPriority { lookup_type: Both, alias_index: 0 } }], map: {}, list: {} }, PathItemString("scale"): LookupTreeNode { fields: [LookupFieldInfo { field_index: 4, lookup_priority: LookupFieldPriority { lookup_type: Both, alias_index: 0 } }], map: {}, list: {} }, PathItemString("class_type"): LookupTreeNode { fields: [LookupFieldInfo { field_index: 8, lookup_priority: LookupFieldPriority { lookup_type: Both, alias_index: 0 } }], map: {}, list: {} }, PathItemString("options"): LookupTreeNode { fields: [LookupFieldInfo { field_index: 7, lookup_priority: LookupFieldPriority { lookup_type: Both, alias_index: 0 } }], map: {}, list: {} }, PathItemString("default"): LookupTreeNode { fields: [LookupFieldInfo { field_index: 1, lookup_priority: LookupFieldPriority { lookup_type: Both, alias_index: 0 } }], map: {}, list: {} }, PathItemString("shift"): LookupTreeNode { fields: [LookupFieldInfo { field_index: 3, lookup_priority: LookupFieldPriority { lookup_type: Both, alias_index: 0 } }], map: {}, list: {} }, PathItemString("units"): LookupTreeNode { fields: [LookupFieldInfo { field_index: 5, lookup_priority: LookupFieldPriority { lookup_type: Both, alias_index: 0 } }], map: {}, list: {} }, PathItemString("description"): LookupTreeNode { fields: [LookupFieldInfo { field_index: 6, lookup_priority: LookupFieldPriority { lookup_type: Both, alias_index: 0 } }], map: {}, list: {} }, PathItemString("name"): LookupTreeNode { fields: [LookupFieldInfo { field_index: 0, lookup_priority: LookupFieldPriority { lookup_type: Both, alias_index: 0 } }], map: {}, list: {} }} }, validate_by_alias: None, validate_by_name: None }), class: Py(0x55a03c0e2510), generic_origin: None, post_init: None, frozen: false, custom_init: false, root_model: false, undefined: Py(0x7f82f5afadb0), name: "CategoricalVariable" }), func: Py(0x7f82d62d8cc0), config: Py(0x7f82c5fcc3c0), name: "function-after[check_default(), CategoricalVariable]", field_name: None, info_arg: false }), Prebuilt(PrebuiltValidator { schema_validator: Py(0x7f82d66e6710) })], cache_strings=True)

The pydantic-core SchemaValidator used to validate instances of the model.

__signature__: ClassVar[Signature] = <Signature (*, name: str, class_type: Literal['GroupInfo'] = 'GroupInfo', inputs: List[Union[standard_evaluator.problem.FloatVariable, standard_evaluator.problem.IntVariable, standard_evaluator.problem.ArrayVariable, standard_evaluator.problem.CategoricalVariable]], outputs: List[Union[standard_evaluator.problem.FloatVariable, standard_evaluator.problem.IntVariable, standard_evaluator.problem.ArrayVariable, standard_evaluator.problem.CategoricalVariable]], description: Optional[str] = None, cite: Optional[str] = None, tool: Optional[str] = None, evaluator_identifier: Optional[str] = None, version: Optional[str] = None, component_type: Optional[str] = None, options: Dict = <factory>, component_order: List[str], components: Dict[str, Union[standard_evaluator.evaluator.EquationInfo, standard_evaluator.evaluator.EvaluatorInfo, standard_evaluator.evaluator.GroupInfo]], promotions: Dict[str, List[Tuple[str, str]]] = {}, linkage: List[Tuple[str, str]] = []) -> None>

The synthesized __init__ [Signature][inspect.Signature] of the model.

model_config: ClassVar[ConfigDict] = {}

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

Variable Types

class FloatVariable

Bases: BaseModel

Class representing a floating-point variable with bounds and scaling.

name

Name of the variable.

Type:

str

default

Default value for this variable.

Type:

float | None

bounds

Lower and upper bounds of the variable.

Type:

Tuple[float, float] | None

shift

Shift value to be used for this variable.

Type:

float | None

scale

Scale value to be used for this variable. Cannot be zero.

Type:

float | None

units

Units of the variable.

Type:

str | None

description

A description of the variable.

Type:

str | None

options

Additional options for the variable.

Type:

Dict

class_type

Class marker for identifying the variable type.

Type:

Literal[‘float’]

Methods:

calculate_default([overwrite])

Calculate the default value based on the bounds.

validate_bounds(var)

Validate the bounds of the variable.

validate_scale(scale)

Validate the scale of the variable.

check_name(name)

Check the validity of the variable name.

Attributes:

__pydantic_fields_set__

The names of fields explicitly set during instantiation.

__pydantic_extra__

A dictionary containing extra values, if [extra][pydantic.config.ConfigDict.extra] is set to 'allow'.

__pydantic_private__

Values of private attributes set on the model instance.

__class_vars__

The names of the class variables defined on the model.

__private_attributes__

Metadata about the private attributes of the model.

__pydantic_complete__

Whether model building is completed, or if there are still undefined fields.

__pydantic_computed_fields__

A dictionary of computed field names and their corresponding [ComputedFieldInfo][pydantic.fields.ComputedFieldInfo] objects.

__pydantic_core_schema__

The core schema of the model.

__pydantic_custom_init__

Whether the model has a custom __init__ method.

__pydantic_decorators__

Metadata containing the decorators defined on the model.

__pydantic_extra_info__

A wrapper around the __pydantic_extra__ annotation, if explicitly annotated on a model.

__pydantic_fields__

A dictionary of field names and their corresponding [FieldInfo][pydantic.fields.FieldInfo] objects.

__pydantic_generic_metadata__

A dictionary containing metadata about generic Pydantic models.

__pydantic_parent_namespace__

Parent namespace of the model, used for automatic rebuilding of models.

__pydantic_post_init__

The name of the post-init method for the model, if defined.

__pydantic_serializer__

The pydantic-core SchemaSerializer used to dump instances of the model.

__pydantic_setattr_handlers__

__setattr__ handlers.

__pydantic_validator__

The pydantic-core SchemaValidator used to validate instances of the model.

__signature__

The synthesized __init__ [Signature][inspect.Signature] of the model.

model_config

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

calculate_default(overwrite=True)

Calculate the default value based on the bounds.

If the overwrite flag is not true and default is set, the method exits. The default value is set based on the bounds of the variable.

Parameters:

overwrite (bool) – Flag indicating whether to overwrite the default value if it is already set.

Return type:

None

classmethod validate_bounds(var)

Validate the bounds of the variable.

If the bounds are not set, they default to (-inf, inf). Raises a ValueError if the lower bound is greater than the upper bound.

Parameters:

var (Tuple[float, float]) – The bounds to validate.

Returns:

The validated bounds.

Return type:

Tuple[float, float]

Raises:

ValueError – If the lower bound is greater than the upper bound.

classmethod validate_scale(scale)

Validate the scale of the variable.

Raises a ValueError if the scale is set to zero.

Parameters:

scale (float) – The scale to validate.

Returns:

The validated scale.

Return type:

float

Raises:

ValueError – If the scale is zero.

classmethod check_name(name)

Check the validity of the variable name.

Raises a ValueError if the name contains whitespace or is an empty string.

Parameters:

name (str) – The name to validate.

Returns:

The validated name.

Return type:

str

Raises:

ValueError – If the name contains whitespace or is empty.

__pydantic_fields_set__: set[str]

The names of fields explicitly set during instantiation.

__pydantic_extra__: Dict[str, Any] | None

A dictionary containing extra values, if [extra][pydantic.config.ConfigDict.extra] is set to ‘allow’.

__pydantic_private__: Dict[str, Any] | None

Values of private attributes set on the model instance.

__class_vars__: ClassVar[set[str]] = {}

The names of the class variables defined on the model.

__private_attributes__: ClassVar[Dict[str, ModelPrivateAttr]] = {}

Metadata about the private attributes of the model.

__pydantic_complete__: ClassVar[bool] = True

Whether model building is completed, or if there are still undefined fields.

__pydantic_computed_fields__: ClassVar[Dict[str, ComputedFieldInfo]] = {}

A dictionary of computed field names and their corresponding [ComputedFieldInfo][pydantic.fields.ComputedFieldInfo] objects.

__pydantic_core_schema__: ClassVar[CoreSchema] = {'cls': <class 'standard_evaluator.problem.FloatVariable'>, 'config': {'title': 'FloatVariable'}, 'custom_init': False, 'metadata': {'pydantic_js_functions': [<bound method BaseModel.__get_pydantic_json_schema__ of <class 'standard_evaluator.problem.FloatVariable'>>]}, 'ref': 'standard_evaluator.problem.FloatVariable:94146690615344', 'root_model': False, 'schema': {'computed_fields': [], 'fields': {'bounds': {'metadata': {'pydantic_js_updates': {'description': 'Lower and upper bounds of the variable'}}, 'schema': {'default': (-inf, inf), 'schema': {'function': {'function': <bound method FloatVariable.validate_bounds of <class 'standard_evaluator.problem.FloatVariable'>>, 'type': 'no-info'}, 'schema': {'schema': {'items_schema': [{'type': 'float'}, {'type': 'float'}], 'type': 'tuple'}, 'type': 'nullable'}, 'type': 'function-after'}, 'type': 'default'}, 'type': 'model-field'}, 'class_type': {'metadata': {'pydantic_js_updates': {'description': 'Class marker'}}, 'schema': {'default': 'float', 'schema': {'expected': ['float'], 'type': 'literal'}, 'type': 'default'}, 'type': 'model-field'}, 'default': {'metadata': {'pydantic_js_updates': {'description': 'Default value for this variable'}}, 'schema': {'default': None, 'schema': {'schema': {'type': 'float'}, 'type': 'nullable'}, 'type': 'default'}, 'type': 'model-field'}, 'description': {'metadata': {'pydantic_js_updates': {'description': 'A description of the variable.'}}, 'schema': {'default': '', 'schema': {'schema': {'type': 'str'}, 'type': 'nullable'}, 'type': 'default'}, 'type': 'model-field'}, 'name': {'metadata': {'pydantic_js_updates': {'description': 'Name of the variable.'}}, 'schema': {'function': {'function': <bound method FloatVariable.check_name of <class 'standard_evaluator.problem.FloatVariable'>>, 'type': 'no-info'}, 'schema': {'type': 'str'}, 'type': 'function-after'}, 'type': 'model-field'}, 'options': {'metadata': {'pydantic_js_updates': {'description': 'Options for the variable.'}}, 'schema': {'default_factory': <class 'dict'>, 'default_factory_takes_data': False, 'schema': {'keys_schema': {'type': 'any'}, 'type': 'dict', 'values_schema': {'type': 'any'}}, 'type': 'default'}, 'type': 'model-field'}, 'scale': {'metadata': {'pydantic_js_updates': {'description': 'Scale value to be used for this variable. Cannot be zero.'}}, 'schema': {'default': 1.0, 'schema': {'function': {'function': <bound method FloatVariable.validate_scale of <class 'standard_evaluator.problem.FloatVariable'>>, 'type': 'no-info'}, 'schema': {'schema': {'type': 'float'}, 'type': 'nullable'}, 'type': 'function-after'}, 'type': 'default'}, 'type': 'model-field'}, 'shift': {'metadata': {'pydantic_js_updates': {'description': 'Shift value to be used for this variable.'}}, 'schema': {'default': 0.0, 'schema': {'schema': {'type': 'float'}, 'type': 'nullable'}, 'type': 'default'}, 'type': 'model-field'}, 'units': {'metadata': {}, 'schema': {'default': None, 'schema': {'schema': {'type': 'str'}, 'type': 'nullable'}, 'type': 'default'}, 'type': 'model-field'}}, 'model_name': 'FloatVariable', 'type': 'model-fields'}, 'type': 'model'}

The core schema of the model.

__pydantic_custom_init__: ClassVar[bool] = False

Whether the model has a custom __init__ method.

__pydantic_decorators__: ClassVar[_decorators.DecoratorInfos] = DecoratorInfos(validators={}, field_validators={'validate_bounds': Decorator(cls_ref='standard_evaluator.problem.FloatVariable:94146690615344', cls_var_name='validate_bounds', func=<bound method FloatVariable.validate_bounds of <class 'standard_evaluator.problem.FloatVariable'>>, shim=None, info=FieldValidatorDecoratorInfo(fields=('bounds',), mode='after', check_fields=None, json_schema_input_type=PydanticUndefined)), 'validate_scale': Decorator(cls_ref='standard_evaluator.problem.FloatVariable:94146690615344', cls_var_name='validate_scale', func=<bound method FloatVariable.validate_scale of <class 'standard_evaluator.problem.FloatVariable'>>, shim=None, info=FieldValidatorDecoratorInfo(fields=('scale',), mode='after', check_fields=None, json_schema_input_type=PydanticUndefined)), 'check_name': Decorator(cls_ref='standard_evaluator.problem.FloatVariable:94146690615344', cls_var_name='check_name', func=<bound method FloatVariable.check_name of <class 'standard_evaluator.problem.FloatVariable'>>, shim=None, info=FieldValidatorDecoratorInfo(fields=('name',), mode='after', check_fields=None, json_schema_input_type=PydanticUndefined))}, root_validators={}, field_serializers={}, model_serializers={}, model_validators={}, computed_fields={})

Metadata containing the decorators defined on the model. This replaces Model.__validators__ and Model.__root_validators__ from Pydantic V1.

__pydantic_extra_info__: ClassVar[PydanticExtraInfo | None] = None

A wrapper around the __pydantic_extra__ annotation, if explicitly annotated on a model.

This is a private attribute, not meant to be used outside Pydantic.

__pydantic_fields__: ClassVar[Dict[str, FieldInfo]] = {'bounds': FieldInfo(annotation=Union[Tuple[float, float], NoneType], required=False, default=(-inf, inf), description='Lower and upper bounds of the variable'), 'class_type': FieldInfo(annotation=Literal['float'], required=False, default='float', description='Class marker'), 'default': FieldInfo(annotation=Union[float, NoneType], required=False, default=None, description='Default value for this variable'), 'description': FieldInfo(annotation=Union[str, NoneType], required=False, default='', description='A description of the variable.'), 'name': FieldInfo(annotation=str, required=True, description='Name of the variable.'), 'options': FieldInfo(annotation=Dict, required=False, default_factory=dict, description='Options for the variable.'), 'scale': FieldInfo(annotation=Union[float, NoneType], required=False, default=1.0, description='Scale value to be used for this variable. Cannot be zero.'), 'shift': FieldInfo(annotation=Union[float, NoneType], required=False, default=0.0, description='Shift value to be used for this variable.'), 'units': FieldInfo(annotation=Union[str, NoneType], required=False, default=None)}

A dictionary of field names and their corresponding [FieldInfo][pydantic.fields.FieldInfo] objects. This replaces Model.__fields__ from Pydantic V1.

__pydantic_generic_metadata__: ClassVar[_generics.PydanticGenericMetadata] = {'args': (), 'origin': None, 'parameters': ()}

A dictionary containing metadata about generic Pydantic models.

The origin and args items map to the [__origin__][genericalias.__origin__] and [__args__][genericalias.__args__] attributes of [generic aliases][types-genericalias], and the parameter item maps to the __parameter__ attribute of generic classes.

__pydantic_parent_namespace__: ClassVar[Dict[str, Any] | None] = None

Parent namespace of the model, used for automatic rebuilding of models.

__pydantic_post_init__: ClassVar[None | Literal['model_post_init']] = None

The name of the post-init method for the model, if defined.

__pydantic_serializer__: ClassVar[SchemaSerializer] = SchemaSerializer(serializer=PolymorphismTrampoline(     PolymorphismTrampoline {         class: Py(             0x000055a03c0d0830,         ),         serializer: PolymorphismTrampoline(             PolymorphismTrampoline {                 class: Py(                     0x000055a03c0d0830,                 ),                 serializer: Model(                     ModelSerializer {                         class: Py(                             0x000055a03c0d0830,                         ),                         serializer: Fields(                             GeneralFieldsSerializer {                                 fields: {                                     "options": SerField {                                         key: "options",                                         alias: None,                                         serializer: Some(                                             WithDefault(                                                 WithDefaultSerializer {                                                     default: DefaultFactory(                                                         Py(                                                             0x00007f82f7c43b80,                                                         ),                                                         false,                                                     ),                                                     serializer: Dict(                                                         DictSerializer {                                                             key_serializer: Any(                                                                 AnySerializer,                                                             ),                                                             value_serializer: Any(                                                                 AnySerializer,                                                             ),                                                             filter: SchemaFilter {                                                                 include: None,                                                                 exclude: None,                                                             },                                                             name: "dict[any, any]",                                                         },                                                     ),                                                 },                                             ),                                         ),                                         required: true,                                         serialize_by_alias: None,                                         serialization_exclude_if: None,                                     },                                     "description": SerField {                                         key: "description",                                         alias: None,                                         serializer: Some(                                             WithDefault(                                                 WithDefaultSerializer {                                                     default: Default(                                                         Py(                                                             0x00007f82f7d3f660,                                                         ),                                                     ),                                                     serializer: Nullable(                                                         NullableSerializer {                                                             serializer: Str(                                                                 StrSerializer,                                                             ),                                                         },                                                     ),                                                 },                                             ),                                         ),                                         required: true,                                         serialize_by_alias: None,                                         serialization_exclude_if: None,                                     },                                     "scale": SerField {                                         key: "scale",                                         alias: None,                                         serializer: Some(                                             WithDefault(                                                 WithDefaultSerializer {                                                     default: Default(                                                         Py(                                                             0x00007f82d7299610,                                                         ),                                                     ),                                                     serializer: Nullable(                                                         NullableSerializer {                                                             serializer: Float(                                                                 FloatSerializer {                                                                     inf_nan_mode: Null,                                                                 },                                                             ),                                                         },                                                     ),                                                 },                                             ),                                         ),                                         required: true,                                         serialize_by_alias: None,                                         serialization_exclude_if: None,                                     },                                     "bounds": SerField {                                         key: "bounds",                                         alias: None,                                         serializer: Some(                                             WithDefault(                                                 WithDefaultSerializer {                                                     default: Default(                                                         Py(                                                             0x00007f82f3123680,                                                         ),                                                     ),                                                     serializer: Nullable(                                                         NullableSerializer {                                                             serializer: Tuple(                                                                 TupleSerializer {                                                                     serializers: [                                                                         Float(                                                                             FloatSerializer {                                                                                 inf_nan_mode: Null,                                                                             },                                                                         ),                                                                         Float(                                                                             FloatSerializer {                                                                                 inf_nan_mode: Null,                                                                             },                                                                         ),                                                                     ],                                                                     variadic_item_index: None,                                                                     filter: SchemaFilter {                                                                         include: None,                                                                         exclude: None,                                                                     },                                                                     name: "tuple[float, float]",                                                                 },                                                             ),                                                         },                                                     ),                                                 },                                             ),                                         ),                                         required: true,                                         serialize_by_alias: None,                                         serialization_exclude_if: None,                                     },                                     "default": SerField {                                         key: "default",                                         alias: None,                                         serializer: Some(                                             WithDefault(                                                 WithDefaultSerializer {                                                     default: Default(                                                         Py(                                                             0x00007f82f7c468c0,                                                         ),                                                     ),                                                     serializer: Nullable(                                                         NullableSerializer {                                                             serializer: Float(                                                                 FloatSerializer {                                                                     inf_nan_mode: Null,                                                                 },                                                             ),                                                         },                                                     ),                                                 },                                             ),                                         ),                                         required: true,                                         serialize_by_alias: None,                                         serialization_exclude_if: None,                                     },                                     "name": SerField {                                         key: "name",                                         alias: None,                                         serializer: Some(                                             Str(                                                 StrSerializer,                                             ),                                         ),                                         required: true,                                         serialize_by_alias: None,                                         serialization_exclude_if: None,                                     },                                     "units": SerField {                                         key: "units",                                         alias: None,                                         serializer: Some(                                             WithDefault(                                                 WithDefaultSerializer {                                                     default: Default(                                                         Py(                                                             0x00007f82f7c468c0,                                                         ),                                                     ),                                                     serializer: Nullable(                                                         NullableSerializer {                                                             serializer: Str(                                                                 StrSerializer,                                                             ),                                                         },                                                     ),                                                 },                                             ),                                         ),                                         required: true,                                         serialize_by_alias: None,                                         serialization_exclude_if: None,                                     },                                     "shift": SerField {                                         key: "shift",                                         alias: None,                                         serializer: Some(                                             WithDefault(                                                 WithDefaultSerializer {                                                     default: Default(                                                         Py(                                                             0x00007f82d66c8210,                                                         ),                                                     ),                                                     serializer: Nullable(                                                         NullableSerializer {                                                             serializer: Float(                                                                 FloatSerializer {                                                                     inf_nan_mode: Null,                                                                 },                                                             ),                                                         },                                                     ),                                                 },                                             ),                                         ),                                         required: true,                                         serialize_by_alias: None,                                         serialization_exclude_if: None,                                     },                                     "class_type": SerField {                                         key: "class_type",                                         alias: None,                                         serializer: Some(                                             WithDefault(                                                 WithDefaultSerializer {                                                     default: Default(                                                         Py(                                                             0x00007f82f7791330,                                                         ),                                                     ),                                                     serializer: Literal(                                                         LiteralSerializer {                                                             expected_int: {},                                                             expected_str: {                                                                 "float",                                                             },                                                             expected_py: None,                                                             name: "literal['float']",                                                         },                                                     ),                                                 },                                             ),                                         ),                                         required: true,                                         serialize_by_alias: None,                                         serialization_exclude_if: None,                                     },                                 },                                 computed_fields: Some(                                     ComputedFields(                                         [],                                     ),                                 ),                                 mode: SimpleDict,                                 extra_serializer: None,                                 filter: SchemaFilter {                                     include: None,                                     exclude: None,                                 },                                 required_fields: 9,                             },                         ),                         has_extra: false,                         root_model: false,                         name: "FloatVariable",                     },                 ),                 enabled_from_config: false,             },         ),         enabled_from_config: false,     }, ), definitions=[])

The pydantic-core SchemaSerializer used to dump instances of the model.

__pydantic_setattr_handlers__: ClassVar[Dict[str, Callable[[BaseModel, str, Any], None]]] = {}

__setattr__ handlers. Memoizing the handlers leads to a dramatic performance improvement in __setattr__

__pydantic_validator__: ClassVar[SchemaValidator | PluggableSchemaValidator] = SchemaValidator(title="FloatVariable", validator=Model(     ModelValidator {         revalidate: Never,         validator: ModelFields(             ModelFieldsValidator {                 fields: [                     Field {                         name: "name",                         lookup_path_collection: LookupPathCollection {                             by_name: LookupPath {                                 first_item: PathItemString(                                     "name",                                 ),                                 rest: [],                             },                             by_alias: [],                         },                         validator: FunctionAfter(                             FunctionAfterValidator {                                 validator: Str(                                     StrValidator {                                         strict: false,                                         coerce_numbers_to_str: false,                                     },                                 ),                                 func: Py(                                     0x00007f82e4526e40,                                 ),                                 config: Py(                                     0x00007f82d62d2800,                                 ),                                 name: "function-after[check_name(), str]",                                 field_name: None,                                 info_arg: false,                             },                         ),                         frozen: false,                     },                     Field {                         name: "default",                         lookup_path_collection: LookupPathCollection {                             by_name: LookupPath {                                 first_item: PathItemString(                                     "default",                                 ),                                 rest: [],                             },                             by_alias: [],                         },                         validator: WithDefault(                             WithDefaultValidator {                                 default: Default(                                     Py(                                         0x00007f82f7c468c0,                                     ),                                 ),                                 on_error: Raise,                                 validator: Nullable(                                     NullableValidator {                                         validator: Float(                                             FloatValidator {                                                 strict: false,                                                 allow_inf_nan: true,                                             },                                         ),                                         name: "nullable[float]",                                     },                                 ),                                 validate_default: false,                                 copy_default: false,                                 name: "default[nullable[float]]",                                 undefined: Py(                                     0x00007f82f5afadb0,                                 ),                             },                         ),                         frozen: false,                     },                     Field {                         name: "bounds",                         lookup_path_collection: LookupPathCollection {                             by_name: LookupPath {                                 first_item: PathItemString(                                     "bounds",                                 ),                                 rest: [],                             },                             by_alias: [],                         },                         validator: WithDefault(                             WithDefaultValidator {                                 default: Default(                                     Py(                                         0x00007f82f3123680,                                     ),                                 ),                                 on_error: Raise,                                 validator: FunctionAfter(                                     FunctionAfterValidator {                                         validator: Nullable(                                             NullableValidator {                                                 validator: Tuple(                                                     TupleValidator {                                                         strict: false,                                                         validators: [                                                             Float(                                                                 FloatValidator {                                                                     strict: false,                                                                     allow_inf_nan: true,                                                                 },                                                             ),                                                             Float(                                                                 FloatValidator {                                                                     strict: false,                                                                     allow_inf_nan: true,                                                                 },                                                             ),                                                         ],                                                         variadic_item_index: None,                                                         min_length: None,                                                         max_length: None,                                                         name: "tuple[float, float]",                                                         fail_fast: false,                                                     },                                                 ),                                                 name: "nullable[tuple[float, float]]",                                             },                                         ),                                         func: Py(                                             0x00007f82e4eb1640,                                         ),                                         config: Py(                                             0x00007f82d62d2800,                                         ),                                         name: "function-after[validate_bounds(), nullable[tuple[float, float]]]",                                         field_name: None,                                         info_arg: false,                                     },                                 ),                                 validate_default: false,                                 copy_default: false,                                 name: "default[function-after[validate_bounds(), nullable[tuple[float, float]]]]",                                 undefined: Py(                                     0x00007f82f5afadb0,                                 ),                             },                         ),                         frozen: false,                     },                     Field {                         name: "shift",                         lookup_path_collection: LookupPathCollection {                             by_name: LookupPath {                                 first_item: PathItemString(                                     "shift",                                 ),                                 rest: [],                             },                             by_alias: [],                         },                         validator: WithDefault(                             WithDefaultValidator {                                 default: Default(                                     Py(                                         0x00007f82d66c8210,                                     ),                                 ),                                 on_error: Raise,                                 validator: Nullable(                                     NullableValidator {                                         validator: Float(                                             FloatValidator {                                                 strict: false,                                                 allow_inf_nan: true,                                             },                                         ),                                         name: "nullable[float]",                                     },                                 ),                                 validate_default: false,                                 copy_default: false,                                 name: "default[nullable[float]]",                                 undefined: Py(                                     0x00007f82f5afadb0,                                 ),                             },                         ),                         frozen: false,                     },                     Field {                         name: "scale",                         lookup_path_collection: LookupPathCollection {                             by_name: LookupPath {                                 first_item: PathItemString(                                     "scale",                                 ),                                 rest: [],                             },                             by_alias: [],                         },                         validator: WithDefault(                             WithDefaultValidator {                                 default: Default(                                     Py(                                         0x00007f82d7299610,                                     ),                                 ),                                 on_error: Raise,                                 validator: FunctionAfter(                                     FunctionAfterValidator {                                         validator: Nullable(                                             NullableValidator {                                                 validator: Float(                                                     FloatValidator {                                                         strict: false,                                                         allow_inf_nan: true,                                                     },                                                 ),                                                 name: "nullable[float]",                                             },                                         ),                                         func: Py(                                             0x00007f82f31f8c00,                                         ),                                         config: Py(                                             0x00007f82d62d2800,                                         ),                                         name: "function-after[validate_scale(), nullable[float]]",                                         field_name: None,                                         info_arg: false,                                     },                                 ),                                 validate_default: false,                                 copy_default: false,                                 name: "default[function-after[validate_scale(), nullable[float]]]",                                 undefined: Py(                                     0x00007f82f5afadb0,                                 ),                             },                         ),                         frozen: false,                     },                     Field {                         name: "units",                         lookup_path_collection: LookupPathCollection {                             by_name: LookupPath {                                 first_item: PathItemString(                                     "units",                                 ),                                 rest: [],                             },                             by_alias: [],                         },                         validator: WithDefault(                             WithDefaultValidator {                                 default: Default(                                     Py(                                         0x00007f82f7c468c0,                                     ),                                 ),                                 on_error: Raise,                                 validator: Nullable(                                     NullableValidator {                                         validator: Str(                                             StrValidator {                                                 strict: false,                                                 coerce_numbers_to_str: false,                                             },                                         ),                                         name: "nullable[str]",                                     },                                 ),                                 validate_default: false,                                 copy_default: false,                                 name: "default[nullable[str]]",                                 undefined: Py(                                     0x00007f82f5afadb0,                                 ),                             },                         ),                         frozen: false,                     },                     Field {                         name: "description",                         lookup_path_collection: LookupPathCollection {                             by_name: LookupPath {                                 first_item: PathItemString(                                     "description",                                 ),                                 rest: [],                             },                             by_alias: [],                         },                         validator: WithDefault(                             WithDefaultValidator {                                 default: Default(                                     Py(                                         0x00007f82f7d3f660,                                     ),                                 ),                                 on_error: Raise,                                 validator: Nullable(                                     NullableValidator {                                         validator: Str(                                             StrValidator {                                                 strict: false,                                                 coerce_numbers_to_str: false,                                             },                                         ),                                         name: "nullable[str]",                                     },                                 ),                                 validate_default: false,                                 copy_default: false,                                 name: "default[nullable[str]]",                                 undefined: Py(                                     0x00007f82f5afadb0,                                 ),                             },                         ),                         frozen: false,                     },                     Field {                         name: "options",                         lookup_path_collection: LookupPathCollection {                             by_name: LookupPath {                                 first_item: PathItemString(                                     "options",                                 ),                                 rest: [],                             },                             by_alias: [],                         },                         validator: WithDefault(                             WithDefaultValidator {                                 default: DefaultFactory(                                     Py(                                         0x00007f82f7c43b80,                                     ),                                     false,                                 ),                                 on_error: Raise,                                 validator: Dict(                                     DictValidator {                                         strict: false,                                         key_validator: Any(                                             AnyValidator,                                         ),                                         value_validator: Any(                                             AnyValidator,                                         ),                                         min_length: None,                                         max_length: None,                                         fail_fast: false,                                         name: "dict[any,any]",                                     },                                 ),                                 validate_default: false,                                 copy_default: false,                                 name: "default[dict[any,any]]",                                 undefined: Py(                                     0x00007f82f5afadb0,                                 ),                             },                         ),                         frozen: false,                     },                     Field {                         name: "class_type",                         lookup_path_collection: LookupPathCollection {                             by_name: LookupPath {                                 first_item: PathItemString(                                     "class_type",                                 ),                                 rest: [],                             },                             by_alias: [],                         },                         validator: WithDefault(                             WithDefaultValidator {                                 default: Default(                                     Py(                                         0x00007f82f7791330,                                     ),                                 ),                                 on_error: Raise,                                 validator: Literal(                                     LiteralValidator {                                         lookup: LiteralLookup {                                             expected_bool: None,                                             expected_int: None,                                             expected_str: Some(                                                 {                                                     "float": 0,                                                 },                                             ),                                             expected_py_dict: None,                                             expected_py_values: None,                                             expected_py_primitives: Some(                                                 Py(                                                     0x00007f82d62d2680,                                                 ),                                             ),                                             values: [                                                 Py(                                                     0x00007f82f7791330,                                                 ),                                             ],                                         },                                         expected_repr: "'float'",                                         name: "literal['float']",                                     },                                 ),                                 validate_default: false,                                 copy_default: false,                                 name: "default[literal['float']]",                                 undefined: Py(                                     0x00007f82f5afadb0,                                 ),                             },                         ),                         frozen: false,                     },                 ],                 model_name: "FloatVariable",                 extra_behavior: Ignore,                 extras_validator: None,                 extras_keys_validator: None,                 strict: false,                 from_attributes: false,                 loc_by_alias: true,                 lookup: LookupTree {                     inner: {                         PathItemString(                             "default",                         ): LookupTreeNode {                             fields: [                                 LookupFieldInfo {                                     field_index: 1,                                     lookup_priority: LookupFieldPriority {                                         lookup_type: Both,                                         alias_index: 0,                                     },                                 },                             ],                             map: {},                             list: {},                         },                         PathItemString(                             "bounds",                         ): LookupTreeNode {                             fields: [                                 LookupFieldInfo {                                     field_index: 2,                                     lookup_priority: LookupFieldPriority {                                         lookup_type: Both,                                         alias_index: 0,                                     },                                 },                             ],                             map: {},                             list: {},                         },                         PathItemString(                             "scale",                         ): LookupTreeNode {                             fields: [                                 LookupFieldInfo {                                     field_index: 4,                                     lookup_priority: LookupFieldPriority {                                         lookup_type: Both,                                         alias_index: 0,                                     },                                 },                             ],                             map: {},                             list: {},                         },                         PathItemString(                             "units",                         ): LookupTreeNode {                             fields: [                                 LookupFieldInfo {                                     field_index: 5,                                     lookup_priority: LookupFieldPriority {                                         lookup_type: Both,                                         alias_index: 0,                                     },                                 },                             ],                             map: {},                             list: {},                         },                         PathItemString(                             "class_type",                         ): LookupTreeNode {                             fields: [                                 LookupFieldInfo {                                     field_index: 8,                                     lookup_priority: LookupFieldPriority {                                         lookup_type: Both,                                         alias_index: 0,                                     },                                 },                             ],                             map: {},                             list: {},                         },                         PathItemString(                             "options",                         ): LookupTreeNode {                             fields: [                                 LookupFieldInfo {                                     field_index: 7,                                     lookup_priority: LookupFieldPriority {                                         lookup_type: Both,                                         alias_index: 0,                                     },                                 },                             ],                             map: {},                             list: {},                         },                         PathItemString(                             "description",                         ): LookupTreeNode {                             fields: [                                 LookupFieldInfo {                                     field_index: 6,                                     lookup_priority: LookupFieldPriority {                                         lookup_type: Both,                                         alias_index: 0,                                     },                                 },                             ],                             map: {},                             list: {},                         },                         PathItemString(                             "shift",                         ): LookupTreeNode {                             fields: [                                 LookupFieldInfo {                                     field_index: 3,                                     lookup_priority: LookupFieldPriority {                                         lookup_type: Both,                                         alias_index: 0,                                     },                                 },                             ],                             map: {},                             list: {},                         },                         PathItemString(                             "name",                         ): LookupTreeNode {                             fields: [                                 LookupFieldInfo {                                     field_index: 0,                                     lookup_priority: LookupFieldPriority {                                         lookup_type: Both,                                         alias_index: 0,                                     },                                 },                             ],                             map: {},                             list: {},                         },                     },                 },                 validate_by_alias: None,                 validate_by_name: None,             },         ),         class: Py(             0x000055a03c0d0830,         ),         generic_origin: None,         post_init: None,         frozen: false,         custom_init: false,         root_model: false,         undefined: Py(             0x00007f82f5afadb0,         ),         name: "FloatVariable",     }, ), definitions=[], cache_strings=True)

The pydantic-core SchemaValidator used to validate instances of the model.

__signature__: ClassVar[Signature] = <Signature (*, name: str, default: Optional[float] = None, bounds: Optional[Tuple[float, float]] = (-inf, inf), shift: Optional[float] = 0.0, scale: Optional[float] = 1.0, units: Optional[str] = None, description: Optional[str] = '', options: Dict = <factory>, class_type: Literal['float'] = 'float') -> None>

The synthesized __init__ [Signature][inspect.Signature] of the model.

model_config: ClassVar[ConfigDict] = {'validate_assignment': True}

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

class IntVariable

Bases: FloatVariable

Class representing an integer variable with bounds and scaling.

Inherits from FloatVariable and overrides specific attributes and methods for integer handling.

Methods:

calculate_default([overwrite])

Calculate the default value based on the bounds for integer variables.

validate_bounds(var)

Validate the bounds of the integer variable.

Attributes:

__pydantic_fields_set__

The names of fields explicitly set during instantiation.

__pydantic_extra__

A dictionary containing extra values, if [extra][pydantic.config.ConfigDict.extra] is set to 'allow'.

__pydantic_private__

Values of private attributes set on the model instance.

__class_vars__

The names of the class variables defined on the model.

__private_attributes__

Metadata about the private attributes of the model.

__pydantic_complete__

Whether model building is completed, or if there are still undefined fields.

__pydantic_computed_fields__

A dictionary of computed field names and their corresponding [ComputedFieldInfo][pydantic.fields.ComputedFieldInfo] objects.

__pydantic_core_schema__

The core schema of the model.

__pydantic_custom_init__

Whether the model has a custom __init__ method.

__pydantic_decorators__

Metadata containing the decorators defined on the model.

__pydantic_extra_info__

A wrapper around the __pydantic_extra__ annotation, if explicitly annotated on a model.

__pydantic_fields__

A dictionary of field names and their corresponding [FieldInfo][pydantic.fields.FieldInfo] objects.

__pydantic_generic_metadata__

A dictionary containing metadata about generic Pydantic models.

__pydantic_parent_namespace__

Parent namespace of the model, used for automatic rebuilding of models.

__pydantic_post_init__

The name of the post-init method for the model, if defined.

__pydantic_serializer__

The pydantic-core SchemaSerializer used to dump instances of the model.

__pydantic_setattr_handlers__

__setattr__ handlers.

__pydantic_validator__

The pydantic-core SchemaValidator used to validate instances of the model.

__signature__

The synthesized __init__ [Signature][inspect.Signature] of the model.

model_config

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

calculate_default(overwrite=True)

Calculate the default value based on the bounds for integer variables.

If the overwrite flag is not true and default is set, the method exits. The default value is set based on the bounds of the variable.

Parameters:

overwrite (bool) – Flag indicating whether to overwrite the default value if it is already set.

Return type:

None

classmethod validate_bounds(var)

Validate the bounds of the integer variable.

If the bounds are not set, they default to (-MAXINT, MAXINT). Raises a ValueError if the lower bound is greater than the upper bound.

Parameters:

var (Tuple[int, int]) – The bounds to validate.

Returns:

The validated bounds.

Return type:

Tuple[int, int]

Raises:

ValueError – If the lower bound is greater than the upper bound.

__pydantic_fields_set__: set[str]

The names of fields explicitly set during instantiation.

__pydantic_extra__: Dict[str, Any] | None

A dictionary containing extra values, if [extra][pydantic.config.ConfigDict.extra] is set to ‘allow’.

__pydantic_private__: Dict[str, Any] | None

Values of private attributes set on the model instance.

__class_vars__: ClassVar[set[str]] = {}

The names of the class variables defined on the model.

__private_attributes__: ClassVar[Dict[str, ModelPrivateAttr]] = {}

Metadata about the private attributes of the model.

__pydantic_complete__: ClassVar[bool] = True

Whether model building is completed, or if there are still undefined fields.

__pydantic_computed_fields__: ClassVar[Dict[str, ComputedFieldInfo]] = {}

A dictionary of computed field names and their corresponding [ComputedFieldInfo][pydantic.fields.ComputedFieldInfo] objects.

__pydantic_core_schema__: ClassVar[CoreSchema] = {'cls': <class 'standard_evaluator.problem.IntVariable'>, 'config': {'title': 'IntVariable'}, 'custom_init': False, 'metadata': {'pydantic_js_functions': [<bound method BaseModel.__get_pydantic_json_schema__ of <class 'standard_evaluator.problem.IntVariable'>>]}, 'ref': 'standard_evaluator.problem.IntVariable:94146690641792', 'root_model': False, 'schema': {'computed_fields': [], 'fields': {'bounds': {'metadata': {'pydantic_js_updates': {'description': 'Lower and upper bounds of the variable'}}, 'schema': {'default': [-9223372036854775808, 9223372036854775808], 'schema': {'function': {'function': <bound method IntVariable.validate_bounds of <class 'standard_evaluator.problem.IntVariable'>>, 'type': 'no-info'}, 'schema': {'schema': {'items_schema': [{'type': 'int'}, {'type': 'int'}], 'type': 'tuple'}, 'type': 'nullable'}, 'type': 'function-after'}, 'type': 'default'}, 'type': 'model-field'}, 'class_type': {'metadata': {'pydantic_js_updates': {'description': 'Class marker'}}, 'schema': {'default': 'int', 'schema': {'expected': ['int'], 'type': 'literal'}, 'type': 'default'}, 'type': 'model-field'}, 'default': {'metadata': {'pydantic_js_updates': {'description': 'Default value for this variable'}}, 'schema': {'default': None, 'schema': {'schema': {'type': 'int'}, 'type': 'nullable'}, 'type': 'default'}, 'type': 'model-field'}, 'description': {'metadata': {'pydantic_js_updates': {'description': 'A description of the variable.'}}, 'schema': {'default': '', 'schema': {'schema': {'type': 'str'}, 'type': 'nullable'}, 'type': 'default'}, 'type': 'model-field'}, 'name': {'metadata': {'pydantic_js_updates': {'description': 'Name of the variable.'}}, 'schema': {'function': {'function': <bound method FloatVariable.check_name of <class 'standard_evaluator.problem.IntVariable'>>, 'type': 'no-info'}, 'schema': {'type': 'str'}, 'type': 'function-after'}, 'type': 'model-field'}, 'options': {'metadata': {'pydantic_js_updates': {'description': 'Options for the variable.'}}, 'schema': {'default_factory': <class 'dict'>, 'default_factory_takes_data': False, 'schema': {'keys_schema': {'type': 'any'}, 'type': 'dict', 'values_schema': {'type': 'any'}}, 'type': 'default'}, 'type': 'model-field'}, 'scale': {'metadata': {'pydantic_js_updates': {'description': 'Scale value to be used for this variable. Cannot be zero.'}}, 'schema': {'default': 1, 'schema': {'function': {'function': <bound method FloatVariable.validate_scale of <class 'standard_evaluator.problem.IntVariable'>>, 'type': 'no-info'}, 'schema': {'schema': {'type': 'int'}, 'type': 'nullable'}, 'type': 'function-after'}, 'type': 'default'}, 'type': 'model-field'}, 'shift': {'metadata': {'pydantic_js_updates': {'description': 'Shift value to be used for this variable.'}}, 'schema': {'default': 0, 'schema': {'schema': {'type': 'int'}, 'type': 'nullable'}, 'type': 'default'}, 'type': 'model-field'}, 'units': {'metadata': {}, 'schema': {'default': None, 'schema': {'schema': {'type': 'str'}, 'type': 'nullable'}, 'type': 'default'}, 'type': 'model-field'}}, 'model_name': 'IntVariable', 'type': 'model-fields'}, 'type': 'model'}

The core schema of the model.

__pydantic_custom_init__: ClassVar[bool] = False

Whether the model has a custom __init__ method.

__pydantic_decorators__: ClassVar[_decorators.DecoratorInfos] = DecoratorInfos(validators={}, field_validators={'validate_bounds': Decorator(cls_ref='standard_evaluator.problem.IntVariable:94146690641792', cls_var_name='validate_bounds', func=<bound method IntVariable.validate_bounds of <class 'standard_evaluator.problem.IntVariable'>>, shim=None, info=FieldValidatorDecoratorInfo(fields=('bounds',), mode='after', check_fields=None, json_schema_input_type=PydanticUndefined)), 'validate_scale': Decorator(cls_ref='standard_evaluator.problem.IntVariable:94146690641792', cls_var_name='validate_scale', func=<bound method FloatVariable.validate_scale of <class 'standard_evaluator.problem.IntVariable'>>, shim=None, info=FieldValidatorDecoratorInfo(fields=('scale',), mode='after', check_fields=None, json_schema_input_type=PydanticUndefined)), 'check_name': Decorator(cls_ref='standard_evaluator.problem.IntVariable:94146690641792', cls_var_name='check_name', func=<bound method FloatVariable.check_name of <class 'standard_evaluator.problem.IntVariable'>>, shim=None, info=FieldValidatorDecoratorInfo(fields=('name',), mode='after', check_fields=None, json_schema_input_type=PydanticUndefined))}, root_validators={}, field_serializers={}, model_serializers={}, model_validators={}, computed_fields={})

Metadata containing the decorators defined on the model. This replaces Model.__validators__ and Model.__root_validators__ from Pydantic V1.

__pydantic_extra_info__: ClassVar[PydanticExtraInfo | None] = None

A wrapper around the __pydantic_extra__ annotation, if explicitly annotated on a model.

This is a private attribute, not meant to be used outside Pydantic.

__pydantic_fields__: ClassVar[Dict[str, FieldInfo]] = {'bounds': FieldInfo(annotation=Union[Tuple[int, int], NoneType], required=False, default=[-9223372036854775808, 9223372036854775808], description='Lower and upper bounds of the variable'), 'class_type': FieldInfo(annotation=Literal['int'], required=False, default='int', description='Class marker'), 'default': FieldInfo(annotation=Union[int, NoneType], required=False, default=None, description='Default value for this variable'), 'description': FieldInfo(annotation=Union[str, NoneType], required=False, default='', description='A description of the variable.'), 'name': FieldInfo(annotation=str, required=True, description='Name of the variable.'), 'options': FieldInfo(annotation=Dict, required=False, default_factory=dict, description='Options for the variable.'), 'scale': FieldInfo(annotation=Union[int, NoneType], required=False, default=1, description='Scale value to be used for this variable. Cannot be zero.'), 'shift': FieldInfo(annotation=Union[int, NoneType], required=False, default=0, description='Shift value to be used for this variable.'), 'units': FieldInfo(annotation=Union[str, NoneType], required=False, default=None)}

A dictionary of field names and their corresponding [FieldInfo][pydantic.fields.FieldInfo] objects. This replaces Model.__fields__ from Pydantic V1.

__pydantic_generic_metadata__: ClassVar[_generics.PydanticGenericMetadata] = {'args': (), 'origin': None, 'parameters': ()}

A dictionary containing metadata about generic Pydantic models.

The origin and args items map to the [__origin__][genericalias.__origin__] and [__args__][genericalias.__args__] attributes of [generic aliases][types-genericalias], and the parameter item maps to the __parameter__ attribute of generic classes.

__pydantic_parent_namespace__: ClassVar[Dict[str, Any] | None] = None

Parent namespace of the model, used for automatic rebuilding of models.

__pydantic_post_init__: ClassVar[None | Literal['model_post_init']] = None

The name of the post-init method for the model, if defined.

__pydantic_serializer__: ClassVar[SchemaSerializer] = SchemaSerializer(serializer=PolymorphismTrampoline(     PolymorphismTrampoline {         class: Py(             0x000055a03c0d6f80,         ),         serializer: PolymorphismTrampoline(             PolymorphismTrampoline {                 class: Py(                     0x000055a03c0d6f80,                 ),                 serializer: Model(                     ModelSerializer {                         class: Py(                             0x000055a03c0d6f80,                         ),                         serializer: Fields(                             GeneralFieldsSerializer {                                 fields: {                                     "units": SerField {                                         key: "units",                                         alias: None,                                         serializer: Some(                                             WithDefault(                                                 WithDefaultSerializer {                                                     default: Default(                                                         Py(                                                             0x00007f82f7c468c0,                                                         ),                                                     ),                                                     serializer: Nullable(                                                         NullableSerializer {                                                             serializer: Str(                                                                 StrSerializer,                                                             ),                                                         },                                                     ),                                                 },                                             ),                                         ),                                         required: true,                                         serialize_by_alias: None,                                         serialization_exclude_if: None,                                     },                                     "options": SerField {                                         key: "options",                                         alias: None,                                         serializer: Some(                                             WithDefault(                                                 WithDefaultSerializer {                                                     default: DefaultFactory(                                                         Py(                                                             0x00007f82f7c43b80,                                                         ),                                                         false,                                                     ),                                                     serializer: Dict(                                                         DictSerializer {                                                             key_serializer: Any(                                                                 AnySerializer,                                                             ),                                                             value_serializer: Any(                                                                 AnySerializer,                                                             ),                                                             filter: SchemaFilter {                                                                 include: None,                                                                 exclude: None,                                                             },                                                             name: "dict[any, any]",                                                         },                                                     ),                                                 },                                             ),                                         ),                                         required: true,                                         serialize_by_alias: None,                                         serialization_exclude_if: None,                                     },                                     "bounds": SerField {                                         key: "bounds",                                         alias: None,                                         serializer: Some(                                             WithDefault(                                                 WithDefaultSerializer {                                                     default: Default(                                                         Py(                                                             0x00007f82e4527700,                                                         ),                                                     ),                                                     serializer: Nullable(                                                         NullableSerializer {                                                             serializer: Tuple(                                                                 TupleSerializer {                                                                     serializers: [                                                                         Int(                                                                             IntSerializer,                                                                         ),                                                                         Int(                                                                             IntSerializer,                                                                         ),                                                                     ],                                                                     variadic_item_index: None,                                                                     filter: SchemaFilter {                                                                         include: None,                                                                         exclude: None,                                                                     },                                                                     name: "tuple[int, int]",                                                                 },                                                             ),                                                         },                                                     ),                                                 },                                             ),                                         ),                                         required: true,                                         serialize_by_alias: None,                                         serialization_exclude_if: None,                                     },                                     "name": SerField {                                         key: "name",                                         alias: None,                                         serializer: Some(                                             Str(                                                 StrSerializer,                                             ),                                         ),                                         required: true,                                         serialize_by_alias: None,                                         serialization_exclude_if: None,                                     },                                     "class_type": SerField {                                         key: "class_type",                                         alias: None,                                         serializer: Some(                                             WithDefault(                                                 WithDefaultSerializer {                                                     default: Default(                                                         Py(                                                             0x00007f82f7d1c760,                                                         ),                                                     ),                                                     serializer: Literal(                                                         LiteralSerializer {                                                             expected_int: {},                                                             expected_str: {                                                                 "int",                                                             },                                                             expected_py: None,                                                             name: "literal['int']",                                                         },                                                     ),                                                 },                                             ),                                         ),                                         required: true,                                         serialize_by_alias: None,                                         serialization_exclude_if: None,                                     },                                     "default": SerField {                                         key: "default",                                         alias: None,                                         serializer: Some(                                             WithDefault(                                                 WithDefaultSerializer {                                                     default: Default(                                                         Py(                                                             0x00007f82f7c468c0,                                                         ),                                                     ),                                                     serializer: Nullable(                                                         NullableSerializer {                                                             serializer: Int(                                                                 IntSerializer,                                                             ),                                                         },                                                     ),                                                 },                                             ),                                         ),                                         required: true,                                         serialize_by_alias: None,                                         serialization_exclude_if: None,                                     },                                     "scale": SerField {                                         key: "scale",                                         alias: None,                                         serializer: Some(                                             WithDefault(                                                 WithDefaultSerializer {                                                     default: Default(                                                         Py(                                                             0x00007f82f7d3a2a8,                                                         ),                                                     ),                                                     serializer: Nullable(                                                         NullableSerializer {                                                             serializer: Int(                                                                 IntSerializer,                                                             ),                                                         },                                                     ),                                                 },                                             ),                                         ),                                         required: true,                                         serialize_by_alias: None,                                         serialization_exclude_if: None,                                     },                                     "description": SerField {                                         key: "description",                                         alias: None,                                         serializer: Some(                                             WithDefault(                                                 WithDefaultSerializer {                                                     default: Default(                                                         Py(                                                             0x00007f82f7d3f660,                                                         ),                                                     ),                                                     serializer: Nullable(                                                         NullableSerializer {                                                             serializer: Str(                                                                 StrSerializer,                                                             ),                                                         },                                                     ),                                                 },                                             ),                                         ),                                         required: true,                                         serialize_by_alias: None,                                         serialization_exclude_if: None,                                     },                                     "shift": SerField {                                         key: "shift",                                         alias: None,                                         serializer: Some(                                             WithDefault(                                                 WithDefaultSerializer {                                                     default: Default(                                                         Py(                                                             0x00007f82f7d3a288,                                                         ),                                                     ),                                                     serializer: Nullable(                                                         NullableSerializer {                                                             serializer: Int(                                                                 IntSerializer,                                                             ),                                                         },                                                     ),                                                 },                                             ),                                         ),                                         required: true,                                         serialize_by_alias: None,                                         serialization_exclude_if: None,                                     },                                 },                                 computed_fields: Some(                                     ComputedFields(                                         [],                                     ),                                 ),                                 mode: SimpleDict,                                 extra_serializer: None,                                 filter: SchemaFilter {                                     include: None,                                     exclude: None,                                 },                                 required_fields: 9,                             },                         ),                         has_extra: false,                         root_model: false,                         name: "IntVariable",                     },                 ),                 enabled_from_config: false,             },         ),         enabled_from_config: false,     }, ), definitions=[])

The pydantic-core SchemaSerializer used to dump instances of the model.

__pydantic_setattr_handlers__: ClassVar[Dict[str, Callable[[BaseModel, str, Any], None]]] = {}

__setattr__ handlers. Memoizing the handlers leads to a dramatic performance improvement in __setattr__

__pydantic_validator__: ClassVar[SchemaValidator | PluggableSchemaValidator] = SchemaValidator(title="IntVariable", validator=Model(     ModelValidator {         revalidate: Never,         validator: ModelFields(             ModelFieldsValidator {                 fields: [                     Field {                         name: "name",                         lookup_path_collection: LookupPathCollection {                             by_name: LookupPath {                                 first_item: PathItemString(                                     "name",                                 ),                                 rest: [],                             },                             by_alias: [],                         },                         validator: FunctionAfter(                             FunctionAfterValidator {                                 validator: Str(                                     StrValidator {                                         strict: false,                                         coerce_numbers_to_str: false,                                     },                                 ),                                 func: Py(                                     0x00007f82d62e04c0,                                 ),                                 config: Py(                                     0x00007f82d62e0f80,                                 ),                                 name: "function-after[check_name(), str]",                                 field_name: None,                                 info_arg: false,                             },                         ),                         frozen: false,                     },                     Field {                         name: "default",                         lookup_path_collection: LookupPathCollection {                             by_name: LookupPath {                                 first_item: PathItemString(                                     "default",                                 ),                                 rest: [],                             },                             by_alias: [],                         },                         validator: WithDefault(                             WithDefaultValidator {                                 default: Default(                                     Py(                                         0x00007f82f7c468c0,                                     ),                                 ),                                 on_error: Raise,                                 validator: Nullable(                                     NullableValidator {                                         validator: Int(                                             IntValidator {                                                 strict: false,                                             },                                         ),                                         name: "nullable[int]",                                     },                                 ),                                 validate_default: false,                                 copy_default: false,                                 name: "default[nullable[int]]",                                 undefined: Py(                                     0x00007f82f5afadb0,                                 ),                             },                         ),                         frozen: false,                     },                     Field {                         name: "bounds",                         lookup_path_collection: LookupPathCollection {                             by_name: LookupPath {                                 first_item: PathItemString(                                     "bounds",                                 ),                                 rest: [],                             },                             by_alias: [],                         },                         validator: WithDefault(                             WithDefaultValidator {                                 default: Default(                                     Py(                                         0x00007f82e4527700,                                     ),                                 ),                                 on_error: Raise,                                 validator: FunctionAfter(                                     FunctionAfterValidator {                                         validator: Nullable(                                             NullableValidator {                                                 validator: Tuple(                                                     TupleValidator {                                                         strict: false,                                                         validators: [                                                             Int(                                                                 IntValidator {                                                                     strict: false,                                                                 },                                                             ),                                                             Int(                                                                 IntValidator {                                                                     strict: false,                                                                 },                                                             ),                                                         ],                                                         variadic_item_index: None,                                                         min_length: None,                                                         max_length: None,                                                         name: "tuple[int, int]",                                                         fail_fast: false,                                                     },                                                 ),                                                 name: "nullable[tuple[int, int]]",                                             },                                         ),                                         func: Py(                                             0x00007f82d62e06c0,                                         ),                                         config: Py(                                             0x00007f82d62e0f80,                                         ),                                         name: "function-after[validate_bounds(), nullable[tuple[int, int]]]",                                         field_name: None,                                         info_arg: false,                                     },                                 ),                                 validate_default: false,                                 copy_default: true,                                 name: "default[function-after[validate_bounds(), nullable[tuple[int, int]]]]",                                 undefined: Py(                                     0x00007f82f5afadb0,                                 ),                             },                         ),                         frozen: false,                     },                     Field {                         name: "shift",                         lookup_path_collection: LookupPathCollection {                             by_name: LookupPath {                                 first_item: PathItemString(                                     "shift",                                 ),                                 rest: [],                             },                             by_alias: [],                         },                         validator: WithDefault(                             WithDefaultValidator {                                 default: Default(                                     Py(                                         0x00007f82f7d3a288,                                     ),                                 ),                                 on_error: Raise,                                 validator: Nullable(                                     NullableValidator {                                         validator: Int(                                             IntValidator {                                                 strict: false,                                             },                                         ),                                         name: "nullable[int]",                                     },                                 ),                                 validate_default: false,                                 copy_default: false,                                 name: "default[nullable[int]]",                                 undefined: Py(                                     0x00007f82f5afadb0,                                 ),                             },                         ),                         frozen: false,                     },                     Field {                         name: "scale",                         lookup_path_collection: LookupPathCollection {                             by_name: LookupPath {                                 first_item: PathItemString(                                     "scale",                                 ),                                 rest: [],                             },                             by_alias: [],                         },                         validator: WithDefault(                             WithDefaultValidator {                                 default: Default(                                     Py(                                         0x00007f82f7d3a2a8,                                     ),                                 ),                                 on_error: Raise,                                 validator: FunctionAfter(                                     FunctionAfterValidator {                                         validator: Nullable(                                             NullableValidator {                                                 validator: Int(                                                     IntValidator {                                                         strict: false,                                                     },                                                 ),                                                 name: "nullable[int]",                                             },                                         ),                                         func: Py(                                             0x00007f82d62e0440,                                         ),                                         config: Py(                                             0x00007f82d62e0f80,                                         ),                                         name: "function-after[validate_scale(), nullable[int]]",                                         field_name: None,                                         info_arg: false,                                     },                                 ),                                 validate_default: false,                                 copy_default: false,                                 name: "default[function-after[validate_scale(), nullable[int]]]",                                 undefined: Py(                                     0x00007f82f5afadb0,                                 ),                             },                         ),                         frozen: false,                     },                     Field {                         name: "units",                         lookup_path_collection: LookupPathCollection {                             by_name: LookupPath {                                 first_item: PathItemString(                                     "units",                                 ),                                 rest: [],                             },                             by_alias: [],                         },                         validator: WithDefault(                             WithDefaultValidator {                                 default: Default(                                     Py(                                         0x00007f82f7c468c0,                                     ),                                 ),                                 on_error: Raise,                                 validator: Nullable(                                     NullableValidator {                                         validator: Str(                                             StrValidator {                                                 strict: false,                                                 coerce_numbers_to_str: false,                                             },                                         ),                                         name: "nullable[str]",                                     },                                 ),                                 validate_default: false,                                 copy_default: false,                                 name: "default[nullable[str]]",                                 undefined: Py(                                     0x00007f82f5afadb0,                                 ),                             },                         ),                         frozen: false,                     },                     Field {                         name: "description",                         lookup_path_collection: LookupPathCollection {                             by_name: LookupPath {                                 first_item: PathItemString(                                     "description",                                 ),                                 rest: [],                             },                             by_alias: [],                         },                         validator: WithDefault(                             WithDefaultValidator {                                 default: Default(                                     Py(                                         0x00007f82f7d3f660,                                     ),                                 ),                                 on_error: Raise,                                 validator: Nullable(                                     NullableValidator {                                         validator: Str(                                             StrValidator {                                                 strict: false,                                                 coerce_numbers_to_str: false,                                             },                                         ),                                         name: "nullable[str]",                                     },                                 ),                                 validate_default: false,                                 copy_default: false,                                 name: "default[nullable[str]]",                                 undefined: Py(                                     0x00007f82f5afadb0,                                 ),                             },                         ),                         frozen: false,                     },                     Field {                         name: "options",                         lookup_path_collection: LookupPathCollection {                             by_name: LookupPath {                                 first_item: PathItemString(                                     "options",                                 ),                                 rest: [],                             },                             by_alias: [],                         },                         validator: WithDefault(                             WithDefaultValidator {                                 default: DefaultFactory(                                     Py(                                         0x00007f82f7c43b80,                                     ),                                     false,                                 ),                                 on_error: Raise,                                 validator: Dict(                                     DictValidator {                                         strict: false,                                         key_validator: Any(                                             AnyValidator,                                         ),                                         value_validator: Any(                                             AnyValidator,                                         ),                                         min_length: None,                                         max_length: None,                                         fail_fast: false,                                         name: "dict[any,any]",                                     },                                 ),                                 validate_default: false,                                 copy_default: false,                                 name: "default[dict[any,any]]",                                 undefined: Py(                                     0x00007f82f5afadb0,                                 ),                             },                         ),                         frozen: false,                     },                     Field {                         name: "class_type",                         lookup_path_collection: LookupPathCollection {                             by_name: LookupPath {                                 first_item: PathItemString(                                     "class_type",                                 ),                                 rest: [],                             },                             by_alias: [],                         },                         validator: WithDefault(                             WithDefaultValidator {                                 default: Default(                                     Py(                                         0x00007f82f7d1c760,                                     ),                                 ),                                 on_error: Raise,                                 validator: Literal(                                     LiteralValidator {                                         lookup: LiteralLookup {                                             expected_bool: None,                                             expected_int: None,                                             expected_str: Some(                                                 {                                                     "int": 0,                                                 },                                             ),                                             expected_py_dict: None,                                             expected_py_values: None,                                             expected_py_primitives: Some(                                                 Py(                                                     0x00007f82d62e0ec0,                                                 ),                                             ),                                             values: [                                                 Py(                                                     0x00007f82f7d1c760,                                                 ),                                             ],                                         },                                         expected_repr: "'int'",                                         name: "literal['int']",                                     },                                 ),                                 validate_default: false,                                 copy_default: false,                                 name: "default[literal['int']]",                                 undefined: Py(                                     0x00007f82f5afadb0,                                 ),                             },                         ),                         frozen: false,                     },                 ],                 model_name: "IntVariable",                 extra_behavior: Ignore,                 extras_validator: None,                 extras_keys_validator: None,                 strict: false,                 from_attributes: false,                 loc_by_alias: true,                 lookup: LookupTree {                     inner: {                         PathItemString(                             "default",                         ): LookupTreeNode {                             fields: [                                 LookupFieldInfo {                                     field_index: 1,                                     lookup_priority: LookupFieldPriority {                                         lookup_type: Both,                                         alias_index: 0,                                     },                                 },                             ],                             map: {},                             list: {},                         },                         PathItemString(                             "bounds",                         ): LookupTreeNode {                             fields: [                                 LookupFieldInfo {                                     field_index: 2,                                     lookup_priority: LookupFieldPriority {                                         lookup_type: Both,                                         alias_index: 0,                                     },                                 },                             ],                             map: {},                             list: {},                         },                         PathItemString(                             "shift",                         ): LookupTreeNode {                             fields: [                                 LookupFieldInfo {                                     field_index: 3,                                     lookup_priority: LookupFieldPriority {                                         lookup_type: Both,                                         alias_index: 0,                                     },                                 },                             ],                             map: {},                             list: {},                         },                         PathItemString(                             "name",                         ): LookupTreeNode {                             fields: [                                 LookupFieldInfo {                                     field_index: 0,                                     lookup_priority: LookupFieldPriority {                                         lookup_type: Both,                                         alias_index: 0,                                     },                                 },                             ],                             map: {},                             list: {},                         },                         PathItemString(                             "description",                         ): LookupTreeNode {                             fields: [                                 LookupFieldInfo {                                     field_index: 6,                                     lookup_priority: LookupFieldPriority {                                         lookup_type: Both,                                         alias_index: 0,                                     },                                 },                             ],                             map: {},                             list: {},                         },                         PathItemString(                             "class_type",                         ): LookupTreeNode {                             fields: [                                 LookupFieldInfo {                                     field_index: 8,                                     lookup_priority: LookupFieldPriority {                                         lookup_type: Both,                                         alias_index: 0,                                     },                                 },                             ],                             map: {},                             list: {},                         },                         PathItemString(                             "units",                         ): LookupTreeNode {                             fields: [                                 LookupFieldInfo {                                     field_index: 5,                                     lookup_priority: LookupFieldPriority {                                         lookup_type: Both,                                         alias_index: 0,                                     },                                 },                             ],                             map: {},                             list: {},                         },                         PathItemString(                             "options",                         ): LookupTreeNode {                             fields: [                                 LookupFieldInfo {                                     field_index: 7,                                     lookup_priority: LookupFieldPriority {                                         lookup_type: Both,                                         alias_index: 0,                                     },                                 },                             ],                             map: {},                             list: {},                         },                         PathItemString(                             "scale",                         ): LookupTreeNode {                             fields: [                                 LookupFieldInfo {                                     field_index: 4,                                     lookup_priority: LookupFieldPriority {                                         lookup_type: Both,                                         alias_index: 0,                                     },                                 },                             ],                             map: {},                             list: {},                         },                     },                 },                 validate_by_alias: None,                 validate_by_name: None,             },         ),         class: Py(             0x000055a03c0d6f80,         ),         generic_origin: None,         post_init: None,         frozen: false,         custom_init: false,         root_model: false,         undefined: Py(             0x00007f82f5afadb0,         ),         name: "IntVariable",     }, ), definitions=[], cache_strings=True)

The pydantic-core SchemaValidator used to validate instances of the model.

__signature__: ClassVar[Signature] = <Signature (*, name: str, default: Optional[int] = None, bounds: Optional[Tuple[int, int]] = [-9223372036854775808, 9223372036854775808], shift: Optional[int] = 0, scale: Optional[int] = 1, units: Optional[str] = None, description: Optional[str] = '', options: Dict = <factory>, class_type: Literal['int'] = 'int') -> None>

The synthesized __init__ [Signature][inspect.Signature] of the model.

model_config: ClassVar[ConfigDict] = {'validate_assignment': True}

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

class ArrayVariable

Bases: FloatVariable

Class defining array variables. The underlying data type are NumPy float64 arrays.

Raises:
  • ValueError – Lower bounds greater than upper bounds for at least one element.

  • ValueError – Neither shape nor default are set.

  • ValueError – Scale for at least one element is set to 0.

  • ValueError – Inconsistent shapes for elements in the class.

Methods:

calculate_default([overwrite])

Calculate the default value based on the bounds for array variables.

validate_bounds(var)

Validate the bounds of the array variable.

validate_scale(scale)

Validate the scale of the array variable.

check_shape()

Check and validate the shape of the array variable.

serialize_bounds(bounds)

Serialize the bounds for storage.

serialize_shift(shift)

Serialize the shift values for storage.

serialize_scale(scale)

Serialize the scale values for storage.

Attributes:

__pydantic_fields_set__

The names of fields explicitly set during instantiation.

__pydantic_extra__

A dictionary containing extra values, if [extra][pydantic.config.ConfigDict.extra] is set to 'allow'.

__pydantic_private__

Values of private attributes set on the model instance.

__class_vars__

The names of the class variables defined on the model.

__private_attributes__

Metadata about the private attributes of the model.

__pydantic_complete__

Whether model building is completed, or if there are still undefined fields.

__pydantic_computed_fields__

A dictionary of computed field names and their corresponding [ComputedFieldInfo][pydantic.fields.ComputedFieldInfo] objects.

__pydantic_core_schema__

The core schema of the model.

__pydantic_custom_init__

Whether the model has a custom __init__ method.

__pydantic_decorators__

Metadata containing the decorators defined on the model.

__pydantic_extra_info__

A wrapper around the __pydantic_extra__ annotation, if explicitly annotated on a model.

__pydantic_fields__

A dictionary of field names and their corresponding [FieldInfo][pydantic.fields.FieldInfo] objects.

__pydantic_generic_metadata__

A dictionary containing metadata about generic Pydantic models.

__pydantic_parent_namespace__

Parent namespace of the model, used for automatic rebuilding of models.

__pydantic_post_init__

The name of the post-init method for the model, if defined.

__pydantic_serializer__

The pydantic-core SchemaSerializer used to dump instances of the model.

__pydantic_setattr_handlers__

__setattr__ handlers.

__pydantic_validator__

The pydantic-core SchemaValidator used to validate instances of the model.

__signature__

The synthesized __init__ [Signature][inspect.Signature] of the model.

model_config

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

calculate_default(overwrite=True)

Calculate the default value based on the bounds for array variables.

If the overwrite flag is not true and default is set, the method exits. The default value is calculated based on the bounds of the variable.

Parameters:

overwrite (bool) – Flag indicating whether to overwrite the default value if it is already set.

Return type:

None

classmethod validate_bounds(var)

Validate the bounds of the array variable.

If the bounds are not set, they default to (None, None). Raises a ValueError if any lower bound is greater than the corresponding upper bound.

Parameters:

var (Tuple[Union[float, int, NDArray[Shape[”,…”], np.float64]], Union[float, int, NDArray[Shape[”,…”], np.float64]]]) – The bounds to validate.

Returns:

The validated bounds.

Return type:

Tuple[Union[float, int, NDArray[Shape[”,…”], np.float64]], Union[float, int, NDArray[Shape[”,…”], np.float64]]]

Raises:

ValueError – If any lower bound is greater than the corresponding upper bound.

classmethod validate_scale(scale)

Validate the scale of the array variable.

This method does not perform any checks as validation occurs in the check_shape method.

Parameters:

scale (Union[float, int, NDArray[Shape[”*,…”], np.float64]]) – The scale to validate.

Returns:

The validated scale.

Return type:

Union[float, int, NDArray[Shape[”*,…”], np.float64]]

check_shape()

Check and validate the shape of the array variable.

This method ensures that the shape is defined and consistent across default, shift, scale, and bounds.

Returns:

The instance of the class after validation.

Return type:

ArrayVariable

Raises:

ValueError – If the shape is not set and neither default nor value is defined. If any of the shapes for default, shift, scale, or bounds are inconsistent.

serialize_bounds(bounds)

Serialize the bounds for storage.

If the bounds are set to (-inf, inf), they are not stored. Otherwise, the bounds are serialized to a more compact form if possible.

Parameters:

bounds (Tuple[NDArray[Shape[”,…”], np.float64], NDArray[Shape[”,…”], np.float64]]) – The bounds to serialize.

Returns:

The serialized bounds, or None if they are set to (-inf, inf).

Return type:

Optional[Tuple[Union[float, int], Union[float, int]]]

serialize_shift(shift)

Serialize the shift values for storage.

If the shift is set to all zeros, it is not stored. Otherwise, the shift values are returned.

Parameters:

shift (NDArray[Shape[”*,…”], np.float64]) – The shift values to serialize.

Returns:

The serialized shift values, or None if they are all zeros.

Return type:

Optional[NDArray[Shape[”*,…”], np.float64]]

serialize_scale(scale)

Serialize the scale values for storage.

If the scale is set to all ones, it is not stored. Otherwise, the scale values are returned.

Parameters:

scale (NDArray[Shape[”*,…”], np.float64]) – The scale values to serialize.

Returns:

The serialized scale values, or None if they are all ones.

Return type:

Optional[NDArray[Shape[”*,…”], np.float64]]

__pydantic_fields_set__: set[str]

The names of fields explicitly set during instantiation.

__pydantic_extra__: Dict[str, Any] | None

A dictionary containing extra values, if [extra][pydantic.config.ConfigDict.extra] is set to ‘allow’.

__pydantic_private__: Dict[str, Any] | None

Values of private attributes set on the model instance.

__class_vars__: ClassVar[set[str]] = {}

The names of the class variables defined on the model.

__private_attributes__: ClassVar[Dict[str, ModelPrivateAttr]] = {}

Metadata about the private attributes of the model.

__pydantic_complete__: ClassVar[bool] = True

Whether model building is completed, or if there are still undefined fields.

__pydantic_computed_fields__: ClassVar[Dict[str, ComputedFieldInfo]] = {}

A dictionary of computed field names and their corresponding [ComputedFieldInfo][pydantic.fields.ComputedFieldInfo] objects.

__pydantic_core_schema__: ClassVar[CoreSchema] = {'function': {'function': <function ArrayVariable.check_shape>, 'type': 'no-info'}, 'metadata': {'pydantic_js_functions': [<bound method BaseModel.__get_pydantic_json_schema__ of <class 'standard_evaluator.problem.ArrayVariable'>>]}, 'ref': 'standard_evaluator.problem.ArrayVariable:94146690729520', 'schema': {'cls': <class 'standard_evaluator.problem.ArrayVariable'>, 'config': {'title': 'ArrayVariable'}, 'custom_init': False, 'root_model': False, 'schema': {'computed_fields': [], 'fields': {'bounds': {'metadata': {'pydantic_js_updates': {'description': 'Lower and upper bounds of the arrays'}}, 'schema': {'default': (None, None), 'schema': {'function': {'function': <bound method ArrayVariable.validate_bounds of <class 'standard_evaluator.problem.ArrayVariable'>>, 'type': 'no-info'}, 'schema': {'schema': {'items_schema': [{'choices': [{'type': 'float'}, {'type': 'int'}, {'function': {'function': <function get_validate_interface.<locals>.validate_interface>, 'type': 'with-info'}, 'metadata': {'definitions': [{'choices': [{'items_schema': {'schema_ref': 'any-shape-array-676be5e2aeaa3799', 'type': 'definition-ref'}, 'type': 'list'}, {'ge': -1.7976931348623157e+308, 'le': 1.7976931348623157e+308, 'type': 'float'}], 'ref': 'any-shape-array-676be5e2aeaa3799', 'type': 'union'}], 'pydantic_js_functions': [<bound method NDArrayMeta.__get_pydantic_json_schema__ of <class 'numpydantic.ndarray.NDArray'>>], 'schema': {'items_schema': {'schema_ref': 'any-shape-array-676be5e2aeaa3799', 'type': 'definition-ref'}, 'type': 'list'}, 'type': 'definitions'}, 'serialization': {'function': <function jsonize_array>, 'info_arg': True, 'type': 'function-plain', 'when_used': 'json'}, 'type': 'function-plain'}], 'type': 'union'}, {'choices': [{'type': 'float'}, {'type': 'int'}, {'function': {'function': <function get_validate_interface.<locals>.validate_interface>, 'type': 'with-info'}, 'metadata': {'definitions': [{'choices': [{'items_schema': {'schema_ref': 'any-shape-array-676be5e2aeaa3799', 'type': 'definition-ref'}, 'type': 'list'}, {'ge': -1.7976931348623157e+308, 'le': 1.7976931348623157e+308, 'type': 'float'}], 'ref': 'any-shape-array-676be5e2aeaa3799', 'type': 'union'}], 'pydantic_js_functions': [<bound method NDArrayMeta.__get_pydantic_json_schema__ of <class 'numpydantic.ndarray.NDArray'>>], 'schema': {'items_schema': {'schema_ref': 'any-shape-array-676be5e2aeaa3799', 'type': 'definition-ref'}, 'type': 'list'}, 'type': 'definitions'}, 'serialization': {'function': <function jsonize_array>, 'info_arg': True, 'type': 'function-plain', 'when_used': 'json'}, 'type': 'function-plain'}], 'type': 'union'}], 'type': 'tuple'}, 'type': 'nullable'}, 'type': 'function-after'}, 'serialization': {'function': <function ArrayVariable.serialize_bounds>, 'info_arg': False, 'is_field_serializer': True, 'type': 'function-plain'}, 'type': 'default'}, 'type': 'model-field'}, 'class_type': {'metadata': {}, 'schema': {'default': 'floatarray', 'schema': {'expected': ['floatarray'], 'type': 'literal'}, 'type': 'default'}, 'type': 'model-field'}, 'default': {'metadata': {'pydantic_js_updates': {'description': 'NumPy array with the default values to be used for the array variable'}}, 'schema': {'default': None, 'schema': {'schema': {'function': {'function': <function get_validate_interface.<locals>.validate_interface>, 'type': 'with-info'}, 'metadata': {'definitions': [{'choices': [{'items_schema': {'schema_ref': 'any-shape-array-676be5e2aeaa3799', 'type': 'definition-ref'}, 'type': 'list'}, {'ge': -1.7976931348623157e+308, 'le': 1.7976931348623157e+308, 'type': 'float'}], 'ref': 'any-shape-array-676be5e2aeaa3799', 'type': 'union'}], 'pydantic_js_functions': [<bound method NDArrayMeta.__get_pydantic_json_schema__ of <class 'numpydantic.ndarray.NDArray'>>], 'schema': {'items_schema': {'schema_ref': 'any-shape-array-676be5e2aeaa3799', 'type': 'definition-ref'}, 'type': 'list'}, 'type': 'definitions'}, 'serialization': {'function': <function jsonize_array>, 'info_arg': True, 'type': 'function-plain', 'when_used': 'json'}, 'type': 'function-plain'}, 'type': 'nullable'}, 'type': 'default'}, 'type': 'model-field'}, 'description': {'metadata': {'pydantic_js_updates': {'description': 'A description of the variable.'}}, 'schema': {'default': '', 'schema': {'schema': {'type': 'str'}, 'type': 'nullable'}, 'type': 'default'}, 'type': 'model-field'}, 'name': {'metadata': {'pydantic_js_updates': {'description': 'Name of the variable.'}}, 'schema': {'function': {'function': <bound method FloatVariable.check_name of <class 'standard_evaluator.problem.ArrayVariable'>>, 'type': 'no-info'}, 'schema': {'type': 'str'}, 'type': 'function-after'}, 'type': 'model-field'}, 'options': {'metadata': {'pydantic_js_updates': {'description': 'Options for the variable.'}}, 'schema': {'default_factory': <class 'dict'>, 'default_factory_takes_data': False, 'schema': {'keys_schema': {'type': 'any'}, 'type': 'dict', 'values_schema': {'type': 'any'}}, 'type': 'default'}, 'type': 'model-field'}, 'scale': {'metadata': {'pydantic_js_updates': {'description': 'NumPy array with the scale values to be used for the array variable. Cannot be zero.'}}, 'schema': {'default': None, 'schema': {'function': {'function': <bound method ArrayVariable.validate_scale of <class 'standard_evaluator.problem.ArrayVariable'>>, 'type': 'no-info'}, 'schema': {'schema': {'choices': [{'type': 'float'}, {'type': 'int'}, {'function': {'function': <function get_validate_interface.<locals>.validate_interface>, 'type': 'with-info'}, 'metadata': {'definitions': [{'choices': [{'items_schema': {'schema_ref': 'any-shape-array-676be5e2aeaa3799', 'type': 'definition-ref'}, 'type': 'list'}, {'ge': -1.7976931348623157e+308, 'le': 1.7976931348623157e+308, 'type': 'float'}], 'ref': 'any-shape-array-676be5e2aeaa3799', 'type': 'union'}], 'pydantic_js_functions': [<bound method NDArrayMeta.__get_pydantic_json_schema__ of <class 'numpydantic.ndarray.NDArray'>>], 'schema': {'items_schema': {'schema_ref': 'any-shape-array-676be5e2aeaa3799', 'type': 'definition-ref'}, 'type': 'list'}, 'type': 'definitions'}, 'serialization': {'function': <function jsonize_array>, 'info_arg': True, 'type': 'function-plain', 'when_used': 'json'}, 'type': 'function-plain'}], 'type': 'union'}, 'type': 'nullable'}, 'type': 'function-after'}, 'serialization': {'function': <function ArrayVariable.serialize_scale>, 'info_arg': False, 'is_field_serializer': True, 'type': 'function-plain'}, 'type': 'default'}, 'type': 'model-field'}, 'shape': {'metadata': {'pydantic_js_updates': {'description': 'Shape of the arrays'}}, 'schema': {'default': None, 'schema': {'schema': {'items_schema': [{'type': 'int'}], 'type': 'tuple', 'variadic_item_index': 0}, 'type': 'nullable'}, 'type': 'default'}, 'type': 'model-field'}, 'shift': {'metadata': {'pydantic_js_updates': {'description': 'NumPy array with the shift values to be used for the array variable.'}}, 'schema': {'default': None, 'schema': {'schema': {'choices': [{'type': 'float'}, {'type': 'int'}, {'function': {'function': <function get_validate_interface.<locals>.validate_interface>, 'type': 'with-info'}, 'metadata': {'definitions': [{'choices': [{'items_schema': {'schema_ref': 'any-shape-array-676be5e2aeaa3799', 'type': 'definition-ref'}, 'type': 'list'}, {'ge': -1.7976931348623157e+308, 'le': 1.7976931348623157e+308, 'type': 'float'}], 'ref': 'any-shape-array-676be5e2aeaa3799', 'type': 'union'}], 'pydantic_js_functions': [<bound method NDArrayMeta.__get_pydantic_json_schema__ of <class 'numpydantic.ndarray.NDArray'>>], 'schema': {'items_schema': {'schema_ref': 'any-shape-array-676be5e2aeaa3799', 'type': 'definition-ref'}, 'type': 'list'}, 'type': 'definitions'}, 'serialization': {'function': <function jsonize_array>, 'info_arg': True, 'type': 'function-plain', 'when_used': 'json'}, 'type': 'function-plain'}], 'type': 'union'}, 'type': 'nullable'}, 'serialization': {'function': <function ArrayVariable.serialize_shift>, 'info_arg': False, 'is_field_serializer': True, 'type': 'function-plain'}, 'type': 'default'}, 'type': 'model-field'}, 'units': {'metadata': {}, 'schema': {'default': None, 'schema': {'schema': {'type': 'str'}, 'type': 'nullable'}, 'type': 'default'}, 'type': 'model-field'}}, 'model_name': 'ArrayVariable', 'type': 'model-fields'}, 'type': 'model'}, 'type': 'function-after'}

The core schema of the model.

__pydantic_custom_init__: ClassVar[bool] = False

Whether the model has a custom __init__ method.

__pydantic_decorators__: ClassVar[_decorators.DecoratorInfos] = DecoratorInfos(validators={}, field_validators={'validate_bounds': Decorator(cls_ref='standard_evaluator.problem.ArrayVariable:94146690729520', cls_var_name='validate_bounds', func=<bound method ArrayVariable.validate_bounds of <class 'standard_evaluator.problem.ArrayVariable'>>, shim=None, info=FieldValidatorDecoratorInfo(fields=('bounds',), mode='after', check_fields=None, json_schema_input_type=PydanticUndefined)), 'validate_scale': Decorator(cls_ref='standard_evaluator.problem.ArrayVariable:94146690729520', cls_var_name='validate_scale', func=<bound method ArrayVariable.validate_scale of <class 'standard_evaluator.problem.ArrayVariable'>>, shim=None, info=FieldValidatorDecoratorInfo(fields=('scale',), mode='after', check_fields=None, json_schema_input_type=PydanticUndefined)), 'check_name': Decorator(cls_ref='standard_evaluator.problem.ArrayVariable:94146690729520', cls_var_name='check_name', func=<bound method FloatVariable.check_name of <class 'standard_evaluator.problem.ArrayVariable'>>, shim=None, info=FieldValidatorDecoratorInfo(fields=('name',), mode='after', check_fields=None, json_schema_input_type=PydanticUndefined))}, root_validators={}, field_serializers={'serialize_bounds': Decorator(cls_ref='standard_evaluator.problem.ArrayVariable:94146690729520', cls_var_name='serialize_bounds', func=<function ArrayVariable.serialize_bounds>, shim=None, info=FieldSerializerDecoratorInfo(fields=('bounds',), mode='plain', return_type=PydanticUndefined, when_used='always', check_fields=None)), 'serialize_shift': Decorator(cls_ref='standard_evaluator.problem.ArrayVariable:94146690729520', cls_var_name='serialize_shift', func=<function ArrayVariable.serialize_shift>, shim=None, info=FieldSerializerDecoratorInfo(fields=('shift',), mode='plain', return_type=PydanticUndefined, when_used='always', check_fields=None)), 'serialize_scale': Decorator(cls_ref='standard_evaluator.problem.ArrayVariable:94146690729520', cls_var_name='serialize_scale', func=<function ArrayVariable.serialize_scale>, shim=None, info=FieldSerializerDecoratorInfo(fields=('scale',), mode='plain', return_type=PydanticUndefined, when_used='always', check_fields=None))}, model_serializers={}, model_validators={'check_shape': Decorator(cls_ref='standard_evaluator.problem.ArrayVariable:94146690729520', cls_var_name='check_shape', func=<function ArrayVariable.check_shape>, shim=None, info=ModelValidatorDecoratorInfo(mode='after'))}, computed_fields={})

Metadata containing the decorators defined on the model. This replaces Model.__validators__ and Model.__root_validators__ from Pydantic V1.

__pydantic_extra_info__: ClassVar[PydanticExtraInfo | None] = None

A wrapper around the __pydantic_extra__ annotation, if explicitly annotated on a model.

This is a private attribute, not meant to be used outside Pydantic.

__pydantic_fields__: ClassVar[Dict[str, FieldInfo]] = {'bounds': FieldInfo(annotation=Union[Tuple[Union[float, int, NDArray], Union[float, int, NDArray]], NoneType], required=False, default=(None, None), description='Lower and upper bounds of the arrays'), 'class_type': FieldInfo(annotation=Literal['floatarray'], required=False, default='floatarray'), 'default': FieldInfo(annotation=Union[NDArray, NoneType], required=False, default=None, description='NumPy array with the default values to be used for the array variable'), 'description': FieldInfo(annotation=Union[str, NoneType], required=False, default='', description='A description of the variable.'), 'name': FieldInfo(annotation=str, required=True, description='Name of the variable.'), 'options': FieldInfo(annotation=Dict, required=False, default_factory=dict, description='Options for the variable.'), 'scale': FieldInfo(annotation=Union[float, int, NDArray, NoneType], required=False, default=None, description='NumPy array with the scale values to be used for the array variable. Cannot be zero.'), 'shape': FieldInfo(annotation=Union[Tuple[int, ...], NoneType], required=False, default=None, description='Shape of the arrays'), 'shift': FieldInfo(annotation=Union[float, int, NDArray, NoneType], required=False, default=None, description='NumPy array with the shift values to be used for the array variable.'), 'units': FieldInfo(annotation=Union[str, NoneType], required=False, default=None)}

A dictionary of field names and their corresponding [FieldInfo][pydantic.fields.FieldInfo] objects. This replaces Model.__fields__ from Pydantic V1.

__pydantic_generic_metadata__: ClassVar[_generics.PydanticGenericMetadata] = {'args': (), 'origin': None, 'parameters': ()}

A dictionary containing metadata about generic Pydantic models.

The origin and args items map to the [__origin__][genericalias.__origin__] and [__args__][genericalias.__args__] attributes of [generic aliases][types-genericalias], and the parameter item maps to the __parameter__ attribute of generic classes.

__pydantic_parent_namespace__: ClassVar[Dict[str, Any] | None] = None

Parent namespace of the model, used for automatic rebuilding of models.

__pydantic_post_init__: ClassVar[None | Literal['model_post_init']] = None

The name of the post-init method for the model, if defined.

__pydantic_serializer__: ClassVar[SchemaSerializer] = SchemaSerializer(serializer=PolymorphismTrampoline(     PolymorphismTrampoline {         class: Py(             0x000055a03c0ec630,         ),         serializer: PolymorphismTrampoline(             PolymorphismTrampoline {                 class: Py(                     0x000055a03c0ec630,                 ),                 serializer: Model(                     ModelSerializer {                         class: Py(                             0x000055a03c0ec630,                         ),                         serializer: Fields(                             GeneralFieldsSerializer {                                 fields: {                                     "scale": SerField {                                         key: "scale",                                         alias: None,                                         serializer: Some(                                             Function(                                                 FunctionPlainSerializer {                                                     func: Py(                                                         0x00007f82d62d9260,                                                     ),                                                     name: "plain_function[serialize_scale]",                                                     function_name: "serialize_scale",                                                     return_serializer: Any(                                                         AnySerializer,                                                     ),                                                     fallback_serializer: None,                                                     when_used: Always,                                                     is_field_serializer: true,                                                     info_arg: false,                                                 },                                             ),                                         ),                                         required: true,                                         serialize_by_alias: None,                                         serialization_exclude_if: None,                                     },                                     "options": SerField {                                         key: "options",                                         alias: None,                                         serializer: Some(                                             WithDefault(                                                 WithDefaultSerializer {                                                     default: DefaultFactory(                                                         Py(                                                             0x00007f82f7c43b80,                                                         ),                                                         false,                                                     ),                                                     serializer: Dict(                                                         DictSerializer {                                                             key_serializer: Any(                                                                 AnySerializer,                                                             ),                                                             value_serializer: Any(                                                                 AnySerializer,                                                             ),                                                             filter: SchemaFilter {                                                                 include: None,                                                                 exclude: None,                                                             },                                                             name: "dict[any, any]",                                                         },                                                     ),                                                 },                                             ),                                         ),                                         required: true,                                         serialize_by_alias: None,                                         serialization_exclude_if: None,                                     },                                     "class_type": SerField {                                         key: "class_type",                                         alias: None,                                         serializer: Some(                                             WithDefault(                                                 WithDefaultSerializer {                                                     default: Default(                                                         Py(                                                             0x00007f82d70a4db0,                                                         ),                                                     ),                                                     serializer: Literal(                                                         LiteralSerializer {                                                             expected_int: {},                                                             expected_str: {                                                                 "floatarray",                                                             },                                                             expected_py: None,                                                             name: "literal['floatarray']",                                                         },                                                     ),                                                 },                                             ),                                         ),                                         required: true,                                         serialize_by_alias: None,                                         serialization_exclude_if: None,                                     },                                     "bounds": SerField {                                         key: "bounds",                                         alias: None,                                         serializer: Some(                                             Function(                                                 FunctionPlainSerializer {                                                     func: Py(                                                         0x00007f82d62d8e00,                                                     ),                                                     name: "plain_function[serialize_bounds]",                                                     function_name: "serialize_bounds",                                                     return_serializer: Any(                                                         AnySerializer,                                                     ),                                                     fallback_serializer: None,                                                     when_used: Always,                                                     is_field_serializer: true,                                                     info_arg: false,                                                 },                                             ),                                         ),                                         required: true,                                         serialize_by_alias: None,                                         serialization_exclude_if: None,                                     },                                     "name": SerField {                                         key: "name",                                         alias: None,                                         serializer: Some(                                             Str(                                                 StrSerializer,                                             ),                                         ),                                         required: true,                                         serialize_by_alias: None,                                         serialization_exclude_if: None,                                     },                                     "shape": SerField {                                         key: "shape",                                         alias: None,                                         serializer: Some(                                             WithDefault(                                                 WithDefaultSerializer {                                                     default: Default(                                                         Py(                                                             0x00007f82f7c468c0,                                                         ),                                                     ),                                                     serializer: Nullable(                                                         NullableSerializer {                                                             serializer: Tuple(                                                                 TupleSerializer {                                                                     serializers: [                                                                         Int(                                                                             IntSerializer,                                                                         ),                                                                     ],                                                                     variadic_item_index: Some(                                                                         0,                                                                     ),                                                                     filter: SchemaFilter {                                                                         include: None,                                                                         exclude: None,                                                                     },                                                                     name: "tuple[int, ...]",                                                                 },                                                             ),                                                         },                                                     ),                                                 },                                             ),                                         ),                                         required: true,                                         serialize_by_alias: None,                                         serialization_exclude_if: None,                                     },                                     "default": SerField {                                         key: "default",                                         alias: None,                                         serializer: Some(                                             WithDefault(                                                 WithDefaultSerializer {                                                     default: Default(                                                         Py(                                                             0x00007f82f7c468c0,                                                         ),                                                     ),                                                     serializer: Nullable(                                                         NullableSerializer {                                                             serializer: Function(                                                                 FunctionPlainSerializer {                                                                     func: Py(                                                                         0x00007f82d6749da0,                                                                     ),                                                                     name: "plain_function[jsonize_array]",                                                                     function_name: "jsonize_array",                                                                     return_serializer: Any(                                                                         AnySerializer,                                                                     ),                                                                     fallback_serializer: Some(                                                                         Any(                                                                             AnySerializer,                                                                         ),                                                                     ),                                                                     when_used: Json,                                                                     is_field_serializer: false,                                                                     info_arg: true,                                                                 },                                                             ),                                                         },                                                     ),                                                 },                                             ),                                         ),                                         required: true,                                         serialize_by_alias: None,                                         serialization_exclude_if: None,                                     },                                     "units": SerField {                                         key: "units",                                         alias: None,                                         serializer: Some(                                             WithDefault(                                                 WithDefaultSerializer {                                                     default: Default(                                                         Py(                                                             0x00007f82f7c468c0,                                                         ),                                                     ),                                                     serializer: Nullable(                                                         NullableSerializer {                                                             serializer: Str(                                                                 StrSerializer,                                                             ),                                                         },                                                     ),                                                 },                                             ),                                         ),                                         required: true,                                         serialize_by_alias: None,                                         serialization_exclude_if: None,                                     },                                     "description": SerField {                                         key: "description",                                         alias: None,                                         serializer: Some(                                             WithDefault(                                                 WithDefaultSerializer {                                                     default: Default(                                                         Py(                                                             0x00007f82f7d3f660,                                                         ),                                                     ),                                                     serializer: Nullable(                                                         NullableSerializer {                                                             serializer: Str(                                                                 StrSerializer,                                                             ),                                                         },                                                     ),                                                 },                                             ),                                         ),                                         required: true,                                         serialize_by_alias: None,                                         serialization_exclude_if: None,                                     },                                     "shift": SerField {                                         key: "shift",                                         alias: None,                                         serializer: Some(                                             Function(                                                 FunctionPlainSerializer {                                                     func: Py(                                                         0x00007f82d62d9300,                                                     ),                                                     name: "plain_function[serialize_shift]",                                                     function_name: "serialize_shift",                                                     return_serializer: Any(                                                         AnySerializer,                                                     ),                                                     fallback_serializer: None,                                                     when_used: Always,                                                     is_field_serializer: true,                                                     info_arg: false,                                                 },                                             ),                                         ),                                         required: true,                                         serialize_by_alias: None,                                         serialization_exclude_if: None,                                     },                                 },                                 computed_fields: Some(                                     ComputedFields(                                         [],                                     ),                                 ),                                 mode: SimpleDict,                                 extra_serializer: None,                                 filter: SchemaFilter {                                     include: None,                                     exclude: None,                                 },                                 required_fields: 10,                             },                         ),                         has_extra: false,                         root_model: false,                         name: "ArrayVariable",                     },                 ),                 enabled_from_config: false,             },         ),         enabled_from_config: false,     }, ), definitions=[])

The pydantic-core SchemaSerializer used to dump instances of the model.

__pydantic_setattr_handlers__: ClassVar[Dict[str, Callable[[BaseModel, str, Any], None]]] = {}

__setattr__ handlers. Memoizing the handlers leads to a dramatic performance improvement in __setattr__

__pydantic_validator__: ClassVar[SchemaValidator | PluggableSchemaValidator] = SchemaValidator(title="ArrayVariable", validator=FunctionAfter(     FunctionAfterValidator {         validator: Model(             ModelValidator {                 revalidate: Never,                 validator: ModelFields(                     ModelFieldsValidator {                         fields: [                             Field {                                 name: "name",                                 lookup_path_collection: LookupPathCollection {                                     by_name: LookupPath {                                         first_item: PathItemString(                                             "name",                                         ),                                         rest: [],                                     },                                     by_alias: [],                                 },                                 validator: FunctionAfter(                                     FunctionAfterValidator {                                         validator: Str(                                             StrValidator {                                                 strict: false,                                                 coerce_numbers_to_str: false,                                             },                                         ),                                         func: Py(                                             0x00007f82d62fa5c0,                                         ),                                         config: Py(                                             0x00007f82d62d0480,                                         ),                                         name: "function-after[check_name(), str]",                                         field_name: None,                                         info_arg: false,                                     },                                 ),                                 frozen: false,                             },                             Field {                                 name: "default",                                 lookup_path_collection: LookupPathCollection {                                     by_name: LookupPath {                                         first_item: PathItemString(                                             "default",                                         ),                                         rest: [],                                     },                                     by_alias: [],                                 },                                 validator: WithDefault(                                     WithDefaultValidator {                                         default: Default(                                             Py(                                                 0x00007f82f7c468c0,                                             ),                                         ),                                         on_error: Raise,                                         validator: Nullable(                                             NullableValidator {                                                 validator: FunctionPlain(                                                     FunctionPlainValidator {                                                         func: Py(                                                             0x00007f82d62d9580,                                                         ),                                                         config: Py(                                                             0x00007f82d62d0480,                                                         ),                                                         name: "function-plain[validate_interface()]",                                                         field_name: None,                                                         info_arg: true,                                                     },                                                 ),                                                 name: "nullable[function-plain[validate_interface()]]",                                             },                                         ),                                         validate_default: false,                                         copy_default: false,                                         name: "default[nullable[function-plain[validate_interface()]]]",                                         undefined: Py(                                             0x00007f82f5afadb0,                                         ),                                     },                                 ),                                 frozen: false,                             },                             Field {                                 name: "bounds",                                 lookup_path_collection: LookupPathCollection {                                     by_name: LookupPath {                                         first_item: PathItemString(                                             "bounds",                                         ),                                         rest: [],                                     },                                     by_alias: [],                                 },                                 validator: WithDefault(                                     WithDefaultValidator {                                         default: Default(                                             Py(                                                 0x00007f82d6742180,                                             ),                                         ),                                         on_error: Raise,                                         validator: FunctionAfter(                                             FunctionAfterValidator {                                                 validator: Nullable(                                                     NullableValidator {                                                         validator: Tuple(                                                             TupleValidator {                                                                 strict: false,                                                                 validators: [                                                                     Union(                                                                         UnionValidator {                                                                             mode: Smart,                                                                             choices: [                                                                                 (                                                                                     Float(                                                                                         FloatValidator {                                                                                             strict: false,                                                                                             allow_inf_nan: true,                                                                                         },                                                                                     ),                                                                                     None,                                                                                 ),                                                                                 (                                                                                     Int(                                                                                         IntValidator {                                                                                             strict: false,                                                                                         },                                                                                     ),                                                                                     None,                                                                                 ),                                                                                 (                                                                                     FunctionPlain(                                                                                         FunctionPlainValidator {                                                                                             func: Py(                                                                                                 0x00007f82d62d96c0,                                                                                             ),                                                                                             config: Py(                                                                                                 0x00007f82d62d0480,                                                                                             ),                                                                                             name: "function-plain[validate_interface()]",                                                                                             field_name: None,                                                                                             info_arg: true,                                                                                         },                                                                                     ),                                                                                     None,                                                                                 ),                                                                             ],                                                                             custom_error: None,                                                                             name: "union[float,int,function-plain[validate_interface()]]",                                                                         },                                                                     ),                                                                     Union(                                                                         UnionValidator {                                                                             mode: Smart,                                                                             choices: [                                                                                 (                                                                                     Float(                                                                                         FloatValidator {                                                                                             strict: false,                                                                                             allow_inf_nan: true,                                                                                         },                                                                                     ),                                                                                     None,                                                                                 ),                                                                                 (                                                                                     Int(                                                                                         IntValidator {                                                                                             strict: false,                                                                                         },                                                                                     ),                                                                                     None,                                                                                 ),                                                                                 (                                                                                     FunctionPlain(                                                                                         FunctionPlainValidator {                                                                                             func: Py(                                                                                                 0x00007f82d62d9800,                                                                                             ),                                                                                             config: Py(                                                                                                 0x00007f82d62d0480,                                                                                             ),                                                                                             name: "function-plain[validate_interface()]",                                                                                             field_name: None,                                                                                             info_arg: true,                                                                                         },                                                                                     ),                                                                                     None,                                                                                 ),                                                                             ],                                                                             custom_error: None,                                                                             name: "union[float,int,function-plain[validate_interface()]]",                                                                         },                                                                     ),                                                                 ],                                                                 variadic_item_index: None,                                                                 min_length: None,                                                                 max_length: None,                                                                 name: "tuple[union[float,int,function-plain[validate_interface()]], union[float,int,function-plain[validate_interface()]]]",                                                                 fail_fast: false,                                                             },                                                         ),                                                         name: "nullable[tuple[union[float,int,function-plain[validate_interface()]], union[float,int,function-plain[validate_interface()]]]]",                                                     },                                                 ),                                                 func: Py(                                                     0x00007f82d62fad80,                                                 ),                                                 config: Py(                                                     0x00007f82d62d0480,                                                 ),                                                 name: "function-after[validate_bounds(), nullable[tuple[union[float,int,function-plain[validate_interface()]], union[float,int,function-plain[validate_interface()]]]]]",                                                 field_name: None,                                                 info_arg: false,                                             },                                         ),                                         validate_default: false,                                         copy_default: false,                                         name: "default[function-after[validate_bounds(), nullable[tuple[union[float,int,function-plain[validate_interface()]], union[float,int,function-plain[validate_interface()]]]]]]",                                         undefined: Py(                                             0x00007f82f5afadb0,                                         ),                                     },                                 ),                                 frozen: false,                             },                             Field {                                 name: "shift",                                 lookup_path_collection: LookupPathCollection {                                     by_name: LookupPath {                                         first_item: PathItemString(                                             "shift",                                         ),                                         rest: [],                                     },                                     by_alias: [],                                 },                                 validator: WithDefault(                                     WithDefaultValidator {                                         default: Default(                                             Py(                                                 0x00007f82f7c468c0,                                             ),                                         ),                                         on_error: Raise,                                         validator: Nullable(                                             NullableValidator {                                                 validator: Union(                                                     UnionValidator {                                                         mode: Smart,                                                         choices: [                                                             (                                                                 Float(                                                                     FloatValidator {                                                                         strict: false,                                                                         allow_inf_nan: true,                                                                     },                                                                 ),                                                                 None,                                                             ),                                                             (                                                                 Int(                                                                     IntValidator {                                                                         strict: false,                                                                     },                                                                 ),                                                                 None,                                                             ),                                                             (                                                                 FunctionPlain(                                                                     FunctionPlainValidator {                                                                         func: Py(                                                                             0x00007f82d62d98a0,                                                                         ),                                                                         config: Py(                                                                             0x00007f82d62d0480,                                                                         ),                                                                         name: "function-plain[validate_interface()]",                                                                         field_name: None,                                                                         info_arg: true,                                                                     },                                                                 ),                                                                 None,                                                             ),                                                         ],                                                         custom_error: None,                                                         name: "union[float,int,function-plain[validate_interface()]]",                                                     },                                                 ),                                                 name: "nullable[union[float,int,function-plain[validate_interface()]]]",                                             },                                         ),                                         validate_default: false,                                         copy_default: false,                                         name: "default[nullable[union[float,int,function-plain[validate_interface()]]]]",                                         undefined: Py(                                             0x00007f82f5afadb0,                                         ),                                     },                                 ),                                 frozen: false,                             },                             Field {                                 name: "scale",                                 lookup_path_collection: LookupPathCollection {                                     by_name: LookupPath {                                         first_item: PathItemString(                                             "scale",                                         ),                                         rest: [],                                     },                                     by_alias: [],                                 },                                 validator: WithDefault(                                     WithDefaultValidator {                                         default: Default(                                             Py(                                                 0x00007f82f7c468c0,                                             ),                                         ),                                         on_error: Raise,                                         validator: FunctionAfter(                                             FunctionAfterValidator {                                                 validator: Nullable(                                                     NullableValidator {                                                         validator: Union(                                                             UnionValidator {                                                                 mode: Smart,                                                                 choices: [                                                                     (                                                                         Float(                                                                             FloatValidator {                                                                                 strict: false,                                                                                 allow_inf_nan: true,                                                                             },                                                                         ),                                                                         None,                                                                     ),                                                                     (                                                                         Int(                                                                             IntValidator {                                                                                 strict: false,                                                                             },                                                                         ),                                                                         None,                                                                     ),                                                                     (                                                                         FunctionPlain(                                                                             FunctionPlainValidator {                                                                                 func: Py(                                                                                     0x00007f82d62d9620,                                                                                 ),                                                                                 config: Py(                                                                                     0x00007f82d62d0480,                                                                                 ),                                                                                 name: "function-plain[validate_interface()]",                                                                                 field_name: None,                                                                                 info_arg: true,                                                                             },                                                                         ),                                                                         None,                                                                     ),                                                                 ],                                                                 custom_error: None,                                                                 name: "union[float,int,function-plain[validate_interface()]]",                                                             },                                                         ),                                                         name: "nullable[union[float,int,function-plain[validate_interface()]]]",                                                     },                                                 ),                                                 func: Py(                                                     0x00007f82d62faf40,                                                 ),                                                 config: Py(                                                     0x00007f82d62d0480,                                                 ),                                                 name: "function-after[validate_scale(), nullable[union[float,int,function-plain[validate_interface()]]]]",                                                 field_name: None,                                                 info_arg: false,                                             },                                         ),                                         validate_default: false,                                         copy_default: false,                                         name: "default[function-after[validate_scale(), nullable[union[float,int,function-plain[validate_interface()]]]]]",                                         undefined: Py(                                             0x00007f82f5afadb0,                                         ),                                     },                                 ),                                 frozen: false,                             },                             Field {                                 name: "units",                                 lookup_path_collection: LookupPathCollection {                                     by_name: LookupPath {                                         first_item: PathItemString(                                             "units",                                         ),                                         rest: [],                                     },                                     by_alias: [],                                 },                                 validator: WithDefault(                                     WithDefaultValidator {                                         default: Default(                                             Py(                                                 0x00007f82f7c468c0,                                             ),                                         ),                                         on_error: Raise,                                         validator: Nullable(                                             NullableValidator {                                                 validator: Str(                                                     StrValidator {                                                         strict: false,                                                         coerce_numbers_to_str: false,                                                     },                                                 ),                                                 name: "nullable[str]",                                             },                                         ),                                         validate_default: false,                                         copy_default: false,                                         name: "default[nullable[str]]",                                         undefined: Py(                                             0x00007f82f5afadb0,                                         ),                                     },                                 ),                                 frozen: false,                             },                             Field {                                 name: "description",                                 lookup_path_collection: LookupPathCollection {                                     by_name: LookupPath {                                         first_item: PathItemString(                                             "description",                                         ),                                         rest: [],                                     },                                     by_alias: [],                                 },                                 validator: WithDefault(                                     WithDefaultValidator {                                         default: Default(                                             Py(                                                 0x00007f82f7d3f660,                                             ),                                         ),                                         on_error: Raise,                                         validator: Nullable(                                             NullableValidator {                                                 validator: Str(                                                     StrValidator {                                                         strict: false,                                                         coerce_numbers_to_str: false,                                                     },                                                 ),                                                 name: "nullable[str]",                                             },                                         ),                                         validate_default: false,                                         copy_default: false,                                         name: "default[nullable[str]]",                                         undefined: Py(                                             0x00007f82f5afadb0,                                         ),                                     },                                 ),                                 frozen: false,                             },                             Field {                                 name: "options",                                 lookup_path_collection: LookupPathCollection {                                     by_name: LookupPath {                                         first_item: PathItemString(                                             "options",                                         ),                                         rest: [],                                     },                                     by_alias: [],                                 },                                 validator: WithDefault(                                     WithDefaultValidator {                                         default: DefaultFactory(                                             Py(                                                 0x00007f82f7c43b80,                                             ),                                             false,                                         ),                                         on_error: Raise,                                         validator: Dict(                                             DictValidator {                                                 strict: false,                                                 key_validator: Any(                                                     AnyValidator,                                                 ),                                                 value_validator: Any(                                                     AnyValidator,                                                 ),                                                 min_length: None,                                                 max_length: None,                                                 fail_fast: false,                                                 name: "dict[any,any]",                                             },                                         ),                                         validate_default: false,                                         copy_default: false,                                         name: "default[dict[any,any]]",                                         undefined: Py(                                             0x00007f82f5afadb0,                                         ),                                     },                                 ),                                 frozen: false,                             },                             Field {                                 name: "class_type",                                 lookup_path_collection: LookupPathCollection {                                     by_name: LookupPath {                                         first_item: PathItemString(                                             "class_type",                                         ),                                         rest: [],                                     },                                     by_alias: [],                                 },                                 validator: WithDefault(                                     WithDefaultValidator {                                         default: Default(                                             Py(                                                 0x00007f82d70a4db0,                                             ),                                         ),                                         on_error: Raise,                                         validator: Literal(                                             LiteralValidator {                                                 lookup: LiteralLookup {                                                     expected_bool: None,                                                     expected_int: None,                                                     expected_str: Some(                                                         {                                                             "floatarray": 0,                                                         },                                                     ),                                                     expected_py_dict: None,                                                     expected_py_values: None,                                                     expected_py_primitives: Some(                                                         Py(                                                             0x00007f82d62fbcc0,                                                         ),                                                     ),                                                     values: [                                                         Py(                                                             0x00007f82d70a4db0,                                                         ),                                                     ],                                                 },                                                 expected_repr: "'floatarray'",                                                 name: "literal['floatarray']",                                             },                                         ),                                         validate_default: false,                                         copy_default: false,                                         name: "default[literal['floatarray']]",                                         undefined: Py(                                             0x00007f82f5afadb0,                                         ),                                     },                                 ),                                 frozen: false,                             },                             Field {                                 name: "shape",                                 lookup_path_collection: LookupPathCollection {                                     by_name: LookupPath {                                         first_item: PathItemString(                                             "shape",                                         ),                                         rest: [],                                     },                                     by_alias: [],                                 },                                 validator: WithDefault(                                     WithDefaultValidator {                                         default: Default(                                             Py(                                                 0x00007f82f7c468c0,                                             ),                                         ),                                         on_error: Raise,                                         validator: Nullable(                                             NullableValidator {                                                 validator: Tuple(                                                     TupleValidator {                                                         strict: false,                                                         validators: [                                                             Int(                                                                 IntValidator {                                                                     strict: false,                                                                 },                                                             ),                                                         ],                                                         variadic_item_index: Some(                                                             0,                                                         ),                                                         min_length: None,                                                         max_length: None,                                                         name: "tuple[int, ...]",                                                         fail_fast: false,                                                     },                                                 ),                                                 name: "nullable[tuple[int, ...]]",                                             },                                         ),                                         validate_default: false,                                         copy_default: false,                                         name: "default[nullable[tuple[int, ...]]]",                                         undefined: Py(                                             0x00007f82f5afadb0,                                         ),                                     },                                 ),                                 frozen: false,                             },                         ],                         model_name: "ArrayVariable",                         extra_behavior: Ignore,                         extras_validator: None,                         extras_keys_validator: None,                         strict: false,                         from_attributes: false,                         loc_by_alias: true,                         lookup: LookupTree {                             inner: {                                 PathItemString(                                     "default",                                 ): LookupTreeNode {                                     fields: [                                         LookupFieldInfo {                                             field_index: 1,                                             lookup_priority: LookupFieldPriority {                                                 lookup_type: Both,                                                 alias_index: 0,                                             },                                         },                                     ],                                     map: {},                                     list: {},                                 },                                 PathItemString(                                     "scale",                                 ): LookupTreeNode {                                     fields: [                                         LookupFieldInfo {                                             field_index: 4,                                             lookup_priority: LookupFieldPriority {                                                 lookup_type: Both,                                                 alias_index: 0,                                             },                                         },                                     ],                                     map: {},                                     list: {},                                 },                                 PathItemString(                                     "name",                                 ): LookupTreeNode {                                     fields: [                                         LookupFieldInfo {                                             field_index: 0,                                             lookup_priority: LookupFieldPriority {                                                 lookup_type: Both,                                                 alias_index: 0,                                             },                                         },                                     ],                                     map: {},                                     list: {},                                 },                                 PathItemString(                                     "shape",                                 ): LookupTreeNode {                                     fields: [                                         LookupFieldInfo {                                             field_index: 9,                                             lookup_priority: LookupFieldPriority {                                                 lookup_type: Both,                                                 alias_index: 0,                                             },                                         },                                     ],                                     map: {},                                     list: {},                                 },                                 PathItemString(                                     "bounds",                                 ): LookupTreeNode {                                     fields: [                                         LookupFieldInfo {                                             field_index: 2,                                             lookup_priority: LookupFieldPriority {                                                 lookup_type: Both,                                                 alias_index: 0,                                             },                                         },                                     ],                                     map: {},                                     list: {},                                 },                                 PathItemString(                                     "description",                                 ): LookupTreeNode {                                     fields: [                                         LookupFieldInfo {                                             field_index: 6,                                             lookup_priority: LookupFieldPriority {                                                 lookup_type: Both,                                                 alias_index: 0,                                             },                                         },                                     ],                                     map: {},                                     list: {},                                 },                                 PathItemString(                                     "units",                                 ): LookupTreeNode {                                     fields: [                                         LookupFieldInfo {                                             field_index: 5,                                             lookup_priority: LookupFieldPriority {                                                 lookup_type: Both,                                                 alias_index: 0,                                             },                                         },                                     ],                                     map: {},                                     list: {},                                 },                                 PathItemString(                                     "options",                                 ): LookupTreeNode {                                     fields: [                                         LookupFieldInfo {                                             field_index: 7,                                             lookup_priority: LookupFieldPriority {                                                 lookup_type: Both,                                                 alias_index: 0,                                             },                                         },                                     ],                                     map: {},                                     list: {},                                 },                                 PathItemString(                                     "shift",                                 ): LookupTreeNode {                                     fields: [                                         LookupFieldInfo {                                             field_index: 3,                                             lookup_priority: LookupFieldPriority {                                                 lookup_type: Both,                                                 alias_index: 0,                                             },                                         },                                     ],                                     map: {},                                     list: {},                                 },                                 PathItemString(                                     "class_type",                                 ): LookupTreeNode {                                     fields: [                                         LookupFieldInfo {                                             field_index: 8,                                             lookup_priority: LookupFieldPriority {                                                 lookup_type: Both,                                                 alias_index: 0,                                             },                                         },                                     ],                                     map: {},                                     list: {},                                 },                             },                         },                         validate_by_alias: None,                         validate_by_name: None,                     },                 ),                 class: Py(                     0x000055a03c0ec630,                 ),                 generic_origin: None,                 post_init: None,                 frozen: false,                 custom_init: false,                 root_model: false,                 undefined: Py(                     0x00007f82f5afadb0,                 ),                 name: "ArrayVariable",             },         ),         func: Py(             0x00007f82d62d91c0,         ),         config: Py(             0x00007f82d62fb880,         ),         name: "function-after[check_shape(), ArrayVariable]",         field_name: None,         info_arg: false,     }, ), definitions=[], cache_strings=True)

The pydantic-core SchemaValidator used to validate instances of the model.

__signature__: ClassVar[Signature] = <Signature (*, name: str, default: Optional[numpydantic.ndarray.NDArray] = None, bounds: Optional[Tuple[Union[float, int, numpydantic.ndarray.NDArray], Union[float, int, numpydantic.ndarray.NDArray]]] = (None, None), shift: Union[float, int, numpydantic.ndarray.NDArray, NoneType] = None, scale: Union[float, int, numpydantic.ndarray.NDArray, NoneType] = None, units: Optional[str] = None, description: Optional[str] = '', options: Dict = <factory>, class_type: Literal['floatarray'] = 'floatarray', shape: Optional[Tuple[int, ...]] = None) -> None>

The synthesized __init__ [Signature][inspect.Signature] of the model.

model_config: ClassVar[ConfigDict] = {'validate_assignment': False}

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

class CategoricalVariable

Bases: FloatVariable

Class representing a categorical variable.

default

Default value for this variable.

Type:

Any | None

bounds

Values this variable can take on. Must be defined.

Type:

List[Any]

shift

Shift value to be used for this variable. Not applicable for categorical variables.

Type:

Literal[None]

scale

Scale value to be used for this variable. Not applicable for categorical variables.

Type:

Literal[None]

class_type

Class marker for identifying the variable type.

Type:

Literal[‘cat’]

Methods:

calculate_default([overwrite])

Calculate the default value for categorical variables.

validate_bounds(var)

Validate the bounds of the categorical variable.

check_default()

Check that the default value, if defined, is valid.

Attributes:

__pydantic_fields_set__

The names of fields explicitly set during instantiation.

__pydantic_extra__

A dictionary containing extra values, if [extra][pydantic.config.ConfigDict.extra] is set to 'allow'.

__pydantic_private__

Values of private attributes set on the model instance.

__class_vars__

The names of the class variables defined on the model.

__private_attributes__

Metadata about the private attributes of the model.

__pydantic_complete__

Whether model building is completed, or if there are still undefined fields.

__pydantic_computed_fields__

A dictionary of computed field names and their corresponding [ComputedFieldInfo][pydantic.fields.ComputedFieldInfo] objects.

__pydantic_core_schema__

The core schema of the model.

__pydantic_custom_init__

Whether the model has a custom __init__ method.

__pydantic_decorators__

Metadata containing the decorators defined on the model.

__pydantic_extra_info__

A wrapper around the __pydantic_extra__ annotation, if explicitly annotated on a model.

__pydantic_fields__

A dictionary of field names and their corresponding [FieldInfo][pydantic.fields.FieldInfo] objects.

__pydantic_generic_metadata__

A dictionary containing metadata about generic Pydantic models.

__pydantic_parent_namespace__

Parent namespace of the model, used for automatic rebuilding of models.

__pydantic_post_init__

The name of the post-init method for the model, if defined.

__pydantic_serializer__

The pydantic-core SchemaSerializer used to dump instances of the model.

__pydantic_setattr_handlers__

__setattr__ handlers.

__pydantic_validator__

The pydantic-core SchemaValidator used to validate instances of the model.

__signature__

The synthesized __init__ [Signature][inspect.Signature] of the model.

model_config

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

calculate_default(overwrite=True)

Calculate the default value for categorical variables.

If the overwrite flag is not true and default is set, the method exits. For categorical variables, the first value in bounds is used as the default.

Parameters:

overwrite (bool) – Flag indicating whether to overwrite the default value if it is already set.

Return type:

None

classmethod validate_bounds(var)

Validate the bounds of the categorical variable.

Raises a ValueError if no valid values are defined.

Parameters:

var (List[Any]) – The bounds to validate.

Returns:

The validated bounds.

Return type:

List[Any]

Raises:

ValueError – If no valid values are defined.

check_default()

Check that the default value, if defined, is valid.

Raises a ValueError if the default value is not in the bounds.

Returns:

The instance of the class after validation.

Return type:

CategoricalVariable

__pydantic_fields_set__: set[str]

The names of fields explicitly set during instantiation.

__pydantic_extra__: Dict[str, Any] | None

A dictionary containing extra values, if [extra][pydantic.config.ConfigDict.extra] is set to ‘allow’.

__pydantic_private__: Dict[str, Any] | None

Values of private attributes set on the model instance.

__class_vars__: ClassVar[set[str]] = {}

The names of the class variables defined on the model.

__private_attributes__: ClassVar[Dict[str, ModelPrivateAttr]] = {}

Metadata about the private attributes of the model.

__pydantic_complete__: ClassVar[bool] = True

Whether model building is completed, or if there are still undefined fields.

__pydantic_computed_fields__: ClassVar[Dict[str, ComputedFieldInfo]] = {}

A dictionary of computed field names and their corresponding [ComputedFieldInfo][pydantic.fields.ComputedFieldInfo] objects.

__pydantic_core_schema__: ClassVar[CoreSchema] = {'function': {'function': <function CategoricalVariable.check_default>, 'type': 'no-info'}, 'metadata': {'pydantic_js_functions': [<bound method BaseModel.__get_pydantic_json_schema__ of <class 'standard_evaluator.problem.CategoricalVariable'>>]}, 'ref': 'standard_evaluator.problem.CategoricalVariable:94146690688272', 'schema': {'cls': <class 'standard_evaluator.problem.CategoricalVariable'>, 'config': {'title': 'CategoricalVariable'}, 'custom_init': False, 'root_model': False, 'schema': {'computed_fields': [], 'fields': {'bounds': {'metadata': {'pydantic_js_updates': {'description': 'Values this variable or response can take on. Must be defined.'}}, 'schema': {'function': {'function': <bound method CategoricalVariable.validate_bounds of <class 'standard_evaluator.problem.CategoricalVariable'>>, 'type': 'no-info'}, 'schema': {'items_schema': {'type': 'any'}, 'type': 'list'}, 'type': 'function-after'}, 'type': 'model-field'}, 'class_type': {'metadata': {'pydantic_js_updates': {'description': 'Class marker'}}, 'schema': {'default': 'cat', 'schema': {'expected': ['cat'], 'type': 'literal'}, 'type': 'default'}, 'type': 'model-field'}, 'default': {'metadata': {'pydantic_js_updates': {'description': 'Default value for this variable'}}, 'schema': {'default': None, 'schema': {'schema': {'type': 'any'}, 'type': 'nullable'}, 'type': 'default'}, 'type': 'model-field'}, 'description': {'metadata': {'pydantic_js_updates': {'description': 'A description of the variable.'}}, 'schema': {'default': '', 'schema': {'schema': {'type': 'str'}, 'type': 'nullable'}, 'type': 'default'}, 'type': 'model-field'}, 'name': {'metadata': {'pydantic_js_updates': {'description': 'Name of the variable.'}}, 'schema': {'function': {'function': <bound method FloatVariable.check_name of <class 'standard_evaluator.problem.CategoricalVariable'>>, 'type': 'no-info'}, 'schema': {'type': 'str'}, 'type': 'function-after'}, 'type': 'model-field'}, 'options': {'metadata': {'pydantic_js_updates': {'description': 'Options for the variable.'}}, 'schema': {'default_factory': <class 'dict'>, 'default_factory_takes_data': False, 'schema': {'keys_schema': {'type': 'any'}, 'type': 'dict', 'values_schema': {'type': 'any'}}, 'type': 'default'}, 'type': 'model-field'}, 'scale': {'metadata': {'pydantic_js_updates': {'description': 'Scale value to be used for this variable. Does not make sense for categorical variables.'}}, 'schema': {'default': None, 'schema': {'function': {'function': <bound method FloatVariable.validate_scale of <class 'standard_evaluator.problem.CategoricalVariable'>>, 'type': 'no-info'}, 'schema': {'expected': [None], 'type': 'literal'}, 'type': 'function-after'}, 'type': 'default'}, 'type': 'model-field'}, 'shift': {'metadata': {'pydantic_js_updates': {'description': 'Shift value to be used for this variable. Does not make sense for categorical variables.'}}, 'schema': {'default': None, 'schema': {'expected': [None], 'type': 'literal'}, 'type': 'default'}, 'type': 'model-field'}, 'units': {'metadata': {}, 'schema': {'default': None, 'schema': {'schema': {'type': 'str'}, 'type': 'nullable'}, 'type': 'default'}, 'type': 'model-field'}}, 'model_name': 'CategoricalVariable', 'type': 'model-fields'}, 'type': 'model'}, 'type': 'function-after'}

The core schema of the model.

__pydantic_custom_init__: ClassVar[bool] = False

Whether the model has a custom __init__ method.

__pydantic_decorators__: ClassVar[_decorators.DecoratorInfos] = DecoratorInfos(validators={}, field_validators={'validate_bounds': Decorator(cls_ref='standard_evaluator.problem.CategoricalVariable:94146690688272', cls_var_name='validate_bounds', func=<bound method CategoricalVariable.validate_bounds of <class 'standard_evaluator.problem.CategoricalVariable'>>, shim=None, info=FieldValidatorDecoratorInfo(fields=('bounds',), mode='after', check_fields=None, json_schema_input_type=PydanticUndefined)), 'validate_scale': Decorator(cls_ref='standard_evaluator.problem.CategoricalVariable:94146690688272', cls_var_name='validate_scale', func=<bound method FloatVariable.validate_scale of <class 'standard_evaluator.problem.CategoricalVariable'>>, shim=None, info=FieldValidatorDecoratorInfo(fields=('scale',), mode='after', check_fields=None, json_schema_input_type=PydanticUndefined)), 'check_name': Decorator(cls_ref='standard_evaluator.problem.CategoricalVariable:94146690688272', cls_var_name='check_name', func=<bound method FloatVariable.check_name of <class 'standard_evaluator.problem.CategoricalVariable'>>, shim=None, info=FieldValidatorDecoratorInfo(fields=('name',), mode='after', check_fields=None, json_schema_input_type=PydanticUndefined))}, root_validators={}, field_serializers={}, model_serializers={}, model_validators={'check_default': Decorator(cls_ref='standard_evaluator.problem.CategoricalVariable:94146690688272', cls_var_name='check_default', func=<function CategoricalVariable.check_default>, shim=None, info=ModelValidatorDecoratorInfo(mode='after'))}, computed_fields={})

Metadata containing the decorators defined on the model. This replaces Model.__validators__ and Model.__root_validators__ from Pydantic V1.

__pydantic_extra_info__: ClassVar[PydanticExtraInfo | None] = None

A wrapper around the __pydantic_extra__ annotation, if explicitly annotated on a model.

This is a private attribute, not meant to be used outside Pydantic.

__pydantic_fields__: ClassVar[Dict[str, FieldInfo]] = {'bounds': FieldInfo(annotation=List[Any], required=True, description='Values this variable or response can take on. Must be defined.'), 'class_type': FieldInfo(annotation=Literal['cat'], required=False, default='cat', description='Class marker'), 'default': FieldInfo(annotation=Union[Any, NoneType], required=False, default=None, description='Default value for this variable'), 'description': FieldInfo(annotation=Union[str, NoneType], required=False, default='', description='A description of the variable.'), 'name': FieldInfo(annotation=str, required=True, description='Name of the variable.'), 'options': FieldInfo(annotation=Dict, required=False, default_factory=dict, description='Options for the variable.'), 'scale': FieldInfo(annotation=Literal[None], required=False, default=None, description='Scale value to be used for this variable. Does not make sense for categorical variables.'), 'shift': FieldInfo(annotation=Literal[None], required=False, default=None, description='Shift value to be used for this variable. Does not make sense for categorical variables.'), 'units': FieldInfo(annotation=Union[str, NoneType], required=False, default=None)}

A dictionary of field names and their corresponding [FieldInfo][pydantic.fields.FieldInfo] objects. This replaces Model.__fields__ from Pydantic V1.

__pydantic_generic_metadata__: ClassVar[_generics.PydanticGenericMetadata] = {'args': (), 'origin': None, 'parameters': ()}

A dictionary containing metadata about generic Pydantic models.

The origin and args items map to the [__origin__][genericalias.__origin__] and [__args__][genericalias.__args__] attributes of [generic aliases][types-genericalias], and the parameter item maps to the __parameter__ attribute of generic classes.

__pydantic_parent_namespace__: ClassVar[Dict[str, Any] | None] = None

Parent namespace of the model, used for automatic rebuilding of models.

__pydantic_post_init__: ClassVar[None | Literal['model_post_init']] = None

The name of the post-init method for the model, if defined.

__pydantic_serializer__: ClassVar[SchemaSerializer] = SchemaSerializer(serializer=PolymorphismTrampoline(     PolymorphismTrampoline {         class: Py(             0x000055a03c0e2510,         ),         serializer: PolymorphismTrampoline(             PolymorphismTrampoline {                 class: Py(                     0x000055a03c0e2510,                 ),                 serializer: Model(                     ModelSerializer {                         class: Py(                             0x000055a03c0e2510,                         ),                         serializer: Fields(                             GeneralFieldsSerializer {                                 fields: {                                     "units": SerField {                                         key: "units",                                         alias: None,                                         serializer: Some(                                             WithDefault(                                                 WithDefaultSerializer {                                                     default: Default(                                                         Py(                                                             0x00007f82f7c468c0,                                                         ),                                                     ),                                                     serializer: Nullable(                                                         NullableSerializer {                                                             serializer: Str(                                                                 StrSerializer,                                                             ),                                                         },                                                     ),                                                 },                                             ),                                         ),                                         required: true,                                         serialize_by_alias: None,                                         serialization_exclude_if: None,                                     },                                     "name": SerField {                                         key: "name",                                         alias: None,                                         serializer: Some(                                             Str(                                                 StrSerializer,                                             ),                                         ),                                         required: true,                                         serialize_by_alias: None,                                         serialization_exclude_if: None,                                     },                                     "default": SerField {                                         key: "default",                                         alias: None,                                         serializer: Some(                                             WithDefault(                                                 WithDefaultSerializer {                                                     default: Default(                                                         Py(                                                             0x00007f82f7c468c0,                                                         ),                                                     ),                                                     serializer: Nullable(                                                         NullableSerializer {                                                             serializer: Any(                                                                 AnySerializer,                                                             ),                                                         },                                                     ),                                                 },                                             ),                                         ),                                         required: true,                                         serialize_by_alias: None,                                         serialization_exclude_if: None,                                     },                                     "shift": SerField {                                         key: "shift",                                         alias: None,                                         serializer: Some(                                             WithDefault(                                                 WithDefaultSerializer {                                                     default: Default(                                                         Py(                                                             0x00007f82f7c468c0,                                                         ),                                                     ),                                                     serializer: Literal(                                                         LiteralSerializer {                                                             expected_int: {},                                                             expected_str: {},                                                             expected_py: Some(                                                                 Py(                                                                     0x00007f82d62e3500,                                                                 ),                                                             ),                                                             name: "literal[None]",                                                         },                                                     ),                                                 },                                             ),                                         ),                                         required: true,                                         serialize_by_alias: None,                                         serialization_exclude_if: None,                                     },                                     "description": SerField {                                         key: "description",                                         alias: None,                                         serializer: Some(                                             WithDefault(                                                 WithDefaultSerializer {                                                     default: Default(                                                         Py(                                                             0x00007f82f7d3f660,                                                         ),                                                     ),                                                     serializer: Nullable(                                                         NullableSerializer {                                                             serializer: Str(                                                                 StrSerializer,                                                             ),                                                         },                                                     ),                                                 },                                             ),                                         ),                                         required: true,                                         serialize_by_alias: None,                                         serialization_exclude_if: None,                                     },                                     "bounds": SerField {                                         key: "bounds",                                         alias: None,                                         serializer: Some(                                             List(                                                 ListSerializer {                                                     item_serializer: Any(                                                         AnySerializer,                                                     ),                                                     filter: SchemaFilter {                                                         include: None,                                                         exclude: None,                                                     },                                                     name: "list[any]",                                                 },                                             ),                                         ),                                         required: true,                                         serialize_by_alias: None,                                         serialization_exclude_if: None,                                     },                                     "scale": SerField {                                         key: "scale",                                         alias: None,                                         serializer: Some(                                             WithDefault(                                                 WithDefaultSerializer {                                                     default: Default(                                                         Py(                                                             0x00007f82f7c468c0,                                                         ),                                                     ),                                                     serializer: Literal(                                                         LiteralSerializer {                                                             expected_int: {},                                                             expected_str: {},                                                             expected_py: Some(                                                                 Py(                                                                     0x00007f82d62e3200,                                                                 ),                                                             ),                                                             name: "literal[None]",                                                         },                                                     ),                                                 },                                             ),                                         ),                                         required: true,                                         serialize_by_alias: None,                                         serialization_exclude_if: None,                                     },                                     "options": SerField {                                         key: "options",                                         alias: None,                                         serializer: Some(                                             WithDefault(                                                 WithDefaultSerializer {                                                     default: DefaultFactory(                                                         Py(                                                             0x00007f82f7c43b80,                                                         ),                                                         false,                                                     ),                                                     serializer: Dict(                                                         DictSerializer {                                                             key_serializer: Any(                                                                 AnySerializer,                                                             ),                                                             value_serializer: Any(                                                                 AnySerializer,                                                             ),                                                             filter: SchemaFilter {                                                                 include: None,                                                                 exclude: None,                                                             },                                                             name: "dict[any, any]",                                                         },                                                     ),                                                 },                                             ),                                         ),                                         required: true,                                         serialize_by_alias: None,                                         serialization_exclude_if: None,                                     },                                     "class_type": SerField {                                         key: "class_type",                                         alias: None,                                         serializer: Some(                                             WithDefault(                                                 WithDefaultSerializer {                                                     default: Default(                                                         Py(                                                             0x00007f82f733c630,                                                         ),                                                     ),                                                     serializer: Literal(                                                         LiteralSerializer {                                                             expected_int: {},                                                             expected_str: {                                                                 "cat",                                                             },                                                             expected_py: None,                                                             name: "literal['cat']",                                                         },                                                     ),                                                 },                                             ),                                         ),                                         required: true,                                         serialize_by_alias: None,                                         serialization_exclude_if: None,                                     },                                 },                                 computed_fields: Some(                                     ComputedFields(                                         [],                                     ),                                 ),                                 mode: SimpleDict,                                 extra_serializer: None,                                 filter: SchemaFilter {                                     include: None,                                     exclude: None,                                 },                                 required_fields: 9,                             },                         ),                         has_extra: false,                         root_model: false,                         name: "CategoricalVariable",                     },                 ),                 enabled_from_config: false,             },         ),         enabled_from_config: false,     }, ), definitions=[])

The pydantic-core SchemaSerializer used to dump instances of the model.

__pydantic_setattr_handlers__: ClassVar[Dict[str, Callable[[BaseModel, str, Any], None]]] = {}

__setattr__ handlers. Memoizing the handlers leads to a dramatic performance improvement in __setattr__

__pydantic_validator__: ClassVar[SchemaValidator | PluggableSchemaValidator] = SchemaValidator(title="CategoricalVariable", validator=FunctionAfter(     FunctionAfterValidator {         validator: Model(             ModelValidator {                 revalidate: Never,                 validator: ModelFields(                     ModelFieldsValidator {                         fields: [                             Field {                                 name: "name",                                 lookup_path_collection: LookupPathCollection {                                     by_name: LookupPath {                                         first_item: PathItemString(                                             "name",                                         ),                                         rest: [],                                     },                                     by_alias: [],                                 },                                 validator: FunctionAfter(                                     FunctionAfterValidator {                                         validator: Str(                                             StrValidator {                                                 strict: false,                                                 coerce_numbers_to_str: false,                                             },                                         ),                                         func: Py(                                             0x00007f82d62e2c80,                                         ),                                         config: Py(                                             0x00007f82d62e3700,                                         ),                                         name: "function-after[check_name(), str]",                                         field_name: None,                                         info_arg: false,                                     },                                 ),                                 frozen: false,                             },                             Field {                                 name: "default",                                 lookup_path_collection: LookupPathCollection {                                     by_name: LookupPath {                                         first_item: PathItemString(                                             "default",                                         ),                                         rest: [],                                     },                                     by_alias: [],                                 },                                 validator: WithDefault(                                     WithDefaultValidator {                                         default: Default(                                             Py(                                                 0x00007f82f7c468c0,                                             ),                                         ),                                         on_error: Raise,                                         validator: Nullable(                                             NullableValidator {                                                 validator: Any(                                                     AnyValidator,                                                 ),                                                 name: "nullable[any]",                                             },                                         ),                                         validate_default: false,                                         copy_default: false,                                         name: "default[nullable[any]]",                                         undefined: Py(                                             0x00007f82f5afadb0,                                         ),                                     },                                 ),                                 frozen: false,                             },                             Field {                                 name: "bounds",                                 lookup_path_collection: LookupPathCollection {                                     by_name: LookupPath {                                         first_item: PathItemString(                                             "bounds",                                         ),                                         rest: [],                                     },                                     by_alias: [],                                 },                                 validator: FunctionAfter(                                     FunctionAfterValidator {                                         validator: List(                                             ListValidator {                                                 strict: false,                                                 item_validator: None,                                                 min_length: None,                                                 max_length: None,                                                 name: OnceLock(                                                     "list[any]",                                                 ),                                                 fail_fast: false,                                             },                                         ),                                         func: Py(                                             0x00007f82d62e2e80,                                         ),                                         config: Py(                                             0x00007f82d62e3700,                                         ),                                         name: "function-after[validate_bounds(), list[any]]",                                         field_name: None,                                         info_arg: false,                                     },                                 ),                                 frozen: false,                             },                             Field {                                 name: "shift",                                 lookup_path_collection: LookupPathCollection {                                     by_name: LookupPath {                                         first_item: PathItemString(                                             "shift",                                         ),                                         rest: [],                                     },                                     by_alias: [],                                 },                                 validator: WithDefault(                                     WithDefaultValidator {                                         default: Default(                                             Py(                                                 0x00007f82f7c468c0,                                             ),                                         ),                                         on_error: Raise,                                         validator: Literal(                                             LiteralValidator {                                                 lookup: LiteralLookup {                                                     expected_bool: None,                                                     expected_int: None,                                                     expected_str: None,                                                     expected_py_dict: Some(                                                         Py(                                                             0x00007f82d62e3440,                                                         ),                                                     ),                                                     expected_py_values: None,                                                     expected_py_primitives: None,                                                     values: [                                                         Py(                                                             0x00007f82f7c468c0,                                                         ),                                                     ],                                                 },                                                 expected_repr: "None",                                                 name: "literal[None]",                                             },                                         ),                                         validate_default: false,                                         copy_default: false,                                         name: "default[literal[None]]",                                         undefined: Py(                                             0x00007f82f5afadb0,                                         ),                                     },                                 ),                                 frozen: false,                             },                             Field {                                 name: "scale",                                 lookup_path_collection: LookupPathCollection {                                     by_name: LookupPath {                                         first_item: PathItemString(                                             "scale",                                         ),                                         rest: [],                                     },                                     by_alias: [],                                 },                                 validator: WithDefault(                                     WithDefaultValidator {                                         default: Default(                                             Py(                                                 0x00007f82f7c468c0,                                             ),                                         ),                                         on_error: Raise,                                         validator: FunctionAfter(                                             FunctionAfterValidator {                                                 validator: Literal(                                                     LiteralValidator {                                                         lookup: LiteralLookup {                                                             expected_bool: None,                                                             expected_int: None,                                                             expected_str: None,                                                             expected_py_dict: Some(                                                                 Py(                                                                     0x00007f82d62e3640,                                                                 ),                                                             ),                                                             expected_py_values: None,                                                             expected_py_primitives: None,                                                             values: [                                                                 Py(                                                                     0x00007f82f7c468c0,                                                                 ),                                                             ],                                                         },                                                         expected_repr: "None",                                                         name: "literal[None]",                                                     },                                                 ),                                                 func: Py(                                                     0x00007f82d62e2c00,                                                 ),                                                 config: Py(                                                     0x00007f82d62e3700,                                                 ),                                                 name: "function-after[validate_scale(), literal[None]]",                                                 field_name: None,                                                 info_arg: false,                                             },                                         ),                                         validate_default: false,                                         copy_default: false,                                         name: "default[function-after[validate_scale(), literal[None]]]",                                         undefined: Py(                                             0x00007f82f5afadb0,                                         ),                                     },                                 ),                                 frozen: false,                             },                             Field {                                 name: "units",                                 lookup_path_collection: LookupPathCollection {                                     by_name: LookupPath {                                         first_item: PathItemString(                                             "units",                                         ),                                         rest: [],                                     },                                     by_alias: [],                                 },                                 validator: WithDefault(                                     WithDefaultValidator {                                         default: Default(                                             Py(                                                 0x00007f82f7c468c0,                                             ),                                         ),                                         on_error: Raise,                                         validator: Nullable(                                             NullableValidator {                                                 validator: Str(                                                     StrValidator {                                                         strict: false,                                                         coerce_numbers_to_str: false,                                                     },                                                 ),                                                 name: "nullable[str]",                                             },                                         ),                                         validate_default: false,                                         copy_default: false,                                         name: "default[nullable[str]]",                                         undefined: Py(                                             0x00007f82f5afadb0,                                         ),                                     },                                 ),                                 frozen: false,                             },                             Field {                                 name: "description",                                 lookup_path_collection: LookupPathCollection {                                     by_name: LookupPath {                                         first_item: PathItemString(                                             "description",                                         ),                                         rest: [],                                     },                                     by_alias: [],                                 },                                 validator: WithDefault(                                     WithDefaultValidator {                                         default: Default(                                             Py(                                                 0x00007f82f7d3f660,                                             ),                                         ),                                         on_error: Raise,                                         validator: Nullable(                                             NullableValidator {                                                 validator: Str(                                                     StrValidator {                                                         strict: false,                                                         coerce_numbers_to_str: false,                                                     },                                                 ),                                                 name: "nullable[str]",                                             },                                         ),                                         validate_default: false,                                         copy_default: false,                                         name: "default[nullable[str]]",                                         undefined: Py(                                             0x00007f82f5afadb0,                                         ),                                     },                                 ),                                 frozen: false,                             },                             Field {                                 name: "options",                                 lookup_path_collection: LookupPathCollection {                                     by_name: LookupPath {                                         first_item: PathItemString(                                             "options",                                         ),                                         rest: [],                                     },                                     by_alias: [],                                 },                                 validator: WithDefault(                                     WithDefaultValidator {                                         default: DefaultFactory(                                             Py(                                                 0x00007f82f7c43b80,                                             ),                                             false,                                         ),                                         on_error: Raise,                                         validator: Dict(                                             DictValidator {                                                 strict: false,                                                 key_validator: Any(                                                     AnyValidator,                                                 ),                                                 value_validator: Any(                                                     AnyValidator,                                                 ),                                                 min_length: None,                                                 max_length: None,                                                 fail_fast: false,                                                 name: "dict[any,any]",                                             },                                         ),                                         validate_default: false,                                         copy_default: false,                                         name: "default[dict[any,any]]",                                         undefined: Py(                                             0x00007f82f5afadb0,                                         ),                                     },                                 ),                                 frozen: false,                             },                             Field {                                 name: "class_type",                                 lookup_path_collection: LookupPathCollection {                                     by_name: LookupPath {                                         first_item: PathItemString(                                             "class_type",                                         ),                                         rest: [],                                     },                                     by_alias: [],                                 },                                 validator: WithDefault(                                     WithDefaultValidator {                                         default: Default(                                             Py(                                                 0x00007f82f733c630,                                             ),                                         ),                                         on_error: Raise,                                         validator: Literal(                                             LiteralValidator {                                                 lookup: LiteralLookup {                                                     expected_bool: None,                                                     expected_int: None,                                                     expected_str: Some(                                                         {                                                             "cat": 0,                                                         },                                                     ),                                                     expected_py_dict: None,                                                     expected_py_values: None,                                                     expected_py_primitives: Some(                                                         Py(                                                             0x00007f82d62e3680,                                                         ),                                                     ),                                                     values: [                                                         Py(                                                             0x00007f82f733c630,                                                         ),                                                     ],                                                 },                                                 expected_repr: "'cat'",                                                 name: "literal['cat']",                                             },                                         ),                                         validate_default: false,                                         copy_default: false,                                         name: "default[literal['cat']]",                                         undefined: Py(                                             0x00007f82f5afadb0,                                         ),                                     },                                 ),                                 frozen: false,                             },                         ],                         model_name: "CategoricalVariable",                         extra_behavior: Ignore,                         extras_validator: None,                         extras_keys_validator: None,                         strict: false,                         from_attributes: false,                         loc_by_alias: true,                         lookup: LookupTree {                             inner: {                                 PathItemString(                                     "options",                                 ): LookupTreeNode {                                     fields: [                                         LookupFieldInfo {                                             field_index: 7,                                             lookup_priority: LookupFieldPriority {                                                 lookup_type: Both,                                                 alias_index: 0,                                             },                                         },                                     ],                                     map: {},                                     list: {},                                 },                                 PathItemString(                                     "class_type",                                 ): LookupTreeNode {                                     fields: [                                         LookupFieldInfo {                                             field_index: 8,                                             lookup_priority: LookupFieldPriority {                                                 lookup_type: Both,                                                 alias_index: 0,                                             },                                         },                                     ],                                     map: {},                                     list: {},                                 },                                 PathItemString(                                     "shift",                                 ): LookupTreeNode {                                     fields: [                                         LookupFieldInfo {                                             field_index: 3,                                             lookup_priority: LookupFieldPriority {                                                 lookup_type: Both,                                                 alias_index: 0,                                             },                                         },                                     ],                                     map: {},                                     list: {},                                 },                                 PathItemString(                                     "description",                                 ): LookupTreeNode {                                     fields: [                                         LookupFieldInfo {                                             field_index: 6,                                             lookup_priority: LookupFieldPriority {                                                 lookup_type: Both,                                                 alias_index: 0,                                             },                                         },                                     ],                                     map: {},                                     list: {},                                 },                                 PathItemString(                                     "default",                                 ): LookupTreeNode {                                     fields: [                                         LookupFieldInfo {                                             field_index: 1,                                             lookup_priority: LookupFieldPriority {                                                 lookup_type: Both,                                                 alias_index: 0,                                             },                                         },                                     ],                                     map: {},                                     list: {},                                 },                                 PathItemString(                                     "name",                                 ): LookupTreeNode {                                     fields: [                                         LookupFieldInfo {                                             field_index: 0,                                             lookup_priority: LookupFieldPriority {                                                 lookup_type: Both,                                                 alias_index: 0,                                             },                                         },                                     ],                                     map: {},                                     list: {},                                 },                                 PathItemString(                                     "bounds",                                 ): LookupTreeNode {                                     fields: [                                         LookupFieldInfo {                                             field_index: 2,                                             lookup_priority: LookupFieldPriority {                                                 lookup_type: Both,                                                 alias_index: 0,                                             },                                         },                                     ],                                     map: {},                                     list: {},                                 },                                 PathItemString(                                     "scale",                                 ): LookupTreeNode {                                     fields: [                                         LookupFieldInfo {                                             field_index: 4,                                             lookup_priority: LookupFieldPriority {                                                 lookup_type: Both,                                                 alias_index: 0,                                             },                                         },                                     ],                                     map: {},                                     list: {},                                 },                                 PathItemString(                                     "units",                                 ): LookupTreeNode {                                     fields: [                                         LookupFieldInfo {                                             field_index: 5,                                             lookup_priority: LookupFieldPriority {                                                 lookup_type: Both,                                                 alias_index: 0,                                             },                                         },                                     ],                                     map: {},                                     list: {},                                 },                             },                         },                         validate_by_alias: None,                         validate_by_name: None,                     },                 ),                 class: Py(                     0x000055a03c0e2510,                 ),                 generic_origin: None,                 post_init: None,                 frozen: false,                 custom_init: false,                 root_model: false,                 undefined: Py(                     0x00007f82f5afadb0,                 ),                 name: "CategoricalVariable",             },         ),         func: Py(             0x00007f82d62d8cc0,         ),         config: Py(             0x00007f82d62e3580,         ),         name: "function-after[check_default(), CategoricalVariable]",         field_name: None,         info_arg: false,     }, ), definitions=[], cache_strings=True)

The pydantic-core SchemaValidator used to validate instances of the model.

__signature__: ClassVar[Signature] = <Signature (*, name: str, default: Optional[Any] = None, bounds: List[Any], shift: Literal[None] = None, scale: Literal[None] = None, units: Optional[str] = None, description: Optional[str] = '', options: Dict = <factory>, class_type: Literal['cat'] = 'cat') -> None>

The synthesized __init__ [Signature][inspect.Signature] of the model.

model_config: ClassVar[ConfigDict] = {'validate_assignment': True}

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