Skip to main content
Ondine Logo

Ondine

Batch-process your DataFrames with LLMs, without the boilerplate.

Agents reason row-by-row. Ondine computes columns — 100,000 rows for $0.48 (projected), crash-safe, on any of 100+ providers.

PyPI version Downloads License: MIT Python 3.10+ GitHub stars Tests

ondine.dev · Docs · PyPI

Ondine Demo

The pain

Running an LLM over 10,000 rows should be one call. In practice it becomes a script: loop over rows, parse JSON by hand, retry on 429, recompute what already ran after a crash, and add up the bill in a spreadsheet. Every team writes that script, and rewrites it again for the next dataset.

Ondine replaces that script with one function. You describe the column you want in natural language; Ondine computes it across the whole table — with schema validation, budget caps, crash-safe checkpoints, and cost tracking turned on by default.

from ondine import enrich

df = enrich(
    "reviews.csv",
    "Classify the tone of: {review}",
    output_columns=["sentiment"],
    model="gpt-4o-mini",
    budget=5.0,
)

That's the whole interface. The LLM stops being a service you call in a loop. It becomes a column function inside your DataFrame.

Install

pip install ondine

Python 3.10+. Works with any LLM through LiteLLM: OpenAI, Anthropic, Groq, Mistral, Cerebras, Ollama, MLX, vLLM, SGLang, 100+ others.

Quickstart

Two ways in. enrich() for the common case (one prompt, one table, get a table back). PipelineBuilder when you need to chain options.

Open In Colab · run the notebook below in a free Colab instance with a free Groq key — first output in under 30 seconds.

from ondine import enrich, PipelineBuilder

# 1. enrich() — the one-liner front door
df = enrich(
    "reviews.csv",
    "Classify sentiment and extract the topic from: {review}",
    output_columns=["sentiment", "topic"],
    model="gpt-4o-mini",
    budget=5.00,
)

# 2. PipelineBuilder — same engine, explicit control
result = (
    PipelineBuilder.create()
    .from_csv("reviews.csv",
              input_columns=["review"],
              output_columns=["sentiment", "topic"])
    .with_prompt("Classify sentiment and extract the key topic from: {review}")
    .with_llm(provider="openai", model="gpt-4o-mini")
    .with_batch_size(50)
    .with_max_budget(5.00)
    .build()
    .execute()
)
print(f"Processed {result.metrics.processed_rows} rows · ${result.costs.total_cost:.2f}")

One builder chain: input columns, prompt, model, budget cap. Multi-column outputs get a JSON parser; schema enforcement, checkpointing, and cost tracking are on by default.

When to use Ondine vs an agent

Ondine is not an agent framework. Agents and Ondine sit at different layers and compose rather than compete.

If your task is... Use
Turn one table into a richer table (classify, extract, score, translate N rows) Ondine
Run the same prompt over a whole column with a budget cap and crash recovery Ondine
Produce eval labels / synthetic data / bulk structured fields at scale Ondine
Reason, branch, call tools, and decide the next action per request An agent framework
Hand off the deterministic batch layer your agent's outputs feed into Ondine (the batch layer of an agentic stack)

Rule of thumb: if you know the prompt ahead of time and the data is a table, that's Ondine. If the prompt depends on what the model just decided, that's an agent — and Ondine is the substrate it pushes bulk work onto.

Use cases

Same engine every time. The use case lives in the prompt.

1. Bulk enrichment

Add a column the LLM computes from existing ones. Sentiment, category, PII redaction, language detection — any per-row transform.

from ondine import enrich

df = enrich(
    "support_tickets.csv",
    "Detect the language of: {message}",
    output_columns=["language"],
    model="gpt-4o-mini",
)

2. Structured extraction

Pull typed fields out of free text and validate them against a Pydantic schema. Malformed JSON auto-retries.

from ondine import enrich
from pydantic import BaseModel

class Invoice(BaseModel):
    vendor: str
    total: float
    currency: str
    due_date: str

df = enrich(
    "invoices.csv",
    "Extract the vendor, total, currency, and due date from: {raw_text}",
    output_columns=["vendor", "total", "currency", "due_date"],
    model="gpt-4o-mini",
    schema=Invoice,
    budget=25.00,
)

3. Agent evaluation

Generate labels, rubric scores, or pass/fail verdicts for eval harnesses — the batch workload that agent frameworks don't ship.

from ondine import PipelineBuilder

result = (
    PipelineBuilder.create()
    .from_csv("agent_traces.csv",
              input_columns=["trace", "criteria"],
              output_columns=["score", "reasoning"])
    .with_prompt("Score this agent trace against the rubric (1-10). "
                 "Return the score and a one-line justification.\n\n"
                 "Trace:\n{trace}\n\nRubric:\n{criteria}")
    .with_llm(provider="openai", model="gpt-4o-mini")
    .with_max_budget(10.00)
    .with_checkpoint_interval(100)
    .build()
    .execute()
)

4. Synthetic data

Generate test fixtures, paraphrases, or contrastive examples at scale, then checkpoint so a crash mid-run doesn't lose the work.

from ondine import enrich

df = enrich(
    "seed_prompts.csv",
    "Write a paraphrase of this prompt in a different tone: {prompt}",
    output_columns=["paraphrase"],
    model="gpt-4o-mini",
    batch_size=50,
    budget=5.00,
)

One abstraction. Any transform.

What you get for free

The plumbing that df.apply() and a hand-rolled loop don't give you — on by default, no config required.

  • Hard budget caps — pre-run cost estimate, live tracking, halts at your USD limit.
  • Checkpointing to Parquet + a durable SQLite response cache, so a crash resumes from the last batch instead of restarting.
  • Adaptive concurrency (Netflix Gradient2): shrinks on 429, grows on saturation, with Retry-After parsing across provider header shapes.
  • Multi-row batching: pack N rows per call. 200 calls instead of 10,000 at batch_size=50, with prefix caching for the shared system prompt.
  • Structured output: Pydantic schema enforcement with auto-retry on malformed JSON.
  • Cost tracking in Decimal precision — no floating-point surprises on the invoice.
  • Any backend — 100+ providers via LiteLLM, plus local inference (Ollama, MLX, vLLM, SGLang). Swap with a string.

Advanced surfaces — Knowledge Base / RAG, OCR, grounding verification (Rust + SQLite + FTS5), the latency Router, distributed Redis rate limiting, Azure Managed Identity, and observability sinks (Langfuse, OpenTelemetry, Prometheus) — are documented at docs.ondine.dev.

Benchmark: Ondine vs naive loop vs agent-per-row

Three ways to classify the sentiment of 100K product reviews with an LLM. Measured on a real API (DeepSeek deepseek-chat) over a 30-row sample per arm, then extrapolated to 100K from the measured per-row rate. Full methodology, raw numbers, and reproducibility commands in benchmarks/RESULTS.md.

Approach API calls (100K) Wall-time (projected) Cost (projected) Rows lost on crash at 60%
Ondine (batched) 6,666 3.8h $0.48 0
Naive loop (1 call/row) 100,000 21.0h $0.74 60,000
Agent-per-row (plan→classify→reflect) 300,000 3.0d $2.46 60,000
  • 15× fewer API calls than the naive loop; 45× fewer than agent-per-row.
  • Crash-safety is binary: a kill -9 at 60% progress loses 100% of the naive/agent arms' completed work (60,000 rows of API spend gone, restart from row 0). Ondine's per-batch SQLite response cache recovered all 100,000 rows on resume with zero re-invocations.
  • On the measured sample, the agent arm was also less accurate (93.3% vs 100%) — three reasoning calls per review added cost without helping a single-label task.

The projection multiplies the measured per-row rate by 100,000. Ondine's real 100K wall-time is likely lower than shown (concurrency scales with batch count); the naive/agent projections are sequential and therefore tight. These are real measurements, not invented claims — rerun them yourself with python benchmarks/repositioning.py.

Local inference

No API keys. No telemetry. Fully offline.

from ondine import QuickPipeline

# Ollama
pipeline = QuickPipeline.create(
    data="reviews.csv",
    prompt="Classify sentiment: {review}",
    output_columns=["sentiment"],
    model="ollama/qwen3.5",
)

# MLX (Apple Silicon, native; no server process)
pipeline = QuickPipeline.create(
    data="reviews.csv",
    prompt="Classify sentiment: {review}",
    output_columns=["sentiment"],
    model="mlx/mlx-community/Llama-4-Scout-Instruct-4bit",
)

Compared to alternatives

Tool What it does Why pick Ondine
Instructor f(prompt) → Pydantic (one call) Ondine applies that pattern to N rows, with budget caps, checkpoints, and adaptive concurrency
Pandas-AI df.chat("question") Different job (query vs. compute)
LangChain batch chain.batch([...]) No budget cap, no grounding, no crash-safe resume, no observability defaults
OpenAI/Anthropic Batch API Provider-specific batch No multi-provider, no grounding, 24-hour turnaround
Airflow/Prefect/Dagster Workflow orchestrators Heavy setup, no LLM-specific features. Ondine ships integrations for them.
Agent frameworks Decide-the-next-action loop Different layer. Ondine is the batch substrate agents push bulk work onto.

Documentation

  • ondine.dev — landing page + examples
  • docs.ondine.dev — full reference: enrich() / Builder API, Context Store internals, grounding, Airflow/Prefect integrations, observability
  • examples/ — runnable scripts covering every major use case
  • CHANGELOG.md — release notes

Contributing

PRs welcome. See CONTRIBUTING.md. Code style: Black + Ruff. Tests required for new features.

License

MIT. See LICENSE.

Acknowledgments

  • LiteLLM — provider routing layer
  • Instructor — the single-call pattern Ondine applies at DataFrame scale
  • The Pydantic team — validation backbone

Who's behind this

Ondine is built and maintained by ptimizeroracle. It's the batch layer of an agentic stack — designed so the LLM work that doesn't need to branch can run as a column function instead of a script.

Download files

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

Source Distribution

ondine-2.0.1.tar.gz (314.0 kB view details)

Uploaded Source

Built Distributions

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

ondine-2.0.1-cp313-cp313-win_amd64.whl (1.6 MB view details)

Uploaded CPython 3.13Windows x86-64

ondine-2.0.1-cp313-cp313-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (1.8 MB view details)

Uploaded CPython 3.13manylinux: glibc 2.17+ x86-64

ondine-2.0.1-cp313-cp313-manylinux_2_17_aarch64.manylinux2014_aarch64.whl (1.8 MB view details)

Uploaded CPython 3.13manylinux: glibc 2.17+ ARM64

ondine-2.0.1-cp313-cp313-macosx_10_12_x86_64.macosx_11_0_arm64.macosx_10_12_universal2.whl (3.1 MB view details)

Uploaded CPython 3.13macOS 10.12+ universal2 (ARM64, x86-64)macOS 10.12+ x86-64macOS 11.0+ ARM64

ondine-2.0.1-cp312-cp312-win_amd64.whl (1.6 MB view details)

Uploaded CPython 3.12Windows x86-64

ondine-2.0.1-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (1.8 MB view details)

Uploaded CPython 3.12manylinux: glibc 2.17+ x86-64

ondine-2.0.1-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl (1.8 MB view details)

Uploaded CPython 3.12manylinux: glibc 2.17+ ARM64

ondine-2.0.1-cp312-cp312-macosx_10_12_x86_64.macosx_11_0_arm64.macosx_10_12_universal2.whl (3.1 MB view details)

Uploaded CPython 3.12macOS 10.12+ universal2 (ARM64, x86-64)macOS 10.12+ x86-64macOS 11.0+ ARM64

ondine-2.0.1-cp311-cp311-win_amd64.whl (1.6 MB view details)

Uploaded CPython 3.11Windows x86-64

ondine-2.0.1-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (1.8 MB view details)

Uploaded CPython 3.11manylinux: glibc 2.17+ x86-64

ondine-2.0.1-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl (1.8 MB view details)

Uploaded CPython 3.11manylinux: glibc 2.17+ ARM64

ondine-2.0.1-cp311-cp311-macosx_10_12_x86_64.macosx_11_0_arm64.macosx_10_12_universal2.whl (3.1 MB view details)

Uploaded CPython 3.11macOS 10.12+ universal2 (ARM64, x86-64)macOS 10.12+ x86-64macOS 11.0+ ARM64

ondine-2.0.1-cp310-cp310-win_amd64.whl (1.6 MB view details)

Uploaded CPython 3.10Windows x86-64

ondine-2.0.1-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (1.8 MB view details)

Uploaded CPython 3.10manylinux: glibc 2.17+ x86-64

ondine-2.0.1-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl (1.8 MB view details)

Uploaded CPython 3.10manylinux: glibc 2.17+ ARM64

ondine-2.0.1-cp310-cp310-macosx_10_12_x86_64.macosx_11_0_arm64.macosx_10_12_universal2.whl (3.1 MB view details)

Uploaded CPython 3.10macOS 10.12+ universal2 (ARM64, x86-64)macOS 10.12+ x86-64macOS 11.0+ ARM64

File details

Details for the file ondine-2.0.1.tar.gz.

File metadata

  • Download URL: ondine-2.0.1.tar.gz
  • Upload date:
  • Size: 314.0 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/7.0.0 CPython/3.13.14

File hashes

Hashes for ondine-2.0.1.tar.gz
Algorithm Hash digest
SHA256 c9f0b7869a593912dc461fb7fc98068b45b82bbb5f3574f2ad2ed9ed9e470786
MD5 991d6dc8e03528c8f0b6fcfa742b5092
BLAKE2b-256 87ed3586f39fcf2ebf0eb5fa83e84766cfffb5abcafc39efcad1f7ea36e4d6d5

See more details on using hashes here.

File details

Details for the file ondine-2.0.1-cp313-cp313-win_amd64.whl.

File metadata

  • Download URL: ondine-2.0.1-cp313-cp313-win_amd64.whl
  • Upload date:
  • Size: 1.6 MB
  • Tags: CPython 3.13, Windows x86-64
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/7.0.0 CPython/3.13.14

File hashes

Hashes for ondine-2.0.1-cp313-cp313-win_amd64.whl
Algorithm Hash digest
SHA256 47c27387671a1f4a32b409b8901e5a7180f5937d27b7152f9bacc23f22800c20
MD5 45078310f31c763e18e2a743ba9adeb7
BLAKE2b-256 f4251d42b5f91030866edf4d5d0da25976d8394932170ad0b3b41e4e62942c2f

See more details on using hashes here.

File details

Details for the file ondine-2.0.1-cp313-cp313-manylinux_2_17_x86_64.manylinux2014_x86_64.whl.

File metadata

File hashes

Hashes for ondine-2.0.1-cp313-cp313-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 1c80742ec196293207bbd2a14b9b9350523d5c8c30d0cfe6613a0c2f00aae27b
MD5 46e13a43da45b16531d05c0ca871a0aa
BLAKE2b-256 16acd223b42b2a2bddb6fcd8068e1ce6f2ea2f5d84c9113f6a727e05f81a1a71

See more details on using hashes here.

File details

Details for the file ondine-2.0.1-cp313-cp313-manylinux_2_17_aarch64.manylinux2014_aarch64.whl.

File metadata

File hashes

Hashes for ondine-2.0.1-cp313-cp313-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
Algorithm Hash digest
SHA256 40113ddce70891ad21ed652f5257e6aa0e52c2c0ee8f093dafa00276478e96d8
MD5 177d421e013487345fc8d8f223af7173
BLAKE2b-256 47df9ceba8f5c0e5cfd03689a733325eba56be8fed54220ec9dc4ac513dd5ba2

See more details on using hashes here.

File details

Details for the file ondine-2.0.1-cp313-cp313-macosx_10_12_x86_64.macosx_11_0_arm64.macosx_10_12_universal2.whl.

File metadata

File hashes

Hashes for ondine-2.0.1-cp313-cp313-macosx_10_12_x86_64.macosx_11_0_arm64.macosx_10_12_universal2.whl
Algorithm Hash digest
SHA256 16606b02971e0100dfea03de6cb1084fa323715740615d8fc7bb4c9e51963daf
MD5 8924a0fc7af4f2c9cdb96d5faf4152db
BLAKE2b-256 3d9ce0ef7bdc08e9acfea072623dc4cf9eabcd39ce6fa7a0c94292beca00b535

See more details on using hashes here.

File details

Details for the file ondine-2.0.1-cp312-cp312-win_amd64.whl.

File metadata

  • Download URL: ondine-2.0.1-cp312-cp312-win_amd64.whl
  • Upload date:
  • Size: 1.6 MB
  • Tags: CPython 3.12, Windows x86-64
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/7.0.0 CPython/3.13.14

File hashes

Hashes for ondine-2.0.1-cp312-cp312-win_amd64.whl
Algorithm Hash digest
SHA256 224b2f469640a91f5b23b1a7db65443dd1cd3b096e594b020f1674f722183e0e
MD5 67b396b41ce2b50076b348316f4475c9
BLAKE2b-256 142d194ce0eec3d5dc15318ad211fe2f01c5c7bdf0e9ffafa8a1e9c6c8530d12

See more details on using hashes here.

File details

Details for the file ondine-2.0.1-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl.

File metadata

File hashes

Hashes for ondine-2.0.1-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 90e629117d257525aaf41e959975fa80b6af2a0eb05c2ccbe692afac92f947df
MD5 6df692bda43c5f62ff1fbdad0a2bd7ee
BLAKE2b-256 221cb44e6fc7ccb2e9529a61d7d3abc42e5c31a735a7055cf9b2d37be54f3042

See more details on using hashes here.

File details

Details for the file ondine-2.0.1-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl.

File metadata

File hashes

Hashes for ondine-2.0.1-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
Algorithm Hash digest
SHA256 da08eee2802adab146e51b9741b5e5b1902a901c67dbba33b7e53d6ee5dfa709
MD5 4584aa3c0ace8cb4da5d14b50911bff9
BLAKE2b-256 db2438ea4882b1fc076cdee25573f827ec626e237412d57c4b97ab3f75020287

See more details on using hashes here.

File details

Details for the file ondine-2.0.1-cp312-cp312-macosx_10_12_x86_64.macosx_11_0_arm64.macosx_10_12_universal2.whl.

File metadata

File hashes

Hashes for ondine-2.0.1-cp312-cp312-macosx_10_12_x86_64.macosx_11_0_arm64.macosx_10_12_universal2.whl
Algorithm Hash digest
SHA256 82db732d25ef73967ecfa20fb1e5a27b23f4ea1e040cf7a951d2bc6a6f99dfc5
MD5 74fa052f959dcf5bc9db0f620fa7d8e2
BLAKE2b-256 60a4b42bce9468904ece434680137b5f59222f5375746f8714da049db1e0bb3d

See more details on using hashes here.

File details

Details for the file ondine-2.0.1-cp311-cp311-win_amd64.whl.

File metadata

  • Download URL: ondine-2.0.1-cp311-cp311-win_amd64.whl
  • Upload date:
  • Size: 1.6 MB
  • Tags: CPython 3.11, Windows x86-64
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/7.0.0 CPython/3.13.14

File hashes

Hashes for ondine-2.0.1-cp311-cp311-win_amd64.whl
Algorithm Hash digest
SHA256 a8ae281b5f3c59dd73cf016883240e613fce59ba720fd5555c69a47423d91d7c
MD5 7a39b89415b53d061bc37243c5d13476
BLAKE2b-256 3679c6348dfc126f49967d3ff9d69c3e79f9febb56811fdbda99eca7c6a0b0a9

See more details on using hashes here.

File details

Details for the file ondine-2.0.1-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl.

File metadata

File hashes

Hashes for ondine-2.0.1-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 cbd3cb651c788c552bee0ff904250d7fa478d33a1f2c9b859668213811b18083
MD5 1374a2e867871cb19e08d6970d980874
BLAKE2b-256 33a0104366e2bb17888f91044f2a3720d130f98f5ecdec9dfed6e38eec57c3ff

See more details on using hashes here.

File details

Details for the file ondine-2.0.1-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl.

File metadata

File hashes

Hashes for ondine-2.0.1-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
Algorithm Hash digest
SHA256 6f14e3b076e9ef496633b2ef1a0970c77dcf865465037b5acc9522d050ce6107
MD5 b3730f9783c492e0730eeb1033009959
BLAKE2b-256 8426624aeab6e1fe26fa487c8431a07021dd73190d952ec6a3043407c03d04a4

See more details on using hashes here.

File details

Details for the file ondine-2.0.1-cp311-cp311-macosx_10_12_x86_64.macosx_11_0_arm64.macosx_10_12_universal2.whl.

File metadata

File hashes

Hashes for ondine-2.0.1-cp311-cp311-macosx_10_12_x86_64.macosx_11_0_arm64.macosx_10_12_universal2.whl
Algorithm Hash digest
SHA256 dc47b0471e94ed674e9bb10308bee2a92de51d73aee778cec1018f25f8ba8c75
MD5 d43550679f04d2a434847ecda9667225
BLAKE2b-256 ea36929059136a938b034e30f7d95683ce1a10ee8a995a0cf21c7850815262ff

See more details on using hashes here.

File details

Details for the file ondine-2.0.1-cp310-cp310-win_amd64.whl.

File metadata

  • Download URL: ondine-2.0.1-cp310-cp310-win_amd64.whl
  • Upload date:
  • Size: 1.6 MB
  • Tags: CPython 3.10, Windows x86-64
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/7.0.0 CPython/3.13.14

File hashes

Hashes for ondine-2.0.1-cp310-cp310-win_amd64.whl
Algorithm Hash digest
SHA256 53d94716f56c18066d65685f8555c8e37bc68c6af5760d3e5d9ec19559b4bd3a
MD5 143f82f5cd646056bb317e02d8c39aa2
BLAKE2b-256 480bb77879cd3646cd838d288f9dd7fb794192b5f4e6d84d42eaa92fb3cc810d

See more details on using hashes here.

File details

Details for the file ondine-2.0.1-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl.

File metadata

File hashes

Hashes for ondine-2.0.1-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 cfdb758d7f2eb2bf09959f1ddbe0110ee29e6bfa7f755aee6c59f61251f4574c
MD5 55bda14fb332e9f66909c7b8dd8f821e
BLAKE2b-256 2176ee4718eccaf8ca3fa1549e36aa1bd3ea4ec6fee3f143abe45f6d194897f2

See more details on using hashes here.

File details

Details for the file ondine-2.0.1-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl.

File metadata

File hashes

Hashes for ondine-2.0.1-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
Algorithm Hash digest
SHA256 97af781eca891a378b3f20fdbb1f9b81fc45422b9589f74e6f1e4c1bf55be7fe
MD5 37c0b6bdbeeadf2d190938e550f453df
BLAKE2b-256 cee6239f9b53866ef15570d1bcb5ebb593c778c35ea9ffbe43823ff0a7a83bf1

See more details on using hashes here.

File details

Details for the file ondine-2.0.1-cp310-cp310-macosx_10_12_x86_64.macosx_11_0_arm64.macosx_10_12_universal2.whl.

File metadata

File hashes

Hashes for ondine-2.0.1-cp310-cp310-macosx_10_12_x86_64.macosx_11_0_arm64.macosx_10_12_universal2.whl
Algorithm Hash digest
SHA256 73516ab43ca639c530fdaa1990d85d3a6cc491905cd9530e10855a59a890311f
MD5 a8985c3cb4f0decea8865cf0307972a2
BLAKE2b-256 13d3fd2d1a997829698b2cec18cda26e3b0514aa694e57121d81e6634f90e20f

See more details on using hashes here.

Release history Release notifications | RSS feed

This release

2.0.1 This release

17 files

2.0.0

17 files

1.11.10

17 files

1.11.9

17 files

1.11.8

17 files

1.11.7

17 files

1.11.6

17 files

1.11.5

17 files

1.11.4

17 files

1.11.3

17 files

1.11.2

17 files

1.11.1

17 files

1.11.0

17 files

1.10.1

17 files

1.10.0

17 files

1.9.1

2 files

1.9.0

2 files

1.7.0

2 files

1.6.2

2 files

1.6.1

2 files

1.5.3

2 files

1.5.2

2 files

1.5.0

2 files

1.4.3

2 files

1.4.2

2 files

1.4.1

2 files

1.3.4

2 files

1.3.3

2 files

1.3.1

2 files

1.2.1

2 files

1.2.0

2 files

1.1.0

2 files

1.0.4

2 files

1.0.3

2 files

1.0.2

2 files

1.0.1

2 files

1.0.0

2 files

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page