def _build_manifest_graph()

in appengine/runtime_builders/verify_manifest.py [0:0]


def _build_manifest_graph(manifest):
    try:
        node_graph = {}
        for key, val in manifest.get('runtimes').iteritems():
            target = val.get('target', {})
            if not target:
                if 'deprecation' not in val:
                    logging.error('No target or deprecation specified for '
                                  'runtime: %s', key)
                    sys.exit(1)
                continue
            child = None
            isBuilder = 'file' in target.keys()
            if not isBuilder:
                child = target['runtime']
            node = node_graph.get(key, {})
            if not node:
                node_graph[key] = builder_util.Node(key, isBuilder, child)
        return node_graph
    except (KeyError, AttributeError) as ke:
        logging.error('Error encountered when verifying manifest: %s', ke)
        sys.exit(1)