from noodles import (schedule, run_single) from noodles.tutorial import (add) from draw_workflow import draw_workflow @schedule class A: def __init__(self, value): self.value = value @property def square(self): return self.value**2 @square.setter def square(self, sqr): self.value = sqr**(1/2) u = A(3) v = A(4) u.square = add(u.square, v.square) draw_workflow("pythagoras.pdf", u.value._workflow) print("⎷(3² + 4²) = ", run_single(u.value))
import noodles from draw_workflow import draw_workflow from noodles.tutorial import (add, mul, sub, accumulate) def test_42(): A = add(1, 1) B = sub(3, A) multiples = [mul(add(i, B), A) for i in range(6)] return accumulate(noodles.gather(*multiples)) draw_workflow("wf42.svg", test_42()._workflow)
from noodles.tutorial import (add, sub, mul) from draw_workflow import draw_workflow u = add(5, 4) v = sub(u, 3) w = sub(u, 2) x = mul(v, w) draw_workflow("callgraph-a.pdf", x._workflow)