From 450562b704c6d7bb04df99e56d352b268f8f2055 Mon Sep 17 00:00:00 2001 From: Artur Shiriev Date: Sun, 6 Sep 2026 13:26:45 +0300 Subject: [PATCH 1/2] chore: require circuit-breaker-box>=0.3.9,<0.4 circuit-breaker-box releases before 0.3.9 drove Retrier.retry() with the synchronous tenacity.Retrying, which blocks the event loop for the whole retry wait. base-client exposes that Retrier through BaseClient.retrier, so every client configured with a positive wait strategy inherited the stall. Pin the lower bound to the release that switched to tenacity.AsyncRetrying and cap it below the next minor. base-client itself only touches the public Retrier API, which is unchanged, so no code change is needed here. --- pyproject.toml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/pyproject.toml b/pyproject.toml index 101babb..2918c0d 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -7,7 +7,7 @@ dependencies = [ "httpx", "pydantic", "multidict", - "circuit-breaker-box", + "circuit-breaker-box>=0.3.9,<0.4", ] version = "0" authors = [{ name = "community-of-python" }] From 55681dce4ca5b6c19c4d4d9b94e38b01e72fbe7d Mon Sep 17 00:00:00 2001 From: Artur Shiriev Date: Sun, 6 Sep 2026 16:58:57 +0300 Subject: [PATCH 2/2] chore: ignore CPY001 so lint passes again ruff is unpinned and `just install` runs `uv lock --upgrade`, so CI resolves the newest ruff on every run. A ruff release since the last green build on main enabled CPY001 (flake8-copyright) under `select = ["ALL"]`, and it now reports all 13 files in the project, none of which have ever carried a copyright header. This is unrelated to the dependency bump in this branch: checking out an untouched main and running `ruff check` reproduces the same 13 errors. Ignore the rule, as the project already does for eight others, matching circuit-breaker-box#10. --- pyproject.toml | 1 + 1 file changed, 1 insertion(+) diff --git a/pyproject.toml b/pyproject.toml index 2918c0d..1047690 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -71,6 +71,7 @@ ignore = [ "D213", # "multi-line-summary-second-line" conflicting with D212 "COM812", # flake8-commas "Trailing comma missing" "ISC001", # flake8-implicit-str-concat + "CPY001", # flake8-copyright "Missing copyright notice at top of file" ] isort.lines-after-imports = 2 isort.no-lines-before = ["standard-library", "local-folder"]