%global _empty_manifest_terminate_build 0 Name: python-AtomicPuppy Version: 1.5.6 Release: 1 Summary: A service-activator component for eventstore License: MIT URL: https://github.com/madedotcom/atomicpuppy Source0: https://mirrors.nju.edu.cn/pypi/web/packages/49/94/c6e0a293eaebe09ce3f7625485de2f4aba762c1067e0ed335656166c9c54/AtomicPuppy-1.5.6.tar.gz BuildArch: noarch Requires: python3-aiohttp Requires: python3-chardet Requires: python3-gevent Requires: python3-pybreaker Requires: python3-PyYAML Requires: python3-redis Requires: python3-retrying Requires: python3-requests %description [![Build Status](https://travis-ci.org/madedotcom/atomicpuppy.svg?branch=master)](https://travis-ci.org/madedotcom/atomicpuppy) # atomicpuppy A service-activator component for eventstore, written in Python ## A Brief and Mostly Useless Quickstart: ```yaml # config.yaml atomicpuppy: host: localhost port: 2113 # each stream will be polled by a separate async http client streams: - stream_a - stream_b - stream_with_a_#date# # the counter keeps track of which messages have been processed counter: redis: host: localhost port: 6379 ``` ```python # main.py # AtomicPuppy uses asyncio coroutines for concurrent IO import asyncio import logging import signal from atomicpuppy import AtomicPuppy # AtomicPuppy needs a callback to pass you messages. def handle(msg): print(msg) # Config is read from yaml files. ap = AtomicPuppy('config.yaml', handle) loop = asyncio.get_event_loop() # to kill the puppy, call stop() def stop(): logging.debug("SIGINT received, shutting down") ap.stop() loop.add_signal_handler(signal.SIGINT, stop) # and to start it call start. loop.run_until_complete(ap.start()) ``` ## Run the tests A `tox.ini` file is provided to run the tests with different versions of Python. To run the tests: 1. Make sure you have the Python 3.6, 3.7, 3,8, 3.9 and 3.10 headers installed (for Ubuntu please refer to https://launchpad.net/~deadsnakes/+archive/ubuntu/ppa) 2. `pip install -r test-requirements.txt` from the root folder of the repository 3. Run `tox` from the root folder of the repository ### Prepare and run the tests on Mac with pyenv #### Install pyenv and pyenv-virtualenv and python versions ``` brew install pyenv pyenv-virtualenv ``` Add the following lines to your `.zshrc` (check latest pyenv doc): ``` export PYENV_ROOT="$HOME/.pyenv" export PATH="$PYENV_ROOT/bin:$PATH" eval "$(pyenv init --path)" eval "$(pyenv init -)" eval "$(pyenv virtualenv-init -)" ``` ``` pyenv install 3.6.15 pyenv install 3.7.12 pyenv install 3.8.12 pyenv install 3.9.9 pyenv install 3.10.1 ``` Check the latest versions, install the latest minor from each major version. #### Create a virtual environment ``` pyenv virtualenv 3.10.1 atomicpuppy pyenv activate atomicpuppy pip install tox-pyenv pip install -r test-requirements.txt ``` #### Run the tests ``` pyenv local atomicpuppy 3.6.13 3.7.10 3.8.10 3.9.5 tox ``` ## About python version There is a bug in asyncio for python3.4 that was fixed in other versions. This is the bug report: https://bugs.python.org/issue23812 Because of that we have dropped support for python3.4 and we recommend to use python3.7. %package -n python3-AtomicPuppy Summary: A service-activator component for eventstore Provides: python-AtomicPuppy BuildRequires: python3-devel BuildRequires: python3-setuptools BuildRequires: python3-pip %description -n python3-AtomicPuppy [![Build Status](https://travis-ci.org/madedotcom/atomicpuppy.svg?branch=master)](https://travis-ci.org/madedotcom/atomicpuppy) # atomicpuppy A service-activator component for eventstore, written in Python ## A Brief and Mostly Useless Quickstart: ```yaml # config.yaml atomicpuppy: host: localhost port: 2113 # each stream will be polled by a separate async http client streams: - stream_a - stream_b - stream_with_a_#date# # the counter keeps track of which messages have been processed counter: redis: host: localhost port: 6379 ``` ```python # main.py # AtomicPuppy uses asyncio coroutines for concurrent IO import asyncio import logging import signal from atomicpuppy import AtomicPuppy # AtomicPuppy needs a callback to pass you messages. def handle(msg): print(msg) # Config is read from yaml files. ap = AtomicPuppy('config.yaml', handle) loop = asyncio.get_event_loop() # to kill the puppy, call stop() def stop(): logging.debug("SIGINT received, shutting down") ap.stop() loop.add_signal_handler(signal.SIGINT, stop) # and to start it call start. loop.run_until_complete(ap.start()) ``` ## Run the tests A `tox.ini` file is provided to run the tests with different versions of Python. To run the tests: 1. Make sure you have the Python 3.6, 3.7, 3,8, 3.9 and 3.10 headers installed (for Ubuntu please refer to https://launchpad.net/~deadsnakes/+archive/ubuntu/ppa) 2. `pip install -r test-requirements.txt` from the root folder of the repository 3. Run `tox` from the root folder of the repository ### Prepare and run the tests on Mac with pyenv #### Install pyenv and pyenv-virtualenv and python versions ``` brew install pyenv pyenv-virtualenv ``` Add the following lines to your `.zshrc` (check latest pyenv doc): ``` export PYENV_ROOT="$HOME/.pyenv" export PATH="$PYENV_ROOT/bin:$PATH" eval "$(pyenv init --path)" eval "$(pyenv init -)" eval "$(pyenv virtualenv-init -)" ``` ``` pyenv install 3.6.15 pyenv install 3.7.12 pyenv install 3.8.12 pyenv install 3.9.9 pyenv install 3.10.1 ``` Check the latest versions, install the latest minor from each major version. #### Create a virtual environment ``` pyenv virtualenv 3.10.1 atomicpuppy pyenv activate atomicpuppy pip install tox-pyenv pip install -r test-requirements.txt ``` #### Run the tests ``` pyenv local atomicpuppy 3.6.13 3.7.10 3.8.10 3.9.5 tox ``` ## About python version There is a bug in asyncio for python3.4 that was fixed in other versions. This is the bug report: https://bugs.python.org/issue23812 Because of that we have dropped support for python3.4 and we recommend to use python3.7. %package help Summary: Development documents and examples for AtomicPuppy Provides: python3-AtomicPuppy-doc %description help [![Build Status](https://travis-ci.org/madedotcom/atomicpuppy.svg?branch=master)](https://travis-ci.org/madedotcom/atomicpuppy) # atomicpuppy A service-activator component for eventstore, written in Python ## A Brief and Mostly Useless Quickstart: ```yaml # config.yaml atomicpuppy: host: localhost port: 2113 # each stream will be polled by a separate async http client streams: - stream_a - stream_b - stream_with_a_#date# # the counter keeps track of which messages have been processed counter: redis: host: localhost port: 6379 ``` ```python # main.py # AtomicPuppy uses asyncio coroutines for concurrent IO import asyncio import logging import signal from atomicpuppy import AtomicPuppy # AtomicPuppy needs a callback to pass you messages. def handle(msg): print(msg) # Config is read from yaml files. ap = AtomicPuppy('config.yaml', handle) loop = asyncio.get_event_loop() # to kill the puppy, call stop() def stop(): logging.debug("SIGINT received, shutting down") ap.stop() loop.add_signal_handler(signal.SIGINT, stop) # and to start it call start. loop.run_until_complete(ap.start()) ``` ## Run the tests A `tox.ini` file is provided to run the tests with different versions of Python. To run the tests: 1. Make sure you have the Python 3.6, 3.7, 3,8, 3.9 and 3.10 headers installed (for Ubuntu please refer to https://launchpad.net/~deadsnakes/+archive/ubuntu/ppa) 2. `pip install -r test-requirements.txt` from the root folder of the repository 3. Run `tox` from the root folder of the repository ### Prepare and run the tests on Mac with pyenv #### Install pyenv and pyenv-virtualenv and python versions ``` brew install pyenv pyenv-virtualenv ``` Add the following lines to your `.zshrc` (check latest pyenv doc): ``` export PYENV_ROOT="$HOME/.pyenv" export PATH="$PYENV_ROOT/bin:$PATH" eval "$(pyenv init --path)" eval "$(pyenv init -)" eval "$(pyenv virtualenv-init -)" ``` ``` pyenv install 3.6.15 pyenv install 3.7.12 pyenv install 3.8.12 pyenv install 3.9.9 pyenv install 3.10.1 ``` Check the latest versions, install the latest minor from each major version. #### Create a virtual environment ``` pyenv virtualenv 3.10.1 atomicpuppy pyenv activate atomicpuppy pip install tox-pyenv pip install -r test-requirements.txt ``` #### Run the tests ``` pyenv local atomicpuppy 3.6.13 3.7.10 3.8.10 3.9.5 tox ``` ## About python version There is a bug in asyncio for python3.4 that was fixed in other versions. This is the bug report: https://bugs.python.org/issue23812 Because of that we have dropped support for python3.4 and we recommend to use python3.7. %prep %autosetup -n AtomicPuppy-1.5.6 %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-AtomicPuppy -f filelist.lst %dir %{python3_sitelib}/* %files help -f doclist.lst %{_docdir}/* %changelog * Mon May 15 2023 Python_Bot - 1.5.6-1 - Package Spec generated