Skip to main content

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

  1. GET /manifest — cheap metadata + which export formats are ready.
  2. GET ?format=… — a handshake that mints a short-lived signed download URL.
  3. 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


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

finwave_wavefront-0.2.0.tar.gz (26.7 kB view details)

Uploaded Source

Built Distribution

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

finwave_wavefront-0.2.0-py3-none-any.whl (16.0 kB view details)

Uploaded Python 3

File details

Details for the file finwave_wavefront-0.2.0.tar.gz.

File metadata

  • Download URL: finwave_wavefront-0.2.0.tar.gz
  • Upload date:
  • Size: 26.7 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.12

File hashes

Hashes for finwave_wavefront-0.2.0.tar.gz
Algorithm Hash digest
SHA256 9ef22114712d4595d73ef5dea9728c17900ce55f5758a24d42a0bbbfd378f367
MD5 45b3816754a2f07c1500f66251dc1cb3
BLAKE2b-256 6ccb9d943d012a84e8480b14ebf59144b4ee1e1ac714980162db38770bdd5798

See more details on using hashes here.

Provenance

The following attestation bundles were made for finwave_wavefront-0.2.0.tar.gz:

Publisher: release.yml on Operational-Ecology/Wavefront

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file finwave_wavefront-0.2.0-py3-none-any.whl.

File metadata

File hashes

Hashes for finwave_wavefront-0.2.0-py3-none-any.whl
Algorithm Hash digest
SHA256 75170456452ed7873c413866bb03ea3b85d8e46d27e692221ab17cb46417bf5c
MD5 c37fb10e94082dfed746ed8bc037a5a9
BLAKE2b-256 93986b0ca384aea38e18b9711574a594a296b847cb594ac2be3e587a3215b92e

See more details on using hashes here.

Provenance

The following attestation bundles were made for finwave_wavefront-0.2.0-py3-none-any.whl:

Publisher: release.yml on Operational-Ecology/Wavefront

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

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