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'
)