The Python interface to the Hermes message broker.
Project description
## pyhermes
[![Version Badge](https://badge.fury.io/py/pyhermes.png)](https://badge.fury.io/py/pyhermes.png)
[![Build Status](https://travis-ci.org/allegro/pyhermes.png?branch=master)](https://travis-ci.org/allegro/pyhermes)
The Python interface to the [Hermes](http://hermes.allegro.tech) message broker.
## Documentation
The full documentation is at https://pyhermes.readthedocs.org.
## Installation
To install pyhermes, simply:
```python
pip install pyhermes
```
Then use it in a project:
```python
import pyhermes
```
## Features
* TODO
## Quickstart
### Subscriber
To create handler for particular subscription topic decorate your function using `subscribe` decorator:
```python
import pyhermes
@pyhermes.subscriber(topic='pl.allegro.pyhermes.sample-topic')
def handler(data):
# process data
```
This function will be called every time there is new message published to the selected topic.
### Publisher
Use `publish` function to publish data to some topic in hermes:
```python
import pyhermes
@pyhermes.publisher(topic='pl.allegro.pyhermes.sample-topic')
def my_complex_function(a, b, c):
result = a + b + c
publish(my_complex_function._topic, {'complex_result': result})
```
You could publish directly result of the function as well:
```python
import pyhermes
@pyhermes.publisher(topic='pl.allegro.pyhermes.sample-topic', auto_publish_result=True)
def my_complex_function(a, b, c):
return {'complex_result': a + b + c}
```
Result of decorated function is automatically published to selected topic in hermes.
## Running Tests
Does the code actually work?
```python
source <YOURVIRTUALENV>/bin/activate
(myenv) $ pip install -r requirements/test.txt
(myenv) $ python runtests.py
```
## Credits
Tools used in rendering this package:
* [Cookiecutter](https://github.com/audreyr/cookiecutter)
* [cookiecutter-djangopackage](https://github.com/pydanny/cookiecutter-djangopackage)
# History
## 0.3.0 (2016-12-29)
* Retry publishing to hermes in case of failure (default: 3x)
* Support for Python3.6, Django 1.10 and Django development version in tests
## 0.2.1 (2016-12-12)
* Configure custom label for django app #11
## 0.2.0 (2016-11-03)
* Fix ambiguity with pyhermes.decorators.subscriber (rename subscriber module to subscription)
## 0.1.3 (2016-06-21)
* Allow for custom wrapper around subcriber function
* Additional logging for event id and retry count
* Added support for Django <= 1.7
* Raw data is dumped only to debug logs.
## 0.1.2 (2016-04-20)
* New management command for testing Hermes connection
## 0.1.0 (2016-04-13)
* First release on PyPI.
[![Version Badge](https://badge.fury.io/py/pyhermes.png)](https://badge.fury.io/py/pyhermes.png)
[![Build Status](https://travis-ci.org/allegro/pyhermes.png?branch=master)](https://travis-ci.org/allegro/pyhermes)
The Python interface to the [Hermes](http://hermes.allegro.tech) message broker.
## Documentation
The full documentation is at https://pyhermes.readthedocs.org.
## Installation
To install pyhermes, simply:
```python
pip install pyhermes
```
Then use it in a project:
```python
import pyhermes
```
## Features
* TODO
## Quickstart
### Subscriber
To create handler for particular subscription topic decorate your function using `subscribe` decorator:
```python
import pyhermes
@pyhermes.subscriber(topic='pl.allegro.pyhermes.sample-topic')
def handler(data):
# process data
```
This function will be called every time there is new message published to the selected topic.
### Publisher
Use `publish` function to publish data to some topic in hermes:
```python
import pyhermes
@pyhermes.publisher(topic='pl.allegro.pyhermes.sample-topic')
def my_complex_function(a, b, c):
result = a + b + c
publish(my_complex_function._topic, {'complex_result': result})
```
You could publish directly result of the function as well:
```python
import pyhermes
@pyhermes.publisher(topic='pl.allegro.pyhermes.sample-topic', auto_publish_result=True)
def my_complex_function(a, b, c):
return {'complex_result': a + b + c}
```
Result of decorated function is automatically published to selected topic in hermes.
## Running Tests
Does the code actually work?
```python
source <YOURVIRTUALENV>/bin/activate
(myenv) $ pip install -r requirements/test.txt
(myenv) $ python runtests.py
```
## Credits
Tools used in rendering this package:
* [Cookiecutter](https://github.com/audreyr/cookiecutter)
* [cookiecutter-djangopackage](https://github.com/pydanny/cookiecutter-djangopackage)
# History
## 0.3.0 (2016-12-29)
* Retry publishing to hermes in case of failure (default: 3x)
* Support for Python3.6, Django 1.10 and Django development version in tests
## 0.2.1 (2016-12-12)
* Configure custom label for django app #11
## 0.2.0 (2016-11-03)
* Fix ambiguity with pyhermes.decorators.subscriber (rename subscriber module to subscription)
## 0.1.3 (2016-06-21)
* Allow for custom wrapper around subcriber function
* Additional logging for event id and retry count
* Added support for Django <= 1.7
* Raw data is dumped only to debug logs.
## 0.1.2 (2016-04-20)
* New management command for testing Hermes connection
## 0.1.0 (2016-04-13)
* First release on PyPI.
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distributions
No source distribution files available for this release.See tutorial on generating distribution archives.
Built Distribution
File details
Details for the file pyhermes-0.4.1-py2.py3-none-any.whl
.
File metadata
- Download URL: pyhermes-0.4.1-py2.py3-none-any.whl
- Upload date:
- Size: 13.5 kB
- Tags: Python 2, Python 3
- Uploaded using Trusted Publishing? No
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | d3fa959a8a23e7768f1dde35a7de669caacd411331677998154ceb3942b52984 |
|
MD5 | b66692162a010eb20eb5f14fa76b5081 |
|
BLAKE2b-256 | 44f020de385bb6bda07b400a95fc4655c8e00796a15db8434fd81ff2e28aa83d |