diff --git a/sdks/python/pyproject.toml b/sdks/python/pyproject.toml index 67175d77f..9162b6631 100644 --- a/sdks/python/pyproject.toml +++ b/sdks/python/pyproject.toml @@ -52,7 +52,14 @@ Repository = "https://github.com/tokencanopy/e2a" Documentation = "https://e2a.dev" [project.optional-dependencies] -dev = ["pytest>=7", "pytest-cov>=5", "pytest-httpx", "anyio[trio]", "pyyaml>=6", "build", "twine", "mypy>=1.10,<1.19"] +# pydantic<2.14 here is for the mypy gate, not a runtime constraint: [tool.mypy] +# checks under python_version 3.9 and follows imports into the installed +# pydantic, while CI installs on 3.12. pydantic 2.14 requires Python >=3.10 and +# uses `match` statements, which that 3.9 grammar rejects ("Pattern matching is +# only supported in Python 3.10 and greater"). A real 3.9 user resolves 2.13.x, +# so the dev install stays at what they get. Drop the cap when requires-python +# moves to >=3.10. +dev = ["pytest>=7", "pytest-cov>=5", "pytest-httpx", "anyio[trio]", "pyyaml>=6", "build", "twine", "mypy>=1.10,<1.19", "pydantic<2.14"] ws = ["websockets>=14"] # Unit-test coverage gate (pytest-cov). The OpenAPI-Generator client base under