Пример #1
0
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
Пример #2
0
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
Пример #3
0
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())
Пример #4
0
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()
Пример #5
0
    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>"
Пример #6
0
    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