def find_all(self, ptype): all = {} # search children for child in self._children.itervalues(): # a child could be a list, so ensure we visit each item if isinstance(child, list): children = child else: children = [child] for child in children: if isinstance(child, ptype) and not isproxy(child) and \ not isNullPointer(child): all[child] = True if isSimObject(child): # also add results from the child itself child_all, done = child.find_all(ptype) all.update(dict(zip(child_all, [done] * len(child_all)))) # search param space for pname,pdesc in self._params.iteritems(): if issubclass(pdesc.ptype, ptype): match_obj = self._values[pname] if not isproxy(match_obj) and not isNullPointer(match_obj): all[match_obj] = True return all.keys(), True
def find_all(self, ptype): all = {} # search children for child in self._children.itervalues(): # a child could be a list, so ensure we visit each item if isinstance(child, list): children = child else: children = [child] for child in children: if isinstance(child, ptype) and not isproxy(child) and \ not isNullPointer(child): all[child] = True if isSimObject(child): # also add results from the child itself child_all, done = child.find_all(ptype) all.update(dict(zip(child_all, [done] * len(child_all)))) # search param space for pname, pdesc in self._params.iteritems(): if issubclass(pdesc.ptype, ptype): match_obj = self._values[pname] if not isproxy(match_obj) and not isNullPointer(match_obj): all[match_obj] = True return all.keys(), True
def find_all(self, ptype): all = {} # search children for child in self._children.itervalues(): if isinstance(child, ptype) and not isproxy(child) and \ not isNullPointer(child): all[child] = True # search param space for pname,pdesc in self._params.iteritems(): if issubclass(pdesc.ptype, ptype): match_obj = self._values[pname] if not isproxy(match_obj) and not isNullPointer(match_obj): all[match_obj] = True return all.keys(), True
def unproxy_all(self): for param in self._params.iterkeys(): value = self._values.get(param) if value != None and isproxy(value): try: value = value.unproxy(self) except: print "Error in unproxying param '%s' of %s" % \ (param, self.path()) raise setattr(self, param, value) # Unproxy ports in sorted order so that 'append' operations on # vector ports are done in a deterministic fashion. port_names = self._ports.keys() port_names.sort() for port_name in port_names: port = self._port_refs.get(port_name) if port != None: port.unproxy(self) # Unproxy children in sorted order for determinism also. child_names = self._children.keys() child_names.sort() for child in child_names: self._children[child].unproxy_all()