Ejemplo n.º 1
0
 def __init__(self, aName):
     if isinstance(aName, CellHandler):
         return
     if isinstance(aName, types.StringTypes):
         self.name = aName
         self.handlerClass = FG.appConfigInterface("mapCellHandler",
                                                   (aName,))
         if self.handlerClass is False:
             return
         if aName.startswith("@"):
             if self.handlerClass in (None, True):
                 return
             self.classToNameCache[self.handlerClass] = aName
             self.nameToClassCache[aName] = self.handlerClass
         else:
             self.handlerClass = taTable.cellHandlerTable.get(aName)
             if self.handlerClass is None:
                 self.handlerClass = self.nameToClassCache.get(aName)
     elif (issubclass(aName, object)):
         self.handlerClass = FG.appConfigInterface("mapCellHandler",
                                                   (aName,))
         if self.handlerClass is False:
             self.name = self.handlerClass
             self.handlerClass = aName
             return
         self.handlerClass = aName
         try:
             self.name = taTable.cellHandlerClassToName[aName]
             return
         except KeyError:
             pass
         self.name = self._nameFromClassCache(aName)
Ejemplo n.º 2
0
 def __init__(self, aName):
     if isinstance(aName, CellHandler):
         return
     if isinstance(aName, types.StringTypes):
         self.name = aName
         self.handlerClass = FG.appConfigInterface("mapCellHandler",
                                                   (aName,))
         if self.handlerClass is False:
             return
         if aName.startswith("@"):
             if self.handlerClass in (None, True):
                 return
             self.classToNameCache[self.handlerClass] = aName
             self.nameToClassCache[aName] = self.handlerClass
         else:
             self.handlerClass = taTable.cellHandlerTable.get(aName)
             if self.handlerClass is None:
                 self.handlerClass = self.nameToClassCache.get(aName)
     elif (issubclass(aName, object)):
         self.handlerClass = FG.appConfigInterface("mapCellHandler",
                                                   (aName,))
         if self.handlerClass is False:
             self.name = self.handlerClass
             self.handlerClass = aName
             return
         self.handlerClass = aName
         try:
             self.name = taTable.cellHandlerClassToName[aName]
             return
         except KeyError:
             pass
         self.name = self._nameFromClassCache(aName)
Ejemplo n.º 3
0
    def tailorCellHandlerList(self, accessor, identifier,
                              typeName, metadata):
        
        # get dictionary from application exit
        chDict = FG.appConfigInterface("manageCellHandlers",
                                              typeName)
        
        # different paths if False, None or dictionary
        #    False - remove default list and return
        #    None - do requested metadata updates and return
        if chDict is False:
            self.handlerList = []
            return
        if chDict is None:
            self._tailorCellHandlersUsingMetadata(accessor, identifier, metadata)
            self._removeInapplicableCellHandlersFromList(accessor, typeName)
            return

        # process .noDefault
        if chDict.get(".startWithDefaultList") == "no":
            self.handlerList = []

        # 0.9 - type adapter add list

        # process add and remove lists
        addList = self._extractCellHandlerList(chDict, "add")
        self.addHandlers(addList)
        removeList = self._extractCellHandlerList(chDict, "remove")
        self.removeHandlers(removeList)

        # update from metadata
        if chDict.get(".updateFromMetadata") != "no":
            permitList = self._extractCellHandlerList(chDict, "permit")
            addList = metadata.get("%s.addCellHandlers" % identifier, [])
            if permitList: #pragma: no cover # better tests in 0.9
                for request in addList:
                    if chDict.get(request) == "permit":
                        self.addHandler(request)
            else:
                self.addHandlers(addList)
            delList = metadata.get("%s.removeCellHandlers" % identifier, [])
            self.removeHandlers(delList)
            
        # process required and prohibited lists
        addList = self._extractCellHandlerList(chDict, "require")
        self.addHandlers(addList)
        removeList = self._extractCellHandlerList(chDict, "prohibit")
        self.removeHandlers(removeList)

        # cross-validate ch and ta
        self._removeInapplicableCellHandlersFromList(accessor, typeName)
        return
Ejemplo n.º 4
0
    def tailorCellHandlerList(self, accessor, identifier,
                              typeName, metadata):
        
        # get dictionary from application exit
        chDict = FG.appConfigInterface("manageCellHandlers",
                                              typeName)
        
        # different paths if False, None or dictionary
        #    False - remove default list and return
        #    None - do requested metadata updates and return
        if chDict is False:
            self.handlerList = []
            return
        if chDict is None:
            self._tailorCellHandlersUsingMetadata(accessor, identifier, metadata)
            self._removeInapplicableCellHandlersFromList(accessor, typeName)
            return

        # process .noDefault
        if chDict.get(".startWithDefaultList") == "no":
            self.handlerList = []

        # 0.9 - type adapter add list

        # process add and remove lists
        addList = self._extractCellHandlerList(chDict, "add")
        self.addHandlers(addList)
        removeList = self._extractCellHandlerList(chDict, "remove")
        self.removeHandlers(removeList)

        # update from metadata
        if chDict.get(".updateFromMetadata") != "no":
            permitList = self._extractCellHandlerList(chDict, "permit")
            addList = metadata.get("%s.addCellHandlers" % identifier, [])
            if permitList: #pragma: no cover # better tests in 0.9
                for request in addList:
                    if chDict.get(request) == "permit":
                        self.addHandler(request)
            else:
                self.addHandlers(addList)
            delList = metadata.get("%s.removeCellHandlers" % identifier, [])
            self.removeHandlers(delList)
            
        # process required and prohibited lists
        addList = self._extractCellHandlerList(chDict, "require")
        self.addHandlers(addList)
        removeList = self._extractCellHandlerList(chDict, "prohibit")
        self.removeHandlers(removeList)

        # cross-validate ch and ta
        self._removeInapplicableCellHandlersFromList(accessor, typeName)
        return