{ "info": { "author": "Dameon Andersen", "author_email": "dameon.andersen@facteon.global", "bugtrack_url": null, "classifiers": [ "License :: OSI Approved :: MIT License", "Operating System :: OS Independent", "Programming Language :: Python :: 3" ], "description": "# CronScheduleTriggers: Quartz Syntax based Cron Trigger library.\n\n[![pipeline status](https://gitlab.com/dameon.andersen/cstriggers/badges/master/pipeline.svg)](https://gitlab.com/dameon.andersen/cstriggers/commits/master) [![coverage report](https://gitlab.com/dameon.andersen/cstriggers/badges/master/coverage.svg)](https://gitlab.com/dameon.andersen/cstriggers/commits/master)\n\n Cron Schedule Triggers (CSTriggers) is a Python library enabling the ability to determine the next execution of a live schedule. Its syntax is that of [Quartz Job Scheduler](http://www.quartz-scheduler.org). This library is not a scheduling app or a task queue, there are plenty of those in the wild to choose from. When you need advanced customisation of triggers for tasks, and a common and conventional syntax for schedule notation, CSTriggers comes to your aid. \n\n## This library is for those who\n\n - Want the ability to generate future task data for visualization purposes.\n - Want to combine their own choice of solutions to build a customizable integrated task queuing/scheduling system at any scale.\n - Do not want to run java, but want to take advantage of the rich _Quartz Cron_ syntax\n - Do not want to drag in many dependencies into their project (Uses standard Python3 libraries only).\n\n\n## Example usage\n\nInitialize a schedule object with a cron notation string, a start date, and an optional end date. Call `.next_trigger()` for a new date. Notice that when an end_date is given, The schedule terminates at `2022-10-13T00:00:00` and not `2030-03-01T00:00:00` as it would naturally.\n\n```python\nfrom cstriggers.core.trigger import QuartzCron\n\nschedule_string = \"0 0 0 1 JAN-MAR ? 2010-2030\"\nstart_date = \"2019-10-13T00:00:00\"\nend_date = \"2022-10-13T00:00:00\"\ncron_obj = QuartzCron(schedule_string=schedule_string, start_date=start_date, end_date=end_date)\n\nprint(cron_obj.next_trigger(isoformat=True))\n```\n```\n>> 2020-01-01T00:00:00\n```\n\nFor multiple sequential dates call either `.next_trigger()` multiple times.\n\n```python\nfrom cstriggers.core.trigger import QuartzCron\n\nschedule_string = \"0 0 0 1 JAN-MAR ? 2010-2030\"\nstart_date = \"2019-10-13T00:00:00\"\nend_date = \"2022-10-13T00:00:00\"\ncron_obj = QuartzCron(schedule_string=schedule_string, start_date=start_date, end_date=end_date)\n\nprint(cron_obj.next_trigger(isoformat=True))\nprint(cron_obj.next_trigger(isoformat=True))\n\n```\n\n```\n>> 2020-01-01T00:00:00\n>> 2020-02-01T00:00:00\n```\n\nOr call `.next_triggers()` with the number of triggers needed. \n\n```python\nfrom cstriggers.core.trigger import QuartzCron\n\nschedule_string = \"0 0 0 1 JAN-MAR ? 2010-2030\"\nstart_date = \"2019-10-13T00:00:00\"\nend_date = \"2022-10-13T00:00:00\"\ncron_obj = QuartzCron(schedule_string=schedule_string, start_date=start_date, end_date=end_date)\n\nprint(cron_obj.next_triggers(number_of_triggers=10, isoformat=True))\n```\n\n```\n>> [\n '2020-01-01T00:00:00', \n '2020-02-01T00:00:00', \n '2020-03-01T00:00:00', \n '2021-01-01T00:00:00', \n '2021-02-01T00:00:00', \n '2021-03-01T00:00:00', \n '2022-01-01T00:00:00', \n '2022-02-01T00:00:00', \n '2022-03-01T00:00:00', \n '2023-01-01T00:00:00'\n]\n```\n\n## Roadmap\n- Support for last_trigger(s) to retroactively look at schedule dates.\n- Support for AWS Cron Expression syntax.\n\n", "description_content_type": "text/markdown", "docs_url": null, "download_url": "", "downloads": { "last_day": -1, "last_month": -1, "last_week": -1 }, "home_page": "https://gitlab.com/dameon.andersen/cstriggers", "keywords": "quartz cron notation cronjob aws rate schedule scheduling office/business triggers tasks jobs runner rq queue apscheduler calendar date datetime", "license": "MIT", "maintainer": "", "maintainer_email": "", "name": "cron-schedule-triggers", "package_url": "https://pypi.org/project/cron-schedule-triggers/", "platform": "", "project_url": "https://pypi.org/project/cron-schedule-triggers/", "project_urls": { "Homepage": "https://gitlab.com/dameon.andersen/cstriggers" }, "release_url": "https://pypi.org/project/cron-schedule-triggers/0.0.5/", "requires_dist": [ "pytz (==2019.3)" ], "requires_python": ">=3.6", "summary": "Cron Schedule Triggers ~ A library for determining Quartz Cron schedule trigger dates.", "version": "0.0.5" }, "last_serial": 5993470, "releases": { "0.0.1": [ { "comment_text": "", "digests": { "md5": "aad85a8dacbb0c8404532c3b8ebdcc10", "sha256": "bcabd6b08265d16d481fac6fead89ed1aa563306d6b0cdba3367a241f9be4e3c" }, "downloads": -1, "filename": "cron_schedule_triggers-0.0.1-py3-none-any.whl", "has_sig": false, "md5_digest": "aad85a8dacbb0c8404532c3b8ebdcc10", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": ">=3.6", "size": 11943, "upload_time": "2019-10-16T00:21:47", "url": "https://files.pythonhosted.org/packages/6a/a5/146db788d357823774ebe9ed9f2668e2e76aa164bf84479c754f51552d65/cron_schedule_triggers-0.0.1-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "7b57628b9b6d633266512a9cfa432dfa", "sha256": "4bd0d19facea2de7f6f011bd558a83f4959d71fd66645e32f722942219b9d196" }, "downloads": -1, "filename": "cron-schedule-triggers-0.0.1.tar.gz", "has_sig": false, "md5_digest": "7b57628b9b6d633266512a9cfa432dfa", "packagetype": "sdist", "python_version": "source", "requires_python": ">=3.6", "size": 10121, "upload_time": "2019-10-16T00:21:50", "url": "https://files.pythonhosted.org/packages/0d/7d/069fc89aca5eb2578cb07addad1fb6d427c8a9f50fa148038927ddc03080/cron-schedule-triggers-0.0.1.tar.gz" } ], "0.0.2": [ { "comment_text": "", "digests": { "md5": "3791f7f3b672073f3f4b06b44097cd38", "sha256": "462ad53f82bd249fe9edd4635ec0be024a4c3887768288eb45f54b049faddc48" }, "downloads": -1, "filename": "cron_schedule_triggers-0.0.2-py3-none-any.whl", "has_sig": false, "md5_digest": "3791f7f3b672073f3f4b06b44097cd38", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": ">=3.6", "size": 12172, "upload_time": "2019-10-16T02:21:43", "url": "https://files.pythonhosted.org/packages/3a/98/6afe6d37bc387305695baad82ebc9023896a7d8bcaa82968b0a269bf70e0/cron_schedule_triggers-0.0.2-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "8e156a147b0ea4fc9902217b34139f32", "sha256": "03b71c0fe73c77ff5851b6c01b48bfd2371b7ac0c57d281fb75904371ded0e87" }, "downloads": -1, "filename": "cron-schedule-triggers-0.0.2.tar.gz", "has_sig": false, "md5_digest": "8e156a147b0ea4fc9902217b34139f32", "packagetype": "sdist", "python_version": "source", "requires_python": ">=3.6", "size": 10344, "upload_time": "2019-10-16T02:21:45", "url": "https://files.pythonhosted.org/packages/1b/e5/0679f70e20cb23539d04fcb491dc6d61ec41db7f1317116873b61ad94f9f/cron-schedule-triggers-0.0.2.tar.gz" } ], "0.0.3": [ { "comment_text": "", "digests": { "md5": "7fa675727a7eafc53bc9dcef671530bf", "sha256": "43e11793e192d89423d2de14d2cd4117e60cddc27b60a8e69c1f57707fab500e" }, "downloads": -1, "filename": "cron_schedule_triggers-0.0.3-py3-none-any.whl", "has_sig": false, "md5_digest": "7fa675727a7eafc53bc9dcef671530bf", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": ">=3.6", "size": 12865, "upload_time": "2019-10-16T04:51:20", "url": "https://files.pythonhosted.org/packages/fc/7a/7e2335cb6b2d047c741a2667a5374141fd40b64af563930f1f2f24324fba/cron_schedule_triggers-0.0.3-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "b79383b8084fe6abcf064d37946bb7d0", "sha256": "ee7702fd1d1660aa28452498914098f6790f93740490dd615dfdeeb4107fc62e" }, "downloads": -1, "filename": "cron-schedule-triggers-0.0.3.tar.gz", "has_sig": false, "md5_digest": "b79383b8084fe6abcf064d37946bb7d0", "packagetype": "sdist", "python_version": "source", "requires_python": ">=3.6", "size": 11079, "upload_time": "2019-10-16T04:51:22", "url": "https://files.pythonhosted.org/packages/fd/f1/0040695a44c0c43f4f04b94fac14621a354524688df8e0618dfe50cac07d/cron-schedule-triggers-0.0.3.tar.gz" } ], "0.0.4": [ { "comment_text": "", "digests": { "md5": "0698c1b4ae4f8d2b6ecf392b262604a6", "sha256": "92022f9d9833ad38de9d8d9516ef416cb1b40fe7b7dfc4c41771d70736c79642" }, "downloads": -1, "filename": "cron_schedule_triggers-0.0.4-py3-none-any.whl", "has_sig": false, "md5_digest": "0698c1b4ae4f8d2b6ecf392b262604a6", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": ">=3.6", "size": 12933, "upload_time": "2019-10-16T20:47:07", "url": "https://files.pythonhosted.org/packages/03/ce/80f94b98b4c038f75fee90be3ca73c34f3e80f5d7797d67142c1c8d57127/cron_schedule_triggers-0.0.4-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "1b3dd3a6cbe01b8f5b0e09003a5567a3", "sha256": "c9e4b1d3dec6448154de4d3a5e0123d22441751fcc3ec95d34f3c9c2800dd032" }, "downloads": -1, "filename": "cron-schedule-triggers-0.0.4.tar.gz", "has_sig": false, "md5_digest": "1b3dd3a6cbe01b8f5b0e09003a5567a3", "packagetype": "sdist", "python_version": "source", "requires_python": ">=3.6", "size": 11175, "upload_time": "2019-10-16T20:47:09", "url": "https://files.pythonhosted.org/packages/26/78/cb14cc593812a2cfde43b80754b2530a89684b7ee80851f44fc18f0b5c2d/cron-schedule-triggers-0.0.4.tar.gz" } ], "0.0.5": [ { "comment_text": "", "digests": { "md5": "9e823866ddbf8441d8d0edd4be2906e8", "sha256": "3e7295c2f7a68d724b80be001b3d301f68dd45ac5803df47a29c78ed1f8a47d8" }, "downloads": -1, "filename": "cron_schedule_triggers-0.0.5-py3-none-any.whl", "has_sig": false, "md5_digest": "9e823866ddbf8441d8d0edd4be2906e8", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": ">=3.6", "size": 13371, "upload_time": "2019-10-18T03:14:09", "url": "https://files.pythonhosted.org/packages/cb/24/bbc56f7427dba59bd81b0902ead6e604a8fc0bed55eeb67dc0906e9ef254/cron_schedule_triggers-0.0.5-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "d7820a20e834c843aa90455d2e9c2108", "sha256": "a572a549087f11fb0e71faf870691045581747db756e9dd8a0918af28628a534" }, "downloads": -1, "filename": "cron-schedule-triggers-0.0.5.tar.gz", "has_sig": false, "md5_digest": "d7820a20e834c843aa90455d2e9c2108", "packagetype": "sdist", "python_version": "source", "requires_python": ">=3.6", "size": 11710, "upload_time": "2019-10-18T03:14:13", "url": "https://files.pythonhosted.org/packages/76/6a/d052d2cb95db32f7cba30b81ed1998360e4ab741bac394aa26a4dbfd43c1/cron-schedule-triggers-0.0.5.tar.gz" } ] }, "urls": [ { "comment_text": "", "digests": { "md5": "9e823866ddbf8441d8d0edd4be2906e8", "sha256": "3e7295c2f7a68d724b80be001b3d301f68dd45ac5803df47a29c78ed1f8a47d8" }, "downloads": -1, "filename": "cron_schedule_triggers-0.0.5-py3-none-any.whl", "has_sig": false, "md5_digest": "9e823866ddbf8441d8d0edd4be2906e8", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": ">=3.6", "size": 13371, "upload_time": "2019-10-18T03:14:09", "url": "https://files.pythonhosted.org/packages/cb/24/bbc56f7427dba59bd81b0902ead6e604a8fc0bed55eeb67dc0906e9ef254/cron_schedule_triggers-0.0.5-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "d7820a20e834c843aa90455d2e9c2108", "sha256": "a572a549087f11fb0e71faf870691045581747db756e9dd8a0918af28628a534" }, "downloads": -1, "filename": "cron-schedule-triggers-0.0.5.tar.gz", "has_sig": false, "md5_digest": "d7820a20e834c843aa90455d2e9c2108", "packagetype": "sdist", "python_version": "source", "requires_python": ">=3.6", "size": 11710, "upload_time": "2019-10-18T03:14:13", "url": "https://files.pythonhosted.org/packages/76/6a/d052d2cb95db32f7cba30b81ed1998360e4ab741bac394aa26a4dbfd43c1/cron-schedule-triggers-0.0.5.tar.gz" } ] }