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 details)

Uploaded Source

Built Distribution

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

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

Uploaded Python 2Python 3

File details

Details for the file yenta-0.4.0.tar.gz.

File metadata

  • Download URL: yenta-0.4.0.tar.gz
  • Upload date:
  • Size: 77.1 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/3.1.1 pkginfo/1.8.2 requests/2.26.0 setuptools/60.1.1 requests-toolbelt/0.9.1 tqdm/4.62.3 CPython/3.9.10

File hashes

Hashes for yenta-0.4.0.tar.gz
Algorithm Hash digest
SHA256 6662415e3ccc4a9e906ef336f396723b29275f4eec5c889018ede988da7ba620
MD5 157d08dffd13d3c54f6bbc209140ef44
BLAKE2b-256 4ab3d9e6be199c33bf77a7ba12f108adaf47416ece4779a990a5afcd7a97525b

See more details on using hashes here.

File details

Details for the file yenta-0.4.0-py2.py3-none-any.whl.

File metadata

  • Download URL: yenta-0.4.0-py2.py3-none-any.whl
  • Upload date:
  • Size: 14.0 kB
  • Tags: Python 2, Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/3.1.1 pkginfo/1.8.2 requests/2.26.0 setuptools/60.1.1 requests-toolbelt/0.9.1 tqdm/4.62.3 CPython/3.9.10

File hashes

Hashes for yenta-0.4.0-py2.py3-none-any.whl
Algorithm Hash digest
SHA256 57529e630efed661ea31277dd404b2ace30030edea3031f11d984b2f1aa8cee9
MD5 024e522a22bc102b8fa6bd94a4719aa7
BLAKE2b-256 3046493a218aee4e776905d42f5930e2985eda4775c5412409ae5bdc1ca8b2e5

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