RETIRED, further work has moved to Debian project infrastructure
Go to file
iddo d896ef747f The fuctionality of 'l' as day of month was brokne, since the month variable was not properly updated 2015-11-23 17:07:43 +02:00
docs Back to development: 0.3.10 2015-11-19 10:41:36 +01:00
src/croniter The fuctionality of 'l' as day of month was brokne, since the month variable was not properly updated 2015-11-23 17:07:43 +02:00
.gitignore switch over nose for tests 2014-01-29 13:58:16 +01:00
.travis.yml fix tests 2014-01-29 23:28:10 +01:00
MANIFEST.in proper packaging 2012-09-29 18:20:53 +02:00
README.rst Update README.rst 2015-08-22 12:54:09 +02:00
bootstrap.py buildout2 2014-01-29 13:30:11 +01:00
buildout.cfg fix tests 2014-01-29 23:28:10 +01:00
py3.cfg fix tests 2014-01-29 23:28:10 +01:00
setup.py Back to development: 0.3.10 2015-11-19 10:41:36 +01:00

README.rst

Introduction

croniter provides iteration for datetime object with cron like format.

_ _
___ _ __ ___  _ __ (_) |_ ___ _ __
/ __| '__/ _ \| '_ \| | __/ _ \ '__|
| (__| | | (_) | | | | | ||  __/ |
\___|_|  \___/|_| |_|_|\__\___|_|

Website: https://github.com/kiorky/croniter

Travis badge

image

Usage

Simple example of usage is followings:

>>> 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 constructor and get_next, these signature are following:

>>> def __init__(self, cron_format, start_time=time.time())

croniter iterate along with 'cron_format' from 'start_time'. cron_format is 'min hour day month day_of_week', and please refer to http://en.wikipedia.org/wiki/Cron for details.:

>>> def get_next(self, ret_type=float)

get_next return next time in iteration with 'ret_type'. And ret_type accept only 'float' or 'datetime'.

Now, supported 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
python bootstrap.py -d
bin/buildout -vvvvvvN
bin/test

Make a new release

We use zest.fullreleaser, a great releaser infrastructure.

Do and follow the instructions :

bin/fullrelease

Contributors

Thank you to all who have contributed to this project! If you contributed and not listed below please let me know.

  • mrmachine
  • Hinnack
  • shazow
  • kiorky
  • jlsandell
  • mag009
  • djmitche
  • GreatCombinator
  • chris-baynes
  • ipartola
  • yuzawa-san