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.5.tar.gz (303.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-1.11.5-cp313-cp313-win_amd64.whl (1.6 MB view details)

Uploaded CPython 3.13Windows x86-64

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

Uploaded CPython 3.12Windows x86-64

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

Uploaded CPython 3.11Windows x86-64

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

Uploaded CPython 3.10Windows x86-64

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

File metadata

  • Download URL: ondine-1.11.5.tar.gz
  • Upload date:
  • Size: 303.0 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.5.tar.gz
Algorithm Hash digest
SHA256 0fc83a33f304f0c35fcad9672b00ebe04355a02406335540ed4d35680b10491a
MD5 f9df885f6ec49c20f378312ba4ba6df1
BLAKE2b-256 d44bbee340c4316bf71bf135bb7a6daae74538251c1095a59e4917cf25bc44a8

See more details on using hashes here.

File details

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

File metadata

  • Download URL: ondine-1.11.5-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.5-cp313-cp313-win_amd64.whl
Algorithm Hash digest
SHA256 9c7ba5f8f98f0556ef99324902a5c4038508c2fa4cb4b5510cecefb1b297da7d
MD5 d085fd665dd5076b6a5da445f05489f8
BLAKE2b-256 90f030e78713c14e27f5ba68ebda1a8ee8e1aba9074b51613236ee7f7f18bf49

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for ondine-1.11.5-cp313-cp313-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 7bbfc2065ec3486034bfa07f71fc86222eed90bf9d1318316cd7dfe7b837263f
MD5 7822c67c6dccc6dc540cdcaf916e1a12
BLAKE2b-256 4f2d1e87ba69a0f6bb9298293bc944686f344721dbdcfabc7341d9f7818eaf4b

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for ondine-1.11.5-cp313-cp313-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
Algorithm Hash digest
SHA256 ca2c128fefddad32577021ea5f2c78007b31ce424cc475b56e82e02d6c4d42be
MD5 67bfd29c5ba6468631402c09da949e22
BLAKE2b-256 1f46c91fab33867fcbef8e8163283069c4d9f63f355c93934f3f4d809222f8d2

See more details on using hashes here.

File details

Details for the file ondine-1.11.5-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.5-cp313-cp313-macosx_10_12_x86_64.macosx_11_0_arm64.macosx_10_12_universal2.whl
Algorithm Hash digest
SHA256 85d8a717c0d3d75a7a1ed4243ecd79d839407ae96d4752e0ddbb7c762bf4fb19
MD5 bc24165c1386a464f3c0543ddb1ff3d0
BLAKE2b-256 547be2687f7eed5a48932289588f28524873f9619fab6405c40a13e99a976ee5

See more details on using hashes here.

File details

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

File metadata

  • Download URL: ondine-1.11.5-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.5-cp312-cp312-win_amd64.whl
Algorithm Hash digest
SHA256 3411f3141483426594c9519a44a440b91bd49906dac611c6f5df0c91cf9cbdec
MD5 e81ddc59999fd493e9bc2bd14ad8b2bd
BLAKE2b-256 3ccc509388b7048a5ceeedae013dfa20ec97812fd11666020dd1ac92f7e4b77e

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for ondine-1.11.5-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 c02535eb2bf6368c6e6146d0fe23b06c143cc0efff7bf412c4e78e6ce8c7f933
MD5 51ccf1a90464438a665ce5826180eba3
BLAKE2b-256 aa02105d22b17b9e8476bf0aa14a3b8c1742b0985100065c321d169bff1eb0ad

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for ondine-1.11.5-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
Algorithm Hash digest
SHA256 fd3454ebafff0ac78b3571f91935defa56e5a3dd1e4e5bffc55ca9d0a459cf91
MD5 35e2d14356add751caca69c6237c6266
BLAKE2b-256 4a444992015bff83ba974554349eb8990294b59bb74a62706a04631ee03563ad

See more details on using hashes here.

File details

Details for the file ondine-1.11.5-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.5-cp312-cp312-macosx_10_12_x86_64.macosx_11_0_arm64.macosx_10_12_universal2.whl
Algorithm Hash digest
SHA256 d9475fe026e995ce7c984e40438991f32f7caf1777c3322d4ed6ad04cddc52a0
MD5 f0282850197f2732ae2d547a5a6ec780
BLAKE2b-256 0e6ca670cddf474bb96ebbc2dfddb643e818e6353aec14a2f8f40b5ba953bbcb

See more details on using hashes here.

File details

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

File metadata

  • Download URL: ondine-1.11.5-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.5-cp311-cp311-win_amd64.whl
Algorithm Hash digest
SHA256 80ed04d3c4a3a2a6b50c1442ce45e8ccc0e8094152b0318aef2257da6c975472
MD5 8919e7945a7806814bcc16aae8b83232
BLAKE2b-256 1fc130ef89fefa907679c55c5907136aa976a3ced47b856d5acde97cfd98abe9

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for ondine-1.11.5-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 77fabcf21ddb62a22c7b39b619bc8bf246fea47930ef1db8e74d960cad2a5b0f
MD5 3c5088f022a5c6b90d95bf6f54d9d976
BLAKE2b-256 4bcb00ddb8429a049f7bab74d6e7b68b2eaf683f7a89b25011480181aada546b

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for ondine-1.11.5-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
Algorithm Hash digest
SHA256 b8a7e182c3af99bf193986e37c9cf74b45823cef98be1d369f2f00eeed20768f
MD5 a8b9d16a4b21324fb76ae1e8f3b53ed8
BLAKE2b-256 1b72d51517834095adc5d05fefa5997d9a2d05e5048fdc9a5028d32f549cd642

See more details on using hashes here.

File details

Details for the file ondine-1.11.5-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.5-cp311-cp311-macosx_10_12_x86_64.macosx_11_0_arm64.macosx_10_12_universal2.whl
Algorithm Hash digest
SHA256 37216582d09c2b67f908ecd45c139940c5d2dd30445aed2e16d158273e4ac86c
MD5 b03016449247ca1e0766644c78ec1cb8
BLAKE2b-256 cb16a7bf59382eecb0fd6f17aad0ce2f4af9f1c7ccc8b01a12ad00a065d9f1f7

See more details on using hashes here.

File details

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

File metadata

  • Download URL: ondine-1.11.5-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.5-cp310-cp310-win_amd64.whl
Algorithm Hash digest
SHA256 25bc3905c625b0007127c18bcd17618fecadc646ff5909bce199c2b98cef9f8c
MD5 30507498894254fe17a52e45c7c17733
BLAKE2b-256 ed092de33e39ac0451f180ecc26d94d6e15ce81475af01025da281aff069e0cf

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for ondine-1.11.5-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 bc2828f63659b876a0df5cb333b6f37c400ba4b59e854a759d01da6159d4745d
MD5 8d4b566692672948f906cc4271dbf789
BLAKE2b-256 c0557bf0695664a2a291acd99700f2708ed6687a23c67dfb818ffe74dbbb3dff

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for ondine-1.11.5-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
Algorithm Hash digest
SHA256 4a66d0b8c9aad406b0c01786749907ae2f13d2c59fba4b97fd98dd81bb8fb7f3
MD5 694e97d22049a7c227eb9867a078d0ce
BLAKE2b-256 18fe92b4a7d0347ef878010971792fbd6737b7feff7b4010024063c5845b425c

See more details on using hashes here.

File details

Details for the file ondine-1.11.5-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.5-cp310-cp310-macosx_10_12_x86_64.macosx_11_0_arm64.macosx_10_12_universal2.whl
Algorithm Hash digest
SHA256 3915a4dd89fbfad8ccf11310c7b20b33d4e7d0fcd40993ad16f0bfeaf48222cd
MD5 97fa00864ffa616e39e5a8982a50317d
BLAKE2b-256 009be40fc1fbf0456f4ed73cdbec9c0a0c925c6de24bd7d97a3d2a319fd42dcf

See more details on using hashes here.

Release history Release notifications | RSS feed

2.0.1

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

This release

1.11.5 This release

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