Coverage for /opt/conda/envs/apienv/lib/python3.10/site-packages/daiquiri/core/hardware/bliss/processor.py: 0%
24 statements
« prev ^ index » next coverage.py v7.6.10, created at 2025-02-06 02:13 +0000
« prev ^ index » next coverage.py v7.6.10, created at 2025-02-06 02:13 +0000
1from daiquiri.core.hardware.abstract import HardwareProperty
2from daiquiri.core.hardware.abstract.processor import (
3 Processor as AbstractProcessor,
4 ProcessorCallablesSchema,
5 ProcessorPropertiesSchema,
6)
7from daiquiri.core.hardware.bliss.object import BlissObject
9import logging
11logger = logging.getLogger(__name__)
14class DynamicPropertiesMixin:
15 def __init__(self, *args, **kwargs):
16 super().__init__(*args, **kwargs)
18 dynamic_parameters = {}
19 for (
20 parameter_key,
21 parameter_schema,
22 ) in self._object.parameters_schema._declared_fields.items():
23 dynamic_parameters[parameter_key] = parameter_schema
24 self._property_map[parameter_key] = HardwareProperty(parameter_key)
25 self._connect_event(self._property_map[parameter_key])
27 dynamic_parameters["Meta"] = self._object.parameters_schema.Meta
29 properties_schema = type(
30 self.id() + "PropertiesSchema",
31 (ProcessorPropertiesSchema,),
32 dynamic_parameters,
33 )
34 self._properties = properties_schema()
36 callables_schema = type(
37 self.id() + "CallablesSchema", (ProcessorCallablesSchema,), {}
38 )
39 self._callables = callables_schema()
41 def schema_name(self):
42 return self.id()
45class Processor(DynamicPropertiesMixin, BlissObject, AbstractProcessor):
46 _type = "processor"
48 PROPERTY_MAP = {
49 "state": HardwareProperty("state"),
50 "enabled": HardwareProperty("enabled"),
51 }
52 CALLABLE_MAP = {"reprocess": "reprocess"}