Source code for ewokscore.tests.examples.graphs

import pkgutil
import importlib
from functools import wraps

ALL_GRAPHS = None


def _discover_graphs():
    if ALL_GRAPHS is None:
        for pkginfo in pkgutil.walk_packages(__path__, __name__ + "."):
            importlib.import_module(pkginfo.name)


[docs] def graph_names(): _discover_graphs() return ALL_GRAPHS.keys()
[docs] def get_graph(name) -> tuple: _discover_graphs() return ALL_GRAPHS[name]
[docs] def graph(graph_method): global ALL_GRAPHS name = graph_method.__name__ @wraps(graph_method) def wrapper(): g, result = graph_method() attrs = g.setdefault("graph", dict()) attrs.setdefault("id", name) attrs.setdefault("label", name) attrs.setdefault("schema_version", "1.0") return g, result if ALL_GRAPHS is None: ALL_GRAPHS = dict() ALL_GRAPHS[name] = wrapper() return wrapper