diff options
| author | CoprDistGit <copr-devel@lists.fedorahosted.org> | 2023-03-08 04:03:48 +0000 | 
|---|---|---|
| committer | CoprDistGit <copr-devel@lists.fedorahosted.org> | 2023-03-08 04:03:48 +0000 | 
| commit | 17f64370ca18920ef3d9b18b6ebb9d3c979bac96 (patch) | |
| tree | 0c654301e356457253be47eb1e13cb56fa73a98d | |
| parent | 27c9e2c11967c402afe29686d66676a58020cfd9 (diff) | |
automatic import of python-asyncio-dgram
| -rw-r--r-- | .gitignore | 1 | ||||
| -rw-r--r-- | python-asyncio-dgram.spec | 284 | ||||
| -rw-r--r-- | sources | 1 | 
3 files changed, 286 insertions, 0 deletions
| @@ -0,0 +1 @@ +/asyncio-dgram-2.1.2.tar.gz diff --git a/python-asyncio-dgram.spec b/python-asyncio-dgram.spec new file mode 100644 index 0000000..2a2bb1a --- /dev/null +++ b/python-asyncio-dgram.spec @@ -0,0 +1,284 @@ +%global _empty_manifest_terminate_build 0 +Name:		python-asyncio-dgram +Version:	2.1.2 +Release:	1 +Summary:	Higher level Datagram support for Asyncio +License:	MIT +URL:		https://github.com/jsbronder/asyncio-dgram +Source0:	https://mirrors.nju.edu.cn/pypi/web/packages/b8/ae/af5fe668d16e82a05b85855a065ecc239ed2274e6a0d60bca6d1337de7c6/asyncio-dgram-2.1.2.tar.gz +BuildArch:	noarch + +Requires:	python3-black +Requires:	python3-flake8 +Requires:	python3-mypy-extensions +Requires:	python3-mypy +Requires:	python3-pytest-asyncio +Requires:	python3-pytest +Requires:	python3-typed-ast +Requires:	python3-typing-extensions + +%description +[](https://github.com/jsbronder/asyncio-dgram/actions) + +# Higher level Datagram support for Asyncio +Simple wrappers that allow you to `await read()` from datagrams as suggested +by Guido van Rossum +[here](https://github.com/python/asyncio/pull/321#issuecomment-187022351).  I +frequently found myself having to inherit from `asyncio.DatagramProtocol` and +implement this over and over. + +# Design +The goal of this package is to make implementing common patterns that use datagrams +simple and straight-forward while still supporting more esoteric options.  This is done +by taking an opinionated stance on the API that differs from parts of asyncio.  For instance, +rather than exposing a function like +[create\_datagram\_endpoint](https://docs.python.org/3/library/asyncio-eventloop.html#asyncio.loop.create_datagram_endpoint) +which supports many use-cases and has conflicting parameters, `asyncio_dgram` +only provides three functions for creating a stream: + +- `connect((host, port))`: Creates a datagram endpoint which can only +  communicate with the endpoint it connected to. +- `bind((host, port))`: Creates a datagram endpoint that can communicate +  with anyone, but must specified the destination address every time it +  sends. +- `from_socket(sock)`: If the above two functions are not sufficient, then +  `asyncio_dgram` simply lets the caller setup the socket as they see fit. + + +# Example UDP echo client and server +Following the example of asyncio documentation, here's what a UDP echo client +and server would look like. +```python +import asyncio + +import asyncio_dgram + + +async def udp_echo_client(): +    stream = await asyncio_dgram.connect(("127.0.0.1", 8888)) + +    await stream.send(b"Hello World!") +    data, remote_addr = await stream.recv() +    print(f"Client received: {data.decode()!r}") + +    stream.close() + + +async def udp_echo_server(): +    stream = await asyncio_dgram.bind(("127.0.0.1", 8888)) + +    print(f"Serving on {stream.sockname}") + +    data, remote_addr = await stream.recv() +    print(f"Echoing {data.decode()!r}") +    await stream.send(data, remote_addr) + +    await asyncio.sleep(0.5) +    print(f"Shutting down server") + + +def main(): +    loop = asyncio.get_event_loop() +    loop.run_until_complete(asyncio.gather(udp_echo_server(), udp_echo_client())) + + +if __name__ == "__main__": +    main() +``` + + + +%package -n python3-asyncio-dgram +Summary:	Higher level Datagram support for Asyncio +Provides:	python-asyncio-dgram +BuildRequires:	python3-devel +BuildRequires:	python3-setuptools +BuildRequires:	python3-pip +%description -n python3-asyncio-dgram +[](https://github.com/jsbronder/asyncio-dgram/actions) + +# Higher level Datagram support for Asyncio +Simple wrappers that allow you to `await read()` from datagrams as suggested +by Guido van Rossum +[here](https://github.com/python/asyncio/pull/321#issuecomment-187022351).  I +frequently found myself having to inherit from `asyncio.DatagramProtocol` and +implement this over and over. + +# Design +The goal of this package is to make implementing common patterns that use datagrams +simple and straight-forward while still supporting more esoteric options.  This is done +by taking an opinionated stance on the API that differs from parts of asyncio.  For instance, +rather than exposing a function like +[create\_datagram\_endpoint](https://docs.python.org/3/library/asyncio-eventloop.html#asyncio.loop.create_datagram_endpoint) +which supports many use-cases and has conflicting parameters, `asyncio_dgram` +only provides three functions for creating a stream: + +- `connect((host, port))`: Creates a datagram endpoint which can only +  communicate with the endpoint it connected to. +- `bind((host, port))`: Creates a datagram endpoint that can communicate +  with anyone, but must specified the destination address every time it +  sends. +- `from_socket(sock)`: If the above two functions are not sufficient, then +  `asyncio_dgram` simply lets the caller setup the socket as they see fit. + + +# Example UDP echo client and server +Following the example of asyncio documentation, here's what a UDP echo client +and server would look like. +```python +import asyncio + +import asyncio_dgram + + +async def udp_echo_client(): +    stream = await asyncio_dgram.connect(("127.0.0.1", 8888)) + +    await stream.send(b"Hello World!") +    data, remote_addr = await stream.recv() +    print(f"Client received: {data.decode()!r}") + +    stream.close() + + +async def udp_echo_server(): +    stream = await asyncio_dgram.bind(("127.0.0.1", 8888)) + +    print(f"Serving on {stream.sockname}") + +    data, remote_addr = await stream.recv() +    print(f"Echoing {data.decode()!r}") +    await stream.send(data, remote_addr) + +    await asyncio.sleep(0.5) +    print(f"Shutting down server") + + +def main(): +    loop = asyncio.get_event_loop() +    loop.run_until_complete(asyncio.gather(udp_echo_server(), udp_echo_client())) + + +if __name__ == "__main__": +    main() +``` + + + +%package help +Summary:	Development documents and examples for asyncio-dgram +Provides:	python3-asyncio-dgram-doc +%description help +[](https://github.com/jsbronder/asyncio-dgram/actions) + +# Higher level Datagram support for Asyncio +Simple wrappers that allow you to `await read()` from datagrams as suggested +by Guido van Rossum +[here](https://github.com/python/asyncio/pull/321#issuecomment-187022351).  I +frequently found myself having to inherit from `asyncio.DatagramProtocol` and +implement this over and over. + +# Design +The goal of this package is to make implementing common patterns that use datagrams +simple and straight-forward while still supporting more esoteric options.  This is done +by taking an opinionated stance on the API that differs from parts of asyncio.  For instance, +rather than exposing a function like +[create\_datagram\_endpoint](https://docs.python.org/3/library/asyncio-eventloop.html#asyncio.loop.create_datagram_endpoint) +which supports many use-cases and has conflicting parameters, `asyncio_dgram` +only provides three functions for creating a stream: + +- `connect((host, port))`: Creates a datagram endpoint which can only +  communicate with the endpoint it connected to. +- `bind((host, port))`: Creates a datagram endpoint that can communicate +  with anyone, but must specified the destination address every time it +  sends. +- `from_socket(sock)`: If the above two functions are not sufficient, then +  `asyncio_dgram` simply lets the caller setup the socket as they see fit. + + +# Example UDP echo client and server +Following the example of asyncio documentation, here's what a UDP echo client +and server would look like. +```python +import asyncio + +import asyncio_dgram + + +async def udp_echo_client(): +    stream = await asyncio_dgram.connect(("127.0.0.1", 8888)) + +    await stream.send(b"Hello World!") +    data, remote_addr = await stream.recv() +    print(f"Client received: {data.decode()!r}") + +    stream.close() + + +async def udp_echo_server(): +    stream = await asyncio_dgram.bind(("127.0.0.1", 8888)) + +    print(f"Serving on {stream.sockname}") + +    data, remote_addr = await stream.recv() +    print(f"Echoing {data.decode()!r}") +    await stream.send(data, remote_addr) + +    await asyncio.sleep(0.5) +    print(f"Shutting down server") + + +def main(): +    loop = asyncio.get_event_loop() +    loop.run_until_complete(asyncio.gather(udp_echo_server(), udp_echo_client())) + + +if __name__ == "__main__": +    main() +``` + + + +%prep +%autosetup -n asyncio-dgram-2.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-asyncio-dgram -f filelist.lst +%dir %{python3_sitelib}/* + +%files help -f doclist.lst +%{_docdir}/* + +%changelog +* Wed Mar 08 2023 Python_Bot <Python_Bot@openeuler.org> - 2.1.2-1 +- Package Spec generated @@ -0,0 +1 @@ +3c396a43b4b3e42a203212541901bd72  asyncio-dgram-2.1.2.tar.gz | 
