From 16c73db21cb23948cd1a7b98a8a7e05302d519cb Mon Sep 17 00:00:00 2001 From: Ivana Kellyer Date: Wed, 8 Oct 2025 15:10:51 +0200 Subject: [PATCH 01/20] ci: Run test suite on Python 3.14 --- .github/workflows/test-integrations-cloud.yml | 2 +- .../workflows/test-integrations-common.yml | 2 +- .github/workflows/test-integrations-misc.yml | 2 +- .github/workflows/test-integrations-web-2.yml | 2 +- scripts/populate_tox/releases.jsonl | 14 +++---- scripts/populate_tox/tox.jinja | 13 +++--- tox.ini | 41 ++++++++++--------- 7 files changed, 39 insertions(+), 37 deletions(-) diff --git a/.github/workflows/test-integrations-cloud.yml b/.github/workflows/test-integrations-cloud.yml index 48a2881ffc..9b4b40f299 100644 --- a/.github/workflows/test-integrations-cloud.yml +++ b/.github/workflows/test-integrations-cloud.yml @@ -29,7 +29,7 @@ jobs: strategy: fail-fast: false matrix: - python-version: ["3.6","3.7","3.8","3.9","3.10","3.11","3.12","3.13"] + python-version: ["3.6","3.7","3.8","3.9","3.10","3.11","3.12","3.13","3.14"] # python3.6 reached EOL and is no longer being supported on # new versions of hosted runners on Github Actions # ubuntu-20.04 is the last version that supported python3.6 diff --git a/.github/workflows/test-integrations-common.yml b/.github/workflows/test-integrations-common.yml index eb5dde8b17..7d4a9a9566 100644 --- a/.github/workflows/test-integrations-common.yml +++ b/.github/workflows/test-integrations-common.yml @@ -29,7 +29,7 @@ jobs: strategy: fail-fast: false matrix: - python-version: ["3.6","3.7","3.8","3.9","3.10","3.11","3.12","3.13"] + python-version: ["3.6","3.7","3.8","3.9","3.10","3.11","3.12","3.13","3.14"] # python3.6 reached EOL and is no longer being supported on # new versions of hosted runners on Github Actions # ubuntu-20.04 is the last version that supported python3.6 diff --git a/.github/workflows/test-integrations-misc.yml b/.github/workflows/test-integrations-misc.yml index 2aaf2f07fe..365f0f47bc 100644 --- a/.github/workflows/test-integrations-misc.yml +++ b/.github/workflows/test-integrations-misc.yml @@ -29,7 +29,7 @@ jobs: strategy: fail-fast: false matrix: - python-version: ["3.6","3.7","3.8","3.9","3.10","3.11","3.12","3.13"] + python-version: ["3.6","3.7","3.8","3.9","3.10","3.11","3.12","3.13","3.14"] # python3.6 reached EOL and is no longer being supported on # new versions of hosted runners on Github Actions # ubuntu-20.04 is the last version that supported python3.6 diff --git a/.github/workflows/test-integrations-web-2.yml b/.github/workflows/test-integrations-web-2.yml index 98cf4456e8..699915c387 100644 --- a/.github/workflows/test-integrations-web-2.yml +++ b/.github/workflows/test-integrations-web-2.yml @@ -29,7 +29,7 @@ jobs: strategy: fail-fast: false matrix: - python-version: ["3.6","3.7","3.8","3.9","3.10","3.11","3.12","3.13"] + python-version: ["3.6","3.7","3.8","3.9","3.10","3.11","3.12","3.13","3.14"] # python3.6 reached EOL and is no longer being supported on # new versions of hosted runners on Github Actions # ubuntu-20.04 is the last version that supported python3.6 diff --git a/scripts/populate_tox/releases.jsonl b/scripts/populate_tox/releases.jsonl index 9f937e5e77..9dffc0e7f9 100644 --- a/scripts/populate_tox/releases.jsonl +++ b/scripts/populate_tox/releases.jsonl @@ -46,7 +46,7 @@ {"info": {"classifiers": ["Development Status :: 5 - Production/Stable", "Intended Audience :: Developers", "License :: OSI Approved :: Apache Software License", "Natural Language :: English", "Programming Language :: Python", "Programming Language :: Python :: 2.7", "Programming Language :: Python :: 3", "Programming Language :: Python :: 3.4", "Programming Language :: Python :: 3.5", "Programming Language :: Python :: 3.6", "Programming Language :: Python :: 3.7"], "name": "boto3", "requires_python": "", "version": "1.12.49", "yanked": false}} {"info": {"classifiers": ["Development Status :: 5 - Production/Stable", "Intended Audience :: Developers", "License :: OSI Approved :: Apache Software License", "Natural Language :: English", "Programming Language :: Python", "Programming Language :: Python :: 3", "Programming Language :: Python :: 3.10", "Programming Language :: Python :: 3.6", "Programming Language :: Python :: 3.7", "Programming Language :: Python :: 3.8", "Programming Language :: Python :: 3.9"], "name": "boto3", "requires_python": ">= 3.6", "version": "1.20.54", "yanked": false}} {"info": {"classifiers": ["Development Status :: 5 - Production/Stable", "Intended Audience :: Developers", "License :: OSI Approved :: Apache Software License", "Natural Language :: English", "Programming Language :: Python", "Programming Language :: Python :: 3", "Programming Language :: Python :: 3 :: Only", "Programming Language :: Python :: 3.10", "Programming Language :: Python :: 3.11", "Programming Language :: Python :: 3.12", "Programming Language :: Python :: 3.7", "Programming Language :: Python :: 3.8", "Programming Language :: Python :: 3.9"], "name": "boto3", "requires_python": ">= 3.7", "version": "1.28.85", "yanked": false}} -{"info": {"classifiers": ["Development Status :: 5 - Production/Stable", "Intended Audience :: Developers", "License :: OSI Approved :: Apache Software License", "Natural Language :: English", "Programming Language :: Python", "Programming Language :: Python :: 3", "Programming Language :: Python :: 3 :: Only", "Programming Language :: Python :: 3.10", "Programming Language :: Python :: 3.11", "Programming Language :: Python :: 3.12", "Programming Language :: Python :: 3.13", "Programming Language :: Python :: 3.14", "Programming Language :: Python :: 3.9"], "name": "boto3", "requires_python": ">=3.9", "version": "1.40.46", "yanked": false}} +{"info": {"classifiers": ["Development Status :: 5 - Production/Stable", "Intended Audience :: Developers", "License :: OSI Approved :: Apache Software License", "Natural Language :: English", "Programming Language :: Python", "Programming Language :: Python :: 3", "Programming Language :: Python :: 3 :: Only", "Programming Language :: Python :: 3.10", "Programming Language :: Python :: 3.11", "Programming Language :: Python :: 3.12", "Programming Language :: Python :: 3.13", "Programming Language :: Python :: 3.14", "Programming Language :: Python :: 3.9"], "name": "boto3", "requires_python": ">=3.9", "version": "1.40.47", "yanked": false}} {"info": {"classifiers": ["Development Status :: 4 - Beta", "Intended Audience :: Developers", "License :: OSI Approved :: MIT License", "Programming Language :: Python :: 2.5", "Programming Language :: Python :: 2.6", "Programming Language :: Python :: 2.7", "Programming Language :: Python :: 3", "Programming Language :: Python :: 3.2", "Programming Language :: Python :: 3.3", "Programming Language :: Python :: 3.4", "Programming Language :: Python :: 3.5", "Programming Language :: Python :: 3.6", "Programming Language :: Python :: 3.7", "Topic :: Internet :: WWW/HTTP :: Dynamic Content :: CGI Tools/Libraries", "Topic :: Internet :: WWW/HTTP :: HTTP Servers", "Topic :: Internet :: WWW/HTTP :: WSGI", "Topic :: Internet :: WWW/HTTP :: WSGI :: Application", "Topic :: Internet :: WWW/HTTP :: WSGI :: Middleware", "Topic :: Internet :: WWW/HTTP :: WSGI :: Server", "Topic :: Software Development :: Libraries :: Application Frameworks"], "name": "bottle", "requires_python": "", "version": "0.12.25", "yanked": false}} {"info": {"classifiers": ["Development Status :: 4 - Beta", "Intended Audience :: Developers", "License :: OSI Approved :: MIT License", "Operating System :: OS Independent", "Programming Language :: Python :: 2.7", "Programming Language :: Python :: 3", "Programming Language :: Python :: 3.10", "Programming Language :: Python :: 3.11", "Programming Language :: Python :: 3.12", "Programming Language :: Python :: 3.13", "Programming Language :: Python :: 3.8", "Programming Language :: Python :: 3.9", "Topic :: Internet :: WWW/HTTP :: Dynamic Content :: CGI Tools/Libraries", "Topic :: Internet :: WWW/HTTP :: HTTP Servers", "Topic :: Internet :: WWW/HTTP :: WSGI", "Topic :: Internet :: WWW/HTTP :: WSGI :: Application", "Topic :: Internet :: WWW/HTTP :: WSGI :: Middleware", "Topic :: Internet :: WWW/HTTP :: WSGI :: Server", "Topic :: Software Development :: Libraries :: Application Frameworks"], "name": "bottle", "requires_python": null, "version": "0.13.4", "yanked": false}} {"info": {"classifiers": ["Development Status :: 5 - Production/Stable", "License :: OSI Approved :: BSD License", "Operating System :: OS Independent", "Programming Language :: Python", "Programming Language :: Python :: 2", "Programming Language :: Python :: 2.7", "Programming Language :: Python :: 3", "Programming Language :: Python :: 3.5", "Programming Language :: Python :: 3.6", "Programming Language :: Python :: 3.7", "Programming Language :: Python :: 3.8", "Programming Language :: Python :: Implementation :: CPython", "Programming Language :: Python :: Implementation :: PyPy", "Topic :: Software Development :: Object Brokering", "Topic :: System :: Distributed Computing"], "name": "celery", "requires_python": ">=2.7, !=3.0.*, !=3.1.*, !=3.2.*, !=3.3.*, !=3.4.*", "version": "4.4.7", "yanked": false}} @@ -66,7 +66,7 @@ {"info": {"classifiers": ["Development Status :: 5 - Production/Stable", "Environment :: Web Environment", "Intended Audience :: Developers", "Intended Audience :: System Administrators", "License :: OSI Approved :: Apache Software License", "Natural Language :: English", "Operating System :: MacOS :: MacOS X", "Operating System :: Microsoft :: Windows", "Operating System :: POSIX", "Programming Language :: Cython", "Programming Language :: Python", "Programming Language :: Python :: 3", "Programming Language :: Python :: 3.10", "Programming Language :: Python :: 3.11", "Programming Language :: Python :: 3.12", "Programming Language :: Python :: 3.5", "Programming Language :: Python :: 3.6", "Programming Language :: Python :: 3.7", "Programming Language :: Python :: 3.8", "Programming Language :: Python :: 3.9", "Programming Language :: Python :: Implementation :: CPython", "Programming Language :: Python :: Implementation :: PyPy", "Topic :: Internet :: WWW/HTTP :: WSGI", "Topic :: Software Development :: Libraries :: Application Frameworks"], "name": "falcon", "requires_python": ">=3.5", "version": "3.1.3", "yanked": false}} {"info": {"classifiers": ["Development Status :: 5 - Production/Stable", "Environment :: Web Environment", "Intended Audience :: Developers", "Intended Audience :: System Administrators", "License :: OSI Approved :: Apache Software License", "Natural Language :: English", "Operating System :: MacOS :: MacOS X", "Operating System :: Microsoft :: Windows", "Operating System :: POSIX", "Programming Language :: Cython", "Programming Language :: Python", "Programming Language :: Python :: 3", "Programming Language :: Python :: 3.10", "Programming Language :: Python :: 3.11", "Programming Language :: Python :: 3.12", "Programming Language :: Python :: 3.13", "Programming Language :: Python :: 3.14", "Programming Language :: Python :: 3.8", "Programming Language :: Python :: 3.9", "Programming Language :: Python :: Implementation :: CPython", "Programming Language :: Python :: Implementation :: PyPy", "Topic :: Internet :: WWW/HTTP :: WSGI", "Topic :: Software Development :: Libraries :: Application Frameworks", "Typing :: Typed"], "name": "falcon", "requires_python": ">=3.8", "version": "4.1.0", "yanked": false}} {"info": {"classifiers": ["Development Status :: 4 - Beta", "Environment :: Web Environment", "Framework :: AsyncIO", "Framework :: FastAPI", "Framework :: Pydantic", "Framework :: Pydantic :: 1", "Intended Audience :: Developers", "Intended Audience :: Information Technology", "Intended Audience :: System Administrators", "License :: OSI Approved :: MIT License", "Operating System :: OS Independent", "Programming Language :: Python", "Programming Language :: Python :: 3", "Programming Language :: Python :: 3 :: Only", "Programming Language :: Python :: 3.10", "Programming Language :: Python :: 3.11", "Programming Language :: Python :: 3.8", "Programming Language :: Python :: 3.9", "Topic :: Internet", "Topic :: Internet :: WWW/HTTP", "Topic :: Internet :: WWW/HTTP :: HTTP Servers", "Topic :: Software Development", "Topic :: Software Development :: Libraries", "Topic :: Software Development :: Libraries :: Application Frameworks", "Topic :: Software Development :: Libraries :: Python Modules", "Typing :: Typed"], "name": "fastapi", "requires_python": ">=3.8", "version": "0.105.0", "yanked": false}} -{"info": {"classifiers": ["Development Status :: 4 - Beta", "Environment :: Web Environment", "Framework :: AsyncIO", "Framework :: FastAPI", "Framework :: Pydantic", "Framework :: Pydantic :: 1", "Framework :: Pydantic :: 2", "Intended Audience :: Developers", "Intended Audience :: Information Technology", "Intended Audience :: System Administrators", "License :: OSI Approved :: MIT License", "Operating System :: OS Independent", "Programming Language :: Python", "Programming Language :: Python :: 3", "Programming Language :: Python :: 3 :: Only", "Programming Language :: Python :: 3.10", "Programming Language :: Python :: 3.11", "Programming Language :: Python :: 3.12", "Programming Language :: Python :: 3.13", "Programming Language :: Python :: 3.8", "Programming Language :: Python :: 3.9", "Topic :: Internet", "Topic :: Internet :: WWW/HTTP", "Topic :: Internet :: WWW/HTTP :: HTTP Servers", "Topic :: Software Development", "Topic :: Software Development :: Libraries", "Topic :: Software Development :: Libraries :: Application Frameworks", "Topic :: Software Development :: Libraries :: Python Modules", "Typing :: Typed"], "name": "fastapi", "requires_python": ">=3.8", "version": "0.118.0", "yanked": false}} +{"info": {"classifiers": ["Development Status :: 4 - Beta", "Environment :: Web Environment", "Framework :: AsyncIO", "Framework :: FastAPI", "Framework :: Pydantic", "Framework :: Pydantic :: 1", "Framework :: Pydantic :: 2", "Intended Audience :: Developers", "Intended Audience :: Information Technology", "Intended Audience :: System Administrators", "License :: OSI Approved :: MIT License", "Operating System :: OS Independent", "Programming Language :: Python", "Programming Language :: Python :: 3", "Programming Language :: Python :: 3 :: Only", "Programming Language :: Python :: 3.10", "Programming Language :: Python :: 3.11", "Programming Language :: Python :: 3.12", "Programming Language :: Python :: 3.13", "Programming Language :: Python :: 3.8", "Programming Language :: Python :: 3.9", "Topic :: Internet", "Topic :: Internet :: WWW/HTTP", "Topic :: Internet :: WWW/HTTP :: HTTP Servers", "Topic :: Software Development", "Topic :: Software Development :: Libraries", "Topic :: Software Development :: Libraries :: Application Frameworks", "Topic :: Software Development :: Libraries :: Python Modules", "Typing :: Typed"], "name": "fastapi", "requires_python": ">=3.8", "version": "0.118.1", "yanked": false}} {"info": {"classifiers": ["Development Status :: 4 - Beta", "Environment :: Web Environment", "Framework :: AsyncIO", "Framework :: FastAPI", "Intended Audience :: Developers", "Intended Audience :: Information Technology", "Intended Audience :: System Administrators", "License :: OSI Approved :: MIT License", "Operating System :: OS Independent", "Programming Language :: Python", "Programming Language :: Python :: 3", "Programming Language :: Python :: 3 :: Only", "Programming Language :: Python :: 3.10", "Programming Language :: Python :: 3.6", "Programming Language :: Python :: 3.7", "Programming Language :: Python :: 3.8", "Programming Language :: Python :: 3.9", "Topic :: Internet", "Topic :: Internet :: WWW/HTTP", "Topic :: Internet :: WWW/HTTP :: HTTP Servers", "Topic :: Software Development", "Topic :: Software Development :: Libraries", "Topic :: Software Development :: Libraries :: Application Frameworks", "Topic :: Software Development :: Libraries :: Python Modules", "Typing :: Typed"], "name": "fastapi", "requires_python": ">=3.6.1", "version": "0.79.1", "yanked": false}} {"info": {"classifiers": ["Development Status :: 4 - Beta", "Environment :: Web Environment", "Framework :: AsyncIO", "Framework :: FastAPI", "Intended Audience :: Developers", "Intended Audience :: Information Technology", "Intended Audience :: System Administrators", "License :: OSI Approved :: MIT License", "Operating System :: OS Independent", "Programming Language :: Python", "Programming Language :: Python :: 3", "Programming Language :: Python :: 3 :: Only", "Programming Language :: Python :: 3.10", "Programming Language :: Python :: 3.11", "Programming Language :: Python :: 3.7", "Programming Language :: Python :: 3.8", "Programming Language :: Python :: 3.9", "Topic :: Internet", "Topic :: Internet :: WWW/HTTP", "Topic :: Internet :: WWW/HTTP :: HTTP Servers", "Topic :: Software Development", "Topic :: Software Development :: Libraries", "Topic :: Software Development :: Libraries :: Application Frameworks", "Topic :: Software Development :: Libraries :: Python Modules", "Typing :: Typed"], "name": "fastapi", "requires_python": ">=3.7", "version": "0.92.0", "yanked": false}} {"info": {"classifiers": ["Development Status :: 5 - Production/Stable", "Intended Audience :: Developers", "Programming Language :: Python :: 3", "Programming Language :: Python :: 3 :: Only", "Programming Language :: Python :: 3.10", "Programming Language :: Python :: 3.6", "Programming Language :: Python :: 3.7", "Programming Language :: Python :: 3.8", "Programming Language :: Python :: 3.9", "Programming Language :: Python :: Implementation :: PyPy", "Topic :: Software Development :: Libraries"], "name": "gql", "requires_python": "", "version": "3.4.1", "yanked": false}} @@ -95,11 +95,11 @@ {"info": {"classifiers": ["Intended Audience :: Developers", "Intended Audience :: Education", "Intended Audience :: Science/Research", "License :: OSI Approved :: Apache Software License", "Operating System :: OS Independent", "Programming Language :: Python :: 3", "Programming Language :: Python :: 3 :: Only", "Programming Language :: Python :: 3.10", "Programming Language :: Python :: 3.11", "Programming Language :: Python :: 3.12", "Programming Language :: Python :: 3.13", "Programming Language :: Python :: 3.8", "Programming Language :: Python :: 3.9", "Topic :: Scientific/Engineering :: Artificial Intelligence"], "name": "huggingface-hub", "requires_python": ">=3.8.0", "version": "0.28.1", "yanked": false}} {"info": {"classifiers": ["Intended Audience :: Developers", "Intended Audience :: Education", "Intended Audience :: Science/Research", "License :: OSI Approved :: Apache Software License", "Operating System :: OS Independent", "Programming Language :: Python :: 3", "Programming Language :: Python :: 3 :: Only", "Programming Language :: Python :: 3.10", "Programming Language :: Python :: 3.11", "Programming Language :: Python :: 3.12", "Programming Language :: Python :: 3.13", "Programming Language :: Python :: 3.8", "Programming Language :: Python :: 3.9", "Topic :: Scientific/Engineering :: Artificial Intelligence"], "name": "huggingface-hub", "requires_python": ">=3.8.0", "version": "0.32.6", "yanked": false}} {"info": {"classifiers": ["Intended Audience :: Developers", "Intended Audience :: Education", "Intended Audience :: Science/Research", "License :: OSI Approved :: Apache Software License", "Operating System :: OS Independent", "Programming Language :: Python :: 3", "Programming Language :: Python :: 3 :: Only", "Programming Language :: Python :: 3.10", "Programming Language :: Python :: 3.11", "Programming Language :: Python :: 3.12", "Programming Language :: Python :: 3.13", "Programming Language :: Python :: 3.8", "Programming Language :: Python :: 3.9", "Topic :: Scientific/Engineering :: Artificial Intelligence"], "name": "huggingface-hub", "requires_python": ">=3.8.0", "version": "0.35.3", "yanked": false}} -{"info": {"classifiers": ["Intended Audience :: Developers", "Intended Audience :: Education", "Intended Audience :: Science/Research", "License :: OSI Approved :: Apache Software License", "Operating System :: OS Independent", "Programming Language :: Python :: 3", "Programming Language :: Python :: 3 :: Only", "Programming Language :: Python :: 3.10", "Programming Language :: Python :: 3.11", "Programming Language :: Python :: 3.12", "Programming Language :: Python :: 3.13", "Programming Language :: Python :: 3.9", "Topic :: Scientific/Engineering :: Artificial Intelligence"], "name": "huggingface-hub", "requires_python": ">=3.9.0", "version": "1.0.0rc2", "yanked": false}} +{"info": {"classifiers": ["Intended Audience :: Developers", "Intended Audience :: Education", "Intended Audience :: Science/Research", "License :: OSI Approved :: Apache Software License", "Operating System :: OS Independent", "Programming Language :: Python :: 3", "Programming Language :: Python :: 3 :: Only", "Programming Language :: Python :: 3.10", "Programming Language :: Python :: 3.11", "Programming Language :: Python :: 3.12", "Programming Language :: Python :: 3.13", "Programming Language :: Python :: 3.9", "Topic :: Scientific/Engineering :: Artificial Intelligence"], "name": "huggingface-hub", "requires_python": ">=3.9.0", "version": "1.0.0rc4", "yanked": false}} {"info": {"classifiers": ["License :: OSI Approved :: MIT License", "Programming Language :: Python :: 3", "Programming Language :: Python :: 3.10", "Programming Language :: Python :: 3.11", "Programming Language :: Python :: 3.12", "Programming Language :: Python :: 3.9"], "name": "langchain", "requires_python": "<4.0,>=3.8.1", "version": "0.1.20", "yanked": false}} {"info": {"classifiers": ["License :: OSI Approved :: MIT License", "Programming Language :: Python :: 3", "Programming Language :: Python :: 3.10", "Programming Language :: Python :: 3.11", "Programming Language :: Python :: 3.12", "Programming Language :: Python :: 3.9"], "name": "langchain", "requires_python": "<4.0,>=3.8.1", "version": "0.2.17", "yanked": false}} {"info": {"classifiers": [], "name": "langchain", "requires_python": "<4.0,>=3.9", "version": "0.3.27", "yanked": false}} -{"info": {"classifiers": [], "name": "langgraph", "requires_python": ">=3.9", "version": "0.6.8", "yanked": false}} +{"info": {"classifiers": [], "name": "langgraph", "requires_python": ">=3.9", "version": "0.6.9", "yanked": false}} {"info": {"classifiers": [], "name": "langgraph", "requires_python": ">=3.10", "version": "1.0.0a4", "yanked": false}} {"info": {"classifiers": ["Intended Audience :: Developers", "License :: OSI Approved :: Apache Software License", "Operating System :: OS Independent", "Programming Language :: Python :: 3", "Programming Language :: Python :: 3.10", "Programming Language :: Python :: 3.11", "Programming Language :: Python :: 3.12", "Programming Language :: Python :: 3.13", "Programming Language :: Python :: 3.14", "Programming Language :: Python :: 3.9", "Topic :: Software Development", "Topic :: Software Development :: Libraries"], "name": "launchdarkly-server-sdk", "requires_python": ">=3.9", "version": "9.12.1", "yanked": false}} {"info": {"classifiers": ["Intended Audience :: Developers", "License :: OSI Approved :: Apache Software License", "Operating System :: OS Independent", "Programming Language :: Python :: 3", "Programming Language :: Python :: 3.10", "Programming Language :: Python :: 3.11", "Programming Language :: Python :: 3.12", "Programming Language :: Python :: 3.13", "Programming Language :: Python :: 3.8", "Programming Language :: Python :: 3.9", "Topic :: Software Development", "Topic :: Software Development :: Libraries"], "name": "launchdarkly-server-sdk", "requires_python": ">=3.8", "version": "9.8.1", "yanked": false}} @@ -128,7 +128,7 @@ {"info": {"classifiers": ["Development Status :: 5 - Production/Stable", "Intended Audience :: Developers", "License :: OSI Approved :: Apache Software License", "Operating System :: MacOS :: MacOS X", "Operating System :: Microsoft :: Windows", "Operating System :: POSIX", "Programming Language :: Python :: 2", "Programming Language :: Python :: 2.6", "Programming Language :: Python :: 2.7", "Programming Language :: Python :: 3", "Programming Language :: Python :: 3.3", "Programming Language :: Python :: 3.4", "Programming Language :: Python :: 3.5", "Programming Language :: Python :: 3.6", "Programming Language :: Python :: Implementation :: CPython", "Programming Language :: Python :: Implementation :: PyPy", "Topic :: Database"], "name": "pymongo", "requires_python": "", "version": "3.5.1", "yanked": false}} {"info": {"classifiers": ["Development Status :: 5 - Production/Stable", "Intended Audience :: Developers", "License :: OSI Approved :: Apache Software License", "Operating System :: MacOS :: MacOS X", "Operating System :: Microsoft :: Windows", "Operating System :: POSIX", "Programming Language :: Python :: 2", "Programming Language :: Python :: 2.6", "Programming Language :: Python :: 2.7", "Programming Language :: Python :: 3", "Programming Language :: Python :: 3.4", "Programming Language :: Python :: 3.5", "Programming Language :: Python :: 3.6", "Programming Language :: Python :: Implementation :: CPython", "Programming Language :: Python :: Implementation :: PyPy", "Topic :: Database"], "name": "pymongo", "requires_python": "", "version": "3.6.1", "yanked": false}} {"info": {"classifiers": ["Development Status :: 5 - Production/Stable", "Intended Audience :: Developers", "License :: OSI Approved :: Apache Software License", "Operating System :: MacOS :: MacOS X", "Operating System :: Microsoft :: Windows", "Operating System :: POSIX", "Programming Language :: Python :: 3", "Programming Language :: Python :: 3 :: Only", "Programming Language :: Python :: 3.10", "Programming Language :: Python :: 3.6", "Programming Language :: Python :: 3.7", "Programming Language :: Python :: 3.8", "Programming Language :: Python :: 3.9", "Programming Language :: Python :: Implementation :: CPython", "Programming Language :: Python :: Implementation :: PyPy", "Topic :: Database"], "name": "pymongo", "requires_python": ">=3.6", "version": "4.0.2", "yanked": false}} -{"info": {"classifiers": ["Development Status :: 5 - Production/Stable", "Intended Audience :: Developers", "License :: OSI Approved :: Apache Software License", "Operating System :: MacOS :: MacOS X", "Operating System :: Microsoft :: Windows", "Operating System :: POSIX", "Programming Language :: Python :: 3", "Programming Language :: Python :: 3 :: Only", "Programming Language :: Python :: 3.10", "Programming Language :: Python :: 3.11", "Programming Language :: Python :: 3.12", "Programming Language :: Python :: 3.13", "Programming Language :: Python :: 3.9", "Programming Language :: Python :: Implementation :: CPython", "Programming Language :: Python :: Implementation :: PyPy", "Topic :: Database", "Typing :: Typed"], "name": "pymongo", "requires_python": ">=3.9", "version": "4.15.2", "yanked": false}} +{"info": {"classifiers": ["Development Status :: 5 - Production/Stable", "Intended Audience :: Developers", "License :: OSI Approved :: Apache Software License", "Operating System :: MacOS :: MacOS X", "Operating System :: Microsoft :: Windows", "Operating System :: POSIX", "Programming Language :: Python :: 3", "Programming Language :: Python :: 3 :: Only", "Programming Language :: Python :: 3.10", "Programming Language :: Python :: 3.11", "Programming Language :: Python :: 3.12", "Programming Language :: Python :: 3.13", "Programming Language :: Python :: 3.9", "Programming Language :: Python :: Implementation :: CPython", "Programming Language :: Python :: Implementation :: PyPy", "Topic :: Database", "Typing :: Typed"], "name": "pymongo", "requires_python": ">=3.9", "version": "4.15.3", "yanked": false}} {"info": {"classifiers": ["Framework :: Pylons", "Intended Audience :: Developers", "License :: Repoze Public License", "Programming Language :: Python", "Topic :: Internet :: WWW/HTTP", "Topic :: Internet :: WWW/HTTP :: WSGI"], "name": "pyramid", "requires_python": null, "version": "1.0.2", "yanked": false}} {"info": {"classifiers": ["Development Status :: 6 - Mature", "Framework :: Pyramid", "Intended Audience :: Developers", "License :: Repoze Public License", "Programming Language :: Python", "Programming Language :: Python :: 2.7", "Programming Language :: Python :: 3", "Programming Language :: Python :: 3.4", "Programming Language :: Python :: 3.5", "Programming Language :: Python :: 3.6", "Programming Language :: Python :: 3.7", "Programming Language :: Python :: 3.8", "Programming Language :: Python :: 3.9", "Programming Language :: Python :: Implementation :: CPython", "Programming Language :: Python :: Implementation :: PyPy", "Topic :: Internet :: WWW/HTTP", "Topic :: Internet :: WWW/HTTP :: WSGI"], "name": "pyramid", "requires_python": ">=2.7,!=3.0.*,!=3.1.*,!=3.2.*,!=3.3.*", "version": "1.10.8", "yanked": false}} {"info": {"classifiers": ["Development Status :: 6 - Mature", "Framework :: Pyramid", "Intended Audience :: Developers", "License :: Repoze Public License", "Programming Language :: Python", "Programming Language :: Python :: 2.6", "Programming Language :: Python :: 2.7", "Programming Language :: Python :: 3", "Programming Language :: Python :: 3.2", "Programming Language :: Python :: 3.3", "Programming Language :: Python :: 3.4", "Programming Language :: Python :: 3.5", "Programming Language :: Python :: Implementation :: CPython", "Programming Language :: Python :: Implementation :: PyPy", "Topic :: Internet :: WWW/HTTP", "Topic :: Internet :: WWW/HTTP :: WSGI"], "name": "pyramid", "requires_python": "", "version": "1.6.5", "yanked": false}} @@ -155,7 +155,7 @@ {"info": {"classifiers": ["Development Status :: 5 - Production/Stable", "Environment :: Console", "Intended Audience :: Developers", "License :: OSI Approved :: MIT License", "Operating System :: OS Independent", "Programming Language :: Python", "Programming Language :: Python :: 3", "Programming Language :: Python :: 3 :: Only", "Programming Language :: Python :: 3.10", "Programming Language :: Python :: 3.11", "Programming Language :: Python :: 3.7", "Programming Language :: Python :: 3.8", "Programming Language :: Python :: 3.9", "Programming Language :: Python :: Implementation :: CPython", "Programming Language :: Python :: Implementation :: PyPy"], "name": "redis", "requires_python": ">=3.7", "version": "4.6.0", "yanked": false}} {"info": {"classifiers": ["Development Status :: 5 - Production/Stable", "Environment :: Console", "Intended Audience :: Developers", "License :: OSI Approved :: MIT License", "Operating System :: OS Independent", "Programming Language :: Python", "Programming Language :: Python :: 3", "Programming Language :: Python :: 3 :: Only", "Programming Language :: Python :: 3.10", "Programming Language :: Python :: 3.11", "Programming Language :: Python :: 3.12", "Programming Language :: Python :: 3.8", "Programming Language :: Python :: 3.9", "Programming Language :: Python :: Implementation :: CPython", "Programming Language :: Python :: Implementation :: PyPy"], "name": "redis", "requires_python": ">=3.8", "version": "5.3.1", "yanked": false}} {"info": {"classifiers": ["Development Status :: 5 - Production/Stable", "Environment :: Console", "Intended Audience :: Developers", "License :: OSI Approved :: MIT License", "Operating System :: OS Independent", "Programming Language :: Python", "Programming Language :: Python :: 3", "Programming Language :: Python :: 3 :: Only", "Programming Language :: Python :: 3.10", "Programming Language :: Python :: 3.11", "Programming Language :: Python :: 3.12", "Programming Language :: Python :: 3.13", "Programming Language :: Python :: 3.9", "Programming Language :: Python :: Implementation :: CPython", "Programming Language :: Python :: Implementation :: PyPy"], "name": "redis", "requires_python": ">=3.9", "version": "6.4.0", "yanked": false}} -{"info": {"classifiers": ["Development Status :: 5 - Production/Stable", "Environment :: Console", "Intended Audience :: Developers", "License :: OSI Approved :: MIT License", "Operating System :: OS Independent", "Programming Language :: Python", "Programming Language :: Python :: 3", "Programming Language :: Python :: 3 :: Only", "Programming Language :: Python :: 3.10", "Programming Language :: Python :: 3.11", "Programming Language :: Python :: 3.12", "Programming Language :: Python :: 3.13", "Programming Language :: Python :: 3.9", "Programming Language :: Python :: Implementation :: CPython", "Programming Language :: Python :: Implementation :: PyPy"], "name": "redis", "requires_python": ">=3.9", "version": "7.0.0b2", "yanked": false}} +{"info": {"classifiers": ["Development Status :: 5 - Production/Stable", "Environment :: Console", "Intended Audience :: Developers", "License :: OSI Approved :: MIT License", "Operating System :: OS Independent", "Programming Language :: Python", "Programming Language :: Python :: 3", "Programming Language :: Python :: 3 :: Only", "Programming Language :: Python :: 3.10", "Programming Language :: Python :: 3.11", "Programming Language :: Python :: 3.12", "Programming Language :: Python :: 3.13", "Programming Language :: Python :: 3.9", "Programming Language :: Python :: Implementation :: CPython", "Programming Language :: Python :: Implementation :: PyPy"], "name": "redis", "requires_python": ">=3.9", "version": "7.0.0b3", "yanked": false}} {"info": {"classifiers": ["Development Status :: 3 - Alpha", "Environment :: Web Environment", "Operating System :: POSIX", "Programming Language :: Python", "Programming Language :: Python :: 2", "Programming Language :: Python :: 2.7", "Programming Language :: Python :: 3", "Programming Language :: Python :: 3.2", "Programming Language :: Python :: 3.3", "Programming Language :: Python :: 3.4"], "name": "redis-py-cluster", "requires_python": null, "version": "0.1.0", "yanked": false}} {"info": {"classifiers": [], "name": "redis-py-cluster", "requires_python": null, "version": "1.1.0", "yanked": false}} {"info": {"classifiers": [], "name": "redis-py-cluster", "requires_python": null, "version": "1.2.0", "yanked": false}} @@ -191,7 +191,7 @@ {"info": {"classifiers": ["Intended Audience :: Developers", "Programming Language :: Python", "Programming Language :: Python :: 3", "Topic :: Software Development :: Libraries"], "name": "statsig", "requires_python": ">=3.7", "version": "0.55.3", "yanked": false}} {"info": {"classifiers": ["Intended Audience :: Developers", "Programming Language :: Python", "Programming Language :: Python :: 3", "Topic :: Software Development :: Libraries"], "name": "statsig", "requires_python": ">=3.7", "version": "0.65.0", "yanked": false}} {"info": {"classifiers": ["Development Status :: 5 - Production/Stable", "Intended Audience :: Developers", "License :: OSI Approved :: MIT License", "Programming Language :: Python :: 3", "Programming Language :: Python :: 3.10", "Programming Language :: Python :: 3.11", "Programming Language :: Python :: 3.8", "Programming Language :: Python :: 3.9", "Topic :: Software Development :: Libraries", "Topic :: Software Development :: Libraries :: Python Modules"], "name": "strawberry-graphql", "requires_python": ">=3.8,<4.0", "version": "0.209.8", "yanked": false}} -{"info": {"classifiers": ["Development Status :: 5 - Production/Stable", "Intended Audience :: Developers", "License :: OSI Approved :: MIT License", "Topic :: Software Development :: Libraries", "Topic :: Software Development :: Libraries :: Python Modules"], "name": "strawberry-graphql", "requires_python": "<4.0,>=3.9", "version": "0.283.1", "yanked": false}} +{"info": {"classifiers": ["Development Status :: 5 - Production/Stable", "Intended Audience :: Developers", "License :: OSI Approved :: MIT License", "Topic :: Software Development :: Libraries", "Topic :: Software Development :: Libraries :: Python Modules"], "name": "strawberry-graphql", "requires_python": "<4.0,>=3.9", "version": "0.283.2", "yanked": false}} {"info": {"classifiers": ["License :: OSI Approved :: Apache Software License", "Programming Language :: Python :: 3", "Programming Language :: Python :: 3.5", "Programming Language :: Python :: 3.6", "Programming Language :: Python :: 3.7", "Programming Language :: Python :: 3.8", "Programming Language :: Python :: Implementation :: CPython", "Programming Language :: Python :: Implementation :: PyPy"], "name": "tornado", "requires_python": ">= 3.5", "version": "6.0.4", "yanked": false}} {"info": {"classifiers": ["License :: OSI Approved :: Apache Software License", "Programming Language :: Python :: 3", "Programming Language :: Python :: 3.10", "Programming Language :: Python :: 3.11", "Programming Language :: Python :: 3.12", "Programming Language :: Python :: 3.13", "Programming Language :: Python :: 3.9", "Programming Language :: Python :: Implementation :: CPython", "Programming Language :: Python :: Implementation :: PyPy"], "name": "tornado", "requires_python": ">=3.9", "version": "6.5.2", "yanked": false}} {"info": {"classifiers": ["Development Status :: 5 - Production/Stable", "Environment :: No Input/Output (Daemon)", "Intended Audience :: Developers", "License :: OSI Approved :: GNU General Public License (GPL)", "Natural Language :: English", "Natural Language :: French", "Natural Language :: German", "Natural Language :: Spanish", "Operating System :: OS Independent", "Programming Language :: Python", "Topic :: Software Development :: Libraries :: Application Frameworks"], "name": "trytond", "requires_python": null, "version": "1.2.10", "yanked": false}} diff --git a/scripts/populate_tox/tox.jinja b/scripts/populate_tox/tox.jinja index 40ea309b08..42d2724024 100755 --- a/scripts/populate_tox/tox.jinja +++ b/scripts/populate_tox/tox.jinja @@ -18,7 +18,7 @@ requires = virtualenv<20.26.3 envlist = # === Common === - {py3.6,py3.7,py3.8,py3.9,py3.10,py3.11,py3.12,py3.13}-common + {py3.6,py3.7,py3.8,py3.9,py3.10,py3.11,py3.12,py3.13,py3.14}-common # === Gevent === {py3.6,py3.8,py3.10,py3.11,py3.12}-gevent @@ -26,19 +26,19 @@ envlist = # === Integrations === # Asgi - {py3.7,py3.12,py3.13}-asgi + {py3.7,py3.12,py3.13,py3.14}-asgi # AWS Lambda - {py3.8,py3.9,py3.11,py3.13}-aws_lambda + {py3.8,py3.9,py3.11,py3.13,py3.14}-aws_lambda # Cloud Resource Context - {py3.6,py3.12,py3.13}-cloud_resource_context + {py3.6,py3.12,py3.13,py3.14}-cloud_resource_context # GCP {py3.7}-gcp # OpenTelemetry (OTel) - {py3.7,py3.9,py3.12,py3.13}-opentelemetry + {py3.7,py3.9,py3.12,py3.13,py3.14}-opentelemetry # OpenTelemetry Experimental (POTel) {py3.8,py3.9,py3.10,py3.11,py3.12,py3.13}-potel @@ -74,7 +74,7 @@ deps = # and https://github.com/pytest-dev/pytest-forked/issues/67 # for justification of the upper bound on pytest {py3.6,py3.7}-common: pytest<7.0.0 - {py3.8,py3.9,py3.10,py3.11,py3.12,py3.13}-common: pytest + {py3.8,py3.9,py3.10,py3.11,py3.12,py3.13,py3.14}-common: pytest # === Gevent === {py3.6,py3.7,py3.8,py3.9,py3.10,py3.11}-gevent: gevent>=22.10.0, <22.11.0 @@ -177,6 +177,7 @@ basepython = py3.11: python3.11 py3.12: python3.12 py3.13: python3.13 + py3.14: python3.14 # Python version is pinned here for consistency across environments. # Tools like ruff and mypy have options that pin the target Python diff --git a/tox.ini b/tox.ini index 2c77edd07c..e7b90eba5f 100644 --- a/tox.ini +++ b/tox.ini @@ -18,7 +18,7 @@ requires = virtualenv<20.26.3 envlist = # === Common === - {py3.6,py3.7,py3.8,py3.9,py3.10,py3.11,py3.12,py3.13}-common + {py3.6,py3.7,py3.8,py3.9,py3.10,py3.11,py3.12,py3.13,py3.14}-common # === Gevent === {py3.6,py3.8,py3.10,py3.11,py3.12}-gevent @@ -26,19 +26,19 @@ envlist = # === Integrations === # Asgi - {py3.7,py3.12,py3.13}-asgi + {py3.7,py3.12,py3.13,py3.14}-asgi # AWS Lambda - {py3.8,py3.9,py3.11,py3.13}-aws_lambda + {py3.8,py3.9,py3.11,py3.13,py3.14}-aws_lambda # Cloud Resource Context - {py3.6,py3.12,py3.13}-cloud_resource_context + {py3.6,py3.12,py3.13,py3.14}-cloud_resource_context # GCP {py3.7}-gcp # OpenTelemetry (OTel) - {py3.7,py3.9,py3.12,py3.13}-opentelemetry + {py3.7,py3.9,py3.12,py3.13,py3.14}-opentelemetry # OpenTelemetry Experimental (POTel) {py3.8,py3.9,py3.10,py3.11,py3.12,py3.13}-potel @@ -75,7 +75,7 @@ envlist = {py3.8,py3.12,py3.13}-openai-notiktoken-v1.109.1 {py3.8,py3.12,py3.13}-openai-notiktoken-v2.2.0 - {py3.9,py3.12,py3.13}-langgraph-v0.6.8 + {py3.9,py3.12,py3.13}-langgraph-v0.6.9 {py3.10,py3.12,py3.13}-langgraph-v1.0.0a4 {py3.10,py3.11,py3.12}-openai_agents-v0.0.19 @@ -87,14 +87,14 @@ envlist = {py3.8,py3.12,py3.13}-huggingface_hub-v0.28.1 {py3.8,py3.12,py3.13}-huggingface_hub-v0.32.6 {py3.8,py3.12,py3.13}-huggingface_hub-v0.35.3 - {py3.9,py3.12,py3.13}-huggingface_hub-v1.0.0rc2 + {py3.9,py3.12,py3.13}-huggingface_hub-v1.0.0rc4 # ~~~ Cloud ~~~ {py3.6,py3.7}-boto3-v1.12.49 {py3.6,py3.9,py3.10}-boto3-v1.20.54 {py3.7,py3.11,py3.12}-boto3-v1.28.85 - {py3.9,py3.12,py3.13}-boto3-v1.40.46 + {py3.9,py3.12,py3.13}-boto3-v1.40.47 {py3.6,py3.7,py3.8}-chalice-v1.16.0 {py3.9,py3.12,py3.13}-chalice-v1.32.0 @@ -110,14 +110,14 @@ envlist = {py3.6}-pymongo-v3.5.1 {py3.6,py3.10,py3.11}-pymongo-v3.13.0 - {py3.9,py3.12,py3.13}-pymongo-v4.15.2 + {py3.9,py3.12,py3.13}-pymongo-v4.15.3 {py3.6}-redis-v2.10.6 {py3.6,py3.7,py3.8}-redis-v3.5.3 {py3.7,py3.10,py3.11}-redis-v4.6.0 {py3.8,py3.11,py3.12}-redis-v5.3.1 {py3.9,py3.12,py3.13}-redis-v6.4.0 - {py3.9,py3.12,py3.13}-redis-v7.0.0b2 + {py3.9,py3.12,py3.13}-redis-v7.0.0b3 {py3.6}-redis_py_cluster_legacy-v1.3.6 {py3.6,py3.7,py3.8}-redis_py_cluster_legacy-v2.1.3 @@ -153,7 +153,7 @@ envlist = {py3.8,py3.12,py3.13}-graphene-v3.4.3 {py3.8,py3.10,py3.11}-strawberry-v0.209.8 - {py3.9,py3.12,py3.13}-strawberry-v0.283.1 + {py3.9,py3.12,py3.13}-strawberry-v0.283.2 # ~~~ Network ~~~ @@ -222,7 +222,7 @@ envlist = {py3.6,py3.9,py3.10}-fastapi-v0.79.1 {py3.7,py3.10,py3.11}-fastapi-v0.92.0 {py3.8,py3.10,py3.11}-fastapi-v0.105.0 - {py3.8,py3.12,py3.13}-fastapi-v0.118.0 + {py3.8,py3.12,py3.13}-fastapi-v0.118.1 # ~~~ Web 2 ~~~ @@ -297,7 +297,7 @@ deps = # and https://github.com/pytest-dev/pytest-forked/issues/67 # for justification of the upper bound on pytest {py3.6,py3.7}-common: pytest<7.0.0 - {py3.8,py3.9,py3.10,py3.11,py3.12,py3.13}-common: pytest + {py3.8,py3.9,py3.10,py3.11,py3.12,py3.13,py3.14}-common: pytest # === Gevent === {py3.6,py3.7,py3.8,py3.9,py3.10,py3.11}-gevent: gevent>=22.10.0, <22.11.0 @@ -378,7 +378,7 @@ deps = openai-notiktoken: pytest-asyncio openai-notiktoken-v1.0.1: httpx<0.28 - langgraph-v0.6.8: langgraph==0.6.8 + langgraph-v0.6.9: langgraph==0.6.9 langgraph-v1.0.0a4: langgraph==1.0.0a4 openai_agents-v0.0.19: openai-agents==0.0.19 @@ -391,7 +391,7 @@ deps = huggingface_hub-v0.28.1: huggingface_hub==0.28.1 huggingface_hub-v0.32.6: huggingface_hub==0.32.6 huggingface_hub-v0.35.3: huggingface_hub==0.35.3 - huggingface_hub-v1.0.0rc2: huggingface_hub==1.0.0rc2 + huggingface_hub-v1.0.0rc4: huggingface_hub==1.0.0rc4 huggingface_hub: responses huggingface_hub: pytest-httpx @@ -400,7 +400,7 @@ deps = boto3-v1.12.49: boto3==1.12.49 boto3-v1.20.54: boto3==1.20.54 boto3-v1.28.85: boto3==1.28.85 - boto3-v1.40.46: boto3==1.40.46 + boto3-v1.40.47: boto3==1.40.47 {py3.7,py3.8}-boto3: urllib3<2.0.0 chalice-v1.16.0: chalice==1.16.0 @@ -419,7 +419,7 @@ deps = pymongo-v3.5.1: pymongo==3.5.1 pymongo-v3.13.0: pymongo==3.13.0 - pymongo-v4.15.2: pymongo==4.15.2 + pymongo-v4.15.3: pymongo==4.15.3 pymongo: mockupdb redis-v2.10.6: redis==2.10.6 @@ -427,7 +427,7 @@ deps = redis-v4.6.0: redis==4.6.0 redis-v5.3.1: redis==5.3.1 redis-v6.4.0: redis==6.4.0 - redis-v7.0.0b2: redis==7.0.0b2 + redis-v7.0.0b3: redis==7.0.0b3 redis: fakeredis!=1.7.4 redis: pytest<8.0.0 redis-v4.6.0: fakeredis<2.31.0 @@ -477,7 +477,7 @@ deps = {py3.6}-graphene: aiocontextvars strawberry-v0.209.8: strawberry-graphql[fastapi,flask]==0.209.8 - strawberry-v0.283.1: strawberry-graphql[fastapi,flask]==0.283.1 + strawberry-v0.283.2: strawberry-graphql[fastapi,flask]==0.283.2 strawberry: httpx strawberry-v0.209.8: pydantic<2.11 @@ -604,7 +604,7 @@ deps = fastapi-v0.79.1: fastapi==0.79.1 fastapi-v0.92.0: fastapi==0.92.0 fastapi-v0.105.0: fastapi==0.105.0 - fastapi-v0.118.0: fastapi==0.118.0 + fastapi-v0.118.1: fastapi==0.118.1 fastapi: httpx fastapi: pytest-asyncio fastapi: python-multipart @@ -808,6 +808,7 @@ basepython = py3.11: python3.11 py3.12: python3.12 py3.13: python3.13 + py3.14: python3.14 # Python version is pinned here for consistency across environments. # Tools like ruff and mypy have options that pin the target Python From ab5d812a546be3c248592f3e3cc28fa70a67c198 Mon Sep 17 00:00:00 2001 From: Ivana Kellyer Date: Wed, 8 Oct 2025 15:26:20 +0200 Subject: [PATCH 02/20] . --- tox.ini | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/tox.ini b/tox.ini index e7b90eba5f..c06beb622d 100644 --- a/tox.ini +++ b/tox.ini @@ -29,10 +29,10 @@ envlist = {py3.7,py3.12,py3.13,py3.14}-asgi # AWS Lambda - {py3.8,py3.9,py3.11,py3.13,py3.14}-aws_lambda + {py3.8,py3.9,py3.11,py3.13}-aws_lambda # Cloud Resource Context - {py3.6,py3.12,py3.13,py3.14}-cloud_resource_context + {py3.6,py3.12,py3.13}-cloud_resource_context # GCP {py3.7}-gcp From b0a638b385bb71ad25379aee2e6aa6321995f14b Mon Sep 17 00:00:00 2001 From: Ivana Kellyer Date: Wed, 8 Oct 2025 15:30:22 +0200 Subject: [PATCH 03/20] . --- .github/workflows/test-integrations-cloud.yml | 2 +- scripts/populate_tox/tox.jinja | 4 ++-- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/.github/workflows/test-integrations-cloud.yml b/.github/workflows/test-integrations-cloud.yml index 9b4b40f299..48a2881ffc 100644 --- a/.github/workflows/test-integrations-cloud.yml +++ b/.github/workflows/test-integrations-cloud.yml @@ -29,7 +29,7 @@ jobs: strategy: fail-fast: false matrix: - python-version: ["3.6","3.7","3.8","3.9","3.10","3.11","3.12","3.13","3.14"] + python-version: ["3.6","3.7","3.8","3.9","3.10","3.11","3.12","3.13"] # python3.6 reached EOL and is no longer being supported on # new versions of hosted runners on Github Actions # ubuntu-20.04 is the last version that supported python3.6 diff --git a/scripts/populate_tox/tox.jinja b/scripts/populate_tox/tox.jinja index 42d2724024..f384064e75 100755 --- a/scripts/populate_tox/tox.jinja +++ b/scripts/populate_tox/tox.jinja @@ -29,10 +29,10 @@ envlist = {py3.7,py3.12,py3.13,py3.14}-asgi # AWS Lambda - {py3.8,py3.9,py3.11,py3.13,py3.14}-aws_lambda + {py3.8,py3.9,py3.11,py3.13}-aws_lambda # Cloud Resource Context - {py3.6,py3.12,py3.13,py3.14}-cloud_resource_context + {py3.6,py3.12,py3.13}-cloud_resource_context # GCP {py3.7}-gcp From 4c2fd7d14c56abfc61092ba5bc7e2fb5233c5757 Mon Sep 17 00:00:00 2001 From: Ivana Kellyer Date: Thu, 9 Oct 2025 13:48:48 +0200 Subject: [PATCH 04/20] trying smth --- tests/test_client.py | 1 + 1 file changed, 1 insertion(+) diff --git a/tests/test_client.py b/tests/test_client.py index ff3f61d702..05adb49a69 100644 --- a/tests/test_client.py +++ b/tests/test_client.py @@ -751,6 +751,7 @@ def test_cyclic_data(sentry_init, capture_events): assert data == {"not_cyclic2": "", "not_cyclic": "", "is_cyclic": ""} +@pytest.mark.forked def test_databag_depth_stripping(sentry_init, capture_events, benchmark): sentry_init() events = capture_events() From fd6da46ecc7941715bb9f8ef73d7b840069b086a Mon Sep 17 00:00:00 2001 From: Ivana Kellyer Date: Thu, 16 Oct 2025 10:06:53 +0200 Subject: [PATCH 05/20] Remove pytest-benchmark --- tests/conftest.py | 11 ----------- tests/test_client.py | 9 +++------ 2 files changed, 3 insertions(+), 17 deletions(-) diff --git a/tests/conftest.py b/tests/conftest.py index faa0251d9b..ebb4bba95f 100644 --- a/tests/conftest.py +++ b/tests/conftest.py @@ -57,17 +57,6 @@ with open(SENTRY_EVENT_SCHEMA) as f: SENTRY_EVENT_SCHEMA = json.load(f) -try: - import pytest_benchmark -except ImportError: - - @pytest.fixture - def benchmark(): - return lambda x: x() - -else: - del pytest_benchmark - from sentry_sdk import scope diff --git a/tests/test_client.py b/tests/test_client.py index 05adb49a69..d6657ae0e7 100644 --- a/tests/test_client.py +++ b/tests/test_client.py @@ -752,7 +752,7 @@ def test_cyclic_data(sentry_init, capture_events): @pytest.mark.forked -def test_databag_depth_stripping(sentry_init, capture_events, benchmark): +def test_databag_depth_stripping(sentry_init, capture_events): sentry_init() events = capture_events() @@ -760,7 +760,6 @@ def test_databag_depth_stripping(sentry_init, capture_events, benchmark): for _ in range(100000): value = [value] - @benchmark def inner(): del events[:] try: @@ -774,11 +773,10 @@ def inner(): assert len(json.dumps(event)) < 10000 -def test_databag_string_stripping(sentry_init, capture_events, benchmark): +def test_databag_string_stripping(sentry_init, capture_events): sentry_init() events = capture_events() - @benchmark def inner(): del events[:] try: @@ -792,11 +790,10 @@ def inner(): assert len(json.dumps(event)) < DEFAULT_MAX_VALUE_LENGTH * 10 -def test_databag_breadth_stripping(sentry_init, capture_events, benchmark): +def test_databag_breadth_stripping(sentry_init, capture_events): sentry_init() events = capture_events() - @benchmark def inner(): del events[:] try: From b8a85ff03babda70736c009789cc2f3843350d81 Mon Sep 17 00:00:00 2001 From: Ivana Kellyer Date: Thu, 16 Oct 2025 10:10:39 +0200 Subject: [PATCH 06/20] remove the debug forked --- tests/test_client.py | 1 - 1 file changed, 1 deletion(-) diff --git a/tests/test_client.py b/tests/test_client.py index d6657ae0e7..274c7a9f76 100644 --- a/tests/test_client.py +++ b/tests/test_client.py @@ -751,7 +751,6 @@ def test_cyclic_data(sentry_init, capture_events): assert data == {"not_cyclic2": "", "not_cyclic": "", "is_cyclic": ""} -@pytest.mark.forked def test_databag_depth_stripping(sentry_init, capture_events): sentry_init() events = capture_events() From 85942b624da576797f2740a3f63b564b2ffa1f3b Mon Sep 17 00:00:00 2001 From: Ivana Kellyer Date: Thu, 16 Oct 2025 10:16:14 +0200 Subject: [PATCH 07/20] . --- tests/test_client.py | 1 + 1 file changed, 1 insertion(+) diff --git a/tests/test_client.py b/tests/test_client.py index 274c7a9f76..7bc68ffd6f 100644 --- a/tests/test_client.py +++ b/tests/test_client.py @@ -751,6 +751,7 @@ def test_cyclic_data(sentry_init, capture_events): assert data == {"not_cyclic2": "", "not_cyclic": "", "is_cyclic": ""} +# ???????? def test_databag_depth_stripping(sentry_init, capture_events): sentry_init() events = capture_events() From 08ee7bd3280a583c7061f0231c30e91ad6ab05d0 Mon Sep 17 00:00:00 2001 From: Ivana Kellyer Date: Thu, 16 Oct 2025 10:16:23 +0200 Subject: [PATCH 08/20] . --- tests/test_client.py | 1 - 1 file changed, 1 deletion(-) diff --git a/tests/test_client.py b/tests/test_client.py index 7bc68ffd6f..274c7a9f76 100644 --- a/tests/test_client.py +++ b/tests/test_client.py @@ -751,7 +751,6 @@ def test_cyclic_data(sentry_init, capture_events): assert data == {"not_cyclic2": "", "not_cyclic": "", "is_cyclic": ""} -# ???????? def test_databag_depth_stripping(sentry_init, capture_events): sentry_init() events = capture_events() From e52dad39d07982f5e136265fc587c564bdcaccc0 Mon Sep 17 00:00:00 2001 From: Ivana Kellyer Date: Thu, 16 Oct 2025 14:28:36 +0200 Subject: [PATCH 09/20] actually run the inner funcs --- tests/test_client.py | 59 +++++++++++++++++++++----------------------- 1 file changed, 28 insertions(+), 31 deletions(-) diff --git a/tests/test_client.py b/tests/test_client.py index 274c7a9f76..996fe032b6 100644 --- a/tests/test_client.py +++ b/tests/test_client.py @@ -759,55 +759,52 @@ def test_databag_depth_stripping(sentry_init, capture_events): for _ in range(100000): value = [value] - def inner(): - del events[:] - try: - a = value # noqa - 1 / 0 - except Exception: - capture_exception() + del events[:] + try: + a = value # noqa + 1 / 0 + except Exception: + capture_exception() - (event,) = events + (event,) = events - assert len(json.dumps(event)) < 10000 + assert len(json.dumps(event)) < 10000 def test_databag_string_stripping(sentry_init, capture_events): sentry_init() events = capture_events() - def inner(): - del events[:] - try: - a = "A" * DEFAULT_MAX_VALUE_LENGTH * 10 # noqa - 1 / 0 - except Exception: - capture_exception() + del events[:] + try: + a = "A" * DEFAULT_MAX_VALUE_LENGTH * 10 # noqa + 1 / 0 + except Exception: + capture_exception() - (event,) = events + (event,) = events - assert len(json.dumps(event)) < DEFAULT_MAX_VALUE_LENGTH * 10 + assert len(json.dumps(event)) < DEFAULT_MAX_VALUE_LENGTH * 10 def test_databag_breadth_stripping(sentry_init, capture_events): sentry_init() events = capture_events() - def inner(): - del events[:] - try: - a = ["a"] * 1000000 # noqa - 1 / 0 - except Exception: - capture_exception() + del events[:] + try: + a = ["a"] * 1000000 # noqa + 1 / 0 + except Exception: + capture_exception() - (event,) = events + (event,) = events - assert ( - len(event["exception"]["values"][0]["stacktrace"]["frames"][0]["vars"]["a"]) - == MAX_DATABAG_BREADTH - ) - assert len(json.dumps(event)) < 10000 + assert ( + len(event["exception"]["values"][0]["stacktrace"]["frames"][0]["vars"]["a"]) + == MAX_DATABAG_BREADTH + ) + assert len(json.dumps(event)) < 10000 def test_chained_exceptions(sentry_init, capture_events): From 53c682c822fba7b8326b72ea7efab9305f8b3cc8 Mon Sep 17 00:00:00 2001 From: Alexander Alderman Webb Date: Mon, 20 Oct 2025 13:57:14 +0200 Subject: [PATCH 10/20] [do not merge] print event 3.14 --- tests/test_client.py | 1 + 1 file changed, 1 insertion(+) diff --git a/tests/test_client.py b/tests/test_client.py index 996fe032b6..2548d124de 100644 --- a/tests/test_client.py +++ b/tests/test_client.py @@ -767,6 +767,7 @@ def test_databag_depth_stripping(sentry_init, capture_events): capture_exception() (event,) = events + print(json.dumps(event)) assert len(json.dumps(event)) < 10000 From 28f45d948d276b3e5ef31f27af790ebaea7e377e Mon Sep 17 00:00:00 2001 From: Alexander Alderman Webb Date: Mon, 20 Oct 2025 14:15:52 +0200 Subject: [PATCH 11/20] print serialize calls --- sentry_sdk/serializer.py | 1 + 1 file changed, 1 insertion(+) diff --git a/sentry_sdk/serializer.py b/sentry_sdk/serializer.py index 1775b1b555..3d37d5bdef 100644 --- a/sentry_sdk/serializer.py +++ b/sentry_sdk/serializer.py @@ -396,6 +396,7 @@ def _serialize_node_impl( # disable_capture_event.set(True) try: + print(event, kwargs) serialized_event = _serialize_node(event, **kwargs) if not is_vars and meta_stack and isinstance(serialized_event, dict): serialized_event["_meta"] = meta_stack[0] From d5af8224dc23f366245d2217a03efeb340159341 Mon Sep 17 00:00:00 2001 From: Alexander Alderman Webb Date: Mon, 20 Oct 2025 14:20:48 +0200 Subject: [PATCH 12/20] . --- sentry_sdk/serializer.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/sentry_sdk/serializer.py b/sentry_sdk/serializer.py index 3d37d5bdef..3fc3c22962 100644 --- a/sentry_sdk/serializer.py +++ b/sentry_sdk/serializer.py @@ -396,7 +396,7 @@ def _serialize_node_impl( # disable_capture_event.set(True) try: - print(event, kwargs) + print("\n\n", event.keys(), "\n\n") serialized_event = _serialize_node(event, **kwargs) if not is_vars and meta_stack and isinstance(serialized_event, dict): serialized_event["_meta"] = meta_stack[0] From 4a0b3fd7ef2999e08f594b1da6ce75f30296d8df Mon Sep 17 00:00:00 2001 From: Alexander Alderman Webb Date: Mon, 20 Oct 2025 14:35:29 +0200 Subject: [PATCH 13/20] print only locals --- sentry_sdk/serializer.py | 2 +- sentry_sdk/utils.py | 2 ++ 2 files changed, 3 insertions(+), 1 deletion(-) diff --git a/sentry_sdk/serializer.py b/sentry_sdk/serializer.py index 3fc3c22962..c0752cf988 100644 --- a/sentry_sdk/serializer.py +++ b/sentry_sdk/serializer.py @@ -396,7 +396,7 @@ def _serialize_node_impl( # disable_capture_event.set(True) try: - print("\n\n", event.keys(), "\n\n") + # print("\n\n", event.keys(), "\n\n") serialized_event = _serialize_node(event, **kwargs) if not is_vars and meta_stack and isinstance(serialized_event, dict): serialized_event["_meta"] = meta_stack[0] diff --git a/sentry_sdk/utils.py b/sentry_sdk/utils.py index cd825b29e2..76410aa683 100644 --- a/sentry_sdk/utils.py +++ b/sentry_sdk/utils.py @@ -613,6 +613,8 @@ def serialize_frame( if include_local_variables: from sentry_sdk.serializer import serialize + print(dict(frame.f_locals).keys()) + rv["vars"] = serialize( dict(frame.f_locals), is_vars=True, custom_repr=custom_repr ) From 62e39f6f44a0110dee9427a73ae1176ff0289923 Mon Sep 17 00:00:00 2001 From: Alexander Alderman Webb Date: Mon, 20 Oct 2025 15:09:24 +0200 Subject: [PATCH 14/20] . --- sentry_sdk/serializer.py | 4 +++- sentry_sdk/utils.py | 2 -- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/sentry_sdk/serializer.py b/sentry_sdk/serializer.py index c0752cf988..95696cd1f5 100644 --- a/sentry_sdk/serializer.py +++ b/sentry_sdk/serializer.py @@ -351,6 +351,7 @@ def _serialize_node_impl( elif not isinstance(obj, serializable_str_types) and isinstance( obj, tuple(sequence_types) ): + print("sequence type") rv_list = [] for i, v in enumerate(obj): @@ -378,9 +379,11 @@ def _serialize_node_impl( obj = _safe_repr_wrapper(obj) else: if isinstance(obj, bytes) or isinstance(obj, bytearray): + print("bytes") obj = obj.decode("utf-8", "replace") if not isinstance(obj, str): + print("not string") obj = _safe_repr_wrapper(obj) is_span_description = ( @@ -396,7 +399,6 @@ def _serialize_node_impl( # disable_capture_event.set(True) try: - # print("\n\n", event.keys(), "\n\n") serialized_event = _serialize_node(event, **kwargs) if not is_vars and meta_stack and isinstance(serialized_event, dict): serialized_event["_meta"] = meta_stack[0] diff --git a/sentry_sdk/utils.py b/sentry_sdk/utils.py index 76410aa683..cd825b29e2 100644 --- a/sentry_sdk/utils.py +++ b/sentry_sdk/utils.py @@ -613,8 +613,6 @@ def serialize_frame( if include_local_variables: from sentry_sdk.serializer import serialize - print(dict(frame.f_locals).keys()) - rv["vars"] = serialize( dict(frame.f_locals), is_vars=True, custom_repr=custom_repr ) From 0d56e0ad9ccb910fa1cd7582b9c52ac30f165cc1 Mon Sep 17 00:00:00 2001 From: Alexander Alderman Webb Date: Mon, 20 Oct 2025 15:15:29 +0200 Subject: [PATCH 15/20] . --- sentry_sdk/serializer.py | 1 + 1 file changed, 1 insertion(+) diff --git a/sentry_sdk/serializer.py b/sentry_sdk/serializer.py index 95696cd1f5..252ad529a7 100644 --- a/sentry_sdk/serializer.py +++ b/sentry_sdk/serializer.py @@ -270,6 +270,7 @@ def _serialize_node_impl( if is_request_body is None: is_request_body = _is_request_body() + print("remaining depth", remaining_depth) if is_databag: if is_request_body and keep_request_bodies: remaining_depth = float("inf") From f31f09dd6a0724f5548a4baa643edd247567c23f Mon Sep 17 00:00:00 2001 From: Alexander Alderman Webb Date: Mon, 20 Oct 2025 15:32:25 +0200 Subject: [PATCH 16/20] loglog --- sentry_sdk/serializer.py | 11 +++++++++++ 1 file changed, 11 insertions(+) diff --git a/sentry_sdk/serializer.py b/sentry_sdk/serializer.py index 252ad529a7..72864f6d11 100644 --- a/sentry_sdk/serializer.py +++ b/sentry_sdk/serializer.py @@ -297,10 +297,17 @@ def _serialize_node_impl( for processor in global_repr_processors: result = processor(obj, hints) if result is not NotImplemented: + print("global repr") return _flatten_annotated(result) sentry_repr = getattr(type(obj), "__sentry_repr__", None) + print( + "check:", + isinstance(obj, serializable_str_types), + isinstance(obj, tuple(sequence_types)), + ) + if obj is None or isinstance(obj, (bool, int, float)): if should_repr_strings or ( isinstance(obj, float) and (math.isinf(obj) or math.isnan(obj)) @@ -310,9 +317,11 @@ def _serialize_node_impl( return obj elif callable(sentry_repr): + print("callable") return sentry_repr(obj) elif isinstance(obj, datetime): + print("datetime") return ( str(format_timestamp(obj)) if not should_repr_strings @@ -377,6 +386,7 @@ def _serialize_node_impl( return rv_list if should_repr_strings: + print("string") obj = _safe_repr_wrapper(obj) else: if isinstance(obj, bytes) or isinstance(obj, bytearray): @@ -391,6 +401,7 @@ def _serialize_node_impl( len(path) == 3 and path[0] == "spans" and path[-1] == "description" ) if is_span_description: + print("is_description") return obj return _flatten_annotated(strip_string(obj, max_length=max_value_length)) From d84f6de28c828838298a386edffd7470752e4874 Mon Sep 17 00:00:00 2001 From: Alexander Alderman Webb Date: Mon, 20 Oct 2025 15:48:16 +0200 Subject: [PATCH 17/20] print type --- sentry_sdk/serializer.py | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/sentry_sdk/serializer.py b/sentry_sdk/serializer.py index 72864f6d11..e6d26b8d6c 100644 --- a/sentry_sdk/serializer.py +++ b/sentry_sdk/serializer.py @@ -303,7 +303,8 @@ def _serialize_node_impl( sentry_repr = getattr(type(obj), "__sentry_repr__", None) print( - "check:", + "check for type:", + type(obj), isinstance(obj, serializable_str_types), isinstance(obj, tuple(sequence_types)), ) From 8633ceaf9a6ad99ffcfb21993fa88668ed8f9379 Mon Sep 17 00:00:00 2001 From: Alexander Alderman Webb Date: Mon, 20 Oct 2025 16:16:54 +0200 Subject: [PATCH 18/20] prints --- sentry_sdk/serializer.py | 3 +++ 1 file changed, 3 insertions(+) diff --git a/sentry_sdk/serializer.py b/sentry_sdk/serializer.py index e6d26b8d6c..6d063d0c1c 100644 --- a/sentry_sdk/serializer.py +++ b/sentry_sdk/serializer.py @@ -343,6 +343,7 @@ def _serialize_node_impl( break str_k = str(k) + print("serializing", str_k) v = _serialize_node( v, segment=str_k, @@ -367,6 +368,7 @@ def _serialize_node_impl( for i, v in enumerate(obj): if remaining_breadth is not None and i >= remaining_breadth: + print("annotated", i) _annotate(len=len(obj)) break @@ -414,6 +416,7 @@ def _serialize_node_impl( try: serialized_event = _serialize_node(event, **kwargs) if not is_vars and meta_stack and isinstance(serialized_event, dict): + print("serialized event", serialized_event) serialized_event["_meta"] = meta_stack[0] return serialized_event From fd8567e7247885d8cb91e771d2ef40dd3dc1eff3 Mon Sep 17 00:00:00 2001 From: Alexander Alderman Webb Date: Mon, 20 Oct 2025 16:46:17 +0200 Subject: [PATCH 19/20] . --- sentry_sdk/serializer.py | 25 +------------------------ 1 file changed, 1 insertion(+), 24 deletions(-) diff --git a/sentry_sdk/serializer.py b/sentry_sdk/serializer.py index 6d063d0c1c..eb53259cea 100644 --- a/sentry_sdk/serializer.py +++ b/sentry_sdk/serializer.py @@ -146,11 +146,7 @@ def _safe_repr_wrapper(value): def _annotate(**meta): # type: (**Any) -> None while len(meta_stack) <= len(path): - try: - segment = path[len(meta_stack) - 1] - node = meta_stack[-1].setdefault(str(segment), {}) - except IndexError: - node = {} + node = {} meta_stack.append(node) @@ -270,7 +266,6 @@ def _serialize_node_impl( if is_request_body is None: is_request_body = _is_request_body() - print("remaining depth", remaining_depth) if is_databag: if is_request_body and keep_request_bodies: remaining_depth = float("inf") @@ -297,18 +292,10 @@ def _serialize_node_impl( for processor in global_repr_processors: result = processor(obj, hints) if result is not NotImplemented: - print("global repr") return _flatten_annotated(result) sentry_repr = getattr(type(obj), "__sentry_repr__", None) - print( - "check for type:", - type(obj), - isinstance(obj, serializable_str_types), - isinstance(obj, tuple(sequence_types)), - ) - if obj is None or isinstance(obj, (bool, int, float)): if should_repr_strings or ( isinstance(obj, float) and (math.isinf(obj) or math.isnan(obj)) @@ -318,11 +305,9 @@ def _serialize_node_impl( return obj elif callable(sentry_repr): - print("callable") return sentry_repr(obj) elif isinstance(obj, datetime): - print("datetime") return ( str(format_timestamp(obj)) if not should_repr_strings @@ -343,7 +328,6 @@ def _serialize_node_impl( break str_k = str(k) - print("serializing", str_k) v = _serialize_node( v, segment=str_k, @@ -363,12 +347,10 @@ def _serialize_node_impl( elif not isinstance(obj, serializable_str_types) and isinstance( obj, tuple(sequence_types) ): - print("sequence type") rv_list = [] for i, v in enumerate(obj): if remaining_breadth is not None and i >= remaining_breadth: - print("annotated", i) _annotate(len=len(obj)) break @@ -389,22 +371,18 @@ def _serialize_node_impl( return rv_list if should_repr_strings: - print("string") obj = _safe_repr_wrapper(obj) else: if isinstance(obj, bytes) or isinstance(obj, bytearray): - print("bytes") obj = obj.decode("utf-8", "replace") if not isinstance(obj, str): - print("not string") obj = _safe_repr_wrapper(obj) is_span_description = ( len(path) == 3 and path[0] == "spans" and path[-1] == "description" ) if is_span_description: - print("is_description") return obj return _flatten_annotated(strip_string(obj, max_length=max_value_length)) @@ -416,7 +394,6 @@ def _serialize_node_impl( try: serialized_event = _serialize_node(event, **kwargs) if not is_vars and meta_stack and isinstance(serialized_event, dict): - print("serialized event", serialized_event) serialized_event["_meta"] = meta_stack[0] return serialized_event From 31bd82b34817745810a77fa074da80974f255b73 Mon Sep 17 00:00:00 2001 From: Alexander Alderman Webb Date: Mon, 20 Oct 2025 16:57:16 +0200 Subject: [PATCH 20/20] print exception --- sentry_sdk/utils.py | 3 ++- tests/test_client.py | 1 - 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/sentry_sdk/utils.py b/sentry_sdk/utils.py index cd825b29e2..1039808c4f 100644 --- a/sentry_sdk/utils.py +++ b/sentry_sdk/utils.py @@ -540,7 +540,8 @@ def safe_repr(value): # type: (Any) -> str try: return repr(value) - except Exception: + except Exception as e: + print(e) return "" diff --git a/tests/test_client.py b/tests/test_client.py index 2548d124de..996fe032b6 100644 --- a/tests/test_client.py +++ b/tests/test_client.py @@ -767,7 +767,6 @@ def test_databag_depth_stripping(sentry_init, capture_events): capture_exception() (event,) = events - print(json.dumps(event)) assert len(json.dumps(event)) < 10000