def define_ctx(): with macro_mode_on(): ctx = context(toplevel=True) ctx.cell1 = cell("json").set(1) ctx.cell2 = cell("json").set(2) ctx.result = cell("json") ctx.tf = transformer({"a": "input", "b": "input", "c": "output"}) ctx.cell1_link = link(ctx.cell1) ctx.cell1_link.connect(ctx.tf.a) ctx.cell2.connect(ctx.tf.b) ctx.code = pytransformercell().set("c = a + b") ctx.code.connect(ctx.tf.code) ctx.result_link = link(ctx.result) ctx.tf.c.connect(ctx.result_link) return ctx
def define_ctx(): with macro_mode_on(): ctx = context(toplevel=True) ctx.cell1 = cell().set(1) ctx.cell2 = cell().set(2) ctx.result = cell() ctx.tf = transformer({ "a": "input", "b": "input", "c": "output" }) ctx.cell1_link = link(ctx.cell1) ctx.cell1_link.connect(ctx.tf.a) ctx.cell2.connect(ctx.tf.b) ctx.code = pytransformercell().set("c = a + b") ctx.code.connect(ctx.tf.code) ctx.result_link = link(ctx.result) ctx.tf.c.connect(ctx.result_link) return ctx
raise NotImplementedError ### import seamless from seamless.core import macro_mode_on from seamless.core import context, cell, transformer, pytransformercell, link with macro_mode_on(): ctx = context(toplevel=True) ctx.cell1 = cell().set(1) ctx.cell2 = cell().set(2) ctx.result = cell() ctx.tf = transformer({"a": "input", "b": "input", "c": "output"}) ctx.cell1_link = link(ctx.cell1) ctx.cell1_link.connect(ctx.tf.a) ctx.cell2.connect(ctx.tf.b) ctx.code = pytransformercell().set("c = a + b") ctx.code.connect(ctx.tf.code) ctx.result_link = link(ctx.result) ctx.tf.c.connect(ctx.result_link) ctx.equilibrate() print(ctx.result.value) ctx.cell1.set(10) ctx.equilibrate() print(ctx.result.value) ctx.code.set("c = a + b + 1000") ctx.equilibrate() print(ctx.result.value) print(ctx.status())
import seamless from seamless.core import context, cell, transformer, pytransformercell, link ctx = context(toplevel=True) ctx.cell1 = cell().set(1) ctx.cell2 = cell().set(2) ctx.result = cell() ctx.tf = transformer({ "a": "input", "b": "input", "c": "output" }) ctx.cell1_link = link(ctx.cell1) ctx.cell1_link.connect(ctx.tf.a) ctx.cell2.connect(ctx.tf.b) ctx.code = pytransformercell().set("c = a + b") ctx.code.connect(ctx.tf.code) ctx.result_link = link(ctx.result) ctx.tf.c.connect(ctx.result_link) ctx.result_copy = cell() ctx.result.connect(ctx.result_copy) print(ctx.cell1.value) print(ctx.code.value) ctx.equilibrate() print(ctx.result.value, ctx.status) ctx.cell1.set(10) ctx.equilibrate() print(ctx.result.value, ctx.status) ctx.code.set("c = a + b + 1000") ctx.equilibrate()
ctx.tfx.code.cell().set("x = x0 + '!'") ctx.macro.ctx.x0.connect(ctx.tfx.x0) ctx.x = cell("text") ctx.tfx.x.connect(ctx.macro.ctx.x_link) ctx.tfx.x.connect(ctx.x) ctx.y = cell("text") ctx.macro.ctx.y.connect(ctx.y) ctx.e = cell("json") ctx.e2 = cell("json") p_d = path(ctx.macro.ctx).d p_d.connect(ctx.e) p_tf2 = path(ctx.macro.ctx).tf2 ctx.e.connect(p_tf2.e) p_tf2.e2.connect(ctx.e2) ctx.z = cell("text").set("z") ctx.z_link = link(ctx.z) ctx.z_link.connect(ctx.macro.ctx.z) ctx.q = cell("text") ctx.macro.ctx.q_link.connect(ctx.q) ctx.macro.ctx.q.connect(ctx.macro.ctx.qq) ctx.r = cell("text") ctx.r_link = link(ctx.r) ctx.macro.ctx.r_link.connect(ctx.r_link) ctx.r.connect(ctx.macro.ctx.rr_link) ctx.async_macro = macro({}) ctx.dummycode = pymacrocell().set("pass") ctx.dummycode.connect(ctx.macro.ctx.not_async_submacro.code) def report(): d = "<non-existent>"
ctx.tfxx = cell("text") ctx.tfx.x.connect(ctx.tfxx) ctx.tfxx.connect(ctx.macro.ctx.x_link) ctx.tfx.x.connect(ctx.x) ctx.y = cell("text") ctx.macro.ctx.y.connect(ctx.y) ctx.e = cell("plain") ctx.e2 = cell("plain") p_d = path(ctx.macro.ctx).d p_d.connect(ctx.e) p_tf2e = path(ctx.macro.ctx).tf2e p_tf2e2 = path(ctx.macro.ctx).tf2e2 ctx.e.connect(p_tf2e) p_tf2e2.connect(ctx.e2) ctx.z = cell("text").set("z") ctx.z_link = link(ctx.z) ctx.z_link.connect(ctx.macro.ctx.z) ctx.q = cell("text") ctx.macro.ctx.q_link.connect(ctx.q) ctx.subq = cell("text") ctx.macro.ctx.q.connect(ctx.subq) ctx.subq.connect(ctx.macro.ctx.qq) ctx.r = cell("text") ctx.r_link = link(ctx.r) ctx.macro.ctx.r_link.connect(ctx.r_link) ctx.r.connect(ctx.macro.ctx.rr_link) def report(): d = "<non-existent>" if ctx.macro.ctx.hasattr("d"): d = ctx.macro.ctx.d.value