Example #1
0
def test_generate_netapi_fragment(test_nodenet, resourcepath):
    import os
    netapi = micropsi.nodenets[test_nodenet].netapi
    # create a bunch of nodes and link them
    linktypes = ['subsur', 'porret', 'catexp']
    nodes = []
    for t in linktypes:
        p1 = netapi.create_node('Pipe', None, t)
        p2 = netapi.create_node('Pipe', None, t + '2')
        nodes.extend([p1, p2])
        netapi.link_with_reciprocal(p1, p2, t)
    reg = netapi.create_node('Register', None, 'reg')
    netapi.link(reg, 'gen', nodes[0], 'gen')
    ns = netapi.create_nodespace(None, 'ns1')
    nodes.extend([reg, ns])
    # remember their names
    names = [n.name for n in nodes]
    fragment = micropsi.generate_netapi_fragment(test_nodenet,
                                                 [n.uid for n in nodes])
    micropsi.nodenets[test_nodenet].clear()
    code = "def foo(netapi):\n    " + "\n    ".join(fragment.split('\n'))
    # save the fragment as recipe & run
    with open(os.path.join(resourcepath, 'recipes.py'), 'w+') as fp:
        fp.write(code)
    micropsi.reload_native_modules()
    micropsi.run_recipe(test_nodenet, 'foo', {})
    # assert that all the nodes are there again
    assert set(names) == set([n.name for n in netapi.get_nodes()] + ['ns1'])
Example #2
0
def test_generate_netapi_fragment(test_nodenet, resourcepath):
    import os
    netapi = micropsi.nodenets[test_nodenet].netapi
    # create a bunch of nodes and link them
    linktypes = ['subsur', 'porret', 'catexp']
    nodes = []
    for t in linktypes:
        p1 = netapi.create_node('Pipe', None, t)
        p2 = netapi.create_node('Pipe', None, t + '2')
        nodes.extend([p1, p2])
        netapi.link_with_reciprocal(p1, p2, t)
    reg = netapi.create_node('Register', None, 'reg')
    netapi.link(reg, 'gen', nodes[0], 'gen')
    ns = netapi.create_nodespace(None, 'ns1')
    nodes.extend([reg, ns])
    # remember their names
    names = [n.name for n in nodes]
    fragment = micropsi.generate_netapi_fragment(test_nodenet, [n.uid for n in nodes])
    micropsi.nodenets[test_nodenet].clear()
    code = "def foo(netapi):\n    " + "\n    ".join(fragment.split('\n'))
    # save the fragment as recipe & run
    with open(os.path.join(resourcepath, 'recipes.py'), 'w+') as fp:
        fp.write(code)
    micropsi.reload_native_modules()
    micropsi.run_recipe(test_nodenet, 'foo', {})
    # assert that all the nodes are there again
    assert set(names) == set([n.name for n in netapi.get_nodes()] + ['ns1'])
Example #3
0
def generate_netapi_fragment(nodenet_uid, node_uids):
    return True, runtime.generate_netapi_fragment(nodenet_uid, node_uids)
Example #4
0
def generate_netapi_fragment(nodenet_uid, node_uids):
    """ Return Python code that can recreate the selected nodes and their states"""
    return True, runtime.generate_netapi_fragment(nodenet_uid, node_uids)