Skip to main content

pyProcessingPipeline

The pyProcessingPipeline is a package for creating persistent and transparent data processing pipelines using a MySQL database as a persistent layer.

It stores every intermediate result, allowing everyone with access to the processing database to recreate your ProcessingRuns and validate your results.

copyright (c) 2021-2023 THM Giessen (LSE, workgroup Prof. Stefan Bernhard)

Authors: Christian Teichert, Alexander Mair, Matthias Haub, Urs Hackstein, Stefan Bernhard

This program is free software: you can redistribute it and/or modify it under the terms of the GNU Affero General Public License Version 3 as published by the Free Software Foundation.

This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHATABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Affero General Public License for more details.

You should have received a copy of the GNU Affero General Public License along with this program.

IF not, see http://www.gnu.org/licenses/.


Getting Started

Installing via PyPi

Simply run

pip install pyProcessingPipeline

Installing from source

If you want to install the most recent version (e.g. with unfished features) you can install from source. To install the pyProcessingPipeline from source, clone this repository via

git clone https://gitlab.com/agbernhard.lse.thm/agb_public/pyProcessingPipeline

and then simply run pip install:

cd pyProcessingPipeline
pip install .

Creating your first pipeline

Defining your fist processing pipeline is as easy as creating a ProcessingRun and adding as many processing steps as you want:

from pyProcessingPipeline import ProcessingRun
import pyProcessingPipeline.steps as prs

# Create a ProcessingRun, which groups all steps and handles the processing
processing_run = ProcessingRun(
    name="TestProcessingRun", description="Just a test :)", persist_results=True
)

# You may now add as many steps as you might want.
# Steps are executed in the same order as added.
processing_run.add_step(
    prs.misc.Cut(global_lower_bound=10, global_upper_bound=90)
)
processing_run.add_step(
    prs.filters.butterworth.LowpassButter(
        cutoff_frequency=1.5,
        filter_order=3,
        sampling_frequency=125,
    )
)
processing_run.add_step(
    prs.preprocessing.normalization.NormalizeFundamentalFrequency()
)
...

# To execute all steps, simply call the run-function on
# the list of timeseries you want to process.
processing_run.run([sample_data])

# The results will then be available in the run results:
processing_run.results

For creating and storing persistent runs, see the documentation.

Building Documentation

To build the documentation, you will need to install the optional dependencies needed for documentation. Switch to the root folder and run:

$ pip install '.[docs]'

Now you can build the documentation by calling

make docs

Running Tests

First, install the optional test dependencies

$ pip install '.[test]'

and run

make unittest

Checking Code

To check if your code satisfies the style requirements, you can install the optional dev dependencies

$ pip install '.[dev]'

and call

make check

This will run black for auto-formatting of code, flake8 for checking the codestyle and mypy for static code analysis.

Metadata

Release files for pyProcessingPipeline 0.3.1

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for pyProcessingPipeline 0.3.1
File Size Uploaded
pyprocessingpipeline-0.3.1.tar.gz 50.2 kB Details

Built distribution (wheel)

Table of built distributions (wheels) for pyProcessingPipeline 0.3.1
File Interpreter ABI Platform
pyProcessingPipeline-0.3.1-py3-none-any.whl Python 3 none any Details

Total release size: 116.2 kB

Release files / pyprocessingpipeline-0.3.1.tar.gz

Download URL pyprocessingpipeline-0.3.1.tar.gz
Size 50.2 kB
Tags Source
SHA-256 checksum
How to use checksums
ff865a3acb6d0b874d0a163bb46cf0953fea2b98e22e0840e451b3774e85ab87
BLAKE2b-256 checksum
How to use checksums
c7d85e44b5e7e7ba7423af98ac1a8e7dad4036cb5def44a700fdaed4684d9f10
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/5.1.1 CPython/3.12.7

Release files / pyProcessingPipeline-0.3.1-py3-none-any.whl

Download URL pyProcessingPipeline-0.3.1-py3-none-any.whl
Size 66.0 kB
Tags Python 3
SHA-256 checksum
How to use checksums
474e59009a0899907251bc3466fb7c41ca9b750cb4513efb5d063ea859751633
BLAKE2b-256 checksum
How to use checksums
a1a1b06572e9406f6637b35c4298d18b678530acbadbf0bb7df73455bf5cf240
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/5.1.1 CPython/3.12.7

Release history Release notifications | RSS feed

This release

0.3.1 This release

2 release files

0.3.0

2 release files

0.2.0

2 release files

0.1.0

2 release files

0.0.1

2 release files

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page