%global _empty_manifest_terminate_build 0 Name: python-flask-crontab Version: 0.1.2 Release: 1 Summary: Simple Flask scheduled tasks without extra daemons License: MIT URL: https://github.com/frostming/flask-crontab Source0: https://mirrors.nju.edu.cn/pypi/web/packages/a3/8d/bb417566d4890769fc5c1dd6d7ffd2e2d6cfa65b9005060661714e76ccc1/flask-crontab-0.1.2.tar.gz BuildArch: noarch Requires: python3-flask %description # flask-crontab > Simple Flask scheduled tasks without extra daemons [![PyPI](https://img.shields.io/pypi/v/flask-crontab)](https://pypi.org/project/flask-crontab) [![PyPI - Python Version](https://img.shields.io/pypi/pyversions/flask-crontab)](https://pypi.org/project/flask-crontab) [![Github Action](https://github.com/frostming/flask-crontab/workflows/Continuous%20Integration/badge.svg)](https://github.com/frostming/flask-crontab/actions?query=workflow%3A%22Continuous+Integration%22) ![Supported Platforms](https://img.shields.io/badge/platform-Linux%20%7C%20macOS-lightgrey) This project is strongly inspired by [django-crontab](https://github.com/kraiz/django-crontab), and only works on Python 3.5+. Due to the coming EOL of Python 2 on 2020/01/01, there is no plan for Python 2 support. ## Quick Start Install via `pip`: ```bash $ pip install flask-crontab ``` Instantiate the extension in your `app.py` after the creation of Flask app: ```python from flask import Flask from flask_crontab import Crontab app = Flask(__name__) crontab = Crontab(app) ``` If you are using App Factory pattern, you can also register the extension later: ```python crontab = Crontab() def create_app(): ... crontab.init_app(app) ``` Now create a scheduled job: ```python @crontab.job(minute="0", hour="6") def my_scheduled_job(): do_something() ``` An app context is automatically activated for every job run, so that you can access objects that are attached to app context. Then add the job to crontab: ```bash $ flask crontab add ``` That's it! If you type in `crontab -l` in your shell, you can see some new lines created by `flask-crontab`. Show jobs managed by current app: ```bash $ flask crontab show ``` Purge all jobs managed by current app: ```bash $ flask crontab remove ``` Run a specific job given by hash: ```bash $ flask crontab run ``` See supported options via `--help` for every commands. ## Decorator API ```python def job( minute: str = "*", hour: str = "*", day: str = "*", month: str = "*", day_of_week: str = "*", args: Tuple[Any, ...] = (), kwargs: Optional[Dict[str, Any]] = None, ) -> Callable: ``` The decorator accepts five arguments `minute`, `hour`, `day`, `month`, `day_of_month`, which are the same as crontab 5-parts time format. Any part that is not given defaults to `*`. Besides, `job` decorator accepts `args` and `kwargs` which will be passed to the decorated function as positional arguments and keywords arguments, respectively. ## Configuration | Config item | Description | Default value | | ------------------ | ------------------------------ | ------------------ | | CRONTAB_EXECUTABLE | The absolute path of `crontab` | `/usr/bin/crontab` | | CRONTAB_LOCK_JOBS | Whether lock jobs when running | `False` | ## License This project is publised under [MIT](LICENSE) license. %package -n python3-flask-crontab Summary: Simple Flask scheduled tasks without extra daemons Provides: python-flask-crontab BuildRequires: python3-devel BuildRequires: python3-setuptools BuildRequires: python3-pip %description -n python3-flask-crontab # flask-crontab > Simple Flask scheduled tasks without extra daemons [![PyPI](https://img.shields.io/pypi/v/flask-crontab)](https://pypi.org/project/flask-crontab) [![PyPI - Python Version](https://img.shields.io/pypi/pyversions/flask-crontab)](https://pypi.org/project/flask-crontab) [![Github Action](https://github.com/frostming/flask-crontab/workflows/Continuous%20Integration/badge.svg)](https://github.com/frostming/flask-crontab/actions?query=workflow%3A%22Continuous+Integration%22) ![Supported Platforms](https://img.shields.io/badge/platform-Linux%20%7C%20macOS-lightgrey) This project is strongly inspired by [django-crontab](https://github.com/kraiz/django-crontab), and only works on Python 3.5+. Due to the coming EOL of Python 2 on 2020/01/01, there is no plan for Python 2 support. ## Quick Start Install via `pip`: ```bash $ pip install flask-crontab ``` Instantiate the extension in your `app.py` after the creation of Flask app: ```python from flask import Flask from flask_crontab import Crontab app = Flask(__name__) crontab = Crontab(app) ``` If you are using App Factory pattern, you can also register the extension later: ```python crontab = Crontab() def create_app(): ... crontab.init_app(app) ``` Now create a scheduled job: ```python @crontab.job(minute="0", hour="6") def my_scheduled_job(): do_something() ``` An app context is automatically activated for every job run, so that you can access objects that are attached to app context. Then add the job to crontab: ```bash $ flask crontab add ``` That's it! If you type in `crontab -l` in your shell, you can see some new lines created by `flask-crontab`. Show jobs managed by current app: ```bash $ flask crontab show ``` Purge all jobs managed by current app: ```bash $ flask crontab remove ``` Run a specific job given by hash: ```bash $ flask crontab run ``` See supported options via `--help` for every commands. ## Decorator API ```python def job( minute: str = "*", hour: str = "*", day: str = "*", month: str = "*", day_of_week: str = "*", args: Tuple[Any, ...] = (), kwargs: Optional[Dict[str, Any]] = None, ) -> Callable: ``` The decorator accepts five arguments `minute`, `hour`, `day`, `month`, `day_of_month`, which are the same as crontab 5-parts time format. Any part that is not given defaults to `*`. Besides, `job` decorator accepts `args` and `kwargs` which will be passed to the decorated function as positional arguments and keywords arguments, respectively. ## Configuration | Config item | Description | Default value | | ------------------ | ------------------------------ | ------------------ | | CRONTAB_EXECUTABLE | The absolute path of `crontab` | `/usr/bin/crontab` | | CRONTAB_LOCK_JOBS | Whether lock jobs when running | `False` | ## License This project is publised under [MIT](LICENSE) license. %package help Summary: Development documents and examples for flask-crontab Provides: python3-flask-crontab-doc %description help # flask-crontab > Simple Flask scheduled tasks without extra daemons [![PyPI](https://img.shields.io/pypi/v/flask-crontab)](https://pypi.org/project/flask-crontab) [![PyPI - Python Version](https://img.shields.io/pypi/pyversions/flask-crontab)](https://pypi.org/project/flask-crontab) [![Github Action](https://github.com/frostming/flask-crontab/workflows/Continuous%20Integration/badge.svg)](https://github.com/frostming/flask-crontab/actions?query=workflow%3A%22Continuous+Integration%22) ![Supported Platforms](https://img.shields.io/badge/platform-Linux%20%7C%20macOS-lightgrey) This project is strongly inspired by [django-crontab](https://github.com/kraiz/django-crontab), and only works on Python 3.5+. Due to the coming EOL of Python 2 on 2020/01/01, there is no plan for Python 2 support. ## Quick Start Install via `pip`: ```bash $ pip install flask-crontab ``` Instantiate the extension in your `app.py` after the creation of Flask app: ```python from flask import Flask from flask_crontab import Crontab app = Flask(__name__) crontab = Crontab(app) ``` If you are using App Factory pattern, you can also register the extension later: ```python crontab = Crontab() def create_app(): ... crontab.init_app(app) ``` Now create a scheduled job: ```python @crontab.job(minute="0", hour="6") def my_scheduled_job(): do_something() ``` An app context is automatically activated for every job run, so that you can access objects that are attached to app context. Then add the job to crontab: ```bash $ flask crontab add ``` That's it! If you type in `crontab -l` in your shell, you can see some new lines created by `flask-crontab`. Show jobs managed by current app: ```bash $ flask crontab show ``` Purge all jobs managed by current app: ```bash $ flask crontab remove ``` Run a specific job given by hash: ```bash $ flask crontab run ``` See supported options via `--help` for every commands. ## Decorator API ```python def job( minute: str = "*", hour: str = "*", day: str = "*", month: str = "*", day_of_week: str = "*", args: Tuple[Any, ...] = (), kwargs: Optional[Dict[str, Any]] = None, ) -> Callable: ``` The decorator accepts five arguments `minute`, `hour`, `day`, `month`, `day_of_month`, which are the same as crontab 5-parts time format. Any part that is not given defaults to `*`. Besides, `job` decorator accepts `args` and `kwargs` which will be passed to the decorated function as positional arguments and keywords arguments, respectively. ## Configuration | Config item | Description | Default value | | ------------------ | ------------------------------ | ------------------ | | CRONTAB_EXECUTABLE | The absolute path of `crontab` | `/usr/bin/crontab` | | CRONTAB_LOCK_JOBS | Whether lock jobs when running | `False` | ## License This project is publised under [MIT](LICENSE) license. %prep %autosetup -n flask-crontab-0.1.2 %build %py3_build %install %py3_install install -d -m755 %{buildroot}/%{_pkgdocdir} if [ -d doc ]; then cp -arf doc %{buildroot}/%{_pkgdocdir}; fi if [ -d docs ]; then cp -arf docs %{buildroot}/%{_pkgdocdir}; fi if [ -d example ]; then cp -arf example %{buildroot}/%{_pkgdocdir}; fi if [ -d examples ]; then cp -arf examples %{buildroot}/%{_pkgdocdir}; fi pushd %{buildroot} if [ -d usr/lib ]; then find usr/lib -type f -printf "/%h/%f\n" >> filelist.lst fi if [ -d usr/lib64 ]; then find usr/lib64 -type f -printf "/%h/%f\n" >> filelist.lst fi if [ -d usr/bin ]; then find usr/bin -type f -printf "/%h/%f\n" >> filelist.lst fi if [ -d usr/sbin ]; then find usr/sbin -type f -printf "/%h/%f\n" >> filelist.lst fi touch doclist.lst if [ -d usr/share/man ]; then find usr/share/man -type f -printf "/%h/%f.gz\n" >> doclist.lst fi popd mv %{buildroot}/filelist.lst . mv %{buildroot}/doclist.lst . %files -n python3-flask-crontab -f filelist.lst %dir %{python3_sitelib}/* %files help -f doclist.lst %{_docdir}/* %changelog * Wed May 10 2023 Python_Bot - 0.1.2-1 - Package Spec generated