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.6.tar.gz (195.0 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.6-cp313-cp313-win_amd64.whl (226.7 kB view details)

Uploaded CPython 3.13Windows x86-64

llm_batch_py-0.1.6-cp313-cp313-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (370.2 kB view details)

Uploaded CPython 3.13manylinux: glibc 2.17+ x86-64

llm_batch_py-0.1.6-cp313-cp313-manylinux_2_17_aarch64.manylinux2014_aarch64.whl (357.9 kB view details)

Uploaded CPython 3.13manylinux: glibc 2.17+ ARM64

llm_batch_py-0.1.6-cp313-cp313-macosx_11_0_arm64.whl (328.6 kB view details)

Uploaded CPython 3.13macOS 11.0+ ARM64

llm_batch_py-0.1.6-cp313-cp313-macosx_10_12_x86_64.whl (338.4 kB view details)

Uploaded CPython 3.13macOS 10.12+ x86-64

llm_batch_py-0.1.6-cp312-cp312-win_amd64.whl (227.2 kB view details)

Uploaded CPython 3.12Windows x86-64

llm_batch_py-0.1.6-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (370.8 kB view details)

Uploaded CPython 3.12manylinux: glibc 2.17+ x86-64

llm_batch_py-0.1.6-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl (358.3 kB view details)

Uploaded CPython 3.12manylinux: glibc 2.17+ ARM64

llm_batch_py-0.1.6-cp312-cp312-macosx_11_0_arm64.whl (329.0 kB view details)

Uploaded CPython 3.12macOS 11.0+ ARM64

llm_batch_py-0.1.6-cp312-cp312-macosx_10_12_x86_64.whl (338.8 kB view details)

Uploaded CPython 3.12macOS 10.12+ x86-64

llm_batch_py-0.1.6-cp311-cp311-win_amd64.whl (227.1 kB view details)

Uploaded CPython 3.11Windows x86-64

llm_batch_py-0.1.6-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (371.0 kB view details)

Uploaded CPython 3.11manylinux: glibc 2.17+ x86-64

llm_batch_py-0.1.6-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl (358.7 kB view details)

Uploaded CPython 3.11manylinux: glibc 2.17+ ARM64

llm_batch_py-0.1.6-cp311-cp311-macosx_11_0_arm64.whl (332.7 kB view details)

Uploaded CPython 3.11macOS 11.0+ ARM64

llm_batch_py-0.1.6-cp311-cp311-macosx_10_12_x86_64.whl (341.7 kB view details)

Uploaded CPython 3.11macOS 10.12+ x86-64

llm_batch_py-0.1.6-cp310-cp310-win_amd64.whl (227.0 kB view details)

Uploaded CPython 3.10Windows x86-64

llm_batch_py-0.1.6-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (371.1 kB view details)

Uploaded CPython 3.10manylinux: glibc 2.17+ x86-64

llm_batch_py-0.1.6-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl (358.7 kB view details)

Uploaded CPython 3.10manylinux: glibc 2.17+ ARM64

llm_batch_py-0.1.6-cp310-cp310-macosx_11_0_arm64.whl (332.8 kB view details)

Uploaded CPython 3.10macOS 11.0+ ARM64

llm_batch_py-0.1.6-cp310-cp310-macosx_10_12_x86_64.whl (341.5 kB view details)

Uploaded CPython 3.10macOS 10.12+ x86-64

File details

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

File metadata

  • Download URL: llm_batch_py-0.1.6.tar.gz
  • Upload date:
  • Size: 195.0 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.6.tar.gz
Algorithm Hash digest
SHA256 38388400110ea2253b029fefe4fcf8084889b03371301cb31b7d0da9d67dae9e
MD5 2bae1ddb359a114b4073b93b9b02aa53
BLAKE2b-256 c8a7050a8182780049c9baee6e5190fd57140170ea00222275bc96a0a3a174b6

See more details on using hashes here.

Provenance

The following attestation bundles were made for llm_batch_py-0.1.6.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.6-cp313-cp313-win_amd64.whl.

File metadata

File hashes

Hashes for llm_batch_py-0.1.6-cp313-cp313-win_amd64.whl
Algorithm Hash digest
SHA256 f89508494248274f1baad8ef040d60e22694a576daeb970a065283775e345033
MD5 d36739fd9f4f3a207dc6af7666fb9777
BLAKE2b-256 d5958ac52eadaed5eaa85db7abc55be860413a58a8cfc0a249aa8f92395dec37

See more details on using hashes here.

Provenance

The following attestation bundles were made for llm_batch_py-0.1.6-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.6-cp313-cp313-manylinux_2_17_x86_64.manylinux2014_x86_64.whl.

File metadata

File hashes

Hashes for llm_batch_py-0.1.6-cp313-cp313-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 17f01e9de68c528bee9bf5c84e9ade245dbfb7ca67e1edabc3a83d2b83ce9e85
MD5 d3284770b19fd9041af5d3b0609b1818
BLAKE2b-256 119d25388a441a86371f1da2fb539a851fc0631c1b5daa7bb54e45e247755b7a

See more details on using hashes here.

Provenance

The following attestation bundles were made for llm_batch_py-0.1.6-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.6-cp313-cp313-manylinux_2_17_aarch64.manylinux2014_aarch64.whl.

File metadata

File hashes

Hashes for llm_batch_py-0.1.6-cp313-cp313-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
Algorithm Hash digest
SHA256 5f03e8885e9883d60ff7c9149cfcff005d790a37eedea5223e0d6c9582c2f93a
MD5 bae811c9f68b3b06d1f497f0a27621f0
BLAKE2b-256 1e3ae3131543e050641c9ba51c9dd2426e675e338ef75416050aa3d5ff285b2c

See more details on using hashes here.

Provenance

The following attestation bundles were made for llm_batch_py-0.1.6-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.6-cp313-cp313-macosx_11_0_arm64.whl.

File metadata

File hashes

Hashes for llm_batch_py-0.1.6-cp313-cp313-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 9d27aa4db2ab92fa834b17231203b91acb38cd40a3fd32d5043ceee5d18aa9a5
MD5 bd59945d967004417562a5e6e7a128c8
BLAKE2b-256 6d57024718235840b4a50a61fc1956ef23ee5a7f65b2558475db86b173b949bc

See more details on using hashes here.

Provenance

The following attestation bundles were made for llm_batch_py-0.1.6-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.6-cp313-cp313-macosx_10_12_x86_64.whl.

File metadata

File hashes

Hashes for llm_batch_py-0.1.6-cp313-cp313-macosx_10_12_x86_64.whl
Algorithm Hash digest
SHA256 2764a8d55dc00e19c530cd5616fd69757376c5de18fcc36f6a34f752a67aa4b1
MD5 e09957d9017c4890e924ba1b67696f46
BLAKE2b-256 d6b585ccfdc0f86d1e39637f988fde2ca70cf16c20dc70ee55e39230a36a1f82

See more details on using hashes here.

Provenance

The following attestation bundles were made for llm_batch_py-0.1.6-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.6-cp312-cp312-win_amd64.whl.

File metadata

File hashes

Hashes for llm_batch_py-0.1.6-cp312-cp312-win_amd64.whl
Algorithm Hash digest
SHA256 884c9535904bb15e7862ba92c20e558e95312d8abe95c11b46b68028881f4d69
MD5 938f77a65593ca55e4d6cf1447f790da
BLAKE2b-256 52d7c374282538d081436e4bfe89c24d3aa65f54e6c7f585c2caa5c7d29706db

See more details on using hashes here.

Provenance

The following attestation bundles were made for llm_batch_py-0.1.6-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.6-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl.

File metadata

File hashes

Hashes for llm_batch_py-0.1.6-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 bbc27ef73656c6f75af620a04ffa802a1c6ce29ec530c435c6d0845832b1835b
MD5 063208811c17d1566b9fe3a3f743681f
BLAKE2b-256 07386211bf79540d0ea75ee7538c34dde17003aba699897473c0da50c00f2f79

See more details on using hashes here.

Provenance

The following attestation bundles were made for llm_batch_py-0.1.6-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.6-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl.

File metadata

File hashes

Hashes for llm_batch_py-0.1.6-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
Algorithm Hash digest
SHA256 2f54d66e72b8c67dc8d655a44178ab48aae24283160f3b75b4e1f80359831443
MD5 996e7f919f1237e4a0e764053271192e
BLAKE2b-256 e80ee0750b4054eb25dfd607d16d1aad94a907c17c77b589d6e812d1bbfcc018

See more details on using hashes here.

Provenance

The following attestation bundles were made for llm_batch_py-0.1.6-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.6-cp312-cp312-macosx_11_0_arm64.whl.

File metadata

File hashes

Hashes for llm_batch_py-0.1.6-cp312-cp312-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 1aa6b09977ed1117135e49fd6061cba56c2450ebe7664f005e8a88cab91d0082
MD5 5f40ed71b08231a871c530dfee5d53ce
BLAKE2b-256 59f8854d91115fe0eb19aca9b16893815f2d5436e7ddacc7405ae1bd8fcc61d2

See more details on using hashes here.

Provenance

The following attestation bundles were made for llm_batch_py-0.1.6-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.6-cp312-cp312-macosx_10_12_x86_64.whl.

File metadata

File hashes

Hashes for llm_batch_py-0.1.6-cp312-cp312-macosx_10_12_x86_64.whl
Algorithm Hash digest
SHA256 a9b45805b84ad8487a5c6f7b9823b12f4cf76bd5dc5d55db07d19b4ca4a6a8ea
MD5 0ddba04ed631cbd333a5f1c8a297a581
BLAKE2b-256 50261c097a86a578238865d41374c5266f03f20a4491b1fcc76fa096dbfee4eb

See more details on using hashes here.

Provenance

The following attestation bundles were made for llm_batch_py-0.1.6-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.6-cp311-cp311-win_amd64.whl.

File metadata

File hashes

Hashes for llm_batch_py-0.1.6-cp311-cp311-win_amd64.whl
Algorithm Hash digest
SHA256 6a6db1b09d1e4440ced738380b63dd5e59682d656da01634241631b34298da20
MD5 08590df1a651c44a22f7c9548b558d8e
BLAKE2b-256 e84dfdc3ea41dd430b929cc9a424b9cde775cbc2cd71537fb10cf1eca74f2252

See more details on using hashes here.

Provenance

The following attestation bundles were made for llm_batch_py-0.1.6-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.6-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl.

File metadata

File hashes

Hashes for llm_batch_py-0.1.6-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 33fac990d0431b1068fd5cf762da4c5d1dc45cd0d4f586fea998091ae8f4728d
MD5 5c277ef1a5f3769a9ec822351f62cfcc
BLAKE2b-256 5a49cc2cd5da85c0bf02a11403b1682f41b3184ccbf079f6f86c4e374833e9b9

See more details on using hashes here.

Provenance

The following attestation bundles were made for llm_batch_py-0.1.6-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.6-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl.

File metadata

File hashes

Hashes for llm_batch_py-0.1.6-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
Algorithm Hash digest
SHA256 90104d2909bc1512e92553528b195710db60996628463b8700ecf6cc12fc7c49
MD5 2583b585da060795ecf1c7f7f58d5f49
BLAKE2b-256 c609adfaea5dd9a590a21f0bc6058e3bc031e813c110dfab4c030fd056997fd0

See more details on using hashes here.

Provenance

The following attestation bundles were made for llm_batch_py-0.1.6-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.6-cp311-cp311-macosx_11_0_arm64.whl.

File metadata

File hashes

Hashes for llm_batch_py-0.1.6-cp311-cp311-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 1703b907292fd46922c7864a2d4fb9ce9d0fdbeed6317cc337e9ccc070c2074d
MD5 7cf2ad996fa0dde14e7d6b0ce8d36c67
BLAKE2b-256 359ba9f0398f0eb9b9ed5b7c4c3daddbc7fd84e710e70994e427b8c22b360d00

See more details on using hashes here.

Provenance

The following attestation bundles were made for llm_batch_py-0.1.6-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.6-cp311-cp311-macosx_10_12_x86_64.whl.

File metadata

File hashes

Hashes for llm_batch_py-0.1.6-cp311-cp311-macosx_10_12_x86_64.whl
Algorithm Hash digest
SHA256 add357e1ef62cf7db692c26639f7f10702f4f45f7bc6191f709347339eb57267
MD5 3af4ae0d58a59b38bce30222edfae81f
BLAKE2b-256 7616f9936ffdf7ab61c466a12b661a3c311c7ba1d5c10a97af6fd7ba21c4a918

See more details on using hashes here.

Provenance

The following attestation bundles were made for llm_batch_py-0.1.6-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.6-cp310-cp310-win_amd64.whl.

File metadata

File hashes

Hashes for llm_batch_py-0.1.6-cp310-cp310-win_amd64.whl
Algorithm Hash digest
SHA256 1c80a87103f31fa2152e65bc1382f806e04a4f128f82707acdb86beef7dc9b9c
MD5 e00e68a88a0b957382010cc6b18e32b4
BLAKE2b-256 2bf6efb61618aa3bbd067774863d4147ad2505220729696177deea527f46d892

See more details on using hashes here.

Provenance

The following attestation bundles were made for llm_batch_py-0.1.6-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.6-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl.

File metadata

File hashes

Hashes for llm_batch_py-0.1.6-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 853c14fbea9cb968b5561510db1ecab4115eb74bf6cbfae298314caacbbb9a91
MD5 91cbab37ef08d6f361ef902af529ae3c
BLAKE2b-256 8b2c02ce038900243c9f46f9becdc0dc2afb44ef6c378571b04434d9ab423eb2

See more details on using hashes here.

Provenance

The following attestation bundles were made for llm_batch_py-0.1.6-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.6-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl.

File metadata

File hashes

Hashes for llm_batch_py-0.1.6-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
Algorithm Hash digest
SHA256 4d8cb5f019f6facd85af0d12a0235ff7e0f499b660ed105a38ada9316308380c
MD5 efaf6a645b321edda50b9307cdfbc276
BLAKE2b-256 fd1131fd4a98775f9bd9c4b77390ca36d1f5eaa1a128d1b048fafddd274eba6e

See more details on using hashes here.

Provenance

The following attestation bundles were made for llm_batch_py-0.1.6-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.6-cp310-cp310-macosx_11_0_arm64.whl.

File metadata

File hashes

Hashes for llm_batch_py-0.1.6-cp310-cp310-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 d0f77ebf1c379a833de0abddb948787bfc5e27591f3e7b949c3cedb76e880131
MD5 62c29dde753f29787d69d8cfa917b711
BLAKE2b-256 99c64e50103bf9a52f2dada23e67fbae5b7a0cb4f45991b84a2d3a02d937f76c

See more details on using hashes here.

Provenance

The following attestation bundles were made for llm_batch_py-0.1.6-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.6-cp310-cp310-macosx_10_12_x86_64.whl.

File metadata

File hashes

Hashes for llm_batch_py-0.1.6-cp310-cp310-macosx_10_12_x86_64.whl
Algorithm Hash digest
SHA256 8a41b485d6e0d2ad17174676313af1a9b296897204ef258c49c3643b16fd10e9
MD5 bbebdd1f297c3fcdb61d8501d18f5947
BLAKE2b-256 3f3bd8113218f89bad50dfab65e4251dac89b3cbdb77cd2c79d2cff4f4f4d059

See more details on using hashes here.

Provenance

The following attestation bundles were made for llm_batch_py-0.1.6-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