diff options
author | CoprDistGit <infra@openeuler.org> | 2023-04-11 02:30:45 +0000 |
---|---|---|
committer | CoprDistGit <infra@openeuler.org> | 2023-04-11 02:30:45 +0000 |
commit | c94a67d1d50d43ae67b557aaef1cdd1fcd304afa (patch) | |
tree | dac02acad377a639c94b06ba7254d27cfd5eb7ed | |
parent | 45670d2ee02042132b77055acc40fa6068770425 (diff) |
automatic import of python-duet
-rw-r--r-- | .gitignore | 1 | ||||
-rw-r--r-- | python-duet.spec | 193 | ||||
-rw-r--r-- | sources | 1 |
3 files changed, 195 insertions, 0 deletions
@@ -0,0 +1 @@ +/duet-0.2.7.tar.gz diff --git a/python-duet.spec b/python-duet.spec new file mode 100644 index 0000000..86e5ac2 --- /dev/null +++ b/python-duet.spec @@ -0,0 +1,193 @@ +%global _empty_manifest_terminate_build 0 +Name: python-duet +Version: 0.2.7 +Release: 1 +Summary: A simple future-based async library for python. +License: Apache 2 +URL: http://github.com/google/duet +Source0: https://mirrors.nju.edu.cn/pypi/web/packages/83/6f/1f96b251b228a68433bc9cb90ce638abac899085c3d85bec81312821228f/duet-0.2.7.tar.gz +BuildArch: noarch + +Requires: python3-typing-extensions +Requires: python3-black +Requires: python3-isort +Requires: python3-mypy +Requires: python3-pylint +Requires: python3-pytest +Requires: python3-twine + +%description +# duet + +A simple future-based async library for python + +Duet takes inspiration from the amazing [trio](https://trio.readthedocs.io/en/stable/) +library and the [structured concurrency](https://vorpus.org/blog/notes-on-structured-concurrency-or-go-statement-considered-harmful/) +approach to async programming that it uses. +However, duet differs from trio in two major ways: + +- Instead of a full-blown implementation of asynchronous IO, duet relies on the + `Future` interface for parallelism, and provides a way to run async/await + coroutines around those `Future`s. This is useful if you are using an API that + returns futures, such as RPC libraries like gRPC. The standard `Future` + interface does not implement `__await__` directly, so `Future` instances must + be wrapped in `duet.AwaitableFuture`. + +- duet is re-entrant. At the top level, you run async code by calling + `duet.run(foo)`. Inside `foo` suppose you call a function that has not yet + been fully refactored to be asynchronous, but itself calls `duet.run(bar)`. + Most async libraries, including `trio` and `asyncio`, will raise an exception + if you try to "re-enter" the event loop in this way, but duet allows it. We + have found that this can simplify the process of refactoring code to be + asynchronous because you don't have to completely separate the sync and async + parts of your codebase all at once. + +## Installation + +Install from pypi: + +``` +pip install duet +``` + +## Note + +duet is not an official Google project. + + + + +%package -n python3-duet +Summary: A simple future-based async library for python. +Provides: python-duet +BuildRequires: python3-devel +BuildRequires: python3-setuptools +BuildRequires: python3-pip +%description -n python3-duet +# duet + +A simple future-based async library for python + +Duet takes inspiration from the amazing [trio](https://trio.readthedocs.io/en/stable/) +library and the [structured concurrency](https://vorpus.org/blog/notes-on-structured-concurrency-or-go-statement-considered-harmful/) +approach to async programming that it uses. +However, duet differs from trio in two major ways: + +- Instead of a full-blown implementation of asynchronous IO, duet relies on the + `Future` interface for parallelism, and provides a way to run async/await + coroutines around those `Future`s. This is useful if you are using an API that + returns futures, such as RPC libraries like gRPC. The standard `Future` + interface does not implement `__await__` directly, so `Future` instances must + be wrapped in `duet.AwaitableFuture`. + +- duet is re-entrant. At the top level, you run async code by calling + `duet.run(foo)`. Inside `foo` suppose you call a function that has not yet + been fully refactored to be asynchronous, but itself calls `duet.run(bar)`. + Most async libraries, including `trio` and `asyncio`, will raise an exception + if you try to "re-enter" the event loop in this way, but duet allows it. We + have found that this can simplify the process of refactoring code to be + asynchronous because you don't have to completely separate the sync and async + parts of your codebase all at once. + +## Installation + +Install from pypi: + +``` +pip install duet +``` + +## Note + +duet is not an official Google project. + + + + +%package help +Summary: Development documents and examples for duet +Provides: python3-duet-doc +%description help +# duet + +A simple future-based async library for python + +Duet takes inspiration from the amazing [trio](https://trio.readthedocs.io/en/stable/) +library and the [structured concurrency](https://vorpus.org/blog/notes-on-structured-concurrency-or-go-statement-considered-harmful/) +approach to async programming that it uses. +However, duet differs from trio in two major ways: + +- Instead of a full-blown implementation of asynchronous IO, duet relies on the + `Future` interface for parallelism, and provides a way to run async/await + coroutines around those `Future`s. This is useful if you are using an API that + returns futures, such as RPC libraries like gRPC. The standard `Future` + interface does not implement `__await__` directly, so `Future` instances must + be wrapped in `duet.AwaitableFuture`. + +- duet is re-entrant. At the top level, you run async code by calling + `duet.run(foo)`. Inside `foo` suppose you call a function that has not yet + been fully refactored to be asynchronous, but itself calls `duet.run(bar)`. + Most async libraries, including `trio` and `asyncio`, will raise an exception + if you try to "re-enter" the event loop in this way, but duet allows it. We + have found that this can simplify the process of refactoring code to be + asynchronous because you don't have to completely separate the sync and async + parts of your codebase all at once. + +## Installation + +Install from pypi: + +``` +pip install duet +``` + +## Note + +duet is not an official Google project. + + + + +%prep +%autosetup -n duet-0.2.7 + +%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-duet -f filelist.lst +%dir %{python3_sitelib}/* + +%files help -f doclist.lst +%{_docdir}/* + +%changelog +* Tue Apr 11 2023 Python_Bot <Python_Bot@openeuler.org> - 0.2.7-1 +- Package Spec generated @@ -0,0 +1 @@ +3c3658c7a2ee615d2fab059ad9822c99 duet-0.2.7.tar.gz |