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-1.11.10.tar.gz (309.4 kB view details)

Uploaded Source

Built Distributions

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

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

Uploaded CPython 3.13Windows x86-64

ondine-1.11.10-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-1.11.10-cp313-cp313-manylinux_2_17_aarch64.manylinux2014_aarch64.whl (1.8 MB view details)

Uploaded CPython 3.13manylinux: glibc 2.17+ ARM64

ondine-1.11.10-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-1.11.10-cp312-cp312-win_amd64.whl (1.6 MB view details)

Uploaded CPython 3.12Windows x86-64

ondine-1.11.10-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-1.11.10-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl (1.8 MB view details)

Uploaded CPython 3.12manylinux: glibc 2.17+ ARM64

ondine-1.11.10-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-1.11.10-cp311-cp311-win_amd64.whl (1.6 MB view details)

Uploaded CPython 3.11Windows x86-64

ondine-1.11.10-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-1.11.10-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl (1.8 MB view details)

Uploaded CPython 3.11manylinux: glibc 2.17+ ARM64

ondine-1.11.10-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-1.11.10-cp310-cp310-win_amd64.whl (1.6 MB view details)

Uploaded CPython 3.10Windows x86-64

ondine-1.11.10-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-1.11.10-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl (1.8 MB view details)

Uploaded CPython 3.10manylinux: glibc 2.17+ ARM64

ondine-1.11.10-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-1.11.10.tar.gz.

File metadata

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

File hashes

Hashes for ondine-1.11.10.tar.gz
Algorithm Hash digest
SHA256 b329d541e2885dac38f4d70c22c499be8f1251f5706781f780e678956f6c02ed
MD5 e34da3c4d5ae7c060eb8d3b55b7123a3
BLAKE2b-256 a41c02b1cfd05351922c872bea2b96013d7b0a1a2c235cac300728493c6c2d3c

See more details on using hashes here.

File details

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

File metadata

  • Download URL: ondine-1.11.10-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-1.11.10-cp313-cp313-win_amd64.whl
Algorithm Hash digest
SHA256 e5f70f715521a784a9597f7d96302bc2b428d7a6eefabbca9709c84ea44d3a84
MD5 c02dc578ea4322092fa6b5ac65075574
BLAKE2b-256 5261ba40d5c9442ebdcc48f874c772fca154236e9822ea0481ed42febd5c0c71

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for ondine-1.11.10-cp313-cp313-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 1a1d668251ccbc2885193527f490a0754a0c4f7aa8232d3aeef81e6b03cad52f
MD5 553dc8b7ce2a59a959be09f0eeedc7be
BLAKE2b-256 4f234a8b0fc8af794dc0d07e128e60fc2a1586c270fb5aaa95d3bc24801ca7c6

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for ondine-1.11.10-cp313-cp313-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
Algorithm Hash digest
SHA256 74855f1297c5ddca87c1cbcd8cf08ca17abc1ef8caa6be339b4f2dcc0b4504ea
MD5 28975807f5fbfa86f892a549335bd327
BLAKE2b-256 8dad67cff9a1d99996565a361b7812eec76fcca1ef2089dac41bfa4abf2f23ba

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for ondine-1.11.10-cp313-cp313-macosx_10_12_x86_64.macosx_11_0_arm64.macosx_10_12_universal2.whl
Algorithm Hash digest
SHA256 0c8a6510d458adf69546a4eb80091f666ee17f9b5dca5a32ef06d248b1acfffb
MD5 549668805567849b45339c7d0b09d012
BLAKE2b-256 7fcb97ad09e187a14a9a6f97a3d42001fa7f9a66da5e880d0c8881616c479a06

See more details on using hashes here.

File details

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

File metadata

  • Download URL: ondine-1.11.10-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-1.11.10-cp312-cp312-win_amd64.whl
Algorithm Hash digest
SHA256 d2352662e44b4fc84fe314d06d9c4368a3a2f38625501fcd1b477eb4a781d8ad
MD5 af6442526e2816e0ef1337c733d4591c
BLAKE2b-256 9fecb0a5dad6e000c82b41d54b7a1f76530fab51ddb7cad74617895f6fa70679

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for ondine-1.11.10-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 59c5c0bc3efe39247977ee7b9aef80cc9cb4999ae2b2e01a7b9fe5ec99480c19
MD5 a307217559db69cdf063171bd21f0f8f
BLAKE2b-256 edaad8f87081b00fb6a247b3eb150ebdde774f1deb962ba79dfb7f75e58eec43

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for ondine-1.11.10-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
Algorithm Hash digest
SHA256 f1a1c95ba847da341b82c514462c671ab1e1949c7f85315171282740604438e9
MD5 ce119273e529af113ed8bf7c9413be29
BLAKE2b-256 31fda023012bb30eba9d5456b62251f1ea1ebcccf953e5200e945263148f6efb

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for ondine-1.11.10-cp312-cp312-macosx_10_12_x86_64.macosx_11_0_arm64.macosx_10_12_universal2.whl
Algorithm Hash digest
SHA256 9395668ce69bed2141c50145be9004a8810eff0d8041b099d00679dc3294d4d2
MD5 c8f40777cf6027c37ee1f701c62864bc
BLAKE2b-256 6493f2c0a7c8893c208a56b3962c61e6efc6ab2585212b37d98dee857c114094

See more details on using hashes here.

File details

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

File metadata

  • Download URL: ondine-1.11.10-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-1.11.10-cp311-cp311-win_amd64.whl
Algorithm Hash digest
SHA256 1824b1671bff5179e1cef27cdf0bdf7b1d5f86efa19b0aff347199c557be100b
MD5 304c056cf3f9c58cca9cd484e851b55a
BLAKE2b-256 d61fc47f1466db917785e48771c63ddf903627b73178e8a8fff1a88812a06fc1

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for ondine-1.11.10-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 f272cb778555c0cf19c4d20d8a7d9a3d211f713565041f17d830d1909e73af25
MD5 9cc1b450c7b74c93ed520e0850e1ff1c
BLAKE2b-256 027bc3bf4546c5778b5ebb9dc2d3ed0119c1681a83f18a3905ef2e1d5360cc5a

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for ondine-1.11.10-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
Algorithm Hash digest
SHA256 1f719c047bd6ba07cda648d0cbff22359641e0053dc020e61b6b36f69c8d0958
MD5 9540a86428711c833f64384c98026dac
BLAKE2b-256 adf3d63c95d90404957f042b624582c6ce21ba0478b4c81a34878167799dc4da

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for ondine-1.11.10-cp311-cp311-macosx_10_12_x86_64.macosx_11_0_arm64.macosx_10_12_universal2.whl
Algorithm Hash digest
SHA256 9e523278523779d05d9b1794bc373cd28a16a0ba5b0a078f4d895128717a4518
MD5 e9f28075241e241e1c1127fb6a7c4474
BLAKE2b-256 3bb392d2cc5ccf566d8039f89c21dd7bca43fb1e53e47f6284c34312bcbbd815

See more details on using hashes here.

File details

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

File metadata

  • Download URL: ondine-1.11.10-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-1.11.10-cp310-cp310-win_amd64.whl
Algorithm Hash digest
SHA256 b29c0fc9e10534e41166a69ee250e6854f0d6bcc78562bb7a8430824ec225cb8
MD5 a9e0597bc1149d8374247341beab94fe
BLAKE2b-256 b7331bca729a6fb86ade6d75bf84c72257a7faa84e776695f5208f756b12f9e9

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for ondine-1.11.10-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 bbefcea9de35770e6f210342f8ba52ab4a4e59d019571535d0dda326696249fe
MD5 f236266c1b2ee294b81a78d0a42f3ce2
BLAKE2b-256 f6e6c3502b235b3c71620f1d3e10de630efcd1a323ea56ec4b0cfcccef4f2f1b

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for ondine-1.11.10-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
Algorithm Hash digest
SHA256 f562ca9caa69f05af9ec224961636038f61f3dd66b99db241c204bafd4b352af
MD5 8cb35a8f9a244821e5c47eb2e83693b7
BLAKE2b-256 5705b31d8bcdb4bae2ccdcbc874bc97dc813d51dd2eed72b44abd0289ee63a6c

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for ondine-1.11.10-cp310-cp310-macosx_10_12_x86_64.macosx_11_0_arm64.macosx_10_12_universal2.whl
Algorithm Hash digest
SHA256 d7a6bb07ef4afc8e9711056e1c40d8589168baeeb6e347ea962a15e0ea9b7a91
MD5 7622bdb2ea4934470d88f106f1985c9d
BLAKE2b-256 252aafc74b3ac6247660c27ba5c4dc82b709b876f3021b35d48c6ebd62c28b57

See more details on using hashes here.

Release history Release notifications | RSS feed

2.0.1

17 files

2.0.0

17 files

This release

1.11.10 This release

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