diff options
Diffstat (limited to 'python-crython.spec')
| -rw-r--r-- | python-crython.spec | 429 |
1 files changed, 429 insertions, 0 deletions
diff --git a/python-crython.spec b/python-crython.spec new file mode 100644 index 0000000..6a3f624 --- /dev/null +++ b/python-crython.spec @@ -0,0 +1,429 @@ +%global _empty_manifest_terminate_build 0 +Name: python-crython +Version: 0.2.0 +Release: 1 +Summary: Lightweight task scheduler using cron expressions. +License: MIT +URL: https://github.com/ahawker/crython +Source0: https://mirrors.nju.edu.cn/pypi/web/packages/6d/d3/ca918cb4b77e219784a23cdf81a88ed2265964a30e6d89023153665bdb0f/crython-0.2.0.tar.gz +BuildArch: noarch + + +%description +|Join the chat at https://gitter.im/crython/Lobby| +|Build Status| |Build status| |codecov| |Code Climate| |Issue Count| +|PyPI version| |PyPI versions| +|Stories in Ready| +crython is a lightweight task (function) scheduler using +`cron <http://en.wikipedia.org/wiki/Cron>`__ expressions written in +python. +Status +~~~~~~ +This module is actively maintained. +Installation +~~~~~~~~~~~~ +To install crython from `pip <https://pypi.python.org/pypi/pip>`__: + $ pip install crython +To install crython from source: + $ git clone git@github.com:ahawker/crython.git + $ python setup.py install +Usage +~~~~~ +Crython supports seven fields (seconds, minutes, hours, day of month, +month, weekday, year). +Call a function once a minute: + import crython + # Fire once a minute. + @crython.job(second=0) + def foo(): + print "... while heavy sack beatings are up a shocking nine hundred percent? - Kent Brockman" +Call a function every ten seconds: + # Fire every 10 seconds. + @crython.job(second=range(0, 60, 10)) + def foo(): + print "I'm a big four-eyed lame-o and I wear the same stupid sweater every day. - Homer's Brain" +Call a function with a single cron expression: + # Fire every 10 seconds. + @crython.job(second='*/10') + def foo(): + print "Hail to the thee Kamp Krusty... - Kampers" +Call a function with a full cron expression: + # Fire once a week. + @crython.job(expr='0 0 0 * * 0 *') + def foo(): + print "Back in line, maggot! - Kearny" +Call a function with positional and/or keyword arguments: + # Fire every second. + @job('safety gloves', second='*', name='Homer Simpson') + def foo(item, name): + print "Well, I don't need {0}, because I'm {1}. -- Grimey".format(item, name) +Call a function using `predefined +keywords <https://github.com/ahawker/crython#keywords>`__: + # Fire once a day. + @crython.job(expr='@daily') + def foo(): + print "That's where I saw the leprechaun. He tells me to burn things! - Ralph Wiggum" + # Fire once immediately after scheduler starts. + @crython.job(expr='@reboot') + def foo(): + print "I call the big one bitey. - Homer Simpson" +Call a function and run it within a separate thread (default behaviour +if ``ctx`` is not specified): + # Fire once a week. + @crython.job(expr='@weekly', ctx='thread') + def foo(): + print "No, no, dig up stupid. - Chief Wiggum" +Call a function and run it within a separate process: + # Fire every hour. + @crython.job(expr='@hourly', ctx='multiprocess') + def foo(): + print "Eat my shorts. - Bart Simpson" +Start the global job scheduler: + if __name__ == '__main__': + crython.start() +Keywords +~~~~~~~~ ++-----------------------+-----------------------+-----------------------+ +| Entry | Description | Equivalent To | ++=======================+=======================+=======================+ +| @yearly/@annually | Run once a year at | 0 0 0 0 1 1 \* | +| | midnight in the | | +| | morning of January 1 | | ++-----------------------+-----------------------+-----------------------+ +| @monthly | Run once a month at | 0 0 0 0 1 \* \* | +| | midnight in the | | +| | morning of the first | | +| | of the month | | ++-----------------------+-----------------------+-----------------------+ +| @weekly | Run once a week at | 0 0 0 0 \* 0 \* | +| | midnight in the | | +| | morning of Sunday | | ++-----------------------+-----------------------+-----------------------+ +| @daily | Run once a day at | 0 0 0 \* \* \* \* | +| | midnight | | ++-----------------------+-----------------------+-----------------------+ +| @hourly | Run once an hour at | 0 0 \* \* \* \* \* | +| | the beginning of the | | +| | hour | | ++-----------------------+-----------------------+-----------------------+ +| @minutely | Run once a minute at | 0 \* \* \* \* \* \* | +| | the beginning of the | | +| | minute | | ++-----------------------+-----------------------+-----------------------+ +| @reboot | Run once at startup | @reboot | ++-----------------------+-----------------------+-----------------------+ +TODO +~~~~ +- Support “L”, “W” and “#” specials. +- Determine time delta from now -> next time expression is valid. +Contributing +~~~~~~~~~~~~ +If you would like to contribute, simply fork the repository, push your +changes and send a pull request. +License +~~~~~~~ +Crython is available under the `MIT +license <https://github.com/ahawker/crython/blob/master/LICENSE.md>`__. +See Other +~~~~~~~~~ +There are similar python cron libraries out there. See: +`pycron <http://www.kalab.com/freeware/pycron/pycron.htm>`__, +`python-crontab <http://pypi.python.org/pypi/python-crontab/>`__, +`cronex <https://github.com/jameseric/cronex>`__. + +%package -n python3-crython +Summary: Lightweight task scheduler using cron expressions. +Provides: python-crython +BuildRequires: python3-devel +BuildRequires: python3-setuptools +BuildRequires: python3-pip +%description -n python3-crython +|Join the chat at https://gitter.im/crython/Lobby| +|Build Status| |Build status| |codecov| |Code Climate| |Issue Count| +|PyPI version| |PyPI versions| +|Stories in Ready| +crython is a lightweight task (function) scheduler using +`cron <http://en.wikipedia.org/wiki/Cron>`__ expressions written in +python. +Status +~~~~~~ +This module is actively maintained. +Installation +~~~~~~~~~~~~ +To install crython from `pip <https://pypi.python.org/pypi/pip>`__: + $ pip install crython +To install crython from source: + $ git clone git@github.com:ahawker/crython.git + $ python setup.py install +Usage +~~~~~ +Crython supports seven fields (seconds, minutes, hours, day of month, +month, weekday, year). +Call a function once a minute: + import crython + # Fire once a minute. + @crython.job(second=0) + def foo(): + print "... while heavy sack beatings are up a shocking nine hundred percent? - Kent Brockman" +Call a function every ten seconds: + # Fire every 10 seconds. + @crython.job(second=range(0, 60, 10)) + def foo(): + print "I'm a big four-eyed lame-o and I wear the same stupid sweater every day. - Homer's Brain" +Call a function with a single cron expression: + # Fire every 10 seconds. + @crython.job(second='*/10') + def foo(): + print "Hail to the thee Kamp Krusty... - Kampers" +Call a function with a full cron expression: + # Fire once a week. + @crython.job(expr='0 0 0 * * 0 *') + def foo(): + print "Back in line, maggot! - Kearny" +Call a function with positional and/or keyword arguments: + # Fire every second. + @job('safety gloves', second='*', name='Homer Simpson') + def foo(item, name): + print "Well, I don't need {0}, because I'm {1}. -- Grimey".format(item, name) +Call a function using `predefined +keywords <https://github.com/ahawker/crython#keywords>`__: + # Fire once a day. + @crython.job(expr='@daily') + def foo(): + print "That's where I saw the leprechaun. He tells me to burn things! - Ralph Wiggum" + # Fire once immediately after scheduler starts. + @crython.job(expr='@reboot') + def foo(): + print "I call the big one bitey. - Homer Simpson" +Call a function and run it within a separate thread (default behaviour +if ``ctx`` is not specified): + # Fire once a week. + @crython.job(expr='@weekly', ctx='thread') + def foo(): + print "No, no, dig up stupid. - Chief Wiggum" +Call a function and run it within a separate process: + # Fire every hour. + @crython.job(expr='@hourly', ctx='multiprocess') + def foo(): + print "Eat my shorts. - Bart Simpson" +Start the global job scheduler: + if __name__ == '__main__': + crython.start() +Keywords +~~~~~~~~ ++-----------------------+-----------------------+-----------------------+ +| Entry | Description | Equivalent To | ++=======================+=======================+=======================+ +| @yearly/@annually | Run once a year at | 0 0 0 0 1 1 \* | +| | midnight in the | | +| | morning of January 1 | | ++-----------------------+-----------------------+-----------------------+ +| @monthly | Run once a month at | 0 0 0 0 1 \* \* | +| | midnight in the | | +| | morning of the first | | +| | of the month | | ++-----------------------+-----------------------+-----------------------+ +| @weekly | Run once a week at | 0 0 0 0 \* 0 \* | +| | midnight in the | | +| | morning of Sunday | | ++-----------------------+-----------------------+-----------------------+ +| @daily | Run once a day at | 0 0 0 \* \* \* \* | +| | midnight | | ++-----------------------+-----------------------+-----------------------+ +| @hourly | Run once an hour at | 0 0 \* \* \* \* \* | +| | the beginning of the | | +| | hour | | ++-----------------------+-----------------------+-----------------------+ +| @minutely | Run once a minute at | 0 \* \* \* \* \* \* | +| | the beginning of the | | +| | minute | | ++-----------------------+-----------------------+-----------------------+ +| @reboot | Run once at startup | @reboot | ++-----------------------+-----------------------+-----------------------+ +TODO +~~~~ +- Support “L”, “W” and “#” specials. +- Determine time delta from now -> next time expression is valid. +Contributing +~~~~~~~~~~~~ +If you would like to contribute, simply fork the repository, push your +changes and send a pull request. +License +~~~~~~~ +Crython is available under the `MIT +license <https://github.com/ahawker/crython/blob/master/LICENSE.md>`__. +See Other +~~~~~~~~~ +There are similar python cron libraries out there. See: +`pycron <http://www.kalab.com/freeware/pycron/pycron.htm>`__, +`python-crontab <http://pypi.python.org/pypi/python-crontab/>`__, +`cronex <https://github.com/jameseric/cronex>`__. + +%package help +Summary: Development documents and examples for crython +Provides: python3-crython-doc +%description help +|Join the chat at https://gitter.im/crython/Lobby| +|Build Status| |Build status| |codecov| |Code Climate| |Issue Count| +|PyPI version| |PyPI versions| +|Stories in Ready| +crython is a lightweight task (function) scheduler using +`cron <http://en.wikipedia.org/wiki/Cron>`__ expressions written in +python. +Status +~~~~~~ +This module is actively maintained. +Installation +~~~~~~~~~~~~ +To install crython from `pip <https://pypi.python.org/pypi/pip>`__: + $ pip install crython +To install crython from source: + $ git clone git@github.com:ahawker/crython.git + $ python setup.py install +Usage +~~~~~ +Crython supports seven fields (seconds, minutes, hours, day of month, +month, weekday, year). +Call a function once a minute: + import crython + # Fire once a minute. + @crython.job(second=0) + def foo(): + print "... while heavy sack beatings are up a shocking nine hundred percent? - Kent Brockman" +Call a function every ten seconds: + # Fire every 10 seconds. + @crython.job(second=range(0, 60, 10)) + def foo(): + print "I'm a big four-eyed lame-o and I wear the same stupid sweater every day. - Homer's Brain" +Call a function with a single cron expression: + # Fire every 10 seconds. + @crython.job(second='*/10') + def foo(): + print "Hail to the thee Kamp Krusty... - Kampers" +Call a function with a full cron expression: + # Fire once a week. + @crython.job(expr='0 0 0 * * 0 *') + def foo(): + print "Back in line, maggot! - Kearny" +Call a function with positional and/or keyword arguments: + # Fire every second. + @job('safety gloves', second='*', name='Homer Simpson') + def foo(item, name): + print "Well, I don't need {0}, because I'm {1}. -- Grimey".format(item, name) +Call a function using `predefined +keywords <https://github.com/ahawker/crython#keywords>`__: + # Fire once a day. + @crython.job(expr='@daily') + def foo(): + print "That's where I saw the leprechaun. He tells me to burn things! - Ralph Wiggum" + # Fire once immediately after scheduler starts. + @crython.job(expr='@reboot') + def foo(): + print "I call the big one bitey. - Homer Simpson" +Call a function and run it within a separate thread (default behaviour +if ``ctx`` is not specified): + # Fire once a week. + @crython.job(expr='@weekly', ctx='thread') + def foo(): + print "No, no, dig up stupid. - Chief Wiggum" +Call a function and run it within a separate process: + # Fire every hour. + @crython.job(expr='@hourly', ctx='multiprocess') + def foo(): + print "Eat my shorts. - Bart Simpson" +Start the global job scheduler: + if __name__ == '__main__': + crython.start() +Keywords +~~~~~~~~ ++-----------------------+-----------------------+-----------------------+ +| Entry | Description | Equivalent To | ++=======================+=======================+=======================+ +| @yearly/@annually | Run once a year at | 0 0 0 0 1 1 \* | +| | midnight in the | | +| | morning of January 1 | | ++-----------------------+-----------------------+-----------------------+ +| @monthly | Run once a month at | 0 0 0 0 1 \* \* | +| | midnight in the | | +| | morning of the first | | +| | of the month | | ++-----------------------+-----------------------+-----------------------+ +| @weekly | Run once a week at | 0 0 0 0 \* 0 \* | +| | midnight in the | | +| | morning of Sunday | | ++-----------------------+-----------------------+-----------------------+ +| @daily | Run once a day at | 0 0 0 \* \* \* \* | +| | midnight | | ++-----------------------+-----------------------+-----------------------+ +| @hourly | Run once an hour at | 0 0 \* \* \* \* \* | +| | the beginning of the | | +| | hour | | ++-----------------------+-----------------------+-----------------------+ +| @minutely | Run once a minute at | 0 \* \* \* \* \* \* | +| | the beginning of the | | +| | minute | | ++-----------------------+-----------------------+-----------------------+ +| @reboot | Run once at startup | @reboot | ++-----------------------+-----------------------+-----------------------+ +TODO +~~~~ +- Support “L”, “W” and “#” specials. +- Determine time delta from now -> next time expression is valid. +Contributing +~~~~~~~~~~~~ +If you would like to contribute, simply fork the repository, push your +changes and send a pull request. +License +~~~~~~~ +Crython is available under the `MIT +license <https://github.com/ahawker/crython/blob/master/LICENSE.md>`__. +See Other +~~~~~~~~~ +There are similar python cron libraries out there. See: +`pycron <http://www.kalab.com/freeware/pycron/pycron.htm>`__, +`python-crontab <http://pypi.python.org/pypi/python-crontab/>`__, +`cronex <https://github.com/jameseric/cronex>`__. + +%prep +%autosetup -n crython-0.2.0 + +%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-crython -f filelist.lst +%dir %{python3_sitelib}/* + +%files help -f doclist.lst +%{_docdir}/* + +%changelog +* Fri May 05 2023 Python_Bot <Python_Bot@openeuler.org> - 0.2.0-1 +- Package Spec generated |
