diff options
-rw-r--r-- | .gitignore | 1 | ||||
-rw-r--r-- | python-ansq.spec | 411 | ||||
-rw-r--r-- | sources | 1 |
3 files changed, 413 insertions, 0 deletions
@@ -0,0 +1 @@ +/ansq-0.2.0.tar.gz diff --git a/python-ansq.spec b/python-ansq.spec new file mode 100644 index 0000000..6f497b9 --- /dev/null +++ b/python-ansq.spec @@ -0,0 +1,411 @@ +%global _empty_manifest_terminate_build 0 +Name: python-ansq +Version: 0.2.0 +Release: 1 +Summary: Written with native Asyncio NSQ package +License: MIT +URL: https://github.com/list-family/ansq +Source0: https://mirrors.nju.edu.cn/pypi/web/packages/cd/8c/7fb5c615c4303e887f33408f4b6fba4622e899dd2c7844f8f16274ef90da/ansq-0.2.0.tar.gz +BuildArch: noarch + +Requires: python3-aiohttp +Requires: python3-attrs +Requires: python3-importlib-metadata +Requires: python3-pytest-cov +Requires: python3-pytest +Requires: python3-pytest-asyncio + +%description +# ansq - Async NSQ +[](https://badge.fury.io/py/ansq) + +[](https://codecov.io/gh/list-family/ansq) + + +Written with native Asyncio NSQ package + +## Installation + +```commandline +python -m pip install ansq +``` + +## Overview +- `Reader` — high-level class for building consumers with `nsqlookupd` support +- `Writer` — high-level producer class supporting async publishing of messages to `nsqd` + over the TCP protocol +- `NSQConnection` — low-level class representing a TCP connection to `nsqd`: + - full TCP wrapper + - one connection for `sub` and `pub` + - self-healing: when the connection is lost, reconnects, sends identify + and auth commands, subscribes to previous topic/channel + +## Features + +- [x] SUB +- [x] PUB +- [x] Discovery +- [ ] Backoff +- [ ] TLS +- [ ] Deflate +- [ ] Snappy +- [x] Sampling +- [ ] AUTH + +## Usage + +### Consumer + +A simple consumer reads messages from "example_topic" and prints them to stdout. + +```python +import asyncio + +import ansq + + +async def main(): + reader = await ansq.create_reader( + topic="example_topic", + channel="example_channel", + ) + + async for message in reader.messages(): + print(f"Message: {message.body}") + await message.fin() + + await reader.close() + + +if __name__ == "__main__": + asyncio.run(main()) +``` + +### Producer + +A simple producer sends a "Hello, world!" message to "example_topic". + +```python +import asyncio + +import ansq + + +async def main(): + writer = await ansq.create_writer() + await writer.pub( + topic="example_topic", + message="Hello, world!", + ) + await writer.close() + + +if __name__ == "__main__": + asyncio.run(main()) +``` + + +## Contributing + +Create and activate a development virtual environment. + +```bash +python -m venv venv +source venv/bin/activate +``` + +Install `ansq` in editable mode and its testing dependencies. + +```bash +python -m pip install -e .[testing] +``` + +Run tests. + +```bash +pytest +``` + + + + +%package -n python3-ansq +Summary: Written with native Asyncio NSQ package +Provides: python-ansq +BuildRequires: python3-devel +BuildRequires: python3-setuptools +BuildRequires: python3-pip +%description -n python3-ansq +# ansq - Async NSQ +[](https://badge.fury.io/py/ansq) + +[](https://codecov.io/gh/list-family/ansq) + + +Written with native Asyncio NSQ package + +## Installation + +```commandline +python -m pip install ansq +``` + +## Overview +- `Reader` — high-level class for building consumers with `nsqlookupd` support +- `Writer` — high-level producer class supporting async publishing of messages to `nsqd` + over the TCP protocol +- `NSQConnection` — low-level class representing a TCP connection to `nsqd`: + - full TCP wrapper + - one connection for `sub` and `pub` + - self-healing: when the connection is lost, reconnects, sends identify + and auth commands, subscribes to previous topic/channel + +## Features + +- [x] SUB +- [x] PUB +- [x] Discovery +- [ ] Backoff +- [ ] TLS +- [ ] Deflate +- [ ] Snappy +- [x] Sampling +- [ ] AUTH + +## Usage + +### Consumer + +A simple consumer reads messages from "example_topic" and prints them to stdout. + +```python +import asyncio + +import ansq + + +async def main(): + reader = await ansq.create_reader( + topic="example_topic", + channel="example_channel", + ) + + async for message in reader.messages(): + print(f"Message: {message.body}") + await message.fin() + + await reader.close() + + +if __name__ == "__main__": + asyncio.run(main()) +``` + +### Producer + +A simple producer sends a "Hello, world!" message to "example_topic". + +```python +import asyncio + +import ansq + + +async def main(): + writer = await ansq.create_writer() + await writer.pub( + topic="example_topic", + message="Hello, world!", + ) + await writer.close() + + +if __name__ == "__main__": + asyncio.run(main()) +``` + + +## Contributing + +Create and activate a development virtual environment. + +```bash +python -m venv venv +source venv/bin/activate +``` + +Install `ansq` in editable mode and its testing dependencies. + +```bash +python -m pip install -e .[testing] +``` + +Run tests. + +```bash +pytest +``` + + + + +%package help +Summary: Development documents and examples for ansq +Provides: python3-ansq-doc +%description help +# ansq - Async NSQ +[](https://badge.fury.io/py/ansq) + +[](https://codecov.io/gh/list-family/ansq) + + +Written with native Asyncio NSQ package + +## Installation + +```commandline +python -m pip install ansq +``` + +## Overview +- `Reader` — high-level class for building consumers with `nsqlookupd` support +- `Writer` — high-level producer class supporting async publishing of messages to `nsqd` + over the TCP protocol +- `NSQConnection` — low-level class representing a TCP connection to `nsqd`: + - full TCP wrapper + - one connection for `sub` and `pub` + - self-healing: when the connection is lost, reconnects, sends identify + and auth commands, subscribes to previous topic/channel + +## Features + +- [x] SUB +- [x] PUB +- [x] Discovery +- [ ] Backoff +- [ ] TLS +- [ ] Deflate +- [ ] Snappy +- [x] Sampling +- [ ] AUTH + +## Usage + +### Consumer + +A simple consumer reads messages from "example_topic" and prints them to stdout. + +```python +import asyncio + +import ansq + + +async def main(): + reader = await ansq.create_reader( + topic="example_topic", + channel="example_channel", + ) + + async for message in reader.messages(): + print(f"Message: {message.body}") + await message.fin() + + await reader.close() + + +if __name__ == "__main__": + asyncio.run(main()) +``` + +### Producer + +A simple producer sends a "Hello, world!" message to "example_topic". + +```python +import asyncio + +import ansq + + +async def main(): + writer = await ansq.create_writer() + await writer.pub( + topic="example_topic", + message="Hello, world!", + ) + await writer.close() + + +if __name__ == "__main__": + asyncio.run(main()) +``` + + +## Contributing + +Create and activate a development virtual environment. + +```bash +python -m venv venv +source venv/bin/activate +``` + +Install `ansq` in editable mode and its testing dependencies. + +```bash +python -m pip install -e .[testing] +``` + +Run tests. + +```bash +pytest +``` + + + + +%prep +%autosetup -n ansq-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-ansq -f filelist.lst +%dir %{python3_sitelib}/* + +%files help -f doclist.lst +%{_docdir}/* + +%changelog +* Mon May 29 2023 Python_Bot <Python_Bot@openeuler.org> - 0.2.0-1 +- Package Spec generated @@ -0,0 +1 @@ +7376cfaa205f567ae72302a1e180c740 ansq-0.2.0.tar.gz |