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

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 

8 

9import logging 

10 

11logger = logging.getLogger(__name__) 

12 

13 

14class DynamicPropertiesMixin: 

15 def __init__(self, *args, **kwargs): 

16 super().__init__(*args, **kwargs) 

17 

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]) 

26 

27 dynamic_parameters["Meta"] = self._object.parameters_schema.Meta 

28 

29 properties_schema = type( 

30 self.id() + "PropertiesSchema", 

31 (ProcessorPropertiesSchema,), 

32 dynamic_parameters, 

33 ) 

34 self._properties = properties_schema() 

35 

36 callables_schema = type( 

37 self.id() + "CallablesSchema", (ProcessorCallablesSchema,), {} 

38 ) 

39 self._callables = callables_schema() 

40 

41 def schema_name(self): 

42 return self.id() 

43 

44 

45class Processor(DynamicPropertiesMixin, BlissObject, AbstractProcessor): 

46 _type = "processor" 

47 

48 PROPERTY_MAP = { 

49 "state": HardwareProperty("state"), 

50 "enabled": HardwareProperty("enabled"), 

51 } 

52 CALLABLE_MAP = {"reprocess": "reprocess"}