def instantiate_node( env: Environment, graph: Graph, declared_node: DeclaredNode, ): if isinstance(declared_node.pipe, str): pipe = env.get_pipe(declared_node.pipe) else: pipe = make_pipe(declared_node.pipe) interface = pipe.get_interface() schema_translation = interface.assign_translations( declared_node.schema_translation) declared_inputs: Dict[str, DeclaredStreamInput] = {} if declared_node.upstream is not None: for name, stream_like in interface.assign_inputs( declared_node.upstream).items(): declared_inputs[name] = DeclaredStreamInput( stream=ensure_stream(stream_like), declared_schema_translation=(schema_translation or {}).get(name), ) n = Node( env=env, graph=graph, key=declared_node.key, pipe=pipe, config=declared_node.config, interface=interface, declared_inputs=declared_inputs, declared_schema_translation=schema_translation, output_alias=declared_node.output_alias, ) return n
def test_env_init(): from . import _test_module # Test module / components env = Environment("_test", metadata_storage="sqlite://", initial_modules=[]) with env.session_scope() as sess: assert len(env.get_module_order()) == 1 env.add_module(_test_module) assert env.get_module_order() == [ env.get_local_module().name, _test_module.name, ] assert env.get_schema("TestSchema", sess) is _test_module.schemas.TestSchema assert env.get_pipe("test_sql") is _test_module.pipes.test_sql # Test runtime / storage env.add_storage("postgresql://test") assert len(env.storages) == 2 # added plus default local memory assert len(env.runtimes) == 3 # added plus default local python # TODO