Changelog¶
All notable changes to this project will be documented in this file.
The format is based on Keep a Changelog, and this project adheres to Semantic Versioning.
[Unreleased]¶
Documentation¶
- The failure contract is now stated and pinned by tests: each call makes one attempt, and timeouts (
httpx.TimeoutException) and connection errors (httpx.ConnectError) reach the caller unwrapped. Stacking pico-resilience's@retryableabsorbs transient ones and raisesRetryExhaustedErrorwith the last httpx error; for calls that are not safe to repeat, the FAQ narrows retries toConnectError,ConnectTimeoutandPoolTimeout, the failures where the request never left the client.
[0.1.1] - 2026-09-29¶
Fixed¶
- Dependency floors raised to what the test suite proves:
pico-ioc >= 2.3.3(was 2.2.0; below 2.3.0 the container fails withMissing config prefix: http). A new CI job runs the suite with every declared floor pinned, so a floor that installs but does not work can no longer ship.
Added¶
__all__declares the public API andtests/test_exports.pypins it, per the ecosystem stability policy (ADR-014 in pico-ioc).
Documentation¶
docs/architecture.mdlinks the ADR-014 stability and deprecation policy.
[0.1.0] - 2026-07-10¶
Added¶
@http_clientclass decorator: turns a class of stubs into an injectable HTTP client component.@get/@post/@put/@delete/@patchmethod decorators with path templating, query params and JSON body (jsonparameter).- Sync and async stubs (shared
httpx.Client/httpx.AsyncClient, closed on container shutdown). - Base URL from the decorator or from
http.clients.<name>.base_urlconfig. http.timeout_secondssetting (zero-config).- Auto-discovery via the
pico_boot.modulesentry point.