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?