Dequindre /de-KWIN-der/ (n.): A minimalist scheduler.

Supported Versions Documentation Version License PyPI - Downloads

Dequindre Is Easy to Setup

Anywhere Python goes, Dequindre can follow. Dequindre is written in pure python and is OS independent. All you need is to pip install dequindre.

Dequindre Is Easy to Run

Dequindre makes it easy to run virtual environments. Dequindre supports virtualenv, pipenv, and conda environments.

Dequindre Is Easy to Learn

You can run your first Dequindre workflow in minutes. Dequindre is less than 1000 lines of Python and fully documented. In contrast, Airflow v1.10.2 has 444 pages of docs.

Your First Dequindre Schedule

Install dequindre from PyPI pip install dequindre. Then in the REPL,

>>> from dequindre import Task, DAG, Dequindre

>>> ## define tasks and environments
>>> boil_water = Task('./boil_water.py')
>>> steep_tea = Task('./steep_tea.py')
>>> drink_tea = Task('./drink_tea.py')

>>> ## define runtime dependencies
>>> make_tea = DAG(dependencies={
...     steep_tea: boil_water,
...     drink_tea: steep_tea
... })

>>> ## create schedules
>>> dq = Dequindre(make_tea)
>>> dq.get_schedules()
defaultdict(<class 'set'>, {
    1: {Task(./boil_water.py)},
    2: {Task(./steep_tea.py)},
    3: {Task(./drink_tea.py)}})

>>> ## run tasks if the files exist.
>>> dq.run_tasks()
Running Task(./boil_water.py)

I am boiling water...

Running Task(./steep_tea.py)

I am steeping tea...

Running Task(./drink_tea.py)

I am drinking tea...

You can run the tasks by copy-pasting the following python code into the commented files.

# pour_water.py
print("I'm pouring water...")
# boil_water.py
print("I'm boiling water...")
# steep_tea.py
print("I'm steeping tea...")

Features

  • Automated workflow scheduling
  • Pure Python: Relies entirely on Python built-ins to reduce bugs and complexity
  • Cross-Python compatible: Supports Python 2 and Python 3
  • Cross-platform: Windows and Unix style OS environments
  • Run your Python tasks in any pre-defined environments
    • dequindre facilitates virtualenv, conda, and pipenv environments
  • Supports dynamic workflow configuration also seen in Airflow
  • Documented examples and configuration

Extras

License

This project is licensed under the MIT License - see the LICENSE file for details.

Versioning

We use SemVer for versioning. For the versions available, see the tags on this repository.

Contribute

If you’re interested in contributing to Dequindre, raise an issue, make a pull request to dev, and reach out to the author, vogt4nick.

Please read our contribution guidelines for details on our code of conduct, and the process for submitting pull requests to us.

Acknowledgements

Thank you, Dynatrace, for facilitating the early development of Dequindre during Innovation Day, February 2019.