Skip to main content

Yet 'Nother Taskrunner

Project description

Yenta

https://img.shields.io/pypi/v/yenta.svg https://img.shields.io/travis/grapesmoker/yenta.svg Documentation Status

Yet ‘Nother Taskrunner

Introduction

Yenta is YEt ‘Nother TAskrunner; it executes a pipeline, defined by a series of tasks and dependencies among them. The goal of Yenta is to provide a reasonable feature set while maintaining simplicity and usability. Yenta tasks are simply functions decorated with the @task decorator and complying with a specific format for their arguments.

Yenta is inspired in part by the functional state management pattern used in projects like Redux. Although I would hesitate to call Yenta “functional” in the strict sense, it does use a caching logic according to which identical inputs are assumed to produce identical outputs under default conditions. This means that Yenta will automatically reuse the cached output of a task if nothing about the inputs has changed.

The name “Yenta” is an old Yiddish name; in the American Yiddish theater of the 30s, a character named Yenta was depicted as a busy-body, so the name became a byword for someone who won’t mind their own business.

Features

  • Graph-based task execution

  • Lightweight

  • Idempotent tasks

  • Simple, intuitive API

Credits

This package was created with Cookiecutter and the audreyr/cookiecutter-pypackage project template.

History

0.1.0 (2020-05-27)

  • First release on PyPI.

  • Working pipeline execution with caching and reuse of results

0.2.0 (2020-07-01)

  • Selector functionality implemented

0.2.1 (2020-07-10)

  • Write intermediate pipeline results to a temp file and catch the case where a non-serializable object is returned

0.2.2 (2020-07-10)

  • Append running dir to sys.path

0.2.3 (2020-07-10)

  • Initialize artifact date_created by default

0.2.4 (2020-07-16)

  • FileArtifacts can be directories

  • Artifacts now have a meta field to which arbitrary JSON-serializable information can be attached

  • If an exception is raised during task execution, the stack trace is printed

  • pydot is now used for graph generation

  • Artifact equality is checked by comparing location and hash

0.3.0 (2020-10-31)

  • Serialization scheme moved from JSON to pickle to improve performance.

  • “Values” no longer explicitly exist; anything that can be pickled is a valid value.

  • Multiple pipelines with different names can be used in the same project.

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

yenta-0.4.0.tar.gz (77.1 kB view hashes)

Uploaded Source

Built Distribution

yenta-0.4.0-py2.py3-none-any.whl (14.0 kB view hashes)

Uploaded Python 2 Python 3

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