Tags
Before we jump in with anything crazy, let's make some nodes with some vanilla data structures.
import node
You will need to import node from kedro.pipeline to start creating nodes.
from kedro.pipeline import node
func
The func
is a callable that will take the inputs
and create the outputs
.
inputs / outputs
Inputs and outputs can be None, a single catalog entry as a string, mutiple catalog entries as a List of strings, or a dictionary of strings where the key is the keyword argument of the func and the value is the catalog entry to use for that keyword.
our first node
Sometimes in our pipelines our data is coming from an api where we already have
python functions built to pull with. Thats ok, kedro supposrts that with
inputs=None
.
def create_range(): return range(100) make_range = node( func=create_range, inputs=None, outputs='range' )
second node
Now we have some data to work from, lets use that as our input.
def square_range(): return [i**2 for i in range] square_range = node( func=square_range, inputs='range', outputs='range_squared' )
Multiple Inputs
Kedro can take lists or dicts as either input or output when your function needs more than one input or output.
def concat(range, range_two): return [*range, *range_two] concat_ranges = node( func=concat, inputs=['range', 'range_squared'] outputs='concat' ) ## inputs could also be defined as a dict concat_ranges = node( func=concat, inputs={'range': 'range', 'range_two': 'range_squared'} outputs='concat' )