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.1.1.tar.gz (24.6 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.1.1-py3-none-any.whl (14.7 kB view details)

Uploaded Python 3

File details

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

File metadata

  • Download URL: finwave_wavefront-0.1.1.tar.gz
  • Upload date:
  • Size: 24.6 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.1.1.tar.gz
Algorithm Hash digest
SHA256 27a58c3a9b7c861cbb44b490406ff83f9f241e817223589de66fabc7732deae6
MD5 a0874546b4954ace85b0a460b8a2d3a1
BLAKE2b-256 da53a3605b29a99d395e583edfc57c3bee19a95cdc53b1311ea5fdbb95ec13dd

See more details on using hashes here.

Provenance

The following attestation bundles were made for finwave_wavefront-0.1.1.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.1.1-py3-none-any.whl.

File metadata

File hashes

Hashes for finwave_wavefront-0.1.1-py3-none-any.whl
Algorithm Hash digest
SHA256 86789c51a912c7c55d5ead5dcfa1155beee156d4d8d5add4a4649d507c0d04e1
MD5 64ffd2f69d02491e73ea141e4a5012ea
BLAKE2b-256 4dea952e23c04a27b00ff0ef2967aa5afdeba2b2c4aa43d94501b5f7a129689e

See more details on using hashes here.

Provenance

The following attestation bundles were made for finwave_wavefront-0.1.1-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