diff options
Diffstat (limited to 'python-aio-timers.spec')
-rw-r--r-- | python-aio-timers.spec | 273 |
1 files changed, 273 insertions, 0 deletions
diff --git a/python-aio-timers.spec b/python-aio-timers.spec new file mode 100644 index 0000000..6fd3267 --- /dev/null +++ b/python-aio-timers.spec @@ -0,0 +1,273 @@ +%global _empty_manifest_terminate_build 0 +Name: python-aio-timers +Version: 0.0.1 +Release: 1 +Summary: Timer support for asyncio. +License: MIT License +URL: https://github.com/ThierrySpetebroot/aio-timers +Source0: https://mirrors.nju.edu.cn/pypi/web/packages/e7/79/ed582e969701c57ca2010570d0e5f7cd9521b5be98befa4c4a97c958d574/aio-timers-0.0.1.tar.gz +BuildArch: noarch + + +%description +# aio-timers + +[](https://github.com/ThierrySpetebroot/aio-timers/blob/master/LICENSE) + +[](https://test.pypi.org/project/aio-timers/) + + +Timing utilities based on `asyncio`. + +## Setup +`pip install aio-timers` + +## Usage +```python +import asyncio +from aio_timers import Timer + +def callback(name): + print("Hello {}!".format(name)) + +# timer is scheduled here +timer = Timer(5, callback, callback_args=("World",)) + +# wait until the callback has been executed +loop = asyncio.get_event_loop() +loop.run_until_complete(timer.wait()) +print("end") +``` + +Output: + +(after 5 seconds) +> Hello World! +> +> end + +### Timer + +Calls a `callback` after `delay` seconds. + +The timer is executed as a task on an event loop. + +The callback is invoked: + - as a synchronous function if it is not a coroutine; + - with an await if it is a coroutine or the `callback_async` flag is set to `True`. + +Any result returned by the callback is ignored. + +#### Constructor +`Timer(delay, callback, callback_args=(), callback_kwargs={}, callback_async=False, *, loop=None)` + +where: + - delay, seconds before the `callback` is executed; + - callback, the callback to execute after `delay` seconds + - callback_args, (optional, default=`()`) positional arguments to pass to `callback` + - callback_kwargs, (optional, default=`{}`) keyword arguments to pass to `callback` + - callback_async, (optional, default=`False`) if `True` the callback will be executed on the event loop (`await`) + - loop, (optional, default=`None`) event loop where the delayed task will be scheduled (if`None` will use `asyncio.get_event_loop()`) + +NOTE: the `callback_async` flag should be used when a coroutine is decorated (e.g., using `functools.partial`) + +#### .cancel() +Cancels the execution of the callback. + +#### async .wait() +Wait until the callback has been executed or its execution has been canceled. + +If the execution has been canceled, will raise `asyncio.CancelledError`. + +%package -n python3-aio-timers +Summary: Timer support for asyncio. +Provides: python-aio-timers +BuildRequires: python3-devel +BuildRequires: python3-setuptools +BuildRequires: python3-pip +%description -n python3-aio-timers +# aio-timers + +[](https://github.com/ThierrySpetebroot/aio-timers/blob/master/LICENSE) + +[](https://test.pypi.org/project/aio-timers/) + + +Timing utilities based on `asyncio`. + +## Setup +`pip install aio-timers` + +## Usage +```python +import asyncio +from aio_timers import Timer + +def callback(name): + print("Hello {}!".format(name)) + +# timer is scheduled here +timer = Timer(5, callback, callback_args=("World",)) + +# wait until the callback has been executed +loop = asyncio.get_event_loop() +loop.run_until_complete(timer.wait()) +print("end") +``` + +Output: + +(after 5 seconds) +> Hello World! +> +> end + +### Timer + +Calls a `callback` after `delay` seconds. + +The timer is executed as a task on an event loop. + +The callback is invoked: + - as a synchronous function if it is not a coroutine; + - with an await if it is a coroutine or the `callback_async` flag is set to `True`. + +Any result returned by the callback is ignored. + +#### Constructor +`Timer(delay, callback, callback_args=(), callback_kwargs={}, callback_async=False, *, loop=None)` + +where: + - delay, seconds before the `callback` is executed; + - callback, the callback to execute after `delay` seconds + - callback_args, (optional, default=`()`) positional arguments to pass to `callback` + - callback_kwargs, (optional, default=`{}`) keyword arguments to pass to `callback` + - callback_async, (optional, default=`False`) if `True` the callback will be executed on the event loop (`await`) + - loop, (optional, default=`None`) event loop where the delayed task will be scheduled (if`None` will use `asyncio.get_event_loop()`) + +NOTE: the `callback_async` flag should be used when a coroutine is decorated (e.g., using `functools.partial`) + +#### .cancel() +Cancels the execution of the callback. + +#### async .wait() +Wait until the callback has been executed or its execution has been canceled. + +If the execution has been canceled, will raise `asyncio.CancelledError`. + +%package help +Summary: Development documents and examples for aio-timers +Provides: python3-aio-timers-doc +%description help +# aio-timers + +[](https://github.com/ThierrySpetebroot/aio-timers/blob/master/LICENSE) + +[](https://test.pypi.org/project/aio-timers/) + + +Timing utilities based on `asyncio`. + +## Setup +`pip install aio-timers` + +## Usage +```python +import asyncio +from aio_timers import Timer + +def callback(name): + print("Hello {}!".format(name)) + +# timer is scheduled here +timer = Timer(5, callback, callback_args=("World",)) + +# wait until the callback has been executed +loop = asyncio.get_event_loop() +loop.run_until_complete(timer.wait()) +print("end") +``` + +Output: + +(after 5 seconds) +> Hello World! +> +> end + +### Timer + +Calls a `callback` after `delay` seconds. + +The timer is executed as a task on an event loop. + +The callback is invoked: + - as a synchronous function if it is not a coroutine; + - with an await if it is a coroutine or the `callback_async` flag is set to `True`. + +Any result returned by the callback is ignored. + +#### Constructor +`Timer(delay, callback, callback_args=(), callback_kwargs={}, callback_async=False, *, loop=None)` + +where: + - delay, seconds before the `callback` is executed; + - callback, the callback to execute after `delay` seconds + - callback_args, (optional, default=`()`) positional arguments to pass to `callback` + - callback_kwargs, (optional, default=`{}`) keyword arguments to pass to `callback` + - callback_async, (optional, default=`False`) if `True` the callback will be executed on the event loop (`await`) + - loop, (optional, default=`None`) event loop where the delayed task will be scheduled (if`None` will use `asyncio.get_event_loop()`) + +NOTE: the `callback_async` flag should be used when a coroutine is decorated (e.g., using `functools.partial`) + +#### .cancel() +Cancels the execution of the callback. + +#### async .wait() +Wait until the callback has been executed or its execution has been canceled. + +If the execution has been canceled, will raise `asyncio.CancelledError`. + +%prep +%autosetup -n aio-timers-0.0.1 + +%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-aio-timers -f filelist.lst +%dir %{python3_sitelib}/* + +%files help -f doclist.lst +%{_docdir}/* + +%changelog +* Wed May 31 2023 Python_Bot <Python_Bot@openeuler.org> - 0.0.1-1 +- Package Spec generated |