This is an automated email from the ASF dual-hosted git repository.
potiuk pushed a commit to branch main
in repository https://gitbox.apache.org/repos/asf/airflow.git
The following commit(s) were added to refs/heads/main by this push:
new 4e82672b4da Replace deprecated typer-slim with typer in devel-common
(#67034)
4e82672b4da is described below
commit 4e82672b4dae5d62c2e2c82f613a8676b2f8be4c
Author: Jarek Potiuk <[email protected]>
AuthorDate: Sat May 16 16:31:16 2026 +0200
Replace deprecated typer-slim with typer in devel-common (#67034)
devel-common previously pinned `typer-slim>=0.15.1`. Under
`uv --resolution lowest-direct`, this resolved to typer-slim==0.15.1 — the
OLD standalone slim package that ships its own `typer/` module.
`fastapi-cli`
transitively pulled typer==0.24.2, so both packages wrote to the same
`typer/` site-packages directory and produced a corrupted install. `import
fastapi_cli.cli` then raised ImportError, and the 23
`mock.patch("fastapi_cli.cli._run")` calls in
`airflow-core/tests/unit/cli/commands/test_api_server_command.py` surfaced
this as `AttributeError: module 'fastapi_cli' has no attribute 'cli'` from
`pkgutil.resolve_name`.
typer-slim 0.22.0+ is a deprecated meta-package that just depends on typer,
and upstream explicitly warns against installing it. Switch to typer
directly (>=0.22.0) so nothing in the dep graph can reintroduce a pre-0.22
slim typer-slim, and the full typer cleanly owns the `typer/` namespace.
---
devel-common/pyproject.toml | 2 +-
uv.lock | 16 ++--------------
2 files changed, 3 insertions(+), 15 deletions(-)
diff --git a/devel-common/pyproject.toml b/devel-common/pyproject.toml
index 52b61c7cf7e..19cf5350026 100644
--- a/devel-common/pyproject.toml
+++ b/devel-common/pyproject.toml
@@ -37,7 +37,7 @@ dependencies = [
"rich>=13.6.0",
"ruff==0.15.12",
"semver>=3.0.2",
- "typer-slim>=0.15.1",
+ "typer>=0.22.0",
"time-machine[dateutil]>=3.0.0",
"wheel>=0.42.0",
"yamllint>=1.33.0",
diff --git a/uv.lock b/uv.lock
index e43344bf369..4e5e7a6f79f 100644
--- a/uv.lock
+++ b/uv.lock
@@ -2205,7 +2205,7 @@ dependencies = [
{ name = "sqlalchemy", extra = ["asyncio"] },
{ name = "sqlalchemy-utils" },
{ name = "time-machine", extra = ["dateutil"] },
- { name = "typer-slim" },
+ { name = "typer" },
{ name = "types-aiofiles" },
{ name = "types-cachetools" },
{ name = "types-certifi" },
@@ -2567,7 +2567,7 @@ requires-dist = [
{ name = "time-machine", extras = ["dateutil"], specifier = ">=3.0.0" },
{ name = "towncrier", marker = "extra == 'devscripts'", specifier =
">=23.11.0" },
{ name = "twine", marker = "extra == 'devscripts'", specifier = ">=4.0.2"
},
- { name = "typer-slim", specifier = ">=0.15.1" },
+ { name = "typer", specifier = ">=0.22.0" },
{ name = "types-aiofiles", marker = "extra == 'mypy'", specifier =
">=23.2.0.20240403" },
{ name = "types-cachetools", marker = "extra == 'mypy'", specifier =
">=6.2.0.20251022" },
{ name = "types-certifi", marker = "extra == 'mypy'", specifier =
">=2021.10.8.3" },
@@ -21894,18 +21894,6 @@ wheels = [
{ url =
"https://files.pythonhosted.org/packages/3f/f9/2b3ff4e56e5fa7debfaf9eb135d0da96f3e9a1d5b27222223c7296336e5f/typer-0.25.1-py3-none-any.whl",
hash =
"sha256:75caa44ed46a03fb2dab8808753ffacdbfea88495e74c85a28c5eefcf5f39c89", size
= 58409, upload-time = "2026-04-30T19:32:18.271Z" },
]
-[[package]]
-name = "typer-slim"
-version = "0.24.0"
-source = { registry = "https://pypi.org/simple" }
-dependencies = [
- { name = "typer" },
-]
-sdist = { url =
"https://files.pythonhosted.org/packages/a7/a7/e6aecc4b4eb59598829a3b5076a93aff291b4fdaa2ded25efc4e1f4d219c/typer_slim-0.24.0.tar.gz",
hash =
"sha256:f0ed36127183f52ae6ced2ecb2521789995992c521a46083bfcdbb652d22ad34", size
= 4776, upload-time = "2026-02-16T22:08:51.2Z" }
-wheels = [
- { url =
"https://files.pythonhosted.org/packages/a7/24/5480c20380dfd18cf33d14784096dca45a24eae6102e91d49a718d3b6855/typer_slim-0.24.0-py3-none-any.whl",
hash =
"sha256:d5d7ee1ee2834d5020c7c616ed5e0d0f29b9a4b1dd283bdebae198ec09778d0e", size
= 3394, upload-time = "2026-02-16T22:08:49.92Z" },
-]
-
[[package]]
name = "types-aiofiles"
version = "25.1.0.20260508"