Пример #1
0
def getReferencesToModule(root, fqn):
    
    modulename = fqn.split(".")[-1]
    moduleobj = getTypeOf(root, fqn)
    moduleRefFinder = ModuleRefFinder(moduleobj)
    
    for ref in globalScanForMatches(moduleRefFinder, modulename):
        yield ref
Пример #2
0
def getReferencesToModule(root, fqn):

    modulename = fqn.split(".")[-1]
    moduleobj = getTypeOf(root, fqn)
    moduleRefFinder = ModuleRefFinder(moduleobj)

    for ref in globalScanForMatches(moduleRefFinder, modulename):
        yield ref
Пример #3
0
 def visitFrom(self, node):
     for elem in node.modname.split("."):
         if elem == self.targetmodule.name:
             getTypeOf(self.scope, elem) == self.targetmodule
             self.appendMatch(self.targetmodule.name)
         self.popWordsUpTo(elem)
         
     for name, alias in node.names:
         if name == self.targetmodule.name:
             if alias and \
                getTypeOf(self.scope, alias) == self.targetmodule:
                 self.appendMatch(self.targetmodule.name)
             elif getTypeOf(self.scope, name) == self.targetmodule:
                 self.appendMatch(self.targetmodule.name)
         if name != "*":
             self.popWordsUpTo(name)
         if alias is not None:
             self.popWordsUpTo(alias)
Пример #4
0
 def visitImport(self, node):
     for name, alias in node.names:
         if name.split(".")[-1] == self.targetmodule.name:
             if getTypeOf(self.scope, name) == self.targetmodule:
                 self.appendMatch(self.targetmodule.name)
         for nameelem in name.split("."):
             self.popWordsUpTo(nameelem)
         if alias is not None:
             self.popWordsUpTo(alias)
Пример #5
0
    def visitFrom(self, node):
        for elem in node.modname.split("."):
            if elem == self.targetmodule.name:
                getTypeOf(self.scope, elem) == self.targetmodule
                self.appendMatch(self.targetmodule.name)
            self.popWordsUpTo(elem)

        for name, alias in node.names:
            if name == self.targetmodule.name:
                if alias and \
                   getTypeOf(self.scope, alias) == self.targetmodule:
                    self.appendMatch(self.targetmodule.name)
                elif getTypeOf(self.scope, name) == self.targetmodule:
                    self.appendMatch(self.targetmodule.name)
            if name != "*":
                self.popWordsUpTo(name)
            if alias is not None:
                self.popWordsUpTo(alias)
Пример #6
0
 def visitImport(self, node):
     for name, alias in node.names:
         if name.split(".")[-1] == self.targetmodule.name:
             if getTypeOf(self.scope, name) == self.targetmodule:
                 self.appendMatch(self.targetmodule.name)
         for nameelem in name.split("."):
             self.popWordsUpTo(nameelem)
         if alias is not None:
             self.popWordsUpTo(alias)
Пример #7
0
def getRootClassesOfHierarchy(klass, pythonpath):
    if klass is None:  # i.e. dont have base class in our ast
        return None
    if klass.getBaseClassNames() == []:  # i.e. is a root class
        return [klass]
    else:
        rootclasses = []
        for base in klass.getBaseClassNames():
            baseclass = getTypeOf(klass, base, pythonpath)
            rootclass = getRootClassesOfHierarchy(baseclass, pythonpath)
            if rootclass is None:  # base class not in our ast
                rootclass = [klass]
            rootclasses += rootclass
        return rootclasses
Пример #8
0
def getRootClassesOfHierarchy(klass):
    if klass is None:  # i.e. dont have base class in our ast
        return None
    if klass.getBaseClassNames() == []:  # i.e. is a root class
        return [klass]
    else:
        rootclasses = []
        for base in klass.getBaseClassNames():
            baseclass = getTypeOf(klass,base)
            rootclass = getRootClassesOfHierarchy(baseclass)
            if rootclass is None:  # base class not in our ast
                rootclass = [klass]
            rootclasses+=rootclass
        return rootclasses