Currently when you create a Lens object and call .get() the command fails with an error message such as:
__new__() got an unexpected keyword argument 'your_signal'
On further investigation, the traceback reveals that this is raised while trying to create a self._device_tuple object. If you look at what this object actually is it looks like:
YourDeviceTuple(state, _1, _2, _3, _4)
I'm guessing the MRO of these class definitions does not produce a DeviceTuple that includes the signals attached by the child class. This causes an issue because when get tries to fill the tuple with component_names there are no spots in the tuple for all the components. It is worth noting that component_names contains all the signals, probably just not in time for the _device_tuple creation.
Copied from https://github.com/pcdshub/pcdsdevices/issues/157
Current Behavior
Currently when you create a
Lens
object and call.get()
the command fails with an error message such as:On further investigation, the traceback reveals that this is raised while trying to create a
self._device_tuple
object. If you look at what this object actually is it looks like:I'm guessing the MRO of these class definitions does not produce a
DeviceTuple
that includes the signals attached by the child class. This causes an issue because whenget
tries to fill the tuple withcomponent_names
there are no spots in the tuple for all the components. It is worth noting thatcomponent_names
contains all the signals, probably just not in time for the_device_tuple
creation.Your Environment
ophyd == v1.1.0