testframework.inventory.datamodel module
- class testframework.inventory.datamodel.Battery(*, hardwareType: str, serialNumber: str, capacity: int, softwareVersion: str, slave: List[SlaveItem] | None = None)
Bases:
BaseModel
Battery in PV system
- capacity: int
- hardwareType: str
- model_computed_fields: ClassVar[dict[str, ComputedFieldInfo]] = {}
A dictionary of computed field names and their corresponding ComputedFieldInfo objects.
- model_config: ClassVar[ConfigDict] = {'extra': 'forbid'}
Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].
- model_fields: ClassVar[dict[str, FieldInfo]] = {'capacity': FieldInfo(annotation=int, required=True, description='Capacity in Wh'), 'hardwareType': FieldInfo(annotation=str, required=True), 'serialNumber': FieldInfo(annotation=str, required=True, description='Serial number; For FoxESS the detail of battery master'), 'slave': FieldInfo(annotation=Union[List[SlaveItem], NoneType], required=False, default=None, description='For FoxESS slave details; For Huawei battery pack details'), 'softwareVersion': FieldInfo(annotation=str, required=True, description='Battery version; For FoxESS the detail of battery master')}
Metadata about the fields defined on the model, mapping of field names to [FieldInfo][pydantic.fields.FieldInfo].
This replaces Model.__fields__ from Pydantic V1.
- serialNumber: str
- softwareVersion: str
- class testframework.inventory.datamodel.DcBench(*, id: Annotated[str, _PydanticGeneralMetadata(pattern='^DCBENCH_[0-9][0-9]')], name: str, testBrain: TestBrain, inventory: Inventory)
Bases:
BaseModel
DC bench metadata
- id: str
- model_computed_fields: ClassVar[dict[str, ComputedFieldInfo]] = {}
A dictionary of computed field names and their corresponding ComputedFieldInfo objects.
- model_config: ClassVar[ConfigDict] = {'extra': 'forbid'}
Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].
- model_fields: ClassVar[dict[str, FieldInfo]] = {'id': FieldInfo(annotation=str, required=True, description='Identifier of the testbench of format ^DCBENCH_[0-9][0-9]', metadata=[_PydanticGeneralMetadata(pattern='^DCBENCH_[0-9][0-9]')]), 'inventory': FieldInfo(annotation=Inventory, required=True), 'name': FieldInfo(annotation=str, required=True, description='Extended name of the DC bench'), 'testBrain': FieldInfo(annotation=TestBrain, required=True)}
Metadata about the fields defined on the model, mapping of field names to [FieldInfo][pydantic.fields.FieldInfo].
This replaces Model.__fields__ from Pydantic V1.
- name: str
- class testframework.inventory.datamodel.DcSource(*, manufacturer: str, hardwareType: str, serialNumber: str, maximumPower: int, dns: str, contactor: str)
Bases:
BaseModel
DC source detail
- contactor: str
- dns: str
- hardwareType: str
- manufacturer: str
- maximumPower: int
- model_computed_fields: ClassVar[dict[str, ComputedFieldInfo]] = {}
A dictionary of computed field names and their corresponding ComputedFieldInfo objects.
- model_config: ClassVar[ConfigDict] = {'extra': 'forbid'}
Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].
- model_fields: ClassVar[dict[str, FieldInfo]] = {'contactor': FieldInfo(annotation=str, required=True, description='DC contactor to switch DC Source output to this bench'), 'dns': FieldInfo(annotation=str, required=True, description='DNS string to access DC Source Bench API'), 'hardwareType': FieldInfo(annotation=str, required=True, description='DC Source Model name'), 'manufacturer': FieldInfo(annotation=str, required=True, description='Manufacturer name'), 'maximumPower': FieldInfo(annotation=int, required=True, description='Maximum output power in Watts'), 'serialNumber': FieldInfo(annotation=str, required=True)}
Metadata about the fields defined on the model, mapping of field names to [FieldInfo][pydantic.fields.FieldInfo].
This replaces Model.__fields__ from Pydantic V1.
- serialNumber: str
- class testframework.inventory.datamodel.Dongle(*, serialNumber: str, hardwareType: str | None = None, softwareVersion: str | None = None)
Bases:
BaseModel
Optional hardware component in PV system
- hardwareType: str | None
- model_computed_fields: ClassVar[dict[str, ComputedFieldInfo]] = {}
A dictionary of computed field names and their corresponding ComputedFieldInfo objects.
- model_config: ClassVar[ConfigDict] = {'extra': 'forbid'}
Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].
- model_fields: ClassVar[dict[str, FieldInfo]] = {'hardwareType': FieldInfo(annotation=Union[str, NoneType], required=False, default=None), 'serialNumber': FieldInfo(annotation=str, required=True), 'softwareVersion': FieldInfo(annotation=Union[str, NoneType], required=False, default=None)}
Metadata about the fields defined on the model, mapping of field names to [FieldInfo][pydantic.fields.FieldInfo].
This replaces Model.__fields__ from Pydantic V1.
- serialNumber: str
- softwareVersion: str | None
- class testframework.inventory.datamodel.HeatPump(root: RootModelRootType = PydanticUndefined)
Bases:
RootModel[List[HeatPumpItem]]
Heatpumps in testbench
- model_computed_fields: ClassVar[dict[str, ComputedFieldInfo]] = {}
A dictionary of computed field names and their corresponding ComputedFieldInfo objects.
- model_config: ClassVar[ConfigDict] = {}
Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].
- model_fields: ClassVar[dict[str, FieldInfo]] = {'root': FieldInfo(annotation=List[HeatPumpItem], required=True, description='Heatpumps in testbench')}
Metadata about the fields defined on the model, mapping of field names to [FieldInfo][pydantic.fields.FieldInfo].
This replaces Model.__fields__ from Pydantic V1.
- root: List[HeatPumpItem]
- class testframework.inventory.datamodel.HeatPumpItem(*, manufacturer: str, hardwareType: str, serialNumber: str, softwareVersion: str)
Bases:
BaseModel
Heatpump metadata
- hardwareType: str
- manufacturer: str
- model_computed_fields: ClassVar[dict[str, ComputedFieldInfo]] = {}
A dictionary of computed field names and their corresponding ComputedFieldInfo objects.
- model_config: ClassVar[ConfigDict] = {'extra': 'forbid'}
Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].
- model_fields: ClassVar[dict[str, FieldInfo]] = {'hardwareType': FieldInfo(annotation=str, required=True), 'manufacturer': FieldInfo(annotation=str, required=True), 'serialNumber': FieldInfo(annotation=str, required=True), 'softwareVersion': FieldInfo(annotation=str, required=True)}
Metadata about the fields defined on the model, mapping of field names to [FieldInfo][pydantic.fields.FieldInfo].
This replaces Model.__fields__ from Pydantic V1.
- serialNumber: str
- softwareVersion: str
- class testframework.inventory.datamodel.Inventory(*, pvsystem: PvSystem | None = None, heatpump: HeatPump | None = None, wallbox: Wallbox | None = None, dcsource: DcSource | None = None)
Bases:
BaseModel
Inventory metadata in testbench
- model_computed_fields: ClassVar[dict[str, ComputedFieldInfo]] = {}
A dictionary of computed field names and their corresponding ComputedFieldInfo objects.
- model_config: ClassVar[ConfigDict] = {'extra': 'forbid', 'populate_by_name': True}
Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].
- model_fields: ClassVar[dict[str, FieldInfo]] = {'dcSource': FieldInfo(annotation=Union[DcSource, NoneType], required=False, default=None, alias='dcsource', alias_priority=2), 'heatPump': FieldInfo(annotation=Union[HeatPump, NoneType], required=False, default=None, alias='heatpump', alias_priority=2), 'pvSystem': FieldInfo(annotation=Union[PvSystem, NoneType], required=False, default=None, alias='pvsystem', alias_priority=2), 'wallbox': FieldInfo(annotation=Union[Wallbox, NoneType], required=False, default=None)}
Metadata about the fields defined on the model, mapping of field names to [FieldInfo][pydantic.fields.FieldInfo].
This replaces Model.__fields__ from Pydantic V1.
- class testframework.inventory.datamodel.InventoryDataModel(*, testBenches: List[TestBench], dcBenches: List[DcBench] | None = None)
Bases:
BaseModel
Inventory storing testbench capabilities as well as hardware details
- filter_inventory(filter_options: InventoryFilter) list[TestBench]
Filters the inventory object
- Parameters:
filter_options (InventoryFilter) – The parameters used for filtering
- Returns:
The filtered list of test benches
- Return type:
list[TestBenchTarget]
- model_computed_fields: ClassVar[dict[str, ComputedFieldInfo]] = {}
A dictionary of computed field names and their corresponding ComputedFieldInfo objects.
- model_config: ClassVar[ConfigDict] = {}
Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].
- model_fields: ClassVar[dict[str, FieldInfo]] = {'dcBenches': FieldInfo(annotation=Union[List[DcBench], NoneType], required=False, default=None, description='Available dc benches'), 'testBenches': FieldInfo(annotation=List[TestBench], required=True, description='Available testbenches')}
Metadata about the fields defined on the model, mapping of field names to [FieldInfo][pydantic.fields.FieldInfo].
This replaces Model.__fields__ from Pydantic V1.
- class testframework.inventory.datamodel.InventoryFilter(*, with_testbrain: bool | None = None, type: TestBenchType | None = None, manufacturer: ManufacturerOptions | None = None, id: str | list[str] | None = None)
Bases:
BaseModel
Inventory filter object. :param with_testbrain: (bool) Used to get benches with/without testbrains. (Optional) :param type: (TestBenchType) Filter the testbench type. (Optional) :param manufacturer: The specific manufacturer for the testbench’s type. (Optional) :param id: (str | list[str]) ID or IDs for the testbench For exaple TESTBENCH_14. Setting this will take precedence over all other filter options.
and you will only receive the single testbench matching this string. (Optional)
Example Usage:
` inventory = InventoryDataModel() filter = InventoryFilter(with_testbrain=True, type=TestBenchType.PVSYSTEM) inventory.filter_inventory(filter) `
- static from_env() InventoryFilter
- id: str | list[str] | None
- manufacturer: ManufacturerOptions | None
- model_computed_fields: ClassVar[dict[str, ComputedFieldInfo]] = {}
A dictionary of computed field names and their corresponding ComputedFieldInfo objects.
- model_config: ClassVar[ConfigDict] = {}
Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].
- model_fields: ClassVar[dict[str, FieldInfo]] = {'id': FieldInfo(annotation=Union[str, list[str], NoneType], required=False, default=None), 'manufacturer': FieldInfo(annotation=Union[ManufacturerOptions, NoneType], required=False, default=None), 'type': FieldInfo(annotation=Union[TestBenchType, NoneType], required=False, default=None), 'with_testbrain': FieldInfo(annotation=Union[bool, NoneType], required=False, default=None)}
Metadata about the fields defined on the model, mapping of field names to [FieldInfo][pydantic.fields.FieldInfo].
This replaces Model.__fields__ from Pydantic V1.
- type: TestBenchType | None
- with_testbrain: bool | None
- class testframework.inventory.datamodel.Inverter(*, hardwareType: str, serialNumber: str, softwareVersion1: str, softwareVersion2: str | None = None, softwareVersion3: str | None = None)
Bases:
BaseModel
Inverter in PV system
- hardwareType: str
- model_computed_fields: ClassVar[dict[str, ComputedFieldInfo]] = {}
A dictionary of computed field names and their corresponding ComputedFieldInfo objects.
- model_config: ClassVar[ConfigDict] = {'extra': 'forbid'}
Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].
- model_fields: ClassVar[dict[str, FieldInfo]] = {'hardwareType': FieldInfo(annotation=str, required=True, description='Hardware type of inverter', examples=['H3', 'SHT', 'SHRT', 'Luna2000', 'Smart']), 'serialNumber': FieldInfo(annotation=str, required=True), 'softwareVersion1': FieldInfo(annotation=str, required=True, description='Master version of FoxESS, ARM version of Sungrow, Software version of Huawei'), 'softwareVersion2': FieldInfo(annotation=Union[str, NoneType], required=False, default=None, description='Manager version of FoxESS, DSP version of Sungrow'), 'softwareVersion3': FieldInfo(annotation=Union[str, NoneType], required=False, default=None, description='Slave version of FoxESS')}
Metadata about the fields defined on the model, mapping of field names to [FieldInfo][pydantic.fields.FieldInfo].
This replaces Model.__fields__ from Pydantic V1.
- serialNumber: str
- softwareVersion1: str
- softwareVersion2: str | None
- softwareVersion3: str | None
- class testframework.inventory.datamodel.Iot(*, uuid: str, dns: str)
Bases:
BaseModel
IoT device in Testbench
- dns: str
- model_computed_fields: ClassVar[dict[str, ComputedFieldInfo]] = {}
A dictionary of computed field names and their corresponding ComputedFieldInfo objects.
- model_config: ClassVar[ConfigDict] = {'extra': 'forbid'}
Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].
- model_fields: ClassVar[dict[str, FieldInfo]] = {'dns': FieldInfo(annotation=str, required=True, examples=['http://bench10.lab.enpal.io', 'http://bench01.lab.enpal.io']), 'uuid': FieldInfo(annotation=str, required=True)}
Metadata about the fields defined on the model, mapping of field names to [FieldInfo][pydantic.fields.FieldInfo].
This replaces Model.__fields__ from Pydantic V1.
- uuid: str
- class testframework.inventory.datamodel.Loads(*, L1: int | None = None, L2: int | None = None, L3: int | None = None)
Bases:
BaseModel
Load attached in testbench for testing
- L1: int | None
- L2: int | None
- L3: int | None
- model_computed_fields: ClassVar[dict[str, ComputedFieldInfo]] = {}
A dictionary of computed field names and their corresponding ComputedFieldInfo objects.
- model_config: ClassVar[ConfigDict] = {'extra': 'forbid'}
Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].
- model_fields: ClassVar[dict[str, FieldInfo]] = {'L1': FieldInfo(annotation=Union[int, NoneType], required=False, default=None, description='Attached load in Watts'), 'L2': FieldInfo(annotation=Union[int, NoneType], required=False, default=None, description='Attached load in Watts'), 'L3': FieldInfo(annotation=Union[int, NoneType], required=False, default=None, description='Attached load in Watts')}
Metadata about the fields defined on the model, mapping of field names to [FieldInfo][pydantic.fields.FieldInfo].
This replaces Model.__fields__ from Pydantic V1.
- class testframework.inventory.datamodel.ManufacturerOptions(value, names=<not given>, *values, module=None, qualname=None, type=None, start=1, boundary=None)
Bases:
Enum
- FoxESS = 'FoxESS'
- Huawei = 'Huawei'
- StarCharge = 'StarCharge'
- Sungrow = 'Sungrow'
- class testframework.inventory.datamodel.PvSimulation(root: RootModelRootType = PydanticUndefined)
Bases:
RootModel[List[PvSimulationItem]]
DC bench details providing output to the testbench
- model_computed_fields: ClassVar[dict[str, ComputedFieldInfo]] = {}
A dictionary of computed field names and their corresponding ComputedFieldInfo objects.
- model_config: ClassVar[ConfigDict] = {}
Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].
- model_fields: ClassVar[dict[str, FieldInfo]] = {'root': FieldInfo(annotation=List[PvSimulationItem], required=True, description='DC bench details providing output to the testbench')}
Metadata about the fields defined on the model, mapping of field names to [FieldInfo][pydantic.fields.FieldInfo].
This replaces Model.__fields__ from Pydantic V1.
- root: List[PvSimulationItem]
- class testframework.inventory.datamodel.PvSimulationItem(*, inverter: str, string: str, dcbrain: str, slot: str)
Bases:
BaseModel
DC bench metadata
- dcbrain: str
- inverter: str
- model_computed_fields: ClassVar[dict[str, ComputedFieldInfo]] = {}
A dictionary of computed field names and their corresponding ComputedFieldInfo objects.
- model_config: ClassVar[ConfigDict] = {'extra': 'forbid'}
Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].
- model_fields: ClassVar[dict[str, FieldInfo]] = {'dcbrain': FieldInfo(annotation=str, required=True, description='Connected DC bench'), 'inverter': FieldInfo(annotation=str, required=True, description='Serial number of the inverter to which DC bench is connected'), 'slot': FieldInfo(annotation=str, required=True, description='GPIO pin mapping in the DC bench'), 'string': FieldInfo(annotation=str, required=True, description='Solar panel string', examples=['1', '2'])}
Metadata about the fields defined on the model, mapping of field names to [FieldInfo][pydantic.fields.FieldInfo].
This replaces Model.__fields__ from Pydantic V1.
- slot: str
- string: str
- class testframework.inventory.datamodel.PvSystem(root: RootModelRootType = PydanticUndefined)
Bases:
RootModel[List[PvSystemItem]]
PV systems in a testbench
- model_computed_fields: ClassVar[dict[str, ComputedFieldInfo]] = {}
A dictionary of computed field names and their corresponding ComputedFieldInfo objects.
- model_config: ClassVar[ConfigDict] = {}
Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].
- model_fields: ClassVar[dict[str, FieldInfo]] = {'root': FieldInfo(annotation=List[PvSystemItem], required=True, description='PV systems in a testbench')}
Metadata about the fields defined on the model, mapping of field names to [FieldInfo][pydantic.fields.FieldInfo].
This replaces Model.__fields__ from Pydantic V1.
- root: List[PvSystemItem]
- class testframework.inventory.datamodel.PvSystemItem(*, manufacturer: str, inverter: Inverter, battery: Battery, dongle: Dongle | None = None)
Bases:
BaseModel
PV system metadata
- manufacturer: str
- model_computed_fields: ClassVar[dict[str, ComputedFieldInfo]] = {}
A dictionary of computed field names and their corresponding ComputedFieldInfo objects.
- model_config: ClassVar[ConfigDict] = {'extra': 'forbid'}
Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].
- model_fields: ClassVar[dict[str, FieldInfo]] = {'battery': FieldInfo(annotation=Battery, required=True, description='Battery in PV system'), 'dongle': FieldInfo(annotation=Union[Dongle, NoneType], required=False, default=None, description='Optional hardware component in PV system'), 'inverter': FieldInfo(annotation=Inverter, required=True, description='Inverter in PV system'), 'manufacturer': FieldInfo(annotation=str, required=True)}
Metadata about the fields defined on the model, mapping of field names to [FieldInfo][pydantic.fields.FieldInfo].
This replaces Model.__fields__ from Pydantic V1.
- class testframework.inventory.datamodel.SlaveItem(*, softwareVersion: str, serialNumber: str)
Bases:
BaseModel
Battery slave information
- model_computed_fields: ClassVar[dict[str, ComputedFieldInfo]] = {}
A dictionary of computed field names and their corresponding ComputedFieldInfo objects.
- model_config: ClassVar[ConfigDict] = {}
Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].
- model_fields: ClassVar[dict[str, FieldInfo]] = {'serialNumber': FieldInfo(annotation=str, required=True), 'softwareVersion': FieldInfo(annotation=str, required=True)}
Metadata about the fields defined on the model, mapping of field names to [FieldInfo][pydantic.fields.FieldInfo].
This replaces Model.__fields__ from Pydantic V1.
- serialNumber: str
- softwareVersion: str
- class testframework.inventory.datamodel.TestBench(*, id: Annotated[str, _PydanticGeneralMetadata(pattern='^TESTBENCH_[0-9][0-9]')], name: str, testBrain: TestBrain | None = None, iot: Iot, inventory: Inventory, testEquipments: TestEquipments | None = None)
Bases:
BaseModel
Testbench metadata
- id: str
- model_computed_fields: ClassVar[dict[str, ComputedFieldInfo]] = {}
A dictionary of computed field names and their corresponding ComputedFieldInfo objects.
- model_config: ClassVar[ConfigDict] = {'extra': 'forbid'}
Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].
- model_fields: ClassVar[dict[str, FieldInfo]] = {'id': FieldInfo(annotation=str, required=True, description='Identifier of the testbench of format ^TESTBENCH_[0-9][0-9]', metadata=[_PydanticGeneralMetadata(pattern='^TESTBENCH_[0-9][0-9]')]), 'inventory': FieldInfo(annotation=Inventory, required=True), 'iot': FieldInfo(annotation=Iot, required=True), 'name': FieldInfo(annotation=str, required=True, description='Extended name of the testbench', examples=['01_Inverter_Huawei_Luna2000_Wallbox_Starcharge_Aurora']), 'testBrain': FieldInfo(annotation=Union[TestBrain, NoneType], required=False, default=None), 'testEquipments': FieldInfo(annotation=Union[TestEquipments, NoneType], required=False, default=None, description='Test equipments available for test')}
Metadata about the fields defined on the model, mapping of field names to [FieldInfo][pydantic.fields.FieldInfo].
This replaces Model.__fields__ from Pydantic V1.
- name: str
- testEquipments: TestEquipments | None
- class testframework.inventory.datamodel.TestBenchType(value, names=<not given>, *values, module=None, qualname=None, type=None, start=1, boundary=None)
Bases:
Enum
Testbench type enum
- DCSOURCE = 'dcsource'
- HEATPUMP = 'heatpump'
- PVSYSTEM = 'pvsystem'
- WALLBOX = 'wallbox'
- class testframework.inventory.datamodel.TestBrain(*, uuid: str, dns: str)
Bases:
BaseModel
Testbrain in testbench
- dns: str
- model_computed_fields: ClassVar[dict[str, ComputedFieldInfo]] = {}
A dictionary of computed field names and their corresponding ComputedFieldInfo objects.
- model_config: ClassVar[ConfigDict] = {'extra': 'forbid'}
Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].
- model_fields: ClassVar[dict[str, FieldInfo]] = {'dns': FieldInfo(annotation=str, required=True, examples=['http://brain10.lab.enpal.io', 'http://brain01.lab.enpal.io']), 'uuid': FieldInfo(annotation=str, required=True)}
Metadata about the fields defined on the model, mapping of field names to [FieldInfo][pydantic.fields.FieldInfo].
This replaces Model.__fields__ from Pydantic V1.
- uuid: str
- class testframework.inventory.datamodel.TestEquipments(*, loads: Loads | None = None, pvSimulation: PvSimulation | None = None)
Bases:
BaseModel
Test equipments available for test
- model_computed_fields: ClassVar[dict[str, ComputedFieldInfo]] = {}
A dictionary of computed field names and their corresponding ComputedFieldInfo objects.
- model_config: ClassVar[ConfigDict] = {'extra': 'forbid'}
Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].
- model_fields: ClassVar[dict[str, FieldInfo]] = {'loads': FieldInfo(annotation=Union[Loads, NoneType], required=False, default=None), 'pvSimulation': FieldInfo(annotation=Union[PvSimulation, NoneType], required=False, default=None)}
Metadata about the fields defined on the model, mapping of field names to [FieldInfo][pydantic.fields.FieldInfo].
This replaces Model.__fields__ from Pydantic V1.
- pvSimulation: PvSimulation | None
- class testframework.inventory.datamodel.Wallbox(root: RootModelRootType = PydanticUndefined)
Bases:
RootModel[List[WallboxItem]]
Wallboxes in testbench
- model_computed_fields: ClassVar[dict[str, ComputedFieldInfo]] = {}
A dictionary of computed field names and their corresponding ComputedFieldInfo objects.
- model_config: ClassVar[ConfigDict] = {}
Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].
- model_fields: ClassVar[dict[str, FieldInfo]] = {'root': FieldInfo(annotation=List[WallboxItem], required=True, description='Wallboxes in testbench')}
Metadata about the fields defined on the model, mapping of field names to [FieldInfo][pydantic.fields.FieldInfo].
This replaces Model.__fields__ from Pydantic V1.
- root: List[WallboxItem]
- class testframework.inventory.datamodel.WallboxItem(*, manufacturer: str, hardwareType: str, serialNumber: str, softwareVersion: str)
Bases:
BaseModel
Wallbox metadata
- hardwareType: str
- manufacturer: str
- model_computed_fields: ClassVar[dict[str, ComputedFieldInfo]] = {}
A dictionary of computed field names and their corresponding ComputedFieldInfo objects.
- model_config: ClassVar[ConfigDict] = {'extra': 'forbid'}
Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].
- model_fields: ClassVar[dict[str, FieldInfo]] = {'hardwareType': FieldInfo(annotation=str, required=True), 'manufacturer': FieldInfo(annotation=str, required=True), 'serialNumber': FieldInfo(annotation=str, required=True), 'softwareVersion': FieldInfo(annotation=str, required=True)}
Metadata about the fields defined on the model, mapping of field names to [FieldInfo][pydantic.fields.FieldInfo].
This replaces Model.__fields__ from Pydantic V1.
- serialNumber: str
- softwareVersion: str