def getProtocols(): """ Load all protocols subclasses defined in all em-packages. """ global _emProtocolsDict if _emProtocolsDict is None: _emProtocolsDict = getSubclassesFromModules(Protocol, getPackages()) _emProtocolsDict.update(getSubclasses(Protocol, globals())) return _emProtocolsDict
def getObjects(): """ Load all EMObject subclasses found in EM-packages. """ global _emObjectsDict if _emObjectsDict is None: _emObjectsDict = getSubclassesFromModules(EMObject, getPackages()) _emObjectsDict.update(getSubclasses(EMObject, globals())) return _emObjectsDict
def selectByClass(self, className, includeSubclasses=True, iterate=False, objectFilter=None): self.__initObjDict() if includeSubclasses: from pyworkflow.utils.reflection import getSubclasses whereStr = "classname='%s'" % className base = self.dictClasses.get(className) subDict = getSubclasses(base, self.dictClasses) for k, v in subDict.iteritems(): if issubclass(v, base): whereStr += " OR classname='%s'" % k objRows = self.db.selectObjectsWhere(whereStr) return self.__objectsFromRows(objRows, iterate, objectFilter) else: return self.selectBy(iterate=iterate, classname=className)
if t is bool: return Boolean(value) if t is float: return Float(value) if t is list: o = CsvList() o.set(value) return o if t is None: return None # If it is str, unicode or unknown type, convert to string return String(value) class Dict(dict): """ Simple wrapper around dict class to have a default value. """ def __init__(self, default=None): self._default = default dict.__init__(self) def __getitem__(self, key): """ Get the image with the given id. """ return self.get(key, self._default) def __contains__(self, item): return True # Define a global dict with all basic defined objects OBJECTS_DICT = getSubclasses(Object, globals())