fix issue with alias_config removed at MLZ
rotation_z will be automatically assigned to one of a list of aliases ('unique' entry in frappy_config) but will complain when this is not unique.
This commit is contained in:
13
devices.py
13
devices.py
@ -31,7 +31,7 @@ import os
|
||||
from os.path import expanduser
|
||||
|
||||
from nicos import config, session
|
||||
from nicos.core import Override, Param, Moveable, status, POLLER, SIMULATION
|
||||
from nicos.core import Override, Param, Moveable, status, POLLER, SIMULATION, DeviceAlias
|
||||
from nicos.devices.secop.devices import SecNodeDevice
|
||||
from nicos.core import Device, anytype, listof
|
||||
from nicos.utils.comparestrings import compare
|
||||
@ -108,7 +108,7 @@ class FrappyConfig(Device):
|
||||
aliasnames = [aliasnames]
|
||||
for aliasname in aliasnames:
|
||||
aliasdev = session.devices.get(aliasname)
|
||||
if aliasdev:
|
||||
if isinstance(aliasdev, DeviceAlias):
|
||||
result[aliasname] = aliasdev
|
||||
return result
|
||||
|
||||
@ -143,6 +143,15 @@ class FrappyConfig(Device):
|
||||
if isinstance(aliasnames, str):
|
||||
aliasnames = [aliasnames]
|
||||
aliascfg = info.get('targets', {})
|
||||
unique = info.get('unique')
|
||||
if unique:
|
||||
aliases = [a for a in unique
|
||||
if isinstance(session.devices.get(a), DeviceAlias)]
|
||||
if aliases:
|
||||
if len(aliases) > 1:
|
||||
raise TypeError(f'do know to which of {aliases} {meaning} to assign to')
|
||||
alias_config = session.alias_config.setdefault(aliases[0], [])
|
||||
alias_config.extend(list(aliascfg.items()))
|
||||
importance_list = sample_devices.get(meaning, [])
|
||||
importance_list.extend([(nr, nam) for nam, nr in aliascfg.items() if nam in session.devices])
|
||||
importance_list = sorted(importance_list, reverse=True)
|
||||
|
@ -34,6 +34,7 @@ devices = dict(
|
||||
'targets': {'se_mf': 20},
|
||||
},
|
||||
rotation_z = {
|
||||
'unique': ['a3', 'om'],
|
||||
'alias': 'dom',
|
||||
'targets': {'se_om': 20, 'se_stickrot': 19},
|
||||
'envlist': False,
|
||||
|
Reference in New Issue
Block a user