mirror of
https://github.com/bec-project/ophyd_devices.git
synced 2025-06-06 20:00:41 +02:00
refactor(psi-device-base): remove device_manager from kwargs, improve Status return on stage/unstage
This commit is contained in:
parent
673be87a2d
commit
a7bffb8e3a
@ -4,6 +4,7 @@ Base class for all PSI ophyd device integration to ensure consistent configurati
|
|||||||
|
|
||||||
from __future__ import annotations
|
from __future__ import annotations
|
||||||
|
|
||||||
|
import inspect
|
||||||
import time
|
import time
|
||||||
from typing import Any, Callable
|
from typing import Any, Callable
|
||||||
|
|
||||||
@ -44,6 +45,12 @@ class PSIDeviceBase(Device):
|
|||||||
name (str) : Name of the device
|
name (str) : Name of the device
|
||||||
scan_info (ScanInfo): The scan info to use.
|
scan_info (ScanInfo): The scan info to use.
|
||||||
"""
|
"""
|
||||||
|
# Make sure device_manager is not passed to super().__init__ if not specified
|
||||||
|
# This is to avoid issues with ophyd.OphydObject.__init__ when the parent is ophyd.Device
|
||||||
|
# and the device_manager is passed to it. This will cause a TypeError.
|
||||||
|
sig = inspect.signature(super().__init__)
|
||||||
|
if "device_manager" not in sig.parameters:
|
||||||
|
kwargs.pop("device_manager", None)
|
||||||
super().__init__(prefix=prefix, name=name, **kwargs)
|
super().__init__(prefix=prefix, name=name, **kwargs)
|
||||||
self._stopped = False
|
self._stopped = False
|
||||||
self.task_handler = TaskHandler(parent=self)
|
self.task_handler = TaskHandler(parent=self)
|
||||||
@ -87,7 +94,7 @@ class PSIDeviceBase(Device):
|
|||||||
self.stopped = False
|
self.stopped = False
|
||||||
super_staged = super().stage()
|
super_staged = super().stage()
|
||||||
status = self.on_stage() # pylint: disable=assignment-from-no-return
|
status = self.on_stage() # pylint: disable=assignment-from-no-return
|
||||||
if isinstance(status, DeviceStatus):
|
if isinstance(status, StatusBase):
|
||||||
return status
|
return status
|
||||||
return super_staged
|
return super_staged
|
||||||
|
|
||||||
@ -95,7 +102,7 @@ class PSIDeviceBase(Device):
|
|||||||
"""Unstage the device."""
|
"""Unstage the device."""
|
||||||
super_unstage = super().unstage()
|
super_unstage = super().unstage()
|
||||||
status = self.on_unstage() # pylint: disable=assignment-from-no-return
|
status = self.on_unstage() # pylint: disable=assignment-from-no-return
|
||||||
if isinstance(status, DeviceStatus):
|
if isinstance(status, StatusBase):
|
||||||
return status
|
return status
|
||||||
return super_unstage
|
return super_unstage
|
||||||
|
|
||||||
|
Loading…
x
Reference in New Issue
Block a user