AsyncIO Phoenix Channels client for fast asynchronous message handling
Project description
PHX Events
PHX Events is an AsyncIO library to set up a websocket connection with Phoenix Channels in Python 3.9+.
Check out the phx_event
documentation
Installing PHX Events
From Pip
pip install phx-events
From Source
Clone the Git repo and then install the dependencies
pip install -r requirements/core.txt
Use the client in your code:
import asyncio
from concurrent.futures import ThreadPoolExecutor
from phx_events.client import PHXChannelsClient
from phx_events.phx_messages import ChannelMessage, Event, Topic
def print_handler(message: ChannelMessage, client: PHXChannelsClient) -> None:
client.logger.info(f'DEFAULT: {message=}')
async def async_print_handler(message: ChannelMessage, client: PHXChannelsClient) -> None:
client.logger.info(f'ASYNC: {message=}')
async def main() -> None:
token = 'auth_token'
client: PHXChannelsClient
with ThreadPoolExecutor() as pool:
async with PHXChannelsClient(token) as client:
client.register_event_handler(
event=Event('event_name'),
handlers=[
print_handler,
async_print_handler,
],
)
client.register_topic_subscription(Topic('topic:subtopic'))
await client.start_processing(pool)
if __name__ == '__main__':
asyncio.run(main(), debug=True)
Developing
This project uses pip-tools
to manage dependencies.
Before contributing ensure you agree to the DCO.
Commits contributed to this project need to be signed in git
.
This can be done as follows (Note -s
is a shortcut for --signoff
) :
git commit --signoff
1. Create a virtualenv
Note: Creating the virtualenv can be done however you want. We will assume you've done created a new virtualenv and activated it from this point.
2. Install pip-tools
:
pip install pip-tools
3. Install Dependencies
pip-sync requirements/core.txt requirements/dev.txt
Project details
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
File details
Details for the file phx-events-0.4.1.tar.gz
.
File metadata
- Download URL: phx-events-0.4.1.tar.gz
- Upload date:
- Size: 29.2 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: python-requests/2.26.0
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | 5ffe4c16034af3d82d4be0c41bb0a9de0acfdf4e45156c971facdb4d6fffe10a |
|
MD5 | 225f5a68b663315f1cfbc238225e5659 |
|
BLAKE2b-256 | 7396058251e74e4fadd6d798e6510bf78f6aabdb286a9ce93f1f08d0668c02c4 |
File details
Details for the file phx_events-0.4.1-py3-none-any.whl
.
File metadata
- Download URL: phx_events-0.4.1-py3-none-any.whl
- Upload date:
- Size: 13.7 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: python-requests/2.26.0
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | 7093519fa44970443d4bdcbce4dcf1c0f2c8a5afd30e1ab640b422ba4f103b83 |
|
MD5 | b98d25839865ab0f927af7ed40a567b3 |
|
BLAKE2b-256 | 3c44707280c9223163cdb881851b97ae6e76913d0656d144bca73f5f6450724d |