Skip to main content

Pipeline framework.

Project description

To install the library:

pip install ppline

1. About

The library ppline can execute any class or any sequance of classes in any order. In other words, it is able to execute both:

  • a specific class from a particular python file that can contain multiple classes, or
  • an ordered sequence of specified classes from different python files.

2. How it works

2.1. Triggering a sequence of classes in order

To build a pipeline with classes to execute, you have to create a config .yml file in a root directory in the following form:

steps:
    [step name]:
        exec: [relative path to a file]:[class to execute]
    [step name]:
        exec: [relative path to a file]:[class to execute]
    [step name]:
        exec: [relative path to a file]:[class to execute]

Let's create a config .yml file with the name collect.yml:

steps:
    preProcessing:
        exec: src/calculation.py:Calculate
    kMeans:
        exec: src/models.py:Kmeans
    hyperTuning:
        exec: src/tuning.py:GridSearch

The executable classes specified in collect.yml should have a __call__ method. For instance, if we open aforementioned in collect.yml file in src/calculation.py and look at Calculate class that we trigger, we see call method in the end.

#this is src/calculation.py

class Calculate(object):
	def sum(self):
		a=2
		b=4
		self.c=a+b

	def divide(self):
		f=4
		self.d = self.c/f

    def show_result(self):
            print(self.d)

	def __call__(self):
		self.sum()
		self.divide()
        self.show_result()

In order for the ppline to work, you have to make sure that

  • your code is module-enabled (you have to have __init__.py in every directory with .py files that you desire to execute classes from;
  • the names of your steps in .yml are unique;

After creating a configuration .yml file in your root directory, use the following command to trigger the pipeline in terminal:

python -m ppline.cli --config_file collect.yml

2.2. Triggering one class from .py file

Ppline can also trigger a specific class from a specific .py file.

python -m ppline.cli --trigger_class path/to/file.py:TestClass

Below is an example of command that triggers a Calculate class from calculation.py file.

python -m ppline.cli --trigger_class src/calculation.py:Calculate

Note: Calculate class should have a __call__ method that executes desired class functions, and src/calculation.py should contain __init__.py file.

To do

  • dependency map between steps
  • independent steps in parallel
  • make png export of visualized pipeline w/ names

Changes

0.2.5 (2021-08-08)

  • feature to trigger a single class
  • feature to generate gitlab-ci.yml file from the pipeline config file
  • minor bug fixes

0.2.2 (2021-03-15)

  • __call__ method is implemented
  • minor bug fixes

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

ppline-0.2.5.tar.gz (10.2 kB view details)

Uploaded Source

Built Distribution

ppline-0.2.5-py3.9.egg (20.8 kB view details)

Uploaded Source

File details

Details for the file ppline-0.2.5.tar.gz.

File metadata

  • Download URL: ppline-0.2.5.tar.gz
  • Upload date:
  • Size: 10.2 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/3.3.0 pkginfo/1.5.0.1 requests/2.24.0 setuptools/49.2.0.post20200714 requests-toolbelt/0.9.1 tqdm/4.62.0 CPython/3.8.3

File hashes

Hashes for ppline-0.2.5.tar.gz
Algorithm Hash digest
SHA256 3fe136d3bb77346b48df4cc8695fbeb85a2cb7090e499fb78d868d0a925c8765
MD5 fb5dc1485d167fac7b27b5bc780816a0
BLAKE2b-256 7d66b2a9562246f7301d8d05f27285f45ab514dee838d0a5031b132c5a653093

See more details on using hashes here.

File details

Details for the file ppline-0.2.5-py3.9.egg.

File metadata

  • Download URL: ppline-0.2.5-py3.9.egg
  • Upload date:
  • Size: 20.8 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/3.3.0 pkginfo/1.5.0.1 requests/2.24.0 setuptools/49.2.0.post20200714 requests-toolbelt/0.9.1 tqdm/4.62.0 CPython/3.8.3

File hashes

Hashes for ppline-0.2.5-py3.9.egg
Algorithm Hash digest
SHA256 884886dc02e55a7d99e58bbb0ac3c48824557b591fccf9c5a5b5c5a46aa260a9
MD5 1f49784f8369c0853af61b9904355a8c
BLAKE2b-256 821ad9ca52f7bec9ec04a1734a13541dedc6ab985ecfbb6e66d9a7ac304be8f9

See more details on using hashes here.

Supported by

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