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())
polygon = [[0, 0], [1, 0], [1, 1], [0, 0]]
for notification in client.listen("test_polygon", filter={"polygon": polygon}):
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.
Release files for pyaviso 2.0.2
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | |
|---|---|---|---|
| pyaviso-2.0.2.tar.gz | 324.9 kB | Details |
Built distributions (wheels)
| File | Interpreter | ABI | Platform | Reset |
|---|---|---|---|---|
| pyaviso-2.0.2-cp310-abi3-manylinux_2_28_x86_64.whl | CPython 3.10 | abi3 | Linux glibc 2.28+ x86-64 | Details |
| pyaviso-2.0.2-cp310-abi3-manylinux_2_28_aarch64.whl | CPython 3.10 | abi3 | Linux glibc 2.28+ ARM64 | Details |
| pyaviso-2.0.2-cp310-abi3-macosx_10_12_x86_64.macosx_11_0_arm64.macosx_10_12_universal2.whl | CPython 3.10 | abi3 | macOS 10.12+ x86-64, macOS 11.0+ ARM64, macOS 10.12+ universal2 (ARM64, x86-64) | Details |
Total release size: 21.8 MB
Release files / pyaviso-2.0.2.tar.gz
| Download URL | pyaviso-2.0.2.tar.gz |
|---|---|
| Size | 324.9 kB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
bc3d784e00527f2c650704018adb1114f068572f0d1edf32a71f425aa9ef3bc6
|
|
BLAKE2b-256 checksum How to use checksums |
a7fe2bb11cd88d0c3355bf6b3e4bd81ff6a996317ab93d5bace181fb61a6a81d
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/7.0.0 CPython/3.13.14
|
Release files / pyaviso-2.0.2-cp310-abi3-manylinux_2_28_x86_64.whl
| Download URL | pyaviso-2.0.2-cp310-abi3-manylinux_2_28_x86_64.whl |
|---|---|
| Size | 5.6 MB |
| Tags | CPython 3.10 Linux glibc 2.28+ x86-64 abi3 |
|
SHA-256 checksum How to use checksums |
87cbe78347200bacc855cd59f81e5f96c88313e26be7fb24df9725d0efe788c6
|
|
BLAKE2b-256 checksum How to use checksums |
96e6266eaa395009c4538d4f9fa9dcfcbd0ba646e4d44ec9894cca2b42bfb3cf
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/7.0.0 CPython/3.13.14
|
Release files / pyaviso-2.0.2-cp310-abi3-manylinux_2_28_aarch64.whl
| Download URL | pyaviso-2.0.2-cp310-abi3-manylinux_2_28_aarch64.whl |
|---|---|
| Size | 5.5 MB |
| Tags | CPython 3.10 Linux glibc 2.28+ ARM64 abi3 |
|
SHA-256 checksum How to use checksums |
4a1fabef07018b16f3e09f522491fb88b697d1fd9aa8f58a57e6c34034d0ce15
|
|
BLAKE2b-256 checksum How to use checksums |
dde9eb550526722c491c7ecc233c0f52e41d37d3d8ed1fa4ba43003840d8cad4
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/7.0.0 CPython/3.13.14
|
Release files / pyaviso-2.0.2-cp310-abi3-macosx_10_12_x86_64.macosx_11_0_arm64.macosx_10_12_universal2.whl
| Download URL | pyaviso-2.0.2-cp310-abi3-macosx_10_12_x86_64.macosx_11_0_arm64.macosx_10_12_universal2.whl |
|---|---|
| Size | 10.4 MB |
| Tags | CPython 3.10 abi3 macOS 10.12+ universal2 (ARM64, x86-64) macOS 10.12+ x86-64 macOS 11.0+ ARM64 |
|
SHA-256 checksum How to use checksums |
5c343269ab3ab77428e84ff2a31f0d0f301e55b9375d26930af754ac1c8c0678
|
|
BLAKE2b-256 checksum How to use checksums |
db434be8f2cff6cc750277aa466e44b3e4da5f3b584a6e3fc7c17db255778dfb
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/7.0.0 CPython/3.13.14
|