Skip to main content

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 

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

If you're not sure about the file name format, learn more about wheel file names.

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.

Release history Release notifications | RSS feed

This release

0.4.1 This release

2 files

0.4.0

2 files

0.2.0

2 files

0.1.2

2 files

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page