Skip to main content

Cron-friendly batch LLM processing for Polars.

Project description

llm-batch-py

llm-batch-py is a cron-friendly batch LLM runner for Polars.

Install with pip install llm-batch-py.

It lets you:

  • define structured-output or embedding jobs against a Polars DataFrame or LazyFrame
  • build prompts with Rust-backed row templates, with Python UDFs available as fallback
  • auto-poll prior batches, auto-submit only missing rows, and materialize a fresh Polars result table
  • process large inputs incrementally with Runner.run_stream(...) from a DataFrame, LazyFrame, or host-supplied Iterable[DataFrame]
  • persist manifests and raw artifacts in local or S3-backed parquet storage

Reruns are grouped implicitly by job.name inside one shared result_cache.root_uri. If you run the same job again against the same cache store, llm-batch-py reuses completed results, skips duplicate submission for still-active prior work, and only submits rows whose effective request identity changed or whose retries are still allowed.

llm-batch-py is cron-friendly, but it does not schedule itself. Your scheduler invokes Runner.run(), and each rerun acquires a short-lived job lock, polls prior batches, reuses completed results, keeps matching in-flight rows pending, and submits only new or changed rows. Changing BatchConfig.batch_size affects only future submissions; it does not invalidate result-cache hits for completed rows.

Provider batch submission is sequential. When one run needs multiple small provider batches, llm-batch-py submits them one by one rather than firing all submits concurrently.

If a small batch submit fails transiently before the provider accepts it, llm-batch-py does a short inline retry loop in the same run(). If the submit still fails, the batch stays recoverable in the result cache and later reruns retry that same small batch before submitting any later chunks. BatchConfig.max_retries applies per retryable small-batch submit and per retryable row-level provider failure.

LazyFrame support does not make Runner.run() fully streaming by itself. Runner.run() still materializes the full job input before validation and request building. Use Runner.run_stream(...) when you want chunked execution over a DataFrame, LazyFrame, or host-supplied Iterable[DataFrame].

Quickstart

import polars as pl
from pydantic import BaseModel

from llm_batch_py import (
    BatchConfig,
    LockConfig,
    OpenAIConfig,
    PromptCacheConfig,
    ResultCacheStoreConfig,
    Runner,
    StructuredOutputJob,
    structured_template,
)


class CompanyLabel(BaseModel):
    label: str


build_prompt = structured_template(
    system="Return JSON only.",
    messages="Label this company: {{ row.company_name }}",
    name="build_prompt",
    version="v1",
)


job = StructuredOutputJob(
    name="company_labels",
    key_cols=["id"],
    input_df=pl.DataFrame({"id": [1], "company_name": ["OpenAI"]}),
    prompt_builder=build_prompt,
    output_model=CompanyLabel,
    provider=OpenAIConfig(model="gpt-4o-mini"),
    result_cache=ResultCacheStoreConfig(root_uri="./.llm_batch_py"),
    prompt_cache=PromptCacheConfig(mode="auto"),
    lock=LockConfig(ttl_seconds=3600),
    batch=BatchConfig(batch_size=500),
)

runner = Runner()
result_df = runner.run(job)
print(result_df)
print(runner.last_summary)

slim_df = runner.run(job, metadata_columns=["llm_batch_py_status"])
print(slim_df)

Streaming Large Inputs

import polars as pl

lazy_input = (
    pl.scan_parquet("./companies.parquet")
    .select(["id", "company_name"])
)

runner = Runner()
for chunk_df in runner.run_stream(
    job=job.__class__(**{**job.__dict__, "input_df": lazy_input}),
    input_batch_rows=10_000,
):
    print(chunk_df.select(["id", "llm_batch_py_status"]))

print(runner.last_stream_summary)

run_stream() yields one result DataFrame per input chunk. Each chunk uses the same result-cache, polling, retry, and lock semantics as a normal short-lived run().

If your host already pages from Postgres or another source, you can also push batches directly:

def pg_batches() -> list[pl.DataFrame]:
    return [
        pl.DataFrame({"id": [1], "company_name": ["OpenAI"]}),
        pl.DataFrame({"id": [2], "company_name": ["Anthropic"]}),
    ]


for chunk_df in runner.run_stream(job=job, input_batches=pg_batches()):
    print(chunk_df.select(["id", "llm_batch_py_status"]))

For private S3-backed result caches, pass filesystem options through ResultCacheStoreConfig:

result_cache = ResultCacheStoreConfig(
    root_uri="s3://my-bucket/llm_batch_py-prod",
    storage_options={
        "profile": "my-profile",
        "client_kwargs": {"region_name": "us-west-2"},
    },
)

For a private AWS S3 bucket, the cache store can authenticate with any normal s3fs credential path:

  • AWS_ACCESS_KEY_ID and AWS_SECRET_ACCESS_KEY
  • optional AWS_SESSION_TOKEN
  • AWS_PROFILE
  • an attached IAM role

If you want explicit credentials in code:

result_cache = ResultCacheStoreConfig(
    root_uri="s3://my-bucket/llm_batch_py-prod",
    storage_options={
        "key": "AWS_ACCESS_KEY_ID",
        "secret": "AWS_SECRET_ACCESS_KEY",
        "token": "AWS_SESSION_TOKEN",
        "client_kwargs": {"region_name": "us-west-2"},
    },
)

The cache principal needs list, read, write, and delete access under the configured prefix because llm-batch-py lists manifests, reads and writes artifacts, and creates and removes lock files there.

If you point storage_options at a custom S3-compatible endpoint_url, llm-batch-py now rejects job locking by default because the lock protocol depends on AWS S3 exclusive-create semantics. Only bypass that with LockConfig(allow_unsafe_s3_compatible_locks=True) if you already serialize runners externally and accept possible cache corruption risk.

structured_template(...) and embedding_template(...) are the primary prompt-building APIs. They render {{ row.field }} placeholders through the Rust template engine for lower per-row overhead.

prompt_udf(...) remains supported as a compatibility fallback when templating is not expressive enough. A prompt_udf should return structured Python data such as dicts, lists, Pydantic models, and datetime-like values. llm-batch-py canonically serializes the rendered payload before computing result-cache keys, so dict insertion order does not affect cache hits.

Returned result frames include llm_batch_py_* metadata columns for provider status, token counts, and raw request/response inspection fields such as llm_batch_py_input_raw_json, llm_batch_py_request_raw_json, llm_batch_py_output_raw_json, and llm_batch_py_output_raw_text.

If you do not need the full metadata surface on the returned frame, pass metadata_columns=[...] to Runner.run() or Runner.run_stream() to join back only the requested llm_batch_py_* columns. Pass metadata_columns=[] to suppress metadata columns entirely.

Docs

Customizing provider prompt cache

from llm_batch_py import PromptCacheConfig

PromptCacheConfig(
    mode="auto",
    verbose=False,
)
  • mode: Literal["off", "auto"] = "auto"
  • verbose: bool = False

OpenAIConfig

from llm_batch_py import OpenAIConfig

OpenAIConfig(
    model="gpt-4o-mini",
    api_key=None,
    max_output_tokens=None,
    temperature=None,
    timeout=60.0,
    organization=None,
    base_url=None,
    dimensions=None,
    pricing=None,
)
  • model: str
  • api_key: str | None = None
  • max_output_tokens: int | None = None
  • temperature: float | None = None
  • timeout: float | None = 60.0
  • organization: str | None = None
  • base_url: str | None = None
  • dimensions: int | None = None
  • pricing: ModelPricing | None = None
  • provider_name: Literal["openai"] = "openai"

OpenAIConfig is used for:

  • structured-output jobs
  • embedding jobs

AnthropicConfig

from llm_batch_py import AnthropicConfig

AnthropicConfig(
    model="claude-3-5-haiku-latest",
    api_key=None,
    max_output_tokens=1024,
    temperature=None,
    timeout=60.0,
    pricing=None,
)
  • model: str
  • api_key: str | None = None
  • max_output_tokens: int = 1024
  • temperature: float | None = None
  • timeout: float | None = 60.0
  • pricing: ModelPricing | None = None
  • provider_name: Literal["anthropic"] = "anthropic"

AnthropicConfig is used for structured-output jobs only.

Customizing result cache store config

result_cache=ResultCacheStoreConfig(...) controls the persistent result cache catalog used to reuse prior results. It is separate from the result_df returned by runner.run(job).

Completed results are stored in the result cache catalog and reused on later runs until you delete or replace that catalog. There is no result TTL or automatic result-cache eviction in llm-batch-py today.

from llm_batch_py import ResultCacheStoreConfig

result_cache = ResultCacheStoreConfig(
    root_uri="s3://my-bucket/llm_batch_py-prod",
)
  • root_uri: base location for manifests, raw artifacts, and reusable cached results. This can be a local path like "./.llm_batch_py" or any fsspec URI such as s3://....
  • storage_options: optional fsspec / s3fs filesystem options such as profile, key, secret, token, client_kwargs.region_name, or client_kwargs.endpoint_url.

For private S3-backed cache stores, see the S3 cache storage guide.

Default result cache key

Each request gets a content-addressed cache key for result reuse. llm-batch-py hashes the request payload together with the job/provider context, using SHA-256 over a canonical JSON representation.

By default the cache key includes:

  • the rendered request payload from your prompt_builder or text_builder
  • job.name
  • prompt_builder.version or text_builder.version
  • provider name and model
  • endpoint kind (structured or embeddings)
  • structured-output schema, when applicable
  • provider options that affect outputs: temperature, max_output_tokens, dimensions, base_url, and organization
  • shared prompt-cache config, when set on a structured-output job

Notably, row IDs and key_cols are not part of the result cache key. If two rows in the same job render the same payload under the same config, they will hit the same cached result.

Cache key customization

There is no explicit cache_key_fn or cache-key override API today.

The supported ways to change cache identity are:

  • change job.name to create a separate cache namespace
  • bump the prompt builder version when prompt semantics change
  • change the rendered payload or provider/model settings
  • point root_uri at a different result cache store if you want fully isolated cached results

Customizing lock config

lock=LockConfig(...) controls how llm-batch-py recovers from abandoned job locks.

from llm_batch_py import LockConfig

lock = LockConfig(ttl_seconds=6 * 60 * 60)
  • ttl_seconds: if a previous run left a lock behind and it is older than this TTL, a new run can reclaim it. Default: 3600.
  • allow_unsafe_s3_compatible_locks: bypasses the safeguard that rejects custom S3-compatible endpoint_url lock backends. Default: False.

allow_unsafe_s3_compatible_locks=True does not make S3-compatible locking safe. It only suppresses the fail-fast guard for users who already serialize runners externally.

If you mean provider prompt caching rather than the llm-batch-py result cache store, configure that on the job:

from llm_batch_py import PromptCacheConfig

job = StructuredOutputJob(
    ...,
    prompt_cache=PromptCacheConfig(mode="auto"),
)

PromptCacheConfig(...) controls shared provider-side prompt caching behavior.

  • mode="off" disables provider prompt caching.
  • mode="auto" uses provider-managed prompt caching.
  • verbose=True logs one INFO estimated-analysis diagnostic per distinct prompt shape showing the likely cacheable prefix candidate and likely trailing dynamic content candidate.
  • llm-batch-py does not expose provider-specific prompt-cache options; it only enables shared automatic caching behavior.

Customizing batch config

batch=BatchConfig(...) controls how pending rows are grouped into provider batch submissions.

from llm_batch_py import BatchConfig

batch = BatchConfig(
    batch_size=500,
    max_retries=3,
)
  • batch_size: hard cap on requests per submitted batch. If unset, llm-batch-py uses the provider's built-in batch request limit.
  • max_retries: maximum retries for retryable failed rows before they are held as failed. Default: 2.

Provider payload byte caps and batch completion windows are derived internally from the selected provider adapter rather than configured in BatchConfig.

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

llm_batch_py-0.1.8.tar.gz (196.1 kB view details)

Uploaded Source

Built Distributions

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

llm_batch_py-0.1.8-cp313-cp313-win_amd64.whl (227.5 kB view details)

Uploaded CPython 3.13Windows x86-64

llm_batch_py-0.1.8-cp313-cp313-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (370.9 kB view details)

Uploaded CPython 3.13manylinux: glibc 2.17+ x86-64

llm_batch_py-0.1.8-cp313-cp313-manylinux_2_17_aarch64.manylinux2014_aarch64.whl (358.6 kB view details)

Uploaded CPython 3.13manylinux: glibc 2.17+ ARM64

llm_batch_py-0.1.8-cp313-cp313-macosx_11_0_arm64.whl (329.4 kB view details)

Uploaded CPython 3.13macOS 11.0+ ARM64

llm_batch_py-0.1.8-cp313-cp313-macosx_10_12_x86_64.whl (339.3 kB view details)

Uploaded CPython 3.13macOS 10.12+ x86-64

llm_batch_py-0.1.8-cp312-cp312-win_amd64.whl (228.1 kB view details)

Uploaded CPython 3.12Windows x86-64

llm_batch_py-0.1.8-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (371.6 kB view details)

Uploaded CPython 3.12manylinux: glibc 2.17+ x86-64

llm_batch_py-0.1.8-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl (359.1 kB view details)

Uploaded CPython 3.12manylinux: glibc 2.17+ ARM64

llm_batch_py-0.1.8-cp312-cp312-macosx_11_0_arm64.whl (329.7 kB view details)

Uploaded CPython 3.12macOS 11.0+ ARM64

llm_batch_py-0.1.8-cp312-cp312-macosx_10_12_x86_64.whl (339.7 kB view details)

Uploaded CPython 3.12macOS 10.12+ x86-64

llm_batch_py-0.1.8-cp311-cp311-win_amd64.whl (227.8 kB view details)

Uploaded CPython 3.11Windows x86-64

llm_batch_py-0.1.8-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (371.8 kB view details)

Uploaded CPython 3.11manylinux: glibc 2.17+ x86-64

llm_batch_py-0.1.8-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl (359.4 kB view details)

Uploaded CPython 3.11manylinux: glibc 2.17+ ARM64

llm_batch_py-0.1.8-cp311-cp311-macosx_11_0_arm64.whl (333.6 kB view details)

Uploaded CPython 3.11macOS 11.0+ ARM64

llm_batch_py-0.1.8-cp311-cp311-macosx_10_12_x86_64.whl (342.5 kB view details)

Uploaded CPython 3.11macOS 10.12+ x86-64

llm_batch_py-0.1.8-cp310-cp310-win_amd64.whl (227.8 kB view details)

Uploaded CPython 3.10Windows x86-64

llm_batch_py-0.1.8-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (371.9 kB view details)

Uploaded CPython 3.10manylinux: glibc 2.17+ x86-64

llm_batch_py-0.1.8-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl (359.5 kB view details)

Uploaded CPython 3.10manylinux: glibc 2.17+ ARM64

llm_batch_py-0.1.8-cp310-cp310-macosx_11_0_arm64.whl (333.7 kB view details)

Uploaded CPython 3.10macOS 11.0+ ARM64

llm_batch_py-0.1.8-cp310-cp310-macosx_10_12_x86_64.whl (342.3 kB view details)

Uploaded CPython 3.10macOS 10.12+ x86-64

File details

Details for the file llm_batch_py-0.1.8.tar.gz.

File metadata

  • Download URL: llm_batch_py-0.1.8.tar.gz
  • Upload date:
  • Size: 196.1 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.7

File hashes

Hashes for llm_batch_py-0.1.8.tar.gz
Algorithm Hash digest
SHA256 ee44e55a2249adb275b8bb30706e7ef7e2d90ed7d01aef0a177edecd3ab0e9e9
MD5 bea362dc41fb79990a47d867d47e700e
BLAKE2b-256 3b89a4f3f726d9c6663b2f5c523437b611b3d98153e7d9d29f6969dd44c3b664

See more details on using hashes here.

Provenance

The following attestation bundles were made for llm_batch_py-0.1.8.tar.gz:

Publisher: publish.yml on zhjch05/llm-batch-py

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

File details

Details for the file llm_batch_py-0.1.8-cp313-cp313-win_amd64.whl.

File metadata

File hashes

Hashes for llm_batch_py-0.1.8-cp313-cp313-win_amd64.whl
Algorithm Hash digest
SHA256 a099177372a7c3b8793b4aa532a69eff3e46e8b24e03dd7a987fe8238abbda5f
MD5 b4620ace490e18b4eb4be85d7424b439
BLAKE2b-256 a05b6bcb9f701e9b7a65541d096d1dcc697c0ed26d44f0025abe962edc2e4160

See more details on using hashes here.

Provenance

The following attestation bundles were made for llm_batch_py-0.1.8-cp313-cp313-win_amd64.whl:

Publisher: publish.yml on zhjch05/llm-batch-py

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

File details

Details for the file llm_batch_py-0.1.8-cp313-cp313-manylinux_2_17_x86_64.manylinux2014_x86_64.whl.

File metadata

File hashes

Hashes for llm_batch_py-0.1.8-cp313-cp313-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 18201c569054cd46f87da09171ace02469490d915d3a1cdb53977c7f144a6e09
MD5 897fb429147ac4b8ec60de9a7a825a3d
BLAKE2b-256 2c05851fa8493cab690759af6a0e571837732850a514e68bcf0b3390fc6de104

See more details on using hashes here.

Provenance

The following attestation bundles were made for llm_batch_py-0.1.8-cp313-cp313-manylinux_2_17_x86_64.manylinux2014_x86_64.whl:

Publisher: publish.yml on zhjch05/llm-batch-py

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

File details

Details for the file llm_batch_py-0.1.8-cp313-cp313-manylinux_2_17_aarch64.manylinux2014_aarch64.whl.

File metadata

File hashes

Hashes for llm_batch_py-0.1.8-cp313-cp313-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
Algorithm Hash digest
SHA256 e716cc44ce003546c5bd4f33fff15afa086de67cffa7d56d68cde7c1670ab109
MD5 fb218fed5f39dcab7514c577b1e334c7
BLAKE2b-256 c6e0b6a1d21b95fc9b734beb565fe7a65f6f988cfbdbed7b1ef8acd333c9d213

See more details on using hashes here.

Provenance

The following attestation bundles were made for llm_batch_py-0.1.8-cp313-cp313-manylinux_2_17_aarch64.manylinux2014_aarch64.whl:

Publisher: publish.yml on zhjch05/llm-batch-py

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

File details

Details for the file llm_batch_py-0.1.8-cp313-cp313-macosx_11_0_arm64.whl.

File metadata

File hashes

Hashes for llm_batch_py-0.1.8-cp313-cp313-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 e5877a6a406b02d64fa214060a75b627c8ea35c9bcf9fb209d8838959bd6034a
MD5 b5f11eb8f3e912861b8059f3d5320905
BLAKE2b-256 4055f15c5f2f46d1c3d812920479c104df5c97a26d80f526f09faf669bddfdb8

See more details on using hashes here.

Provenance

The following attestation bundles were made for llm_batch_py-0.1.8-cp313-cp313-macosx_11_0_arm64.whl:

Publisher: publish.yml on zhjch05/llm-batch-py

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

File details

Details for the file llm_batch_py-0.1.8-cp313-cp313-macosx_10_12_x86_64.whl.

File metadata

File hashes

Hashes for llm_batch_py-0.1.8-cp313-cp313-macosx_10_12_x86_64.whl
Algorithm Hash digest
SHA256 97f561bb665202c0161e29b257937c7524b701d9710b886bcb2ab9bc7ad15d2b
MD5 da275df9ad029977c89c85b6eda2cebe
BLAKE2b-256 366277e873fb47aaa42526a4d29094755dd7b54260f51239c15ca158c24ec5dd

See more details on using hashes here.

Provenance

The following attestation bundles were made for llm_batch_py-0.1.8-cp313-cp313-macosx_10_12_x86_64.whl:

Publisher: publish.yml on zhjch05/llm-batch-py

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

File details

Details for the file llm_batch_py-0.1.8-cp312-cp312-win_amd64.whl.

File metadata

File hashes

Hashes for llm_batch_py-0.1.8-cp312-cp312-win_amd64.whl
Algorithm Hash digest
SHA256 38b6ccfa4559f9378d0e536d7ddac041f07b092489c0a5c719c403055ff9cc27
MD5 2ce0061c936df6e9b9206a5393c71c8b
BLAKE2b-256 9b27b6ae328cd3b4b5fa49aa1da4c483540cb208b90b9126f5bf19c4798db1a5

See more details on using hashes here.

Provenance

The following attestation bundles were made for llm_batch_py-0.1.8-cp312-cp312-win_amd64.whl:

Publisher: publish.yml on zhjch05/llm-batch-py

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

File details

Details for the file llm_batch_py-0.1.8-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl.

File metadata

File hashes

Hashes for llm_batch_py-0.1.8-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 332cd723714672c1133e12605d9a879c4854682efbbb9298142a86fad68256e7
MD5 ef3759ce556528010e0ba8f28249d3e9
BLAKE2b-256 0ca116f8d43314ca0ef7f7d4dff0d5b048054ef9e0c0493607ed72580688e23c

See more details on using hashes here.

Provenance

The following attestation bundles were made for llm_batch_py-0.1.8-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl:

Publisher: publish.yml on zhjch05/llm-batch-py

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

File details

Details for the file llm_batch_py-0.1.8-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl.

File metadata

File hashes

Hashes for llm_batch_py-0.1.8-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
Algorithm Hash digest
SHA256 96f2ba161fcf2c2dec3e41a60eabe0e5b5ab94b94126c8988849003ecd9ebb32
MD5 c72d0455872c88356596e7ea95bac725
BLAKE2b-256 8e3a680e81c8162840568cb4b0f668d0cd769b25ee5f2241796f3fbf0acdede2

See more details on using hashes here.

Provenance

The following attestation bundles were made for llm_batch_py-0.1.8-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl:

Publisher: publish.yml on zhjch05/llm-batch-py

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

File details

Details for the file llm_batch_py-0.1.8-cp312-cp312-macosx_11_0_arm64.whl.

File metadata

File hashes

Hashes for llm_batch_py-0.1.8-cp312-cp312-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 e9ed7d38ca57d80cb4430eca6dd0f7c970280e023ce2afc355d0366f9a67b0d7
MD5 765e7b4b2645e7911c38052217fdf67b
BLAKE2b-256 5066f5d51c97c2262dab66b33a0d1b4c6584264c8f8ea36c84a1040553ec1e1b

See more details on using hashes here.

Provenance

The following attestation bundles were made for llm_batch_py-0.1.8-cp312-cp312-macosx_11_0_arm64.whl:

Publisher: publish.yml on zhjch05/llm-batch-py

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

File details

Details for the file llm_batch_py-0.1.8-cp312-cp312-macosx_10_12_x86_64.whl.

File metadata

File hashes

Hashes for llm_batch_py-0.1.8-cp312-cp312-macosx_10_12_x86_64.whl
Algorithm Hash digest
SHA256 cbcf8590b34be4d65ac0107e286ebfb60380bd0339806f2ffb76b8ba3a64c646
MD5 0eae327c112969074bcdcd803aeae12d
BLAKE2b-256 77b807c7bf504117e077439d1e7ecb9531436fdbfe1c20b78695e47c276b28f3

See more details on using hashes here.

Provenance

The following attestation bundles were made for llm_batch_py-0.1.8-cp312-cp312-macosx_10_12_x86_64.whl:

Publisher: publish.yml on zhjch05/llm-batch-py

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

File details

Details for the file llm_batch_py-0.1.8-cp311-cp311-win_amd64.whl.

File metadata

File hashes

Hashes for llm_batch_py-0.1.8-cp311-cp311-win_amd64.whl
Algorithm Hash digest
SHA256 c9255572b79be465d8e56e81778e5084ac082abe6eb57a044456dd2523cd33fa
MD5 66ee40f8e8ae1f15ccaf8256557037e6
BLAKE2b-256 cdecbc534fbc6759a1ec2454ed33eadd40683d54ad930d63a28ee0f5b9a5d8f0

See more details on using hashes here.

Provenance

The following attestation bundles were made for llm_batch_py-0.1.8-cp311-cp311-win_amd64.whl:

Publisher: publish.yml on zhjch05/llm-batch-py

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

File details

Details for the file llm_batch_py-0.1.8-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl.

File metadata

File hashes

Hashes for llm_batch_py-0.1.8-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 cfaa972e6557284d438b81071b821da6388eb13b51bbe95dd7cc28379f36ee02
MD5 f0831e363a392300f6d66a6c158c29b6
BLAKE2b-256 dd491daf7f1e66d2eaa5929a5a2c299f6642bb0f71d06c24915a0b4acf25c777

See more details on using hashes here.

Provenance

The following attestation bundles were made for llm_batch_py-0.1.8-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl:

Publisher: publish.yml on zhjch05/llm-batch-py

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

File details

Details for the file llm_batch_py-0.1.8-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl.

File metadata

File hashes

Hashes for llm_batch_py-0.1.8-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
Algorithm Hash digest
SHA256 44972511212f73b1b3b795f55f727708baa6651732c1986ca025c1b174abc543
MD5 c9de9bbb883ee413aef189e718143fbb
BLAKE2b-256 fe7df2b71ded98411ee07f8127f2a7bee46da3e7300fb8a310658417aab62e62

See more details on using hashes here.

Provenance

The following attestation bundles were made for llm_batch_py-0.1.8-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl:

Publisher: publish.yml on zhjch05/llm-batch-py

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

File details

Details for the file llm_batch_py-0.1.8-cp311-cp311-macosx_11_0_arm64.whl.

File metadata

File hashes

Hashes for llm_batch_py-0.1.8-cp311-cp311-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 77789b0ba61bdcdba837c5ed926a792e620c852ce8bf1eb7fd8d252cc526d0a5
MD5 b4eb5617cd7386de9b4cd9996cb05009
BLAKE2b-256 3aa6a5567f4537f826f0ae4977174d89c5b15657568783a789ff89349797465b

See more details on using hashes here.

Provenance

The following attestation bundles were made for llm_batch_py-0.1.8-cp311-cp311-macosx_11_0_arm64.whl:

Publisher: publish.yml on zhjch05/llm-batch-py

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

File details

Details for the file llm_batch_py-0.1.8-cp311-cp311-macosx_10_12_x86_64.whl.

File metadata

File hashes

Hashes for llm_batch_py-0.1.8-cp311-cp311-macosx_10_12_x86_64.whl
Algorithm Hash digest
SHA256 4c9f74cd7076f95e8d38d9da5fa4820a086ec430c9009f03e642b9a37985364f
MD5 c90e77690a7079d588cc23ba0acb6d18
BLAKE2b-256 dd3245fd4c8619b62cbf9bcf5c3f8ff5bcb264ca5b2d7dfaf8eec59d17a8947f

See more details on using hashes here.

Provenance

The following attestation bundles were made for llm_batch_py-0.1.8-cp311-cp311-macosx_10_12_x86_64.whl:

Publisher: publish.yml on zhjch05/llm-batch-py

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

File details

Details for the file llm_batch_py-0.1.8-cp310-cp310-win_amd64.whl.

File metadata

File hashes

Hashes for llm_batch_py-0.1.8-cp310-cp310-win_amd64.whl
Algorithm Hash digest
SHA256 be5e2d942fc4bbc19462eaeae30b4a2c6c714ba25c4c63af6453d78a422c4fb3
MD5 ab2a5abae827600f9621e0bcdd2b14f4
BLAKE2b-256 99f260953047a8777352b4f09e759da61bc79a12123269a23f2c06fd2ac5bc14

See more details on using hashes here.

Provenance

The following attestation bundles were made for llm_batch_py-0.1.8-cp310-cp310-win_amd64.whl:

Publisher: publish.yml on zhjch05/llm-batch-py

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

File details

Details for the file llm_batch_py-0.1.8-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl.

File metadata

File hashes

Hashes for llm_batch_py-0.1.8-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 d2fe201125c1cd0d8652a27bd4cfc9c47470ef85e3b027535d19de689cbe9a5b
MD5 960f9893000ab2c0f50ead3e803120d2
BLAKE2b-256 607697db2721e4fde7f8bd0505c8c97cee644fb183457522a67103b273d52414

See more details on using hashes here.

Provenance

The following attestation bundles were made for llm_batch_py-0.1.8-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl:

Publisher: publish.yml on zhjch05/llm-batch-py

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

File details

Details for the file llm_batch_py-0.1.8-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl.

File metadata

File hashes

Hashes for llm_batch_py-0.1.8-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
Algorithm Hash digest
SHA256 55855b0a4a9f10aa4fb44867f6a5a5c717a2ab1fccc0a24495beaa871264fc41
MD5 9700eee217d2f3d0d750ab2738cd731e
BLAKE2b-256 f21b83a39be683a2e8c01e479bb33e8fb7e0e3accb53de4ce0d562a984cf9963

See more details on using hashes here.

Provenance

The following attestation bundles were made for llm_batch_py-0.1.8-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl:

Publisher: publish.yml on zhjch05/llm-batch-py

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

File details

Details for the file llm_batch_py-0.1.8-cp310-cp310-macosx_11_0_arm64.whl.

File metadata

File hashes

Hashes for llm_batch_py-0.1.8-cp310-cp310-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 ca15e9083d2634de03948cd1a22a35814055294961c6124fb30cc1e43c70c67d
MD5 3ead9ce3090d278b4ad97f52f0dbd596
BLAKE2b-256 c6d9ea5d1f8d3b4630fb813ec19d188ca8cbe145e08aff254e112b1adf58bd94

See more details on using hashes here.

Provenance

The following attestation bundles were made for llm_batch_py-0.1.8-cp310-cp310-macosx_11_0_arm64.whl:

Publisher: publish.yml on zhjch05/llm-batch-py

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

File details

Details for the file llm_batch_py-0.1.8-cp310-cp310-macosx_10_12_x86_64.whl.

File metadata

File hashes

Hashes for llm_batch_py-0.1.8-cp310-cp310-macosx_10_12_x86_64.whl
Algorithm Hash digest
SHA256 508be6d80ddc7da5afb739734d8fbf0b14554e5f0a95d27154362cf9130b4814
MD5 7ae7035288ce4feac9d4410a52e3235c
BLAKE2b-256 46f60e3110d5d74d54718b4e2510f2bda729a614619f9364bbfcbcb0bbcdbb56

See more details on using hashes here.

Provenance

The following attestation bundles were made for llm_batch_py-0.1.8-cp310-cp310-macosx_10_12_x86_64.whl:

Publisher: publish.yml on zhjch05/llm-batch-py

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