croniter provides iteration for datetime object with cron like format
Project description
Introduction
croniter provides iteration for the datetime object with a cron like format.
_ _ ___ _ __ ___ _ __ (_) |_ ___ _ __ / __| '__/ _ \| '_ \| | __/ _ \ '__| | (__| | | (_) | | | | | || __/ | \___|_| \___/|_| |_|_|\__\___|_|
Website: https://github.com/kiorky/croniter
Travis badge
Usage
A simple example:
>>> from croniter import croniter >>> from datetime import datetime >>> base = datetime(2010, 1, 25, 4, 46) >>> iter = croniter('*/5 * * * *', base) # every 5 minites >>> print iter.get_next(datetime) # 2010-01-25 04:50:00 >>> print iter.get_next(datetime) # 2010-01-25 04:55:00 >>> print iter.get_next(datetime) # 2010-01-25 05:00:00 >>> >>> iter = croniter('2 4 * * mon,fri', base) # 04:02 on every Monday and Friday >>> print iter.get_next(datetime) # 2010-01-26 04:02:00 >>> print iter.get_next(datetime) # 2010-01-30 04:02:00 >>> print iter.get_next(datetime) # 2010-02-02 04:02:00
All you need to know is how to use the constructor and the get_next method, the signature of these methods are listed below:
>>> def __init__(self, cron_format, start_time=time.time())
croniter iterates along with ‘cron_format’ from ‘start_time’. cron_format is ‘min hour day month day_of_week’, you can refer to http://en.wikipedia.org/wiki/Cron for more details.:
>>> def get_next(self, ret_type=float)
get_next calculates the next value according to the cron expression and returns an object of type ‘ret_type’. ret_type should be a ‘float’ or a ‘datetime’ object.
Supported added for get_prev method. (>= 0.2.0):
>>> base = datetime(2010, 8, 25) >>> itr = croniter('0 0 1 * *', base) >>> print itr.get_prev(datetime) # 2010-08-01 00:00:00 >>> print itr.get_prev(datetime) # 2010-07-01 00:00:00 >>> print itr.get_prev(datetime) # 2010-06-01 00:00:00
Develop this package
git clone https://github.com/kiorky/croniter.git cd croniter virtualenv --no-site-packages venv . venv/bin/activate pip install --upgrade -r requirements/test.txt py.test src
Make a new release
We use zest.fullreleaser, a great release infrastructure.
Do and follow these instructions
. venv/bin/activate pip install --upgrade -r requirements/release.txt fullrelease
Contributors
Thanks to all who have contributed to this project! If you have contributed and your name is not listed below please let me know.
mrmachine
Hinnack
shazow
kiorky
jlsandell
mag009
djmitche
GreatCombinator
chris-baynes
ipartola
yuzawa-san
Changelog
0.3.13 (2016-11-01)
0.3.12 (2016-03-10)
support setting ret_type in __init__ [Brent Tubbs <brent.tubbs@gmail.com>]
0.3.11 (2016-01-13)
Bug fix: The get_prev API crashed when last day of month token was used. Some essential logic was missing. [Iddo Aviram <iddo.aviram@similarweb.com>]
0.3.10 (2015-11-29)
The fuctionality of ‘l’ as day of month was broken, since the month variable was not properly updated [Iddo Aviram <iddo.aviram@similarweb.com>]
0.3.9 (2015-11-19)
Don’t use datetime functions python 2.6 doesn’t support [petervtzand]
0.3.8 (2015-06-23)
Truncate microseconds by setting to 0 [Corey Wright]
0.3.7 (2015-06-01)
converting sun in range sun-thu transforms to int 0 which is recognized as empty string; the solution was to convert sun to string “0”
0.3.6 (2015-05-29)
Fix default behavior when no start_time given Default value for start_time parameter is calculated at module init time rather than call time.
Fix timezone support and stop depending on the system time zone
0.3.5 (2014-08-01)
support for ‘l’ (last day of month)
0.3.4 (2014-01-30)
Python 3 compat
QA Relase
0.3.3 (2012-09-29)
proper packaging
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Hashes for croniter-0.3.13-py2.py3-none-any.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | eca07fa66f9aef886468526133eadf0b71700e2be8a9f379a76cae08f79dcb9d |
|
MD5 | 02642bbbb84b41454fe342374522c74f |
|
BLAKE2b-256 | 924e64d76cb2bfe54f4c1e81f7e0a2994c7e3d96796aa43a97231d885083f6f8 |