Skip to main content

A simple server sent events client for python

Project description

py-sse-client

A simple asynchronous Server Sent Events (SSE) client for Python.

For more information about Server Sent Events, refer to MDN Web Docs.

Installation

Install the package using pip:

pip install py-sse-client

Usage

Quickstart

import asyncio
import pysse

def listener(event):
    print(event)

async def main():
    client = pysse.Client("https://example.com/sse", listener)
    await client.connect()

if __name__ == "__main__":
    asyncio.run(main())

Creating a Client

To create a client, use the Client class. The constructor accepts the following arguments:

  • url:
    • The URL of the SSE endpoint
    • Type: str
    • Required
  • callable:
    • A callback function that will be invoked whenever an event is received
    • The callback receives an Event object as its argument
    • Type: Callable
    • Required
  • param:
    • Query parameters to include in the request
    • Default is an empty dictionary
    • Type: dict
    • Optional
  • headers:
    • HTTP headers to include in the request
    • Default is an empty dictionary
    • Type: dict
    • Optional

Example:

from pysse import Client

def listener(event):
    print(f"Event Name: {event.name}")
    print(f"Event Data: {event.data}")

client = Client(
    url="https://example.com/sse",
    callable=listener,
    param={"token": "your_token"},
    headers={"Authorization": "Bearer your_token"}
)

Connecting to a Server Sent Events API

To connect to the SSE API, call the connect method of the Client instance. This method is asynchronous and should be awaited.

Example:

import asyncio

async def main():
    await client.connect()

asyncio.run(main())

Disconnecting from the Server Sent Events API

To disconnect from the SSE API, call the close method of the Client instance. This method is also asynchronous and should be awaited.

Example:

async def main():
    await client.close()

asyncio.run(main())

API Reference

class pysse.Client

Constructor

Client(url: str, callable: Callable, param: dict = {}, headers: dict = {})

Arguments:

  • url (str): The URL of the SSE endpoint
  • callable (Callable): A callback function to handle incoming events
  • param (dict, optional): Query parameters for the request
  • headers (dict, optional): HTTP headers for the request

Methods

  • async connect() -> None
    Connects to the SSE API and starts listening for events

  • async close() -> None
    Disconnects from the SSE API

  • is_closed() -> bool
    Returns True if the connection is closed, otherwise False

class pysse.Event

A data class representing an SSE event

Attributes:

  • name (str): The name of the event
  • data (dict): The data associated with the event

License

This project is licensed under the MIT License. See the LICENSE file for details.

Links

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

py_sse_client-1.0.1.tar.gz (4.4 kB view details)

Uploaded Source

Built Distribution

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

py_sse_client-1.0.1-py3-none-any.whl (5.0 kB view details)

Uploaded Python 3

File details

Details for the file py_sse_client-1.0.1.tar.gz.

File metadata

  • Download URL: py_sse_client-1.0.1.tar.gz
  • Upload date:
  • Size: 4.4 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.1.0 CPython/3.13.3

File hashes

Hashes for py_sse_client-1.0.1.tar.gz
Algorithm Hash digest
SHA256 685712a71940fa6f4e2d7867c003d9187bf408f33e65d7899358d04cf00cc4f3
MD5 c222636ab4753233aad7e1cff857e894
BLAKE2b-256 4edade2bba42b75fc2125cdd92358dad80af6915107b1469adf0f5774a3ed88b

See more details on using hashes here.

File details

Details for the file py_sse_client-1.0.1-py3-none-any.whl.

File metadata

  • Download URL: py_sse_client-1.0.1-py3-none-any.whl
  • Upload date:
  • Size: 5.0 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.1.0 CPython/3.13.3

File hashes

Hashes for py_sse_client-1.0.1-py3-none-any.whl
Algorithm Hash digest
SHA256 ffed0881cc47efcb42620e99b85d11d2e6e944b8e86dbf0a88f068585917ebe6
MD5 2ec8af6307ea633643f668a0245c1afd
BLAKE2b-256 864470b53e8af72cc6b419bbf4f8a6a3fe9e6a005fc33889efeaf52fff8df78b

See more details on using hashes here.

Supported by

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