Nodes

The VectorShift SDK provides different classes for each Node. Link nodes together by passing forward outputs. Data types are checked for compatibility upon node initialization.

Nodes and NodeOutputs

Pipelines are composed of nodes, which represent units of computation. They correspond with the individual nodes created in the drag-and-drop, no-code, editor. For every node in a no-code editor, you can create a corresponding, equivalent, node object with the Python SDK with just a few lines of code.

Nodes are connected via NodeOutput objects, which correspond to (directed) edges in the computation graph. Each NodeOutput has a type associated with it (see below). The general pattern for constructing pipelines is thus to feed the NodeOutputs from earlier nodes into later ones. To gain intuition for this pattern, we suggest looking at the walkthrough.

Each node object has the following general structure:

  • Its constructor takes arguments representing class-specific parameters and zero or more NodeOutputs, which correspond to inputs to the node from previous nodes (edges in the pipeline computation graph).

  • It exposes outputs via an outputs() method, which returns a dictionary keyed by strings of the output names and containing NodeOutput values. If the node returns only one output, the NodeOutput can directly be accessed via an output() method.

  • Upon initialization, the node checks that the NodeOutputs that were passed in as inputs are compatible with its expected input types. When outputs() or output() is called, the resulting NodeOutput is given a type determined by the node.

Some nodes refer to objects that already must exist on the VectorShift platform (e.g. files, integrations). For these nodes, initialization methods will make an API call behind-the-scenes to retrieve the object, so constructors require an API key, along with the ID/name of the object. If you have already added API keys as environment variables, you do not need to supply them as constructor arguments.

The Node Classes page contains specific details on all the nodes we support, including the expected constructor arguments, input types, and output types.

NodeOutput Typing

To ensure that nodes operate with each other in well-formed ways, NodeOutputs each have specific data types. Information about data types can be found in the Platform section here. Similar to the no-code editor, we return errors if the expected input data type of a node used as an input is not compatible with the expected data type of the input. If the input data type is a subtype of the given data type, a warning is printed when the pipeline is constructed (as "casting" types when running the pipeline may not succeed).

In Node Classes, we indicate for each node its expected input and output datatypes. These can help you catch possible errors with your pipelines before they are uploaded to the VectorShift platform.

Last updated