From 7dfcb0124d2ff7cdeeb3e75a5e4ff1d1f1dfa791 Mon Sep 17 00:00:00 2001 From: Ivana Kellyer Date: Wed, 24 Sep 2025 10:03:32 +0200 Subject: [PATCH 1/2] chore: Slim down test matrix --- .../workflows/test-integrations-graphql.yml | 2 +- scripts/populate_tox/config.py | 16 ++++ tox.ini | 95 ++++--------------- 3 files changed, 34 insertions(+), 79 deletions(-) diff --git a/.github/workflows/test-integrations-graphql.yml b/.github/workflows/test-integrations-graphql.yml index 81d809c94e..f1a43dc77d 100644 --- a/.github/workflows/test-integrations-graphql.yml +++ b/.github/workflows/test-integrations-graphql.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.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/config.py b/scripts/populate_tox/config.py index 70cecd60d9..e72b3a11db 100644 --- a/scripts/populate_tox/config.py +++ b/scripts/populate_tox/config.py @@ -28,6 +28,7 @@ "*": ["fastapi", "flask", "httpx"], }, "python": ">=3.8", + "num_versions": 2, }, "arq": { "package": "arq", @@ -35,6 +36,7 @@ "*": ["async-timeout", "pytest-asyncio", "fakeredis>=2.2.0,<2.8"], "<=0.23": ["pydantic<2"], }, + "num_versions": 2, }, "asyncpg": { "package": "asyncpg", @@ -46,6 +48,7 @@ "beam": { "package": "apache-beam", "python": ">=3.7", + "num_versions": 2, }, "boto3": { "package": "boto3", @@ -71,6 +74,7 @@ "deps": { "*": ["pytest-chalice"], }, + "num_versions": 2, }, "clickhouse_driver": { "package": "clickhouse-driver", @@ -100,6 +104,7 @@ }, "dramatiq": { "package": "dramatiq", + "num_versions": 2, }, "falcon": { "package": "falcon", @@ -135,6 +140,7 @@ }, "gql": { "package": "gql[all]", + "num_versions": 2, }, "graphene": { "package": "graphene", @@ -171,6 +177,7 @@ }, "huey": { "package": "huey", + "num_versions": 2, }, "huggingface_hub": { "package": "huggingface_hub", @@ -204,6 +211,7 @@ }, "launchdarkly": { "package": "launchdarkly-server-sdk", + "num_versions": 2, }, "litestar": { "package": "litestar", @@ -242,9 +250,11 @@ }, "openfeature": { "package": "openfeature-sdk", + "num_versions": 2, }, "pure_eval": { "package": "pure_eval", + "num_versions": 2, }, "pymongo": { "package": "pymongo", @@ -352,12 +362,14 @@ }, "python": "<=3.11", "include": "!=2.0.0a1,!=2.0.0a2", # these are not relevant as there will never be a stable 2.0 release (starlite continues as litestar) + "num_versions": 2, }, "statsig": { "package": "statsig", "deps": { "*": ["typing_extensions"], }, + "num_versions": 2, }, "strawberry": { "package": "strawberry-graphql[fastapi,flask]", @@ -365,6 +377,7 @@ "*": ["httpx"], "<=0.262.5": ["pydantic<2.11"], }, + "num_versions": 2, }, "tornado": { "package": "tornado", @@ -375,6 +388,7 @@ ], # https://github.com/tornadoweb/tornado/pull/3382 "py3.6": ["aiocontextvars"], }, + "num_versions": 2, }, "trytond": { "package": "trytond", @@ -385,8 +399,10 @@ }, "typer": { "package": "typer", + "num_versions": 2, }, "unleash": { "package": "UnleashClient", + "num_versions": 2, }, } diff --git a/tox.ini b/tox.ini index 906d075e2b..26e40c6bb8 100644 --- a/tox.ini +++ b/tox.ini @@ -10,7 +10,7 @@ # The file (and all resulting CI YAMLs) then need to be regenerated via # "scripts/generate-test-files.sh". # -# Last generated: 2025-09-22T03:40:00.010016+00:00 +# Last generated: 2025-09-24T08:02:03.958741+00:00 [tox] requires = @@ -80,12 +80,12 @@ envlist = {py3.8,py3.11,py3.12}-openai-base-v1.0.1 {py3.8,py3.11,py3.12}-openai-base-v1.37.2 {py3.8,py3.11,py3.12}-openai-base-v1.73.0 - {py3.8,py3.12,py3.13}-openai-base-v1.108.1 + {py3.8,py3.12,py3.13}-openai-base-v1.109.0 {py3.8,py3.11,py3.12}-openai-notiktoken-v1.0.1 {py3.8,py3.11,py3.12}-openai-notiktoken-v1.37.2 {py3.8,py3.11,py3.12}-openai-notiktoken-v1.73.0 - {py3.8,py3.12,py3.13}-openai-notiktoken-v1.108.1 + {py3.8,py3.12,py3.13}-openai-notiktoken-v1.109.0 {py3.9,py3.12,py3.13}-langgraph-v0.6.7 {py3.10,py3.12,py3.13}-langgraph-v1.0.0a3 @@ -93,23 +93,21 @@ envlist = {py3.10,py3.11,py3.12}-openai_agents-v0.0.19 {py3.10,py3.12,py3.13}-openai_agents-v0.1.0 {py3.10,py3.12,py3.13}-openai_agents-v0.2.11 - {py3.10,py3.12,py3.13}-openai_agents-v0.3.1 + {py3.10,py3.12,py3.13}-openai_agents-v0.3.2 {py3.8,py3.10,py3.11}-huggingface_hub-v0.24.7 {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.0 + {py3.8,py3.12,py3.13}-huggingface_hub-v0.35.1 # ~~~ 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.35 + {py3.9,py3.12,py3.13}-boto3-v1.40.37 {py3.6,py3.7,py3.8}-chalice-v1.16.0 - {py3.6,py3.7,py3.8}-chalice-v1.21.9 - {py3.6,py3.8,py3.9}-chalice-v1.26.6 {py3.9,py3.12,py3.13}-chalice-v1.32.0 @@ -142,32 +140,23 @@ envlist = # ~~~ Flags ~~~ {py3.8,py3.12,py3.13}-launchdarkly-v9.8.1 - {py3.8,py3.12,py3.13}-launchdarkly-v9.9.0 - {py3.8,py3.12,py3.13}-launchdarkly-v9.10.0 {py3.9,py3.12,py3.13}-launchdarkly-v9.12.0 {py3.8,py3.12,py3.13}-openfeature-v0.7.5 {py3.9,py3.12,py3.13}-openfeature-v0.8.3 {py3.7,py3.12,py3.13}-statsig-v0.55.3 - {py3.7,py3.12,py3.13}-statsig-v0.58.4 - {py3.7,py3.12,py3.13}-statsig-v0.61.0 {py3.7,py3.12,py3.13}-statsig-v0.64.0 {py3.8,py3.12,py3.13}-unleash-v6.0.1 - {py3.8,py3.12,py3.13}-unleash-v6.1.0 - {py3.8,py3.12,py3.13}-unleash-v6.2.2 {py3.8,py3.12,py3.13}-unleash-v6.3.0 # ~~~ GraphQL ~~~ {py3.8,py3.10,py3.11}-ariadne-v0.20.1 - {py3.8,py3.11,py3.12}-ariadne-v0.22 - {py3.8,py3.11,py3.12}-ariadne-v0.24.0 {py3.9,py3.12,py3.13}-ariadne-v0.26.2 {py3.6,py3.9,py3.10}-gql-v3.4.1 - {py3.7,py3.11,py3.12}-gql-v3.5.3 {py3.9,py3.12,py3.13}-gql-v4.0.0 {py3.9,py3.12,py3.13}-gql-v4.2.0b0 @@ -175,8 +164,6 @@ envlist = {py3.8,py3.12,py3.13}-graphene-v3.4.3 {py3.8,py3.10,py3.11}-strawberry-v0.209.8 - {py3.8,py3.11,py3.12}-strawberry-v0.233.3 - {py3.9,py3.12,py3.13}-strawberry-v0.257.0 {py3.9,py3.12,py3.13}-strawberry-v0.282.0 @@ -197,28 +184,19 @@ envlist = # ~~~ Tasks ~~~ {py3.7,py3.9,py3.10}-arq-v0.23 - {py3.7,py3.10,py3.11}-arq-v0.24.0 - {py3.7,py3.10,py3.11}-arq-v0.25.0 {py3.8,py3.11,py3.12}-arq-v0.26.3 {py3.7}-beam-v2.14.0 - {py3.7,py3.8}-beam-v2.32.0 - {py3.8,py3.10,py3.11}-beam-v2.50.0 - {py3.9,py3.12,py3.13}-beam-v2.67.0 - {py3.9,py3.12,py3.13}-beam-v2.68.0rc2 + {py3.9,py3.12,py3.13}-beam-v2.68.0 {py3.6,py3.7,py3.8}-celery-v4.4.7 {py3.8,py3.12,py3.13}-celery-v5.5.3 {py3.8,py3.12,py3.13}-celery-v5.6.0b1 {py3.6,py3.7}-dramatiq-v1.9.0 - {py3.6,py3.8,py3.9}-dramatiq-v1.12.3 - {py3.7,py3.10,py3.11}-dramatiq-v1.15.0 {py3.9,py3.12,py3.13}-dramatiq-v1.18.0 {py3.6,py3.7}-huey-v2.1.3 - {py3.6,py3.7}-huey-v2.2.0 - {py3.6,py3.7}-huey-v2.3.2 {py3.6,py3.11,py3.12}-huey-v2.5.3 {py3.9,py3.10}-ray-v2.7.2 @@ -230,7 +208,7 @@ envlist = {py3.9,py3.12,py3.13}-rq-v2.6.0 {py3.8,py3.9}-spark-v3.0.3 - {py3.8,py3.10,py3.11}-spark-v3.5.6 + {py3.8,py3.10,py3.11}-spark-v3.5.7 {py3.9,py3.12,py3.13}-spark-v4.0.1 @@ -291,13 +269,9 @@ envlist = {py3.9,py3.12,py3.13}-sanic-v25.3.0 {py3.8,py3.10,py3.11}-starlite-v1.48.1 - {py3.8,py3.10,py3.11}-starlite-v1.49.0 - {py3.8,py3.10,py3.11}-starlite-v1.50.2 {py3.8,py3.10,py3.11}-starlite-v1.51.16 {py3.6,py3.7,py3.8}-tornado-v6.0.4 - {py3.7,py3.9,py3.10}-tornado-v6.2 - {py3.8,py3.10,py3.11}-tornado-v6.4.2 {py3.9,py3.12,py3.13}-tornado-v6.5.2 @@ -305,7 +279,6 @@ envlist = {py3.6,py3.12,py3.13}-loguru-v0.7.3 {py3.6,py3.7,py3.8}-pure_eval-v0.0.3 - {py3.6,py3.8,py3.9}-pure_eval-v0.1.1 {py3.7,py3.12,py3.13}-pure_eval-v0.2.3 {py3.6}-trytond-v4.6.22 @@ -315,9 +288,7 @@ envlist = {py3.9,py3.12,py3.13}-trytond-v7.6.7 {py3.7,py3.12,py3.13}-typer-v0.15.4 - {py3.7,py3.12,py3.13}-typer-v0.16.1 - {py3.7,py3.12,py3.13}-typer-v0.17.5 - {py3.7,py3.12,py3.13}-typer-v0.19.1 + {py3.8,py3.12,py3.13}-typer-v0.19.2 @@ -408,7 +379,7 @@ deps = openai-base-v1.0.1: openai==1.0.1 openai-base-v1.37.2: openai==1.37.2 openai-base-v1.73.0: openai==1.73.0 - openai-base-v1.108.1: openai==1.108.1 + openai-base-v1.109.0: openai==1.109.0 openai-base: pytest-asyncio openai-base: tiktoken openai-base-v1.0.1: httpx<0.28 @@ -417,7 +388,7 @@ deps = openai-notiktoken-v1.0.1: openai==1.0.1 openai-notiktoken-v1.37.2: openai==1.37.2 openai-notiktoken-v1.73.0: openai==1.73.0 - openai-notiktoken-v1.108.1: openai==1.108.1 + openai-notiktoken-v1.109.0: openai==1.109.0 openai-notiktoken: pytest-asyncio openai-notiktoken-v1.0.1: httpx<0.28 openai-notiktoken-v1.37.2: httpx<0.28 @@ -428,13 +399,13 @@ deps = openai_agents-v0.0.19: openai-agents==0.0.19 openai_agents-v0.1.0: openai-agents==0.1.0 openai_agents-v0.2.11: openai-agents==0.2.11 - openai_agents-v0.3.1: openai-agents==0.3.1 + openai_agents-v0.3.2: openai-agents==0.3.2 openai_agents: pytest-asyncio huggingface_hub-v0.24.7: huggingface_hub==0.24.7 huggingface_hub-v0.28.1: huggingface_hub==0.28.1 huggingface_hub-v0.32.6: huggingface_hub==0.32.6 - huggingface_hub-v0.35.0: huggingface_hub==0.35.0 + huggingface_hub-v0.35.1: huggingface_hub==0.35.1 huggingface_hub: responses @@ -442,12 +413,10 @@ 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.35: boto3==1.40.35 + boto3-v1.40.37: boto3==1.40.37 {py3.7,py3.8}-boto3: urllib3<2.0.0 chalice-v1.16.0: chalice==1.16.0 - chalice-v1.21.9: chalice==1.21.9 - chalice-v1.26.6: chalice==1.26.6 chalice-v1.32.0: chalice==1.32.0 chalice: pytest-chalice @@ -488,36 +457,27 @@ deps = # ~~~ Flags ~~~ launchdarkly-v9.8.1: launchdarkly-server-sdk==9.8.1 - launchdarkly-v9.9.0: launchdarkly-server-sdk==9.9.0 - launchdarkly-v9.10.0: launchdarkly-server-sdk==9.10.0 launchdarkly-v9.12.0: launchdarkly-server-sdk==9.12.0 openfeature-v0.7.5: openfeature-sdk==0.7.5 openfeature-v0.8.3: openfeature-sdk==0.8.3 statsig-v0.55.3: statsig==0.55.3 - statsig-v0.58.4: statsig==0.58.4 - statsig-v0.61.0: statsig==0.61.0 statsig-v0.64.0: statsig==0.64.0 statsig: typing_extensions unleash-v6.0.1: UnleashClient==6.0.1 - unleash-v6.1.0: UnleashClient==6.1.0 - unleash-v6.2.2: UnleashClient==6.2.2 unleash-v6.3.0: UnleashClient==6.3.0 # ~~~ GraphQL ~~~ ariadne-v0.20.1: ariadne==0.20.1 - ariadne-v0.22: ariadne==0.22 - ariadne-v0.24.0: ariadne==0.24.0 ariadne-v0.26.2: ariadne==0.26.2 ariadne: fastapi ariadne: flask ariadne: httpx gql-v3.4.1: gql[all]==3.4.1 - gql-v3.5.3: gql[all]==3.5.3 gql-v4.0.0: gql[all]==4.0.0 gql-v4.2.0b0: gql[all]==4.2.0b0 @@ -530,13 +490,9 @@ deps = {py3.6}-graphene: aiocontextvars strawberry-v0.209.8: strawberry-graphql[fastapi,flask]==0.209.8 - strawberry-v0.233.3: strawberry-graphql[fastapi,flask]==0.233.3 - strawberry-v0.257.0: strawberry-graphql[fastapi,flask]==0.257.0 strawberry-v0.282.0: strawberry-graphql[fastapi,flask]==0.282.0 strawberry: httpx strawberry-v0.209.8: pydantic<2.11 - strawberry-v0.233.3: pydantic<2.11 - strawberry-v0.257.0: pydantic<2.11 # ~~~ Network ~~~ @@ -565,8 +521,6 @@ deps = # ~~~ Tasks ~~~ arq-v0.23: arq==0.23 - arq-v0.24.0: arq==0.24.0 - arq-v0.25.0: arq==0.25.0 arq-v0.26.3: arq==0.26.3 arq: async-timeout arq: pytest-asyncio @@ -574,10 +528,7 @@ deps = arq-v0.23: pydantic<2 beam-v2.14.0: apache-beam==2.14.0 - beam-v2.32.0: apache-beam==2.32.0 - beam-v2.50.0: apache-beam==2.50.0 - beam-v2.67.0: apache-beam==2.67.0 - beam-v2.68.0rc2: apache-beam==2.68.0rc2 + beam-v2.68.0: apache-beam==2.68.0 celery-v4.4.7: celery==4.4.7 celery-v5.5.3: celery==5.5.3 @@ -587,13 +538,9 @@ deps = {py3.7}-celery: importlib-metadata<5.0 dramatiq-v1.9.0: dramatiq==1.9.0 - dramatiq-v1.12.3: dramatiq==1.12.3 - dramatiq-v1.15.0: dramatiq==1.15.0 dramatiq-v1.18.0: dramatiq==1.18.0 huey-v2.1.3: huey==2.1.3 - huey-v2.2.0: huey==2.2.0 - huey-v2.3.2: huey==2.3.2 huey-v2.5.3: huey==2.5.3 ray-v2.7.2: ray==2.7.2 @@ -610,7 +557,7 @@ deps = {py3.6,py3.7}-rq: fakeredis!=2.26.0 spark-v3.0.3: pyspark==3.0.3 - spark-v3.5.6: pyspark==3.5.6 + spark-v3.5.7: pyspark==3.5.7 spark-v4.0.1: pyspark==4.0.1 @@ -749,8 +696,6 @@ deps = {py3.8}-sanic: tracerite<1.1.2 starlite-v1.48.1: starlite==1.48.1 - starlite-v1.49.0: starlite==1.49.0 - starlite-v1.50.2: starlite==1.50.2 starlite-v1.51.16: starlite==1.51.16 starlite: pytest-asyncio starlite: python-multipart @@ -760,12 +705,9 @@ deps = starlite: httpx<0.28 tornado-v6.0.4: tornado==6.0.4 - tornado-v6.2: tornado==6.2 - tornado-v6.4.2: tornado==6.4.2 tornado-v6.5.2: tornado==6.5.2 tornado: pytest tornado-v6.0.4: pytest<8.2 - tornado-v6.2: pytest<8.2 {py3.6}-tornado: aiocontextvars @@ -773,7 +715,6 @@ deps = loguru-v0.7.3: loguru==0.7.3 pure_eval-v0.0.3: pure_eval==0.0.3 - pure_eval-v0.1.1: pure_eval==0.1.1 pure_eval-v0.2.3: pure_eval==0.2.3 trytond-v4.6.22: trytond==4.6.22 @@ -786,9 +727,7 @@ deps = trytond-v4.8.18: werkzeug<1.0 typer-v0.15.4: typer==0.15.4 - typer-v0.16.1: typer==0.16.1 - typer-v0.17.5: typer==0.17.5 - typer-v0.19.1: typer==0.19.1 + typer-v0.19.2: typer==0.19.2 From 6bc026c5a9a4355a9fd2a3086c19705ebca07d0e Mon Sep 17 00:00:00 2001 From: Ivana Kellyer Date: Wed, 24 Sep 2025 12:52:43 +0200 Subject: [PATCH 2/2] . --- scripts/populate_tox/config.py | 4 ++++ scripts/populate_tox/releases.jsonl | 2 -- scripts/populate_tox/tox.jinja | 2 +- tox.ini | 16 ++-------------- 4 files changed, 7 insertions(+), 17 deletions(-) diff --git a/scripts/populate_tox/config.py b/scripts/populate_tox/config.py index e72b3a11db..34ae680fad 100644 --- a/scripts/populate_tox/config.py +++ b/scripts/populate_tox/config.py @@ -78,6 +78,7 @@ }, "clickhouse_driver": { "package": "clickhouse-driver", + "num_versions": 2, }, "cohere": { "package": "cohere", @@ -222,6 +223,7 @@ }, "loguru": { "package": "loguru", + "num_versions": 2, }, "openai-base": { "package": "openai", @@ -281,6 +283,7 @@ ], "py3.8": ["taskgroup==0.0.0a4"], }, + "num_versions": 2, }, "ray": { "package": "ray", @@ -298,6 +301,7 @@ }, "redis_py_cluster_legacy": { "package": "redis-py-cluster", + "num_versions": 2, }, "requests": { "package": "requests", diff --git a/scripts/populate_tox/releases.jsonl b/scripts/populate_tox/releases.jsonl index baa7c957fc..fa82e6b1cd 100644 --- a/scripts/populate_tox/releases.jsonl +++ b/scripts/populate_tox/releases.jsonl @@ -12,8 +12,6 @@ {"info": {"classifiers": ["Development Status :: 5 - Production/Stable", "Environment :: Web Environment", "Framework :: Flask", "Intended Audience :: Developers", "License :: OSI Approved :: BSD License", "Operating System :: OS Independent", "Programming Language :: Python", "Topic :: Internet :: WWW/HTTP :: Dynamic Content", "Topic :: Internet :: WWW/HTTP :: WSGI", "Topic :: Internet :: WWW/HTTP :: WSGI :: Application", "Topic :: Software Development :: Libraries :: Application Frameworks"], "name": "Flask", "requires_python": ">=3.8", "version": "2.3.3", "yanked": false}} {"info": {"classifiers": ["Development Status :: 5 - Production/Stable", "Environment :: Web Environment", "Framework :: Flask", "Intended Audience :: Developers", "Operating System :: OS Independent", "Programming Language :: Python", "Topic :: Internet :: WWW/HTTP :: Dynamic Content", "Topic :: Internet :: WWW/HTTP :: WSGI", "Topic :: Internet :: WWW/HTTP :: WSGI :: Application", "Topic :: Software Development :: Libraries :: Application Frameworks", "Typing :: Typed"], "name": "Flask", "requires_python": ">=3.9", "version": "3.1.2", "yanked": false}} {"info": {"classifiers": ["Development Status :: 4 - Beta", "Environment :: Web Environment", "Intended Audience :: Developers", "License :: OSI Approved :: MIT License", "Operating System :: OS Independent", "Programming Language :: Python", "Programming Language :: Python :: 3", "Programming Language :: Python :: 3.10", "Programming Language :: Python :: 3.7", "Programming Language :: Python :: 3.8", "Programming Language :: Python :: 3.9", "Topic :: Internet :: WWW/HTTP :: Dynamic Content", "Topic :: Software Development :: Libraries :: Python Modules"], "name": "Quart", "requires_python": ">=3.7", "version": "0.16.3", "yanked": false}} -{"info": {"classifiers": ["Development Status :: 4 - Beta", "Environment :: Web Environment", "Intended Audience :: Developers", "License :: OSI Approved :: MIT License", "Operating System :: OS Independent", "Programming Language :: Python", "Programming Language :: Python :: 3", "Programming Language :: Python :: 3.10", "Programming Language :: Python :: 3.7", "Programming Language :: Python :: 3.8", "Programming Language :: Python :: 3.9", "Topic :: Internet :: WWW/HTTP :: Dynamic Content", "Topic :: Software Development :: Libraries :: Python Modules"], "name": "Quart", "requires_python": ">=3.7", "version": "0.17.0", "yanked": false}} -{"info": {"classifiers": ["Development Status :: 4 - Beta", "Environment :: Web Environment", "Intended Audience :: Developers", "License :: OSI Approved :: MIT License", "Operating System :: OS Independent", "Programming Language :: Python", "Programming Language :: Python :: 3", "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 :: WWW/HTTP :: Dynamic Content", "Topic :: Software Development :: Libraries :: Python Modules"], "name": "Quart", "requires_python": ">=3.7", "version": "0.18.4", "yanked": false}} {"info": {"classifiers": ["Development Status :: 4 - Beta", "Environment :: Web Environment", "Framework :: Flask", "Intended Audience :: Developers", "License :: OSI Approved :: MIT License", "Operating System :: OS Independent", "Programming Language :: Python", "Topic :: Internet :: WWW/HTTP :: Dynamic Content", "Topic :: Software Development :: Libraries :: Application Frameworks", "Typing :: Typed"], "name": "Quart", "requires_python": ">=3.9", "version": "0.20.0", "yanked": false}} {"info": {"classifiers": ["Development Status :: 5 - Production/Stable", "Intended Audience :: Developers", "License :: OSI Approved :: MIT License", "Operating System :: OS Independent", "Programming Language :: Python", "Programming Language :: Python :: 3", "Programming Language :: Python :: Implementation :: CPython", "Programming Language :: Python :: Implementation :: PyPy", "Topic :: Database :: Front-Ends"], "name": "SQLAlchemy", "requires_python": "", "version": "1.2.19", "yanked": false}} {"info": {"classifiers": ["Development Status :: 5 - Production/Stable", "Intended Audience :: Developers", "License :: OSI Approved :: MIT 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.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 :: Database :: Front-Ends"], "name": "SQLAlchemy", "requires_python": ">=2.7, !=3.0.*, !=3.1.*, !=3.2.*, !=3.3.*", "version": "1.3.24", "yanked": false}} diff --git a/scripts/populate_tox/tox.jinja b/scripts/populate_tox/tox.jinja index 9aa942ebe4..f47d5db692 100755 --- a/scripts/populate_tox/tox.jinja +++ b/scripts/populate_tox/tox.jinja @@ -7,7 +7,7 @@ # by "scripts/populate_tox/populate_tox.py". Any changes to the file should # be made in the template (if you want to change a hardcoded part of the file) # or in the script (if you want to change the auto-generated part). -# The file (and all resulting CI YAMLs) then need to be regenerated via +# The file (and all resulting CI YAMLs) then needs to be regenerated via # "scripts/generate-test-files.sh". # # Last generated: {{ updated }} diff --git a/tox.ini b/tox.ini index 449e1f87b7..e0295707ab 100644 --- a/tox.ini +++ b/tox.ini @@ -7,10 +7,10 @@ # by "scripts/populate_tox/populate_tox.py". Any changes to the file should # be made in the template (if you want to change a hardcoded part of the file) # or in the script (if you want to change the auto-generated part). -# The file (and all resulting CI YAMLs) then need to be regenerated via +# The file (and all resulting CI YAMLs) then needs to be regenerated via # "scripts/generate-test-files.sh". # -# Last generated: 2025-09-24T08:50:46.444504+00:00 +# Last generated: 2025-09-24T10:52:00.519014+00:00 [tox] requires = @@ -247,8 +247,6 @@ envlist = {py3.6,py3.10,py3.11}-pyramid-v2.0.2 {py3.7,py3.9,py3.10}-quart-v0.16.3 - {py3.7,py3.9,py3.10}-quart-v0.17.0 - {py3.7,py3.10,py3.11}-quart-v0.18.4 {py3.9,py3.12,py3.13}-quart-v0.20.0 {py3.6}-sanic-v0.8.3 @@ -650,8 +648,6 @@ deps = pyramid: werkzeug<2.1.0 quart-v0.16.3: quart==0.16.3 - quart-v0.17.0: quart==0.17.0 - quart-v0.18.4: quart==0.18.4 quart-v0.20.0: quart==0.20.0 quart: quart-auth quart: pytest-asyncio @@ -661,14 +657,6 @@ deps = quart-v0.16.3: jinja2<3.1.0 quart-v0.16.3: Werkzeug<2.3.0 quart-v0.16.3: hypercorn<0.15.0 - quart-v0.17.0: blinker<1.6 - quart-v0.17.0: jinja2<3.1.0 - quart-v0.17.0: Werkzeug<2.3.0 - quart-v0.17.0: hypercorn<0.15.0 - quart-v0.18.4: blinker<1.6 - quart-v0.18.4: jinja2<3.1.0 - quart-v0.18.4: Werkzeug<2.3.0 - quart-v0.18.4: hypercorn<0.15.0 {py3.8}-quart: taskgroup==0.0.0a4 sanic-v0.8.3: sanic==0.8.3