Skip to main content

Read the latest Real Python tutorials

Project description

Tzolk'in: Scheduling for Humans™

tsolkin is a python scheduler based on cron, schedule, snaptime, and maya.


What's with the name?

The Tzolk'in is a mayan calander. I named it that because it's a scheduler based on maya, the excellent datatime library by Kenneth Reitz.

What does tzolkin do differently?

It's designed for maximum flexibility and built to be human interpretable.

All the core elements are abstract classes with minimal interfaces.

Need some weird asynchronous behavior, or to ensure consistency across a bunch of remote nodes? Write a Schedule.

Want to schedule something for every time there's penumbral lunar eclipse over Old Carthage, or the first day of every prime numbered Gregorian year? Write a TimeSet.

Need to trigger something weird? If you can fit it in a python function, it'll work as a Job.

Why did you make this?

I needed it for another project. I started out using schedule, but it quickly became clear that I needed something more flexible and extensible.

Why not improve schedule?

My particular use cases would have required pretty dramatic changes, and looking at the contribution rules (in particular the requirement that it work for python2, and the requirement that it not use external libraries) for schedule I decided it was not going to be very plausible.

In addition, I wanted more flexible fluent building, and native first class support for jobs that run only once.

Why not improve python-crontab?

The goals of python-crontab are a little different. I wanted to focus on scheduling within python (not just running bash jobs). I wanted to support scheduling singleton jobs, as above. And I wanted something more readable.

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

tzolkin-1.0.0.tar.gz (15.0 kB view hashes)

Uploaded source

Built Distribution

tzolkin-1.0.0-py3-none-any.whl (3.5 kB view hashes)

Uploaded py3

Supported by

AWS AWS Cloud computing Datadog Datadog Monitoring Facebook / Instagram Facebook / Instagram PSF Sponsor Fastly Fastly CDN Google Google Object Storage and Download Analytics Huawei Huawei PSF Sponsor Microsoft Microsoft PSF Sponsor NVIDIA NVIDIA PSF Sponsor Pingdom Pingdom Monitoring Salesforce Salesforce PSF Sponsor Sentry Sentry Error logging StatusPage StatusPage Status page