Skip to main content

Python client for aviso-server, a notification service for data-driven workflows.

Project description

pyaviso

Python client for aviso-server, ECMWF's notification service for data-driven workflows. The repo this package ships from is aviso-client; the installable distribution and the importable module are both named pyaviso.

The package wraps the Rust core via PyO3 bindings. The compiled extension lives at pyaviso._native and a curated Python wrapper at pyaviso.__init__ exposes a Pythonic surface: synchronous AvisoClient and asynchronous AsyncAvisoClient, value types (Notification, NotifyResponse, SchemaCatalog, SchemaResponse), the Trigger builder, the five auth providers (Bearer, Basic, Env, ConfigFile, Chain), the two state stores (MemoryStore, JsonFileStore), and the exception hierarchy rooted at AvisoError.

Installing pyaviso also puts the aviso command-line tool on your PATH, so one install gives you both the importable library and the CLI.

Install

PyPI wheels are not published yet. Install from a checkout of this repository:

git clone https://github.com/ecmwf/aviso-client.git
cd aviso-client
uv venv
uv sync --locked --group dev
uv run maturin develop --release --locked
uv run python -c "import pyaviso; print(pyaviso.__version__)"
uv run aviso --version

Quickstart

Set two environment variables for the server URL and credentials, then run a listener. pyaviso.Env() reads AVISO_TOKEN (preferred) or the AVISO_USERNAME/AVISO_PASSWORD pair.

export AVISO_BASE_URL=https://aviso.example.org
export AVISO_USERNAME=alice
export AVISO_PASSWORD=wonderland
import os
import pyaviso

client = pyaviso.AvisoClient(base_url=os.environ["AVISO_BASE_URL"], auth=pyaviso.Env())

for notification in client.listen("test_polygon", filter={"polygon": "0,0,1,0,1,1,0,0"}):
    print(notification.sequence, notification.payload)

The example uses an event type called test_polygon. Substitute your own if your server has different schemas configured; discover what is there with client.schema().event_types and client.schema_for("<event_type>"). The user-facing Python documentation covers the full surface, including the async client, triggers, state stores, the exception hierarchy, and how schemas work.

License

Apache-2.0. See LICENSE.txt. Copyright 2026 ECMWF and individual contributors.

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

pyaviso-2.0.0rc3.tar.gz (318.2 kB view details)

Uploaded Source

Built Distributions

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

pyaviso-2.0.0rc3-cp310-abi3-manylinux_2_28_x86_64.whl (4.9 MB view details)

Uploaded CPython 3.10+manylinux: glibc 2.28+ x86-64

pyaviso-2.0.0rc3-cp310-abi3-manylinux_2_28_aarch64.whl (4.9 MB view details)

Uploaded CPython 3.10+manylinux: glibc 2.28+ ARM64

pyaviso-2.0.0rc3-cp310-abi3-macosx_10_12_x86_64.macosx_11_0_arm64.macosx_10_12_universal2.whl (9.0 MB view details)

Uploaded CPython 3.10+macOS 10.12+ universal2 (ARM64, x86-64)macOS 10.12+ x86-64macOS 11.0+ ARM64

File details

Details for the file pyaviso-2.0.0rc3.tar.gz.

File metadata

  • Download URL: pyaviso-2.0.0rc3.tar.gz
  • Upload date:
  • Size: 318.2 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.1.0 CPython/3.13.12

File hashes

Hashes for pyaviso-2.0.0rc3.tar.gz
Algorithm Hash digest
SHA256 efd344faee8a99e24ccf2ab37c45b0b24eefedce7e1938ef12c96c31d21ab6bf
MD5 bfb2ce0a1fdc782afc381ecf3911ff94
BLAKE2b-256 d1a1da3bc15be3eb72670c0e999097bd885f286709493c3fd532085ebfaf2f36

See more details on using hashes here.

File details

Details for the file pyaviso-2.0.0rc3-cp310-abi3-manylinux_2_28_x86_64.whl.

File metadata

File hashes

Hashes for pyaviso-2.0.0rc3-cp310-abi3-manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 a6a8af106adb63702e9877c804f47f2e2730513406de60ea71bf6aca5cb5e7f5
MD5 d9b26d3990cb241d83ab62206aec6bf9
BLAKE2b-256 64ae3871c8ac06554f7474ab35f8c1687fe7999d26f2a692e20755bfcca319a3

See more details on using hashes here.

File details

Details for the file pyaviso-2.0.0rc3-cp310-abi3-manylinux_2_28_aarch64.whl.

File metadata

File hashes

Hashes for pyaviso-2.0.0rc3-cp310-abi3-manylinux_2_28_aarch64.whl
Algorithm Hash digest
SHA256 4b2d641b79b94613eb8cc1a317cabf972f3565757b8ca530e03beb591227d98f
MD5 cfecbade27b1e9deb769190568d3890e
BLAKE2b-256 c049056ded7ef924a1fa96d0bf2d72526a22e578b7236f54e7ccf88776b26514

See more details on using hashes here.

File details

Details for the file pyaviso-2.0.0rc3-cp310-abi3-macosx_10_12_x86_64.macosx_11_0_arm64.macosx_10_12_universal2.whl.

File metadata

File hashes

Hashes for pyaviso-2.0.0rc3-cp310-abi3-macosx_10_12_x86_64.macosx_11_0_arm64.macosx_10_12_universal2.whl
Algorithm Hash digest
SHA256 90b31aace98eda5dab549daf6a8e7ccc00f4242c1ba3858636df9240f30b2ee3
MD5 e1ecaa4731295dd3d0e60c5d4e231553
BLAKE2b-256 e828fde2472b75e614ae4222dbb512c11b8165583d1e447ab27a867972e7e6d1

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