RETIRED, further work has moved to Debian project infrastructure
Go to file
OpenDev Sysadmins f3576081d7 OpenDev Migration Patch
This commit was bulk generated and pushed by the OpenDev sysadmins
as a part of the Git hosting and code review systems migration
detailed in these mailing list posts:

http://lists.openstack.org/pipermail/openstack-discuss/2019-March/003603.html
http://lists.openstack.org/pipermail/openstack-discuss/2019-April/004920.html

Attempts have been made to correct repository namespaces and
hostnames based on simple pattern matching, but it's possible some
were updated incorrectly or missed entirely. Please reach out to us
via the contact information listed at https://opendev.org/ with any
questions you may have.
2019-04-19 19:42:27 +00:00
debian Bumped debhelper compat version to 10 2016-11-24 00:05:00 +01:00
docs Preparing release 0.3.12 2016-03-10 21:31:19 +01:00
src/croniter support setting ret_type in __init__ 2016-02-24 13:48:32 -07:00
.gitignore switch over nose for tests 2014-01-29 13:58:16 +01:00
.gitreview OpenDev Migration Patch 2019-04-19 19:42:27 +00: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 Preparing release 0.3.12 2016-03-10 21:31:19 +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