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.0.tar.gz (318.3 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.0-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.0-cp310-abi3-manylinux_2_28_aarch64.whl (4.9 MB view details)

Uploaded CPython 3.10+manylinux: glibc 2.28+ ARM64

pyaviso-2.0.0-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.0.tar.gz.

File metadata

  • Download URL: pyaviso-2.0.0.tar.gz
  • Upload date:
  • Size: 318.3 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.0.tar.gz
Algorithm Hash digest
SHA256 de0e6e3a4b8d0d5ab37f656167b2a1dffe0b4a05c1eaf2df40884ed7debba3d4
MD5 71063964a84c9e79a9ecd20336f91689
BLAKE2b-256 09ba9d10613b4f137f9dde44760dd6d596e9f5df9f28a75f6673351a6737b028

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for pyaviso-2.0.0-cp310-abi3-manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 45fa8bc47a345a275188765556da0aa2c437bd012f06f6b06e62821f51bed85a
MD5 c742076572a40f4b8dd8bc2c944fa692
BLAKE2b-256 0a926d11e9d2e5702099db8163f398405503a5c408a9aec1e7c2263ae8f4bb9e

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for pyaviso-2.0.0-cp310-abi3-manylinux_2_28_aarch64.whl
Algorithm Hash digest
SHA256 e774f31796e02a2e0c57c54fbb96b3c211487b364ee0505456e9eac18553934b
MD5 5475acc1652b3d3dbea3af75aa230c36
BLAKE2b-256 dcd563a780ae188ed3a41f260d64e6b146366f122e3bff18e2271ab8bf971589

See more details on using hashes here.

File details

Details for the file pyaviso-2.0.0-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.0-cp310-abi3-macosx_10_12_x86_64.macosx_11_0_arm64.macosx_10_12_universal2.whl
Algorithm Hash digest
SHA256 ede8d3930b81dc73235347f361380f997a58b51efc4d97cc32c404418a8d3ae6
MD5 327c3fe397bd3aef5984a4a267319cee
BLAKE2b-256 cbcefe9672ec72abc01379535d5d26b5199ea59dbd232cec6861430d5918844f

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