Skip to main content

Build Status

atomicpuppy

A service-activator component for eventstore, written in Python

A Brief and Mostly Useless Quickstart:

# 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
# 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.

Release files for AtomicPuppy 1.5.6

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for AtomicPuppy 1.5.6
File Size Uploaded
AtomicPuppy-1.5.6.tar.gz 40.3 kB Details

Built distribution (wheel)

Table of built distributions (wheels) for AtomicPuppy 1.5.6
File Interpreter ABI Platform
AtomicPuppy-1.5.6-py3-none-any.whl Python 3 none any Details

Total release size: 69.7 kB

Release files / AtomicPuppy-1.5.6.tar.gz

Download URL AtomicPuppy-1.5.6.tar.gz
Size 40.3 kB
Tags Source
SHA-256 checksum
How to use checksums
1486032268b7c92ed22d6a71f6c98028a8916150cae5244f4e79361f59360546
BLAKE2b-256 checksum
How to use checksums
4994c6e0a293eaebe09ce3f7625485de2f4aba762c1067e0ed335656166c9c54
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/4.0.1 CPython/3.9.14

Release files / AtomicPuppy-1.5.6-py3-none-any.whl

Download URL AtomicPuppy-1.5.6-py3-none-any.whl
Size 29.4 kB
Tags Python 3
SHA-256 checksum
How to use checksums
0dc307db6af5890342785a5281d81a22cebbdbb39be7486668c6f49eae970dd1
BLAKE2b-256 checksum
How to use checksums
bb066a8d61c45c2f35d6d1eb25bf637ec9910bd20e3d56248b5117a6c0e091bb
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/4.0.1 CPython/3.9.14

Release history Release notifications | RSS feed

This release

1.5.6 This release

2 release files

1.5.5

2 release files

1.5.4

2 release files

1.5.3

2 release files

1.5.0

2 release files

1.4.0

2 release files

1.3.0

1 release file

1.2.2

1 release file

1.2.1

1 release file

1.2

1 release file

1.1

1 release file

1.0

1 release file

0.7.2

2 release files

0.7.0

1 release file

0.6.0

1 release file

0.5.0

1 release file

0.4.1

1 release file

0.4.0

1 release file

0.3.1

1 release file

0.2.5

1 release file

0.2.4

1 release file

0.2.3

1 release file

0.2.2

1 release file

0.2.1

1 release file

0.2

1 release file

0.1.2

1 release file

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page