ophyd.device.FormattedComponent¶
- class ophyd.device.FormattedComponent(cls, suffix=None, *, lazy=False, trigger_value=None, add_prefix=None, doc=None, kind=<Kind.normal: 1>, **kwargs)¶
A Component which takes a dynamic format string
This differs from Component in that the parent prefix is not automatically added onto the Component suffix. Additionally, str.format() style strings are accepted, allowing access to Device instance attributes:
>>> from ophyd import (Component as Cpt, FormattedComponent as FCpt) >>> class MyDevice(Device): ... # A normal component, where 'suffix' is added to prefix verbatim ... cpt = Cpt(EpicsSignal, 'suffix') ... # A formatted component, where 'self' refers to the Device instance ... ch = FCpt(EpicsSignal, '{self.prefix}{self._ch_name}') ... # A formatted component, where 'self' is assumed ... ch = FCpt(EpicsSignal, '{prefix}{_ch_name}') ... ... def __init__(self, prefix, ch_name=None, **kwargs): ... self._ch_name = ch_name ... super().__init__(prefix, **kwargs)
>>> dev = MyDevice('prefix:', ch_name='some_channel', name='dev') >>> print(dev.cpt.pvname) prefix:suffix >>> print(dev.ch.pvname) prefix:some_channel
For additional documentation, refer to Component.
- __init__(cls, suffix=None, *, lazy=False, trigger_value=None, add_prefix=None, doc=None, kind=<Kind.normal: 1>, **kwargs)¶
Initialize self. See help(type(self)) for accurate signature.
Methods
__init__
(cls[, suffix, lazy, trigger_value, …])Initialize self.
create_component
(instance)Instantiate the object described by this Component for a Device
make_docstring
(parent_class)Create a docstring for the Component
maybe_add_prefix
(instance, kw, suffix)Add prefix to a suffix if kw is in self.add_prefix
sub_default
(func)Default subscription decorator
sub_meta
(func)Metadata subscription decorator
sub_value
(func)Value subscription decorator
subscriptions
(event_type)(Decorator) Specify subscriptions callbacks in the Device definition
Attributes
is_device
Does this Component contain a Device?
is_signal
Does this Component contain a Signal?