# Buildsheet autogenerated by ravenadm tool -- Do not edit. NAMEBASE= python-croniter VERSION= 6.0.0 KEYWORDS= python VARIANTS= v12 v13 SDESC[v12]= Iteration for datetime object like cron (3.12) SDESC[v13]= Iteration for datetime object like cron (3.13) HOMEPAGE= https://github.com/kiorky/croniter CONTACT= Python_Automaton[python@ironwolf.systems] DOWNLOAD_GROUPS= main SITES[main]= PYPIWHL/07/4b/290b4c3efd6417a8b0c284896de19b1d5855e6dbdb97d2a35e68fa42de85 DISTFILE[1]= croniter-6.0.0-py2.py3-none-any.whl:main DIST_SUBDIR= python-src DF_INDEX= 1 SPKGS[v12]= single SPKGS[v13]= single OPTIONS_AVAILABLE= PY312 PY313 OPTIONS_STANDARD= none VOPTS[v12]= PY312=ON PY313=OFF VOPTS[v13]= PY312=OFF PY313=ON DISTNAME= croniter-6.0.0.dist-info GENERATED= yes [PY312].RUN_DEPENDS_ON= python-python-dateutil:single:v12 python-pytz:single:v12 [PY312].USES_ON= python:v12,wheel [PY313].RUN_DEPENDS_ON= python-python-dateutil:single:v13 python-pytz:single:v13 [PY313].USES_ON= python:v13,wheel [FILE:3929:descriptions/desc.single] Introduction ============ DISCLAIMER ============ **UNMAINTAINED/ABANDONED CODE / DO NOT USE** Due to the new EU Cyber Resilience Act (as European Union), even if it was implied because there was no more activity, this repository is now explicitly declared unmaintained. The content does not meet the new regulatory requirements and therefore cannot be deployed or distributed, especially in a European context. This repository now remains online ONLY for public archiving, documentation and education purposes and we ask everyone to respect this. As stated, the maintainers stopped development and therefore all support some time ago, and make this declaration on December 15, 2024. We may also unpublish soon (as in the following monthes) any published ressources tied to this project (pypi, the repositories, 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 minutes >>> 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 >>> >>> iter = croniter('2 4 1 * wed', base) # 04:02 on every Wednesday OR on 1st day of month >>> print(iter.get_next(datetime)) # 2010-01-27 04:02:00 >>> print(iter.get_next(datetime)) # 2010-02-01 04:02:00 >>> print(iter.get_next(datetime)) # 2010-02-03 04:02:00 >>> >>> iter = croniter('2 4 1 * wed', base, day_or=False) # 04:02 on every 1st day of the month if it is a Wednesday >>> print(iter.get_next(datetime)) # 2010-09-01 04:02:00 >>> print(iter.get_next(datetime)) # 2010-12-01 04:02:00 >>> print(iter.get_next(datetime)) # 2011-06-01 04:02:00 >>> >>> iter = croniter('0 0 * * sat#1,sun#2', base) # 1st Saturday, and 2nd Sunday of the month >>> print(iter.get_next(datetime)) # 2010-02-06 00:00:00 >>> >>> iter = croniter('0 0 * * 5#3,L5', base) # 3rd and last Friday of the month >>> print(iter.get_next(datetime)) # 2010-01-29 00:00:00 >>> print(iter.get_next(datetime)) # 2010-02-19 00:00: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(), day_or=True) 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. The day_or switch is used to control how croniter handles **day** and **day_of_week** entries. Default option is the cron behaviour, which connects those values using **OR**. If the switch is set to False, the values are connected using **AND**. This behaves like fcron and enables you to e.g. define a job that executes each 2nd Friday of a month by setting the days of month and the weekday. :: >>> 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 You can validate your crons using is_valid class method. (>= 0.3.18):: >>> croniter.is_valid('0 0 1 * *') # True [FILE:125:distinfo] 2f878c3856f17896979b2a4379ba1f09c83e374931ea15cc835c5dd2eee9b368 25468 python-src/croniter-6.0.0-py2.py3-none-any.whl