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):
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.