示例#1
0
文件: functions.py 项目: kulisty/sova
def retrieve(repository):
    functions = repository.retrieve_functions()
    names = {
        (n,repository.address_functions(f,n,l))
        for (n,f,l) in functions
    }
    files = {
        (f,repository.address_files(f))
        for (n,f,l) in functions
    }
    ni = list(a for (n,a) in names)
    nf = list(a for (f,a) in files)
    idx = ni+nf+['.']
    #print(idx)
    #
    graph = model.Graph([],[])
    #
    for (n,a) in names:
        graph.nodes.append(model.Node(n, 'Function', idx.index(a), a, 2))
    for (f,a) in files:
        graph.nodes.append(model.Node(f, 'File', idx.index(a), a, 1))
    graph.nodes.append(model.Node('.', 'File', idx.index('.'), repository.origin))
    for (n,f,l) in functions:
        graph.links.append(model.Link( idx.index(repository.address_files(f)), idx.index(repository.address_functions(f,n,l)), 1, 2))
    for (f,a) in files:
        graph.links.append(model.Link( idx.index(a), idx.index('.'), 1, 1))
    #for (c, p) in parents:
    #    graph.links.append(model.Link( idx.index(c), idx.index(p), 2))
    return graph
示例#2
0
文件: features.py 项目: kulisty/sova
def retrieve(repository):
    features = repository.retrieve_features()
    names = {
        (n,repository.address_functions(f,n,l),ff[0])
        for (n,f,l,ff) in features
    }
    files = {
        (f,repository.address_files(f))
        for (n,f,l,ff) in features
    }
    ni = list(a for (n,a,c) in names)
    nf = list(a for (f,a) in files)
    idx = ni+nf+['.']
    #print(idx)
    #
    graph = model.Graph([],[])
    #
    for (n,a,c) in names:
        graph.nodes.append( model.Node(name = n, group = 'Function', id = idx.index(a), url = a, visibility = 2, complexity = 5+float(c)/3) )
    for (f,a) in files:
        graph.nodes.append( model.Node(name = f, group = 'File', id = idx.index(a), url = a, visibility = 1, complexity = 4.0))
    #
    graph.nodes.append( model.Node(name = '.', group = 'File', id = idx.index('.'), url = repository.origin, complexity = 6.0) )
    #
    for (n,f,l,ff) in features:
        graph.links.append(model.Link(idx.index(repository.address_files(f)), idx.index(repository.address_functions(f,n,l)), 1, visibility = 2))
    for (f,a) in files:
        graph.links.append(model.Link(idx.index(a), idx.index('.'), 1, visibility = 1))
    #for (c, p) in parents:
    #    graph.links.append(model.Link( idx.index(c), idx.index(p), 2))
    return graph
示例#3
0
文件: files.py 项目: kulisty/sova
def retrieve(repository):
    files = repository.retrieve_files()
    files.sort()
    paths = [
        (f, os.path.basename(f), emptypath(os.path.dirname(f)))
        for f in files
    ]
    modules = list({
        dirname
        for (filename, basename, dirname) in paths
    })
    modules.sort()
    splits = [
        m.split(os.sep)
        for m in modules
    ]
    parents = []
    while splits:
        z = splits.pop()
        s = findlongest(z, splits)
        parents.append((topath(z), topath(s)))
    children = [
        c
        for (c,p) in parents
    ]
    idx = files+children
    #
    graph = model.Graph([],[])
    #
    for f in files:
        graph.nodes.append(model.Node(f, 'File', idx.index(f), repository.address_files(f), 2))
    for m in children:
        graph.nodes.append(model.Node(m, 'Directory', idx.index(m), repository.address_files(m), 1))
    for (f, b, m) in paths:
        graph.links.append(model.Link( idx.index(f), idx.index(m), 1, 2))
    for (c, p) in parents:
        graph.links.append(model.Link( idx.index(c), idx.index(p), 2, 1))
    return graph