Skip to main content

AsyncIO Phoenix Channels client for fast asynchronous message handling

Project description

PHX Events

PyPI PyPI - Python Version GitHub

Test PHX Events Lint Python Lint Github Workflows

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

phx-events-0.4.1.tar.gz (29.2 kB view details)

Uploaded Source

Built Distribution

phx_events-0.4.1-py3-none-any.whl (13.7 kB view details)

Uploaded Python 3

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

Hashes for phx-events-0.4.1.tar.gz
Algorithm Hash digest
SHA256 5ffe4c16034af3d82d4be0c41bb0a9de0acfdf4e45156c971facdb4d6fffe10a
MD5 225f5a68b663315f1cfbc238225e5659
BLAKE2b-256 7396058251e74e4fadd6d798e6510bf78f6aabdb286a9ce93f1f08d0668c02c4

See more details on using hashes here.

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

Hashes for phx_events-0.4.1-py3-none-any.whl
Algorithm Hash digest
SHA256 7093519fa44970443d4bdcbce4dcf1c0f2c8a5afd30e1ab640b422ba4f103b83
MD5 b98d25839865ab0f927af7ed40a567b3
BLAKE2b-256 3c44707280c9223163cdb881851b97ae6e76913d0656d144bca73f5f6450724d

See more details on using hashes here.

Supported by

AWS AWS Cloud computing and Security Sponsor Datadog Datadog Monitoring Fastly Fastly CDN Google Google Download Analytics Microsoft Microsoft PSF Sponsor Pingdom Pingdom Monitoring Sentry Sentry Error logging StatusPage StatusPage Status page