Official Python client for fetching finwave datasets over the dataset-API handshake.
Project description
wavefront
The official Python client for Finwave datasets.
Finwave serves frozen, versioned wildlife photo-identification and detector
datasets behind a small handshake API. wavefront turns that into one call.
pip install finwave-wavefront
Quick start
import wavefront
# the API key is read from $FW_API_TOKEN (or passed as api_key=...)
ds = wavefront.fetch("a7673931-9810-4c52-9654-1c9b1fafb63d", format="yolo")
print(ds.path) # extracted, ready to train on
print(ds.classes) # ['fluke']
print(ds.num_images) # 497
print(ds.fingerprint) # content hash — record it next to any model you train
ds is path-like, so it drops straight into a trainer:
from ultralytics import YOLO
YOLO("yolo11n.pt").train(data=f"{ds.path}/data.yaml")
Pre-flight without downloading
m = wavefront.manifest("a7673931-9810-4c52-9654-1c9b1fafb63d")
print(m.name, m.sample_count, m.available_formats) # Flukes v1 497 ['Yolo']
A reusable client
from wavefront import Client
client = Client(api_key="...", base_url="https://finwave.io")
ds = client.fetch(dataset_id, format="yolo", dest="./data/flukes")
Command line
export FW_API_TOKEN=...
wavefront manifest a7673931-9810-4c52-9654-1c9b1fafb63d
wavefront fetch a7673931-9810-4c52-9654-1c9b1fafb63d --format yolo --dest ./data/flukes
How it works
GET /manifest— cheap metadata + which export formats are ready.GET ?format=…— a handshake that mints a short-lived signed download URL.- Download that URL → a zip → extract → a
Dataset.
Downloads are cached by content fingerprint, so re-fetching a frozen version is a no-op. The key needs the dataset-download scope.
Authentication
Provide the key explicitly (fetch(..., api_key=...)) or set FW_API_TOKEN.
For compatibility, WAVEFRONT_API_KEY, FINWAVE_DATASET_API_KEY and
DATASET_API_KEY are also accepted (in that order).
Errors
All errors subclass wavefront.WavefrontError:
| Exception | When |
|---|---|
AuthError |
key missing / rejected (401/403) |
DatasetNotFoundError |
no such version, or not visible to the key (404) |
FormatNotAvailableError |
the version exists but that export hasn't been generated yet (.available lists what is) |
APIError |
any other non-success response |
License
MIT © Alexander Barnhill / Operational Ecology. A partnership artifact between finwave and Operational Ecology.
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file finwave_wavefront-0.1.0.tar.gz.
File metadata
- Download URL: finwave_wavefront-0.1.0.tar.gz
- Upload date:
- Size: 24.0 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: uv/0.11.7 {"installer":{"name":"uv","version":"0.11.7","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"Linux Mint","version":"22.3","id":"zena","libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":null}
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
40362eef0cc57c261f9a107134ccb849a4d33769d1d7fc3cd1e1648a5528b9e3
|
|
| MD5 |
62a3a9b1df430bb11ed34c27a8e58137
|
|
| BLAKE2b-256 |
c4f5203c4d61f837668e3738f5370cdd7c62e239e5c0bcb0ba4a68bccb4edfdb
|
File details
Details for the file finwave_wavefront-0.1.0-py3-none-any.whl.
File metadata
- Download URL: finwave_wavefront-0.1.0-py3-none-any.whl
- Upload date:
- Size: 14.6 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: uv/0.11.7 {"installer":{"name":"uv","version":"0.11.7","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"Linux Mint","version":"22.3","id":"zena","libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":null}
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
e95a9c0960ddb8e5fdb46ed2a6c9c4b1f98b21d45ea56853108682b074fe9535
|
|
| MD5 |
8db24e1608ca0a833134d214104545b7
|
|
| BLAKE2b-256 |
202408239d34f7f5bd042d2a1e6276a6172790759c5f814fc5049575d069bc28
|