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:
BaseModelRepresents 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.
Retrieve the names of all input variables.
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 the validity of the optimization problem setup.
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:
Return the flattened variable map DataFrame.
Return the flattened response map DataFrame.
Return 1-D int array of response indices flagged as objective or constraint.
Return the count of selected responses for partials computation.
Return 1-D int array mapping selected responses to gradient column index or -1.
Return 1-D int array mapping selected responses to jacobian column index or -1.
Return the total number of objective flattened responses.
The names of fields explicitly set during instantiation.
A dictionary containing extra values, if [extra][pydantic.config.ConfigDict.extra] is set to 'allow'.
Values of private attributes set on the model instance.
The names of the class variables defined on the model.
Metadata about the private attributes of the model.
Whether model building is completed, or if there are still undefined fields.
A dictionary of computed field names and their corresponding [ComputedFieldInfo][pydantic.fields.ComputedFieldInfo] objects.
The core schema of the model.
Whether the model has a custom __init__ method.
Metadata containing the decorators defined on the model.
A wrapper around the __pydantic_extra__ annotation, if explicitly annotated on a model.
A dictionary of field names and their corresponding [FieldInfo][pydantic.fields.FieldInfo] objects.
A dictionary containing metadata about generic Pydantic models.
Parent namespace of the model, used for automatic rebuilding of models.
The name of the post-init method for the model, if defined.
The pydantic-core SchemaSerializer used to dump instances of the model.
__setattr__ handlers.
The pydantic-core SchemaValidator used to validate instances of the model.
The synthesized __init__ [Signature][inspect.Signature] of the model.
Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].
Return the total number of constraint flattened responses.
Return 1-D bool array over flattened variables (True => free).
Return 1-D int array of full flattened positions for free elements.
Return the number of free flattened variables.
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:
- 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.objectivesandself.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 haveNonein these columns.Assigns contiguous column indices in the response map for objectives (
grad_col) and constraints (jac_col), withNonefor non-applicable entries.
- Returns:
A tuple
(var_map, res_map)where:var_mapcolumns:name,multi,flat,fixed,jac_row,grad_rowres_mapcolumns: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:
BaseModelRepresents 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.
Retrieve the names of all input inputs.
Retrieve the names of all outputs.
set_defaults(new_defaults)Set new default values for input outputs based on a provided dictionary.
Attributes:
The names of fields explicitly set during instantiation.
A dictionary containing extra values, if [extra][pydantic.config.ConfigDict.extra] is set to 'allow'.
Values of private attributes set on the model instance.
The names of the class variables defined on the model.
Metadata about the private attributes of the model.
Whether model building is completed, or if there are still undefined fields.
A dictionary of computed field names and their corresponding [ComputedFieldInfo][pydantic.fields.ComputedFieldInfo] objects.
The core schema of the model.
Whether the model has a custom __init__ method.
Metadata containing the decorators defined on the model.
A wrapper around the __pydantic_extra__ annotation, if explicitly annotated on a model.
A dictionary of field names and their corresponding [FieldInfo][pydantic.fields.FieldInfo] objects.
A dictionary containing metadata about generic Pydantic models.
Parent namespace of the model, used for automatic rebuilding of models.
The name of the post-init method for the model, if defined.
The pydantic-core SchemaSerializer used to dump instances of the model.
__setattr__ handlers.
The pydantic-core SchemaValidator used to validate instances of the model.
The synthesized __init__ [Signature][inspect.Signature] of the model.
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:
EvaluatorInfoAttributes:
The names of fields explicitly set during instantiation.
A dictionary containing extra values, if [extra][pydantic.config.ConfigDict.extra] is set to 'allow'.
Values of private attributes set on the model instance.
The names of the class variables defined on the model.
Metadata about the private attributes of the model.
Whether model building is completed, or if there are still undefined fields.
A dictionary of computed field names and their corresponding [ComputedFieldInfo][pydantic.fields.ComputedFieldInfo] objects.
The core schema of the model.
Whether the model has a custom __init__ method.
Metadata containing the decorators defined on the model.
A wrapper around the __pydantic_extra__ annotation, if explicitly annotated on a model.
A dictionary of field names and their corresponding [FieldInfo][pydantic.fields.FieldInfo] objects.
A dictionary containing metadata about generic Pydantic models.
Parent namespace of the model, used for automatic rebuilding of models.
The name of the post-init method for the model, if defined.
The pydantic-core SchemaSerializer used to dump instances of the model.
__setattr__ handlers.
The pydantic-core SchemaValidator used to validate instances of the model.
The synthesized __init__ [Signature][inspect.Signature] of the model.
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:
BaseModelClass 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:
The names of fields explicitly set during instantiation.
A dictionary containing extra values, if [extra][pydantic.config.ConfigDict.extra] is set to 'allow'.
Values of private attributes set on the model instance.
The names of the class variables defined on the model.
Metadata about the private attributes of the model.
Whether model building is completed, or if there are still undefined fields.
A dictionary of computed field names and their corresponding [ComputedFieldInfo][pydantic.fields.ComputedFieldInfo] objects.
The core schema of the model.
Whether the model has a custom __init__ method.
Metadata containing the decorators defined on the model.
A wrapper around the __pydantic_extra__ annotation, if explicitly annotated on a model.
A dictionary of field names and their corresponding [FieldInfo][pydantic.fields.FieldInfo] objects.
A dictionary containing metadata about generic Pydantic models.
Parent namespace of the model, used for automatic rebuilding of models.
The name of the post-init method for the model, if defined.
The pydantic-core SchemaSerializer used to dump instances of the model.
__setattr__ handlers.
The pydantic-core SchemaValidator used to validate instances of the model.
The synthesized __init__ [Signature][inspect.Signature] of the model.
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:
FloatVariableClass 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:
The names of fields explicitly set during instantiation.
A dictionary containing extra values, if [extra][pydantic.config.ConfigDict.extra] is set to 'allow'.
Values of private attributes set on the model instance.
The names of the class variables defined on the model.
Metadata about the private attributes of the model.
Whether model building is completed, or if there are still undefined fields.
A dictionary of computed field names and their corresponding [ComputedFieldInfo][pydantic.fields.ComputedFieldInfo] objects.
The core schema of the model.
Whether the model has a custom __init__ method.
Metadata containing the decorators defined on the model.
A wrapper around the __pydantic_extra__ annotation, if explicitly annotated on a model.
A dictionary of field names and their corresponding [FieldInfo][pydantic.fields.FieldInfo] objects.
A dictionary containing metadata about generic Pydantic models.
Parent namespace of the model, used for automatic rebuilding of models.
The name of the post-init method for the model, if defined.
The pydantic-core SchemaSerializer used to dump instances of the model.
__setattr__ handlers.
The pydantic-core SchemaValidator used to validate instances of the model.
The synthesized __init__ [Signature][inspect.Signature] of the model.
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:
FloatVariableClass 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 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:
The names of fields explicitly set during instantiation.
A dictionary containing extra values, if [extra][pydantic.config.ConfigDict.extra] is set to 'allow'.
Values of private attributes set on the model instance.
The names of the class variables defined on the model.
Metadata about the private attributes of the model.
Whether model building is completed, or if there are still undefined fields.
A dictionary of computed field names and their corresponding [ComputedFieldInfo][pydantic.fields.ComputedFieldInfo] objects.
The core schema of the model.
Whether the model has a custom __init__ method.
Metadata containing the decorators defined on the model.
A wrapper around the __pydantic_extra__ annotation, if explicitly annotated on a model.
A dictionary of field names and their corresponding [FieldInfo][pydantic.fields.FieldInfo] objects.
A dictionary containing metadata about generic Pydantic models.
Parent namespace of the model, used for automatic rebuilding of models.
The name of the post-init method for the model, if defined.
The pydantic-core SchemaSerializer used to dump instances of the model.
__setattr__ handlers.
The pydantic-core SchemaValidator used to validate instances of the model.
The synthesized __init__ [Signature][inspect.Signature] of the model.
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.
- 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:
- 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.
- 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.
- __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:
FloatVariableClass 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 that the default value, if defined, is valid.
Attributes:
The names of fields explicitly set during instantiation.
A dictionary containing extra values, if [extra][pydantic.config.ConfigDict.extra] is set to 'allow'.
Values of private attributes set on the model instance.
The names of the class variables defined on the model.
Metadata about the private attributes of the model.
Whether model building is completed, or if there are still undefined fields.
A dictionary of computed field names and their corresponding [ComputedFieldInfo][pydantic.fields.ComputedFieldInfo] objects.
The core schema of the model.
Whether the model has a custom __init__ method.
Metadata containing the decorators defined on the model.
A wrapper around the __pydantic_extra__ annotation, if explicitly annotated on a model.
A dictionary of field names and their corresponding [FieldInfo][pydantic.fields.FieldInfo] objects.
A dictionary containing metadata about generic Pydantic models.
Parent namespace of the model, used for automatic rebuilding of models.
The name of the post-init method for the model, if defined.
The pydantic-core SchemaSerializer used to dump instances of the model.
__setattr__ handlers.
The pydantic-core SchemaValidator used to validate instances of the model.
The synthesized __init__ [Signature][inspect.Signature] of the model.
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:
- __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].