__init__.py 文件源码

python
阅读 22 收藏 0 点赞 0 评论 0

项目:py-cdg 作者: musec 项目源码 文件源码
def load(stream, filename):
    if filename.endswith('.cdg'):
        import ubjson
        cg = ubjson.load(stream)

    elif filename.endswith('.json'):
        import json
        cg = json.load(stream)

    elif filename.endswith('.yaml'):
        import yaml

        try:
            from yaml import CLoader as Loader
        except ImportError:
            from yaml import Loader

        cg = yaml.load(stream, Loader=Loader)

    else:
        raise ValueError('Unhandled file type: %s' % filename)

    graph = create(filename)

    for (name, props) in cg['functions'].items():
        graph.add_node(name)

        if 'attributes' in props:
            graph.node[name].update(props['attributes'])

        if 'calls' in props:
            calls = props['calls']
            if calls:
                for target in calls:
                    graph.add_edge(name, target, kind = EdgeKind.Call)

        if 'flows' in props:
            flows = props['flows']
            if flows:
                for source in flows:
                    graph.add_edge(source, name, kind = EdgeKind.Flow)

    return graph
评论列表
文章目录


问题


面经


文章

微信
公众号

扫码关注公众号