The current CacheDag.__call__ is just the backend.
For more convenience, we'd can add methods for all, or selected targeted values.
Consider the CachedDag below.
def add(a, b=1):
return a + b
def mult(x, y=2):
return x * y
def subtract(a, b=4):
return a - b
from meshed import code_to_dag
@code_to_dag(func_src=locals())
def dag(w, ww, www):
x = mult(w, ww)
y = add(x, www)
z = subtract(x, y)
from meshed.scrap.cached_dag import CachedDag
g = CachedDag(dag)
dag.dot_digraph()

We'd like to have methods like g.mult with a signature corresponding to the root nodes it needs to satisfy it's inputs.