From 54db13c22fdb79fcf4f78d48a41ebe4a20e82a7d Mon Sep 17 00:00:00 2001 From: Eduard van Valkenburg Date: Wed, 5 Nov 2025 10:42:39 +0100 Subject: [PATCH] Python: add support for Python 3.14 (#1904) * add tests for py3.14 and add classifier * remove macos * allow openai v2 --- .github/workflows/python-code-quality.yml | 2 +- .github/workflows/python-lab-tests.yml | 2 +- .github/workflows/python-tests.yml | 2 +- python/packages/a2a/pyproject.toml | 1 + python/packages/anthropic/pyproject.toml | 1 + python/packages/azure-ai/pyproject.toml | 1 + python/packages/copilotstudio/pyproject.toml | 1 + python/packages/core/pyproject.toml | 3 ++- python/packages/devui/pyproject.toml | 1 + python/packages/lab/pyproject.toml | 3 ++- python/packages/mem0/pyproject.toml | 1 + python/packages/purview/pyproject.toml | 1 + python/packages/redis/pyproject.toml | 1 + python/pyproject.toml | 1 + python/uv.lock | 2 +- 15 files changed, 17 insertions(+), 6 deletions(-) diff --git a/.github/workflows/python-code-quality.yml b/.github/workflows/python-code-quality.yml index a39445c643..871436509c 100644 --- a/.github/workflows/python-code-quality.yml +++ b/.github/workflows/python-code-quality.yml @@ -18,7 +18,7 @@ jobs: strategy: fail-fast: false matrix: - python-version: ["3.10"] + python-version: ["3.10", "3.14"] runs-on: ubuntu-latest continue-on-error: true defaults: diff --git a/.github/workflows/python-lab-tests.yml b/.github/workflows/python-lab-tests.yml index bae78be27c..ae526cf962 100644 --- a/.github/workflows/python-lab-tests.yml +++ b/.github/workflows/python-lab-tests.yml @@ -48,7 +48,7 @@ jobs: strategy: fail-fast: true matrix: - python-version: ["3.10", "3.11", "3.12", "3.13"] + python-version: ["3.10", "3.11", "3.12", "3.13", "3.14"] # TODO(ekzhu): re-enable macos-latest when this is fixed: https://github.com/actions/runner-images/issues/11881 os: [ubuntu-latest, windows-latest] env: diff --git a/.github/workflows/python-tests.yml b/.github/workflows/python-tests.yml index 7a6badaba4..697a8ff4a7 100644 --- a/.github/workflows/python-tests.yml +++ b/.github/workflows/python-tests.yml @@ -16,7 +16,7 @@ jobs: strategy: fail-fast: true matrix: - python-version: ["3.10", "3.11", "3.12", "3.13"] + python-version: ["3.10", "3.11", "3.12", "3.13", "3.14"] # todo: add macos-latest when problems are resolved os: [ubuntu-latest, windows-latest] env: diff --git a/python/packages/a2a/pyproject.toml b/python/packages/a2a/pyproject.toml index 058a843523..c7a153c9fc 100644 --- a/python/packages/a2a/pyproject.toml +++ b/python/packages/a2a/pyproject.toml @@ -19,6 +19,7 @@ classifiers = [ "Programming Language :: Python :: 3.11", "Programming Language :: Python :: 3.12", "Programming Language :: Python :: 3.13", + "Programming Language :: Python :: 3.14", "Typing :: Typed", ] dependencies = [ diff --git a/python/packages/anthropic/pyproject.toml b/python/packages/anthropic/pyproject.toml index 65f3419276..e31e93ea7a 100644 --- a/python/packages/anthropic/pyproject.toml +++ b/python/packages/anthropic/pyproject.toml @@ -19,6 +19,7 @@ classifiers = [ "Programming Language :: Python :: 3.11", "Programming Language :: Python :: 3.12", "Programming Language :: Python :: 3.13", + "Programming Language :: Python :: 3.14", "Typing :: Typed", ] dependencies = [ diff --git a/python/packages/azure-ai/pyproject.toml b/python/packages/azure-ai/pyproject.toml index e68fdb0b66..8119e7b47c 100644 --- a/python/packages/azure-ai/pyproject.toml +++ b/python/packages/azure-ai/pyproject.toml @@ -19,6 +19,7 @@ classifiers = [ "Programming Language :: Python :: 3.11", "Programming Language :: Python :: 3.12", "Programming Language :: Python :: 3.13", + "Programming Language :: Python :: 3.14", "Typing :: Typed", ] dependencies = [ diff --git a/python/packages/copilotstudio/pyproject.toml b/python/packages/copilotstudio/pyproject.toml index 7d2b927201..3ad6aad137 100644 --- a/python/packages/copilotstudio/pyproject.toml +++ b/python/packages/copilotstudio/pyproject.toml @@ -19,6 +19,7 @@ classifiers = [ "Programming Language :: Python :: 3.11", "Programming Language :: Python :: 3.12", "Programming Language :: Python :: 3.13", + "Programming Language :: Python :: 3.14", "Typing :: Typed", ] dependencies = [ diff --git a/python/packages/core/pyproject.toml b/python/packages/core/pyproject.toml index c4cef634a3..77dae0ea63 100644 --- a/python/packages/core/pyproject.toml +++ b/python/packages/core/pyproject.toml @@ -19,6 +19,7 @@ classifiers = [ "Programming Language :: Python :: 3.11", "Programming Language :: Python :: 3.12", "Programming Language :: Python :: 3.13", + "Programming Language :: Python :: 3.14", "Typing :: Typed", ] dependencies = [ @@ -32,7 +33,7 @@ dependencies = [ "opentelemetry-exporter-otlp-proto-grpc>=1.36.0", "opentelemetry-semantic-conventions-ai>=0.4.13", # connectors and functions - "openai>=1.99.0,<2", + "openai>=1.99.0", "azure-identity>=1,<2", "mcp[ws]>=1.13", ] diff --git a/python/packages/devui/pyproject.toml b/python/packages/devui/pyproject.toml index 02d1e7de0a..2e84110e5d 100644 --- a/python/packages/devui/pyproject.toml +++ b/python/packages/devui/pyproject.toml @@ -19,6 +19,7 @@ classifiers = [ "Programming Language :: Python :: 3.11", "Programming Language :: Python :: 3.12", "Programming Language :: Python :: 3.13", + "Programming Language :: Python :: 3.14", "Typing :: Typed", ] dependencies = [ diff --git a/python/packages/lab/pyproject.toml b/python/packages/lab/pyproject.toml index d0a91e4147..05abc5b6c1 100644 --- a/python/packages/lab/pyproject.toml +++ b/python/packages/lab/pyproject.toml @@ -19,6 +19,7 @@ classifiers = [ "Programming Language :: Python :: 3.11", "Programming Language :: Python :: 3.12", "Programming Language :: Python :: 3.13", + "Programming Language :: Python :: 3.14", ] dependencies = [ "agent-framework-core", @@ -118,7 +119,7 @@ ignore = [ "INP001", # Ignore missing __init__.py in namespace packages. "RUF029", # Allow use of 'assert' statements; assertions are used for internal checks in experimental code. "ASYNC240", # Allow 'async for' outside of async functions in test and experimental code. -] +] [tool.coverage.run] omit = [ diff --git a/python/packages/mem0/pyproject.toml b/python/packages/mem0/pyproject.toml index a59acf5e86..a02c266ae2 100644 --- a/python/packages/mem0/pyproject.toml +++ b/python/packages/mem0/pyproject.toml @@ -19,6 +19,7 @@ classifiers = [ "Programming Language :: Python :: 3.11", "Programming Language :: Python :: 3.12", "Programming Language :: Python :: 3.13", + "Programming Language :: Python :: 3.14", "Typing :: Typed", ] dependencies = [ diff --git a/python/packages/purview/pyproject.toml b/python/packages/purview/pyproject.toml index e7f120a23a..905793ebe9 100644 --- a/python/packages/purview/pyproject.toml +++ b/python/packages/purview/pyproject.toml @@ -19,6 +19,7 @@ classifiers = [ "Programming Language :: Python :: 3.11", "Programming Language :: Python :: 3.12", "Programming Language :: Python :: 3.13", + "Programming Language :: Python :: 3.14", "Framework :: Pydantic :: 2", "Typing :: Typed", ] diff --git a/python/packages/redis/pyproject.toml b/python/packages/redis/pyproject.toml index 3e359b522e..a5653d59f1 100644 --- a/python/packages/redis/pyproject.toml +++ b/python/packages/redis/pyproject.toml @@ -19,6 +19,7 @@ classifiers = [ "Programming Language :: Python :: 3.11", "Programming Language :: Python :: 3.12", "Programming Language :: Python :: 3.13", + "Programming Language :: Python :: 3.14", "Typing :: Typed", ] dependencies = [ diff --git a/python/pyproject.toml b/python/pyproject.toml index 72eb4ba258..b798753363 100644 --- a/python/pyproject.toml +++ b/python/pyproject.toml @@ -19,6 +19,7 @@ classifiers = [ "Programming Language :: Python :: 3.11", "Programming Language :: Python :: 3.12", "Programming Language :: Python :: 3.13", + "Programming Language :: Python :: 3.14", "Typing :: Typed", ] dependencies = [ diff --git a/python/uv.lock b/python/uv.lock index eb508ff2ed..f8bbf5feb6 100644 --- a/python/uv.lock +++ b/python/uv.lock @@ -324,7 +324,7 @@ requires-dist = [ { name = "agent-framework-redis", marker = "extra == 'all'", editable = "packages/redis" }, { name = "azure-identity", specifier = ">=1,<2" }, { name = "mcp", extras = ["ws"], specifier = ">=1.13" }, - { name = "openai", specifier = ">=1.99.0,<2" }, + { name = "openai", specifier = ">=1.99.0" }, { name = "opentelemetry-api", specifier = ">=1.24" }, { name = "opentelemetry-exporter-otlp-proto-grpc", specifier = ">=1.36.0" }, { name = "opentelemetry-sdk", specifier = ">=1.24" },