Skip to main content

Using a defined data schema to pass data between nodes in the pipeli.

Project description

Pipe-by-Schema

License: MIT Code Style: Black

Using defined data schema to passing between nodes of pipeline, much more easier to maintain your complex workflow.

Installation

  • Python 3.9+
  • poetry 1.7.1
poetry install

Quick Start

  1. Implement the run method of node class and define input and output schema.
from dataclasses import dataclass

from pipesche import BaseNode


@dataclass
class AddPayload:
    x: int
    y: int


class Add(BaseNode[AddPayload, int]):
    def run(self, payload: AddPayload) -> int:
        result = payload.x + payload.y
        print(f"{payload.x} + {payload.y} = {result}")
        return result


class PrintSomeThing(BaseNode[None, None]):
    def run(self, payload: None) -> None:
        print("Some thing...")
  1. Add the nodes to pipeline and link the nodes.
from pipesche import Pipeline


node_1 = Add("node_1")
node_2 = PrintSomeThing("node_2")
node_3 = Add("node_3")

pipeline = Pipeline()
pipeline.add_node(node_1, input_key="input_1")
pipeline.add_node(node_2)
pipeline.add_node(node_3, input_key="input_2")
pipeline.connect(node_1.name, node_3.name)
pipeline.connect(node_3.name, node_2.name)

pipeline.run({"input_1": AddPayload(1, 2), "input_2": AddPayload(3, 4)})

# Output:
# 1 + 2 = 3
# 3 + 4 = 7
# Some thing...
  1. Get the result of the node.
pipeline.get_data(key=node_3.name)

# Output:
# 7

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

pipesche-0.1.0.tar.gz (5.9 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

pipesche-0.1.0-py3-none-any.whl (6.8 kB view details)

Uploaded Python 3

File details

Details for the file pipesche-0.1.0.tar.gz.

File metadata

  • Download URL: pipesche-0.1.0.tar.gz
  • Upload date:
  • Size: 5.9 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: poetry/1.7.1 CPython/3.9.12 Darwin/23.4.0

File hashes

Hashes for pipesche-0.1.0.tar.gz
Algorithm Hash digest
SHA256 60ca77ece1ae6f22f118054735338089132f66ea98a6fe3300bed09271276d26
MD5 1e9a71f0dc1be7795212b7592c8b4eb8
BLAKE2b-256 753f3ea25dd1e7f44ea2a0bc8957dd8c7e91d89b969ce3760ad3dbcdbf3c8b37

See more details on using hashes here.

File details

Details for the file pipesche-0.1.0-py3-none-any.whl.

File metadata

  • Download URL: pipesche-0.1.0-py3-none-any.whl
  • Upload date:
  • Size: 6.8 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: poetry/1.7.1 CPython/3.9.12 Darwin/23.4.0

File hashes

Hashes for pipesche-0.1.0-py3-none-any.whl
Algorithm Hash digest
SHA256 4e1caee6160ad2a470093fcc1f264033fbd56ea30136a950eeb17dc2f7de5526
MD5 4a9c6634526b37409fcacb31b6e6b026
BLAKE2b-256 7c9694ab3c243e1160a24ba4a5de3ef181327fb2a549cecc8f4f0883097771da

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page