Skip to content

Commit

Permalink
Improved handling of devices where *name* is "".
Browse files Browse the repository at this point in the history
  • Loading branch information
yannachen authored and canismarko committed Nov 22, 2024
1 parent 154093d commit fc165c9
Showing 1 changed file with 12 additions and 2 deletions.
14 changes: 12 additions & 2 deletions src/ophydregistry/registry.py
Original file line number Diff line number Diff line change
Expand Up @@ -575,6 +575,10 @@ def register(
msg = f"Ignoring readback with duplicate name: '{name}'"
log.debug(msg)
return component
elif old_obj is component:
msg = f"Ignoring previously registered component: '{name}'"
log.debug(msg)
return component
else:
msg = f"Ignoring component with duplicate name: '{name}'"
is_duplicate = True
Expand All @@ -585,8 +589,14 @@ def register(
log.debug(msg)
# Register this component
log.debug(f"Registering {name}")
# Create a set for this device name if it doesn't exist
self._objects_by_name[component.name] = component
# Check if this device was previously registered with a
# different name
old_keys = [key for key, val in self._objects_by_name.items() if val is component]
for old_key in old_keys:
del self._objects_by_name[old_key]
# Register by name
if component.name != "":
self._objects_by_name[component.name] = component
# Create a set for this device's labels if it doesn't exist
if labels is None:
ophyd_labels = getattr(component, "_ophyd_labels_", [])
Expand Down

0 comments on commit fc165c9

Please sign in to comment.