From 2cc39ea25b1a30ce447a02d74890e7daed743d60 Mon Sep 17 00:00:00 2001 From: Ivana Kellyer Date: Tue, 29 Apr 2025 10:15:42 +0200 Subject: [PATCH 01/16] tests: Update tox.ini --- tox.ini | 18 +++++++++--------- 1 file changed, 9 insertions(+), 9 deletions(-) diff --git a/tox.ini b/tox.ini index 6f3b9863e8..0632a4e8e3 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-04-23T08:07:00.653648+00:00 +# Last generated: 2025-04-29T08:15:04.584844+00:00 [tox] requires = @@ -215,7 +215,7 @@ envlist = # ~~~ Tasks ~~~ {py3.6,py3.7,py3.8}-celery-v4.4.7 {py3.6,py3.7,py3.8}-celery-v5.0.5 - {py3.8,py3.12,py3.13}-celery-v5.5.1 + {py3.8,py3.12,py3.13}-celery-v5.5.2 {py3.6,py3.7}-dramatiq-v1.9.0 {py3.6,py3.8,py3.9}-dramatiq-v1.12.3 @@ -298,10 +298,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.8,py3.11,py3.12}-trytond-v7.0.29 - {py3.8,py3.11,py3.12}-trytond-v7.4.9 + {py3.8,py3.11,py3.12}-trytond-v7.0.30 + {py3.9,py3.12,py3.13}-trytond-v7.6.0 - {py3.7,py3.12,py3.13}-typer-v0.15.2 + {py3.7,py3.12,py3.13}-typer-v0.15.3 @@ -600,7 +600,7 @@ deps = # ~~~ Tasks ~~~ celery-v4.4.7: celery==4.4.7 celery-v5.0.5: celery==5.0.5 - celery-v5.5.1: celery==5.5.1 + celery-v5.5.2: celery==5.5.2 celery: newrelic celery: redis py3.7-celery: importlib-metadata<5.0 @@ -753,13 +753,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.0.29: trytond==7.0.29 - trytond-v7.4.9: trytond==7.4.9 + trytond-v7.0.30: trytond==7.0.30 + trytond-v7.6.0: trytond==7.6.0 trytond: werkzeug trytond-v4.6.22: werkzeug<1.0 trytond-v4.8.18: werkzeug<1.0 - typer-v0.15.2: typer==0.15.2 + typer-v0.15.3: typer==0.15.3 From 0beed64447cbdaaa2bb1f8b77960ed046ad908aa Mon Sep 17 00:00:00 2001 From: Ivana Kellyer Date: Tue, 29 Apr 2025 10:20:43 +0200 Subject: [PATCH 02/16] tests: Move anthropic under toxgen --- .github/workflows/test-integrations-ai.yml | 4 ++-- scripts/populate_tox/config.py | 7 ++++++ scripts/populate_tox/populate_tox.py | 1 - scripts/populate_tox/tox.jinja | 12 ---------- tox.ini | 27 +++++++++++----------- 5 files changed, 23 insertions(+), 28 deletions(-) diff --git a/.github/workflows/test-integrations-ai.yml b/.github/workflows/test-integrations-ai.yml index f392f57f46..84d05a7fbc 100644 --- a/.github/workflows/test-integrations-ai.yml +++ b/.github/workflows/test-integrations-ai.yml @@ -29,7 +29,7 @@ jobs: strategy: fail-fast: false matrix: - python-version: ["3.7","3.9","3.11","3.12"] + python-version: ["3.9","3.11","3.12"] # 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 @@ -104,7 +104,7 @@ jobs: strategy: fail-fast: false matrix: - python-version: ["3.8","3.9","3.10","3.11","3.12","3.13"] + python-version: ["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/config.py b/scripts/populate_tox/config.py index f874ff8a9c..d62fe794b6 100644 --- a/scripts/populate_tox/config.py +++ b/scripts/populate_tox/config.py @@ -14,6 +14,13 @@ }, "python": ">=3.7", }, + "anthropic": { + "package": "anthropic", + "deps": { + "*": ["pytest-asyncio"], + "<0.29": ["httpx<0.28.0"], + }, + }, "ariadne": { "package": "ariadne", "deps": { diff --git a/scripts/populate_tox/populate_tox.py b/scripts/populate_tox/populate_tox.py index c04ab1b209..0aeb0f02ef 100644 --- a/scripts/populate_tox/populate_tox.py +++ b/scripts/populate_tox/populate_tox.py @@ -67,7 +67,6 @@ "potel", # Integrations that can be migrated -- we should eventually remove all # of these from the IGNORE list - "anthropic", "arq", "asyncpg", "beam", diff --git a/scripts/populate_tox/tox.jinja b/scripts/populate_tox/tox.jinja index 3cfb5e1252..2869da275b 100644 --- a/scripts/populate_tox/tox.jinja +++ b/scripts/populate_tox/tox.jinja @@ -36,10 +36,6 @@ envlist = # At a minimum, we should test against at least the lowest # and the latest supported version of a framework. - # Anthropic - {py3.8,py3.11,py3.12}-anthropic-v{0.16,0.28,0.40} - {py3.7,py3.11,py3.12}-anthropic-latest - # Arq {py3.7,py3.11}-arq-v{0.23} {py3.7,py3.12,py3.13}-arq-latest @@ -179,14 +175,6 @@ deps = # === Integrations === - # Anthropic - anthropic: pytest-asyncio - anthropic-v{0.16,0.28}: httpx<0.28.0 - anthropic-v0.16: anthropic~=0.16.0 - anthropic-v0.28: anthropic~=0.28.0 - anthropic-v0.40: anthropic~=0.40.0 - anthropic-latest: anthropic - # Arq arq-v0.23: arq~=0.23.0 arq-v0.23: pydantic<2 diff --git a/tox.ini b/tox.ini index 0632a4e8e3..489284958f 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-04-29T08:15:04.584844+00:00 +# Last generated: 2025-04-29T08:20:19.912101+00:00 [tox] requires = @@ -36,10 +36,6 @@ envlist = # At a minimum, we should test against at least the lowest # and the latest supported version of a framework. - # Anthropic - {py3.8,py3.11,py3.12}-anthropic-v{0.16,0.28,0.40} - {py3.7,py3.11,py3.12}-anthropic-latest - # Arq {py3.7,py3.11}-arq-v{0.23} {py3.7,py3.12,py3.13}-arq-latest @@ -139,6 +135,11 @@ envlist = # integration tests there. # ~~~ AI ~~~ + {py3.7,py3.11,py3.12}-anthropic-v0.16.0 + {py3.7,py3.11,py3.12}-anthropic-v0.27.0 + {py3.7,py3.11,py3.12}-anthropic-v0.38.0 + {py3.8,py3.11,py3.12}-anthropic-v0.50.0 + {py3.9,py3.10,py3.11}-cohere-v5.4.0 {py3.9,py3.11,py3.12}-cohere-v5.8.1 {py3.9,py3.11,py3.12}-cohere-v5.11.4 @@ -335,14 +336,6 @@ deps = # === Integrations === - # Anthropic - anthropic: pytest-asyncio - anthropic-v{0.16,0.28}: httpx<0.28.0 - anthropic-v0.16: anthropic~=0.16.0 - anthropic-v0.28: anthropic~=0.28.0 - anthropic-v0.40: anthropic~=0.40.0 - anthropic-latest: anthropic - # Arq arq-v0.23: arq~=0.23.0 arq-v0.23: pydantic<2 @@ -506,6 +499,14 @@ deps = # integration tests there. # ~~~ AI ~~~ + anthropic-v0.16.0: anthropic==0.16.0 + anthropic-v0.27.0: anthropic==0.27.0 + anthropic-v0.38.0: anthropic==0.38.0 + anthropic-v0.50.0: anthropic==0.50.0 + anthropic: pytest-asyncio + anthropic-v0.16.0: httpx<0.28.0 + anthropic-v0.27.0: httpx<0.28.0 + cohere-v5.4.0: cohere==5.4.0 cohere-v5.8.1: cohere==5.8.1 cohere-v5.11.4: cohere==5.11.4 From b73b738753250e8d7f329751b1a6231603e0e51c Mon Sep 17 00:00:00 2001 From: Ivana Kellyer Date: Tue, 29 Apr 2025 10:35:56 +0200 Subject: [PATCH 03/16] adjust versions --- .github/workflows/test-integrations-ai.yml | 2 +- scripts/populate_tox/config.py | 3 ++- tox.ini | 9 +++++---- 3 files changed, 8 insertions(+), 6 deletions(-) diff --git a/.github/workflows/test-integrations-ai.yml b/.github/workflows/test-integrations-ai.yml index 84d05a7fbc..bc89cb9afe 100644 --- a/.github/workflows/test-integrations-ai.yml +++ b/.github/workflows/test-integrations-ai.yml @@ -104,7 +104,7 @@ jobs: strategy: fail-fast: false matrix: - python-version: ["3.7","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"] # 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 d62fe794b6..4d5d5b14ce 100644 --- a/scripts/populate_tox/config.py +++ b/scripts/populate_tox/config.py @@ -18,8 +18,9 @@ "package": "anthropic", "deps": { "*": ["pytest-asyncio"], - "<0.29": ["httpx<0.28.0"], + "<0.50": ["httpx<0.28.0"], }, + "python": ">=3.8", }, "ariadne": { "package": "ariadne", diff --git a/tox.ini b/tox.ini index 489284958f..4c05bcaa75 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-04-29T08:20:19.912101+00:00 +# Last generated: 2025-04-29T08:35:44.624881+00:00 [tox] requires = @@ -135,9 +135,9 @@ envlist = # integration tests there. # ~~~ AI ~~~ - {py3.7,py3.11,py3.12}-anthropic-v0.16.0 - {py3.7,py3.11,py3.12}-anthropic-v0.27.0 - {py3.7,py3.11,py3.12}-anthropic-v0.38.0 + {py3.8,py3.11,py3.12}-anthropic-v0.16.0 + {py3.8,py3.11,py3.12}-anthropic-v0.27.0 + {py3.8,py3.11,py3.12}-anthropic-v0.38.0 {py3.8,py3.11,py3.12}-anthropic-v0.50.0 {py3.9,py3.10,py3.11}-cohere-v5.4.0 @@ -506,6 +506,7 @@ deps = anthropic: pytest-asyncio anthropic-v0.16.0: httpx<0.28.0 anthropic-v0.27.0: httpx<0.28.0 + anthropic-v0.38.0: httpx<0.28.0 cohere-v5.4.0: cohere==5.4.0 cohere-v5.8.1: cohere==5.8.1 From 944f1b228a6051b70f3b537596143a0a2ea8657b Mon Sep 17 00:00:00 2001 From: Ivana Kellyer Date: Tue, 29 Apr 2025 10:57:15 +0200 Subject: [PATCH 04/16] tests: Move langchain under toxgen --- scripts/populate_tox/config.py | 27 ++++++++++++++++++++ scripts/populate_tox/populate_tox.py | 2 -- scripts/populate_tox/tox.jinja | 20 --------------- tox.ini | 38 +++++++++++++--------------- 4 files changed, 44 insertions(+), 43 deletions(-) diff --git a/scripts/populate_tox/config.py b/scripts/populate_tox/config.py index 4d5d5b14ce..f6c022e7dd 100644 --- a/scripts/populate_tox/config.py +++ b/scripts/populate_tox/config.py @@ -126,6 +126,33 @@ "huggingface_hub": { "package": "huggingface_hub", }, + # Langchain + # langchain-v0.1: openai~=1.0.0 + # langchain-v0.1: langchain~=0.1.11 + # langchain-v0.1: tiktoken~=0.6.0 + # langchain-v0.1: httpx<0.28.0 + # langchain-v0.3: langchain~=0.3.0 + # langchain-v0.3: langchain-community + # langchain-v0.3: tiktoken + # langchain-v0.3: openai + # langchain-{latest,notiktoken}: langchain + # langchain-{latest,notiktoken}: langchain-openai + # langchain-{latest,notiktoken}: openai>=1.6.1 + # langchain-latest: tiktoken~=0.6.0 + "langchain": { + "package": "langchain", + "deps": { + "*": ["openai", "tiktoken"], + "<0.2": ["httpx<0.28.0"], + ">0.2": ["langchain-community"], + }, + }, + "langchain-notiktoken": { + "package": "langchain", + "deps": { + "*": ["langchain-openai"], + }, + }, "launchdarkly": { "package": "launchdarkly-server-sdk", }, diff --git a/scripts/populate_tox/populate_tox.py b/scripts/populate_tox/populate_tox.py index 0aeb0f02ef..6bf615cc89 100644 --- a/scripts/populate_tox/populate_tox.py +++ b/scripts/populate_tox/populate_tox.py @@ -74,8 +74,6 @@ "chalice", "gcp", "httpx", - "langchain", - "langchain_notiktoken", "openai", "openai_notiktoken", "pure_eval", diff --git a/scripts/populate_tox/tox.jinja b/scripts/populate_tox/tox.jinja index 2869da275b..66de126b90 100644 --- a/scripts/populate_tox/tox.jinja +++ b/scripts/populate_tox/tox.jinja @@ -77,12 +77,6 @@ envlist = {py3.9,py3.11,py3.12}-httpx-v{0.25,0.27} {py3.9,py3.12,py3.13}-httpx-latest - # Langchain - {py3.9,py3.11,py3.12}-langchain-v0.1 - {py3.9,py3.11,py3.12}-langchain-v0.3 - {py3.9,py3.11,py3.12}-langchain-latest - {py3.9,py3.11,py3.12}-langchain-notiktoken - # OpenAI {py3.9,py3.11,py3.12}-openai-v1.0 {py3.9,py3.11,py3.12}-openai-v1.22 @@ -236,20 +230,6 @@ deps = httpx-v0.27: httpx~=0.27.0 httpx-latest: httpx - # Langchain - langchain-v0.1: openai~=1.0.0 - langchain-v0.1: langchain~=0.1.11 - langchain-v0.1: tiktoken~=0.6.0 - langchain-v0.1: httpx<0.28.0 - langchain-v0.3: langchain~=0.3.0 - langchain-v0.3: langchain-community - langchain-v0.3: tiktoken - langchain-v0.3: openai - langchain-{latest,notiktoken}: langchain - langchain-{latest,notiktoken}: langchain-openai - langchain-{latest,notiktoken}: openai>=1.6.1 - langchain-latest: tiktoken~=0.6.0 - # OpenAI openai: pytest-asyncio openai-v1.0: openai~=1.0.0 diff --git a/tox.ini b/tox.ini index 4c05bcaa75..e819eca445 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-04-29T08:35:44.624881+00:00 +# Last generated: 2025-04-29T08:56:03.998318+00:00 [tox] requires = @@ -77,12 +77,6 @@ envlist = {py3.9,py3.11,py3.12}-httpx-v{0.25,0.27} {py3.9,py3.12,py3.13}-httpx-latest - # Langchain - {py3.9,py3.11,py3.12}-langchain-v0.1 - {py3.9,py3.11,py3.12}-langchain-v0.3 - {py3.9,py3.11,py3.12}-langchain-latest - {py3.9,py3.11,py3.12}-langchain-notiktoken - # OpenAI {py3.9,py3.11,py3.12}-openai-v1.0 {py3.9,py3.11,py3.12}-openai-v1.22 @@ -145,6 +139,11 @@ envlist = {py3.9,py3.11,py3.12}-cohere-v5.11.4 {py3.9,py3.11,py3.12}-cohere-v5.15.0 + {py3.9,py3.10,py3.11}-langchain-v0.0.354 + {py3.9,py3.11,py3.12}-langchain-v0.1.20 + {py3.9,py3.11,py3.12}-langchain-v0.2.17 + {py3.9,py3.12,py3.13}-langchain-v0.3.24 + {py3.8,py3.10,py3.11}-huggingface_hub-v0.22.2 {py3.8,py3.10,py3.11}-huggingface_hub-v0.25.2 {py3.8,py3.12,py3.13}-huggingface_hub-v0.28.1 @@ -397,20 +396,6 @@ deps = httpx-v0.27: httpx~=0.27.0 httpx-latest: httpx - # Langchain - langchain-v0.1: openai~=1.0.0 - langchain-v0.1: langchain~=0.1.11 - langchain-v0.1: tiktoken~=0.6.0 - langchain-v0.1: httpx<0.28.0 - langchain-v0.3: langchain~=0.3.0 - langchain-v0.3: langchain-community - langchain-v0.3: tiktoken - langchain-v0.3: openai - langchain-{latest,notiktoken}: langchain - langchain-{latest,notiktoken}: langchain-openai - langchain-{latest,notiktoken}: openai>=1.6.1 - langchain-latest: tiktoken~=0.6.0 - # OpenAI openai: pytest-asyncio openai-v1.0: openai~=1.0.0 @@ -513,6 +498,17 @@ deps = cohere-v5.11.4: cohere==5.11.4 cohere-v5.15.0: cohere==5.15.0 + langchain-v0.0.354: langchain==0.0.354 + langchain-v0.1.20: langchain==0.1.20 + langchain-v0.2.17: langchain==0.2.17 + langchain-v0.3.24: langchain==0.3.24 + langchain: openai + langchain: tiktoken + langchain-v0.0.354: httpx<0.28.0 + langchain-v0.1.20: httpx<0.28.0 + langchain-v0.2.17: langchain-community + langchain-v0.3.24: langchain-community + huggingface_hub-v0.22.2: huggingface_hub==0.22.2 huggingface_hub-v0.25.2: huggingface_hub==0.25.2 huggingface_hub-v0.28.1: huggingface_hub==0.28.1 From 705d738da83f56a335f026c68d149f693f12a411 Mon Sep 17 00:00:00 2001 From: Ivana Kellyer Date: Tue, 29 Apr 2025 12:32:37 +0200 Subject: [PATCH 05/16] notiktoken --- .github/workflows/test-integrations-ai.yml | 8 ++++++++ .../split_tox_gh_actions/split_tox_gh_actions.py | 1 + tox.ini | 13 ++++++++++++- 3 files changed, 21 insertions(+), 1 deletion(-) diff --git a/.github/workflows/test-integrations-ai.yml b/.github/workflows/test-integrations-ai.yml index bc89cb9afe..9ef7426734 100644 --- a/.github/workflows/test-integrations-ai.yml +++ b/.github/workflows/test-integrations-ai.yml @@ -62,6 +62,10 @@ jobs: run: | set -x # print commands that are executed ./scripts/runtox.sh "py${{ matrix.python-version }}-langchain-latest" + - name: Test langchain-notiktoken latest + run: | + set -x # print commands that are executed + ./scripts/runtox.sh "py${{ matrix.python-version }}-langchain-notiktoken-latest" - name: Test openai latest run: | set -x # print commands that are executed @@ -137,6 +141,10 @@ jobs: run: | set -x # print commands that are executed ./scripts/runtox.sh --exclude-latest "py${{ matrix.python-version }}-langchain" + - name: Test langchain-notiktoken pinned + run: | + set -x # print commands that are executed + ./scripts/runtox.sh --exclude-latest "py${{ matrix.python-version }}-langchain-notiktoken" - name: Test openai pinned run: | set -x # print commands that are executed diff --git a/scripts/split_tox_gh_actions/split_tox_gh_actions.py b/scripts/split_tox_gh_actions/split_tox_gh_actions.py index 293af897c9..96d8056102 100755 --- a/scripts/split_tox_gh_actions/split_tox_gh_actions.py +++ b/scripts/split_tox_gh_actions/split_tox_gh_actions.py @@ -58,6 +58,7 @@ "anthropic", "cohere", "langchain", + "langchain-notiktoken", "openai", "huggingface_hub", ], diff --git a/tox.ini b/tox.ini index e819eca445..a66541b91d 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-04-29T08:56:03.998318+00:00 +# Last generated: 2025-04-29T10:30:10.128741+00:00 [tox] requires = @@ -144,6 +144,11 @@ envlist = {py3.9,py3.11,py3.12}-langchain-v0.2.17 {py3.9,py3.12,py3.13}-langchain-v0.3.24 + {py3.9,py3.10,py3.11}-langchain-notiktoken-v0.0.354 + {py3.9,py3.11,py3.12}-langchain-notiktoken-v0.1.20 + {py3.9,py3.11,py3.12}-langchain-notiktoken-v0.2.17 + {py3.9,py3.12,py3.13}-langchain-notiktoken-v0.3.24 + {py3.8,py3.10,py3.11}-huggingface_hub-v0.22.2 {py3.8,py3.10,py3.11}-huggingface_hub-v0.25.2 {py3.8,py3.12,py3.13}-huggingface_hub-v0.28.1 @@ -509,6 +514,12 @@ deps = langchain-v0.2.17: langchain-community langchain-v0.3.24: langchain-community + langchain-notiktoken-v0.0.354: langchain==0.0.354 + langchain-notiktoken-v0.1.20: langchain==0.1.20 + langchain-notiktoken-v0.2.17: langchain==0.2.17 + langchain-notiktoken-v0.3.24: langchain==0.3.24 + langchain-notiktoken: langchain-openai + huggingface_hub-v0.22.2: huggingface_hub==0.22.2 huggingface_hub-v0.25.2: huggingface_hub==0.25.2 huggingface_hub-v0.28.1: huggingface_hub==0.28.1 From 7666b0e6eb1fb62824650038ca744d9257d150b8 Mon Sep 17 00:00:00 2001 From: Ivana Kellyer Date: Tue, 6 May 2025 12:21:09 +0200 Subject: [PATCH 06/16] . --- scripts/populate_tox/config.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/scripts/populate_tox/config.py b/scripts/populate_tox/config.py index f6c022e7dd..330fd01b48 100644 --- a/scripts/populate_tox/config.py +++ b/scripts/populate_tox/config.py @@ -143,7 +143,7 @@ "package": "langchain", "deps": { "*": ["openai", "tiktoken"], - "<0.2": ["httpx<0.28.0"], + "<0.2": ["httpx<0.28.0", "openai~=1.0.0"], ">0.2": ["langchain-community"], }, }, From 0c6828112553adc01587278b3b141efc74cb603c Mon Sep 17 00:00:00 2001 From: Ivana Kellyer Date: Tue, 6 May 2025 12:28:19 +0200 Subject: [PATCH 07/16] . --- tox.ini | 28 ++++++++++++++++------------ 1 file changed, 16 insertions(+), 12 deletions(-) diff --git a/tox.ini b/tox.ini index a66541b91d..e0eefb566e 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-04-29T10:30:10.128741+00:00 +# Last generated: 2025-05-06T10:28:08.299635+00:00 [tox] requires = @@ -142,12 +142,12 @@ envlist = {py3.9,py3.10,py3.11}-langchain-v0.0.354 {py3.9,py3.11,py3.12}-langchain-v0.1.20 {py3.9,py3.11,py3.12}-langchain-v0.2.17 - {py3.9,py3.12,py3.13}-langchain-v0.3.24 + {py3.9,py3.12,py3.13}-langchain-v0.3.25 {py3.9,py3.10,py3.11}-langchain-notiktoken-v0.0.354 {py3.9,py3.11,py3.12}-langchain-notiktoken-v0.1.20 {py3.9,py3.11,py3.12}-langchain-notiktoken-v0.2.17 - {py3.9,py3.12,py3.13}-langchain-notiktoken-v0.3.24 + {py3.9,py3.12,py3.13}-langchain-notiktoken-v0.3.25 {py3.8,py3.10,py3.11}-huggingface_hub-v0.22.2 {py3.8,py3.10,py3.11}-huggingface_hub-v0.25.2 @@ -161,7 +161,7 @@ envlist = {py3.6}-pymongo-v3.5.1 {py3.6,py3.10,py3.11}-pymongo-v3.13.0 {py3.6,py3.9,py3.10}-pymongo-v4.0.2 - {py3.9,py3.12,py3.13}-pymongo-v4.12.0 + {py3.9,py3.12,py3.13}-pymongo-v4.12.1 {py3.6}-redis_py_cluster_legacy-v1.3.6 {py3.6,py3.7}-redis_py_cluster_legacy-v2.0.0 @@ -279,7 +279,7 @@ envlist = {py3.8,py3.10,py3.11}-litestar-v2.0.1 {py3.8,py3.11,py3.12}-litestar-v2.5.5 {py3.8,py3.11,py3.12}-litestar-v2.10.0 - {py3.8,py3.12,py3.13}-litestar-v2.15.2 + {py3.8,py3.12,py3.13}-litestar-v2.16.0 {py3.6}-pyramid-v1.8.6 {py3.6,py3.8,py3.9}-pyramid-v1.10.8 @@ -294,6 +294,7 @@ envlist = {py3.6,py3.8,py3.9}-tornado-v6.1 {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.5b1 # ~~~ Misc ~~~ @@ -303,7 +304,7 @@ 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.8,py3.11,py3.12}-trytond-v7.0.30 + {py3.8,py3.11,py3.12}-trytond-v7.0.31 {py3.9,py3.12,py3.13}-trytond-v7.6.0 {py3.7,py3.12,py3.13}-typer-v0.15.3 @@ -506,18 +507,20 @@ deps = langchain-v0.0.354: langchain==0.0.354 langchain-v0.1.20: langchain==0.1.20 langchain-v0.2.17: langchain==0.2.17 - langchain-v0.3.24: langchain==0.3.24 + langchain-v0.3.25: langchain==0.3.25 langchain: openai langchain: tiktoken langchain-v0.0.354: httpx<0.28.0 + langchain-v0.0.354: openai~=1.0.0 langchain-v0.1.20: httpx<0.28.0 + langchain-v0.1.20: openai~=1.0.0 langchain-v0.2.17: langchain-community - langchain-v0.3.24: langchain-community + langchain-v0.3.25: langchain-community langchain-notiktoken-v0.0.354: langchain==0.0.354 langchain-notiktoken-v0.1.20: langchain==0.1.20 langchain-notiktoken-v0.2.17: langchain==0.2.17 - langchain-notiktoken-v0.3.24: langchain==0.3.24 + langchain-notiktoken-v0.3.25: langchain==0.3.25 langchain-notiktoken: langchain-openai huggingface_hub-v0.22.2: huggingface_hub==0.22.2 @@ -532,7 +535,7 @@ deps = pymongo-v3.5.1: pymongo==3.5.1 pymongo-v3.13.0: pymongo==3.13.0 pymongo-v4.0.2: pymongo==4.0.2 - pymongo-v4.12.0: pymongo==4.12.0 + pymongo-v4.12.1: pymongo==4.12.1 pymongo: mockupdb redis_py_cluster_legacy-v1.3.6: redis-py-cluster==1.3.6 @@ -720,7 +723,7 @@ deps = litestar-v2.0.1: litestar==2.0.1 litestar-v2.5.5: litestar==2.5.5 litestar-v2.10.0: litestar==2.10.0 - litestar-v2.15.2: litestar==2.15.2 + litestar-v2.16.0: litestar==2.16.0 litestar: pytest-asyncio litestar: python-multipart litestar: requests @@ -748,6 +751,7 @@ deps = tornado-v6.1: tornado==6.1 tornado-v6.2: tornado==6.2 tornado-v6.4.2: tornado==6.4.2 + tornado-v6.5b1: tornado==6.5b1 tornado: pytest tornado-v6.0.4: pytest<8.2 tornado-v6.1: pytest<8.2 @@ -762,7 +766,7 @@ 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.0.30: trytond==7.0.30 + trytond-v7.0.31: trytond==7.0.31 trytond-v7.6.0: trytond==7.6.0 trytond: werkzeug trytond-v4.6.22: werkzeug<1.0 From 00f42a7679c6fd77eeaae81d3a580f1b3a57ca3a Mon Sep 17 00:00:00 2001 From: Ivana Kellyer Date: Tue, 6 May 2025 12:42:40 +0200 Subject: [PATCH 08/16] update readme --- .github/workflows/test-integrations-ai.yml | 8 ------- scripts/populate_tox/README.md | 23 +++++++++++++++++++ scripts/populate_tox/config.py | 1 + scripts/populate_tox/populate_tox.py | 11 +++++++++ .../split_tox_gh_actions.py | 1 - tox.ini | 2 +- 6 files changed, 36 insertions(+), 10 deletions(-) diff --git a/.github/workflows/test-integrations-ai.yml b/.github/workflows/test-integrations-ai.yml index 9ef7426734..bc89cb9afe 100644 --- a/.github/workflows/test-integrations-ai.yml +++ b/.github/workflows/test-integrations-ai.yml @@ -62,10 +62,6 @@ jobs: run: | set -x # print commands that are executed ./scripts/runtox.sh "py${{ matrix.python-version }}-langchain-latest" - - name: Test langchain-notiktoken latest - run: | - set -x # print commands that are executed - ./scripts/runtox.sh "py${{ matrix.python-version }}-langchain-notiktoken-latest" - name: Test openai latest run: | set -x # print commands that are executed @@ -141,10 +137,6 @@ jobs: run: | set -x # print commands that are executed ./scripts/runtox.sh --exclude-latest "py${{ matrix.python-version }}-langchain" - - name: Test langchain-notiktoken pinned - run: | - set -x # print commands that are executed - ./scripts/runtox.sh --exclude-latest "py${{ matrix.python-version }}-langchain-notiktoken" - name: Test openai pinned run: | set -x # print commands that are executed diff --git a/scripts/populate_tox/README.md b/scripts/populate_tox/README.md index c9a3b67ba0..b32d94ea88 100644 --- a/scripts/populate_tox/README.md +++ b/scripts/populate_tox/README.md @@ -46,6 +46,7 @@ integration_name: { }, "python": python_version_specifier, "include": package_version_specifier, + "variants": another_integration_name, } ``` @@ -153,6 +154,28 @@ be expressed like so: } ``` +### `variants` + +Sometimes we want to test a single integration against two different sets of +dependencies. For example, `langchain` should be tested both with and without +`tiktoken`. In that case, add the variant as its own entry in `TEST_SUITE_CONFIG` +and link it from the base variant by referencing its name in `variants` of the +original variant: + +```python +{ + "langchain": { + "variants": ["langchain-notiktoken"], + ... + }, + "langchain-notiktoken": { + ... + } +} +``` + +This will result in both `langchain` and `langchain-notiktoken` being run under +the Langchain CI workflow. ## How-Tos diff --git a/scripts/populate_tox/config.py b/scripts/populate_tox/config.py index 330fd01b48..489e3f464f 100644 --- a/scripts/populate_tox/config.py +++ b/scripts/populate_tox/config.py @@ -146,6 +146,7 @@ "<0.2": ["httpx<0.28.0", "openai~=1.0.0"], ">0.2": ["langchain-community"], }, + "variants": ["langchain-notiktoken"], }, "langchain-notiktoken": { "package": "langchain", diff --git a/scripts/populate_tox/populate_tox.py b/scripts/populate_tox/populate_tox.py index 6bf615cc89..be91a91f25 100644 --- a/scripts/populate_tox/populate_tox.py +++ b/scripts/populate_tox/populate_tox.py @@ -646,6 +646,17 @@ def main(fail_on_changes: bool = False) -> None: } ) + variants = TEST_SUITE_CONFIG[integration].get("variants") or [] + for variant in variants: + packages[group].append( + { + "name": variant, + "package": package, + "extra": extra, + "releases": test_releases, + } + ) + if fail_on_changes: old_file_hash = get_file_hash() diff --git a/scripts/split_tox_gh_actions/split_tox_gh_actions.py b/scripts/split_tox_gh_actions/split_tox_gh_actions.py index 96d8056102..293af897c9 100755 --- a/scripts/split_tox_gh_actions/split_tox_gh_actions.py +++ b/scripts/split_tox_gh_actions/split_tox_gh_actions.py @@ -58,7 +58,6 @@ "anthropic", "cohere", "langchain", - "langchain-notiktoken", "openai", "huggingface_hub", ], diff --git a/tox.ini b/tox.ini index e0eefb566e..8661d22908 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-05-06T10:28:08.299635+00:00 +# Last generated: 2025-05-06T10:37:25.618827+00:00 [tox] requires = From 2bc7332d77581868f1b99586a49fd0bc766d7c5e Mon Sep 17 00:00:00 2001 From: Ivana Kellyer Date: Tue, 6 May 2025 12:43:52 +0200 Subject: [PATCH 09/16] wording --- scripts/populate_tox/README.md | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) diff --git a/scripts/populate_tox/README.md b/scripts/populate_tox/README.md index b32d94ea88..1c9b121b99 100644 --- a/scripts/populate_tox/README.md +++ b/scripts/populate_tox/README.md @@ -158,9 +158,10 @@ be expressed like so: Sometimes we want to test a single integration against two different sets of dependencies. For example, `langchain` should be tested both with and without -`tiktoken`. In that case, add the variant as its own entry in `TEST_SUITE_CONFIG` -and link it from the base variant by referencing its name in `variants` of the -original variant: +`tiktoken`. In that case: + +- add the variant as its own entry in `TEST_SUITE_CONFIG` +- link it from the base variant via the `variants` key ```python { From eb5da6d5615c345a837714d10b390a104b936984 Mon Sep 17 00:00:00 2001 From: Ivana Kellyer Date: Tue, 6 May 2025 12:51:30 +0200 Subject: [PATCH 10/16] . --- scripts/populate_tox/config.py | 2 +- tox.ini | 4 +--- 2 files changed, 2 insertions(+), 4 deletions(-) diff --git a/scripts/populate_tox/config.py b/scripts/populate_tox/config.py index 489e3f464f..d664b16fa3 100644 --- a/scripts/populate_tox/config.py +++ b/scripts/populate_tox/config.py @@ -143,7 +143,7 @@ "package": "langchain", "deps": { "*": ["openai", "tiktoken"], - "<0.2": ["httpx<0.28.0", "openai~=1.0.0"], + "<0.2": ["httpx<0.28.0"], ">0.2": ["langchain-community"], }, "variants": ["langchain-notiktoken"], diff --git a/tox.ini b/tox.ini index 8661d22908..34c7b9d74f 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-05-06T10:37:25.618827+00:00 +# Last generated: 2025-05-06T10:51:22.184856+00:00 [tox] requires = @@ -511,9 +511,7 @@ deps = langchain: openai langchain: tiktoken langchain-v0.0.354: httpx<0.28.0 - langchain-v0.0.354: openai~=1.0.0 langchain-v0.1.20: httpx<0.28.0 - langchain-v0.1.20: openai~=1.0.0 langchain-v0.2.17: langchain-community langchain-v0.3.25: langchain-community From 04874abf21565321a83c3067a9033ef1f1f0d352 Mon Sep 17 00:00:00 2001 From: Ivana Kellyer Date: Tue, 6 May 2025 12:56:02 +0200 Subject: [PATCH 11/16] dont provide a key --- scripts/populate_tox/config.py | 1 + tests/integrations/langchain/test_langchain.py | 3 --- tox.ini | 4 +++- 3 files changed, 4 insertions(+), 4 deletions(-) diff --git a/scripts/populate_tox/config.py b/scripts/populate_tox/config.py index d664b16fa3..16a225e698 100644 --- a/scripts/populate_tox/config.py +++ b/scripts/populate_tox/config.py @@ -152,6 +152,7 @@ "package": "langchain", "deps": { "*": ["langchain-openai"], + ">0.2": ["langchain-community"], }, }, "launchdarkly": { diff --git a/tests/integrations/langchain/test_langchain.py b/tests/integrations/langchain/test_langchain.py index b9e5705b88..d0856e0ba3 100644 --- a/tests/integrations/langchain/test_langchain.py +++ b/tests/integrations/langchain/test_langchain.py @@ -157,7 +157,6 @@ def test_langchain_agent( llm = MockOpenAI( model_name="gpt-3.5-turbo", temperature=0, - openai_api_key="badkey", ) agent = create_openai_tools_agent(llm, [get_word_length], prompt) @@ -231,7 +230,6 @@ def test_langchain_error(sentry_init, capture_events): llm = MockOpenAI( model_name="gpt-3.5-turbo", temperature=0, - openai_api_key="badkey", ) agent = create_openai_tools_agent(llm, [get_word_length], prompt) @@ -326,7 +324,6 @@ def test_span_origin(sentry_init, capture_events): llm = MockOpenAI( model_name="gpt-3.5-turbo", temperature=0, - openai_api_key="badkey", ) agent = create_openai_tools_agent(llm, [get_word_length], prompt) diff --git a/tox.ini b/tox.ini index 34c7b9d74f..96798df2a1 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-05-06T10:51:22.184856+00:00 +# Last generated: 2025-05-06T10:55:02.666697+00:00 [tox] requires = @@ -520,6 +520,8 @@ deps = langchain-notiktoken-v0.2.17: langchain==0.2.17 langchain-notiktoken-v0.3.25: langchain==0.3.25 langchain-notiktoken: langchain-openai + langchain-notiktoken-v0.2.17: langchain-community + langchain-notiktoken-v0.3.25: langchain-community huggingface_hub-v0.22.2: huggingface_hub==0.22.2 huggingface_hub-v0.25.2: huggingface_hub==0.25.2 From 47eb9fa0f6d2efeae88cc1d1306484689e35efa2 Mon Sep 17 00:00:00 2001 From: Ivana Kellyer Date: Tue, 6 May 2025 13:08:03 +0200 Subject: [PATCH 12/16] put key back --- tests/integrations/langchain/test_langchain.py | 3 +++ 1 file changed, 3 insertions(+) diff --git a/tests/integrations/langchain/test_langchain.py b/tests/integrations/langchain/test_langchain.py index d0856e0ba3..b9e5705b88 100644 --- a/tests/integrations/langchain/test_langchain.py +++ b/tests/integrations/langchain/test_langchain.py @@ -157,6 +157,7 @@ def test_langchain_agent( llm = MockOpenAI( model_name="gpt-3.5-turbo", temperature=0, + openai_api_key="badkey", ) agent = create_openai_tools_agent(llm, [get_word_length], prompt) @@ -230,6 +231,7 @@ def test_langchain_error(sentry_init, capture_events): llm = MockOpenAI( model_name="gpt-3.5-turbo", temperature=0, + openai_api_key="badkey", ) agent = create_openai_tools_agent(llm, [get_word_length], prompt) @@ -324,6 +326,7 @@ def test_span_origin(sentry_init, capture_events): llm = MockOpenAI( model_name="gpt-3.5-turbo", temperature=0, + openai_api_key="badkey", ) agent = create_openai_tools_agent(llm, [get_word_length], prompt) From 39fd74dacee36db91f3e427fe5ce4298bd51b9b0 Mon Sep 17 00:00:00 2001 From: Ivana Kellyer Date: Tue, 6 May 2025 14:03:23 +0200 Subject: [PATCH 13/16] . --- tests/integrations/langchain/test_langchain.py | 3 +++ tox.ini | 2 +- 2 files changed, 4 insertions(+), 1 deletion(-) diff --git a/tests/integrations/langchain/test_langchain.py b/tests/integrations/langchain/test_langchain.py index b9e5705b88..6f39491826 100644 --- a/tests/integrations/langchain/test_langchain.py +++ b/tests/integrations/langchain/test_langchain.py @@ -158,6 +158,7 @@ def test_langchain_agent( model_name="gpt-3.5-turbo", temperature=0, openai_api_key="badkey", + streaming=True, ) agent = create_openai_tools_agent(llm, [get_word_length], prompt) @@ -232,6 +233,7 @@ def test_langchain_error(sentry_init, capture_events): model_name="gpt-3.5-turbo", temperature=0, openai_api_key="badkey", + streaming=True, ) agent = create_openai_tools_agent(llm, [get_word_length], prompt) @@ -327,6 +329,7 @@ def test_span_origin(sentry_init, capture_events): model_name="gpt-3.5-turbo", temperature=0, openai_api_key="badkey", + streaming=True, ) agent = create_openai_tools_agent(llm, [get_word_length], prompt) diff --git a/tox.ini b/tox.ini index 96798df2a1..76c247748a 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-05-06T10:55:02.666697+00:00 +# Last generated: 2025-05-06T12:02:53.436044+00:00 [tox] requires = From 579e77366e9f2086986cbde2782b36eff46bf28d Mon Sep 17 00:00:00 2001 From: Ivana Kellyer Date: Tue, 6 May 2025 14:11:01 +0200 Subject: [PATCH 14/16] lets try this --- scripts/populate_tox/config.py | 3 ++- tox.ini | 6 ++++-- 2 files changed, 6 insertions(+), 3 deletions(-) diff --git a/scripts/populate_tox/config.py b/scripts/populate_tox/config.py index 16a225e698..92607ac7c9 100644 --- a/scripts/populate_tox/config.py +++ b/scripts/populate_tox/config.py @@ -151,7 +151,8 @@ "langchain-notiktoken": { "package": "langchain", "deps": { - "*": ["langchain-openai"], + "*": ["openai"], + "<0.2": ["httpx<0.28.0"], ">0.2": ["langchain-community"], }, }, diff --git a/tox.ini b/tox.ini index 76c247748a..6a12dc9b68 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-05-06T12:02:53.436044+00:00 +# Last generated: 2025-05-06T12:10:52.864239+00:00 [tox] requires = @@ -519,7 +519,9 @@ deps = langchain-notiktoken-v0.1.20: langchain==0.1.20 langchain-notiktoken-v0.2.17: langchain==0.2.17 langchain-notiktoken-v0.3.25: langchain==0.3.25 - langchain-notiktoken: langchain-openai + langchain-notiktoken: openai + langchain-notiktoken-v0.0.354: httpx<0.28.0 + langchain-notiktoken-v0.1.20: httpx<0.28.0 langchain-notiktoken-v0.2.17: langchain-community langchain-notiktoken-v0.3.25: langchain-community From b45e641d5b4901c21b67f3d1360039d65809afc3 Mon Sep 17 00:00:00 2001 From: Ivana Kellyer Date: Tue, 6 May 2025 14:17:42 +0200 Subject: [PATCH 15/16] . --- scripts/populate_tox/README.md | 7 ++++--- scripts/populate_tox/config.py | 13 ------------- 2 files changed, 4 insertions(+), 16 deletions(-) diff --git a/scripts/populate_tox/README.md b/scripts/populate_tox/README.md index 1c9b121b99..4d71ad914b 100644 --- a/scripts/populate_tox/README.md +++ b/scripts/populate_tox/README.md @@ -156,7 +156,7 @@ be expressed like so: ### `variants` -Sometimes we want to test a single integration against two different sets of +You might want to test a single integration against two different sets of dependencies. For example, `langchain` should be tested both with and without `tiktoken`. In that case: @@ -175,8 +175,9 @@ dependencies. For example, `langchain` should be tested both with and without } ``` -This will result in both `langchain` and `langchain-notiktoken` being run under -the Langchain CI workflow. +Both `langchain` and `langchain-notiktoken` will be run as part of the Langchain +CI workflow. + ## How-Tos diff --git a/scripts/populate_tox/config.py b/scripts/populate_tox/config.py index 92607ac7c9..5b268e82c1 100644 --- a/scripts/populate_tox/config.py +++ b/scripts/populate_tox/config.py @@ -126,19 +126,6 @@ "huggingface_hub": { "package": "huggingface_hub", }, - # Langchain - # langchain-v0.1: openai~=1.0.0 - # langchain-v0.1: langchain~=0.1.11 - # langchain-v0.1: tiktoken~=0.6.0 - # langchain-v0.1: httpx<0.28.0 - # langchain-v0.3: langchain~=0.3.0 - # langchain-v0.3: langchain-community - # langchain-v0.3: tiktoken - # langchain-v0.3: openai - # langchain-{latest,notiktoken}: langchain - # langchain-{latest,notiktoken}: langchain-openai - # langchain-{latest,notiktoken}: openai>=1.6.1 - # langchain-latest: tiktoken~=0.6.0 "langchain": { "package": "langchain", "deps": { From 8584d8feb5a59a907974e918baf800056baaa7fe Mon Sep 17 00:00:00 2001 From: Ivana Kellyer Date: Tue, 6 May 2025 14:58:47 +0200 Subject: [PATCH 16/16] fix parsing error --- scripts/populate_tox/config.py | 6 +++--- tox.ini | 28 ++++++++++++++-------------- 2 files changed, 17 insertions(+), 17 deletions(-) diff --git a/scripts/populate_tox/config.py b/scripts/populate_tox/config.py index 5b268e82c1..c047584a4d 100644 --- a/scripts/populate_tox/config.py +++ b/scripts/populate_tox/config.py @@ -133,14 +133,14 @@ "<0.2": ["httpx<0.28.0"], ">0.2": ["langchain-community"], }, - "variants": ["langchain-notiktoken"], + "variants": ["langchain_notiktoken"], }, - "langchain-notiktoken": { + "langchain_notiktoken": { "package": "langchain", "deps": { "*": ["openai"], "<0.2": ["httpx<0.28.0"], - ">0.2": ["langchain-community"], + ">0.2": ["langchain_community"], }, }, "launchdarkly": { diff --git a/tox.ini b/tox.ini index 6a12dc9b68..024ddd939c 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-05-06T12:10:52.864239+00:00 +# Last generated: 2025-05-06T12:51:20.834069+00:00 [tox] requires = @@ -144,10 +144,10 @@ envlist = {py3.9,py3.11,py3.12}-langchain-v0.2.17 {py3.9,py3.12,py3.13}-langchain-v0.3.25 - {py3.9,py3.10,py3.11}-langchain-notiktoken-v0.0.354 - {py3.9,py3.11,py3.12}-langchain-notiktoken-v0.1.20 - {py3.9,py3.11,py3.12}-langchain-notiktoken-v0.2.17 - {py3.9,py3.12,py3.13}-langchain-notiktoken-v0.3.25 + {py3.9,py3.10,py3.11}-langchain_notiktoken-v0.0.354 + {py3.9,py3.11,py3.12}-langchain_notiktoken-v0.1.20 + {py3.9,py3.11,py3.12}-langchain_notiktoken-v0.2.17 + {py3.9,py3.12,py3.13}-langchain_notiktoken-v0.3.25 {py3.8,py3.10,py3.11}-huggingface_hub-v0.22.2 {py3.8,py3.10,py3.11}-huggingface_hub-v0.25.2 @@ -515,15 +515,15 @@ deps = langchain-v0.2.17: langchain-community langchain-v0.3.25: langchain-community - langchain-notiktoken-v0.0.354: langchain==0.0.354 - langchain-notiktoken-v0.1.20: langchain==0.1.20 - langchain-notiktoken-v0.2.17: langchain==0.2.17 - langchain-notiktoken-v0.3.25: langchain==0.3.25 - langchain-notiktoken: openai - langchain-notiktoken-v0.0.354: httpx<0.28.0 - langchain-notiktoken-v0.1.20: httpx<0.28.0 - langchain-notiktoken-v0.2.17: langchain-community - langchain-notiktoken-v0.3.25: langchain-community + langchain_notiktoken-v0.0.354: langchain==0.0.354 + langchain_notiktoken-v0.1.20: langchain==0.1.20 + langchain_notiktoken-v0.2.17: langchain==0.2.17 + langchain_notiktoken-v0.3.25: langchain==0.3.25 + langchain_notiktoken: openai + langchain_notiktoken-v0.0.354: httpx<0.28.0 + langchain_notiktoken-v0.1.20: httpx<0.28.0 + langchain_notiktoken-v0.2.17: langchain_community + langchain_notiktoken-v0.3.25: langchain_community huggingface_hub-v0.22.2: huggingface_hub==0.22.2 huggingface_hub-v0.25.2: huggingface_hub==0.25.2