Skip to content

Upgrading from v0.27.0 to v0.28.0

v0.28.0 is the last release before 1.0, and the last to support Python 3.10; 1.0 requires Python 3.11 or newer. It only adds deprecation warnings ahead of 1.0, plus a module and page rename. Nothing that works in v0.27 stops working. Artifact and result schemas are unchanged.

DeprecationWarning is hidden outside __main__ by default. Run your tests with -W error::DeprecationWarning to find what needs changing before 1.0.

Pass configuration fields by keyword

From 1.0, the five configuration classes take keyword arguments only: ProcessorConfig, RetryConfig, RateLimitConfig, StartupRampConfig and GuardrailConfig. Positional arguments now warn:

config = ProcessorConfig(5, 60.0)  # warns: positional arguments are deprecated
config = ProcessorConfig(max_workers=5, attempt_timeout=60.0)  # works in 0.28 and 1.0

Other dataclasses, such as LLMWorkItem and CallOutcome, still accept positional arguments; see API stability.

Drop enable_detailed_logging

ProcessorConfig.enable_detailed_logging never had an effect. Passing True now warns; the field keeps its value, and is removed in 1.0. For more detailed output, set the level of the async_batch_llm logger (see Logging):

import logging

logging.getLogger("async_batch_llm").setLevel(logging.DEBUG)

LLMCallPool module and page

LLMCallPool now lives in async_batch_llm.call_pool. The old async_batch_llm.gateway module path keeps working through 1.x, but submodule paths aren't covered by the stability promise: import LLMCallPool from async_batch_llm. The deprecated LLMGateway alias is still removed in 1.0.

The API page moved to Single Call & Shared Call Pool; links to the old api/single-gateway/ URL redirect.