python-croniter
Port variant v12
Summary Iteration for datetime object like cron (3.12)
Package version 6.0.0
Homepage https://github.com/kiorky/croniter
Keywords python
Maintainer Python Automaton
License Not yet specified
Other variants v13
Ravenports Buildsheet | History
Ravensource Port Directory | History
Last modified 20 DEC 2024, 22:31:26 UTC
Port created 08 JAN 2023, 04:18:24 UTC
Subpackage Descriptions
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
Configuration Switches (platform-specific settings discarded)
PY312 ON Build using Python 3.12 PY313 OFF Build using Python 3.13
Package Dependencies by Type
Build (only) python312:dev:std
python-pip:single:v12
autoselect-python:single:std
Build and Runtime python312:primary:std
Runtime (only) python-python-dateutil:single:v12
python-pytz:single:v12
Download groups
main mirror://PYPIWHL/07/4b/290b4c3efd6417a8b0c284896de19b1d5855e6dbdb97d2a35e68fa42de85
Distribution File Information
2f878c3856f17896979b2a4379ba1f09c83e374931ea15cc835c5dd2eee9b368 25468 python-src/croniter-6.0.0-py2.py3-none-any.whl
Ports that require python-croniter:v12
No other ports depend on this one.