diff options
| author | CoprDistGit <infra@openeuler.org> | 2023-05-10 08:20:59 +0000 |
|---|---|---|
| committer | CoprDistGit <infra@openeuler.org> | 2023-05-10 08:20:59 +0000 |
| commit | 41b1d72c11b46ec836dd6815efc4f582c2075044 (patch) | |
| tree | 2fa058f4eceae3b70a3d2c4b4e800b6930fa7ea5 | |
| parent | 14cc0759f8e421d230acb3624b99cdfd22e17136 (diff) | |
automatic import of python-flask-crontab
| -rw-r--r-- | .gitignore | 1 | ||||
| -rw-r--r-- | python-flask-crontab.spec | 382 | ||||
| -rw-r--r-- | sources | 1 |
3 files changed, 384 insertions, 0 deletions
@@ -0,0 +1 @@ +/flask-crontab-0.1.2.tar.gz diff --git a/python-flask-crontab.spec b/python-flask-crontab.spec new file mode 100644 index 0000000..e4f4a62 --- /dev/null +++ b/python-flask-crontab.spec @@ -0,0 +1,382 @@ +%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 + +[](https://pypi.org/project/flask-crontab) [](https://pypi.org/project/flask-crontab) [](https://github.com/frostming/flask-crontab/actions?query=workflow%3A%22Continuous+Integration%22)  + +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 <job_hash> +``` + +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 + +[](https://pypi.org/project/flask-crontab) [](https://pypi.org/project/flask-crontab) [](https://github.com/frostming/flask-crontab/actions?query=workflow%3A%22Continuous+Integration%22)  + +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 <job_hash> +``` + +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 + +[](https://pypi.org/project/flask-crontab) [](https://pypi.org/project/flask-crontab) [](https://github.com/frostming/flask-crontab/actions?query=workflow%3A%22Continuous+Integration%22)  + +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 <job_hash> +``` + +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 <Python_Bot@openeuler.org> - 0.1.2-1 +- Package Spec generated @@ -0,0 +1 @@ +bf106443c3908edd1aa9cd132a4b3052 flask-crontab-0.1.2.tar.gz |
