Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 1 addition & 1 deletion .github/workflows/test-integrations-ai.yml
Original file line number Diff line number Diff line change
Expand Up @@ -29,7 +29,7 @@ jobs:
strategy:
fail-fast: false
matrix:
python-version: ["3.8","3.9","3.10","3.11","3.12","3.13"]
python-version: ["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
Expand Down
2 changes: 1 addition & 1 deletion .github/workflows/test-integrations-cloud.yml
Original file line number Diff line number Diff line change
Expand Up @@ -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
Expand Down
2 changes: 1 addition & 1 deletion .github/workflows/test-integrations-flags.yml
Original file line number Diff line number Diff line change
Expand Up @@ -29,7 +29,7 @@ jobs:
strategy:
fail-fast: false
matrix:
python-version: ["3.7","3.8","3.9","3.12","3.13"]
python-version: ["3.7","3.8","3.9","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
Expand Down
2 changes: 1 addition & 1 deletion .github/workflows/test-integrations-graphql.yml
Original file line number Diff line number Diff line change
Expand Up @@ -29,7 +29,7 @@ jobs:
strategy:
fail-fast: false
matrix:
python-version: ["3.6","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","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
Expand Down
2 changes: 1 addition & 1 deletion .github/workflows/test-integrations-network.yml
Original file line number Diff line number Diff line change
Expand Up @@ -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
Expand Down
2 changes: 1 addition & 1 deletion .github/workflows/test-integrations-web-1.yml
Original file line number Diff line number Diff line change
Expand Up @@ -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
Expand Down
6 changes: 6 additions & 0 deletions scripts/populate_tox/config.py
Original file line number Diff line number Diff line change
Expand Up @@ -204,6 +204,9 @@
">=0.3": ["langchain-community"],
},
"include": "<1.0",
"python": {
"<1.0": "<3.14", # https://github.com/langchain-ai/langchain/issues/33449#issuecomment-3408876631
},
},
"langchain-notiktoken": {
"package": "langchain",
Expand All @@ -214,6 +217,9 @@
">=0.3": ["langchain-community"],
},
"include": "<1.0",
"python": {
"<1.0": "<3.14", # https://github.com/langchain-ai/langchain/issues/33449#issuecomment-3408876631
},
},
"langgraph": {
"package": "langgraph",
Expand Down
38 changes: 19 additions & 19 deletions scripts/populate_tox/releases.jsonl

Large diffs are not rendered by default.

1 change: 1 addition & 0 deletions setup.py
Original file line number Diff line number Diff line change
Expand Up @@ -107,6 +107,7 @@ def get_file_text(file_name):
"Programming Language :: Python :: 3.11",
"Programming Language :: Python :: 3.12",
"Programming Language :: Python :: 3.13",
"Programming Language :: Python :: 3.14",
"Topic :: Software Development :: Libraries :: Python Modules",
],
options={"bdist_wheel": {"universal": "1"}},
Expand Down
5 changes: 5 additions & 0 deletions tests/integrations/quart/test_quart.py
Original file line number Diff line number Diff line change
@@ -1,5 +1,6 @@
import importlib
import json
import sys
import threading
from unittest import mock

Expand Down Expand Up @@ -78,6 +79,10 @@ def integration_enabled_params(request):
not importlib.util.find_spec("quart_flask_patch"),
reason="requires quart_flask_patch",
)
@pytest.mark.skipif(
sys.version_info >= (3, 14),
reason="quart_flask_patch not working on 3.14 (yet?)",
)
Comment on lines +82 to +85
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

What's going on here? Should we make an issue to work on this or will this resolve over time?

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

quart_flask_patch is a small library that allows you to use Flask extensions in a Quart app. We don't use it directly, but we have some logic in the Flask integration to detect whether quart_flask_patch is installed and if so, we disable the Flask integration. (Long story short, quart_flask_patch makes a Quart app masquerade as a Flask app in order for Flask extensions to work with it, so our Flask integration tries to auto-enable because "Flask" is installed, and things explode.)

quart_flask_patch last had an update more than a year ago, so not sure if it's even still alive. It's also not used by many folks. If we notice they have a new release at some point, we can adjust, but no need to track it.

async def test_quart_flask_patch(sentry_init, capture_events, reset_integrations):
# This testcase is forked because `import quart_flask_patch` needs to run
# before anything else Quart-related is imported (since it monkeypatches
Expand Down
88 changes: 43 additions & 45 deletions tox.ini
Original file line number Diff line number Diff line change
Expand Up @@ -58,15 +58,15 @@ envlist =
{py3.9,py3.11,py3.12}-cohere-v5.19.0

{py3.9,py3.12,py3.13}-google_genai-v1.29.0
{py3.9,py3.12,py3.13}-google_genai-v1.34.0
{py3.9,py3.12,py3.13}-google_genai-v1.39.1
{py3.9,py3.12,py3.13}-google_genai-v1.45.0
{py3.9,py3.12,py3.13}-google_genai-v1.35.0
{py3.9,py3.12,py3.13}-google_genai-v1.41.0
{py3.9,py3.13,py3.14}-google_genai-v1.46.0

{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.3
{py3.9,py3.12,py3.13}-huggingface_hub-v1.0.0rc6
{py3.9,py3.12,py3.13}-huggingface_hub-v1.0.0rc7

{py3.9,py3.11,py3.12}-langchain-base-v0.1.20
{py3.9,py3.11,py3.12}-langchain-base-v0.2.17
Expand All @@ -76,31 +76,31 @@ envlist =
{py3.9,py3.11,py3.12}-langchain-notiktoken-v0.2.17
{py3.9,py3.12,py3.13}-langchain-notiktoken-v0.3.27

{py3.9,py3.12,py3.13}-langgraph-v0.6.10
{py3.10,py3.12,py3.13}-langgraph-v1.0.0
{py3.9,py3.13,py3.14}-langgraph-v0.6.11
{py3.10,py3.12,py3.13}-langgraph-v1.0.1

{py3.9,py3.12,py3.13}-litellm-v1.77.7
{py3.9,py3.12,py3.13}-litellm-v1.78.5
{py3.9,py3.12,py3.13}-litellm-v1.78.6

{py3.8,py3.11,py3.12}-openai-base-v1.0.1
{py3.8,py3.12,py3.13}-openai-base-v1.109.1
{py3.9,py3.12,py3.13}-openai-base-v2.5.0
{py3.9,py3.12,py3.13}-openai-base-v2.6.0

{py3.8,py3.11,py3.12}-openai-notiktoken-v1.0.1
{py3.8,py3.12,py3.13}-openai-notiktoken-v1.109.1
{py3.9,py3.12,py3.13}-openai-notiktoken-v2.5.0
{py3.9,py3.12,py3.13}-openai-notiktoken-v2.6.0

{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.4.0
{py3.10,py3.12,py3.13}-openai_agents-v0.4.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.55
{py3.9,py3.13,py3.14}-boto3-v1.40.56

{py3.6,py3.7,py3.8}-chalice-v1.16.0
{py3.9,py3.12,py3.13}-chalice-v1.32.0
Expand Down Expand Up @@ -135,13 +135,13 @@ envlist =

# ~~~ Flags ~~~
{py3.8,py3.12,py3.13}-launchdarkly-v9.8.1
{py3.9,py3.12,py3.13}-launchdarkly-v9.12.1
{py3.9,py3.13,py3.14}-launchdarkly-v9.12.1

{py3.8,py3.12,py3.13}-openfeature-v0.7.5
{py3.9,py3.12,py3.13}-openfeature-v0.8.3
{py3.8,py3.13,py3.14}-openfeature-v0.7.5
{py3.9,py3.13,py3.14}-openfeature-v0.8.3

{py3.7,py3.12,py3.13}-statsig-v0.55.3
{py3.7,py3.12,py3.13}-statsig-v0.66.0
{py3.7,py3.13,py3.14}-statsig-v0.55.3
{py3.7,py3.13,py3.14}-statsig-v0.66.0

{py3.8,py3.12,py3.13}-unleash-v6.0.1
{py3.8,py3.12,py3.13}-unleash-v6.3.0
Expand All @@ -159,23 +159,22 @@ envlist =
{py3.8,py3.12,py3.13}-graphene-v3.4.3

{py3.8,py3.10,py3.11}-strawberry-v0.209.8
{py3.10,py3.12,py3.13}-strawberry-v0.284.1
{py3.10,py3.13,py3.14}-strawberry-v0.284.1


# ~~~ Network ~~~
{py3.7,py3.8}-grpc-v1.32.0
{py3.7,py3.9,py3.10}-grpc-v1.47.5
{py3.7,py3.11,py3.12}-grpc-v1.62.3
{py3.9,py3.12,py3.13}-grpc-v1.75.1
{py3.9,py3.12,py3.13}-grpc-v1.76.0rc1
{py3.9,py3.13,py3.14}-grpc-v1.76.0

{py3.6,py3.8,py3.9}-httpx-v0.16.1
{py3.6,py3.9,py3.10}-httpx-v0.20.0
{py3.7,py3.10,py3.11}-httpx-v0.24.1
{py3.9,py3.11,py3.12}-httpx-v0.28.1

{py3.6}-requests-v2.12.5
{py3.9,py3.12,py3.13}-requests-v2.32.5
{py3.9,py3.13,py3.14}-requests-v2.32.5


# ~~~ Tasks ~~~
Expand All @@ -184,7 +183,7 @@ envlist =

{py3.7}-beam-v2.14.0
{py3.9,py3.12,py3.13}-beam-v2.68.0
{py3.9,py3.12,py3.13}-beam-v2.69.0rc1
{py3.9,py3.12,py3.13}-beam-v2.69.0rc3

{py3.6,py3.7,py3.8}-celery-v4.4.7
{py3.8,py3.12,py3.13}-celery-v5.5.3
Expand Down Expand Up @@ -218,25 +217,25 @@ envlist =
{py3.12,py3.13}-django-v6.0a1

{py3.6,py3.7,py3.8}-flask-v1.1.4
{py3.8,py3.12,py3.13}-flask-v2.3.3
{py3.9,py3.12,py3.13}-flask-v3.1.2
{py3.8,py3.13,py3.14}-flask-v2.3.3
{py3.9,py3.13,py3.14}-flask-v3.1.2

{py3.6,py3.9,py3.10}-starlette-v0.16.0
{py3.7,py3.10,py3.11}-starlette-v0.27.0
{py3.8,py3.12,py3.13}-starlette-v0.38.6
{py3.9,py3.12,py3.13}-starlette-v0.48.0
{py3.9,py3.13,py3.14}-starlette-v0.48.0

{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.119.1
{py3.8,py3.13,py3.14}-fastapi-v0.119.1


# ~~~ Web 2 ~~~
{py3.7}-aiohttp-v3.4.4
{py3.7,py3.8,py3.9}-aiohttp-v3.7.4
{py3.8,py3.12,py3.13}-aiohttp-v3.10.11
{py3.9,py3.12,py3.13}-aiohttp-v3.13.1
{py3.9,py3.13,py3.14}-aiohttp-v3.13.1

{py3.6,py3.7}-bottle-v0.12.25
{py3.8,py3.12,py3.13}-bottle-v0.13.4
Expand All @@ -256,7 +255,7 @@ envlist =
{py3.6,py3.10,py3.11}-pyramid-v2.0.2

{py3.7,py3.9,py3.10}-quart-v0.16.3
{py3.9,py3.12,py3.13}-quart-v0.20.0
{py3.9,py3.13,py3.14}-quart-v0.20.0

{py3.6}-sanic-v0.8.3
{py3.6,py3.8,py3.9}-sanic-v20.12.7
Expand All @@ -280,10 +279,10 @@ envlist =
{py3.6}-trytond-v4.8.18
{py3.6,py3.7,py3.8}-trytond-v5.8.16
{py3.8,py3.10,py3.11}-trytond-v6.8.17
{py3.9,py3.12,py3.13}-trytond-v7.6.8
{py3.9,py3.12,py3.13}-trytond-v7.6.9

{py3.7,py3.12,py3.13}-typer-v0.15.4
{py3.8,py3.12,py3.13}-typer-v0.19.2
{py3.8,py3.13,py3.14}-typer-v0.20.0



Expand Down Expand Up @@ -356,16 +355,16 @@ deps =
cohere-v5.19.0: cohere==5.19.0

google_genai-v1.29.0: google-genai==1.29.0
google_genai-v1.34.0: google-genai==1.34.0
google_genai-v1.39.1: google-genai==1.39.1
google_genai-v1.45.0: google-genai==1.45.0
google_genai-v1.35.0: google-genai==1.35.0
google_genai-v1.41.0: google-genai==1.41.0
google_genai-v1.46.0: google-genai==1.46.0
google_genai: 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.3: huggingface_hub==0.35.3
huggingface_hub-v1.0.0rc6: huggingface_hub==1.0.0rc6
huggingface_hub-v1.0.0rc7: huggingface_hub==1.0.0rc7
huggingface_hub: responses
huggingface_hub: pytest-httpx

Expand All @@ -384,37 +383,37 @@ deps =
langchain-notiktoken: langchain-openai
langchain-notiktoken-v0.3.27: langchain-community

langgraph-v0.6.10: langgraph==0.6.10
langgraph-v1.0.0: langgraph==1.0.0
langgraph-v0.6.11: langgraph==0.6.11
langgraph-v1.0.1: langgraph==1.0.1

litellm-v1.77.7: litellm==1.77.7
litellm-v1.78.5: litellm==1.78.5
litellm-v1.78.6: litellm==1.78.6

openai-base-v1.0.1: openai==1.0.1
openai-base-v1.109.1: openai==1.109.1
openai-base-v2.5.0: openai==2.5.0
openai-base-v2.6.0: openai==2.6.0
openai-base: pytest-asyncio
openai-base: tiktoken
openai-base-v1.0.1: httpx<0.28

openai-notiktoken-v1.0.1: openai==1.0.1
openai-notiktoken-v1.109.1: openai==1.109.1
openai-notiktoken-v2.5.0: openai==2.5.0
openai-notiktoken-v2.6.0: openai==2.6.0
openai-notiktoken: pytest-asyncio
openai-notiktoken-v1.0.1: httpx<0.28

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.4.0: openai-agents==0.4.0
openai_agents-v0.4.1: openai-agents==0.4.1
openai_agents: pytest-asyncio


# ~~~ Cloud ~~~
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.55: boto3==1.40.55
boto3-v1.40.56: boto3==1.40.56
{py3.7,py3.8}-boto3: urllib3<2.0.0

chalice-v1.16.0: chalice==1.16.0
Expand Down Expand Up @@ -500,8 +499,7 @@ deps =
grpc-v1.32.0: grpcio==1.32.0
grpc-v1.47.5: grpcio==1.47.5
grpc-v1.62.3: grpcio==1.62.3
grpc-v1.75.1: grpcio==1.75.1
grpc-v1.76.0rc1: grpcio==1.76.0rc1
grpc-v1.76.0: grpcio==1.76.0
grpc: protobuf
grpc: mypy-protobuf
grpc: types-protobuf
Expand Down Expand Up @@ -531,7 +529,7 @@ deps =

beam-v2.14.0: apache-beam==2.14.0
beam-v2.68.0: apache-beam==2.68.0
beam-v2.69.0rc1: apache-beam==2.69.0rc1
beam-v2.69.0rc3: apache-beam==2.69.0rc3
beam: dill

celery-v4.4.7: celery==4.4.7
Expand Down Expand Up @@ -715,13 +713,13 @@ deps =
trytond-v4.8.18: trytond==4.8.18
trytond-v5.8.16: trytond==5.8.16
trytond-v6.8.17: trytond==6.8.17
trytond-v7.6.8: trytond==7.6.8
trytond-v7.6.9: trytond==7.6.9
trytond: werkzeug
trytond-v4.6.22: werkzeug<1.0
trytond-v4.8.18: werkzeug<1.0

typer-v0.15.4: typer==0.15.4
typer-v0.19.2: typer==0.19.2
typer-v0.20.0: typer==0.20.0



Expand Down