Example #1
0
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
Example #2
0
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
Example #3
0
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
Example #4
0
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
Example #5
0
 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)
Example #6
0
    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)
Example #7
0
    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())