Validation Examples
As a result of optimizations, and the low level nature of the Power Grid Model’s mathematical core, the core exceptions may not always be clear to the user. Therefore an optional validation mechanism is supplied, which validates data structures and values off-line. It is recommended to always validate your data before constructing a PowerGridModel instance. An alternative approach would be to validate only when an exception is raised, but be aware that not all data errors will raise exceptions: most of them will just yield invalid results without warning.
The basic methods and class definitions are available in the power_grid_model.validation module:
# Manual validation
# validate_input_data() assumes that you won't be using update data in your calculation.
# validate_batch_data() validates input_data in combination with batch/update data.
validate_input_data(input_data, calculation_type, symmetric) -> list[ValidationError]
validate_batch_data(input_data, update_data, calculation_type, symmetric) -> dict[int, list[ValidationError]]
# Assertions
# assert_valid_input_data() and assert_valid_batch_data() raise a ValidationException,
# containing the list/dict of errors, when the data is invalid.
assert_valid_input_data(input_data, calculation_type, symmetric) raises ValidationException
assert_valid_batch_data(input_data, calculation_type, update_data, symmetric) raises ValidationException
# Utilities
# errors_to_string() converts a set of errors to a human readable (multi-line) string representation
errors_to_string(errors, name, details)
Each validation error is an object which can be converted to a compact human-readable message using str(error). It
contains three member variables component, field and ids, which can be used to gather more specific information about the validation error, e.g. which object IDs are involved.
class ValidationError:
# Component(s): e.g. ComponentType.node or [ComponentType.node, ComponentType.line]
component: ComponentType | list[ComponentType]
# Field(s): e.g. AttributeType.id or [AttributeType.from_status, AttributeType.to_status] or
# [(ComponentType.node, AttributeType.id), (ComponentType.line, AttributeType.id)]
field: AttributeType | list[AttributeType] | list[tuple[ComponentType, AttributeType]]
# IDs: e.g. [1, 2, 3] or [(ComponentType.node, 1), (ComponentType.line, 1)]
ids: list[int] | list[tuple[ComponentType, int]] = []
Note: The data types of input_data and update_data are the same as expected by the power grid model.
from power_grid_model import AttributeType, ComponentType, DatasetType, PowerGridModel, initialize_array
# A power grid containing several errors
# node
node_error = initialize_array(DatasetType.input, ComponentType.node, 3)
node_error[AttributeType.id] = [1, 2, 3]
node_error[AttributeType.u_rated] = [10.5e3]
# line
line_error = initialize_array(DatasetType.input, ComponentType.line, 3)
line_error[AttributeType.id] = [4, 5, 6]
line_error[AttributeType.from_node] = [1, 2, 3]
line_error[AttributeType.to_node] = [2, 3, 4]
line_error[AttributeType.from_status] = [True]
line_error[AttributeType.to_status] = [True]
line_error[AttributeType.r1] = [0.25]
line_error[AttributeType.x1] = [0.2]
line_error[AttributeType.c1] = [10e-6]
line_error[AttributeType.tan1] = [0.0]
# Power Sensor
sensor_error = initialize_array(DatasetType.input, ComponentType.sym_power_sensor, 2)
sensor_error[AttributeType.id] = [6, 7]
sensor_error[AttributeType.measured_object] = [3, 4]
sensor_error[AttributeType.measured_terminal_type] = [0, 2]
sensor_error[AttributeType.p_measured] = [0]
sensor_error[AttributeType.q_measured] = [0]
sensor_error[AttributeType.power_sigma] = [0]
error_data = {
ComponentType.node: node_error,
ComponentType.line: line_error,
ComponentType.sym_power_sensor: sensor_error,
}
# Without validation
model = PowerGridModel(error_data)
output_data = model.calculate_state_estimation(symmetric=True)
---------------------------------------------------------------------------
IDWrongType Traceback (most recent call last)
Cell In[2], line 2
1 # Without validation
----> 2 model = PowerGridModel(error_data)
3 output_data = model.calculate_state_estimation(symmetric=True)
File /power-grid-model/src/power_grid_model/_core/power_grid_model.py:175, in PowerGridModel.__init__(self, input_data, system_frequency)
173 prepared_input = prepare_input_view(_map_to_component_types(input_data))
174 self._model_ptr = get_pgc().create_model(system_frequency, input_data=prepared_input.get_dataset_ptr())
--> 175 assert_no_error()
176 self._all_component_count = {k: v for k, v in prepared_input.get_info().total_elements().items() if v > 0}
File /power-grid-model/src/power_grid_model/_core/error_handling.py:200, in assert_no_error(batch_size, decode_error)
198 error = find_error(batch_size=batch_size, decode_error=decode_error)
199 if error is not None:
--> 200 raise error
IDWrongType: Wrong type for object with id 4
Try validate_input_data() or validate_batch_data() to validate your data.
from power_grid_model.validation import assert_valid_input_data
# Assert valid data
assert_valid_input_data(error_data, symmetric=True)
model = PowerGridModel(error_data)
output_data = model.calculate_state_estimation(symmetric=True)
---------------------------------------------------------------------------
ValidationException Traceback (most recent call last)
Cell In[3], line 4
1 from power_grid_model.validation import assert_valid_input_data
3 # Assert valid data
----> 4 assert_valid_input_data(error_data, symmetric=True)
5 model = PowerGridModel(error_data)
6 output_data = model.calculate_state_estimation(symmetric=True)
File /power-grid-model/src/power_grid_model/validation/assertions.py:56, in assert_valid_input_data(input_data, calculation_type, symmetric)
52 validation_errors = validate_input_data(
53 input_data=input_data, calculation_type=calculation_type, symmetric=symmetric
54 )
55 if validation_errors:
---> 56 raise ValidationException(validation_errors, "input_data")
ValidationException: There are 5 validation errors in input_data:
1. Fields line.id and sym_power_sensor.id are not unique for 2 lines/sym_power_sensors.
2. Field 'to_node' does not contain a valid node id for 1 line.
3. Field 'power_sigma' is not greater than zero for 2 sym_power_sensors.
4. Field 'measured_object' does not contain a valid line/asym_line/generic_branch/transformer id for 1 sym_power_sensor. (measured_terminal_type=branch_from)
5. Field 'measured_object' does not contain a valid source id for 1 sym_power_sensor. (measured_terminal_type=source)
from power_grid_model.validation import ValidationException
# Assert valid data and display component ids
try:
assert_valid_input_data(error_data, symmetric=True)
model = PowerGridModel(error_data)
output_data = model.calculate_state_estimation(symmetric=True)
except ValidationException as ex:
for error in ex.errors:
print(type(error).__name__, error.component, ":", error.ids)
MultiComponentNotUniqueError [line, sym_power_sensor] : [(line, np.int32(6)), (sym_power_sensor, np.int32(6))]
InvalidIdError line : [6]
NotGreaterThanError sym_power_sensor : [6, 7]
InvalidIdError sym_power_sensor : [6]
InvalidIdError sym_power_sensor : [7]
from power_grid_model.validation import errors_to_string, validate_input_data
# Validation only as exception handling
try:
model = PowerGridModel(error_data)
output_data = model.calculate_state_estimation(symmetric=True)
except RuntimeError as _ex:
errors = validate_input_data(error_data, symmetric=True)
print(errors_to_string(errors))
There are 5 validation errors in the data:
1. Fields line.id and sym_power_sensor.id are not unique for 2 lines/sym_power_sensors.
2. Field 'to_node' does not contain a valid node id for 1 line.
3. Field 'power_sigma' is not greater than zero for 2 sym_power_sensors.
4. Field 'measured_object' does not contain a valid line/asym_line/generic_branch/transformer id for 1 sym_power_sensor. (measured_terminal_type=branch_from)
5. Field 'measured_object' does not contain a valid source id for 1 sym_power_sensor. (measured_terminal_type=source)
# Manual checking and display detailed information about the invalid data
errors = validate_input_data(error_data, symmetric=True)
print(errors_to_string(errors, details=True))
There are 5 validation errors in the data:
Fields line.id and sym_power_sensor.id are not unique for 2 lines/sym_power_sensors.
component: line/sym_power_sensor
field: line.id and sym_power_sensor.id
ids: [(line, np.int32(6)), (sym_power_sensor, np.int32(6))]
Field 'to_node' does not contain a valid node id for 1 line.
component: line
field: 'to_node'
ids: [6]
ref_components: node
filters:
Field 'power_sigma' is not greater than zero for 2 sym_power_sensors.
component: sym_power_sensor
field: 'power_sigma'
ids: [6, 7]
ref_value: zero
Field 'measured_object' does not contain a valid line/asym_line/generic_branch/transformer id for 1 sym_power_sensor. (measured_terminal_type=branch_from)
component: sym_power_sensor
field: 'measured_object'
ids: [6]
ref_components: line/asym_line/generic_branch/transformer
filters: (measured_terminal_type=branch_from)
Field 'measured_object' does not contain a valid source id for 1 sym_power_sensor. (measured_terminal_type=source)
component: sym_power_sensor
field: 'measured_object'
ids: [7]
ref_components: source
filters: (measured_terminal_type=source)
Batch datasets
from power_grid_model.validation import validate_batch_data
node = initialize_array(DatasetType.input, ComponentType.node, 1)
node[:] = (1, 10e3)
source = initialize_array(DatasetType.input, ComponentType.source, 1)
source[:] = (2, 1, 1, 1.0, 0.0, 1e10, 0.1, 1.0)
load = initialize_array(DatasetType.input, ComponentType.sym_load, 1)
load[:] = (3, 1, 1, 0, 1000, 1000)
input_data = {
ComponentType.node: node,
ComponentType.source: source,
ComponentType.sym_load: load,
}
# update data
load_update = initialize_array(DatasetType.update, ComponentType.sym_load, (100, 1))
load_update[AttributeType.id] = 3
load_update[AttributeType.status] = -5
batch_data = {ComponentType.sym_load: load_update}
errors = validate_batch_data(input_data=input_data, update_data=batch_data, symmetric=True)
errors_to_string(errors, details=True)
"There is a validation error in the data, batch #0:\n\n\tField 'status' is not a boolean (0 or 1) for 1 sym_load.\n\t\tcomponent: sym_load\n\t\tfield: 'status'\n\t\tids: [3]\n\nThere is a validation error in the data, batch #1:\n\n\tField 'status' is not a boolean (0 or 1) for 1 sym_load.\n\t\tcomponent: sym_load\n\t\tfield: 'status'\n\t\tids: [3]\n\nThere is a validation error in the data, batch #2:\n\n\tField 'status' is not a boolean (0 or 1) for 1 sym_load.\n\t\tcomponent: sym_load\n\t\tfield: 'status'\n\t\tids: [3]\n\nThere is a validation error in the data, batch #3:\n\n\tField 'status' is not a boolean (0 or 1) for 1 sym_load.\n\t\tcomponent: sym_load\n\t\tfield: 'status'\n\t\tids: [3]\n\nThere is a validation error in the data, batch #4:\n\n\tField 'status' is not a boolean (0 or 1) for 1 sym_load.\n\t\tcomponent: sym_load\n\t\tfield: 'status'\n\t\tids: [3]\n\nThere is a validation error in the data, batch #5:\n\n\tField 'status' is not a boolean (0 or 1) for 1 sym_load.\n\t\tcomponent: sym_load\n\t\tfield: 'status'\n\t\tids: [3]\n\nThere is a validation error in the data, batch #6:\n\n\tField 'status' is not a boolean (0 or 1) for 1 sym_load.\n\t\tcomponent: sym_load\n\t\tfield: 'status'\n\t\tids: [3]\n\nThere is a validation error in the data, batch #7:\n\n\tField 'status' is not a boolean (0 or 1) for 1 sym_load.\n\t\tcomponent: sym_load\n\t\tfield: 'status'\n\t\tids: [3]\n\nThere is a validation error in the data, batch #8:\n\n\tField 'status' is not a boolean (0 or 1) for 1 sym_load.\n\t\tcomponent: sym_load\n\t\tfield: 'status'\n\t\tids: [3]\n\nThere is a validation error in the data, batch #9:\n\n\tField 'status' is not a boolean (0 or 1) for 1 sym_load.\n\t\tcomponent: sym_load\n\t\tfield: 'status'\n\t\tids: [3]\n\nThere is a validation error in the data, batch #10:\n\n\tField 'status' is not a boolean (0 or 1) for 1 sym_load.\n\t\tcomponent: sym_load\n\t\tfield: 'status'\n\t\tids: [3]\n\nThere is a validation error in the data, batch #11:\n\n\tField 'status' is not a boolean (0 or 1) for 1 sym_load.\n\t\tcomponent: sym_load\n\t\tfield: 'status'\n\t\tids: [3]\n\nThere is a validation error in the data, batch #12:\n\n\tField 'status' is not a boolean (0 or 1) for 1 sym_load.\n\t\tcomponent: sym_load\n\t\tfield: 'status'\n\t\tids: [3]\n\nThere is a validation error in the data, batch #13:\n\n\tField 'status' is not a boolean (0 or 1) for 1 sym_load.\n\t\tcomponent: sym_load\n\t\tfield: 'status'\n\t\tids: [3]\n\nThere is a validation error in the data, batch #14:\n\n\tField 'status' is not a boolean (0 or 1) for 1 sym_load.\n\t\tcomponent: sym_load\n\t\tfield: 'status'\n\t\tids: [3]\n\nThere is a validation error in the data, batch #15:\n\n\tField 'status' is not a boolean (0 or 1) for 1 sym_load.\n\t\tcomponent: sym_load\n\t\tfield: 'status'\n\t\tids: [3]\n\nThere is a validation error in the data, batch #16:\n\n\tField 'status' is not a boolean (0 or 1) for 1 sym_load.\n\t\tcomponent: sym_load\n\t\tfield: 'status'\n\t\tids: [3]\n\nThere is a validation error in the data, batch #17:\n\n\tField 'status' is not a boolean (0 or 1) for 1 sym_load.\n\t\tcomponent: sym_load\n\t\tfield: 'status'\n\t\tids: [3]\n\nThere is a validation error in the data, batch #18:\n\n\tField 'status' is not a boolean (0 or 1) for 1 sym_load.\n\t\tcomponent: sym_load\n\t\tfield: 'status'\n\t\tids: [3]\n\nThere is a validation error in the data, batch #19:\n\n\tField 'status' is not a boolean (0 or 1) for 1 sym_load.\n\t\tcomponent: sym_load\n\t\tfield: 'status'\n\t\tids: [3]\n\nThere is a validation error in the data, batch #20:\n\n\tField 'status' is not a boolean (0 or 1) for 1 sym_load.\n\t\tcomponent: sym_load\n\t\tfield: 'status'\n\t\tids: [3]\n\nThere is a validation error in the data, batch #21:\n\n\tField 'status' is not a boolean (0 or 1) for 1 sym_load.\n\t\tcomponent: sym_load\n\t\tfield: 'status'\n\t\tids: [3]\n\nThere is a validation error in the data, batch #22:\n\n\tField 'status' is not a boolean (0 or 1) for 1 sym_load.\n\t\tcomponent: sym_load\n\t\tfield: 'status'\n\t\tids: [3]\n\nThere is a validation error in the data, batch #23:\n\n\tField 'status' is not a boolean (0 or 1) for 1 sym_load.\n\t\tcomponent: sym_load\n\t\tfield: 'status'\n\t\tids: [3]\n\nThere is a validation error in the data, batch #24:\n\n\tField 'status' is not a boolean (0 or 1) for 1 sym_load.\n\t\tcomponent: sym_load\n\t\tfield: 'status'\n\t\tids: [3]\n\nThere is a validation error in the data, batch #25:\n\n\tField 'status' is not a boolean (0 or 1) for 1 sym_load.\n\t\tcomponent: sym_load\n\t\tfield: 'status'\n\t\tids: [3]\n\nThere is a validation error in the data, batch #26:\n\n\tField 'status' is not a boolean (0 or 1) for 1 sym_load.\n\t\tcomponent: sym_load\n\t\tfield: 'status'\n\t\tids: [3]\n\nThere is a validation error in the data, batch #27:\n\n\tField 'status' is not a boolean (0 or 1) for 1 sym_load.\n\t\tcomponent: sym_load\n\t\tfield: 'status'\n\t\tids: [3]\n\nThere is a validation error in the data, batch #28:\n\n\tField 'status' is not a boolean (0 or 1) for 1 sym_load.\n\t\tcomponent: sym_load\n\t\tfield: 'status'\n\t\tids: [3]\n\nThere is a validation error in the data, batch #29:\n\n\tField 'status' is not a boolean (0 or 1) for 1 sym_load.\n\t\tcomponent: sym_load\n\t\tfield: 'status'\n\t\tids: [3]\n\nThere is a validation error in the data, batch #30:\n\n\tField 'status' is not a boolean (0 or 1) for 1 sym_load.\n\t\tcomponent: sym_load\n\t\tfield: 'status'\n\t\tids: [3]\n\nThere is a validation error in the data, batch #31:\n\n\tField 'status' is not a boolean (0 or 1) for 1 sym_load.\n\t\tcomponent: sym_load\n\t\tfield: 'status'\n\t\tids: [3]\n\nThere is a validation error in the data, batch #32:\n\n\tField 'status' is not a boolean (0 or 1) for 1 sym_load.\n\t\tcomponent: sym_load\n\t\tfield: 'status'\n\t\tids: [3]\n\nThere is a validation error in the data, batch #33:\n\n\tField 'status' is not a boolean (0 or 1) for 1 sym_load.\n\t\tcomponent: sym_load\n\t\tfield: 'status'\n\t\tids: [3]\n\nThere is a validation error in the data, batch #34:\n\n\tField 'status' is not a boolean (0 or 1) for 1 sym_load.\n\t\tcomponent: sym_load\n\t\tfield: 'status'\n\t\tids: [3]\n\nThere is a validation error in the data, batch #35:\n\n\tField 'status' is not a boolean (0 or 1) for 1 sym_load.\n\t\tcomponent: sym_load\n\t\tfield: 'status'\n\t\tids: [3]\n\nThere is a validation error in the data, batch #36:\n\n\tField 'status' is not a boolean (0 or 1) for 1 sym_load.\n\t\tcomponent: sym_load\n\t\tfield: 'status'\n\t\tids: [3]\n\nThere is a validation error in the data, batch #37:\n\n\tField 'status' is not a boolean (0 or 1) for 1 sym_load.\n\t\tcomponent: sym_load\n\t\tfield: 'status'\n\t\tids: [3]\n\nThere is a validation error in the data, batch #38:\n\n\tField 'status' is not a boolean (0 or 1) for 1 sym_load.\n\t\tcomponent: sym_load\n\t\tfield: 'status'\n\t\tids: [3]\n\nThere is a validation error in the data, batch #39:\n\n\tField 'status' is not a boolean (0 or 1) for 1 sym_load.\n\t\tcomponent: sym_load\n\t\tfield: 'status'\n\t\tids: [3]\n\nThere is a validation error in the data, batch #40:\n\n\tField 'status' is not a boolean (0 or 1) for 1 sym_load.\n\t\tcomponent: sym_load\n\t\tfield: 'status'\n\t\tids: [3]\n\nThere is a validation error in the data, batch #41:\n\n\tField 'status' is not a boolean (0 or 1) for 1 sym_load.\n\t\tcomponent: sym_load\n\t\tfield: 'status'\n\t\tids: [3]\n\nThere is a validation error in the data, batch #42:\n\n\tField 'status' is not a boolean (0 or 1) for 1 sym_load.\n\t\tcomponent: sym_load\n\t\tfield: 'status'\n\t\tids: [3]\n\nThere is a validation error in the data, batch #43:\n\n\tField 'status' is not a boolean (0 or 1) for 1 sym_load.\n\t\tcomponent: sym_load\n\t\tfield: 'status'\n\t\tids: [3]\n\nThere is a validation error in the data, batch #44:\n\n\tField 'status' is not a boolean (0 or 1) for 1 sym_load.\n\t\tcomponent: sym_load\n\t\tfield: 'status'\n\t\tids: [3]\n\nThere is a validation error in the data, batch #45:\n\n\tField 'status' is not a boolean (0 or 1) for 1 sym_load.\n\t\tcomponent: sym_load\n\t\tfield: 'status'\n\t\tids: [3]\n\nThere is a validation error in the data, batch #46:\n\n\tField 'status' is not a boolean (0 or 1) for 1 sym_load.\n\t\tcomponent: sym_load\n\t\tfield: 'status'\n\t\tids: [3]\n\nThere is a validation error in the data, batch #47:\n\n\tField 'status' is not a boolean (0 or 1) for 1 sym_load.\n\t\tcomponent: sym_load\n\t\tfield: 'status'\n\t\tids: [3]\n\nThere is a validation error in the data, batch #48:\n\n\tField 'status' is not a boolean (0 or 1) for 1 sym_load.\n\t\tcomponent: sym_load\n\t\tfield: 'status'\n\t\tids: [3]\n\nThere is a validation error in the data, batch #49:\n\n\tField 'status' is not a boolean (0 or 1) for 1 sym_load.\n\t\tcomponent: sym_load\n\t\tfield: 'status'\n\t\tids: [3]\n\nThere is a validation error in the data, batch #50:\n\n\tField 'status' is not a boolean (0 or 1) for 1 sym_load.\n\t\tcomponent: sym_load\n\t\tfield: 'status'\n\t\tids: [3]\n\nThere is a validation error in the data, batch #51:\n\n\tField 'status' is not a boolean (0 or 1) for 1 sym_load.\n\t\tcomponent: sym_load\n\t\tfield: 'status'\n\t\tids: [3]\n\nThere is a validation error in the data, batch #52:\n\n\tField 'status' is not a boolean (0 or 1) for 1 sym_load.\n\t\tcomponent: sym_load\n\t\tfield: 'status'\n\t\tids: [3]\n\nThere is a validation error in the data, batch #53:\n\n\tField 'status' is not a boolean (0 or 1) for 1 sym_load.\n\t\tcomponent: sym_load\n\t\tfield: 'status'\n\t\tids: [3]\n\nThere is a validation error in the data, batch #54:\n\n\tField 'status' is not a boolean (0 or 1) for 1 sym_load.\n\t\tcomponent: sym_load\n\t\tfield: 'status'\n\t\tids: [3]\n\nThere is a validation error in the data, batch #55:\n\n\tField 'status' is not a boolean (0 or 1) for 1 sym_load.\n\t\tcomponent: sym_load\n\t\tfield: 'status'\n\t\tids: [3]\n\nThere is a validation error in the data, batch #56:\n\n\tField 'status' is not a boolean (0 or 1) for 1 sym_load.\n\t\tcomponent: sym_load\n\t\tfield: 'status'\n\t\tids: [3]\n\nThere is a validation error in the data, batch #57:\n\n\tField 'status' is not a boolean (0 or 1) for 1 sym_load.\n\t\tcomponent: sym_load\n\t\tfield: 'status'\n\t\tids: [3]\n\nThere is a validation error in the data, batch #58:\n\n\tField 'status' is not a boolean (0 or 1) for 1 sym_load.\n\t\tcomponent: sym_load\n\t\tfield: 'status'\n\t\tids: [3]\n\nThere is a validation error in the data, batch #59:\n\n\tField 'status' is not a boolean (0 or 1) for 1 sym_load.\n\t\tcomponent: sym_load\n\t\tfield: 'status'\n\t\tids: [3]\n\nThere is a validation error in the data, batch #60:\n\n\tField 'status' is not a boolean (0 or 1) for 1 sym_load.\n\t\tcomponent: sym_load\n\t\tfield: 'status'\n\t\tids: [3]\n\nThere is a validation error in the data, batch #61:\n\n\tField 'status' is not a boolean (0 or 1) for 1 sym_load.\n\t\tcomponent: sym_load\n\t\tfield: 'status'\n\t\tids: [3]\n\nThere is a validation error in the data, batch #62:\n\n\tField 'status' is not a boolean (0 or 1) for 1 sym_load.\n\t\tcomponent: sym_load\n\t\tfield: 'status'\n\t\tids: [3]\n\nThere is a validation error in the data, batch #63:\n\n\tField 'status' is not a boolean (0 or 1) for 1 sym_load.\n\t\tcomponent: sym_load\n\t\tfield: 'status'\n\t\tids: [3]\n\nThere is a validation error in the data, batch #64:\n\n\tField 'status' is not a boolean (0 or 1) for 1 sym_load.\n\t\tcomponent: sym_load\n\t\tfield: 'status'\n\t\tids: [3]\n\nThere is a validation error in the data, batch #65:\n\n\tField 'status' is not a boolean (0 or 1) for 1 sym_load.\n\t\tcomponent: sym_load\n\t\tfield: 'status'\n\t\tids: [3]\n\nThere is a validation error in the data, batch #66:\n\n\tField 'status' is not a boolean (0 or 1) for 1 sym_load.\n\t\tcomponent: sym_load\n\t\tfield: 'status'\n\t\tids: [3]\n\nThere is a validation error in the data, batch #67:\n\n\tField 'status' is not a boolean (0 or 1) for 1 sym_load.\n\t\tcomponent: sym_load\n\t\tfield: 'status'\n\t\tids: [3]\n\nThere is a validation error in the data, batch #68:\n\n\tField 'status' is not a boolean (0 or 1) for 1 sym_load.\n\t\tcomponent: sym_load\n\t\tfield: 'status'\n\t\tids: [3]\n\nThere is a validation error in the data, batch #69:\n\n\tField 'status' is not a boolean (0 or 1) for 1 sym_load.\n\t\tcomponent: sym_load\n\t\tfield: 'status'\n\t\tids: [3]\n\nThere is a validation error in the data, batch #70:\n\n\tField 'status' is not a boolean (0 or 1) for 1 sym_load.\n\t\tcomponent: sym_load\n\t\tfield: 'status'\n\t\tids: [3]\n\nThere is a validation error in the data, batch #71:\n\n\tField 'status' is not a boolean (0 or 1) for 1 sym_load.\n\t\tcomponent: sym_load\n\t\tfield: 'status'\n\t\tids: [3]\n\nThere is a validation error in the data, batch #72:\n\n\tField 'status' is not a boolean (0 or 1) for 1 sym_load.\n\t\tcomponent: sym_load\n\t\tfield: 'status'\n\t\tids: [3]\n\nThere is a validation error in the data, batch #73:\n\n\tField 'status' is not a boolean (0 or 1) for 1 sym_load.\n\t\tcomponent: sym_load\n\t\tfield: 'status'\n\t\tids: [3]\n\nThere is a validation error in the data, batch #74:\n\n\tField 'status' is not a boolean (0 or 1) for 1 sym_load.\n\t\tcomponent: sym_load\n\t\tfield: 'status'\n\t\tids: [3]\n\nThere is a validation error in the data, batch #75:\n\n\tField 'status' is not a boolean (0 or 1) for 1 sym_load.\n\t\tcomponent: sym_load\n\t\tfield: 'status'\n\t\tids: [3]\n\nThere is a validation error in the data, batch #76:\n\n\tField 'status' is not a boolean (0 or 1) for 1 sym_load.\n\t\tcomponent: sym_load\n\t\tfield: 'status'\n\t\tids: [3]\n\nThere is a validation error in the data, batch #77:\n\n\tField 'status' is not a boolean (0 or 1) for 1 sym_load.\n\t\tcomponent: sym_load\n\t\tfield: 'status'\n\t\tids: [3]\n\nThere is a validation error in the data, batch #78:\n\n\tField 'status' is not a boolean (0 or 1) for 1 sym_load.\n\t\tcomponent: sym_load\n\t\tfield: 'status'\n\t\tids: [3]\n\nThere is a validation error in the data, batch #79:\n\n\tField 'status' is not a boolean (0 or 1) for 1 sym_load.\n\t\tcomponent: sym_load\n\t\tfield: 'status'\n\t\tids: [3]\n\nThere is a validation error in the data, batch #80:\n\n\tField 'status' is not a boolean (0 or 1) for 1 sym_load.\n\t\tcomponent: sym_load\n\t\tfield: 'status'\n\t\tids: [3]\n\nThere is a validation error in the data, batch #81:\n\n\tField 'status' is not a boolean (0 or 1) for 1 sym_load.\n\t\tcomponent: sym_load\n\t\tfield: 'status'\n\t\tids: [3]\n\nThere is a validation error in the data, batch #82:\n\n\tField 'status' is not a boolean (0 or 1) for 1 sym_load.\n\t\tcomponent: sym_load\n\t\tfield: 'status'\n\t\tids: [3]\n\nThere is a validation error in the data, batch #83:\n\n\tField 'status' is not a boolean (0 or 1) for 1 sym_load.\n\t\tcomponent: sym_load\n\t\tfield: 'status'\n\t\tids: [3]\n\nThere is a validation error in the data, batch #84:\n\n\tField 'status' is not a boolean (0 or 1) for 1 sym_load.\n\t\tcomponent: sym_load\n\t\tfield: 'status'\n\t\tids: [3]\n\nThere is a validation error in the data, batch #85:\n\n\tField 'status' is not a boolean (0 or 1) for 1 sym_load.\n\t\tcomponent: sym_load\n\t\tfield: 'status'\n\t\tids: [3]\n\nThere is a validation error in the data, batch #86:\n\n\tField 'status' is not a boolean (0 or 1) for 1 sym_load.\n\t\tcomponent: sym_load\n\t\tfield: 'status'\n\t\tids: [3]\n\nThere is a validation error in the data, batch #87:\n\n\tField 'status' is not a boolean (0 or 1) for 1 sym_load.\n\t\tcomponent: sym_load\n\t\tfield: 'status'\n\t\tids: [3]\n\nThere is a validation error in the data, batch #88:\n\n\tField 'status' is not a boolean (0 or 1) for 1 sym_load.\n\t\tcomponent: sym_load\n\t\tfield: 'status'\n\t\tids: [3]\n\nThere is a validation error in the data, batch #89:\n\n\tField 'status' is not a boolean (0 or 1) for 1 sym_load.\n\t\tcomponent: sym_load\n\t\tfield: 'status'\n\t\tids: [3]\n\nThere is a validation error in the data, batch #90:\n\n\tField 'status' is not a boolean (0 or 1) for 1 sym_load.\n\t\tcomponent: sym_load\n\t\tfield: 'status'\n\t\tids: [3]\n\nThere is a validation error in the data, batch #91:\n\n\tField 'status' is not a boolean (0 or 1) for 1 sym_load.\n\t\tcomponent: sym_load\n\t\tfield: 'status'\n\t\tids: [3]\n\nThere is a validation error in the data, batch #92:\n\n\tField 'status' is not a boolean (0 or 1) for 1 sym_load.\n\t\tcomponent: sym_load\n\t\tfield: 'status'\n\t\tids: [3]\n\nThere is a validation error in the data, batch #93:\n\n\tField 'status' is not a boolean (0 or 1) for 1 sym_load.\n\t\tcomponent: sym_load\n\t\tfield: 'status'\n\t\tids: [3]\n\nThere is a validation error in the data, batch #94:\n\n\tField 'status' is not a boolean (0 or 1) for 1 sym_load.\n\t\tcomponent: sym_load\n\t\tfield: 'status'\n\t\tids: [3]\n\nThere is a validation error in the data, batch #95:\n\n\tField 'status' is not a boolean (0 or 1) for 1 sym_load.\n\t\tcomponent: sym_load\n\t\tfield: 'status'\n\t\tids: [3]\n\nThere is a validation error in the data, batch #96:\n\n\tField 'status' is not a boolean (0 or 1) for 1 sym_load.\n\t\tcomponent: sym_load\n\t\tfield: 'status'\n\t\tids: [3]\n\nThere is a validation error in the data, batch #97:\n\n\tField 'status' is not a boolean (0 or 1) for 1 sym_load.\n\t\tcomponent: sym_load\n\t\tfield: 'status'\n\t\tids: [3]\n\nThere is a validation error in the data, batch #98:\n\n\tField 'status' is not a boolean (0 or 1) for 1 sym_load.\n\t\tcomponent: sym_load\n\t\tfield: 'status'\n\t\tids: [3]\n\nThere is a validation error in the data, batch #99:\n\n\tField 'status' is not a boolean (0 or 1) for 1 sym_load.\n\t\tcomponent: sym_load\n\t\tfield: 'status'\n\t\tids: [3]\n"
Tip: Validating Large datasets
The data validator is not designed for performance and is quite slow at validating large datasets. Practically most errors can be identified in the first few scenarios. Hence a handy tip is to validate a small section of the data using slicing.
sliced_batch_data = {component: array[:100] for component, array in batch_data.items()}
errors = validate_batch_data(input_data=input_data, update_data=sliced_batch_data, symmetric=True)
errors_to_string(errors, details=True)
"There is a validation error in the data, batch #0:\n\n\tField 'status' is not a boolean (0 or 1) for 1 sym_load.\n\t\tcomponent: sym_load\n\t\tfield: 'status'\n\t\tids: [3]\n\nThere is a validation error in the data, batch #1:\n\n\tField 'status' is not a boolean (0 or 1) for 1 sym_load.\n\t\tcomponent: sym_load\n\t\tfield: 'status'\n\t\tids: [3]\n\nThere is a validation error in the data, batch #2:\n\n\tField 'status' is not a boolean (0 or 1) for 1 sym_load.\n\t\tcomponent: sym_load\n\t\tfield: 'status'\n\t\tids: [3]\n\nThere is a validation error in the data, batch #3:\n\n\tField 'status' is not a boolean (0 or 1) for 1 sym_load.\n\t\tcomponent: sym_load\n\t\tfield: 'status'\n\t\tids: [3]\n\nThere is a validation error in the data, batch #4:\n\n\tField 'status' is not a boolean (0 or 1) for 1 sym_load.\n\t\tcomponent: sym_load\n\t\tfield: 'status'\n\t\tids: [3]\n\nThere is a validation error in the data, batch #5:\n\n\tField 'status' is not a boolean (0 or 1) for 1 sym_load.\n\t\tcomponent: sym_load\n\t\tfield: 'status'\n\t\tids: [3]\n\nThere is a validation error in the data, batch #6:\n\n\tField 'status' is not a boolean (0 or 1) for 1 sym_load.\n\t\tcomponent: sym_load\n\t\tfield: 'status'\n\t\tids: [3]\n\nThere is a validation error in the data, batch #7:\n\n\tField 'status' is not a boolean (0 or 1) for 1 sym_load.\n\t\tcomponent: sym_load\n\t\tfield: 'status'\n\t\tids: [3]\n\nThere is a validation error in the data, batch #8:\n\n\tField 'status' is not a boolean (0 or 1) for 1 sym_load.\n\t\tcomponent: sym_load\n\t\tfield: 'status'\n\t\tids: [3]\n\nThere is a validation error in the data, batch #9:\n\n\tField 'status' is not a boolean (0 or 1) for 1 sym_load.\n\t\tcomponent: sym_load\n\t\tfield: 'status'\n\t\tids: [3]\n\nThere is a validation error in the data, batch #10:\n\n\tField 'status' is not a boolean (0 or 1) for 1 sym_load.\n\t\tcomponent: sym_load\n\t\tfield: 'status'\n\t\tids: [3]\n\nThere is a validation error in the data, batch #11:\n\n\tField 'status' is not a boolean (0 or 1) for 1 sym_load.\n\t\tcomponent: sym_load\n\t\tfield: 'status'\n\t\tids: [3]\n\nThere is a validation error in the data, batch #12:\n\n\tField 'status' is not a boolean (0 or 1) for 1 sym_load.\n\t\tcomponent: sym_load\n\t\tfield: 'status'\n\t\tids: [3]\n\nThere is a validation error in the data, batch #13:\n\n\tField 'status' is not a boolean (0 or 1) for 1 sym_load.\n\t\tcomponent: sym_load\n\t\tfield: 'status'\n\t\tids: [3]\n\nThere is a validation error in the data, batch #14:\n\n\tField 'status' is not a boolean (0 or 1) for 1 sym_load.\n\t\tcomponent: sym_load\n\t\tfield: 'status'\n\t\tids: [3]\n\nThere is a validation error in the data, batch #15:\n\n\tField 'status' is not a boolean (0 or 1) for 1 sym_load.\n\t\tcomponent: sym_load\n\t\tfield: 'status'\n\t\tids: [3]\n\nThere is a validation error in the data, batch #16:\n\n\tField 'status' is not a boolean (0 or 1) for 1 sym_load.\n\t\tcomponent: sym_load\n\t\tfield: 'status'\n\t\tids: [3]\n\nThere is a validation error in the data, batch #17:\n\n\tField 'status' is not a boolean (0 or 1) for 1 sym_load.\n\t\tcomponent: sym_load\n\t\tfield: 'status'\n\t\tids: [3]\n\nThere is a validation error in the data, batch #18:\n\n\tField 'status' is not a boolean (0 or 1) for 1 sym_load.\n\t\tcomponent: sym_load\n\t\tfield: 'status'\n\t\tids: [3]\n\nThere is a validation error in the data, batch #19:\n\n\tField 'status' is not a boolean (0 or 1) for 1 sym_load.\n\t\tcomponent: sym_load\n\t\tfield: 'status'\n\t\tids: [3]\n\nThere is a validation error in the data, batch #20:\n\n\tField 'status' is not a boolean (0 or 1) for 1 sym_load.\n\t\tcomponent: sym_load\n\t\tfield: 'status'\n\t\tids: [3]\n\nThere is a validation error in the data, batch #21:\n\n\tField 'status' is not a boolean (0 or 1) for 1 sym_load.\n\t\tcomponent: sym_load\n\t\tfield: 'status'\n\t\tids: [3]\n\nThere is a validation error in the data, batch #22:\n\n\tField 'status' is not a boolean (0 or 1) for 1 sym_load.\n\t\tcomponent: sym_load\n\t\tfield: 'status'\n\t\tids: [3]\n\nThere is a validation error in the data, batch #23:\n\n\tField 'status' is not a boolean (0 or 1) for 1 sym_load.\n\t\tcomponent: sym_load\n\t\tfield: 'status'\n\t\tids: [3]\n\nThere is a validation error in the data, batch #24:\n\n\tField 'status' is not a boolean (0 or 1) for 1 sym_load.\n\t\tcomponent: sym_load\n\t\tfield: 'status'\n\t\tids: [3]\n\nThere is a validation error in the data, batch #25:\n\n\tField 'status' is not a boolean (0 or 1) for 1 sym_load.\n\t\tcomponent: sym_load\n\t\tfield: 'status'\n\t\tids: [3]\n\nThere is a validation error in the data, batch #26:\n\n\tField 'status' is not a boolean (0 or 1) for 1 sym_load.\n\t\tcomponent: sym_load\n\t\tfield: 'status'\n\t\tids: [3]\n\nThere is a validation error in the data, batch #27:\n\n\tField 'status' is not a boolean (0 or 1) for 1 sym_load.\n\t\tcomponent: sym_load\n\t\tfield: 'status'\n\t\tids: [3]\n\nThere is a validation error in the data, batch #28:\n\n\tField 'status' is not a boolean (0 or 1) for 1 sym_load.\n\t\tcomponent: sym_load\n\t\tfield: 'status'\n\t\tids: [3]\n\nThere is a validation error in the data, batch #29:\n\n\tField 'status' is not a boolean (0 or 1) for 1 sym_load.\n\t\tcomponent: sym_load\n\t\tfield: 'status'\n\t\tids: [3]\n\nThere is a validation error in the data, batch #30:\n\n\tField 'status' is not a boolean (0 or 1) for 1 sym_load.\n\t\tcomponent: sym_load\n\t\tfield: 'status'\n\t\tids: [3]\n\nThere is a validation error in the data, batch #31:\n\n\tField 'status' is not a boolean (0 or 1) for 1 sym_load.\n\t\tcomponent: sym_load\n\t\tfield: 'status'\n\t\tids: [3]\n\nThere is a validation error in the data, batch #32:\n\n\tField 'status' is not a boolean (0 or 1) for 1 sym_load.\n\t\tcomponent: sym_load\n\t\tfield: 'status'\n\t\tids: [3]\n\nThere is a validation error in the data, batch #33:\n\n\tField 'status' is not a boolean (0 or 1) for 1 sym_load.\n\t\tcomponent: sym_load\n\t\tfield: 'status'\n\t\tids: [3]\n\nThere is a validation error in the data, batch #34:\n\n\tField 'status' is not a boolean (0 or 1) for 1 sym_load.\n\t\tcomponent: sym_load\n\t\tfield: 'status'\n\t\tids: [3]\n\nThere is a validation error in the data, batch #35:\n\n\tField 'status' is not a boolean (0 or 1) for 1 sym_load.\n\t\tcomponent: sym_load\n\t\tfield: 'status'\n\t\tids: [3]\n\nThere is a validation error in the data, batch #36:\n\n\tField 'status' is not a boolean (0 or 1) for 1 sym_load.\n\t\tcomponent: sym_load\n\t\tfield: 'status'\n\t\tids: [3]\n\nThere is a validation error in the data, batch #37:\n\n\tField 'status' is not a boolean (0 or 1) for 1 sym_load.\n\t\tcomponent: sym_load\n\t\tfield: 'status'\n\t\tids: [3]\n\nThere is a validation error in the data, batch #38:\n\n\tField 'status' is not a boolean (0 or 1) for 1 sym_load.\n\t\tcomponent: sym_load\n\t\tfield: 'status'\n\t\tids: [3]\n\nThere is a validation error in the data, batch #39:\n\n\tField 'status' is not a boolean (0 or 1) for 1 sym_load.\n\t\tcomponent: sym_load\n\t\tfield: 'status'\n\t\tids: [3]\n\nThere is a validation error in the data, batch #40:\n\n\tField 'status' is not a boolean (0 or 1) for 1 sym_load.\n\t\tcomponent: sym_load\n\t\tfield: 'status'\n\t\tids: [3]\n\nThere is a validation error in the data, batch #41:\n\n\tField 'status' is not a boolean (0 or 1) for 1 sym_load.\n\t\tcomponent: sym_load\n\t\tfield: 'status'\n\t\tids: [3]\n\nThere is a validation error in the data, batch #42:\n\n\tField 'status' is not a boolean (0 or 1) for 1 sym_load.\n\t\tcomponent: sym_load\n\t\tfield: 'status'\n\t\tids: [3]\n\nThere is a validation error in the data, batch #43:\n\n\tField 'status' is not a boolean (0 or 1) for 1 sym_load.\n\t\tcomponent: sym_load\n\t\tfield: 'status'\n\t\tids: [3]\n\nThere is a validation error in the data, batch #44:\n\n\tField 'status' is not a boolean (0 or 1) for 1 sym_load.\n\t\tcomponent: sym_load\n\t\tfield: 'status'\n\t\tids: [3]\n\nThere is a validation error in the data, batch #45:\n\n\tField 'status' is not a boolean (0 or 1) for 1 sym_load.\n\t\tcomponent: sym_load\n\t\tfield: 'status'\n\t\tids: [3]\n\nThere is a validation error in the data, batch #46:\n\n\tField 'status' is not a boolean (0 or 1) for 1 sym_load.\n\t\tcomponent: sym_load\n\t\tfield: 'status'\n\t\tids: [3]\n\nThere is a validation error in the data, batch #47:\n\n\tField 'status' is not a boolean (0 or 1) for 1 sym_load.\n\t\tcomponent: sym_load\n\t\tfield: 'status'\n\t\tids: [3]\n\nThere is a validation error in the data, batch #48:\n\n\tField 'status' is not a boolean (0 or 1) for 1 sym_load.\n\t\tcomponent: sym_load\n\t\tfield: 'status'\n\t\tids: [3]\n\nThere is a validation error in the data, batch #49:\n\n\tField 'status' is not a boolean (0 or 1) for 1 sym_load.\n\t\tcomponent: sym_load\n\t\tfield: 'status'\n\t\tids: [3]\n\nThere is a validation error in the data, batch #50:\n\n\tField 'status' is not a boolean (0 or 1) for 1 sym_load.\n\t\tcomponent: sym_load\n\t\tfield: 'status'\n\t\tids: [3]\n\nThere is a validation error in the data, batch #51:\n\n\tField 'status' is not a boolean (0 or 1) for 1 sym_load.\n\t\tcomponent: sym_load\n\t\tfield: 'status'\n\t\tids: [3]\n\nThere is a validation error in the data, batch #52:\n\n\tField 'status' is not a boolean (0 or 1) for 1 sym_load.\n\t\tcomponent: sym_load\n\t\tfield: 'status'\n\t\tids: [3]\n\nThere is a validation error in the data, batch #53:\n\n\tField 'status' is not a boolean (0 or 1) for 1 sym_load.\n\t\tcomponent: sym_load\n\t\tfield: 'status'\n\t\tids: [3]\n\nThere is a validation error in the data, batch #54:\n\n\tField 'status' is not a boolean (0 or 1) for 1 sym_load.\n\t\tcomponent: sym_load\n\t\tfield: 'status'\n\t\tids: [3]\n\nThere is a validation error in the data, batch #55:\n\n\tField 'status' is not a boolean (0 or 1) for 1 sym_load.\n\t\tcomponent: sym_load\n\t\tfield: 'status'\n\t\tids: [3]\n\nThere is a validation error in the data, batch #56:\n\n\tField 'status' is not a boolean (0 or 1) for 1 sym_load.\n\t\tcomponent: sym_load\n\t\tfield: 'status'\n\t\tids: [3]\n\nThere is a validation error in the data, batch #57:\n\n\tField 'status' is not a boolean (0 or 1) for 1 sym_load.\n\t\tcomponent: sym_load\n\t\tfield: 'status'\n\t\tids: [3]\n\nThere is a validation error in the data, batch #58:\n\n\tField 'status' is not a boolean (0 or 1) for 1 sym_load.\n\t\tcomponent: sym_load\n\t\tfield: 'status'\n\t\tids: [3]\n\nThere is a validation error in the data, batch #59:\n\n\tField 'status' is not a boolean (0 or 1) for 1 sym_load.\n\t\tcomponent: sym_load\n\t\tfield: 'status'\n\t\tids: [3]\n\nThere is a validation error in the data, batch #60:\n\n\tField 'status' is not a boolean (0 or 1) for 1 sym_load.\n\t\tcomponent: sym_load\n\t\tfield: 'status'\n\t\tids: [3]\n\nThere is a validation error in the data, batch #61:\n\n\tField 'status' is not a boolean (0 or 1) for 1 sym_load.\n\t\tcomponent: sym_load\n\t\tfield: 'status'\n\t\tids: [3]\n\nThere is a validation error in the data, batch #62:\n\n\tField 'status' is not a boolean (0 or 1) for 1 sym_load.\n\t\tcomponent: sym_load\n\t\tfield: 'status'\n\t\tids: [3]\n\nThere is a validation error in the data, batch #63:\n\n\tField 'status' is not a boolean (0 or 1) for 1 sym_load.\n\t\tcomponent: sym_load\n\t\tfield: 'status'\n\t\tids: [3]\n\nThere is a validation error in the data, batch #64:\n\n\tField 'status' is not a boolean (0 or 1) for 1 sym_load.\n\t\tcomponent: sym_load\n\t\tfield: 'status'\n\t\tids: [3]\n\nThere is a validation error in the data, batch #65:\n\n\tField 'status' is not a boolean (0 or 1) for 1 sym_load.\n\t\tcomponent: sym_load\n\t\tfield: 'status'\n\t\tids: [3]\n\nThere is a validation error in the data, batch #66:\n\n\tField 'status' is not a boolean (0 or 1) for 1 sym_load.\n\t\tcomponent: sym_load\n\t\tfield: 'status'\n\t\tids: [3]\n\nThere is a validation error in the data, batch #67:\n\n\tField 'status' is not a boolean (0 or 1) for 1 sym_load.\n\t\tcomponent: sym_load\n\t\tfield: 'status'\n\t\tids: [3]\n\nThere is a validation error in the data, batch #68:\n\n\tField 'status' is not a boolean (0 or 1) for 1 sym_load.\n\t\tcomponent: sym_load\n\t\tfield: 'status'\n\t\tids: [3]\n\nThere is a validation error in the data, batch #69:\n\n\tField 'status' is not a boolean (0 or 1) for 1 sym_load.\n\t\tcomponent: sym_load\n\t\tfield: 'status'\n\t\tids: [3]\n\nThere is a validation error in the data, batch #70:\n\n\tField 'status' is not a boolean (0 or 1) for 1 sym_load.\n\t\tcomponent: sym_load\n\t\tfield: 'status'\n\t\tids: [3]\n\nThere is a validation error in the data, batch #71:\n\n\tField 'status' is not a boolean (0 or 1) for 1 sym_load.\n\t\tcomponent: sym_load\n\t\tfield: 'status'\n\t\tids: [3]\n\nThere is a validation error in the data, batch #72:\n\n\tField 'status' is not a boolean (0 or 1) for 1 sym_load.\n\t\tcomponent: sym_load\n\t\tfield: 'status'\n\t\tids: [3]\n\nThere is a validation error in the data, batch #73:\n\n\tField 'status' is not a boolean (0 or 1) for 1 sym_load.\n\t\tcomponent: sym_load\n\t\tfield: 'status'\n\t\tids: [3]\n\nThere is a validation error in the data, batch #74:\n\n\tField 'status' is not a boolean (0 or 1) for 1 sym_load.\n\t\tcomponent: sym_load\n\t\tfield: 'status'\n\t\tids: [3]\n\nThere is a validation error in the data, batch #75:\n\n\tField 'status' is not a boolean (0 or 1) for 1 sym_load.\n\t\tcomponent: sym_load\n\t\tfield: 'status'\n\t\tids: [3]\n\nThere is a validation error in the data, batch #76:\n\n\tField 'status' is not a boolean (0 or 1) for 1 sym_load.\n\t\tcomponent: sym_load\n\t\tfield: 'status'\n\t\tids: [3]\n\nThere is a validation error in the data, batch #77:\n\n\tField 'status' is not a boolean (0 or 1) for 1 sym_load.\n\t\tcomponent: sym_load\n\t\tfield: 'status'\n\t\tids: [3]\n\nThere is a validation error in the data, batch #78:\n\n\tField 'status' is not a boolean (0 or 1) for 1 sym_load.\n\t\tcomponent: sym_load\n\t\tfield: 'status'\n\t\tids: [3]\n\nThere is a validation error in the data, batch #79:\n\n\tField 'status' is not a boolean (0 or 1) for 1 sym_load.\n\t\tcomponent: sym_load\n\t\tfield: 'status'\n\t\tids: [3]\n\nThere is a validation error in the data, batch #80:\n\n\tField 'status' is not a boolean (0 or 1) for 1 sym_load.\n\t\tcomponent: sym_load\n\t\tfield: 'status'\n\t\tids: [3]\n\nThere is a validation error in the data, batch #81:\n\n\tField 'status' is not a boolean (0 or 1) for 1 sym_load.\n\t\tcomponent: sym_load\n\t\tfield: 'status'\n\t\tids: [3]\n\nThere is a validation error in the data, batch #82:\n\n\tField 'status' is not a boolean (0 or 1) for 1 sym_load.\n\t\tcomponent: sym_load\n\t\tfield: 'status'\n\t\tids: [3]\n\nThere is a validation error in the data, batch #83:\n\n\tField 'status' is not a boolean (0 or 1) for 1 sym_load.\n\t\tcomponent: sym_load\n\t\tfield: 'status'\n\t\tids: [3]\n\nThere is a validation error in the data, batch #84:\n\n\tField 'status' is not a boolean (0 or 1) for 1 sym_load.\n\t\tcomponent: sym_load\n\t\tfield: 'status'\n\t\tids: [3]\n\nThere is a validation error in the data, batch #85:\n\n\tField 'status' is not a boolean (0 or 1) for 1 sym_load.\n\t\tcomponent: sym_load\n\t\tfield: 'status'\n\t\tids: [3]\n\nThere is a validation error in the data, batch #86:\n\n\tField 'status' is not a boolean (0 or 1) for 1 sym_load.\n\t\tcomponent: sym_load\n\t\tfield: 'status'\n\t\tids: [3]\n\nThere is a validation error in the data, batch #87:\n\n\tField 'status' is not a boolean (0 or 1) for 1 sym_load.\n\t\tcomponent: sym_load\n\t\tfield: 'status'\n\t\tids: [3]\n\nThere is a validation error in the data, batch #88:\n\n\tField 'status' is not a boolean (0 or 1) for 1 sym_load.\n\t\tcomponent: sym_load\n\t\tfield: 'status'\n\t\tids: [3]\n\nThere is a validation error in the data, batch #89:\n\n\tField 'status' is not a boolean (0 or 1) for 1 sym_load.\n\t\tcomponent: sym_load\n\t\tfield: 'status'\n\t\tids: [3]\n\nThere is a validation error in the data, batch #90:\n\n\tField 'status' is not a boolean (0 or 1) for 1 sym_load.\n\t\tcomponent: sym_load\n\t\tfield: 'status'\n\t\tids: [3]\n\nThere is a validation error in the data, batch #91:\n\n\tField 'status' is not a boolean (0 or 1) for 1 sym_load.\n\t\tcomponent: sym_load\n\t\tfield: 'status'\n\t\tids: [3]\n\nThere is a validation error in the data, batch #92:\n\n\tField 'status' is not a boolean (0 or 1) for 1 sym_load.\n\t\tcomponent: sym_load\n\t\tfield: 'status'\n\t\tids: [3]\n\nThere is a validation error in the data, batch #93:\n\n\tField 'status' is not a boolean (0 or 1) for 1 sym_load.\n\t\tcomponent: sym_load\n\t\tfield: 'status'\n\t\tids: [3]\n\nThere is a validation error in the data, batch #94:\n\n\tField 'status' is not a boolean (0 or 1) for 1 sym_load.\n\t\tcomponent: sym_load\n\t\tfield: 'status'\n\t\tids: [3]\n\nThere is a validation error in the data, batch #95:\n\n\tField 'status' is not a boolean (0 or 1) for 1 sym_load.\n\t\tcomponent: sym_load\n\t\tfield: 'status'\n\t\tids: [3]\n\nThere is a validation error in the data, batch #96:\n\n\tField 'status' is not a boolean (0 or 1) for 1 sym_load.\n\t\tcomponent: sym_load\n\t\tfield: 'status'\n\t\tids: [3]\n\nThere is a validation error in the data, batch #97:\n\n\tField 'status' is not a boolean (0 or 1) for 1 sym_load.\n\t\tcomponent: sym_load\n\t\tfield: 'status'\n\t\tids: [3]\n\nThere is a validation error in the data, batch #98:\n\n\tField 'status' is not a boolean (0 or 1) for 1 sym_load.\n\t\tcomponent: sym_load\n\t\tfield: 'status'\n\t\tids: [3]\n\nThere is a validation error in the data, batch #99:\n\n\tField 'status' is not a boolean (0 or 1) for 1 sym_load.\n\t\tcomponent: sym_load\n\t\tfield: 'status'\n\t\tids: [3]\n"
Validating cartesian product of batch datasets
Cartesian product of batch datasets are not directly supported in the validate_batch_data function. Instead, the user should validate each of the individual datasets that make up the cartesian product.
For example, it can be done in the following way:
source_update = initialize_array(DatasetType.update, ComponentType.source, (3, 1))
source_update[AttributeType.id] = [[2]]
source_update[AttributeType.u_ref] = [[0.9], [1.0], [-1.1]]
batch_data_1 = {ComponentType.source: source_update}
batch_data_2 = {ComponentType.sym_load: load_update}
errors_1 = validate_batch_data(input_data=input_data, update_data=batch_data_1, symmetric=True)
errors_2 = validate_batch_data(input_data=input_data, update_data=batch_data_2, symmetric=True)
print(errors_to_string(errors_1, details=False) + errors_to_string(errors_2, details=False))
There is a validation error in the data, batch #2:
Field 'u_ref' is not greater than zero for 1 source.There is a validation error in the data, batch #0:
Field 'status' is not a boolean (0 or 1) for 1 sym_load.
There is a validation error in the data, batch #1:
Field 'status' is not a boolean (0 or 1) for 1 sym_load.
There is a validation error in the data, batch #2:
Field 'status' is not a boolean (0 or 1) for 1 sym_load.
There is a validation error in the data, batch #3:
Field 'status' is not a boolean (0 or 1) for 1 sym_load.
There is a validation error in the data, batch #4:
Field 'status' is not a boolean (0 or 1) for 1 sym_load.
There is a validation error in the data, batch #5:
Field 'status' is not a boolean (0 or 1) for 1 sym_load.
There is a validation error in the data, batch #6:
Field 'status' is not a boolean (0 or 1) for 1 sym_load.
There is a validation error in the data, batch #7:
Field 'status' is not a boolean (0 or 1) for 1 sym_load.
There is a validation error in the data, batch #8:
Field 'status' is not a boolean (0 or 1) for 1 sym_load.
There is a validation error in the data, batch #9:
Field 'status' is not a boolean (0 or 1) for 1 sym_load.
There is a validation error in the data, batch #10:
Field 'status' is not a boolean (0 or 1) for 1 sym_load.
There is a validation error in the data, batch #11:
Field 'status' is not a boolean (0 or 1) for 1 sym_load.
There is a validation error in the data, batch #12:
Field 'status' is not a boolean (0 or 1) for 1 sym_load.
There is a validation error in the data, batch #13:
Field 'status' is not a boolean (0 or 1) for 1 sym_load.
There is a validation error in the data, batch #14:
Field 'status' is not a boolean (0 or 1) for 1 sym_load.
There is a validation error in the data, batch #15:
Field 'status' is not a boolean (0 or 1) for 1 sym_load.
There is a validation error in the data, batch #16:
Field 'status' is not a boolean (0 or 1) for 1 sym_load.
There is a validation error in the data, batch #17:
Field 'status' is not a boolean (0 or 1) for 1 sym_load.
There is a validation error in the data, batch #18:
Field 'status' is not a boolean (0 or 1) for 1 sym_load.
There is a validation error in the data, batch #19:
Field 'status' is not a boolean (0 or 1) for 1 sym_load.
There is a validation error in the data, batch #20:
Field 'status' is not a boolean (0 or 1) for 1 sym_load.
There is a validation error in the data, batch #21:
Field 'status' is not a boolean (0 or 1) for 1 sym_load.
There is a validation error in the data, batch #22:
Field 'status' is not a boolean (0 or 1) for 1 sym_load.
There is a validation error in the data, batch #23:
Field 'status' is not a boolean (0 or 1) for 1 sym_load.
There is a validation error in the data, batch #24:
Field 'status' is not a boolean (0 or 1) for 1 sym_load.
There is a validation error in the data, batch #25:
Field 'status' is not a boolean (0 or 1) for 1 sym_load.
There is a validation error in the data, batch #26:
Field 'status' is not a boolean (0 or 1) for 1 sym_load.
There is a validation error in the data, batch #27:
Field 'status' is not a boolean (0 or 1) for 1 sym_load.
There is a validation error in the data, batch #28:
Field 'status' is not a boolean (0 or 1) for 1 sym_load.
There is a validation error in the data, batch #29:
Field 'status' is not a boolean (0 or 1) for 1 sym_load.
There is a validation error in the data, batch #30:
Field 'status' is not a boolean (0 or 1) for 1 sym_load.
There is a validation error in the data, batch #31:
Field 'status' is not a boolean (0 or 1) for 1 sym_load.
There is a validation error in the data, batch #32:
Field 'status' is not a boolean (0 or 1) for 1 sym_load.
There is a validation error in the data, batch #33:
Field 'status' is not a boolean (0 or 1) for 1 sym_load.
There is a validation error in the data, batch #34:
Field 'status' is not a boolean (0 or 1) for 1 sym_load.
There is a validation error in the data, batch #35:
Field 'status' is not a boolean (0 or 1) for 1 sym_load.
There is a validation error in the data, batch #36:
Field 'status' is not a boolean (0 or 1) for 1 sym_load.
There is a validation error in the data, batch #37:
Field 'status' is not a boolean (0 or 1) for 1 sym_load.
There is a validation error in the data, batch #38:
Field 'status' is not a boolean (0 or 1) for 1 sym_load.
There is a validation error in the data, batch #39:
Field 'status' is not a boolean (0 or 1) for 1 sym_load.
There is a validation error in the data, batch #40:
Field 'status' is not a boolean (0 or 1) for 1 sym_load.
There is a validation error in the data, batch #41:
Field 'status' is not a boolean (0 or 1) for 1 sym_load.
There is a validation error in the data, batch #42:
Field 'status' is not a boolean (0 or 1) for 1 sym_load.
There is a validation error in the data, batch #43:
Field 'status' is not a boolean (0 or 1) for 1 sym_load.
There is a validation error in the data, batch #44:
Field 'status' is not a boolean (0 or 1) for 1 sym_load.
There is a validation error in the data, batch #45:
Field 'status' is not a boolean (0 or 1) for 1 sym_load.
There is a validation error in the data, batch #46:
Field 'status' is not a boolean (0 or 1) for 1 sym_load.
There is a validation error in the data, batch #47:
Field 'status' is not a boolean (0 or 1) for 1 sym_load.
There is a validation error in the data, batch #48:
Field 'status' is not a boolean (0 or 1) for 1 sym_load.
There is a validation error in the data, batch #49:
Field 'status' is not a boolean (0 or 1) for 1 sym_load.
There is a validation error in the data, batch #50:
Field 'status' is not a boolean (0 or 1) for 1 sym_load.
There is a validation error in the data, batch #51:
Field 'status' is not a boolean (0 or 1) for 1 sym_load.
There is a validation error in the data, batch #52:
Field 'status' is not a boolean (0 or 1) for 1 sym_load.
There is a validation error in the data, batch #53:
Field 'status' is not a boolean (0 or 1) for 1 sym_load.
There is a validation error in the data, batch #54:
Field 'status' is not a boolean (0 or 1) for 1 sym_load.
There is a validation error in the data, batch #55:
Field 'status' is not a boolean (0 or 1) for 1 sym_load.
There is a validation error in the data, batch #56:
Field 'status' is not a boolean (0 or 1) for 1 sym_load.
There is a validation error in the data, batch #57:
Field 'status' is not a boolean (0 or 1) for 1 sym_load.
There is a validation error in the data, batch #58:
Field 'status' is not a boolean (0 or 1) for 1 sym_load.
There is a validation error in the data, batch #59:
Field 'status' is not a boolean (0 or 1) for 1 sym_load.
There is a validation error in the data, batch #60:
Field 'status' is not a boolean (0 or 1) for 1 sym_load.
There is a validation error in the data, batch #61:
Field 'status' is not a boolean (0 or 1) for 1 sym_load.
There is a validation error in the data, batch #62:
Field 'status' is not a boolean (0 or 1) for 1 sym_load.
There is a validation error in the data, batch #63:
Field 'status' is not a boolean (0 or 1) for 1 sym_load.
There is a validation error in the data, batch #64:
Field 'status' is not a boolean (0 or 1) for 1 sym_load.
There is a validation error in the data, batch #65:
Field 'status' is not a boolean (0 or 1) for 1 sym_load.
There is a validation error in the data, batch #66:
Field 'status' is not a boolean (0 or 1) for 1 sym_load.
There is a validation error in the data, batch #67:
Field 'status' is not a boolean (0 or 1) for 1 sym_load.
There is a validation error in the data, batch #68:
Field 'status' is not a boolean (0 or 1) for 1 sym_load.
There is a validation error in the data, batch #69:
Field 'status' is not a boolean (0 or 1) for 1 sym_load.
There is a validation error in the data, batch #70:
Field 'status' is not a boolean (0 or 1) for 1 sym_load.
There is a validation error in the data, batch #71:
Field 'status' is not a boolean (0 or 1) for 1 sym_load.
There is a validation error in the data, batch #72:
Field 'status' is not a boolean (0 or 1) for 1 sym_load.
There is a validation error in the data, batch #73:
Field 'status' is not a boolean (0 or 1) for 1 sym_load.
There is a validation error in the data, batch #74:
Field 'status' is not a boolean (0 or 1) for 1 sym_load.
There is a validation error in the data, batch #75:
Field 'status' is not a boolean (0 or 1) for 1 sym_load.
There is a validation error in the data, batch #76:
Field 'status' is not a boolean (0 or 1) for 1 sym_load.
There is a validation error in the data, batch #77:
Field 'status' is not a boolean (0 or 1) for 1 sym_load.
There is a validation error in the data, batch #78:
Field 'status' is not a boolean (0 or 1) for 1 sym_load.
There is a validation error in the data, batch #79:
Field 'status' is not a boolean (0 or 1) for 1 sym_load.
There is a validation error in the data, batch #80:
Field 'status' is not a boolean (0 or 1) for 1 sym_load.
There is a validation error in the data, batch #81:
Field 'status' is not a boolean (0 or 1) for 1 sym_load.
There is a validation error in the data, batch #82:
Field 'status' is not a boolean (0 or 1) for 1 sym_load.
There is a validation error in the data, batch #83:
Field 'status' is not a boolean (0 or 1) for 1 sym_load.
There is a validation error in the data, batch #84:
Field 'status' is not a boolean (0 or 1) for 1 sym_load.
There is a validation error in the data, batch #85:
Field 'status' is not a boolean (0 or 1) for 1 sym_load.
There is a validation error in the data, batch #86:
Field 'status' is not a boolean (0 or 1) for 1 sym_load.
There is a validation error in the data, batch #87:
Field 'status' is not a boolean (0 or 1) for 1 sym_load.
There is a validation error in the data, batch #88:
Field 'status' is not a boolean (0 or 1) for 1 sym_load.
There is a validation error in the data, batch #89:
Field 'status' is not a boolean (0 or 1) for 1 sym_load.
There is a validation error in the data, batch #90:
Field 'status' is not a boolean (0 or 1) for 1 sym_load.
There is a validation error in the data, batch #91:
Field 'status' is not a boolean (0 or 1) for 1 sym_load.
There is a validation error in the data, batch #92:
Field 'status' is not a boolean (0 or 1) for 1 sym_load.
There is a validation error in the data, batch #93:
Field 'status' is not a boolean (0 or 1) for 1 sym_load.
There is a validation error in the data, batch #94:
Field 'status' is not a boolean (0 or 1) for 1 sym_load.
There is a validation error in the data, batch #95:
Field 'status' is not a boolean (0 or 1) for 1 sym_load.
There is a validation error in the data, batch #96:
Field 'status' is not a boolean (0 or 1) for 1 sym_load.
There is a validation error in the data, batch #97:
Field 'status' is not a boolean (0 or 1) for 1 sym_load.
There is a validation error in the data, batch #98:
Field 'status' is not a boolean (0 or 1) for 1 sym_load.
There is a validation error in the data, batch #99:
Field 'status' is not a boolean (0 or 1) for 1 sym_load.