Skip to main content

Flypipe

Project description

Flypipe

Flypipe is a Python framework to simplify development, management and maintenance of transformation pipelines, which are commonly used in the data, feature and ML model space.

Each transformation is implemented in a small, composable function, a special decorator is then used to define it as a Flypipe node, which is the primary model Flypipe uses. Metadata on the node decorator allows for multiple nodes to be linked together into a Directed Acyclic Graph (DAG).

As each node (transformation) is connected to its ancestors, we can easily view the pipeline graphically in a html page (my_graph.html()) or execute it by invoking my_graph.run()

Flypipe Graph Pipeline

Installation

pip install flypipe

Package published in PyPI.

Example Usage

import pandas as pd
from flypipe.node import node


@node(
  type="pandas"
)
def t0():
  return pd.DataFrame(data={"fruit": ["mango", "lemon"]})


@node(
  type="pandas",
  dependencies=[t0.select("fruit").alias("df")]
)
def t1(df):
  categories = {'mango': 'sweet', 'lemon': 'sour'}
  df['flavour'] = df['fruit']
  df = df.replace({'flavour': categories})
  return df

df = t1.run()
>>> print(df)
+----+---------+-----------+
|    | fruit   | flavour   |
+====+=========+===========+
|  0 | mango   | sweet     |
+----+---------+-----------+
|  1 | lemon   | sour      |
+----+---------+-----------+

What Flypipe aims to facilitate?

  • Free open-source tool for data transformations
  • Facilitate streaming pipeline development (improved use of caches)
  • Increase pipeline stability (better use of unittests)
  • End-to-end transformation lineage
  • Create development standards for Data Engineers, Machine Learning Engineers and Data Scientists
  • Improve re-usability of transformations in different pipelines & contexts via composable nodes
  • Faster integration and portability of pipelines to different contexts with different available technology stacks:
    • Flexibility to use and mix up pyspark/pandas on spark/pandas in transformations seamlessly
    • As a simple wheel package, it's very lightweight and unopinionated about runtime environment. This allows for it to be easily integrated into Databricks and independently of Databricks.
  • Low latency for on-demand feature generation and predictions
  • Framework level optimisations and dynamic transformations help to make even complex transformation pipelines low latency. This in turn allows for on-demand feature generation/predictions.

Commonly used

Databricks Python

Source Code

API code is available at https://github.com/flypipe/flypipe.

Documentation

Full documentation is available at https://flypipe.github.io/flypipe/.

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

flypipe-4.3.5.tar.gz (39.1 MB view details)

Uploaded Source

Built Distribution

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

flypipe-4.3.5-py3-none-any.whl (1.9 MB view details)

Uploaded Python 3

File details

Details for the file flypipe-4.3.5.tar.gz.

File metadata

  • Download URL: flypipe-4.3.5.tar.gz
  • Upload date:
  • Size: 39.1 MB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: python-requests/2.32.4

File hashes

Hashes for flypipe-4.3.5.tar.gz
Algorithm Hash digest
SHA256 1fc83349414c1ad63b9786b321d10736b1130c963477bdb18e1d9564c2e43742
MD5 39e47feb69730b6682812ee811fdc292
BLAKE2b-256 6a73ec060361cb539fdbf69e3350a0557e3e96fc5182746a737b29f8430f05e3

See more details on using hashes here.

File details

Details for the file flypipe-4.3.5-py3-none-any.whl.

File metadata

  • Download URL: flypipe-4.3.5-py3-none-any.whl
  • Upload date:
  • Size: 1.9 MB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: python-requests/2.32.4

File hashes

Hashes for flypipe-4.3.5-py3-none-any.whl
Algorithm Hash digest
SHA256 9e82c8b9f471e21539ae94eda0034085d2bd7ea7095d96c917bf349517b2ce67
MD5 1dc0ee7a4de2d808f428b1bb01e611de
BLAKE2b-256 aa0c0623eaefbf16f0d4a320b4186f5aa0f4fa3d7b95f53f1fc69ccbe5d39b27

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