Skip to main content

Introduction

croniter provides iteration for the datetime object with a cron like format.

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

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

Travis badge

https://travis-ci.org/kiorky/croniter.png

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)

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

Metadata

Release files for croniter 0.3.13

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for croniter 0.3.13
File Size Uploaded
croniter-0.3.13.tar.gz 14.5 kB Details

Built distribution (wheel)

Table of built distributions (wheels) for croniter 0.3.13
File Interpreter ABI Platform
croniter-0.3.13-py2.py3-none-any.whl Python 2, Python 3 none any Details

Total release size: 29.5 kB

Release files / croniter-0.3.13.tar.gz

Download URL croniter-0.3.13.tar.gz
Size 14.5 kB
Tags Source
SHA-256 checksum
How to use checksums
e8784d1a87b99699246aac9bb1105d80d379484c882e6f2792603eba48937747
BLAKE2b-256 checksum
How to use checksums
e3b92658291fb86dc07abed098b7de3b1e558761e0aa6c9ddfee7c0624a5038c
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No

Release files / croniter-0.3.13-py2.py3-none-any.whl

Download URL croniter-0.3.13-py2.py3-none-any.whl
Size 14.9 kB
Tags Python 2 Python 3
SHA-256 checksum
How to use checksums
eca07fa66f9aef886468526133eadf0b71700e2be8a9f379a76cae08f79dcb9d
BLAKE2b-256 checksum
How to use checksums
924e64d76cb2bfe54f4c1e81f7e0a2994c7e3d96796aa43a97231d885083f6f8
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No

Release history Release notifications | RSS feed

6.2.4

2 release files

6.2.3

2 release files

6.2.2

2 release files

6.2.1

2 release files

6.2.0

2 release files

6.1.0

2 release files

6.0.0

2 release files

5.0.1

2 release files

4.0.0

2 release files

3.0.4

2 release files

3.0.3

2 release files

3.0.2

2 release files

3.0.1

2 release files

3.0.0

2 release files

2.0.7

2 release files

2.0.6

2 release files

2.0.5

2 release files

2.0.4

2 release files

2.0.3

2 release files

2.0.2

2 release files

2.0.1

2 release files

2.0.0

2 release files

1.4.1

2 release files

1.4.0

2 release files

1.3.15

2 release files

1.3.14

2 release files

1.3.13

2 release files

1.3.12

2 release files

1.3.11

2 release files

1.3.8

2 release files

1.3.7

2 release files

1.3.6

2 release files

1.3.5

2 release files

1.3.4

2 release files

1.3.3

2 release files

1.3.2

2 release files

1.3.1

2 release files

1.3.0

2 release files

1.2.0

2 release files

1.1.0

2 release files

1.0.15

2 release files

1.0.14

2 release files

1.0.12

2 release files

1.0.10

2 release files

1.0.9

2 release files

1.0.8

2 release files

1.0.7

2 release files

1.0.6

2 release files

1.0.5

2 release files

1.0.4

2 release files

1.0.3

2 release files

1.0.2

2 release files

1.0.1

2 release files

0.3.37

2 release files

0.3.35

2 release files

0.3.34

2 release files

0.3.33

2 release files

0.3.32

2 release files

0.3.30

2 release files

0.3.29

2 release files

0.3.28

2 release files

0.3.24

1 release file

0.3.23

1 release file

0.3.22

1 release file

0.3.20

1 release file

0.3.19

1 release file

0.3.18

1 release file

0.3.17

1 release file

0.3.16

1 release file

0.3.15

1 release file

0.3.14

1 release file

This release

0.3.13 This release

2 release files

0.3.12

1 release file

0.3.11

1 release file

0.3.10

1 release file

0.3.9

1 release file

0.3.8

1 release file

0.3.7

1 release file

0.3.6

1 release file

0.3.5

1 release file

0.3.4

1 release file

0.3.3

1 release file

0.3.2

1 release file

0.3.1

1 release file

0.3.0

1 release file

0.2.7

2 release files

0.2.6

1 release file

0.2.5

1 release file

0.2.4

1 release file

0.2.2

1 release file

0.2.1

0.2.0

1 release file

0.1.6

1 release file

0.1.5

2 release files

0.1.4

3 release files

0.1.3

1 release file

0.1.2

1 release file

0.1.1

1 release file

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page