Open
Description
When installing ophyd via pip i noticed simdetector and similar devices break:
>>> from ophyd.areadetector.detectors import SimDetector
>>> s = SimDetector("SIM:", name="SIM")
>>> s.cam.acquire.put(1)
Traceback (most recent call last):
File "/opt/micromamba/envs/teste-deletar/lib/python3.12/site-packages/ophyd/device.py", line 327, in __get__
return instance._signals[self.attr]
~~~~~~~~~~~~~~~~~^^^^^^^^^^^
KeyError: 'cam'
During handling of the above exception, another exception occurred:
Traceback (most recent call last):
File "/opt/micromamba/envs/teste-deletar/lib/python3.12/site-packages/ophyd/device.py", line 327, in __get__
return instance._signals[self.attr]
~~~~~~~~~~~~~~~~~^^^^^^^^^^^
KeyError: 'array_size_z'
During handling of the above exception, another exception occurred:
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
File "/opt/micromamba/envs/teste-deletar/lib/python3.12/site-packages/ophyd/device.py", line 329, in __get__
return instance._instantiate_component(self.attr)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/opt/micromamba/envs/teste-deletar/lib/python3.12/site-packages/ophyd/device.py", line 1354, in _instantiate_component
self._signals[attr] = cpt.create_component(self)
^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/opt/micromamba/envs/teste-deletar/lib/python3.12/site-packages/ophyd/device.py", line 266, in create_component
cpt_inst = self.cls(pv_name, parent=instance, **kwargs)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
9037
span>^^^^^^^^^^^^^^^
File "/opt/micromamba/envs/teste-deletar/lib/python3.12/site-packages/ophyd/device.py", line 897, in __init__
getattr(self, attr)
File "/opt/micromamba/envs/teste-deletar/lib/python3.12/site-packages/ophyd/device.py", line 325, in __get__
print(instance._signals)
File "/opt/micromamba/envs/teste-deletar/lib/python3.12/site-packages/ophyd/ophydobj.py", line 580, in __repr__
info = ", ".join("{}={!r}".format(key, value) for key, value in info)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/opt/micromamba/envs/teste-deletar/lib/python3.12/site-packages/ophyd/ophydobj.py", line 580, in <genexpr>
info = ", ".join("{}={!r}".format(key, value) for key, value in info)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/opt/micromamba/envs/teste-deletar/lib/python3.12/site-packages/ophyd/device.py", line 1644, in __repr__
return repr(list(self))
^^^^^^^^^^
File "/opt/micromamba/envs/teste-deletar/lib/python3.12/site-packages/ophyd/device.py", line 1625, in __len__
return len(self.__internal_list())
^^^^^^^^^^^^^^^^^^^^^^
File "/opt/micromamba/envs/teste-deletar/lib/python3.12/site-packages/ophyd/device.py", line 1607, in __internal_list
return list(itertools.chain.from_iterable(out))
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/opt/micromamba/envs/teste-deletar/lib/python3.12/site-packages/ophyd/device.py", line 1602, in <genexpr>
out = (
^
File "/opt/micromamba/envs/teste-deletar/lib/python3.12/site-packages/ophyd/device.py", line 1142, in _get_components_of_kind
yield component_name, getattr(self, component_name)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/opt/micromamba/envs/teste-deletar/lib/python3.12/site-packages/ophyd/device.py", line 329, in __get__
return instance._instantiate_component(self.attr)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/opt/micromamba/envs/teste-deletar/lib/python3.12/site-packages/ophyd/device.py", line 1354, in _instantiate_component
self._signals[attr] = cpt.create_component(self)
^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/opt/micromamba/envs/teste-deletar/lib/python3.12/site-packages/ophyd/device.py", line 266, in create_component
cpt_inst = self.cls(pv_name, parent=instance, **kwargs)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/opt/micromamba/envs/teste-deletar/lib/python3.12/site-packages/ophyd/signal.py", line 1531, in __init__
super().__init__(read_pv, string=string, name=name, **kwargs)
File "/opt/micromamba/envs/teste-deletar/lib/python3.12/site-packages/ophyd/signal.py", line 972, in __init__
self._read_pv = self.cl.get_pv(
^^^^^^^^^^^^^^^
File "/opt/micromamba/envs/teste-deletar/lib/python3.12/site-packages/ophyd/_dummy_shim.py", line 51, in get_pv
raise NotImplementedError
NotImplementedError
This does not happen when installing via conda-forge.
@flowln noticed that here there is a fallback to "dummy" in case neither caproto nor pyepics are installed.
The error doesnt happen in conda-forge installations since they come with pyepics and caproto.
Maybe adding these as dependencies in setup.py would fix this?
Metadata
Metadata
Assignees
Labels
No labels