devctrl.task.tasks.DeviceActionTask#
- class DeviceActionTask(task_name: str | None = None, device_key: str = '', device_parameter: str = '', arguments: list = <factory>)[source]#
Bases:
TaskTask that runs an action of a device.
This task is intendend for automation of common device actions, like switching a shutter or turning a light source or a power switch on and off.
Methods
Convenience wrapper for dataclasses.asdict(self)
Recursively construct a
SettingsClassfrom a dictionary.Get the icon name of the task.
Get formatted task name with settings
Return relevant settings as a formatted string for GUI display
Return the human-readable name of the task.
Attributes
- __abstractmethods__ = frozenset({})#
- __annotations__ = {'arguments': <class 'list'>, 'device_key': <class 'str'>, 'device_parameter': <class 'str'>, 'task_name': typing.Optional[str]}#
- __dataclass_fields__ = {'arguments': Field(name='arguments',type=<class 'list'>,default=<dataclasses._MISSING_TYPE object>,default_factory=<class 'list'>,init=True,repr=True,hash=None,compare=True,metadata=mappingproxy({}),kw_only=False,_field_type=_FIELD), 'device_key': Field(name='device_key',type=<class 'str'>,default='',default_factory=<dataclasses._MISSING_TYPE object>,init=True,repr=True,hash=None,compare=True,metadata=mappingproxy({}),kw_only=False,_field_type=_FIELD), 'device_parameter': Field(name='device_parameter',type=<class 'str'>,default='',default_factory=<dataclasses._MISSING_TYPE object>,init=True,repr=True,hash=None,compare=True,metadata=mappingproxy({}),kw_only=False,_field_type=_FIELD), 'task_name': Field(name='task_name',type=typing.Optional[str],default=None,default_factory=<dataclasses._MISSING_TYPE object>,init=True,repr=True,hash=None,compare=True,metadata=mappingproxy({}),kw_only=False,_field_type=_FIELD)}#
- __dataclass_params__ = _DataclassParams(init=True,repr=True,eq=True,order=False,unsafe_hash=False,frozen=False,match_args=True,kw_only=False,slots=False,weakref_slot=False)#
- __dict__ = mappingproxy({'__module__': 'devctrl.task.tasks', '__firstlineno__': 92, '__annotations__': {'task_name': typing.Optional[str], 'device_key': <class 'str'>, 'device_parameter': <class 'str'>, 'arguments': <class 'list'>}, '__doc__': 'Task that runs an action of a device.\n\nThis task is intendend for automation of common device actions, like switching a shutter or turning a light source or a power switch on and off.\n', 'task_name': None, 'device_key': '', 'device_parameter': '', 'get_settings_name': <function DeviceActionTask.get_settings_name>, 'estimate_runtime_s': <function DeviceActionTask.estimate_runtime_s>, 'get_icon_name': <function DeviceActionTask.get_icon_name>, '__static_attributes__': (), '__abstractmethods__': frozenset(), '_abc_impl': <_abc._abc_data object>, '__dataclass_params__': _DataclassParams(init=True,repr=True,eq=True,order=False,unsafe_hash=False,frozen=False,match_args=True,kw_only=False,slots=False,weakref_slot=False), '__dataclass_fields__': {'task_name': Field(name='task_name',type=typing.Optional[str],default=None,default_factory=<dataclasses._MISSING_TYPE object>,init=True,repr=True,hash=None,compare=True,metadata=mappingproxy({}),kw_only=False,_field_type=_FIELD), 'device_key': Field(name='device_key',type=<class 'str'>,default='',default_factory=<dataclasses._MISSING_TYPE object>,init=True,repr=True,hash=None,compare=True,metadata=mappingproxy({}),kw_only=False,_field_type=_FIELD), 'device_parameter': Field(name='device_parameter',type=<class 'str'>,default='',default_factory=<dataclasses._MISSING_TYPE object>,init=True,repr=True,hash=None,compare=True,metadata=mappingproxy({}),kw_only=False,_field_type=_FIELD), 'arguments': Field(name='arguments',type=<class 'list'>,default=<dataclasses._MISSING_TYPE object>,default_factory=<class 'list'>,init=True,repr=True,hash=None,compare=True,metadata=mappingproxy({}),kw_only=False,_field_type=_FIELD)}, '__replace__': <function _replace>, '__hash__': None, '__init__': <function DeviceActionTask.__init__>, '__repr__': <function DeviceActionTask.__repr__>, '__eq__': <function DeviceActionTask.__eq__>, '__match_args__': ('task_name', 'device_key', 'device_parameter', 'arguments')})#
- __eq__(other)#
Return self==value.
- __firstlineno__ = 92#
- __hash__ = None#
- __init__(task_name: str | None = None, device_key: str = '', device_parameter: str = '', arguments: list = <factory>) None#
- __match_args__ = ('task_name', 'device_key', 'device_parameter', 'arguments')#
- __module__ = 'devctrl.task.tasks'#
- __or__(other)#
Merge with another settings class or a dictionary.
- __replace__(**changes)#
- __repr__()#
Get formatted task name with settings
- Returns:
Formatted string as ‘typename (settings_name)’
- __slots__ = ()#
- __static_attributes__ = ()#
- __weakref__#
list of weak references to the object
- _abc_impl = <_abc._abc_data object>#
- _children: Dict[str, Type[Task]] = {'DebugTask': <class 'devctrl.task.tasks.DebugTask'>, 'DeviceActionTask': <class 'devctrl.task.tasks.DeviceActionTask'>, 'MeasurementTask': <class 'prsctrl_gui.task.tasks.measurement.MeasurementTask'>, 'SendEmailTask': <class 'devctrl.task.tasks.SendEmailTask'>, 'UserConfirmTask': <class 'devctrl.task.tasks.UserConfirmTask'>, 'WaitTask': <class 'devctrl.task.tasks.WaitTask'>}#
- arguments: list#
- as_dict() dict#
Convenience wrapper for dataclasses.asdict(self)
- device_key: str = ''#
- device_parameter: str = ''#
- classmethod from_dict(data: dict)#
Recursively construct a
SettingsClassfrom a dictionary.If the value of a field is another SettingsClass,
from_dict()will be called for that field as well. Handled are:SettingsClass
list[SettingsClass]
dict[<any>, SettingsClass]
all of the above as Optional (Union with
None)a Union with any handled types
- get_name() str#
Get formatted task name with settings
- Returns:
Formatted task name including settings
- get_settings_name() str[source]#
Return relevant settings as a formatted string for GUI display
Iterates through task fields and returns a string representation of non-default values that can be used for displaying the task in the GUI.
- Returns:
Formatted string of settings, or empty string if no settings differ from defaults
- classmethod get_type_name() str#
Return the human-readable name of the task.
- classmethod load_yaml(yaml_path: str, loader=<class 'yaml.loader.Loader'>)#
- save_yaml(yaml_path: str)#
- task_name: str | None = None#