def load_all_devices(self, filters='*'): import fandango self.tango = fandango.get_database() self.alias_devs = fandango.defaultdict_fromkey( lambda k, s=self: str(s.tango.get_device_alias(k))) self.archattrs = [] self.archdevs = [] #print('In load_all_devices(%s)...'%str(filters)) devs = fandango.tango.get_all_devices() if filters != '*': devs = [ d for d in devs if fandango.matchCl(filters.replace(' ', '*'), d, extend=True) ] self.all_devices = devs self.all_domains = sorted(set(a.split('/')[0] for a in devs)) self.all_families = sorted(set(a.split('/')[1] for a in devs)) members = [] for a in devs: try: members.append(a.split('/')[2]) except: # Wrong names in DB? yes, they are pass #print '%s is an invalid name!'%a members = sorted(set(members)) self.all_members = sorted( set(e for m in members for e in re.split('[-_0-9]', m) if not fandango.matchCl('^[0-9]+([ABCDE][0-9]+)?$', e))) #print 'Loading alias list ...' self.all_alias = self.tango.get_device_alias_list('*') #self.alias_devs = dict((str(self.tango.get_device_alias(a)).lower(),a) for a in self.all_alias) tracer('Loading (%s) finished.' % (filters))
def load_all_devices(self,filters='*'): import fandango as fn #needed by subprocess self.tango = fn.get_database() self.alias_devs = fn.defaultdict_fromkey( lambda k,s=self: str(s.tango.get_device_alias(k))) self.archattrs = [] self.archdevs = [] #print('In load_all_devices(%s)...'%str(filters)) devs = fn.tango.get_all_devices() if filters!='*': devs = [d for d in devs if fn.matchCl( filters.replace(' ','*'),d,extend=True)] self.all_devices = devs self.all_domains = sorted(set(a.split('/')[0] for a in devs)) self.all_families = sorted(set(a.split('/')[1] for a in devs)) members = [] for a in devs: try: members.append(a.split('/')[2]) except: # Wrong names in DB? yes, they are pass #print '%s is an invalid name!'%a members = sorted(set(members)) self.all_members = sorted(set(e for m in members for e in re.split('[-_0-9]',m) if not fn.matchCl('^[0-9]+([ABCDE][0-9]+)?$',e))) #print 'Loading alias list ...' self.all_alias = self.tango.get_device_alias_list('*') #self.alias_devs = dict((str(self.tango.get_device_alias(a)).lower(),a) for a in self.all_alias) tracer('Loading (%s) finished.'%(filters))