diff --git a/.github/ISSUE_TEMPLATE/bug-report.yml b/.github/ISSUE_TEMPLATE/bug-report.yml index 4872dcaeb89..b687b570449 100644 --- a/.github/ISSUE_TEMPLATE/bug-report.yml +++ b/.github/ISSUE_TEMPLATE/bug-report.yml @@ -53,7 +53,6 @@ body: - label: langchain-anthropic - label: langchain-classic - label: langchain-core - - label: langchain-cli - label: langchain-model-profiles - label: langchain-tests - label: langchain-text-splitters diff --git a/.github/ISSUE_TEMPLATE/feature-request.yml b/.github/ISSUE_TEMPLATE/feature-request.yml index a58421f44ff..e8efbebebac 100644 --- a/.github/ISSUE_TEMPLATE/feature-request.yml +++ b/.github/ISSUE_TEMPLATE/feature-request.yml @@ -50,7 +50,6 @@ body: - label: langchain-anthropic - label: langchain-classic - label: langchain-core - - label: langchain-cli - label: langchain-model-profiles - label: langchain-tests - label: langchain-text-splitters diff --git a/.github/ISSUE_TEMPLATE/privileged.yml b/.github/ISSUE_TEMPLATE/privileged.yml index 27cf708834c..0dcefe9d02a 100644 --- a/.github/ISSUE_TEMPLATE/privileged.yml +++ b/.github/ISSUE_TEMPLATE/privileged.yml @@ -30,7 +30,6 @@ body: - label: langchain-anthropic - label: langchain-classic - label: langchain-core - - label: langchain-cli - label: langchain-model-profiles - label: langchain-tests - label: langchain-text-splitters diff --git a/.github/ISSUE_TEMPLATE/task.yml b/.github/ISSUE_TEMPLATE/task.yml index e13a3501a57..0c74906e6e7 100644 --- a/.github/ISSUE_TEMPLATE/task.yml +++ b/.github/ISSUE_TEMPLATE/task.yml @@ -101,7 +101,6 @@ body: - label: langchain-anthropic - label: langchain-classic - label: langchain-core - - label: langchain-cli - label: langchain-model-profiles - label: langchain-tests - label: langchain-text-splitters diff --git a/.github/pr-file-labeler.yml b/.github/pr-file-labeler.yml index 40c8937b3f1..7420c9f5492 100644 --- a/.github/pr-file-labeler.yml +++ b/.github/pr-file-labeler.yml @@ -17,11 +17,6 @@ langchain: - any-glob-to-any-file: - "libs/langchain_v1/**/*" -cli: - - changed-files: - - any-glob-to-any-file: - - "libs/cli/**/*" - standard-tests: - changed-files: - any-glob-to-any-file: diff --git a/.github/scripts/check_diff.py b/.github/scripts/check_diff.py index 6eed89940e7..b384053743d 100644 --- a/.github/scripts/check_diff.py +++ b/.github/scripts/check_diff.py @@ -56,7 +56,7 @@ def all_package_dirs() -> Set[str]: return { "/".join(path.split("/")[:-1]).lstrip("./") for path in glob.glob("./libs/**/pyproject.toml", recursive=True) - if "libs/cli" not in path and "libs/standard-tests" not in path + if "libs/standard-tests" not in path } @@ -286,10 +286,6 @@ if __name__ == "__main__": dirs_to_run["test"].add("libs/partners/fireworks") dirs_to_run["test"].add("libs/partners/groq") - elif file.startswith("libs/cli"): - dirs_to_run["lint"].add("libs/cli") - dirs_to_run["test"].add("libs/cli") - elif file.startswith("libs/partners"): partner_dir = file.split("/")[2] if os.path.isdir(f"libs/partners/{partner_dir}") and [ diff --git a/.github/workflows/auto-label-by-package.yml b/.github/workflows/auto-label-by-package.yml index c634af09583..b8bbb83cdc7 100644 --- a/.github/workflows/auto-label-by-package.yml +++ b/.github/workflows/auto-label-by-package.yml @@ -30,7 +30,6 @@ jobs: "langchain-anthropic": "anthropic", "langchain-classic": "langchain-classic", "langchain-core": "core", - "langchain-cli": "cli", "langchain-model-profiles": "model-profiles", "langchain-tests": "standard-tests", "langchain-text-splitters": "text-splitters", diff --git a/.github/workflows/pr_lint.yml b/.github/workflows/pr_lint.yml index 4db1507529a..f218689483a 100644 --- a/.github/workflows/pr_lint.yml +++ b/.github/workflows/pr_lint.yml @@ -8,7 +8,7 @@ # # Examples: # feat(core): add multi‐tenant support -# fix(cli): resolve flag parsing error +# fix(langchain): resolve error # docs: update API usage examples # docs(openai): update API usage examples # @@ -27,14 +27,14 @@ # * release — prepare a new release # # Allowed Scope(s) (optional): -# core, cli, langchain, langchain-classic, model-profiles, +# core, langchain, langchain-classic, model-profiles, # standard-tests, text-splitters, docs, anthropic, chroma, deepseek, exa, # fireworks, groq, huggingface, mistralai, nomic, ollama, openai, # perplexity, prompty, qdrant, xai, infra, deps # # Multiple scopes can be used by separating them with a comma. For example: # -# feat(core,cli): add multi‐tenant support to core and cli +# feat(core,langchain): add multi‐tenant support to core and langchain # # Note: PRs touching the langchain package should use the 'langchain' scope. It is not # acceptable to omit the scope for changes to the langchain package, despite it being @@ -85,7 +85,6 @@ jobs: release scopes: | core - cli langchain langchain-classic model-profiles diff --git a/AGENTS.md b/AGENTS.md index b123c516e61..1450b0e4e32 100644 --- a/AGENTS.md +++ b/AGENTS.md @@ -22,7 +22,6 @@ langchain/ │ ├── text-splitters/ # Document chunking utilities │ ├── standard-tests/ # Shared test suite for integrations │ ├── model-profiles/ # Model configuration profiles -│ └── cli/ # Command-line interface tools ├── .github/ # CI/CD workflows and templates ├── .vscode/ # VSCode IDE standard settings and recommended extensions └── README.md # Information about LangChain diff --git a/CLAUDE.md b/CLAUDE.md index b123c516e61..1450b0e4e32 100644 --- a/CLAUDE.md +++ b/CLAUDE.md @@ -22,7 +22,6 @@ langchain/ │ ├── text-splitters/ # Document chunking utilities │ ├── standard-tests/ # Shared test suite for integrations │ ├── model-profiles/ # Model configuration profiles -│ └── cli/ # Command-line interface tools ├── .github/ # CI/CD workflows and templates ├── .vscode/ # VSCode IDE standard settings and recommended extensions └── README.md # Information about LangChain diff --git a/libs/cli/.gitignore b/libs/cli/.gitignore deleted file mode 100644 index feb39e84571..00000000000 --- a/libs/cli/.gitignore +++ /dev/null @@ -1,159 +0,0 @@ -# Byte-compiled / optimized / DLL files -__pycache__/ -*.py[cod] -*$py.class - -# C extensions -*.so - -# Distribution / packaging -.Python -build/ -develop-eggs/ -dist/ -downloads/ -eggs/ -.eggs/ -lib/ -lib64/ -parts/ -sdist/ -var/ -wheels/ -share/python-wheels/ -*.egg-info/ -.installed.cfg -*.egg -MANIFEST - -# PyInstaller -# Usually these files are written by a python script from a template -# before PyInstaller builds the exe, so as to inject date/other infos into it. -*.manifest -*.spec - -# Installer logs -pip-log.txt -pip-delete-this-directory.txt - -# Unit test / coverage reports -htmlcov/ -.tox/ -.nox/ -.coverage -.coverage.* -.cache -nosetests.xml -coverage.xml -*.cover -*.py,cover -.hypothesis/ -.pytest_cache/ -cover/ - -# Translations -*.mo -*.pot - -# Django stuff: -*.log -local_settings.py -db.sqlite3 -db.sqlite3-journal - -# Flask stuff: -instance/ -.webassets-cache - -# Scrapy stuff: -.scrapy - -# PyBuilder -.pybuilder/ -target/ - -# Jupyter Notebook -.ipynb_checkpoints - -# IPython -profile_default/ -ipython_config.py - -# pyenv -# For a library or package, you might want to ignore these files since the code is -# intended to run in multiple environments; otherwise, check them in: -# .python-version - -# pipenv -# According to pypa/pipenv#598, it is recommended to include Pipfile.lock in version control. -# However, in case of collaboration, if having platform-specific dependencies or dependencies -# having no cross-platform support, pipenv may install dependencies that don't work, or not -# install all needed dependencies. -#Pipfile.lock - -# poetry -# Similar to Pipfile.lock, it is generally recommended to include poetry.lock in version control. -# This is especially recommended for binary packages to ensure reproducibility, and is more -# commonly ignored for libraries. -# https://python-poetry.org/docs/basic-usage/#commit-your-poetrylock-file-to-version-control -#poetry.lock - -# pdm -# Similar to Pipfile.lock, it is generally recommended to include pdm.lock in version control. -#pdm.lock -# pdm stores project-wide configurations in .pdm.toml, but it is recommended to not include it -# in version control. -# https://pdm.fming.dev/#use-with-ide -.pdm.toml - -# PEP 582; used by e.g. github.com/David-OConnor/pyflow and github.com/pdm-project/pdm -__pypackages__/ - -# Celery stuff -celerybeat-schedule -celerybeat.pid - -# SageMath parsed files -*.sage.py - -# Environments -.env -.venv -env/ -venv/ -ENV/ -env.bak/ -venv.bak/ - -# Spyder project settings -.spyderproject -.spyproject - -# Rope project settings -.ropeproject - -# mkdocs documentation -/site - -# mypy -.mypy_cache/ -.dmypy.json -dmypy.json - -# Pyre type checker -.pyre/ - -# pytype static type analyzer -.pytype/ - -# Cython debug symbols -cython_debug/ - -# PyCharm -# JetBrains specific template is maintained in a separate JetBrains.gitignore that can -# be found at https://github.com/github/gitignore/blob/main/Global/JetBrains.gitignore -# and can be added to the global gitignore or merged into this file. For a more nuclear -# option (not recommended) you can uncomment the following to ignore the entire idea folder. -#.idea/ - -.integration_test diff --git a/libs/cli/DOCS.md b/libs/cli/DOCS.md deleted file mode 100644 index d08ba956aa5..00000000000 --- a/libs/cli/DOCS.md +++ /dev/null @@ -1,189 +0,0 @@ -# `langchain` - -**Usage**: - -```console -$ langchain [OPTIONS] COMMAND [ARGS]... -``` - -**Options**: - -* `--help`: Show this message and exit. -* `-v, --version`: Print current CLI version. - -**Commands**: - -* `app`: Manage LangChain apps -* `serve`: Start the LangServe app, whether it's a... -* `template`: Develop installable templates. - -## `langchain app` - -Manage LangChain apps - -**Usage**: - -```console -$ langchain app [OPTIONS] COMMAND [ARGS]... -``` - -**Options**: - -* `--help`: Show this message and exit. - -**Commands**: - -* `add`: Adds the specified template to the current... -* `new`: Create a new LangServe application. -* `remove`: Removes the specified package from the... -* `serve`: Starts the LangServe app. - -### `langchain app add` - -Adds the specified template to the current LangServe app. - -e.g.: -langchain app add extraction-openai-functions -langchain app add git+ssh://git@github.com/efriis/simple-pirate.git - -**Usage**: - -```console -$ langchain app add [OPTIONS] [DEPENDENCIES]... -``` - -**Arguments**: - -* `[DEPENDENCIES]...`: The dependency to add - -**Options**: - -* `--api-path TEXT`: API paths to add -* `--project-dir PATH`: The project directory -* `--repo TEXT`: Install templates from a specific github repo instead -* `--branch TEXT`: Install templates from a specific branch -* `--help`: Show this message and exit. - -### `langchain app new` - -Create a new LangServe application. - -**Usage**: - -```console -$ langchain app new [OPTIONS] NAME -``` - -**Arguments**: - -* `NAME`: The name of the folder to create [required] - -**Options**: - -* `--package TEXT`: Packages to seed the project with -* `--help`: Show this message and exit. - -### `langchain app remove` - -Removes the specified package from the current LangServe app. - -**Usage**: - -```console -$ langchain app remove [OPTIONS] API_PATHS... -``` - -**Arguments**: - -* `API_PATHS...`: The API paths to remove [required] - -**Options**: - -* `--help`: Show this message and exit. - -### `langchain app serve` - -Starts the LangServe app. - -**Usage**: - -```console -$ langchain app serve [OPTIONS] -``` - -**Options**: - -* `--port INTEGER`: The port to run the server on -* `--host TEXT`: The host to run the server on -* `--app TEXT`: The app to run, e.g. `app.server:app` -* `--help`: Show this message and exit. - -## `langchain serve` - -Start the LangServe app, whether it's a template or an app. - -**Usage**: - -```console -$ langchain serve [OPTIONS] -``` - -**Options**: - -* `--port INTEGER`: The port to run the server on -* `--host TEXT`: The host to run the server on -* `--help`: Show this message and exit. - -## `langchain template` - -Develop installable templates. - -**Usage**: - -```console -$ langchain template [OPTIONS] COMMAND [ARGS]... -``` - -**Options**: - -* `--help`: Show this message and exit. - -**Commands**: - -* `new`: Creates a new template package. -* `serve`: Starts a demo app for this template. - -### `langchain template new` - -Creates a new template package. - -**Usage**: - -```console -$ langchain template new [OPTIONS] NAME -``` - -**Arguments**: - -* `NAME`: The name of the folder to create [required] - -**Options**: - -* `--with-poetry / --no-poetry`: Don't run poetry install [default: no-poetry] -* `--help`: Show this message and exit. - -### `langchain template serve` - -Starts a demo app for this template. - -**Usage**: - -```console -$ langchain template serve [OPTIONS] -``` - -**Options**: - -* `--port INTEGER`: The port to run the server on -* `--host TEXT`: The host to run the server on -* `--help`: Show this message and exit. diff --git a/libs/cli/LICENSE b/libs/cli/LICENSE deleted file mode 100644 index 39577386737..00000000000 --- a/libs/cli/LICENSE +++ /dev/null @@ -1,21 +0,0 @@ -MIT License - -Copyright (c) LangChain, Inc. - -Permission is hereby granted, free of charge, to any person obtaining a copy -of this software and associated documentation files (the "Software"), to deal -in the Software without restriction, including without limitation the rights -to use, copy, modify, merge, publish, distribute, sublicense, and/or sell -copies of the Software, and to permit persons to whom the Software is -furnished to do so, subject to the following conditions: - -The above copyright notice and this permission notice shall be included in all -copies or substantial portions of the Software. - -THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, -FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE -AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER -LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, -OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE -SOFTWARE. diff --git a/libs/cli/Makefile b/libs/cli/Makefile deleted file mode 100644 index 319ed2abfd8..00000000000 --- a/libs/cli/Makefile +++ /dev/null @@ -1,53 +0,0 @@ - -###################### -# LINTING AND FORMATTING -###################### - -.EXPORT_ALL_VARIABLES: -UV_FROZEN = true - -# Define a variable for Python and notebook files. -PYTHON_FILES=. -MYPY_CACHE=.mypy_cache -lint format: PYTHON_FILES=. -lint_diff format_diff: PYTHON_FILES=$(shell git diff --relative=libs/cli --name-only --diff-filter=d master | grep -E '\.py$$|\.ipynb$$') -lint_package: PYTHON_FILES=langchain_cli -lint_tests: PYTHON_FILES=tests -lint_tests: MYPY_CACHE=.mypy_cache_test - -lint lint_diff lint_package lint_tests: - [ "$(PYTHON_FILES)" = "" ] || uv run --group typing --group lint ruff check $(PYTHON_FILES) - [ "$(PYTHON_FILES)" = "" ] || uv run --group typing --group lint ruff format $(PYTHON_FILES) --diff - [ "$(PYTHON_FILES)" = "" ] || mkdir -p $(MYPY_CACHE) && uv run --group typing --group lint mypy $(PYTHON_FILES) --cache-dir $(MYPY_CACHE) - -format format_diff: - [ "$(PYTHON_FILES)" = "" ] || uv run --group typing --group lint ruff format $(PYTHON_FILES) - [ "$(PYTHON_FILES)" = "" ] || uv run --group typing --group lint ruff check --fix $(PYTHON_FILES) - -test tests: _test _e2e_test - -PYTHON = .venv/bin/python - -_test: - uv run --group test pytest tests - -# custom integration testing for cli integration flow -# currently ignores vectorstores test because lacks implementation -_e2e_test: - rm -rf .integration_test - mkdir .integration_test - cd .integration_test && \ - python3 -m venv .venv && \ - $(PYTHON) -m pip install --upgrade uv && \ - $(PYTHON) -m pip install -e .. && \ - $(PYTHON) -m langchain_cli.cli integration new --name parrot-link --name-class ParrotLink && \ - $(PYTHON) -m langchain_cli.cli integration new --name parrot-link --name-class ParrotLinkB --src=integration_template/chat_models.py --dst=langchain-parrot-link/langchain_parrot_link/chat_models_b.py && \ - $(PYTHON) -m langchain_cli.cli integration create-doc --name parrot-link --name-class ParrotLinkB --component-type ChatModel --destination-dir langchain-parrot-link/docs && \ - cd langchain-parrot-link && \ - unset UV_FROZEN && \ - unset VIRTUAL_ENV && \ - uv sync && \ - uv add --editable ../../../standard-tests && \ - make format lint tests && \ - uv add --editable ../../../core && \ - make integration_test diff --git a/libs/cli/README.md b/libs/cli/README.md deleted file mode 100644 index e930bfd7601..00000000000 --- a/libs/cli/README.md +++ /dev/null @@ -1,30 +0,0 @@ -# langchain-cli - -[![PyPI - Version](https://img.shields.io/pypi/v/langchain-cli?label=%20)](https://pypi.org/project/langchain-cli/#history) -[![PyPI - License](https://img.shields.io/pypi/l/langchain-cli)](https://opensource.org/licenses/MIT) -[![PyPI - Downloads](https://img.shields.io/pepy/dt/langchain-cli)](https://pypistats.org/packages/langchain-cli) -[![Twitter](https://img.shields.io/twitter/url/https/twitter.com/langchain.svg?style=social&label=Follow%20%40LangChain)](https://x.com/langchain) - -## Quick Install - -```bash -pip install langchain-cli -``` - -## 🤔 What is this? - -This package implements the official CLI for LangChain. Right now, it is most useful for getting started with LangChain Templates! - -## 📖 Documentation - -[CLI Docs](https://github.com/langchain-ai/langchain/blob/master/libs/cli/DOCS.md) - -## 📕 Releases & Versioning - -See our [Releases](https://docs.langchain.com/oss/python/release-policy) and [Versioning](https://docs.langchain.com/oss/python/versioning) policies. - -## 💁 Contributing - -As an open-source project in a rapidly developing field, we are extremely open to contributions, whether it be in the form of a new feature, improved infrastructure, or better documentation. - -For detailed information on how to contribute, see the [Contributing Guide](https://docs.langchain.com/oss/python/contributing/overview). diff --git a/libs/cli/langchain_cli/__init__.py b/libs/cli/langchain_cli/__init__.py deleted file mode 100644 index 63340339789..00000000000 --- a/libs/cli/langchain_cli/__init__.py +++ /dev/null @@ -1,7 +0,0 @@ -"""LangChain CLI.""" - -from langchain_cli._version import __version__ - -__all__ = [ - "__version__", -] diff --git a/libs/cli/langchain_cli/_version.py b/libs/cli/langchain_cli/_version.py deleted file mode 100644 index 45a10f2eb4a..00000000000 --- a/libs/cli/langchain_cli/_version.py +++ /dev/null @@ -1,10 +0,0 @@ -from importlib import metadata - -try: - __version__ = metadata.version(__package__) -except metadata.PackageNotFoundError: - # Case where package metadata is not available. - __version__ = "" -del metadata # optional, avoids polluting the results of dir(__package__) - -__all__ = ["__version__"] diff --git a/libs/cli/langchain_cli/cli.py b/libs/cli/langchain_cli/cli.py deleted file mode 100644 index 1cc5e814666..00000000000 --- a/libs/cli/langchain_cli/cli.py +++ /dev/null @@ -1,88 +0,0 @@ -"""LangChain CLI.""" - -from __future__ import annotations - -from typing import Annotated - -import typer - -from langchain_cli._version import __version__ -from langchain_cli.namespaces import app as app_namespace -from langchain_cli.namespaces import integration as integration_namespace -from langchain_cli.namespaces import template as template_namespace -from langchain_cli.namespaces.migrate import main as migrate_namespace -from langchain_cli.utils.packages import get_langserve_export, get_package_root - -app = typer.Typer(no_args_is_help=True, add_completion=False) -app.add_typer( - template_namespace.package_cli, - name="template", - help=template_namespace.__doc__, -) -app.add_typer(app_namespace.app_cli, name="app", help=app_namespace.__doc__) -app.add_typer( - integration_namespace.integration_cli, - name="integration", - help=integration_namespace.__doc__, -) - -app.command( - name="migrate", - context_settings={ - # Let Grit handle the arguments - "allow_extra_args": True, - "ignore_unknown_options": True, - }, -)( - migrate_namespace.migrate, -) - - -def _version_callback(*, show_version: bool) -> None: - if show_version: - typer.echo(f"langchain-cli {__version__}") - raise typer.Exit - - -@app.callback() -def _main( - *, - version: bool = typer.Option( - False, # noqa: FBT003 - "--version", - "-v", - help="Print the current CLI version.", - callback=_version_callback, - is_eager=True, - ), -) -> None: - pass - - -@app.command() -def serve( - *, - port: Annotated[ - int | None, - typer.Option(help="The port to run the server on"), - ] = None, - host: Annotated[ - str | None, - typer.Option(help="The host to run the server on"), - ] = None, -) -> None: - """Start the LangServe app, whether it's a template or an app.""" - try: - project_dir = get_package_root() - pyproject = project_dir / "pyproject.toml" - get_langserve_export(pyproject) - except (KeyError, FileNotFoundError): - # not a template - app_namespace.serve(port=port, host=host) - else: - # is a template - template_namespace.serve(port=port, host=host) - - -if __name__ == "__main__": - app() diff --git a/libs/cli/langchain_cli/constants.py b/libs/cli/langchain_cli/constants.py deleted file mode 100644 index dc017cc03be..00000000000 --- a/libs/cli/langchain_cli/constants.py +++ /dev/null @@ -1,5 +0,0 @@ -"""LangChain CLI constants.""" - -DEFAULT_GIT_REPO = "https://github.com/langchain-ai/langchain.git" -DEFAULT_GIT_SUBDIRECTORY = "templates" -DEFAULT_GIT_REF = "master" diff --git a/libs/cli/langchain_cli/dev_scripts.py b/libs/cli/langchain_cli/dev_scripts.py deleted file mode 100644 index 9542e0d702e..00000000000 --- a/libs/cli/langchain_cli/dev_scripts.py +++ /dev/null @@ -1,70 +0,0 @@ -"""Development Scripts for template packages.""" - -from collections.abc import Sequence -from typing import Literal - -from fastapi import FastAPI -from langserve import add_routes - -from langchain_cli.utils.packages import get_langserve_export, get_package_root - - -def create_demo_server( - *, - config_keys: Sequence[str] = (), - playground_type: Literal["default", "chat"] = "default", -) -> FastAPI: - """Create a demo server for the current template. - - Args: - config_keys: Optional sequence of config keys to expose in the playground. - playground_type: The type of playground to use. - - Returns: - The demo server. - - Raises: - KeyError: If the `pyproject.toml` file is missing required fields. - ImportError: If the module defined in `pyproject.toml` cannot be imported. - """ - app = FastAPI() - package_root = get_package_root() - pyproject = package_root / "pyproject.toml" - try: - package = get_langserve_export(pyproject) - - mod = __import__(package["module"], fromlist=[package["attr"]]) - - chain = getattr(mod, package["attr"]) - add_routes( - app, - chain, - config_keys=config_keys, - playground_type=playground_type, - ) - except KeyError as e: - msg = "Missing fields from pyproject.toml" - raise KeyError(msg) from e - except ImportError as e: - msg = "Could not import module defined in pyproject.toml" - raise ImportError(msg) from e - - return app - - -def create_demo_server_configurable() -> FastAPI: - """Create a configurable demo server. - - Returns: - The configurable demo server. - """ - return create_demo_server(config_keys=["configurable"]) - - -def create_demo_server_chat() -> FastAPI: - """Create a chat demo server. - - Returns: - The chat demo server. - """ - return create_demo_server(playground_type="chat") diff --git a/libs/cli/langchain_cli/integration_template/.gitignore b/libs/cli/langchain_cli/integration_template/.gitignore deleted file mode 100644 index bee8a64b79a..00000000000 --- a/libs/cli/langchain_cli/integration_template/.gitignore +++ /dev/null @@ -1 +0,0 @@ -__pycache__ diff --git a/libs/cli/langchain_cli/integration_template/LICENSE b/libs/cli/langchain_cli/integration_template/LICENSE deleted file mode 100644 index fc0602feecd..00000000000 --- a/libs/cli/langchain_cli/integration_template/LICENSE +++ /dev/null @@ -1,21 +0,0 @@ -MIT License - -Copyright (c) 2024 LangChain, Inc. - -Permission is hereby granted, free of charge, to any person obtaining a copy -of this software and associated documentation files (the "Software"), to deal -in the Software without restriction, including without limitation the rights -to use, copy, modify, merge, publish, distribute, sublicense, and/or sell -copies of the Software, and to permit persons to whom the Software is -furnished to do so, subject to the following conditions: - -The above copyright notice and this permission notice shall be included in all -copies or substantial portions of the Software. - -THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, -FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE -AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER -LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, -OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE -SOFTWARE. diff --git a/libs/cli/langchain_cli/integration_template/Makefile b/libs/cli/langchain_cli/integration_template/Makefile deleted file mode 100644 index a80283151b0..00000000000 --- a/libs/cli/langchain_cli/integration_template/Makefile +++ /dev/null @@ -1,58 +0,0 @@ -.PHONY: all format lint test tests integration_tests help extended_tests - -# Default target executed when no arguments are given to make. -all: help - -# Define a variable for the test file path. -TEST_FILE ?= tests/unit_tests/ -integration_test integration_tests: TEST_FILE = tests/integration_tests/ - - -# unit tests are run with the --disable-socket flag to prevent network calls -test tests: - uv run pytest --disable-socket --allow-unix-socket $(TEST_FILE) - -test_watch: - uv run ptw --snapshot-update --now . -- -vv $(TEST_FILE) - -# integration tests are run without the --disable-socket flag to allow network calls -integration_test integration_tests: - uv run pytest $(TEST_FILE) - -###################### -# LINTING AND FORMATTING -###################### - -# Define a variable for Python and notebook files. -PYTHON_FILES=. -MYPY_CACHE=.mypy_cache -lint format: PYTHON_FILES=. -lint_diff format_diff: PYTHON_FILES=$(shell git diff --relative=libs/partners/__package_name_short__ --name-only --diff-filter=d master | grep -E '\.py$$|\.ipynb$$') -lint_package: PYTHON_FILES=__module_name__ -lint_tests: PYTHON_FILES=tests -lint_tests: MYPY_CACHE=.mypy_cache_test - -lint lint_diff lint_package lint_tests: - [ "$(PYTHON_FILES)" = "" ] || uv run ruff check $(PYTHON_FILES) - [ "$(PYTHON_FILES)" = "" ] || uv run ruff format $(PYTHON_FILES) --diff - [ "$(PYTHON_FILES)" = "" ] || mkdir -p $(MYPY_CACHE) && uv run mypy $(PYTHON_FILES) --cache-dir $(MYPY_CACHE) - -format format_diff: - [ "$(PYTHON_FILES)" = "" ] || uv run ruff format $(PYTHON_FILES) - [ "$(PYTHON_FILES)" = "" ] || uv run ruff check --fix $(PYTHON_FILES) - -check_imports: $(shell find __module_name__ -name '*.py') - uv run python ./scripts/check_imports.py $^ - -###################### -# HELP -###################### - -help: - @echo '----' - @echo 'check_imports - check imports' - @echo 'format - run code formatters' - @echo 'lint - run linters' - @echo 'test - run unit tests' - @echo 'tests - run unit tests' - @echo 'test TEST_FILE= - run all tests in file' diff --git a/libs/cli/langchain_cli/integration_template/README.md b/libs/cli/langchain_cli/integration_template/README.md deleted file mode 100644 index 15741c62f85..00000000000 --- a/libs/cli/langchain_cli/integration_template/README.md +++ /dev/null @@ -1,46 +0,0 @@ -# __package_name__ - -This package contains the LangChain integration with __ModuleName__ - -## Installation - -```bash -pip install -U __package_name__ -``` - -And you should configure credentials by setting the following environment variables: - -* TODO: fill this out - -## Chat Models - -`Chat__ModuleName__` class exposes chat models from __ModuleName__. - -```python -from __module_name__ import Chat__ModuleName__ - -model = Chat__ModuleName__() -model.invoke("Sing a ballad of LangChain.") -``` - -## Embeddings - -`__ModuleName__Embeddings` class exposes embeddings from __ModuleName__. - -```python -from __module_name__ import __ModuleName__Embeddings - -embeddings = __ModuleName__Embeddings() -embeddings.embed_query("What is the meaning of life?") -``` - -## LLMs - -`__ModuleName__LLM` class exposes LLMs from __ModuleName__. - -```python -from __module_name__ import __ModuleName__LLM - -model = __ModuleName__LLM() -model.invoke("The meaning of life is") -``` diff --git a/libs/cli/langchain_cli/integration_template/docs/chat.ipynb b/libs/cli/langchain_cli/integration_template/docs/chat.ipynb deleted file mode 100644 index 32f4cb8e1b0..00000000000 --- a/libs/cli/langchain_cli/integration_template/docs/chat.ipynb +++ /dev/null @@ -1,264 +0,0 @@ -{ - "cells": [ - { - "cell_type": "raw", - "id": "afaf8039", - "metadata": {}, - "source": [ - "---\n", - "sidebar_label: __ModuleName__\n", - "---" - ] - }, - { - "cell_type": "markdown", - "id": "e49f1e0d", - "metadata": {}, - "source": [ - "# Chat__ModuleName__\n", - "\n", - "- TODO: Make sure API reference link is correct.\n", - "\n", - "This will help you get started with __ModuleName__ [chat models](/docs/concepts/chat_models). For detailed documentation of all Chat__ModuleName__ features and configurations head to the [API reference](https://python.langchain.com/api_reference/__package_name_short_snake__/chat_models/__module_name__.chat_models.Chat__ModuleName__.html).\n", - "\n", - "- TODO: Add any other relevant links, like information about models, prices, context windows, etc. See https://python.langchain.com/docs/integrations/chat/openai/ for an example.\n", - "\n", - "## Overview\n", - "### Integration details\n", - "\n", - "- TODO: Fill in table features.\n", - "- TODO: Remove JS support link if not relevant, otherwise ensure link is correct.\n", - "- TODO: Make sure API reference links are correct.\n", - "\n", - "| Class | Package | Local | Serializable | [JS support](https://js.langchain.com/docs/integrations/chat/__package_name_short_snake__) | Package downloads | Package latest |\n", - "| :--- | :--- | :---: | :---: | :---: | :---: | :---: |\n", - "| [Chat__ModuleName__](https://python.langchain.com/api_reference/__package_name_short_snake__/chat_models/__module_name__.chat_models.Chat__ModuleName__.html) | [__package_name__](https://python.langchain.com/api_reference/__package_name_short_snake__/) | ✅/❌ | beta/❌ | ✅/❌ | ![PyPI - Downloads](https://img.shields.io/pypi/dm/__package_name__&label=%20) | ![PyPI - Version](https://img.shields.io/pypi/v/__package_name__&label=%20) |\n", - "\n", - "### Model features\n", - "| [Tool calling](/docs/how_to/tool_calling) | [Structured output](/docs/how_to/structured_output/) | JSON mode | [Image input](/docs/how_to/multimodal_inputs/) | Audio input | Video input | [Token-level streaming](/docs/how_to/chat_streaming/) | Native async | [Token usage](/docs/how_to/chat_token_usage_tracking/) | [Logprobs](/docs/how_to/logprobs/) |\n", - "| :---: | :---: | :---: | :---: | :---: | :---: | :---: | :---: | :---: | :---: |\n", - "| ✅/❌ | ✅/❌ | ✅/❌ | ✅/❌ | ✅/❌ | ✅/❌ | ✅/❌ | ✅/❌ | ✅/❌ | ✅/❌ |\n", - "\n", - "## Setup\n", - "\n", - "- TODO: Update with relevant info.\n", - "\n", - "To access __ModuleName__ models you'll need to create a/an __ModuleName__ account, get an API key, and install the `__package_name__` integration package.\n", - "\n", - "### Credentials\n", - "\n", - "- TODO: Update with relevant info.\n", - "\n", - "Head to (TODO: link) to sign up to __ModuleName__ and generate an API key. Once you've done this set the __MODULE_NAME___API_KEY environment variable:" - ] - }, - { - "cell_type": "code", - "execution_count": null, - "id": "433e8d2b-9519-4b49-b2c4-7ab65b046c94", - "metadata": {}, - "outputs": [], - "source": [ - "import getpass\n", - "import os\n", - "\n", - "if not os.getenv(\"__MODULE_NAME___API_KEY\"):\n", - " os.environ[\"__MODULE_NAME___API_KEY\"] = getpass.getpass(\n", - " \"Enter your __ModuleName__ API key: \"\n", - " )" - ] - }, - { - "cell_type": "markdown", - "id": "72ee0c4b-9764-423a-9dbf-95129e185210", - "metadata": {}, - "source": [ - "To enable automated tracing of your model calls, set your [LangSmith](https://docs.smith.langchain.com/) API key:" - ] - }, - { - "cell_type": "code", - "execution_count": null, - "id": "a15d341e-3e26-4ca3-830b-5aab30ed66de", - "metadata": {}, - "outputs": [], - "source": [ - "# os.environ[\"LANGSMITH_TRACING\"] = \"true\"\n", - "# os.environ[\"LANGSMITH_API_KEY\"] = getpass.getpass(\"Enter your LangSmith API key: \")" - ] - }, - { - "cell_type": "markdown", - "id": "0730d6a1-c893-4840-9817-5e5251676d5d", - "metadata": {}, - "source": [ - "### Installation\n", - "\n", - "The LangChain __ModuleName__ integration lives in the `__package_name__` package:" - ] - }, - { - "cell_type": "code", - "execution_count": null, - "id": "652d6238-1f87-422a-b135-f5abbb8652fc", - "metadata": {}, - "outputs": [], - "source": [ - "%pip install -qU __package_name__" - ] - }, - { - "cell_type": "markdown", - "id": "a38cde65-254d-4219-a441-068766c0d4b5", - "metadata": {}, - "source": [ - "## Instantiation\n", - "\n", - "Now we can instantiate our model object and generate chat completions:\n", - "\n", - "- TODO: Update model instantiation with relevant params." - ] - }, - { - "cell_type": "code", - "execution_count": null, - "id": "cb09c344-1836-4e0c-acf8-11d13ac1dbae", - "metadata": {}, - "outputs": [], - "source": [ - "from __module_name__ import Chat__ModuleName__\n", - "\n", - "model = Chat__ModuleName__(\n", - " model=\"model-name\",\n", - " temperature=0,\n", - " max_tokens=None,\n", - " timeout=None,\n", - " max_retries=2,\n", - " # other params...\n", - ")" - ] - }, - { - "cell_type": "markdown", - "id": "2b4f3e15", - "metadata": {}, - "source": [ - "## Invocation\n", - "\n", - "- TODO: Run cells so output can be seen." - ] - }, - { - "cell_type": "code", - "execution_count": null, - "id": "62e0dbc3", - "metadata": { - "tags": [] - }, - "outputs": [], - "source": [ - "messages = [\n", - " (\n", - " \"system\",\n", - " \"You are a helpful assistant that translates English to French. Translate the user sentence.\",\n", - " ),\n", - " (\"human\", \"I love programming.\"),\n", - "]\n", - "ai_msg = model.invoke(messages)\n", - "ai_msg" - ] - }, - { - "cell_type": "code", - "execution_count": null, - "id": "d86145b3-bfef-46e8-b227-4dda5c9c2705", - "metadata": {}, - "outputs": [], - "source": [ - "print(ai_msg.content)" - ] - }, - { - "cell_type": "markdown", - "id": "18e2bfc0-7e78-4528-a73f-499ac150dca8", - "metadata": {}, - "source": [ - "## Chaining\n", - "\n", - "We can [chain](/docs/how_to/sequence/) our model with a prompt template like so:\n", - "\n", - "- TODO: Run cells so output can be seen." - ] - }, - { - "cell_type": "code", - "execution_count": null, - "id": "e197d1d7-a070-4c96-9f8a-a0e86d046e0b", - "metadata": {}, - "outputs": [], - "source": [ - "from langchain_core.prompts import ChatPromptTemplate\n", - "\n", - "prompt = ChatPromptTemplate(\n", - " [\n", - " (\n", - " \"system\",\n", - " \"You are a helpful assistant that translates {input_language} to {output_language}.\",\n", - " ),\n", - " (\"human\", \"{input}\"),\n", - " ]\n", - ")\n", - "\n", - "chain = prompt | model\n", - "chain.invoke(\n", - " {\n", - " \"input_language\": \"English\",\n", - " \"output_language\": \"German\",\n", - " \"input\": \"I love programming.\",\n", - " }\n", - ")" - ] - }, - { - "cell_type": "markdown", - "id": "d1ee55bc-ffc8-4cfa-801c-993953a08cfd", - "metadata": {}, - "source": [ - "## TODO: Any functionality specific to this model provider\n", - "\n", - "E.g. creating/using finetuned models via this provider. Delete if not relevant." - ] - }, - { - "cell_type": "markdown", - "id": "3a5bb5ca-c3ae-4a58-be67-2cd18574b9a3", - "metadata": {}, - "source": [ - "## API reference\n", - "\n", - "For detailed documentation of all Chat__ModuleName__ features and configurations head to the [API reference](https://python.langchain.com/api_reference/__package_name_short_snake__/chat_models/__module_name__.chat_models.Chat__ModuleName__.html)" - ] - } - ], - "metadata": { - "kernelspec": { - "display_name": "Python 3 (ipykernel)", - "language": "python", - "name": "python3" - }, - "language_info": { - "codemirror_mode": { - "name": "ipython", - "version": 3 - }, - "file_extension": ".py", - "mimetype": "text/x-python", - "name": "python", - "nbconvert_exporter": "python", - "pygments_lexer": "ipython3", - "version": "3.11.9" - } - }, - "nbformat": 4, - "nbformat_minor": 5 -} diff --git a/libs/cli/langchain_cli/integration_template/docs/document_loaders.ipynb b/libs/cli/langchain_cli/integration_template/docs/document_loaders.ipynb deleted file mode 100644 index b7779b4a6ff..00000000000 --- a/libs/cli/langchain_cli/integration_template/docs/document_loaders.ipynb +++ /dev/null @@ -1,219 +0,0 @@ -{ - "cells": [ - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "---\n", - "sidebar_label: __ModuleName__\n", - "---" - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "# __ModuleName__Loader\n", - "\n", - "- TODO: Make sure API reference link is correct.\n", - "\n", - "This notebook provides a quick overview for getting started with __ModuleName__ [document loader](https://python.langchain.com/docs/concepts/document_loaders). For detailed documentation of all __ModuleName__Loader features and configurations head to the [API reference](https://python.langchain.com/v0.2/api_reference/community/document_loaders/langchain_community.document_loaders.__module_name___loader.__ModuleName__Loader.html).\n", - "\n", - "- TODO: Add any other relevant links, like information about underlying API, etc.\n", - "\n", - "## Overview\n", - "### Integration details\n", - "\n", - "- TODO: Fill in table features.\n", - "- TODO: Remove JS support link if not relevant, otherwise ensure link is correct.\n", - "- TODO: Make sure API reference links are correct.\n", - "\n", - "| Class | Package | Local | Serializable | [JS support](https://js.langchain.com/docs/integrations/document_loaders/web_loaders/__module_name___loader)|\n", - "| :--- | :--- | :---: | :---: | :---: |\n", - "| [__ModuleName__Loader](https://python.langchain.com/v0.2/api_reference/community/document_loaders/langchain_community.document_loaders.__module_name__loader.__ModuleName__Loader.html) | [langchain_community](https://api.python.langchain.com/en/latest/community_api_reference.html) | ✅/❌ | beta/❌ | ✅/❌ | \n", - "### Loader features\n", - "| Source | Document Lazy Loading | Native Async Support\n", - "| :---: | :---: | :---: | \n", - "| __ModuleName__Loader | ✅/❌ | ✅/❌ | \n", - "\n", - "## Setup\n", - "\n", - "- TODO: Update with relevant info.\n", - "\n", - "To access __ModuleName__ document loader you'll need to install the `__package_name__` integration package, and create a **ModuleName** account and get an API key.\n", - "\n", - "### Credentials\n", - "\n", - "- TODO: Update with relevant info.\n", - "\n", - "Head to (TODO: link) to sign up to __ModuleName__ and generate an API key. Once you've done this set the __MODULE_NAME___API_KEY environment variable:" - ] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": {}, - "outputs": [], - "source": [ - "import getpass\n", - "import os\n", - "\n", - "os.environ[\"__MODULE_NAME___API_KEY\"] = getpass.getpass(\n", - " \"Enter your __ModuleName__ API key: \"\n", - ")" - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": "To enable automated tracing of your model calls, set your [LangSmith](https://docs.smith.langchain.com/) API key:" - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": {}, - "outputs": [], - "source": [ - "# os.environ[\"LANGSMITH_API_KEY\"] = getpass.getpass(\"Enter your LangSmith API key: \")\n", - "# os.environ[\"LANGSMITH_TRACING\"] = \"true\"" - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "### Installation\n", - "\n", - "Install **langchain_community**.\n", - "\n", - "- TODO: Add any other required packages" - ] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": {}, - "outputs": [], - "source": [ - "%pip install -qU langchain_community" - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "## Initialization\n", - "\n", - "Now we can instantiate our model object and load documents:\n", - "\n", - "- TODO: Update model instantiation with relevant params." - ] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": {}, - "outputs": [], - "source": [ - "from langchain_community.document_loaders import __ModuleName__Loader\n", - "\n", - "loader = __ModuleName__Loader(\n", - " # required params = ...\n", - " # optional params = ...\n", - ")" - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "## Load\n", - "\n", - "- TODO: Run cells to show loading capabilities" - ] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": {}, - "outputs": [], - "source": [ - "docs = loader.load()\n", - "docs[0]" - ] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": {}, - "outputs": [], - "source": [ - "print(docs[0].metadata)" - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "## Lazy Load\n", - "\n", - "- TODO: Run cells to show lazy loading capabilities. Delete if lazy loading is not implemented." - ] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": {}, - "outputs": [], - "source": [ - "page = []\n", - "for doc in loader.lazy_load():\n", - " page.append(doc)\n", - " if len(page) >= 10:\n", - " # do some paged operation, e.g.\n", - " # index.upsert(page)\n", - "\n", - " page = []" - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "## TODO: Any functionality specific to this document loader\n", - "\n", - "E.g. using specific configs for different loading behavior. Delete if not relevant." - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "## API reference\n", - "\n", - "For detailed documentation of all __ModuleName__Loader features and configurations head to the API reference: https://python.langchain.com/v0.2/api_reference/community/document_loaders/langchain_community.document_loaders.__module_name___loader.__ModuleName__Loader.html" - ] - } - ], - "metadata": { - "kernelspec": { - "display_name": "Python 3 (ipykernel)", - "language": "python", - "name": "python3" - }, - "language_info": { - "codemirror_mode": { - "name": "ipython", - "version": 3 - }, - "file_extension": ".py", - "mimetype": "text/x-python", - "name": "python", - "nbconvert_exporter": "python", - "pygments_lexer": "ipython3", - "version": "3.11.9" - } - }, - "nbformat": 4, - "nbformat_minor": 4 -} diff --git a/libs/cli/langchain_cli/integration_template/docs/llms.ipynb b/libs/cli/langchain_cli/integration_template/docs/llms.ipynb deleted file mode 100644 index ffeff84e280..00000000000 --- a/libs/cli/langchain_cli/integration_template/docs/llms.ipynb +++ /dev/null @@ -1,238 +0,0 @@ -{ - "cells": [ - { - "cell_type": "raw", - "id": "67db2992", - "metadata": {}, - "source": [ - "---\n", - "sidebar_label: __ModuleName__\n", - "---" - ] - }, - { - "cell_type": "markdown", - "id": "9597802c", - "metadata": {}, - "source": [ - "# __ModuleName__LLM\n", - "\n", - "- [ ] TODO: Make sure API reference link is correct\n", - "\n", - "This will help you get started with __ModuleName__ completion models (LLMs) using LangChain. For detailed documentation on `__ModuleName__LLM` features and configuration options, please refer to the [API reference](https://api.python.langchain.com/en/latest/llms/__module_name__.llms.__ModuleName__LLM.html).\n", - "\n", - "## Overview\n", - "### Integration details\n", - "\n", - "- TODO: Fill in table features.\n", - "- TODO: Remove JS support link if not relevant, otherwise ensure link is correct.\n", - "- TODO: Make sure API reference links are correct.\n", - "\n", - "| Class | Package | Local | Serializable | [JS support](https://js.langchain.com/docs/integrations/llms/__package_name_short_snake__) | Package downloads | Package latest |\n", - "| :--- | :--- | :---: | :---: | :---: | :---: | :---: |\n", - "| [__ModuleName__LLM](https://api.python.langchain.com/en/latest/llms/__module_name__.llms.__ModuleName__LLM.html) | [__package_name__](https://api.python.langchain.com/en/latest/__package_name_short_snake___api_reference.html) | ✅/❌ | beta/❌ | ✅/❌ | ![PyPI - Downloads](https://img.shields.io/pypi/dm/__package_name__&label=%20) | ![PyPI - Version](https://img.shields.io/pypi/v/__package_name__&label=%20) |\n", - "\n", - "## Setup\n", - "\n", - "- TODO: Update with relevant info.\n", - "\n", - "To access __ModuleName__ models you'll need to create a/an __ModuleName__ account, get an API key, and install the `__package_name__` integration package.\n", - "\n", - "### Credentials\n", - "\n", - "- TODO: Update with relevant info.\n", - "\n", - "Head to (TODO: link) to sign up to __ModuleName__ and generate an API key. Once you've done this set the __MODULE_NAME___API_KEY environment variable:" - ] - }, - { - "cell_type": "code", - "execution_count": null, - "id": "bc51e756", - "metadata": {}, - "outputs": [], - "source": [ - "import getpass\n", - "import os\n", - "\n", - "if not os.getenv(\"__MODULE_NAME___API_KEY\"):\n", - " os.environ[\"__MODULE_NAME___API_KEY\"] = getpass.getpass(\n", - " \"Enter your __ModuleName__ API key: \"\n", - " )" - ] - }, - { - "cell_type": "markdown", - "id": "4b6e1ca6", - "metadata": {}, - "source": [ - "To enable automated tracing of your model calls, set your [LangSmith](https://docs.smith.langchain.com/) API key:" - ] - }, - { - "cell_type": "code", - "execution_count": null, - "id": "196c2b41", - "metadata": {}, - "outputs": [], - "source": [ - "# os.environ[\"LANGSMITH_TRACING\"] = \"true\"\n", - "# os.environ[\"LANGSMITH_API_KEY\"] = getpass.getpass(\"Enter your LangSmith API key: \")" - ] - }, - { - "cell_type": "markdown", - "id": "809c6577", - "metadata": {}, - "source": [ - "### Installation\n", - "\n", - "The LangChain __ModuleName__ integration lives in the `__package_name__` package:" - ] - }, - { - "cell_type": "code", - "execution_count": null, - "id": "59c710c4", - "metadata": {}, - "outputs": [], - "source": [ - "%pip install -qU __package_name__" - ] - }, - { - "cell_type": "markdown", - "id": "0a760037", - "metadata": {}, - "source": [ - "## Instantiation\n", - "\n", - "Now we can instantiate our model object and generate chat completions:\n", - "\n", - "- TODO: Update model instantiation with relevant params." - ] - }, - { - "cell_type": "code", - "execution_count": null, - "id": "a0562a13", - "metadata": {}, - "outputs": [], - "source": [ - "from __module_name__ import __ModuleName__LLM\n", - "\n", - "model = __ModuleName__LLM(\n", - " model=\"model-name\",\n", - " temperature=0,\n", - " max_tokens=None,\n", - " timeout=None,\n", - " max_retries=2,\n", - " # other params...\n", - ")" - ] - }, - { - "cell_type": "markdown", - "id": "0ee90032", - "metadata": {}, - "source": [ - "## Invocation\n", - "\n", - "- [ ] TODO: Run cells so output can be seen." - ] - }, - { - "cell_type": "code", - "execution_count": null, - "id": "035dea0f", - "metadata": { - "tags": [] - }, - "outputs": [], - "source": [ - "input_text = \"__ModuleName__ is an AI company that \"\n", - "\n", - "completion = model.invoke(input_text)\n", - "completion" - ] - }, - { - "cell_type": "markdown", - "id": "add38532", - "metadata": {}, - "source": [ - "## Chaining\n", - "\n", - "We can [chain](/docs/how_to/sequence/) our completion model with a prompt template like so:\n", - "\n", - "- TODO: Run cells so output can be seen." - ] - }, - { - "cell_type": "code", - "execution_count": null, - "id": "078e9db2", - "metadata": {}, - "outputs": [], - "source": [ - "from langchain_core.prompts import PromptTemplate\n", - "\n", - "prompt = PromptTemplate(\"How to say {input} in {output_language}:\\n\")\n", - "\n", - "chain = prompt | model\n", - "chain.invoke(\n", - " {\n", - " \"output_language\": \"German\",\n", - " \"input\": \"I love programming.\",\n", - " }\n", - ")" - ] - }, - { - "cell_type": "markdown", - "id": "e99eef30", - "metadata": {}, - "source": [ - "## TODO: Any functionality specific to this model provider\n", - "\n", - "E.g. creating/using finetuned models via this provider. Delete if not relevant" - ] - }, - { - "cell_type": "markdown", - "id": "e9bdfcef", - "metadata": {}, - "source": [ - "## API reference\n", - "\n", - "For detailed documentation of all `__ModuleName__LLM` features and configurations head to the API reference: https://api.python.langchain.com/en/latest/llms/__module_name__.llms.__ModuleName__LLM.html" - ] - } - ], - "metadata": { - "kernelspec": { - "display_name": "Python 3.11.1 64-bit", - "language": "python", - "name": "python3" - }, - "language_info": { - "codemirror_mode": { - "name": "ipython", - "version": 3 - }, - "file_extension": ".py", - "mimetype": "text/x-python", - "name": "python", - "nbconvert_exporter": "python", - "pygments_lexer": "ipython3", - "version": "3.9.7" - }, - "vscode": { - "interpreter": { - "hash": "e971737741ff4ec9aff7dc6155a1060a59a8a6d52c757dbbe66bf8ee389494b1" - } - } - }, - "nbformat": 4, - "nbformat_minor": 5 -} diff --git a/libs/cli/langchain_cli/integration_template/docs/provider.ipynb b/libs/cli/langchain_cli/integration_template/docs/provider.ipynb deleted file mode 100644 index a00e11eb2e1..00000000000 --- a/libs/cli/langchain_cli/integration_template/docs/provider.ipynb +++ /dev/null @@ -1,50 +0,0 @@ -{ - "cells": [ - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "# __ModuleName__\n", - "\n", - "__ModuleName__ is a platform that offers..." - ] - }, - { - "cell_type": "code", - "execution_count": 2, - "metadata": { - "id": "y8ku6X96sebl" - }, - "outputs": [], - "source": [ - "from __module_name__ import Chat__ModuleName__\n", - "from __module_name__ import __ModuleName__LLM\n", - "from __module_name__ import __ModuleName__VectorStore" - ] - } - ], - "metadata": { - "colab": { - "provenance": [] - }, - "kernelspec": { - "display_name": "Python 3 (ipykernel)", - "language": "python", - "name": "python3" - }, - "language_info": { - "codemirror_mode": { - "name": "ipython", - "version": 3 - }, - "file_extension": ".py", - "mimetype": "text/x-python", - "name": "python", - "nbconvert_exporter": "python", - "pygments_lexer": "ipython3", - "version": "3.10.11" - } - }, - "nbformat": 4, - "nbformat_minor": 1 -} diff --git a/libs/cli/langchain_cli/integration_template/docs/retrievers.ipynb b/libs/cli/langchain_cli/integration_template/docs/retrievers.ipynb deleted file mode 100644 index 254633bdf23..00000000000 --- a/libs/cli/langchain_cli/integration_template/docs/retrievers.ipynb +++ /dev/null @@ -1,245 +0,0 @@ -{ - "cells": [ - { - "cell_type": "raw", - "id": "afaf8039", - "metadata": {}, - "source": [ - "---\n", - "sidebar_label: __ModuleName__\n", - "---" - ] - }, - { - "cell_type": "markdown", - "id": "e49f1e0d", - "metadata": {}, - "source": [ - "# __ModuleName__Retriever\n", - "\n", - "- TODO: Make sure API reference link is correct.\n", - "\n", - "This will help you get started with the __ModuleName__ [retriever](/docs/concepts/retrievers). For detailed documentation of all __ModuleName__Retriever features and configurations head to the [API reference](https://api.python.langchain.com/en/latest/retrievers/__module_name__.retrievers.__ModuleName__.__ModuleName__Retriever.html).\n", - "\n", - "### Integration details\n", - "\n", - "TODO: Select one of the tables below, as appropriate.\n", - "\n", - "1: Bring-your-own data (i.e., index and search a custom corpus of documents):\n", - "\n", - "| Retriever | Self-host | Cloud offering | Package |\n", - "| :--- | :--- | :---: | :---: |\n", - "[__ModuleName__Retriever](https://api.python.langchain.com/en/latest/retrievers/__package_name__.retrievers.__module_name__.__ModuleName__Retriever.html) | ❌ | ❌ | __package_name__ |\n", - "\n", - "2: External index (e.g., constructed from Internet data or similar)):\n", - "\n", - "| Retriever | Source | Package |\n", - "| :--- | :--- | :---: |\n", - "[__ModuleName__Retriever](https://api.python.langchain.com/en/latest/retrievers/__package_name__.retrievers.__module_name__.__ModuleName__Retriever.html) | Source description | __package_name__ |\n", - "\n", - "## Setup\n", - "\n", - "- TODO: Update with relevant info." - ] - }, - { - "cell_type": "markdown", - "id": "72ee0c4b-9764-423a-9dbf-95129e185210", - "metadata": {}, - "source": [ - "If you want to get automated tracing from individual queries, you can also set your [LangSmith](https://docs.smith.langchain.com/) API key by uncommenting below:" - ] - }, - { - "cell_type": "code", - "execution_count": null, - "id": "a15d341e-3e26-4ca3-830b-5aab30ed66de", - "metadata": {}, - "outputs": [], - "source": [ - "# os.environ[\"LANGSMITH_API_KEY\"] = getpass.getpass(\"Enter your LangSmith API key: \")\n", - "# os.environ[\"LANGSMITH_TRACING\"] = \"true\"" - ] - }, - { - "cell_type": "markdown", - "id": "0730d6a1-c893-4840-9817-5e5251676d5d", - "metadata": {}, - "source": [ - "### Installation\n", - "\n", - "This retriever lives in the `__package_name__` package:" - ] - }, - { - "cell_type": "code", - "execution_count": null, - "id": "652d6238-1f87-422a-b135-f5abbb8652fc", - "metadata": {}, - "outputs": [], - "source": [ - "%pip install -qU __package_name__" - ] - }, - { - "cell_type": "markdown", - "id": "a38cde65-254d-4219-a441-068766c0d4b5", - "metadata": {}, - "source": [ - "## Instantiation\n", - "\n", - "Now we can instantiate our retriever:\n", - "\n", - "- TODO: Update model instantiation with relevant params." - ] - }, - { - "cell_type": "code", - "execution_count": null, - "id": "70cc8e65-2a02-408a-bbc6-8ef649057d82", - "metadata": {}, - "outputs": [], - "source": [ - "from __module_name__ import __ModuleName__Retriever\n", - "\n", - "retriever = __ModuleName__Retriever(\n", - " # ...\n", - ")" - ] - }, - { - "cell_type": "markdown", - "id": "5c5f2839-4020-424e-9fc9-07777eede442", - "metadata": {}, - "source": [ - "## Usage" - ] - }, - { - "cell_type": "code", - "execution_count": null, - "id": "51a60dbe-9f2e-4e04-bb62-23968f17164a", - "metadata": {}, - "outputs": [], - "source": [ - "query = \"...\"\n", - "\n", - "retriever.invoke(query)" - ] - }, - { - "cell_type": "markdown", - "id": "dfe8aad4-8626-4330-98a9-7ea1ca5d2e0e", - "metadata": {}, - "source": [ - "## Use within a chain\n", - "\n", - "Like other retrievers, __ModuleName__Retriever can be incorporated into LLM applications via [chains](/docs/how_to/sequence/).\n", - "\n", - "We will need a LLM or chat model:\n", - "\n", - "import ChatModelTabs from \"@theme/ChatModelTabs\";\n", - "\n", - "" - ] - }, - { - "cell_type": "code", - "execution_count": null, - "id": "25b647a3-f8f2-4541-a289-7a241e43f9df", - "metadata": {}, - "outputs": [], - "source": [ - "# | output: false\n", - "# | echo: false\n", - "\n", - "from langchain_openai import ChatOpenAI\n", - "\n", - "model = ChatOpenAI(model=\"gpt-3.5-turbo-0125\", temperature=0)" - ] - }, - { - "cell_type": "code", - "execution_count": null, - "id": "23e11cc9-abd6-4855-a7eb-799f45ca01ae", - "metadata": {}, - "outputs": [], - "source": [ - "from langchain_core.output_parsers import StrOutputParser\n", - "from langchain_core.prompts import ChatPromptTemplate\n", - "from langchain_core.runnables import RunnablePassthrough\n", - "\n", - "prompt = ChatPromptTemplate.from_template(\n", - " \"\"\"Answer the question based only on the context provided.\n", - "\n", - "Context: {context}\n", - "\n", - "Question: {question}\"\"\"\n", - ")\n", - "\n", - "\n", - "def format_docs(docs):\n", - " return \"\\n\\n\".join(doc.page_content for doc in docs)\n", - "\n", - "\n", - "chain = (\n", - " {\"context\": retriever | format_docs, \"question\": RunnablePassthrough()}\n", - " | prompt\n", - " | model\n", - " | StrOutputParser()\n", - ")" - ] - }, - { - "cell_type": "code", - "execution_count": null, - "id": "d47c37dd-5c11-416c-a3b6-bec413cd70e8", - "metadata": {}, - "outputs": [], - "source": [ - "chain.invoke(\"...\")" - ] - }, - { - "cell_type": "markdown", - "id": "d1ee55bc-ffc8-4cfa-801c-993953a08cfd", - "metadata": {}, - "source": [ - "## TODO: Any functionality or considerations specific to this retriever\n", - "\n", - "Fill in or delete if not relevant." - ] - }, - { - "cell_type": "markdown", - "id": "3a5bb5ca-c3ae-4a58-be67-2cd18574b9a3", - "metadata": {}, - "source": [ - "## API reference\n", - "\n", - "For detailed documentation of all __ModuleName__Retriever features and configurations head to the [API reference](https://api.python.langchain.com/en/latest/retrievers/__module_name__.retrievers.__ModuleName__.__ModuleName__Retriever.html)." - ] - } - ], - "metadata": { - "kernelspec": { - "display_name": "Python 3 (ipykernel)", - "language": "python", - "name": "python3" - }, - "language_info": { - "codemirror_mode": { - "name": "ipython", - "version": 3 - }, - "file_extension": ".py", - "mimetype": "text/x-python", - "name": "python", - "nbconvert_exporter": "python", - "pygments_lexer": "ipython3", - "version": "3.10.4" - } - }, - "nbformat": 4, - "nbformat_minor": 5 -} diff --git a/libs/cli/langchain_cli/integration_template/docs/stores.ipynb b/libs/cli/langchain_cli/integration_template/docs/stores.ipynb deleted file mode 100644 index e250dcfa627..00000000000 --- a/libs/cli/langchain_cli/integration_template/docs/stores.ipynb +++ /dev/null @@ -1,204 +0,0 @@ -{ - "cells": [ - { - "cell_type": "raw", - "metadata": { - "vscode": { - "languageId": "raw" - } - }, - "source": [ - "---\n", - "sidebar_label: __ModuleName__ByteStore\n", - "---" - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "# __ModuleName__ByteStore\n", - "\n", - "- TODO: Make sure API reference link is correct.\n", - "\n", - "This will help you get started with __ModuleName__ [key-value stores](/docs/concepts/#key-value-stores). For detailed documentation of all __ModuleName__ByteStore features and configurations head to the [API reference](https://python.langchain.com/v0.2/api_reference/core/stores/langchain_core.stores.__module_name__ByteStore.html).\n", - "\n", - "- TODO: Add any other relevant links, like information about models, prices, context windows, etc. See https://python.langchain.com/docs/integrations/stores/in_memory/ for an example.\n", - "\n", - "## Overview\n", - "\n", - "- TODO: (Optional) A short introduction to the underlying technology/API.\n", - "\n", - "### Integration details\n", - "\n", - "- TODO: Fill in table features.\n", - "- TODO: Remove JS support link if not relevant, otherwise ensure link is correct.\n", - "- TODO: Make sure API reference links are correct.\n", - "\n", - "| Class | Package | Local | [JS support](https://js.langchain.com/docs/integrations/stores/_package_name_) | Package downloads | Package latest |\n", - "| :--- | :--- | :---: | :---: | :---: | :---: |\n", - "| [__ModuleName__ByteStore](https://api.python.langchain.com/en/latest/stores/__module_name__.stores.__ModuleName__ByteStore.html) | [__package_name__](https://api.python.langchain.com/en/latest/__package_name_short_snake___api_reference.html) | ✅/❌ | ✅/❌ | ![PyPI - Downloads](https://img.shields.io/pypi/dm/__package_name__&label=%20) | ![PyPI - Version](https://img.shields.io/pypi/v/__package_name__&label=%20) |\n", - "\n", - "## Setup\n", - "\n", - "- TODO: Update with relevant info.\n", - "\n", - "To create a __ModuleName__ byte store, you'll need to create a/an __ModuleName__ account, get an API key, and install the `__package_name__` integration package.\n", - "\n", - "### Credentials\n", - "\n", - "- TODO: Update with relevant info, or omit if the service does not require any credentials.\n", - "\n", - "Head to (TODO: link) to sign up to __ModuleName__ and generate an API key. Once you've done this set the __MODULE_NAME___API_KEY environment variable:" - ] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": {}, - "outputs": [], - "source": [ - "import getpass\n", - "import os\n", - "\n", - "if not os.getenv(\"__MODULE_NAME___API_KEY\"):\n", - " os.environ[\"__MODULE_NAME___API_KEY\"] = getpass.getpass(\n", - " \"Enter your __ModuleName__ API key: \"\n", - " )" - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "### Installation\n", - "\n", - "The LangChain __ModuleName__ integration lives in the `__package_name__` package:" - ] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": {}, - "outputs": [], - "source": [ - "%pip install -qU __package_name__" - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "## Instantiation\n", - "\n", - "Now we can instantiate our byte store:\n", - "\n", - "- TODO: Update model instantiation with relevant params." - ] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": {}, - "outputs": [], - "source": [ - "from __module_name__ import __ModuleName__ByteStore\n", - "\n", - "kv_store = __ModuleName__ByteStore(\n", - " # params...\n", - ")" - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "## Usage\n", - "\n", - "- TODO: Run cells so output can be seen.\n", - "\n", - "You can set data under keys like this using the `mset` method:" - ] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": {}, - "outputs": [], - "source": [ - "kv_store.mset(\n", - " [\n", - " [\"key1\", b\"value1\"],\n", - " [\"key2\", b\"value2\"],\n", - " ]\n", - ")\n", - "\n", - "kv_store.mget(\n", - " [\n", - " \"key1\",\n", - " \"key2\",\n", - " ]\n", - ")" - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "And you can delete data using the `mdelete` method:" - ] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": {}, - "outputs": [], - "source": [ - "kv_store.mdelete(\n", - " [\n", - " \"key1\",\n", - " \"key2\",\n", - " ]\n", - ")\n", - "\n", - "kv_store.mget(\n", - " [\n", - " \"key1\",\n", - " \"key2\",\n", - " ]\n", - ")" - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "## TODO: Any functionality specific to this key-value store provider\n", - "\n", - "E.g. extra initialization. Delete if not relevant." - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "## API reference\n", - "\n", - "For detailed documentation of all __ModuleName__ByteStore features and configurations, head to the API reference: https://api.python.langchain.com/en/latest/stores/__module_name__.stores.__ModuleName__ByteStore.html" - ] - } - ], - "metadata": { - "kernelspec": { - "display_name": "Python 3", - "language": "python", - "name": "python3" - }, - "language_info": { - "name": "python", - "version": "3.10.5" - } - }, - "nbformat": 4, - "nbformat_minor": 2 -} diff --git a/libs/cli/langchain_cli/integration_template/docs/text_embedding.ipynb b/libs/cli/langchain_cli/integration_template/docs/text_embedding.ipynb deleted file mode 100644 index 3f400248b00..00000000000 --- a/libs/cli/langchain_cli/integration_template/docs/text_embedding.ipynb +++ /dev/null @@ -1,246 +0,0 @@ -{ - "cells": [ - { - "cell_type": "raw", - "id": "afaf8039", - "metadata": {}, - "source": [ - "---\n", - "sidebar_label: __ModuleName__\n", - "---" - ] - }, - { - "cell_type": "markdown", - "id": "9a3d6f34", - "metadata": {}, - "source": [ - "# __ModuleName__Embeddings\n", - "\n", - "- [ ] TODO: Make sure API reference link is correct\n", - "\n", - "This will help you get started with __ModuleName__ embedding models using LangChain. For detailed documentation on `__ModuleName__Embeddings` features and configuration options, please refer to the [API reference](https://python.langchain.com/v0.2/api_reference/__package_name_short__/embeddings/__module_name__.embeddings__ModuleName__Embeddings.html).\n", - "\n", - "## Overview\n", - "### Integration details\n", - "\n", - "| Provider | Package |\n", - "|:--------:|:-------:|\n", - "| [__ModuleName__](/docs/integrations/providers/__package_name_short__/) | [__package_name__](https://python.langchain.com/v0.2/api_reference/__module_name__/embeddings/__module_name__.embeddings__ModuleName__Embeddings.html) |\n", - "\n", - "## Setup\n", - "\n", - "- [ ] TODO: Update with relevant info.\n", - "\n", - "To access __ModuleName__ embedding models you'll need to create a/an __ModuleName__ account, get an API key, and install the `__package_name__` integration package.\n", - "\n", - "### Credentials\n", - "\n", - "- TODO: Update with relevant info.\n", - "\n", - "Head to (TODO: link) to sign up to __ModuleName__ and generate an API key. Once you've done this set the __MODULE_NAME___API_KEY environment variable:" - ] - }, - { - "cell_type": "code", - "execution_count": null, - "id": "36521c2a", - "metadata": {}, - "outputs": [], - "source": [ - "import getpass\n", - "import os\n", - "\n", - "if not os.getenv(\"__MODULE_NAME___API_KEY\"):\n", - " os.environ[\"__MODULE_NAME___API_KEY\"] = getpass.getpass(\n", - " \"Enter your __ModuleName__ API key: \"\n", - " )" - ] - }, - { - "cell_type": "markdown", - "id": "c84fb993", - "metadata": {}, - "source": "To enable automated tracing of your model calls, set your [LangSmith](https://docs.smith.langchain.com/) API key:" - }, - { - "cell_type": "code", - "execution_count": null, - "id": "39a4953b", - "metadata": {}, - "outputs": [], - "source": [ - "# os.environ[\"LANGSMITH_TRACING\"] = \"true\"\n", - "# os.environ[\"LANGSMITH_API_KEY\"] = getpass.getpass(\"Enter your LangSmith API key: \")" - ] - }, - { - "cell_type": "markdown", - "id": "d9664366", - "metadata": {}, - "source": [ - "### Installation\n", - "\n", - "The LangChain __ModuleName__ integration lives in the `__package_name__` package:" - ] - }, - { - "cell_type": "code", - "execution_count": null, - "id": "64853226", - "metadata": {}, - "outputs": [], - "source": [ - "%pip install -qU __package_name__" - ] - }, - { - "cell_type": "markdown", - "id": "45dd1724", - "metadata": {}, - "source": [ - "## Instantiation\n", - "\n", - "Now we can instantiate our model object and generate chat completions:\n", - "\n", - "- TODO: Update model instantiation with relevant params." - ] - }, - { - "cell_type": "code", - "execution_count": null, - "id": "9ea7a09b", - "metadata": {}, - "outputs": [], - "source": [ - "from __module_name__ import __ModuleName__Embeddings\n", - "\n", - "embeddings = __ModuleName__Embeddings(\n", - " model=\"model-name\",\n", - ")" - ] - }, - { - "cell_type": "markdown", - "id": "77d271b6", - "metadata": {}, - "source": [ - "## Indexing and Retrieval\n", - "\n", - "Embedding models are often used in retrieval-augmented generation (RAG) flows, both as part of indexing data as well as later retrieving it. For more detailed instructions, please see our [RAG tutorials](/docs/tutorials/).\n", - "\n", - "Below, see how to index and retrieve data using the `embeddings` object we initialized above. In this example, we will index and retrieve a sample document in the `InMemoryVectorStore`." - ] - }, - { - "cell_type": "code", - "execution_count": null, - "id": "d817716b", - "metadata": {}, - "outputs": [], - "source": [ - "# Create a vector store with a sample text\n", - "from langchain_core.vectorstores import InMemoryVectorStore\n", - "\n", - "text = \"LangChain is the framework for building context-aware reasoning applications\"\n", - "\n", - "vectorstore = InMemoryVectorStore.from_texts(\n", - " [text],\n", - " embedding=embeddings,\n", - ")\n", - "\n", - "# Use the vectorstore as a retriever\n", - "retriever = vectorstore.as_retriever()\n", - "\n", - "# Retrieve the most similar text\n", - "retrieved_documents = retriever.invoke(\"What is LangChain?\")\n", - "\n", - "# show the retrieved document's content\n", - "retrieved_documents[0].page_content" - ] - }, - { - "cell_type": "markdown", - "id": "e02b9855", - "metadata": {}, - "source": [ - "## Direct Usage\n", - "\n", - "Under the hood, the vectorstore and retriever implementations are calling `embeddings.embed_documents(...)` and `embeddings.embed_query(...)` to create embeddings for the text(s) used in `from_texts` and retrieval `invoke` operations, respectively.\n", - "\n", - "You can directly call these methods to get embeddings for your own use cases.\n", - "\n", - "### Embed single texts\n", - "\n", - "You can embed single texts or documents with `embed_query`:" - ] - }, - { - "cell_type": "code", - "execution_count": null, - "id": "0d2befcd", - "metadata": {}, - "outputs": [], - "source": [ - "single_vector = embeddings.embed_query(text)\n", - "print(str(single_vector)[:100]) # Show the first 100 characters of the vector" - ] - }, - { - "cell_type": "markdown", - "id": "1b5a7d03", - "metadata": {}, - "source": [ - "### Embed multiple texts\n", - "\n", - "You can embed multiple texts with `embed_documents`:" - ] - }, - { - "cell_type": "code", - "execution_count": null, - "id": "2f4d6e97", - "metadata": {}, - "outputs": [], - "source": [ - "text2 = (\n", - " \"LangGraph is a library for building stateful, multi-actor applications with LLMs\"\n", - ")\n", - "two_vectors = embeddings.embed_documents([text, text2])\n", - "for vector in two_vectors:\n", - " print(str(vector)[:100]) # Show the first 100 characters of the vector" - ] - }, - { - "cell_type": "markdown", - "id": "98785c12", - "metadata": {}, - "source": [ - "## API Reference\n", - "\n", - "For detailed documentation on `__ModuleName__Embeddings` features and configuration options, please refer to the [API reference](https://api.python.langchain.com/en/latest/embeddings/__module_name__.embeddings.__ModuleName__Embeddings.html).\n" - ] - } - ], - "metadata": { - "kernelspec": { - "display_name": "Python 3 (ipykernel)", - "language": "python", - "name": "python3" - }, - "language_info": { - "codemirror_mode": { - "name": "ipython", - "version": 3 - }, - "file_extension": ".py", - "mimetype": "text/x-python", - "name": "python", - "nbconvert_exporter": "python", - "pygments_lexer": "ipython3", - "version": "3.10.5" - } - }, - "nbformat": 4, - "nbformat_minor": 5 -} diff --git a/libs/cli/langchain_cli/integration_template/docs/toolkits.ipynb b/libs/cli/langchain_cli/integration_template/docs/toolkits.ipynb deleted file mode 100644 index 080bf360f98..00000000000 --- a/libs/cli/langchain_cli/integration_template/docs/toolkits.ipynb +++ /dev/null @@ -1,199 +0,0 @@ -{ - "cells": [ - { - "cell_type": "raw", - "id": "afaf8039", - "metadata": {}, - "source": [ - "---\n", - "sidebar_label: __ModuleName__\n", - "---" - ] - }, - { - "cell_type": "markdown", - "id": "e49f1e0d", - "metadata": {}, - "source": [ - "# __ModuleName__Toolkit\n", - "\n", - "- TODO: Make sure API reference link is correct.\n", - "\n", - "This will help you get started with the __ModuleName__ [toolkit](/docs/concepts/tools/#toolkits). For detailed documentation of all __ModuleName__Toolkit features and configurations head to the [API reference](https://api.python.langchain.com/en/latest/agent_toolkits/__module_name__.agent_toolkits.__ModuleName__.toolkit.__ModuleName__Toolkit.html).\n", - "\n", - "## Setup\n", - "\n", - "- TODO: Update with relevant info." - ] - }, - { - "cell_type": "markdown", - "id": "72ee0c4b-9764-423a-9dbf-95129e185210", - "metadata": {}, - "source": "To enable automated tracing of individual tools, set your [LangSmith](https://docs.smith.langchain.com/) API key:" - }, - { - "cell_type": "code", - "execution_count": null, - "id": "a15d341e-3e26-4ca3-830b-5aab30ed66de", - "metadata": {}, - "outputs": [], - "source": [ - "# os.environ[\"LANGSMITH_API_KEY\"] = getpass.getpass(\"Enter your LangSmith API key: \")\n", - "# os.environ[\"LANGSMITH_TRACING\"] = \"true\"" - ] - }, - { - "cell_type": "markdown", - "id": "0730d6a1-c893-4840-9817-5e5251676d5d", - "metadata": {}, - "source": [ - "### Installation\n", - "\n", - "This toolkit lives in the `__package_name__` package:" - ] - }, - { - "cell_type": "code", - "execution_count": null, - "id": "652d6238-1f87-422a-b135-f5abbb8652fc", - "metadata": {}, - "outputs": [], - "source": [ - "%pip install -qU __package_name__" - ] - }, - { - "cell_type": "markdown", - "id": "a38cde65-254d-4219-a441-068766c0d4b5", - "metadata": {}, - "source": [ - "## Instantiation\n", - "\n", - "Now we can instantiate our toolkit:\n", - "\n", - "- TODO: Update model instantiation with relevant params." - ] - }, - { - "cell_type": "code", - "execution_count": null, - "id": "cb09c344-1836-4e0c-acf8-11d13ac1dbae", - "metadata": {}, - "outputs": [], - "source": [ - "from __module_name__ import __ModuleName__Toolkit\n", - "\n", - "toolkit = __ModuleName__Toolkit(\n", - " # ...\n", - ")" - ] - }, - { - "cell_type": "markdown", - "id": "5c5f2839-4020-424e-9fc9-07777eede442", - "metadata": {}, - "source": [ - "## Tools\n", - "\n", - "View available tools:" - ] - }, - { - "cell_type": "code", - "execution_count": null, - "id": "51a60dbe-9f2e-4e04-bb62-23968f17164a", - "metadata": {}, - "outputs": [], - "source": [ - "toolkit.get_tools()" - ] - }, - { - "cell_type": "markdown", - "id": "d11245ad-3661-4405-8558-1188896347ec", - "metadata": {}, - "source": [ - "TODO: list API reference pages for individual tools." - ] - }, - { - "cell_type": "markdown", - "id": "dfe8aad4-8626-4330-98a9-7ea1ca5d2e0e", - "metadata": {}, - "source": [ - "## Use within an agent" - ] - }, - { - "cell_type": "code", - "execution_count": null, - "id": "310bf18e-6c9a-4072-b86e-47bc1fcca29d", - "metadata": {}, - "outputs": [], - "source": [ - "from langgraph.prebuilt import create_react_agent\n", - "\n", - "agent_executor = create_react_agent(llm, tools)" - ] - }, - { - "cell_type": "code", - "execution_count": null, - "id": "23e11cc9-abd6-4855-a7eb-799f45ca01ae", - "metadata": {}, - "outputs": [], - "source": [ - "example_query = \"...\"\n", - "\n", - "events = agent_executor.stream(\n", - " {\"messages\": [(\"user\", example_query)]},\n", - " stream_mode=\"values\",\n", - ")\n", - "for event in events:\n", - " event[\"messages\"][-1].pretty_print()" - ] - }, - { - "cell_type": "markdown", - "id": "d1ee55bc-ffc8-4cfa-801c-993953a08cfd", - "metadata": {}, - "source": [ - "## TODO: Any functionality or considerations specific to this toolkit\n", - "\n", - "Fill in or delete if not relevant." - ] - }, - { - "cell_type": "markdown", - "id": "3a5bb5ca-c3ae-4a58-be67-2cd18574b9a3", - "metadata": {}, - "source": [ - "## API reference\n", - "\n", - "For detailed documentation of all __ModuleName__Toolkit features and configurations head to the [API reference](https://api.python.langchain.com/en/latest/agent_toolkits/__module_name__.agent_toolkits.__ModuleName__.toolkit.__ModuleName__Toolkit.html)." - ] - } - ], - "metadata": { - "kernelspec": { - "display_name": "Python 3 (ipykernel)", - "language": "python", - "name": "python3" - }, - "language_info": { - "codemirror_mode": { - "name": "ipython", - "version": 3 - }, - "file_extension": ".py", - "mimetype": "text/x-python", - "name": "python", - "nbconvert_exporter": "python", - "pygments_lexer": "ipython3", - "version": "3.10.4" - } - }, - "nbformat": 4, - "nbformat_minor": 5 -} diff --git a/libs/cli/langchain_cli/integration_template/docs/tools.ipynb b/libs/cli/langchain_cli/integration_template/docs/tools.ipynb deleted file mode 100644 index 0310a839850..00000000000 --- a/libs/cli/langchain_cli/integration_template/docs/tools.ipynb +++ /dev/null @@ -1,271 +0,0 @@ -{ - "cells": [ - { - "cell_type": "raw", - "id": "10238e62-3465-4973-9279-606cbb7ccf16", - "metadata": {}, - "source": [ - "---\n", - "sidebar_label: __ModuleName__\n", - "---" - ] - }, - { - "cell_type": "markdown", - "id": "a6f91f20", - "metadata": {}, - "source": [ - "# __ModuleName__\n", - "\n", - "- TODO: Make sure API reference link is correct.\n", - "\n", - "This notebook provides a quick overview for getting started with __ModuleName__ [tool](/docs/integrations/tools/). For detailed documentation of all __ModuleName__ features and configurations head to the [API reference](https://python.langchain.com/v0.2/api_reference/community/tools/langchain_community.tools.__module_name__.tool.__ModuleName__.html).\n", - "\n", - "- TODO: Add any other relevant links, like information about underlying API, etc.\n", - "\n", - "## Overview\n", - "\n", - "### Integration details\n", - "\n", - "- TODO: Make sure links and features are correct\n", - "\n", - "| Class | Package | Serializable | [JS support](https://js.langchain.com/docs/integrations/tools/__module_name__) | Package latest |\n", - "| :--- | :--- | :---: | :---: | :---: |\n", - "| [__ModuleName__](https://python.langchain.com/v0.2/api_reference/community/tools/langchain_community.tools.__module_name__.tool.__ModuleName__.html) | [langchain-community](https://api.python.langchain.com/en/latest/community_api_reference.html) | beta/❌ | ✅/❌ | ![PyPI - Version](https://img.shields.io/pypi/v/langchain-community&label=%20) |\n", - "\n", - "### Tool features\n", - "\n", - "- TODO: Add feature table if it makes sense\n", - "\n", - "\n", - "## Setup\n", - "\n", - "- TODO: Add any additional deps\n", - "\n", - "The integration lives in the `langchain-community` package." - ] - }, - { - "cell_type": "code", - "execution_count": null, - "id": "f85b4089", - "metadata": {}, - "outputs": [], - "source": [ - "%pip install --quiet -U langchain-community" - ] - }, - { - "cell_type": "markdown", - "id": "b15e9266", - "metadata": {}, - "source": [ - "### Credentials\n", - "\n", - "- TODO: Add any credentials that are needed" - ] - }, - { - "cell_type": "code", - "execution_count": 2, - "id": "e0b178a2-8816-40ca-b57c-ccdd86dde9c9", - "metadata": {}, - "outputs": [], - "source": [ - "import getpass\n", - "import os\n", - "\n", - "# if not os.environ.get(\"__MODULE_NAME___API_KEY\"):\n", - "# os.environ[\"__MODULE_NAME___API_KEY\"] = getpass.getpass(\"__MODULE_NAME__ API key:\\n\")" - ] - }, - { - "cell_type": "markdown", - "id": "bc5ab717-fd27-4c59-b912-bdd099541478", - "metadata": {}, - "source": [ - "It's also helpful (but not needed) to set up [LangSmith](https://smith.langchain.com/) for best-in-class observability:" - ] - }, - { - "cell_type": "code", - "execution_count": 3, - "id": "a6c2f136-6367-4f1f-825d-ae741e1bf281", - "metadata": {}, - "outputs": [], - "source": [ - "# os.environ[\"LANGSMITH_TRACING\"] = \"true\"\n", - "# os.environ[\"LANGSMITH_API_KEY\"] = getpass.getpass()" - ] - }, - { - "cell_type": "markdown", - "id": "1c97218f-f366-479d-8bf7-fe9f2f6df73f", - "metadata": {}, - "source": [ - "## Instantiation\n", - "\n", - "- TODO: Fill in instantiation params\n", - "\n", - "Here we show how to instantiate an instance of the __ModuleName__ tool, with " - ] - }, - { - "cell_type": "code", - "execution_count": 4, - "id": "8b3ddfe9-ca79-494c-a7ab-1f56d9407a64", - "metadata": {}, - "outputs": [], - "source": [ - "from langchain_community.tools import __ModuleName__\n", - "\n", - "\n", - "tool = __ModuleName__(...)" - ] - }, - { - "cell_type": "markdown", - "id": "74147a1a", - "metadata": {}, - "source": [ - "## Invocation\n", - "\n", - "### [Invoke directly with args](/docs/concepts/tools/#use-the-tool-directly)\n", - "\n", - "- TODO: Describe what the tool args are, fill them in, run cell" - ] - }, - { - "cell_type": "code", - "execution_count": null, - "id": "65310a8b-eb0c-4d9e-a618-4f4abe2414fc", - "metadata": {}, - "outputs": [], - "source": [ - "tool.invoke({...})" - ] - }, - { - "cell_type": "markdown", - "id": "d6e73897", - "metadata": {}, - "source": [ - "### [Invoke with ToolCall](/docs/concepts/tool_calling/#tool-execution)\n", - "\n", - "We can also invoke the tool with a model-generated ToolCall, in which case a ToolMessage will be returned:\n", - "\n", - "- TODO: Fill in tool args and run cell" - ] - }, - { - "cell_type": "code", - "execution_count": null, - "id": "f90e33a7", - "metadata": {}, - "outputs": [], - "source": [ - "# This is usually generated by a model, but we'll create a tool call directly for demo purposes.\n", - "model_generated_tool_call = {\n", - " \"args\": {...}, # TODO: FILL IN\n", - " \"id\": \"1\",\n", - " \"name\": tool.name,\n", - " \"type\": \"tool_call\",\n", - "}\n", - "tool.invoke(model_generated_tool_call)" - ] - }, - { - "cell_type": "markdown", - "id": "659f9fbd-6fcf-445f-aa8c-72d8e60154bd", - "metadata": {}, - "source": [ - "## Use within an agent\n", - "\n", - "- TODO: Add user question and run cells\n", - "\n", - "We can use our tool in an [agent](/docs/concepts/agents/). For this we will need a LLM with [tool-calling](/docs/how_to/tool_calling/) capabilities:\n", - "\n", - "import ChatModelTabs from \"@theme/ChatModelTabs\";\n", - "\n", - "\n" - ] - }, - { - "cell_type": "code", - "execution_count": null, - "id": "af3123ad-7a02-40e5-b58e-7d56e23e5830", - "metadata": {}, - "outputs": [], - "source": [ - "# | output: false\n", - "# | echo: false\n", - "\n", - "# !pip install -qU langchain langchain-openai\n", - "from langchain.chat_models import init_chat_model\n", - "\n", - "model = init_chat_model(model=\"gpt-4o\", model_provider=\"openai\")" - ] - }, - { - "cell_type": "code", - "execution_count": null, - "id": "bea35fa1", - "metadata": {}, - "outputs": [], - "source": [ - "from langgraph.prebuilt import create_react_agent\n", - "\n", - "tools = [tool]\n", - "agent = create_react_agent(model, tools)" - ] - }, - { - "cell_type": "code", - "execution_count": null, - "id": "fdbf35b5-3aaf-4947-9ec6-48c21533fb95", - "metadata": {}, - "outputs": [], - "source": [ - "example_query = \"...\"\n", - "\n", - "events = agent.stream(\n", - " {\"messages\": [(\"user\", example_query)]},\n", - " stream_mode=\"values\",\n", - ")\n", - "for event in events:\n", - " event[\"messages\"][-1].pretty_print()" - ] - }, - { - "cell_type": "markdown", - "id": "4ac8146c", - "metadata": {}, - "source": [ - "## API reference\n", - "\n", - "For detailed documentation of all __ModuleName__ features and configurations head to the API reference: https://python.langchain.com/v0.2/api_reference/community/tools/langchain_community.tools.__module_name__.tool.__ModuleName__.html" - ] - } - ], - "metadata": { - "kernelspec": { - "display_name": "poetry-venv-311", - "language": "python", - "name": "poetry-venv-311" - }, - "language_info": { - "codemirror_mode": { - "name": "ipython", - "version": 3 - }, - "file_extension": ".py", - "mimetype": "text/x-python", - "name": "python", - "nbconvert_exporter": "python", - "pygments_lexer": "ipython3", - "version": "3.11.9" - } - }, - "nbformat": 4, - "nbformat_minor": 5 -} diff --git a/libs/cli/langchain_cli/integration_template/docs/vectorstores.ipynb b/libs/cli/langchain_cli/integration_template/docs/vectorstores.ipynb deleted file mode 100644 index c77e495ad72..00000000000 --- a/libs/cli/langchain_cli/integration_template/docs/vectorstores.ipynb +++ /dev/null @@ -1,333 +0,0 @@ -{ - "cells": [ - { - "cell_type": "raw", - "id": "1957f5cb", - "metadata": {}, - "source": [ - "---\n", - "sidebar_label: __ModuleName__\n", - "---" - ] - }, - { - "cell_type": "markdown", - "id": "ef1f0986", - "metadata": {}, - "source": [ - "# __ModuleName__VectorStore\n", - "\n", - "This notebook covers how to get started with the __ModuleName__ vector store." - ] - }, - { - "cell_type": "markdown", - "id": "36fdc060", - "metadata": {}, - "source": [ - "## Setup\n", - "\n", - "- TODO: Update with relevant info.\n", - "- TODO: Update minimum version to be correct.\n", - "\n", - "To access __ModuleName__ vector stores you'll need to create a/an __ModuleName__ account, get an API key, and install the `__package_name__` integration package." - ] - }, - { - "cell_type": "raw", - "id": "64e28aa6", - "metadata": { - "vscode": { - "languageId": "raw" - } - }, - "source": [ - "%pip install -qU \"__package_name__>=MINIMUM_VERSION\"" - ] - }, - { - "cell_type": "markdown", - "id": "9695dee7", - "metadata": {}, - "source": [ - "### Credentials\n", - "\n", - "- TODO: Update with relevant info.\n", - "\n", - "Head to (TODO: link) to sign up to __ModuleName__ and generate an API key. Once you've done this set the __MODULE_NAME___API_KEY environment variable:" - ] - }, - { - "cell_type": "code", - "execution_count": null, - "id": "894c30e4", - "metadata": {}, - "outputs": [], - "source": [ - "import getpass\n", - "import os\n", - "\n", - "if not os.getenv(\"__MODULE_NAME___API_KEY\"):\n", - " os.environ[\"__MODULE_NAME___API_KEY\"] = getpass.getpass(\n", - " \"Enter your __ModuleName__ API key: \"\n", - " )" - ] - }, - { - "cell_type": "markdown", - "id": "7f98392b", - "metadata": {}, - "source": "To enable automated tracing of your model calls, set your [LangSmith](https://docs.smith.langchain.com/) API key:" - }, - { - "cell_type": "code", - "execution_count": null, - "id": "e7b6a6e0", - "metadata": {}, - "outputs": [], - "source": [ - "# os.environ[\"LANGSMITH_API_KEY\"] = getpass.getpass(\"Enter your LangSmith API key: \")\n", - "# os.environ[\"LANGSMITH_TRACING\"] = \"true\"" - ] - }, - { - "cell_type": "markdown", - "id": "93df377e", - "metadata": {}, - "source": [ - "## Initialization\n", - "\n", - "- TODO: Fill out with relevant init params\n", - "\n", - "\n", - "```{=mdx}\n", - "import EmbeddingTabs from \"@theme/EmbeddingTabs\";\n", - "\n", - "\n", - "```" - ] - }, - { - "cell_type": "code", - "execution_count": null, - "id": "dc37144c-208d-4ab3-9f3a-0407a69fe052", - "metadata": { - "tags": [] - }, - "outputs": [], - "source": [ - "from __module_name__.vectorstores import __ModuleName__VectorStore\n", - "\n", - "vector_store = __ModuleName__VectorStore(embeddings=embeddings)" - ] - }, - { - "cell_type": "markdown", - "id": "ac6071d4", - "metadata": {}, - "source": [ - "## Manage vector store\n", - "\n", - "### Add items to vector store\n", - "\n", - "- TODO: Edit and then run code cell to generate output" - ] - }, - { - "cell_type": "code", - "execution_count": null, - "id": "17f5efc0", - "metadata": {}, - "outputs": [], - "source": [ - "from langchain_core.documents import Document\n", - "\n", - "document_1 = Document(page_content=\"foo\", metadata={\"source\": \"https://example.com\"})\n", - "\n", - "document_2 = Document(page_content=\"bar\", metadata={\"source\": \"https://example.com\"})\n", - "\n", - "document_3 = Document(page_content=\"baz\", metadata={\"source\": \"https://example.com\"})\n", - "\n", - "documents = [document_1, document_2, document_3]\n", - "\n", - "vector_store.add_documents(documents=documents, ids=[\"1\", \"2\", \"3\"])" - ] - }, - { - "cell_type": "markdown", - "id": "c738c3e0", - "metadata": {}, - "source": [ - "### Update items in vector store\n", - "\n", - "- TODO: Edit and then run code cell to generate output" - ] - }, - { - "cell_type": "code", - "execution_count": null, - "id": "f0aa8b71", - "metadata": {}, - "outputs": [], - "source": [ - "updated_document = Document(\n", - " page_content=\"qux\", metadata={\"source\": \"https://another-example.com\"}\n", - ")\n", - "\n", - "vector_store.update_documents(document_id=\"1\", document=updated_document)" - ] - }, - { - "cell_type": "markdown", - "id": "dcf1b905", - "metadata": {}, - "source": [ - "### Delete items from vector store\n", - "\n", - "- TODO: Edit and then run code cell to generate output" - ] - }, - { - "cell_type": "code", - "execution_count": null, - "id": "ef61e188", - "metadata": {}, - "outputs": [], - "source": [ - "vector_store.delete(ids=[\"3\"])" - ] - }, - { - "cell_type": "markdown", - "id": "c3620501", - "metadata": {}, - "source": [ - "## Query vector store\n", - "\n", - "Once your vector store has been created and the relevant documents have been added you will most likely wish to query it during the running of your chain or agent.\n", - "\n", - "### Query directly\n", - "\n", - "Performing a simple similarity search can be done as follows:\n", - "\n", - "- TODO: Edit and then run code cell to generate output" - ] - }, - { - "cell_type": "code", - "execution_count": null, - "id": "aa0a16fa", - "metadata": {}, - "outputs": [], - "source": [ - "results = vector_store.similarity_search(\n", - " query=\"thud\", k=1, filter={\"source\": \"https://another-example.com\"}\n", - ")\n", - "for doc in results:\n", - " print(f\"* {doc.page_content} [{doc.metadata}]\")" - ] - }, - { - "cell_type": "markdown", - "id": "3ed9d733", - "metadata": {}, - "source": [ - "If you want to execute a similarity search and receive the corresponding scores you can run:\n", - "\n", - "- TODO: Edit and then run code cell to generate output" - ] - }, - { - "cell_type": "code", - "execution_count": null, - "id": "5efd2eaa", - "metadata": {}, - "outputs": [], - "source": [ - "results = vector_store.similarity_search_with_score(\n", - " query=\"thud\", k=1, filter={\"source\": \"https://example.com\"}\n", - ")\n", - "for doc, score in results:\n", - " print(f\"* [SIM={score:3f}] {doc.page_content} [{doc.metadata}]\")" - ] - }, - { - "cell_type": "markdown", - "id": "0c235cdc", - "metadata": {}, - "source": [ - "### Query by turning into retriever\n", - "\n", - "You can also transform the vector store into a retriever for easier usage in your chains.\n", - "\n", - "- TODO: Edit and then run code cell to generate output" - ] - }, - { - "cell_type": "code", - "execution_count": null, - "id": "f3460093", - "metadata": {}, - "outputs": [], - "source": [ - "retriever = vector_store.as_retriever(search_type=\"mmr\", search_kwargs={\"k\": 1})\n", - "retriever.invoke(\"thud\")" - ] - }, - { - "cell_type": "markdown", - "id": "901c75dc", - "metadata": {}, - "source": [ - "## Usage for retrieval-augmented generation\n", - "\n", - "For guides on how to use this vector store for retrieval-augmented generation (RAG), see the following sections:\n", - "\n", - "- [Tutorials](/docs/tutorials/)\n", - "- [How-to: Question and answer with RAG](https://python.langchain.com/docs/how_to/#qa-with-rag)\n", - "- [Retrieval conceptual docs](https://python.langchain.com/docs/concepts/retrieval/)" - ] - }, - { - "cell_type": "markdown", - "id": "069f1b5f", - "metadata": {}, - "source": [ - "## TODO: Any functionality specific to this vector store\n", - "\n", - "E.g. creating a persistent database to save to your disk, etc." - ] - }, - { - "cell_type": "markdown", - "id": "8a27244f", - "metadata": {}, - "source": [ - "## API reference\n", - "\n", - "For detailed documentation of all __ModuleName__VectorStore features and configurations head to the API reference: https://api.python.langchain.com/en/latest/vectorstores/__module_name__.vectorstores.__ModuleName__VectorStore.html" - ] - } - ], - "metadata": { - "kernelspec": { - "display_name": "Python 3 (ipykernel)", - "language": "python", - "name": "python3" - }, - "language_info": { - "codemirror_mode": { - "name": "ipython", - "version": 3 - }, - "file_extension": ".py", - "mimetype": "text/x-python", - "name": "python", - "nbconvert_exporter": "python", - "pygments_lexer": "ipython3", - "version": "3.10.12" - } - }, - "nbformat": 4, - "nbformat_minor": 5 -} diff --git a/libs/cli/langchain_cli/integration_template/integration_template/__init__.py b/libs/cli/langchain_cli/integration_template/integration_template/__init__.py deleted file mode 100644 index 44bec467eaa..00000000000 --- a/libs/cli/langchain_cli/integration_template/integration_template/__init__.py +++ /dev/null @@ -1,27 +0,0 @@ -from importlib import metadata - -from __module_name__.chat_models import Chat__ModuleName__ -from __module_name__.document_loaders import __ModuleName__Loader -from __module_name__.embeddings import __ModuleName__Embeddings -from __module_name__.retrievers import __ModuleName__Retriever -from __module_name__.toolkits import __ModuleName__Toolkit -from __module_name__.tools import __ModuleName__Tool -from __module_name__.vectorstores import __ModuleName__VectorStore - -try: - __version__ = metadata.version(__package__) -except metadata.PackageNotFoundError: - # Case where package metadata is not available. - __version__ = "" -del metadata # optional, avoids polluting the results of dir(__package__) - -__all__ = [ - "Chat__ModuleName__", - "__ModuleName__VectorStore", - "__ModuleName__Embeddings", - "__ModuleName__Loader", - "__ModuleName__Retriever", - "__ModuleName__Toolkit", - "__ModuleName__Tool", - "__version__", -] diff --git a/libs/cli/langchain_cli/integration_template/integration_template/chat_models.py b/libs/cli/langchain_cli/integration_template/integration_template/chat_models.py deleted file mode 100644 index 740da85137e..00000000000 --- a/libs/cli/langchain_cli/integration_template/integration_template/chat_models.py +++ /dev/null @@ -1,423 +0,0 @@ -"""__ModuleName__ chat models.""" - -from typing import Any, Dict, Iterator, List - -from langchain_core.callbacks import ( - CallbackManagerForLLMRun, -) -from langchain_core.language_models import BaseChatModel -from langchain_core.messages import ( - AIMessage, - AIMessageChunk, - BaseMessage, -) -from langchain_core.messages.ai import UsageMetadata -from langchain_core.outputs import ChatGeneration, ChatGenerationChunk, ChatResult -from pydantic import Field - - -class Chat__ModuleName__(BaseChatModel): - # TODO: Replace all TODOs in docstring. See example docstring: - # https://github.com/langchain-ai/langchain/blob/7ff05357bac6eaedf5058a2af88f23a1817d40fe/libs/partners/openai/langchain_openai/chat_models/base.py#L1120 - """__ModuleName__ chat model integration. - - The default implementation echoes the first `parrot_buffer_length` characters of - the input. - - # TODO: Replace with relevant packages, env vars. - Setup: - Install `__package_name__` and set environment variable - `__MODULE_NAME___API_KEY`. - - ```bash - pip install -U __package_name__ - export __MODULE_NAME___API_KEY="your-api-key" - ``` - - # TODO: Populate with relevant params. - Key init args — completion params: - model: - Name of __ModuleName__ model to use. - temperature: - Sampling temperature. - max_tokens: - Max number of tokens to generate. - - # TODO: Populate with relevant params. - Key init args — client params: - timeout: - Timeout for requests. - max_retries: - Max number of retries. - api_key: - __ModuleName__ API key. If not passed in will be read from env var - __MODULE_NAME___API_KEY. - - See full list of supported init args and their descriptions in the params section. - - # TODO: Replace with relevant init params. - Instantiate: - ```python - from __module_name__ import Chat__ModuleName__ - - model = Chat__ModuleName__( - model="...", - temperature=0, - max_tokens=None, - timeout=None, - max_retries=2, - # api_key="...", - # other params... - ) - ``` - - Invoke: - ```python - messages = [ - ("system", "You are a helpful translator. Translate the user sentence to French."), - ("human", "I love programming."), - ] - model.invoke(messages) - ``` - - ```python - # TODO: Example output. - ``` - - # TODO: Delete if token-level streaming isn't supported. - Stream: - ```python - for chunk in model.stream(messages): - print(chunk.text, end="") - ``` - - ```python - # TODO: Example output. - ``` - - ```python - stream = model.stream(messages) - full = next(stream) - for chunk in stream: - full += chunk - full - ``` - - ```python - # TODO: Example output. - ``` - - # TODO: Delete if native async isn't supported. - Async: - ```python - await model.ainvoke(messages) - - # stream: - # async for chunk in (await model.astream(messages)) - - # batch: - # await model.abatch([messages]) - ``` - - ```python - # TODO: Example output. - ``` - # TODO: Delete if .bind_tools() isn't supported. - Tool calling: - ```python - from pydantic import BaseModel, Field - - class GetWeather(BaseModel): - '''Get the current weather in a given location''' - - location: str = Field(..., description="The city and state, e.g. San Francisco, CA") - - class GetPopulation(BaseModel): - '''Get the current population in a given location''' - - location: str = Field(..., description="The city and state, e.g. San Francisco, CA") - - model_with_tools = model.bind_tools([GetWeather, GetPopulation]) - ai_msg = model_with_tools.invoke("Which city is hotter today and which is bigger: LA or NY?") - ai_msg.tool_calls - ``` - - ```python - # TODO: Example output. - ``` - - See `Chat__ModuleName__.bind_tools()` method for more. - - # TODO: Delete if .with_structured_output() isn't supported. - Structured output: - ```python - from typing import Optional - - from pydantic import BaseModel, Field - - class Joke(BaseModel): - '''Joke to tell user.''' - - setup: str = Field(description="The setup of the joke") - punchline: str = Field(description="The punchline to the joke") - rating: int | None = Field(description="How funny the joke is, from 1 to 10") - - structured_model = model.with_structured_output(Joke) - structured_model.invoke("Tell me a joke about cats") - ``` - - ```python - # TODO: Example output. - ``` - - See `Chat__ModuleName__.with_structured_output()` for more. - - # TODO: Delete if JSON mode response format isn't supported. - JSON mode: - ```python - # TODO: Replace with appropriate bind arg. - json_model = model.bind(response_format={"type": "json_object"}) - ai_msg = json_model.invoke("Return a JSON object with key 'random_ints' and a value of 10 random ints in [0-99]") - ai_msg.content - ``` - - ```python - # TODO: Example output. - ``` - - # TODO: Delete if image inputs aren't supported. - Image input: - ```python - import base64 - import httpx - from langchain_core.messages import HumanMessage - - image_url = "https://upload.wikimedia.org/wikipedia/commons/thumb/d/dd/Gfp-wisconsin-madison-the-nature-boardwalk.jpg/2560px-Gfp-wisconsin-madison-the-nature-boardwalk.jpg" - image_data = base64.b64encode(httpx.get(image_url).content).decode("utf-8") - # TODO: Replace with appropriate message content format. - message = HumanMessage( - content=[ - {"type": "text", "text": "describe the weather in this image"}, - { - "type": "image_url", - "image_url": {"url": f"data:image/jpeg;base64,{image_data}"}, - }, - ], - ) - ai_msg = model.invoke([message]) - ai_msg.content - ``` - - ```python - # TODO: Example output. - ``` - - # TODO: Delete if audio inputs aren't supported. - Audio input: - ```python - # TODO: Example input - ``` - - ```python - # TODO: Example output - ``` - - # TODO: Delete if video inputs aren't supported. - Video input: - ```python - # TODO: Example input - ``` - - ```python - # TODO: Example output - ``` - - # TODO: Delete if token usage metadata isn't supported. - Token usage: - ```python - ai_msg = model.invoke(messages) - ai_msg.usage_metadata - ``` - - ```python - {'input_tokens': 28, 'output_tokens': 5, 'total_tokens': 33} - ``` - - # TODO: Delete if logprobs aren't supported. - Logprobs: - ```python - # TODO: Replace with appropriate bind arg. - logprobs_model = model.bind(logprobs=True) - ai_msg = logprobs_model.invoke(messages) - ai_msg.response_metadata["logprobs"] - ``` - - ```python - # TODO: Example output. - ``` - Response metadata - ```python - ai_msg = model.invoke(messages) - ai_msg.response_metadata - ``` - - ```python - # TODO: Example output. - - ``` - """ # noqa: E501 - - model_name: str = Field(alias="model") - """The name of the model""" - parrot_buffer_length: int - """The number of characters from the last message of the prompt to be echoed.""" - temperature: float | None = None - max_tokens: int | None = None - timeout: int | None = None - stop: list[str] | None = None - max_retries: int = 2 - - @property - def _llm_type(self) -> str: - """Return type of chat model.""" - return "chat-__package_name_short__" - - @property - def _identifying_params(self) -> Dict[str, Any]: - """Return a dictionary of identifying parameters. - - This information is used by the LangChain callback system, which - is used for tracing purposes make it possible to monitor LLMs. - """ - return { - # The model name allows users to specify custom token counting - # rules in LLM monitoring applications (e.g., in LangSmith users - # can provide per token pricing for their model and monitor - # costs for the given LLM.) - "model_name": self.model_name, - } - - def _generate( - self, - messages: List[BaseMessage], - stop: list[str] | None = None, - run_manager: CallbackManagerForLLMRun | None = None, - **kwargs: Any, - ) -> ChatResult: - """Override the _generate method to implement the chat model logic. - - This can be a call to an API, a call to a local model, or any other - implementation that generates a response to the input prompt. - - Args: - messages: the prompt composed of a list of messages. - stop: a list of strings on which the model should stop generating. - If generation stops due to a stop token, the stop token itself - SHOULD BE INCLUDED as part of the output. This is not enforced - across models right now, but it's a good practice to follow since - it makes it much easier to parse the output of the model - downstream and understand why generation stopped. - run_manager: A run manager with callbacks for the LLM. - """ - # Replace this with actual logic to generate a response from a list - # of messages. - last_message = messages[-1] - tokens = last_message.content[: self.parrot_buffer_length] - ct_input_tokens = sum(len(message.content) for message in messages) - ct_output_tokens = len(tokens) - message = AIMessage( - content=tokens, - additional_kwargs={}, # Used to add additional payload to the message - response_metadata={ # Use for response metadata - "time_in_seconds": 3, - "model_name": self.model_name, - }, - usage_metadata={ - "input_tokens": ct_input_tokens, - "output_tokens": ct_output_tokens, - "total_tokens": ct_input_tokens + ct_output_tokens, - }, - ) - ## - - generation = ChatGeneration(message=message) - return ChatResult(generations=[generation]) - - def _stream( - self, - messages: List[BaseMessage], - stop: list[str] | None = None, - run_manager: CallbackManagerForLLMRun | None = None, - **kwargs: Any, - ) -> Iterator[ChatGenerationChunk]: - """Stream the output of the model. - - This method should be implemented if the model can generate output - in a streaming fashion. If the model does not support streaming, - do not implement it. In that case streaming requests will be automatically - handled by the _generate method. - - Args: - messages: the prompt composed of a list of messages. - stop: a list of strings on which the model should stop generating. - If generation stops due to a stop token, the stop token itself - SHOULD BE INCLUDED as part of the output. This is not enforced - across models right now, but it's a good practice to follow since - it makes it much easier to parse the output of the model - downstream and understand why generation stopped. - run_manager: A run manager with callbacks for the LLM. - """ - last_message = messages[-1] - tokens = str(last_message.content[: self.parrot_buffer_length]) - ct_input_tokens = sum(len(message.content) for message in messages) - - for token in tokens: - usage_metadata = UsageMetadata( - { - "input_tokens": ct_input_tokens, - "output_tokens": 1, - "total_tokens": ct_input_tokens + 1, - } - ) - ct_input_tokens = 0 - chunk = ChatGenerationChunk( - message=AIMessageChunk(content=token, usage_metadata=usage_metadata) - ) - - if run_manager: - # This is optional in newer versions of LangChain - # The on_llm_new_token will be called automatically - run_manager.on_llm_new_token(token, chunk=chunk) - - yield chunk - - # Let's add some other information (e.g., response metadata) - chunk = ChatGenerationChunk( - message=AIMessageChunk( - content="", - response_metadata={"time_in_sec": 3, "model_name": self.model_name}, - ) - ) - if run_manager: - # This is optional in newer versions of LangChain - # The on_llm_new_token will be called automatically - run_manager.on_llm_new_token(token, chunk=chunk) - yield chunk - - # TODO: Implement if Chat__ModuleName__ supports async streaming. Otherwise delete. - # async def _astream( - # self, - # messages: List[BaseMessage], - # stop: list[str] | None = None, - # run_manager: AsyncCallbackManagerForLLMRun | None = None, - # **kwargs: Any, - # ) -> AsyncIterator[ChatGenerationChunk]: - - # TODO: Implement if Chat__ModuleName__ supports async generation. Otherwise delete. - # async def _agenerate( - # self, - # messages: List[BaseMessage], - # stop: list[str] | None = None, - # run_manager: AsyncCallbackManagerForLLMRun | None = None, - # **kwargs: Any, - # ) -> ChatResult: diff --git a/libs/cli/langchain_cli/integration_template/integration_template/document_loaders.py b/libs/cli/langchain_cli/integration_template/integration_template/document_loaders.py deleted file mode 100644 index c8be4a8db94..00000000000 --- a/libs/cli/langchain_cli/integration_template/integration_template/document_loaders.py +++ /dev/null @@ -1,74 +0,0 @@ -"""__ModuleName__ document loader.""" - -from typing import Iterator - -from langchain_core.document_loaders.base import BaseLoader -from langchain_core.documents import Document - - -class __ModuleName__Loader(BaseLoader): - # TODO: Replace all TODOs in docstring. See example docstring: - # https://github.com/langchain-ai/langchain/blob/869523ad728e6b76d77f170cce13925b4ebc3c1e/libs/community/langchain_community/document_loaders/recursive_url_loader.py#L54 - """ - __ModuleName__ document loader integration - - # TODO: Replace with relevant packages, env vars. - Setup: - Install `__package_name__` and set environment variable - `__MODULE_NAME___API_KEY`. - - ```bash - pip install -U __package_name__ - export __MODULE_NAME___API_KEY="your-api-key" - ``` - - # TODO: Replace with relevant init params. - Instantiate: - ```python - from langchain_community.document_loaders import __ModuleName__Loader - - loader = __ModuleName__Loader( - # required params = ... - # other params = ... - ) - ``` - - Lazy load: - ```python - docs = [] - docs_lazy = loader.lazy_load() - - # async variant: - # docs_lazy = await loader.alazy_load() - - for doc in docs_lazy: - docs.append(doc) - print(docs[0].page_content[:100]) - print(docs[0].metadata) - ``` - - ```python - TODO: Example output - ``` - - # TODO: Delete if async load is not implemented - Async load: - ```python - docs = await loader.aload() - print(docs[0].page_content[:100]) - print(docs[0].metadata) - ``` - - ```python - TODO: Example output - - ``` - """ - - # TODO: This method must be implemented to load documents. - # Do not implement load(), a default implementation is already available. - def lazy_load(self) -> Iterator[Document]: - raise NotImplementedError() - - # TODO: Implement if you would like to change default BaseLoader implementation - # async def alazy_load(self) -> AsyncIterator[Document]: diff --git a/libs/cli/langchain_cli/integration_template/integration_template/embeddings.py b/libs/cli/langchain_cli/integration_template/integration_template/embeddings.py deleted file mode 100644 index e21c3d2ee9f..00000000000 --- a/libs/cli/langchain_cli/integration_template/integration_template/embeddings.py +++ /dev/null @@ -1,96 +0,0 @@ -from typing import List - -from langchain_core.embeddings import Embeddings - - -class __ModuleName__Embeddings(Embeddings): - """__ModuleName__ embedding model integration. - - # TODO: Replace with relevant packages, env vars. - Setup: - Install `__package_name__` and set environment variable - `__MODULE_NAME___API_KEY`. - - ```bash - pip install -U __package_name__ - export __MODULE_NAME___API_KEY="your-api-key" - ``` - - # TODO: Populate with relevant params. - Key init args — completion params: - model: str - Name of __ModuleName__ model to use. - - See full list of supported init args and their descriptions in the params section. - - # TODO: Replace with relevant init params. - Instantiate: - ```python - from __module_name__ import __ModuleName__Embeddings - - embed = __ModuleName__Embeddings( - model="...", - # api_key="...", - # other params... - ) - ``` - - Embed single text: - ```python - input_text = "The meaning of life is 42" - embed.embed_query(input_text) - ``` - - ```python - # TODO: Example output. - ``` - - # TODO: Delete if token-level streaming isn't supported. - Embed multiple text: - ```python - input_texts = ["Document 1...", "Document 2..."] - embed.embed_documents(input_texts) - ``` - - ```python - # TODO: Example output. - ``` - - # TODO: Delete if native async isn't supported. - Async: - ```python - await embed.aembed_query(input_text) - - # multiple: - # await embed.aembed_documents(input_texts) - ``` - - ```python - # TODO: Example output. - - ``` - """ - - def __init__(self, model: str): - self.model = model - - def embed_documents(self, texts: List[str]) -> List[List[float]]: - """Embed search docs.""" - return [[0.5, 0.6, 0.7] for _ in texts] - - def embed_query(self, text: str) -> List[float]: - """Embed query text.""" - return self.embed_documents([text])[0] - - # optional: add custom async implementations here - # you can also delete these, and the base class will - # use the default implementation, which calls the sync - # version in an async executor: - - # async def aembed_documents(self, texts: List[str]) -> List[List[float]]: - # """Asynchronous Embed search docs.""" - # ... - - # async def aembed_query(self, text: str) -> List[float]: - # """Asynchronous Embed query text.""" - # ... diff --git a/libs/cli/langchain_cli/integration_template/integration_template/py.typed b/libs/cli/langchain_cli/integration_template/integration_template/py.typed deleted file mode 100644 index e69de29bb2d..00000000000 diff --git a/libs/cli/langchain_cli/integration_template/integration_template/retrievers.py b/libs/cli/langchain_cli/integration_template/integration_template/retrievers.py deleted file mode 100644 index d4c6a966bfc..00000000000 --- a/libs/cli/langchain_cli/integration_template/integration_template/retrievers.py +++ /dev/null @@ -1,107 +0,0 @@ -"""__ModuleName__ retrievers.""" - -from typing import Any, List - -from langchain_core.callbacks import CallbackManagerForRetrieverRun -from langchain_core.documents import Document -from langchain_core.retrievers import BaseRetriever - - -class __ModuleName__Retriever(BaseRetriever): - # TODO: Replace all TODOs in docstring. See example docstring: - # https://github.com/langchain-ai/langchain/blob/master/libs/community/langchain_community/retrievers/tavily_search_api.py#L17 - """__ModuleName__ retriever. - - # TODO: Replace with relevant packages, env vars, etc. - Setup: - Install `__package_name__` and set environment variable - `__MODULE_NAME___API_KEY`. - - ```bash - pip install -U __package_name__ - export __MODULE_NAME___API_KEY="your-api-key" - ``` - - # TODO: Populate with relevant params. - Key init args: - arg 1: type - description - arg 2: type - description - - # TODO: Replace with relevant init params. - Instantiate: - ```python - from __package_name__ import __ModuleName__Retriever - - retriever = __ModuleName__Retriever( - # ... - ) - ``` - - Usage: - ```python - query = "..." - - retriever.invoke(query) - ``` - - ```txt - # TODO: Example output. - ``` - - Use within a chain: - ```python - from langchain_core.output_parsers import StrOutputParser - from langchain_core.prompts import ChatPromptTemplate - from langchain_core.runnables import RunnablePassthrough - from langchain_openai import ChatOpenAI - - prompt = ChatPromptTemplate.from_template( - \"\"\"Answer the question based only on the context provided. - - Context: {context} - - Question: {question}\"\"\" - ) - - model = ChatOpenAI(model="gpt-3.5-turbo-0125") - - def format_docs(docs): - return "\\n\\n".join(doc.page_content for doc in docs) - - chain = ( - {"context": retriever | format_docs, "question": RunnablePassthrough()} - | prompt - | model - | StrOutputParser() - ) - - chain.invoke("...") - ``` - - ``` - # TODO: Example output. - ``` - - """ - - k: int = 3 - - # TODO: This method must be implemented to retrieve documents. - def _get_relevant_documents( - self, query: str, *, run_manager: CallbackManagerForRetrieverRun, **kwargs: Any - ) -> List[Document]: - k = kwargs.get("k", self.k) - return [ - Document(page_content=f"Result {i} for query: {query}") for i in range(k) - ] - - # optional: add custom async implementations here - # async def _aget_relevant_documents( - # self, - # query: str, - # *, - # run_manager: AsyncCallbackManagerForRetrieverRun, - # **kwargs: Any, - # ) -> List[Document]: ... diff --git a/libs/cli/langchain_cli/integration_template/integration_template/toolkits.py b/libs/cli/langchain_cli/integration_template/integration_template/toolkits.py deleted file mode 100644 index 370b5d6b6c8..00000000000 --- a/libs/cli/langchain_cli/integration_template/integration_template/toolkits.py +++ /dev/null @@ -1,73 +0,0 @@ -"""__ModuleName__ toolkits.""" - -from typing import List - -from langchain_core.tools import BaseTool, BaseToolkit - - -class __ModuleName__Toolkit(BaseToolkit): - # TODO: Replace all TODOs in docstring. See example docstring: - # https://github.com/langchain-ai/langchain/blob/c123cb2b304f52ab65db4714eeec46af69a861ec/libs/community/langchain_community/agent_toolkits/sql/toolkit.py#L19 - """__ModuleName__ toolkit. - - # TODO: Replace with relevant packages, env vars, etc. - Setup: - Install `__package_name__` and set environment variable - `__MODULE_NAME___API_KEY`. - - ```bash - pip install -U __package_name__ - export __MODULE_NAME___API_KEY="your-api-key" - ``` - - # TODO: Populate with relevant params. - Key init args: - arg 1: type - description - arg 2: type - description - - # TODO: Replace with relevant init params. - Instantiate: - ```python - from __package_name__ import __ModuleName__Toolkit - - toolkit = __ModuleName__Toolkit( - # ... - ) - ``` - - Tools: - ```python - toolkit.get_tools() - ``` - - ```txt - # TODO: Example output. - ``` - - Use within an agent: - ```python - from langgraph.prebuilt import create_react_agent - - agent_executor = create_react_agent(llm, tools) - - example_query = "..." - - events = agent_executor.stream( - {"messages": [("user", example_query)]}, - stream_mode="values", - ) - for event in events: - event["messages"][-1].pretty_print() - ``` - - ```txt - # TODO: Example output. - ``` - - """ - - # TODO: This method must be implemented to list tools. - def get_tools(self) -> List[BaseTool]: - raise NotImplementedError() diff --git a/libs/cli/langchain_cli/integration_template/integration_template/tools.py b/libs/cli/langchain_cli/integration_template/integration_template/tools.py deleted file mode 100644 index 19cc822ddd0..00000000000 --- a/libs/cli/langchain_cli/integration_template/integration_template/tools.py +++ /dev/null @@ -1,95 +0,0 @@ -"""__ModuleName__ tools.""" - -from typing import Type - -from langchain_core.callbacks import ( - CallbackManagerForToolRun, -) -from langchain_core.tools import BaseTool -from pydantic import BaseModel, Field - - -class __ModuleName__ToolInput(BaseModel): - """Input schema for __ModuleName__ tool. - - This docstring is **not** part of what is sent to the model when performing tool - calling. The Field default values and descriptions **are** part of what is sent to - the model when performing tool calling. - """ - - # TODO: Add input args and descriptions. - a: int = Field(..., description="first number to add") - b: int = Field(..., description="second number to add") - - -class __ModuleName__Tool(BaseTool): # type: ignore[override] - """__ModuleName__ tool. - - Setup: - # TODO: Replace with relevant packages, env vars. - Install `__package_name__` and set environment variable - `__MODULE_NAME___API_KEY`. - - ```bash - pip install -U __package_name__ - export __MODULE_NAME___API_KEY="your-api-key" - ``` - - Instantiation: - ```python - tool = __ModuleName__Tool( - # TODO: init params - ) - ``` - - Invocation with args: - ```python - # TODO: invoke args - tool.invoke({...}) - ``` - - ```python - # TODO: output of invocation - ``` - - Invocation with ToolCall: - - ```python - # TODO: invoke args - tool.invoke({"args": {...}, "id": "1", "name": tool.name, "type": "tool_call"}) - ``` - - ```python - # TODO: output of invocation - - ``` - """ # noqa: E501 - - # TODO: Set tool name and description - name: str = "TODO: Tool name" - """The name that is passed to the model when performing tool calling.""" - description: str = "TODO: Tool description." - """The description that is passed to the model when performing tool calling.""" - args_schema: Type[BaseModel] = __ModuleName__ToolInput - """The schema that is passed to the model when performing tool calling.""" - - # TODO: Add any other init params for the tool. - # param1: str | None - # """param1 determines foobar""" - - # TODO: Replaced (a, b) with real tool arguments. - def _run( - self, a: int, b: int, *, run_manager: CallbackManagerForToolRun | None = None - ) -> str: - return str(a + b + 80) - - # TODO: Implement if tool has native async functionality, otherwise delete. - - # async def _arun( - # self, - # a: int, - # b: int, - # *, - # run_manager: AsyncCallbackManagerForToolRun | None = None, - # ) -> str: - # ... diff --git a/libs/cli/langchain_cli/integration_template/integration_template/vectorstores.py b/libs/cli/langchain_cli/integration_template/integration_template/vectorstores.py deleted file mode 100644 index 48dc5980102..00000000000 --- a/libs/cli/langchain_cli/integration_template/integration_template/vectorstores.py +++ /dev/null @@ -1,438 +0,0 @@ -"""__ModuleName__ vector stores.""" - -from __future__ import annotations - -import uuid -from typing import ( - Any, - Callable, - Iterator, - List, - Sequence, - Tuple, - Type, - TypeVar, -) - -from langchain_core.documents import Document -from langchain_core.embeddings import Embeddings -from langchain_core.vectorstores import VectorStore -from langchain_core.vectorstores.utils import _cosine_similarity as cosine_similarity - -VST = TypeVar("VST", bound=VectorStore) - - -class __ModuleName__VectorStore(VectorStore): - # TODO: Replace all TODOs in docstring. - """__ModuleName__ vector store integration. - - # TODO: Replace with relevant packages, env vars. - Setup: - Install `__package_name__` and set environment variable `__MODULE_NAME___API_KEY`. - - ```bash - pip install -U __package_name__ - export __MODULE_NAME___API_KEY="your-api-key" - ``` - - # TODO: Populate with relevant params. - Key init args — indexing params: - collection_name: - Name of the collection. - embedding_function: - Embedding function to use. - - # TODO: Populate with relevant params. - Key init args — client params: - client: - Client to use. - connection_args: - Connection arguments. - - # TODO: Replace with relevant init params. - Instantiate: - ```python - from __module_name__.vectorstores import __ModuleName__VectorStore - from langchain_openai import OpenAIEmbeddings - - vector_store = __ModuleName__VectorStore( - collection_name="foo", - embedding_function=OpenAIEmbeddings(), - connection_args={"uri": "./foo.db"}, - # other params... - ) - ``` - - # TODO: Populate with relevant variables. - Add Documents: - ```python - from langchain_core.documents import Document - - document_1 = Document(page_content="foo", metadata={"baz": "bar"}) - document_2 = Document(page_content="thud", metadata={"bar": "baz"}) - document_3 = Document(page_content="i will be deleted :(") - - documents = [document_1, document_2, document_3] - ids = ["1", "2", "3"] - vector_store.add_documents(documents=documents, ids=ids) - ``` - - # TODO: Populate with relevant variables. - Delete Documents: - ```python - vector_store.delete(ids=["3"]) - ``` - - # TODO: Fill out with relevant variables and example output. - Search: - ```python - results = vector_store.similarity_search(query="thud",k=1) - for doc in results: - print(f"* {doc.page_content} [{doc.metadata}]") - ``` - - ```python - # TODO: Example output - ``` - - # TODO: Fill out with relevant variables and example output. - Search with filter: - ```python - results = vector_store.similarity_search(query="thud",k=1,filter={"bar": "baz"}) - for doc in results: - print(f"* {doc.page_content} [{doc.metadata}]") - ``` - - ```python - # TODO: Example output - ``` - - # TODO: Fill out with relevant variables and example output. - Search with score: - ```python - results = vector_store.similarity_search_with_score(query="qux",k=1) - for doc, score in results: - print(f"* [SIM={score:3f}] {doc.page_content} [{doc.metadata}]") - ``` - - ```python - # TODO: Example output - ``` - - # TODO: Fill out with relevant variables and example output. - Async: - ```python - # add documents - # await vector_store.aadd_documents(documents=documents, ids=ids) - - # delete documents - # await vector_store.adelete(ids=["3"]) - - # search - # results = vector_store.asimilarity_search(query="thud",k=1) - - # search with score - results = await vector_store.asimilarity_search_with_score(query="qux",k=1) - for doc,score in results: - print(f"* [SIM={score:3f}] {doc.page_content} [{doc.metadata}]") - ``` - - ```python - # TODO: Example output - ``` - - # TODO: Fill out with relevant variables and example output. - Use as Retriever: - ```python - retriever = vector_store.as_retriever( - search_type="mmr", - search_kwargs={"k": 1, "fetch_k": 2, "lambda_mult": 0.5}, - ) - retriever.invoke("thud") - ``` - - ```python - # TODO: Example output - - ``` - """ # noqa: E501 - - def __init__(self, embedding: Embeddings) -> None: - """Initialize with the given embedding function. - - Args: - embedding: embedding function to use. - """ - self._database: dict[str, dict[str, Any]] = {} - self.embedding = embedding - - @classmethod - def from_texts( - cls: Type[__ModuleName__VectorStore], - texts: List[str], - embedding: Embeddings, - metadatas: list[dict] | None = None, - **kwargs: Any, - ) -> __ModuleName__VectorStore: - store = cls( - embedding=embedding, - ) - store.add_texts(texts=texts, metadatas=metadatas, **kwargs) - return store - - # optional: add custom async implementations - # @classmethod - # async def afrom_texts( - # cls: Type[VST], - # texts: List[str], - # embedding: Embeddings, - # metadatas: list[dict] | None = None, - # **kwargs: Any, - # ) -> VST: - # return await asyncio.get_running_loop().run_in_executor( - # None, partial(cls.from_texts, **kwargs), texts, embedding, metadatas - # ) - - @property - def embeddings(self) -> Embeddings: - return self.embedding - - def add_documents( - self, - documents: List[Document], - ids: list[str] | None = None, - **kwargs: Any, - ) -> List[str]: - """Add documents to the store.""" - texts = [doc.page_content for doc in documents] - vectors = self.embedding.embed_documents(texts) - - if ids and len(ids) != len(texts): - msg = ( - f"ids must be the same length as texts. " - f"Got {len(ids)} ids and {len(texts)} texts." - ) - raise ValueError(msg) - - id_iterator: Iterator[str | None] = ( - iter(ids) if ids else iter(doc.id for doc in documents) - ) - - ids_ = [] - - for doc, vector in zip(documents, vectors): - doc_id = next(id_iterator) - doc_id_ = doc_id if doc_id else str(uuid.uuid4()) - ids_.append(doc_id_) - self._database[doc_id_] = { - "id": doc_id_, - "vector": vector, - "text": doc.page_content, - "metadata": doc.metadata, - } - - return ids_ - - # optional: add custom async implementations - # async def aadd_documents( - # self, - # documents: List[Document], - # ids: list[str] | None = None, - # **kwargs: Any, - # ) -> List[str]: - # raise NotImplementedError - - def delete(self, ids: list[str] | None = None, **kwargs: Any) -> None: - if ids: - for _id in ids: - self._database.pop(_id, None) - - # optional: add custom async implementations - # async def adelete( - # self, ids: list[str] | None = None, **kwargs: Any - # ) -> None: - # raise NotImplementedError - - def get_by_ids(self, ids: Sequence[str], /) -> list[Document]: - """Get documents by their ids. - - Args: - ids: The ids of the documents to get. - - Returns: - A list of Document objects. - """ - documents = [] - - for doc_id in ids: - doc = self._database.get(doc_id) - if doc: - documents.append( - Document( - id=doc["id"], - page_content=doc["text"], - metadata=doc["metadata"], - ) - ) - return documents - - # optional: add custom async implementations - # async def aget_by_ids(self, ids: Sequence[str], /) -> list[Document]: - # raise NotImplementedError - - # NOTE: the below helper method implements similarity search for in-memory - # storage. It is optional and not a part of the vector store interface. - def _similarity_search_with_score_by_vector( - self, - embedding: List[float], - k: int = 4, - filter: Callable[[Document], bool] | None = None, - **kwargs: Any, - ) -> List[tuple[Document, float, List[float]]]: - # get all docs with fixed order in list - docs = list(self._database.values()) - - if filter is not None: - docs = [ - doc - for doc in docs - if filter(Document(page_content=doc["text"], metadata=doc["metadata"])) - ] - - if not docs: - return [] - - similarity = cosine_similarity([embedding], [doc["vector"] for doc in docs])[0] - - # get the indices ordered by similarity score - top_k_idx = similarity.argsort()[::-1][:k] - - return [ - ( - # Document - Document( - id=doc_dict["id"], - page_content=doc_dict["text"], - metadata=doc_dict["metadata"], - ), - # Score - float(similarity[idx].item()), - # Embedding vector - doc_dict["vector"], - ) - for idx in top_k_idx - # Assign using walrus operator to avoid multiple lookups - if (doc_dict := docs[idx]) - ] - - def similarity_search( - self, query: str, k: int = 4, **kwargs: Any - ) -> List[Document]: - embedding = self.embedding.embed_query(query) - return [ - doc - for doc, _, _ in self._similarity_search_with_score_by_vector( - embedding=embedding, k=k, **kwargs - ) - ] - - # optional: add custom async implementations - # async def asimilarity_search( - # self, query: str, k: int = 4, **kwargs: Any - # ) -> List[Document]: - # # This is a temporary workaround to make the similarity search - # # asynchronous. The proper solution is to make the similarity search - # # asynchronous in the vector store implementations. - # func = partial(self.similarity_search, query, k=k, **kwargs) - # return await asyncio.get_event_loop().run_in_executor(None, func) - - def similarity_search_with_score( - self, query: str, k: int = 4, **kwargs: Any - ) -> List[Tuple[Document, float]]: - embedding = self.embedding.embed_query(query) - return [ - (doc, similarity) - for doc, similarity, _ in self._similarity_search_with_score_by_vector( - embedding=embedding, k=k, **kwargs - ) - ] - - # optional: add custom async implementations - # async def asimilarity_search_with_score( - # self, *args: Any, **kwargs: Any - # ) -> List[Tuple[Document, float]]: - # # This is a temporary workaround to make the similarity search - # # asynchronous. The proper solution is to make the similarity search - # # asynchronous in the vector store implementations. - # func = partial(self.similarity_search_with_score, *args, **kwargs) - # return await asyncio.get_event_loop().run_in_executor(None, func) - - ### ADDITIONAL OPTIONAL SEARCH METHODS BELOW ### - - # def similarity_search_by_vector( - # self, embedding: List[float], k: int = 4, **kwargs: Any - # ) -> List[Document]: - # raise NotImplementedError - - # optional: add custom async implementations - # async def asimilarity_search_by_vector( - # self, embedding: List[float], k: int = 4, **kwargs: Any - # ) -> List[Document]: - # # This is a temporary workaround to make the similarity search - # # asynchronous. The proper solution is to make the similarity search - # # asynchronous in the vector store implementations. - # func = partial(self.similarity_search_by_vector, embedding, k=k, **kwargs) - # return await asyncio.get_event_loop().run_in_executor(None, func) - - # def max_marginal_relevance_search( - # self, - # query: str, - # k: int = 4, - # fetch_k: int = 20, - # lambda_mult: float = 0.5, - # **kwargs: Any, - # ) -> List[Document]: - # raise NotImplementedError - - # optional: add custom async implementations - # async def amax_marginal_relevance_search( - # self, - # query: str, - # k: int = 4, - # fetch_k: int = 20, - # lambda_mult: float = 0.5, - # **kwargs: Any, - # ) -> List[Document]: - # # This is a temporary workaround to make the similarity search - # # asynchronous. The proper solution is to make the similarity search - # # asynchronous in the vector store implementations. - # func = partial( - # self.max_marginal_relevance_search, - # query, - # k=k, - # fetch_k=fetch_k, - # lambda_mult=lambda_mult, - # **kwargs, - # ) - # return await asyncio.get_event_loop().run_in_executor(None, func) - - # def max_marginal_relevance_search_by_vector( - # self, - # embedding: List[float], - # k: int = 4, - # fetch_k: int = 20, - # lambda_mult: float = 0.5, - # **kwargs: Any, - # ) -> List[Document]: - # raise NotImplementedError - - # optional: add custom async implementations - # async def amax_marginal_relevance_search_by_vector( - # self, - # embedding: List[float], - # k: int = 4, - # fetch_k: int = 20, - # lambda_mult: float = 0.5, - # **kwargs: Any, - # ) -> List[Document]: - # raise NotImplementedError diff --git a/libs/cli/langchain_cli/integration_template/pyproject.toml b/libs/cli/langchain_cli/integration_template/pyproject.toml deleted file mode 100644 index 0dc31ee0f5f..00000000000 --- a/libs/cli/langchain_cli/integration_template/pyproject.toml +++ /dev/null @@ -1,53 +0,0 @@ -[build-system] -requires = ["pdm-backend"] -build-backend = "pdm.backend" - -[project] -name = "__package_name__" -version = "0.1.0" -description = "An integration package connecting __ModuleName__ and LangChain" -authors = [] -readme = "README.md" -license = "MIT" -requires-python = ">=3.10.0,<4.0.0" -dependencies = [ - "langchain-core>=0.3.15", -] - -[project.urls] -"Source Code" = "https://github.com/langchain-ai/langchain/tree/master/libs/partners/__package_name_short__" -"Release Notes" = "https://github.com/langchain-ai/langchain/releases?q=tag%3A%22__package_name_short__%3D%3D0%22&expanded=true" -"Repository" = "https://github.com/langchain-ai/langchain" - -[tool.mypy] -disallow_untyped_defs = "True" - -[tool.uv] -dev-dependencies = [ - "pytest>=7.4.3", - "pytest-asyncio>=0.23.2", - "pytest-socket>=0.7.0", - "pytest-watcher>=0.3.4", - "langchain-tests>=0.3.5", - "ruff>=0.5", - "mypy>=1.10", -] - -[tool.ruff.lint] -select = ["E", "F", "I", "T201"] - -[tool.ruff.lint.flake8-tidy-imports] -ban-relative-imports = "all" - -[tool.ruff.lint.per-file-ignores] -"docs/**" = [ "ALL",] - -[tool.coverage.run] -omit = ["tests/*"] - -[tool.pytest.ini_options] -addopts = "--strict-markers --strict-config --durations=5" -markers = [ - "compile: mark placeholder test used to compile integration tests without running them", -] -asyncio_mode = "auto" diff --git a/libs/cli/langchain_cli/integration_template/scripts/check_imports.py b/libs/cli/langchain_cli/integration_template/scripts/check_imports.py deleted file mode 100644 index 58a460c1493..00000000000 --- a/libs/cli/langchain_cli/integration_template/scripts/check_imports.py +++ /dev/null @@ -1,17 +0,0 @@ -import sys -import traceback -from importlib.machinery import SourceFileLoader - -if __name__ == "__main__": - files = sys.argv[1:] - has_failure = False - for file in files: - try: - SourceFileLoader("x", file).load_module() - except Exception: - has_failure = True - print(file) # noqa: T201 - traceback.print_exc() - print() # noqa: T201 - - sys.exit(1 if has_failure else 0) diff --git a/libs/cli/langchain_cli/integration_template/scripts/lint_imports.sh b/libs/cli/langchain_cli/integration_template/scripts/lint_imports.sh deleted file mode 100755 index 19ccec1480c..00000000000 --- a/libs/cli/langchain_cli/integration_template/scripts/lint_imports.sh +++ /dev/null @@ -1,18 +0,0 @@ -#!/bin/bash - -set -eu - -# Initialize a variable to keep track of errors -errors=0 - -# make sure not importing from langchain, langchain_experimental, or langchain_community -git --no-pager grep '^from langchain\.' . && errors=$((errors+1)) -git --no-pager grep '^from langchain_experimental\.' . && errors=$((errors+1)) -git --no-pager grep '^from langchain_community\.' . && errors=$((errors+1)) - -# Decide on an exit status based on the errors -if [ "$errors" -gt 0 ]; then - exit 1 -else - exit 0 -fi diff --git a/libs/cli/langchain_cli/integration_template/tests/__init__.py b/libs/cli/langchain_cli/integration_template/tests/__init__.py deleted file mode 100644 index e69de29bb2d..00000000000 diff --git a/libs/cli/langchain_cli/integration_template/tests/integration_tests/__init__.py b/libs/cli/langchain_cli/integration_template/tests/integration_tests/__init__.py deleted file mode 100644 index e69de29bb2d..00000000000 diff --git a/libs/cli/langchain_cli/integration_template/tests/integration_tests/test_chat_models.py b/libs/cli/langchain_cli/integration_template/tests/integration_tests/test_chat_models.py deleted file mode 100644 index c84dafa973a..00000000000 --- a/libs/cli/langchain_cli/integration_template/tests/integration_tests/test_chat_models.py +++ /dev/null @@ -1,21 +0,0 @@ -"""Test Chat__ModuleName__ chat model.""" - -from typing import Type - -from __module_name__.chat_models import Chat__ModuleName__ -from langchain_tests.integration_tests import ChatModelIntegrationTests - - -class TestChatParrotLinkIntegration(ChatModelIntegrationTests): - @property - def chat_model_class(self) -> Type[Chat__ModuleName__]: - return Chat__ModuleName__ - - @property - def chat_model_params(self) -> dict: - # These should be parameters used to initialize your integration for testing - return { - "model": "bird-brain-001", - "temperature": 0, - "parrot_buffer_length": 50, - } diff --git a/libs/cli/langchain_cli/integration_template/tests/integration_tests/test_compile.py b/libs/cli/langchain_cli/integration_template/tests/integration_tests/test_compile.py deleted file mode 100644 index 33ecccdfa0f..00000000000 --- a/libs/cli/langchain_cli/integration_template/tests/integration_tests/test_compile.py +++ /dev/null @@ -1,7 +0,0 @@ -import pytest - - -@pytest.mark.compile -def test_placeholder() -> None: - """Used for compiling integration tests without running any real tests.""" - pass diff --git a/libs/cli/langchain_cli/integration_template/tests/integration_tests/test_embeddings.py b/libs/cli/langchain_cli/integration_template/tests/integration_tests/test_embeddings.py deleted file mode 100644 index f7bd526d04b..00000000000 --- a/libs/cli/langchain_cli/integration_template/tests/integration_tests/test_embeddings.py +++ /dev/null @@ -1,16 +0,0 @@ -"""Test __ModuleName__ embeddings.""" - -from typing import Type - -from __module_name__.embeddings import __ModuleName__Embeddings -from langchain_tests.integration_tests import EmbeddingsIntegrationTests - - -class TestParrotLinkEmbeddingsIntegration(EmbeddingsIntegrationTests): - @property - def embeddings_class(self) -> Type[__ModuleName__Embeddings]: - return __ModuleName__Embeddings - - @property - def embedding_model_params(self) -> dict: - return {"model": "nest-embed-001"} diff --git a/libs/cli/langchain_cli/integration_template/tests/integration_tests/test_retrievers.py b/libs/cli/langchain_cli/integration_template/tests/integration_tests/test_retrievers.py deleted file mode 100644 index fdcdc98757d..00000000000 --- a/libs/cli/langchain_cli/integration_template/tests/integration_tests/test_retrievers.py +++ /dev/null @@ -1,22 +0,0 @@ -from typing import Type - -from __module_name__.retrievers import __ModuleName__Retriever -from langchain_tests.integration_tests import ( - RetrieversIntegrationTests, -) - - -class Test__ModuleName__Retriever(RetrieversIntegrationTests): - @property - def retriever_constructor(self) -> Type[__ModuleName__Retriever]: - """Get an empty vectorstore for unit tests.""" - return __ModuleName__Retriever - - @property - def retriever_constructor_params(self) -> dict: - return {"k": 2} - - @property - def retriever_query_example(self) -> str: - """Returns a str representing the "query" of an example retriever call.""" - return "example query" diff --git a/libs/cli/langchain_cli/integration_template/tests/integration_tests/test_tools.py b/libs/cli/langchain_cli/integration_template/tests/integration_tests/test_tools.py deleted file mode 100644 index 7861b52ae0b..00000000000 --- a/libs/cli/langchain_cli/integration_template/tests/integration_tests/test_tools.py +++ /dev/null @@ -1,27 +0,0 @@ -from typing import Type - -from __module_name__.tools import __ModuleName__Tool -from langchain_tests.integration_tests import ToolsIntegrationTests - - -class TestParrotMultiplyToolIntegration(ToolsIntegrationTests): - @property - def tool_constructor(self) -> Type[__ModuleName__Tool]: - return __ModuleName__Tool - - @property - def tool_constructor_params(self) -> dict: - # if your tool constructor instead required initialization arguments like - # `def __init__(self, some_arg: int):`, you would return those here - # as a dictionary, e.g.: `return {'some_arg': 42}` - return {} - - @property - def tool_invoke_params_example(self) -> dict: - """ - Returns a dictionary representing the "args" of an example tool call. - - This should NOT be a ToolCall dict - i.e. it should not have - `{"name", "id", "args"}` keys. - """ - return {"a": 2, "b": 3} diff --git a/libs/cli/langchain_cli/integration_template/tests/integration_tests/test_vectorstores.py b/libs/cli/langchain_cli/integration_template/tests/integration_tests/test_vectorstores.py deleted file mode 100644 index d7c71f662d9..00000000000 --- a/libs/cli/langchain_cli/integration_template/tests/integration_tests/test_vectorstores.py +++ /dev/null @@ -1,20 +0,0 @@ -from typing import Generator - -import pytest -from __module_name__.vectorstores import __ModuleName__VectorStore -from langchain_core.vectorstores import VectorStore -from langchain_tests.integration_tests import VectorStoreIntegrationTests - - -class Test__ModuleName__VectorStore(VectorStoreIntegrationTests): - @pytest.fixture() - def vectorstore(self) -> Generator[VectorStore, None, None]: # type: ignore - """Get an empty vectorstore for unit tests.""" - store = __ModuleName__VectorStore(self.get_embeddings()) - # note: store should be EMPTY at this point - # if you need to delete data, you may do so here - try: - yield store - finally: - # cleanup operations, or deleting data - pass diff --git a/libs/cli/langchain_cli/integration_template/tests/unit_tests/__init__.py b/libs/cli/langchain_cli/integration_template/tests/unit_tests/__init__.py deleted file mode 100644 index e69de29bb2d..00000000000 diff --git a/libs/cli/langchain_cli/integration_template/tests/unit_tests/test_chat_models.py b/libs/cli/langchain_cli/integration_template/tests/unit_tests/test_chat_models.py deleted file mode 100644 index c83081a4479..00000000000 --- a/libs/cli/langchain_cli/integration_template/tests/unit_tests/test_chat_models.py +++ /dev/null @@ -1,21 +0,0 @@ -"""Test chat model integration.""" - -from typing import Type - -from __module_name__.chat_models import Chat__ModuleName__ -from langchain_tests.unit_tests import ChatModelUnitTests - - -class TestChat__ModuleName__Unit(ChatModelUnitTests): - @property - def chat_model_class(self) -> Type[Chat__ModuleName__]: - return Chat__ModuleName__ - - @property - def chat_model_params(self) -> dict: - # These should be parameters used to initialize your integration for testing - return { - "model": "bird-brain-001", - "temperature": 0, - "parrot_buffer_length": 50, - } diff --git a/libs/cli/langchain_cli/integration_template/tests/unit_tests/test_embeddings.py b/libs/cli/langchain_cli/integration_template/tests/unit_tests/test_embeddings.py deleted file mode 100644 index 5fdf8feb083..00000000000 --- a/libs/cli/langchain_cli/integration_template/tests/unit_tests/test_embeddings.py +++ /dev/null @@ -1,16 +0,0 @@ -"""Test embedding model integration.""" - -from typing import Type - -from __module_name__.embeddings import __ModuleName__Embeddings -from langchain_tests.unit_tests import EmbeddingsUnitTests - - -class TestParrotLinkEmbeddingsUnit(EmbeddingsUnitTests): - @property - def embeddings_class(self) -> Type[__ModuleName__Embeddings]: - return __ModuleName__Embeddings - - @property - def embedding_model_params(self) -> dict: - return {"model": "nest-embed-001"} diff --git a/libs/cli/langchain_cli/integration_template/tests/unit_tests/test_tools.py b/libs/cli/langchain_cli/integration_template/tests/unit_tests/test_tools.py deleted file mode 100644 index 4512eaba2ec..00000000000 --- a/libs/cli/langchain_cli/integration_template/tests/unit_tests/test_tools.py +++ /dev/null @@ -1,27 +0,0 @@ -from typing import Type - -from __module_name__.tools import __ModuleName__Tool -from langchain_tests.unit_tests import ToolsUnitTests - - -class TestParrotMultiplyToolUnit(ToolsUnitTests): - @property - def tool_constructor(self) -> Type[__ModuleName__Tool]: - return __ModuleName__Tool - - @property - def tool_constructor_params(self) -> dict: - # If your tool constructor instead required initialization arguments like - # `def __init__(self, some_arg: int):`, you would return those here - # as a dictionary, e.g.: `return {'some_arg': 42}` - return {} - - @property - def tool_invoke_params_example(self) -> dict: - """ - Returns a dictionary representing the "args" of an example tool call. - - This should NOT be a ToolCall dict - i.e. it should not have - `{"name", "id", "args"}` keys. - """ - return {"a": 2, "b": 3} diff --git a/libs/cli/langchain_cli/namespaces/__init__.py b/libs/cli/langchain_cli/namespaces/__init__.py deleted file mode 100644 index 2f025105fe7..00000000000 --- a/libs/cli/langchain_cli/namespaces/__init__.py +++ /dev/null @@ -1 +0,0 @@ -"""Namespaces.""" diff --git a/libs/cli/langchain_cli/namespaces/app.py b/libs/cli/langchain_cli/namespaces/app.py deleted file mode 100644 index 54170bed14d..00000000000 --- a/libs/cli/langchain_cli/namespaces/app.py +++ /dev/null @@ -1,371 +0,0 @@ -"""Manage LangChain apps.""" - -import shutil -import subprocess -import sys -import warnings -from pathlib import Path -from typing import Annotated - -import typer -import uvicorn - -from langchain_cli.utils.events import create_events -from langchain_cli.utils.git import ( - DependencySource, - copy_repo, - parse_dependencies, - update_repo, -) -from langchain_cli.utils.packages import ( - LangServeExport, - get_langserve_export, - get_package_root, -) -from langchain_cli.utils.pyproject import ( - add_dependencies_to_pyproject_toml, - remove_dependencies_from_pyproject_toml, -) - -REPO_DIR = Path(typer.get_app_dir("langchain")) / "git_repos" - -app_cli = typer.Typer(no_args_is_help=True, add_completion=False) - - -@app_cli.command() -def new( - name: Annotated[ - str | None, - typer.Argument( - help="The name of the folder to create", - ), - ] = None, - *, - package: Annotated[ - list[str] | None, - typer.Option(help="Packages to seed the project with"), - ] = None, - pip: Annotated[ - bool | None, - typer.Option( - "--pip/--no-pip", - help="Pip install the template(s) as editable dependencies", - ), - ] = None, - noninteractive: Annotated[ - bool, - typer.Option( - "--non-interactive/--interactive", - help="Don't prompt for any input", - ), - ] = False, -) -> None: - """Create a new LangServe application.""" - has_packages = package is not None and len(package) > 0 - - if noninteractive: - if name is None: - msg = "name is required when --non-interactive is set" - raise typer.BadParameter(msg) - name_str = name - pip_bool = bool(pip) # None should be false - else: - name_str = name or typer.prompt("What folder would you like to create?") - if not has_packages: - package = [] - package_prompt = "What package would you like to add? (leave blank to skip)" - while True: - package_str = typer.prompt( - package_prompt, - default="", - show_default=False, - ) - if not package_str: - break - package.append(package_str) - package_prompt = ( - f"{len(package)} added. Any more packages (leave blank to end)?" - ) - - has_packages = len(package) > 0 - - pip_bool = False - if pip is None and has_packages: - pip_bool = typer.confirm( - "Would you like to install these templates into your environment " - "with pip?", - default=False, - ) - # copy over template from ../project_template - project_template_dir = Path(__file__).parents[1] / "project_template" - destination_dir = Path.cwd() / name_str if name_str != "." else Path.cwd() - app_name = name_str if name_str != "." else Path.cwd().name - shutil.copytree(project_template_dir, destination_dir, dirs_exist_ok=name == ".") - - readme = destination_dir / "README.md" - readme_contents = readme.read_text() - readme.write_text(readme_contents.replace("__app_name__", app_name)) - - pyproject = destination_dir / "pyproject.toml" - pyproject_contents = pyproject.read_text() - pyproject.write_text(pyproject_contents.replace("__app_name__", app_name)) - - # add packages if specified - if has_packages: - add(package, project_dir=destination_dir, pip=pip_bool) - - typer.echo(f'\n\nSuccess! Created a new LangChain app under "./{app_name}"!\n\n') - typer.echo("Next, enter your new app directory by running:\n") - typer.echo(f" cd ./{app_name}\n") - typer.echo("Then add templates with commands like:\n") - typer.echo(" langchain app add extraction-openai-functions") - typer.echo( - " langchain app add git+ssh://git@github.com/efriis/simple-pirate.git\n\n", - ) - - -@app_cli.command() -def add( - dependencies: Annotated[ - list[str] | None, - typer.Argument(help="The dependency to add"), - ] = None, - *, - api_path: Annotated[ - list[str] | None, - typer.Option(help="API paths to add"), - ] = None, - project_dir: Annotated[ - Path | None, - typer.Option(help="The project directory"), - ] = None, - repo: Annotated[ - list[str] | None, - typer.Option(help="Install templates from a specific github repo instead"), - ] = None, - branch: Annotated[ - list[str] | None, - typer.Option(help="Install templates from a specific branch"), - ] = None, - pip: Annotated[ - bool, - typer.Option( - "--pip/--no-pip", - help="Pip install the template(s) as editable dependencies", - prompt="Would you like to `pip install -e` the template(s)?", - ), - ], -) -> None: - """Add the specified template to the current LangServe app. - - e.g.: - `langchain app add extraction-openai-functions` - `langchain app add git+ssh://git@github.com/efriis/simple-pirate.git` - """ - if branch is None: - branch = [] - if repo is None: - repo = [] - if api_path is None: - api_path = [] - if not branch and not repo: - warnings.warn( - "Adding templates from the default branch and repo is deprecated." - " At a minimum, you will have to add `--branch v0.2` for this to work", - stacklevel=2, - ) - - parsed_deps = parse_dependencies(dependencies, repo, branch, api_path) - - project_root = get_package_root(project_dir) - - package_dir = project_root / "packages" - - create_events( - [{"event": "serve add", "properties": {"parsed_dep": d}} for d in parsed_deps], - ) - - # group by repo/ref - grouped: dict[tuple[str, str | None], list[DependencySource]] = {} - for dep in parsed_deps: - key_tup = (dep["git"], dep["ref"]) - lst = grouped.get(key_tup, []) - lst.append(dep) - grouped[key_tup] = lst - - installed_destination_paths: list[Path] = [] - installed_destination_names: list[str] = [] - installed_exports: list[LangServeExport] = [] - - for (git, ref), group_deps in grouped.items(): - if len(group_deps) == 1: - typer.echo(f"Adding {git}@{ref}...") - else: - typer.echo(f"Adding {len(group_deps)} templates from {git}@{ref}") - source_repo_path = update_repo(git, ref, REPO_DIR) - - for dep in group_deps: - source_path = ( - source_repo_path / dep["subdirectory"] - if dep["subdirectory"] - else source_repo_path - ) - pyproject_path = source_path / "pyproject.toml" - if not pyproject_path.exists(): - typer.echo(f"Could not find {pyproject_path}") - continue - langserve_export = get_langserve_export(pyproject_path) - - # default path to package_name - inner_api_path = dep["api_path"] or langserve_export["package_name"] - - destination_path = package_dir / inner_api_path - if destination_path.exists(): - typer.echo( - f"Folder {inner_api_path} already exists. Skipping...", - ) - continue - copy_repo(source_path, destination_path) - typer.echo(f" - Downloaded {dep['subdirectory']} to {inner_api_path}") - installed_destination_paths.append(destination_path) - installed_destination_names.append(inner_api_path) - installed_exports.append(langserve_export) - - if len(installed_destination_paths) == 0: - typer.echo("No packages installed. Exiting.") - return - - try: - add_dependencies_to_pyproject_toml( - project_root / "pyproject.toml", - zip(installed_destination_names, installed_destination_paths, strict=False), - ) - except Exception: - # Can fail if user modified/removed pyproject.toml - typer.echo("Failed to add dependencies to pyproject.toml, continuing...") - - try: - cwd = Path.cwd() - installed_destination_strs = [ - str(p.relative_to(cwd)) for p in installed_destination_paths - ] - except ValueError: - # Can fail if the cwd is not a parent of the package - typer.echo("Failed to print install command, continuing...") - else: - if pip: - cmd = ["pip", "install", "-e", *installed_destination_strs] - cmd_str = " \\\n ".join(installed_destination_strs) - typer.echo(f"Running: pip install -e \\\n {cmd_str}") - subprocess.run(cmd, cwd=cwd, check=True) # noqa: S603 - - chain_names = [] - for e in installed_exports: - original_candidate = f"{e['package_name'].replace('-', '_')}_chain" - candidate = original_candidate - i = 2 - while candidate in chain_names: - candidate = original_candidate + "_" + str(i) - i += 1 - chain_names.append(candidate) - - api_paths = [ - str(Path("/") / path.relative_to(package_dir)) - for path in installed_destination_paths - ] - - imports = [ - f"from {e['module']} import {e['attr']} as {name}" - for e, name in zip(installed_exports, chain_names, strict=False) - ] - routes = [ - f'add_routes(app, {name}, path="{path}")' - for name, path in zip(chain_names, api_paths, strict=False) - ] - - t = ( - "this template" - if len(chain_names) == 1 - else f"these {len(chain_names)} templates" - ) - lines = [ - "", - f"To use {t}, add the following to your app:\n\n```", - "", - *imports, - "", - *routes, - "```", - ] - typer.echo("\n".join(lines)) - - -@app_cli.command() -def remove( - api_paths: Annotated[list[str], typer.Argument(help="The API paths to remove")], - *, - project_dir: Annotated[ - Path | None, - typer.Option(help="The project directory"), - ] = None, -) -> None: - """Remove the specified package from the current LangServe app.""" - project_root = get_package_root(project_dir) - - project_pyproject = project_root / "pyproject.toml" - - package_root = project_root / "packages" - - remove_deps: list[str] = [] - - for api_path in api_paths: - package_dir = package_root / api_path - if not package_dir.exists(): - typer.echo(f"Package {api_path} does not exist. Skipping...") - continue - try: - pyproject = package_dir / "pyproject.toml" - langserve_export = get_langserve_export(pyproject) - typer.echo(f"Removing {langserve_export['package_name']}...") - - shutil.rmtree(package_dir) - remove_deps.append(api_path) - except OSError as exc: - typer.echo(f"Failed to remove {api_path}: {exc}") - - try: - remove_dependencies_from_pyproject_toml(project_pyproject, remove_deps) - except Exception: - # Can fail if user modified/removed pyproject.toml - typer.echo("Failed to remove dependencies from pyproject.toml.") - - -@app_cli.command() -def serve( - *, - port: Annotated[ - int | None, - typer.Option(help="The port to run the server on"), - ] = None, - host: Annotated[ - str | None, - typer.Option(help="The host to run the server on"), - ] = None, - app: Annotated[ - str | None, - typer.Option(help="The app to run, e.g. `app.server:app`"), - ] = None, -) -> None: - """Start the LangServe app.""" - # add current dir as first entry of path - sys.path.append(str(Path.cwd())) - - app_str = app if app is not None else "app.server:app" - host_str = host if host is not None else "127.0.0.1" - - uvicorn.run( - app_str, - host=host_str, - port=port if port is not None else 8000, - reload=True, - ) diff --git a/libs/cli/langchain_cli/namespaces/integration.py b/libs/cli/langchain_cli/namespaces/integration.py deleted file mode 100644 index 89804be170e..00000000000 --- a/libs/cli/langchain_cli/namespaces/integration.py +++ /dev/null @@ -1,260 +0,0 @@ -"""Develop integration packages for LangChain.""" - -import os -import re -import shutil -import subprocess -from pathlib import Path -from typing import Annotated, cast - -import typer -from typing_extensions import TypedDict - -from langchain_cli.utils.find_replace import replace_file, replace_glob - -integration_cli = typer.Typer(no_args_is_help=True, add_completion=False) - - -class Replacements(TypedDict): - """Replacements.""" - - __package_name__: str - __module_name__: str - __ModuleName__: str - __MODULE_NAME__: str - __package_name_short__: str - __package_name_short_snake__: str - - -def _process_name(name: str, *, community: bool = False) -> Replacements: - preprocessed = name.replace("_", "-").lower() - - preprocessed = preprocessed.removeprefix("langchain-") - - if not re.match(r"^[a-z][a-z0-9-]*$", preprocessed): - msg = ( - "Name should only contain lowercase letters (a-z), numbers, and hyphens" - ", and start with a letter." - ) - raise ValueError(msg) - if preprocessed.endswith("-"): - msg = "Name should not end with `-`." - raise ValueError(msg) - if preprocessed.find("--") != -1: - msg = "Name should not contain consecutive hyphens." - raise ValueError(msg) - replacements: Replacements = { - "__package_name__": f"langchain-{preprocessed}", - "__module_name__": "langchain_" + preprocessed.replace("-", "_"), - "__ModuleName__": preprocessed.title().replace("-", ""), - "__MODULE_NAME__": preprocessed.upper().replace("-", ""), - "__package_name_short__": preprocessed, - "__package_name_short_snake__": preprocessed.replace("-", "_"), - } - if community: - replacements["__module_name__"] = preprocessed.replace("-", "_") - return replacements - - -@integration_cli.command() -def new( - name: Annotated[ - str, - typer.Option( - help="The name of the integration to create (e.g. `my-integration`)", - prompt="The name of the integration to create (e.g. `my-integration`)", - ), - ], - name_class: Annotated[ - str | None, - typer.Option( - help="The name of the integration in PascalCase. e.g. `MyIntegration`." - " This is used to name classes like `MyIntegrationVectorStore`", - ), - ] = None, - src: Annotated[ - list[str] | None, - typer.Option( - help="The name of the single template file to copy." - " e.g. `--src integration_template/chat_models.py " - "--dst my_integration/chat_models.py`. Can be used multiple times.", - ), - ] = None, - dst: Annotated[ - list[str] | None, - typer.Option( - help="The relative path to the integration package to place the new file in" - ". e.g. `my-integration/my_integration.py`", - ), - ] = None, -) -> None: - """Create a new integration package.""" - try: - replacements = _process_name(name) - except ValueError as e: - typer.echo(e) - raise typer.Exit(code=1) from None - - if name_class: - if not re.match(r"^[A-Z][a-zA-Z0-9]*$", name_class): - typer.echo( - "Name should only contain letters (a-z, A-Z), numbers, and underscores" - ", and start with a capital letter.", - ) - raise typer.Exit(code=1) - replacements["__ModuleName__"] = name_class - else: - replacements["__ModuleName__"] = typer.prompt( - "Name of integration in PascalCase", - default=replacements["__ModuleName__"], - ) - - project_template_dir = Path(__file__).parents[1] / "integration_template" - destination_dir = Path.cwd() / replacements["__package_name__"] - if not src and not dst: - if destination_dir.exists(): - typer.echo(f"Folder {destination_dir} exists.") - raise typer.Exit(code=1) - - # Copy over template from ../integration_template - shutil.copytree(project_template_dir, destination_dir, dirs_exist_ok=False) - - # Folder movement - package_dir = destination_dir / replacements["__module_name__"] - shutil.move(destination_dir / "integration_template", package_dir) - - # Replacements in files - replace_glob(destination_dir, "**/*", cast("dict[str, str]", replacements)) - - # Dependency install - try: - # Use --no-progress to avoid tty issues in CI/test environments - env = os.environ.copy() - env.pop("UV_FROZEN", None) - env.pop("VIRTUAL_ENV", None) - subprocess.run( - ["uv", "sync", "--dev", "--no-progress"], # noqa: S607 - cwd=destination_dir, - check=True, - env=env, - ) - except FileNotFoundError: - typer.echo( - "uv is not installed. Skipping dependency installation; run " - "`uv sync --dev` manually if needed.", - ) - except subprocess.CalledProcessError: - typer.echo( - "Failed to install dependencies. You may need to run " - "`uv sync --dev` manually in the package directory.", - ) - else: - # Confirm src and dst are the same length - if not src: - typer.echo("Cannot provide --dst without --src.") - raise typer.Exit(code=1) - src_paths = [project_template_dir / p for p in src] - if dst and len(src) != len(dst): - typer.echo("Number of --src and --dst arguments must match.") - raise typer.Exit(code=1) - if not dst: - # Assume we're in a package dir, copy to equivalent path - dst_paths = [destination_dir / p for p in src] - else: - dst_paths = [Path.cwd() / p for p in dst] - dst_paths = [ - p / f"{replacements['__package_name_short_snake__']}.ipynb" - if not p.suffix - else p - for p in dst_paths - ] - - # Confirm no duplicate dst_paths - if len(dst_paths) != len(set(dst_paths)): - typer.echo( - "Duplicate destination paths provided or computed - please " - "specify them explicitly with --dst.", - ) - raise typer.Exit(code=1) - - # Confirm no files exist at dst_paths - for dst_path in dst_paths: - if dst_path.exists(): - typer.echo(f"File {dst_path} exists.") - raise typer.Exit(code=1) - - for src_path, dst_path in zip(src_paths, dst_paths, strict=False): - shutil.copy(src_path, dst_path) - replace_file(dst_path, cast("dict[str, str]", replacements)) - - -TEMPLATE_MAP: dict[str, str] = { - "ChatModel": "chat.ipynb", - "DocumentLoader": "document_loaders.ipynb", - "Tool": "tools.ipynb", - "VectorStore": "vectorstores.ipynb", - "Embeddings": "text_embedding.ipynb", - "ByteStore": "kv_store.ipynb", - "LLM": "llms.ipynb", - "Provider": "provider.ipynb", - "Toolkit": "toolkits.ipynb", - "Retriever": "retrievers.ipynb", -} - -_component_types_str = ", ".join(f"`{k}`" for k in TEMPLATE_MAP) - - -@integration_cli.command() -def create_doc( - name: Annotated[ - str, - typer.Option( - help=( - "The kebab-case name of the integration (e.g. `openai`, " - "`google-vertexai`). Do not include a 'langchain-' prefix." - ), - prompt=( - "The kebab-case name of the integration (e.g. `openai`, " - "`google-vertexai`). Do not include a 'langchain-' prefix." - ), - ), - ], - name_class: Annotated[ - str | None, - typer.Option( - help=( - "The PascalCase name of the integration (e.g. `OpenAI`, " - "`VertexAI`). Do not include a 'Chat', 'VectorStore', etc. " - "prefix/suffix." - ), - ), - ] = None, - component_type: Annotated[ - str, - typer.Option( - help=( - f"The type of component. Currently supported: {_component_types_str}." - ), - ), - ] = "ChatModel", - destination_dir: Annotated[ - str, - typer.Option( - help="The relative path to the docs directory to place the new file in.", - prompt="The relative path to the docs directory to place the new file in.", - ), - ] = "docs/docs/integrations/chat/", -) -> None: - """Create a new integration doc.""" - if component_type not in TEMPLATE_MAP: - typer.echo( - f"Unrecognized {component_type=}. Expected one of {_component_types_str}.", - ) - raise typer.Exit(code=1) - - new( - name=name, - name_class=name_class, - src=[f"docs/{TEMPLATE_MAP[component_type]}"], - dst=[destination_dir], - ) diff --git a/libs/cli/langchain_cli/namespaces/migrate/.grit/.gitignore b/libs/cli/langchain_cli/namespaces/migrate/.grit/.gitignore deleted file mode 100644 index e4fdfb17c16..00000000000 --- a/libs/cli/langchain_cli/namespaces/migrate/.grit/.gitignore +++ /dev/null @@ -1,2 +0,0 @@ -.gritmodules* -*.log diff --git a/libs/cli/langchain_cli/namespaces/migrate/.grit/grit.yaml b/libs/cli/langchain_cli/namespaces/migrate/.grit/grit.yaml deleted file mode 100644 index c93f16d6ecd..00000000000 --- a/libs/cli/langchain_cli/namespaces/migrate/.grit/grit.yaml +++ /dev/null @@ -1,3 +0,0 @@ -version: 0.0.1 -patterns: - - name: github.com/getgrit/stdlib#* diff --git a/libs/cli/langchain_cli/namespaces/migrate/.grit/patterns/_test_replace_imports.md b/libs/cli/langchain_cli/namespaces/migrate/.grit/patterns/_test_replace_imports.md deleted file mode 100644 index 8642f0ea8af..00000000000 --- a/libs/cli/langchain_cli/namespaces/migrate/.grit/patterns/_test_replace_imports.md +++ /dev/null @@ -1,56 +0,0 @@ -# Testing the replace_imports migration - -This runs the v0.2 migration with a desired set of rules. - -```grit -language python - -langchain_all_migrations() -``` - -## Single import - -Before: - -```python -from langchain.chat_models import ChatOpenAI -``` - -After: - -```python -from langchain_community.chat_models import ChatOpenAI -``` - -## Community to partner - -```python -from langchain_community.chat_models import ChatOpenAI -``` - -```python -from langchain_openai import ChatOpenAI -``` - -## Noop - -This file should not match at all. - -```python -from foo import ChatOpenAI -``` - -## Mixed imports - -```python -from langchain_community.chat_models import ChatOpenAI, ChatAnthropic, foo -``` - -```python -from langchain_community.chat_models import foo - -from langchain_openai import ChatOpenAI - -from langchain_anthropic import ChatAnthropic - -``` diff --git a/libs/cli/langchain_cli/namespaces/migrate/.grit/patterns/anthropic.grit b/libs/cli/langchain_cli/namespaces/migrate/.grit/patterns/anthropic.grit deleted file mode 100644 index 69921b23366..00000000000 --- a/libs/cli/langchain_cli/namespaces/migrate/.grit/patterns/anthropic.grit +++ /dev/null @@ -1,15 +0,0 @@ - -language python - -// This migration is generated automatically - do not manually edit this file -pattern langchain_migrate_anthropic() { - find_replace_imports(list=[ - [`langchain_community.chat_models.anthropic`, `ChatAnthropic`, `langchain_anthropic`, `ChatAnthropic`], - [`langchain_community.llms.anthropic`, `Anthropic`, `langchain_anthropic`, `Anthropic`], - [`langchain_community.chat_models`, `ChatAnthropic`, `langchain_anthropic`, `ChatAnthropic`], - [`langchain_community.llms`, `Anthropic`, `langchain_anthropic`, `Anthropic`] - ]) -} - -// Add this for invoking directly -langchain_migrate_anthropic() diff --git a/libs/cli/langchain_cli/namespaces/migrate/.grit/patterns/astradb.grit b/libs/cli/langchain_cli/namespaces/migrate/.grit/patterns/astradb.grit deleted file mode 100644 index c0534c10ab9..00000000000 --- a/libs/cli/langchain_cli/namespaces/migrate/.grit/patterns/astradb.grit +++ /dev/null @@ -1,67 +0,0 @@ - -language python - -// This migration is generated automatically - do not manually edit this file -pattern langchain_migrate_astradb() { - find_replace_imports(list=[ - - [ - `langchain_community.vectorstores.astradb`, - `AstraDB`, - `langchain_astradb`, - `AstraDBVectorStore` - ] - , - - [ - `langchain_community.storage.astradb`, - `AstraDBByteStore`, - `langchain_astradb`, - `AstraDBByteStore` - ] - , - - [ - `langchain_community.storage.astradb`, - `AstraDBStore`, - `langchain_astradb`, - `AstraDBStore` - ] - , - - [ - `langchain_community.cache`, - `AstraDBCache`, - `langchain_astradb`, - `AstraDBCache` - ] - , - - [ - `langchain_community.cache`, - `AstraDBSemanticCache`, - `langchain_astradb`, - `AstraDBSemanticCache` - ] - , - - [ - `langchain_community.chat_message_histories.astradb`, - `AstraDBChatMessageHistory`, - `langchain_astradb`, - `AstraDBChatMessageHistory` - ] - , - - [ - `langchain_community.document_loaders.astradb`, - `AstraDBLoader`, - `langchain_astradb`, - `AstraDBLoader` - ] - - ]) -} - -// Add this for invoking directly -langchain_migrate_astradb() diff --git a/libs/cli/langchain_cli/namespaces/migrate/.grit/patterns/community_to_core.grit b/libs/cli/langchain_cli/namespaces/migrate/.grit/patterns/community_to_core.grit deleted file mode 100644 index 2040d68fbb8..00000000000 --- a/libs/cli/langchain_cli/namespaces/migrate/.grit/patterns/community_to_core.grit +++ /dev/null @@ -1,38 +0,0 @@ - -language python - -// This migration is generated automatically - do not manually edit this file -pattern langchain_migrate_community_to_core() { - find_replace_imports(list=[ - [`langchain_community.callbacks.tracers`, `ConsoleCallbackHandler`, `langchain_core.tracers`, `ConsoleCallbackHandler`], - [`langchain_community.callbacks.tracers`, `FunctionCallbackHandler`, `langchain_core.tracers.stdout`, `FunctionCallbackHandler`], - [`langchain_community.callbacks.tracers`, `LangChainTracer`, `langchain_core.tracers`, `LangChainTracer`], - [`langchain_community.callbacks.tracers`, `LangChainTracerV1`, `langchain_core.tracers.langchain_v1`, `LangChainTracerV1`], - [`langchain_community.docstore.document`, `Document`, `langchain_core.documents`, `Document`], - [`langchain_community.document_loaders`, `Blob`, `langchain_core.document_loaders`, `Blob`], - [`langchain_community.document_loaders`, `BlobLoader`, `langchain_core.document_loaders`, `BlobLoader`], - [`langchain_community.document_loaders.base`, `BaseBlobParser`, `langchain_core.document_loaders`, `BaseBlobParser`], - [`langchain_community.document_loaders.base`, `BaseLoader`, `langchain_core.document_loaders`, `BaseLoader`], - [`langchain_community.document_loaders.blob_loaders`, `Blob`, `langchain_core.document_loaders`, `Blob`], - [`langchain_community.document_loaders.blob_loaders`, `BlobLoader`, `langchain_core.document_loaders`, `BlobLoader`], - [`langchain_community.document_loaders.blob_loaders.schema`, `Blob`, `langchain_core.document_loaders`, `Blob`], - [`langchain_community.document_loaders.blob_loaders.schema`, `BlobLoader`, `langchain_core.document_loaders`, `BlobLoader`], - [`langchain_community.tools`, `BaseTool`, `langchain_core.tools`, `BaseTool`], - [`langchain_community.tools`, `StructuredTool`, `langchain_core.tools`, `StructuredTool`], - [`langchain_community.tools`, `Tool`, `langchain_core.tools`, `Tool`], - [`langchain_community.tools`, `format_tool_to_openai_function`, `langchain_core.utils.function_calling`, `format_tool_to_openai_function`], - [`langchain_community.tools`, `tool`, `langchain_core.tools`, `tool`], - [`langchain_community.tools.convert_to_openai`, `format_tool_to_openai_function`, `langchain_core.utils.function_calling`, `format_tool_to_openai_function`], - [`langchain_community.tools.convert_to_openai`, `format_tool_to_openai_tool`, `langchain_core.utils.function_calling`, `format_tool_to_openai_tool`], - [`langchain_community.tools.render`, `format_tool_to_openai_function`, `langchain_core.utils.function_calling`, `format_tool_to_openai_function`], - [`langchain_community.tools.render`, `format_tool_to_openai_tool`, `langchain_core.utils.function_calling`, `format_tool_to_openai_tool`], - [`langchain_community.utils.openai_functions`, `FunctionDescription`, `langchain_core.utils.function_calling`, `FunctionDescription`], - [`langchain_community.utils.openai_functions`, `ToolDescription`, `langchain_core.utils.function_calling`, `ToolDescription`], - [`langchain_community.utils.openai_functions`, `convert_pydantic_to_openai_function`, `langchain_core.utils.function_calling`, `convert_pydantic_to_openai_function`], - [`langchain_community.utils.openai_functions`, `convert_pydantic_to_openai_tool`, `langchain_core.utils.function_calling`, `convert_pydantic_to_openai_tool`], - [`langchain_community.vectorstores`, `VectorStore`, `langchain_core.vectorstores`, `VectorStore`] - ]) -} - -// Add this for invoking directly -langchain_migrate_community_to_core() diff --git a/libs/cli/langchain_cli/namespaces/migrate/.grit/patterns/community_to_core.json b/libs/cli/langchain_cli/namespaces/migrate/.grit/patterns/community_to_core.json deleted file mode 100644 index 77aa26ec88c..00000000000 --- a/libs/cli/langchain_cli/namespaces/migrate/.grit/patterns/community_to_core.json +++ /dev/null @@ -1,101 +0,0 @@ -[ - [ - "langchain_community.callbacks.tracers.ConsoleCallbackHandler", - "langchain_core.tracers.ConsoleCallbackHandler" - ], - [ - "langchain_community.callbacks.tracers.FunctionCallbackHandler", - "langchain_core.tracers.stdout.FunctionCallbackHandler" - ], - [ - "langchain_community.callbacks.tracers.LangChainTracer", - "langchain_core.tracers.LangChainTracer" - ], - [ - "langchain_community.callbacks.tracers.LangChainTracerV1", - "langchain_core.tracers.langchain_v1.LangChainTracerV1" - ], - [ - "langchain_community.docstore.document.Document", - "langchain_core.documents.Document" - ], - [ - "langchain_community.document_loaders.Blob", - "langchain_core.document_loaders.Blob" - ], - [ - "langchain_community.document_loaders.BlobLoader", - "langchain_core.document_loaders.BlobLoader" - ], - [ - "langchain_community.document_loaders.base.BaseBlobParser", - "langchain_core.document_loaders.BaseBlobParser" - ], - [ - "langchain_community.document_loaders.base.BaseLoader", - "langchain_core.document_loaders.BaseLoader" - ], - [ - "langchain_community.document_loaders.blob_loaders.Blob", - "langchain_core.document_loaders.Blob" - ], - [ - "langchain_community.document_loaders.blob_loaders.BlobLoader", - "langchain_core.document_loaders.BlobLoader" - ], - [ - "langchain_community.document_loaders.blob_loaders.schema.Blob", - "langchain_core.document_loaders.Blob" - ], - [ - "langchain_community.document_loaders.blob_loaders.schema.BlobLoader", - "langchain_core.document_loaders.BlobLoader" - ], - ["langchain_community.tools.BaseTool", "langchain_core.tools.BaseTool"], - [ - "langchain_community.tools.StructuredTool", - "langchain_core.tools.StructuredTool" - ], - ["langchain_community.tools.Tool", "langchain_core.tools.Tool"], - [ - "langchain_community.tools.format_tool_to_openai_function", - "langchain_core.utils.function_calling.format_tool_to_openai_function" - ], - ["langchain_community.tools.tool", "langchain_core.tools.tool"], - [ - "langchain_community.tools.convert_to_openai.format_tool_to_openai_function", - "langchain_core.utils.function_calling.format_tool_to_openai_function" - ], - [ - "langchain_community.tools.convert_to_openai.format_tool_to_openai_tool", - "langchain_core.utils.function_calling.format_tool_to_openai_tool" - ], - [ - "langchain_community.tools.render.format_tool_to_openai_function", - "langchain_core.utils.function_calling.format_tool_to_openai_function" - ], - [ - "langchain_community.tools.render.format_tool_to_openai_tool", - "langchain_core.utils.function_calling.format_tool_to_openai_tool" - ], - [ - "langchain_community.utils.openai_functions.FunctionDescription", - "langchain_core.utils.function_calling.FunctionDescription" - ], - [ - "langchain_community.utils.openai_functions.ToolDescription", - "langchain_core.utils.function_calling.ToolDescription" - ], - [ - "langchain_community.utils.openai_functions.convert_pydantic_to_openai_function", - "langchain_core.utils.function_calling.convert_pydantic_to_openai_function" - ], - [ - "langchain_community.utils.openai_functions.convert_pydantic_to_openai_tool", - "langchain_core.utils.function_calling.convert_pydantic_to_openai_tool" - ], - [ - "langchain_community.vectorstores.VectorStore", - "langchain_core.vectorstores.VectorStore" - ] -] diff --git a/libs/cli/langchain_cli/namespaces/migrate/.grit/patterns/everything.grit b/libs/cli/langchain_cli/namespaces/migrate/.grit/patterns/everything.grit deleted file mode 100644 index c61bad8d8fa..00000000000 --- a/libs/cli/langchain_cli/namespaces/migrate/.grit/patterns/everything.grit +++ /dev/null @@ -1,18 +0,0 @@ -language python - -pattern langchain_all_migrations() { - any { - langchain_migrate_community_to_core(), - langchain_migrate_fireworks(), - langchain_migrate_ibm(), - langchain_migrate_langchain_to_core(), - langchain_migrate_langchain_to_langchain_community(), - langchain_migrate_langchain_to_textsplitters(), - langchain_migrate_openai(), - langchain_migrate_pinecone(), - langchain_migrate_anthropic(), - replace_pydantic_v1_shim() - } -} - -langchain_all_migrations() \ No newline at end of file diff --git a/libs/cli/langchain_cli/namespaces/migrate/.grit/patterns/fireworks.grit b/libs/cli/langchain_cli/namespaces/migrate/.grit/patterns/fireworks.grit deleted file mode 100644 index bd4a5a846a1..00000000000 --- a/libs/cli/langchain_cli/namespaces/migrate/.grit/patterns/fireworks.grit +++ /dev/null @@ -1,15 +0,0 @@ - -language python - -// This migration is generated automatically - do not manually edit this file -pattern langchain_migrate_fireworks() { - find_replace_imports(list=[ - [`langchain_community.chat_models.fireworks`, `ChatFireworks`, `langchain_fireworks`, `ChatFireworks`], - [`langchain_community.llms.fireworks`, `Fireworks`, `langchain_fireworks`, `Fireworks`], - [`langchain_community.chat_models`, `ChatFireworks`, `langchain_fireworks`, `ChatFireworks`], - [`langchain_community.llms`, `Fireworks`, `langchain_fireworks`, `Fireworks`] - ]) -} - -// Add this for invoking directly -langchain_migrate_fireworks() diff --git a/libs/cli/langchain_cli/namespaces/migrate/.grit/patterns/ibm.grit b/libs/cli/langchain_cli/namespaces/migrate/.grit/patterns/ibm.grit deleted file mode 100644 index 791b3a7c236..00000000000 --- a/libs/cli/langchain_cli/namespaces/migrate/.grit/patterns/ibm.grit +++ /dev/null @@ -1,13 +0,0 @@ - -language python - -// This migration is generated automatically - do not manually edit this file -pattern langchain_migrate_ibm() { - find_replace_imports(list=[ - [`langchain_community.llms.watsonxllm`, `WatsonxLLM`, `langchain_ibm`, `WatsonxLLM`], - [`langchain_community.llms`, `WatsonxLLM`, `langchain_ibm`, `WatsonxLLM`] - ]) -} - -// Add this for invoking directly -langchain_migrate_ibm() diff --git a/libs/cli/langchain_cli/namespaces/migrate/.grit/patterns/langchain_to_core.grit b/libs/cli/langchain_cli/namespaces/migrate/.grit/patterns/langchain_to_core.grit deleted file mode 100644 index 90f26a66858..00000000000 --- a/libs/cli/langchain_cli/namespaces/migrate/.grit/patterns/langchain_to_core.grit +++ /dev/null @@ -1,542 +0,0 @@ - -language python - -// This migration is generated automatically - do not manually edit this file -pattern langchain_migrate_langchain_to_core() { - find_replace_imports(list=[ - [`langchain._api`, `deprecated`, `langchain_core._api`, `deprecated`], - [`langchain._api`, `LangChainDeprecationWarning`, `langchain_core._api`, `LangChainDeprecationWarning`], - [`langchain._api`, `suppress_langchain_deprecation_warning`, `langchain_core._api`, `suppress_langchain_deprecation_warning`], - [`langchain._api`, `surface_langchain_deprecation_warnings`, `langchain_core._api`, `surface_langchain_deprecation_warnings`], - [`langchain._api`, `warn_deprecated`, `langchain_core._api`, `warn_deprecated`], - [`langchain._api.deprecation`, `LangChainDeprecationWarning`, `langchain_core._api`, `LangChainDeprecationWarning`], - [`langchain._api.deprecation`, `LangChainPendingDeprecationWarning`, `langchain_core._api.deprecation`, `LangChainPendingDeprecationWarning`], - [`langchain._api.deprecation`, `deprecated`, `langchain_core._api`, `deprecated`], - [`langchain._api.deprecation`, `suppress_langchain_deprecation_warning`, `langchain_core._api`, `suppress_langchain_deprecation_warning`], - [`langchain._api.deprecation`, `warn_deprecated`, `langchain_core._api`, `warn_deprecated`], - [`langchain._api.deprecation`, `surface_langchain_deprecation_warnings`, `langchain_core._api`, `surface_langchain_deprecation_warnings`], - [`langchain._api.path`, `get_relative_path`, `langchain_core._api`, `get_relative_path`], - [`langchain._api.path`, `as_import_path`, `langchain_core._api`, `as_import_path`], - [`langchain.agents`, `Tool`, `langchain_core.tools`, `Tool`], - [`langchain.agents`, `tool`, `langchain_core.tools`, `tool`], - [`langchain.agents.tools`, `BaseTool`, `langchain_core.tools`, `BaseTool`], - [`langchain.agents.tools`, `tool`, `langchain_core.tools`, `tool`], - [`langchain.agents.tools`, `Tool`, `langchain_core.tools`, `Tool`], - [`langchain.base_language`, `BaseLanguageModel`, `langchain_core.language_models`, `BaseLanguageModel`], - [`langchain.callbacks`, `StdOutCallbackHandler`, `langchain_core.callbacks`, `StdOutCallbackHandler`], - [`langchain.callbacks`, `StreamingStdOutCallbackHandler`, `langchain_core.callbacks`, `StreamingStdOutCallbackHandler`], - [`langchain.callbacks`, `LangChainTracer`, `langchain_core.tracers`, `LangChainTracer`], - [`langchain.callbacks`, `tracing_enabled`, `langchain_core.tracers.context`, `tracing_enabled`], - [`langchain.callbacks`, `tracing_v2_enabled`, `langchain_core.tracers.context`, `tracing_v2_enabled`], - [`langchain.callbacks`, `collect_runs`, `langchain_core.tracers.context`, `collect_runs`], - [`langchain.callbacks.base`, `RetrieverManagerMixin`, `langchain_core.callbacks`, `RetrieverManagerMixin`], - [`langchain.callbacks.base`, `LLMManagerMixin`, `langchain_core.callbacks`, `LLMManagerMixin`], - [`langchain.callbacks.base`, `ChainManagerMixin`, `langchain_core.callbacks`, `ChainManagerMixin`], - [`langchain.callbacks.base`, `ToolManagerMixin`, `langchain_core.callbacks`, `ToolManagerMixin`], - [`langchain.callbacks.base`, `CallbackManagerMixin`, `langchain_core.callbacks`, `CallbackManagerMixin`], - [`langchain.callbacks.base`, `RunManagerMixin`, `langchain_core.callbacks`, `RunManagerMixin`], - [`langchain.callbacks.base`, `BaseCallbackHandler`, `langchain_core.callbacks`, `BaseCallbackHandler`], - [`langchain.callbacks.base`, `AsyncCallbackHandler`, `langchain_core.callbacks`, `AsyncCallbackHandler`], - [`langchain.callbacks.base`, `BaseCallbackManager`, `langchain_core.callbacks`, `BaseCallbackManager`], - [`langchain.callbacks.manager`, `BaseRunManager`, `langchain_core.callbacks`, `BaseRunManager`], - [`langchain.callbacks.manager`, `RunManager`, `langchain_core.callbacks`, `RunManager`], - [`langchain.callbacks.manager`, `ParentRunManager`, `langchain_core.callbacks`, `ParentRunManager`], - [`langchain.callbacks.manager`, `AsyncRunManager`, `langchain_core.callbacks`, `AsyncRunManager`], - [`langchain.callbacks.manager`, `AsyncParentRunManager`, `langchain_core.callbacks`, `AsyncParentRunManager`], - [`langchain.callbacks.manager`, `CallbackManagerForLLMRun`, `langchain_core.callbacks`, `CallbackManagerForLLMRun`], - [`langchain.callbacks.manager`, `AsyncCallbackManagerForLLMRun`, `langchain_core.callbacks`, `AsyncCallbackManagerForLLMRun`], - [`langchain.callbacks.manager`, `CallbackManagerForChainRun`, `langchain_core.callbacks`, `CallbackManagerForChainRun`], - [`langchain.callbacks.manager`, `AsyncCallbackManagerForChainRun`, `langchain_core.callbacks`, `AsyncCallbackManagerForChainRun`], - [`langchain.callbacks.manager`, `CallbackManagerForToolRun`, `langchain_core.callbacks`, `CallbackManagerForToolRun`], - [`langchain.callbacks.manager`, `AsyncCallbackManagerForToolRun`, `langchain_core.callbacks`, `AsyncCallbackManagerForToolRun`], - [`langchain.callbacks.manager`, `CallbackManagerForRetrieverRun`, `langchain_core.callbacks`, `CallbackManagerForRetrieverRun`], - [`langchain.callbacks.manager`, `AsyncCallbackManagerForRetrieverRun`, `langchain_core.callbacks`, `AsyncCallbackManagerForRetrieverRun`], - [`langchain.callbacks.manager`, `CallbackManager`, `langchain_core.callbacks`, `CallbackManager`], - [`langchain.callbacks.manager`, `CallbackManagerForChainGroup`, `langchain_core.callbacks`, `CallbackManagerForChainGroup`], - [`langchain.callbacks.manager`, `AsyncCallbackManager`, `langchain_core.callbacks`, `AsyncCallbackManager`], - [`langchain.callbacks.manager`, `AsyncCallbackManagerForChainGroup`, `langchain_core.callbacks`, `AsyncCallbackManagerForChainGroup`], - [`langchain.callbacks.manager`, `tracing_enabled`, `langchain_core.tracers.context`, `tracing_enabled`], - [`langchain.callbacks.manager`, `tracing_v2_enabled`, `langchain_core.tracers.context`, `tracing_v2_enabled`], - [`langchain.callbacks.manager`, `collect_runs`, `langchain_core.tracers.context`, `collect_runs`], - [`langchain.callbacks.manager`, `atrace_as_chain_group`, `langchain_core.callbacks.manager`, `atrace_as_chain_group`], - [`langchain.callbacks.manager`, `trace_as_chain_group`, `langchain_core.callbacks.manager`, `trace_as_chain_group`], - [`langchain.callbacks.manager`, `handle_event`, `langchain_core.callbacks.manager`, `handle_event`], - [`langchain.callbacks.manager`, `ahandle_event`, `langchain_core.callbacks.manager`, `ahandle_event`], - [`langchain.callbacks.manager`, `env_var_is_set`, `langchain_core.utils.env`, `env_var_is_set`], - [`langchain.callbacks.stdout`, `StdOutCallbackHandler`, `langchain_core.callbacks`, `StdOutCallbackHandler`], - [`langchain.callbacks.streaming_stdout`, `StreamingStdOutCallbackHandler`, `langchain_core.callbacks`, `StreamingStdOutCallbackHandler`], - [`langchain.callbacks.tracers`, `ConsoleCallbackHandler`, `langchain_core.tracers`, `ConsoleCallbackHandler`], - [`langchain.callbacks.tracers`, `FunctionCallbackHandler`, `langchain_core.tracers.stdout`, `FunctionCallbackHandler`], - [`langchain.callbacks.tracers`, `LangChainTracer`, `langchain_core.tracers`, `LangChainTracer`], - [`langchain.callbacks.tracers`, `LangChainTracerV1`, `langchain_core.tracers.langchain_v1`, `LangChainTracerV1`], - [`langchain.callbacks.tracers.base`, `BaseTracer`, `langchain_core.tracers`, `BaseTracer`], - [`langchain.callbacks.tracers.base`, `TracerException`, `langchain_core.exceptions`, `TracerException`], - [`langchain.callbacks.tracers.evaluation`, `wait_for_all_evaluators`, `langchain_core.tracers.evaluation`, `wait_for_all_evaluators`], - [`langchain.callbacks.tracers.evaluation`, `EvaluatorCallbackHandler`, `langchain_core.tracers`, `EvaluatorCallbackHandler`], - [`langchain.callbacks.tracers.langchain`, `LangChainTracer`, `langchain_core.tracers`, `LangChainTracer`], - [`langchain.callbacks.tracers.langchain`, `wait_for_all_tracers`, `langchain_core.tracers.langchain`, `wait_for_all_tracers`], - [`langchain.callbacks.tracers.langchain_v1`, `LangChainTracerV1`, `langchain_core.tracers.langchain_v1`, `LangChainTracerV1`], - [`langchain.callbacks.tracers.log_stream`, `LogEntry`, `langchain_core.tracers.log_stream`, `LogEntry`], - [`langchain.callbacks.tracers.log_stream`, `RunState`, `langchain_core.tracers.log_stream`, `RunState`], - [`langchain.callbacks.tracers.log_stream`, `RunLog`, `langchain_core.tracers`, `RunLog`], - [`langchain.callbacks.tracers.log_stream`, `RunLogPatch`, `langchain_core.tracers`, `RunLogPatch`], - [`langchain.callbacks.tracers.log_stream`, `LogStreamCallbackHandler`, `langchain_core.tracers`, `LogStreamCallbackHandler`], - [`langchain.callbacks.tracers.root_listeners`, `RootListenersTracer`, `langchain_core.tracers.root_listeners`, `RootListenersTracer`], - [`langchain.callbacks.tracers.run_collector`, `RunCollectorCallbackHandler`, `langchain_core.tracers.run_collector`, `RunCollectorCallbackHandler`], - [`langchain.callbacks.tracers.schemas`, `BaseRun`, `langchain_core.tracers.schemas`, `BaseRun`], - [`langchain.callbacks.tracers.schemas`, `ChainRun`, `langchain_core.tracers.schemas`, `ChainRun`], - [`langchain.callbacks.tracers.schemas`, `LLMRun`, `langchain_core.tracers.schemas`, `LLMRun`], - [`langchain.callbacks.tracers.schemas`, `Run`, `langchain_core.tracers`, `Run`], - [`langchain.callbacks.tracers.schemas`, `RunTypeEnum`, `langchain_core.tracers.schemas`, `RunTypeEnum`], - [`langchain.callbacks.tracers.schemas`, `ToolRun`, `langchain_core.tracers.schemas`, `ToolRun`], - [`langchain.callbacks.tracers.schemas`, `TracerSession`, `langchain_core.tracers.schemas`, `TracerSession`], - [`langchain.callbacks.tracers.schemas`, `TracerSessionBase`, `langchain_core.tracers.schemas`, `TracerSessionBase`], - [`langchain.callbacks.tracers.schemas`, `TracerSessionV1`, `langchain_core.tracers.schemas`, `TracerSessionV1`], - [`langchain.callbacks.tracers.schemas`, `TracerSessionV1Base`, `langchain_core.tracers.schemas`, `TracerSessionV1Base`], - [`langchain.callbacks.tracers.schemas`, `TracerSessionV1Create`, `langchain_core.tracers.schemas`, `TracerSessionV1Create`], - [`langchain.callbacks.tracers.stdout`, `FunctionCallbackHandler`, `langchain_core.tracers.stdout`, `FunctionCallbackHandler`], - [`langchain.callbacks.tracers.stdout`, `ConsoleCallbackHandler`, `langchain_core.tracers`, `ConsoleCallbackHandler`], - [`langchain.chains.openai_functions`, `convert_to_openai_function`, `langchain_core.utils.function_calling`, `convert_to_openai_function`], - [`langchain.chains.openai_functions.base`, `convert_to_openai_function`, `langchain_core.utils.function_calling`, `convert_to_openai_function`], - [`langchain.chat_models.base`, `BaseChatModel`, `langchain_core.language_models`, `BaseChatModel`], - [`langchain.chat_models.base`, `SimpleChatModel`, `langchain_core.language_models`, `SimpleChatModel`], - [`langchain.chat_models.base`, `generate_from_stream`, `langchain_core.language_models.chat_models`, `generate_from_stream`], - [`langchain.chat_models.base`, `agenerate_from_stream`, `langchain_core.language_models.chat_models`, `agenerate_from_stream`], - [`langchain.docstore.document`, `Document`, `langchain_core.documents`, `Document`], - [`langchain.document_loaders`, `Blob`, `langchain_core.document_loaders`, `Blob`], - [`langchain.document_loaders`, `BlobLoader`, `langchain_core.document_loaders`, `BlobLoader`], - [`langchain.document_loaders.base`, `BaseLoader`, `langchain_core.document_loaders`, `BaseLoader`], - [`langchain.document_loaders.base`, `BaseBlobParser`, `langchain_core.document_loaders`, `BaseBlobParser`], - [`langchain.document_loaders.blob_loaders`, `BlobLoader`, `langchain_core.document_loaders`, `BlobLoader`], - [`langchain.document_loaders.blob_loaders`, `Blob`, `langchain_core.document_loaders`, `Blob`], - [`langchain.document_loaders.blob_loaders.schema`, `Blob`, `langchain_core.document_loaders`, `Blob`], - [`langchain.document_loaders.blob_loaders.schema`, `BlobLoader`, `langchain_core.document_loaders`, `BlobLoader`], - [`langchain.embeddings.base`, `Embeddings`, `langchain_core.embeddings`, `Embeddings`], - [`langchain.formatting`, `StrictFormatter`, `langchain_core.utils`, `StrictFormatter`], - [`langchain.input`, `get_bolded_text`, `langchain_core.utils`, `get_bolded_text`], - [`langchain.input`, `get_color_mapping`, `langchain_core.utils`, `get_color_mapping`], - [`langchain.input`, `get_colored_text`, `langchain_core.utils`, `get_colored_text`], - [`langchain.input`, `print_text`, `langchain_core.utils`, `print_text`], - [`langchain.llms.base`, `BaseLanguageModel`, `langchain_core.language_models`, `BaseLanguageModel`], - [`langchain.llms.base`, `BaseLLM`, `langchain_core.language_models`, `BaseLLM`], - [`langchain.llms.base`, `LLM`, `langchain_core.language_models`, `LLM`], - [`langchain.load`, `dumpd`, `langchain_core.load`, `dumpd`], - [`langchain.load`, `dumps`, `langchain_core.load`, `dumps`], - [`langchain.load`, `load`, `langchain_core.load`, `load`], - [`langchain.load`, `loads`, `langchain_core.load`, `loads`], - [`langchain.load.dump`, `default`, `langchain_core.load.dump`, `default`], - [`langchain.load.dump`, `dumps`, `langchain_core.load`, `dumps`], - [`langchain.load.dump`, `dumpd`, `langchain_core.load`, `dumpd`], - [`langchain.load.load`, `Reviver`, `langchain_core.load.load`, `Reviver`], - [`langchain.load.load`, `loads`, `langchain_core.load`, `loads`], - [`langchain.load.load`, `load`, `langchain_core.load`, `load`], - [`langchain.load.serializable`, `BaseSerialized`, `langchain_core.load.serializable`, `BaseSerialized`], - [`langchain.load.serializable`, `SerializedConstructor`, `langchain_core.load.serializable`, `SerializedConstructor`], - [`langchain.load.serializable`, `SerializedSecret`, `langchain_core.load.serializable`, `SerializedSecret`], - [`langchain.load.serializable`, `SerializedNotImplemented`, `langchain_core.load.serializable`, `SerializedNotImplemented`], - [`langchain.load.serializable`, `try_neq_default`, `langchain_core.load.serializable`, `try_neq_default`], - [`langchain.load.serializable`, `Serializable`, `langchain_core.load`, `Serializable`], - [`langchain.load.serializable`, `to_json_not_implemented`, `langchain_core.load.serializable`, `to_json_not_implemented`], - [`langchain.output_parsers`, `CommaSeparatedListOutputParser`, `langchain_core.output_parsers`, `CommaSeparatedListOutputParser`], - [`langchain.output_parsers`, `ListOutputParser`, `langchain_core.output_parsers`, `ListOutputParser`], - [`langchain.output_parsers`, `MarkdownListOutputParser`, `langchain_core.output_parsers`, `MarkdownListOutputParser`], - [`langchain.output_parsers`, `NumberedListOutputParser`, `langchain_core.output_parsers`, `NumberedListOutputParser`], - [`langchain.output_parsers`, `PydanticOutputParser`, `langchain_core.output_parsers`, `PydanticOutputParser`], - [`langchain.output_parsers`, `XMLOutputParser`, `langchain_core.output_parsers`, `XMLOutputParser`], - [`langchain.output_parsers`, `JsonOutputToolsParser`, `langchain_core.output_parsers.openai_tools`, `JsonOutputToolsParser`], - [`langchain.output_parsers`, `PydanticToolsParser`, `langchain_core.output_parsers.openai_tools`, `PydanticToolsParser`], - [`langchain.output_parsers`, `JsonOutputKeyToolsParser`, `langchain_core.output_parsers.openai_tools`, `JsonOutputKeyToolsParser`], - [`langchain.output_parsers.json`, `SimpleJsonOutputParser`, `langchain_core.output_parsers`, `JsonOutputParser`], - [`langchain.output_parsers.json`, `parse_partial_json`, `langchain_core.utils.json`, `parse_partial_json`], - [`langchain.output_parsers.json`, `parse_json_markdown`, `langchain_core.utils.json`, `parse_json_markdown`], - [`langchain.output_parsers.json`, `parse_and_check_json_markdown`, `langchain_core.utils.json`, `parse_and_check_json_markdown`], - [`langchain.output_parsers.list`, `ListOutputParser`, `langchain_core.output_parsers`, `ListOutputParser`], - [`langchain.output_parsers.list`, `CommaSeparatedListOutputParser`, `langchain_core.output_parsers`, `CommaSeparatedListOutputParser`], - [`langchain.output_parsers.list`, `NumberedListOutputParser`, `langchain_core.output_parsers`, `NumberedListOutputParser`], - [`langchain.output_parsers.list`, `MarkdownListOutputParser`, `langchain_core.output_parsers`, `MarkdownListOutputParser`], - [`langchain.output_parsers.openai_functions`, `PydanticOutputFunctionsParser`, `langchain_core.output_parsers.openai_functions`, `PydanticOutputFunctionsParser`], - [`langchain.output_parsers.openai_functions`, `PydanticAttrOutputFunctionsParser`, `langchain_core.output_parsers.openai_functions`, `PydanticAttrOutputFunctionsParser`], - [`langchain.output_parsers.openai_functions`, `JsonOutputFunctionsParser`, `langchain_core.output_parsers.openai_functions`, `JsonOutputFunctionsParser`], - [`langchain.output_parsers.openai_functions`, `JsonKeyOutputFunctionsParser`, `langchain_core.output_parsers.openai_functions`, `JsonKeyOutputFunctionsParser`], - [`langchain.output_parsers.openai_tools`, `PydanticToolsParser`, `langchain_core.output_parsers.openai_tools`, `PydanticToolsParser`], - [`langchain.output_parsers.openai_tools`, `JsonOutputToolsParser`, `langchain_core.output_parsers.openai_tools`, `JsonOutputToolsParser`], - [`langchain.output_parsers.openai_tools`, `JsonOutputKeyToolsParser`, `langchain_core.output_parsers.openai_tools`, `JsonOutputKeyToolsParser`], - [`langchain.output_parsers.pydantic`, `PydanticOutputParser`, `langchain_core.output_parsers`, `PydanticOutputParser`], - [`langchain.output_parsers.xml`, `XMLOutputParser`, `langchain_core.output_parsers`, `XMLOutputParser`], - [`langchain.prompts`, `AIMessagePromptTemplate`, `langchain_core.prompts`, `AIMessagePromptTemplate`], - [`langchain.prompts`, `BaseChatPromptTemplate`, `langchain_core.prompts`, `BaseChatPromptTemplate`], - [`langchain.prompts`, `BasePromptTemplate`, `langchain_core.prompts`, `BasePromptTemplate`], - [`langchain.prompts`, `ChatMessagePromptTemplate`, `langchain_core.prompts`, `ChatMessagePromptTemplate`], - [`langchain.prompts`, `ChatPromptTemplate`, `langchain_core.prompts`, `ChatPromptTemplate`], - [`langchain.prompts`, `FewShotPromptTemplate`, `langchain_core.prompts`, `FewShotPromptTemplate`], - [`langchain.prompts`, `FewShotPromptWithTemplates`, `langchain_core.prompts`, `FewShotPromptWithTemplates`], - [`langchain.prompts`, `HumanMessagePromptTemplate`, `langchain_core.prompts`, `HumanMessagePromptTemplate`], - [`langchain.prompts`, `LengthBasedExampleSelector`, `langchain_core.example_selectors`, `LengthBasedExampleSelector`], - [`langchain.prompts`, `MaxMarginalRelevanceExampleSelector`, `langchain_core.example_selectors`, `MaxMarginalRelevanceExampleSelector`], - [`langchain.prompts`, `MessagesPlaceholder`, `langchain_core.prompts`, `MessagesPlaceholder`], - [`langchain.prompts`, `PipelinePromptTemplate`, `langchain_core.prompts`, `PipelinePromptTemplate`], - [`langchain.prompts`, `PromptTemplate`, `langchain_core.prompts`, `PromptTemplate`], - [`langchain.prompts`, `SemanticSimilarityExampleSelector`, `langchain_core.example_selectors`, `SemanticSimilarityExampleSelector`], - [`langchain.prompts`, `StringPromptTemplate`, `langchain_core.prompts`, `StringPromptTemplate`], - [`langchain.prompts`, `SystemMessagePromptTemplate`, `langchain_core.prompts`, `SystemMessagePromptTemplate`], - [`langchain.prompts`, `load_prompt`, `langchain_core.prompts`, `load_prompt`], - [`langchain.prompts`, `FewShotChatMessagePromptTemplate`, `langchain_core.prompts`, `FewShotChatMessagePromptTemplate`], - [`langchain.prompts`, `Prompt`, `langchain_core.prompts`, `PromptTemplate`], - [`langchain.prompts.base`, `jinja2_formatter`, `langchain_core.prompts`, `jinja2_formatter`], - [`langchain.prompts.base`, `validate_jinja2`, `langchain_core.prompts`, `validate_jinja2`], - [`langchain.prompts.base`, `check_valid_template`, `langchain_core.prompts`, `check_valid_template`], - [`langchain.prompts.base`, `get_template_variables`, `langchain_core.prompts`, `get_template_variables`], - [`langchain.prompts.base`, `StringPromptTemplate`, `langchain_core.prompts`, `StringPromptTemplate`], - [`langchain.prompts.base`, `BasePromptTemplate`, `langchain_core.prompts`, `BasePromptTemplate`], - [`langchain.prompts.base`, `StringPromptValue`, `langchain_core.prompt_values`, `StringPromptValue`], - [`langchain.prompts.base`, `_get_jinja2_variables_from_template`, `langchain_core.prompts.string`, `_get_jinja2_variables_from_template`], - [`langchain.prompts.chat`, `BaseMessagePromptTemplate`, `langchain_core.prompts.chat`, `BaseMessagePromptTemplate`], - [`langchain.prompts.chat`, `MessagesPlaceholder`, `langchain_core.prompts`, `MessagesPlaceholder`], - [`langchain.prompts.chat`, `BaseStringMessagePromptTemplate`, `langchain_core.prompts.chat`, `BaseStringMessagePromptTemplate`], - [`langchain.prompts.chat`, `ChatMessagePromptTemplate`, `langchain_core.prompts`, `ChatMessagePromptTemplate`], - [`langchain.prompts.chat`, `HumanMessagePromptTemplate`, `langchain_core.prompts`, `HumanMessagePromptTemplate`], - [`langchain.prompts.chat`, `AIMessagePromptTemplate`, `langchain_core.prompts`, `AIMessagePromptTemplate`], - [`langchain.prompts.chat`, `SystemMessagePromptTemplate`, `langchain_core.prompts`, `SystemMessagePromptTemplate`], - [`langchain.prompts.chat`, `BaseChatPromptTemplate`, `langchain_core.prompts`, `BaseChatPromptTemplate`], - [`langchain.prompts.chat`, `ChatPromptTemplate`, `langchain_core.prompts`, `ChatPromptTemplate`], - [`langchain.prompts.chat`, `ChatPromptValue`, `langchain_core.prompt_values`, `ChatPromptValue`], - [`langchain.prompts.chat`, `ChatPromptValueConcrete`, `langchain_core.prompt_values`, `ChatPromptValueConcrete`], - [`langchain.prompts.chat`, `_convert_to_message`, `langchain_core.prompts.chat`, `_convert_to_message`], - [`langchain.prompts.chat`, `_create_template_from_message_type`, `langchain_core.prompts.chat`, `_create_template_from_message_type`], - [`langchain.prompts.example_selector`, `LengthBasedExampleSelector`, `langchain_core.example_selectors`, `LengthBasedExampleSelector`], - [`langchain.prompts.example_selector`, `MaxMarginalRelevanceExampleSelector`, `langchain_core.example_selectors`, `MaxMarginalRelevanceExampleSelector`], - [`langchain.prompts.example_selector`, `SemanticSimilarityExampleSelector`, `langchain_core.example_selectors`, `SemanticSimilarityExampleSelector`], - [`langchain.prompts.example_selector.base`, `BaseExampleSelector`, `langchain_core.example_selectors`, `BaseExampleSelector`], - [`langchain.prompts.example_selector.length_based`, `LengthBasedExampleSelector`, `langchain_core.example_selectors`, `LengthBasedExampleSelector`], - [`langchain.prompts.example_selector.semantic_similarity`, `sorted_values`, `langchain_core.example_selectors`, `sorted_values`], - [`langchain.prompts.example_selector.semantic_similarity`, `SemanticSimilarityExampleSelector`, `langchain_core.example_selectors`, `SemanticSimilarityExampleSelector`], - [`langchain.prompts.example_selector.semantic_similarity`, `MaxMarginalRelevanceExampleSelector`, `langchain_core.example_selectors`, `MaxMarginalRelevanceExampleSelector`], - [`langchain.prompts.few_shot`, `FewShotPromptTemplate`, `langchain_core.prompts`, `FewShotPromptTemplate`], - [`langchain.prompts.few_shot`, `FewShotChatMessagePromptTemplate`, `langchain_core.prompts`, `FewShotChatMessagePromptTemplate`], - [`langchain.prompts.few_shot`, `_FewShotPromptTemplateMixin`, `langchain_core.prompts.few_shot`, `_FewShotPromptTemplateMixin`], - [`langchain.prompts.few_shot_with_templates`, `FewShotPromptWithTemplates`, `langchain_core.prompts`, `FewShotPromptWithTemplates`], - [`langchain.prompts.loading`, `load_prompt_from_config`, `langchain_core.prompts.loading`, `load_prompt_from_config`], - [`langchain.prompts.loading`, `load_prompt`, `langchain_core.prompts`, `load_prompt`], - [`langchain.prompts.loading`, `try_load_from_hub`, `langchain_core.utils`, `try_load_from_hub`], - [`langchain.prompts.loading`, `_load_examples`, `langchain_core.prompts.loading`, `_load_examples`], - [`langchain.prompts.loading`, `_load_few_shot_prompt`, `langchain_core.prompts.loading`, `_load_few_shot_prompt`], - [`langchain.prompts.loading`, `_load_output_parser`, `langchain_core.prompts.loading`, `_load_output_parser`], - [`langchain.prompts.loading`, `_load_prompt`, `langchain_core.prompts.loading`, `_load_prompt`], - [`langchain.prompts.loading`, `_load_prompt_from_file`, `langchain_core.prompts.loading`, `_load_prompt_from_file`], - [`langchain.prompts.loading`, `_load_template`, `langchain_core.prompts.loading`, `_load_template`], - [`langchain.prompts.pipeline`, `PipelinePromptTemplate`, `langchain_core.prompts`, `PipelinePromptTemplate`], - [`langchain.prompts.pipeline`, `_get_inputs`, `langchain_core.prompts.pipeline`, `_get_inputs`], - [`langchain.prompts.prompt`, `PromptTemplate`, `langchain_core.prompts`, `PromptTemplate`], - [`langchain.prompts.prompt`, `Prompt`, `langchain_core.prompts`, `PromptTemplate`], - [`langchain.schema`, `BaseCache`, `langchain_core.caches`, `BaseCache`], - [`langchain.schema`, `BaseMemory`, `langchain_core.memory`, `BaseMemory`], - [`langchain.schema`, `BaseStore`, `langchain_core.stores`, `BaseStore`], - [`langchain.schema`, `AgentFinish`, `langchain_core.agents`, `AgentFinish`], - [`langchain.schema`, `AgentAction`, `langchain_core.agents`, `AgentAction`], - [`langchain.schema`, `Document`, `langchain_core.documents`, `Document`], - [`langchain.schema`, `BaseChatMessageHistory`, `langchain_core.chat_history`, `BaseChatMessageHistory`], - [`langchain.schema`, `BaseDocumentTransformer`, `langchain_core.documents`, `BaseDocumentTransformer`], - [`langchain.schema`, `BaseMessage`, `langchain_core.messages`, `BaseMessage`], - [`langchain.schema`, `ChatMessage`, `langchain_core.messages`, `ChatMessage`], - [`langchain.schema`, `FunctionMessage`, `langchain_core.messages`, `FunctionMessage`], - [`langchain.schema`, `HumanMessage`, `langchain_core.messages`, `HumanMessage`], - [`langchain.schema`, `AIMessage`, `langchain_core.messages`, `AIMessage`], - [`langchain.schema`, `SystemMessage`, `langchain_core.messages`, `SystemMessage`], - [`langchain.schema`, `messages_from_dict`, `langchain_core.messages`, `messages_from_dict`], - [`langchain.schema`, `messages_to_dict`, `langchain_core.messages`, `messages_to_dict`], - [`langchain.schema`, `message_to_dict`, `langchain_core.messages`, `message_to_dict`], - [`langchain.schema`, `_message_to_dict`, `langchain_core.messages`, `message_to_dict`], - [`langchain.schema`, `_message_from_dict`, `langchain_core.messages`, `_message_from_dict`], - [`langchain.schema`, `get_buffer_string`, `langchain_core.messages`, `get_buffer_string`], - [`langchain.schema`, `RunInfo`, `langchain_core.outputs`, `RunInfo`], - [`langchain.schema`, `LLMResult`, `langchain_core.outputs`, `LLMResult`], - [`langchain.schema`, `ChatResult`, `langchain_core.outputs`, `ChatResult`], - [`langchain.schema`, `ChatGeneration`, `langchain_core.outputs`, `ChatGeneration`], - [`langchain.schema`, `Generation`, `langchain_core.outputs`, `Generation`], - [`langchain.schema`, `PromptValue`, `langchain_core.prompt_values`, `PromptValue`], - [`langchain.schema`, `LangChainException`, `langchain_core.exceptions`, `LangChainException`], - [`langchain.schema`, `BaseRetriever`, `langchain_core.retrievers`, `BaseRetriever`], - [`langchain.schema`, `Memory`, `langchain_core.memory`, `BaseMemory`], - [`langchain.schema`, `OutputParserException`, `langchain_core.exceptions`, `OutputParserException`], - [`langchain.schema`, `StrOutputParser`, `langchain_core.output_parsers`, `StrOutputParser`], - [`langchain.schema`, `BaseOutputParser`, `langchain_core.output_parsers`, `BaseOutputParser`], - [`langchain.schema`, `BaseLLMOutputParser`, `langchain_core.output_parsers`, `BaseLLMOutputParser`], - [`langchain.schema`, `BasePromptTemplate`, `langchain_core.prompts`, `BasePromptTemplate`], - [`langchain.schema`, `format_document`, `langchain_core.prompts`, `format_document`], - [`langchain.schema.agent`, `AgentAction`, `langchain_core.agents`, `AgentAction`], - [`langchain.schema.agent`, `AgentActionMessageLog`, `langchain_core.agents`, `AgentActionMessageLog`], - [`langchain.schema.agent`, `AgentFinish`, `langchain_core.agents`, `AgentFinish`], - [`langchain.schema.cache`, `BaseCache`, `langchain_core.caches`, `BaseCache`], - [`langchain.schema.callbacks.base`, `RetrieverManagerMixin`, `langchain_core.callbacks`, `RetrieverManagerMixin`], - [`langchain.schema.callbacks.base`, `LLMManagerMixin`, `langchain_core.callbacks`, `LLMManagerMixin`], - [`langchain.schema.callbacks.base`, `ChainManagerMixin`, `langchain_core.callbacks`, `ChainManagerMixin`], - [`langchain.schema.callbacks.base`, `ToolManagerMixin`, `langchain_core.callbacks`, `ToolManagerMixin`], - [`langchain.schema.callbacks.base`, `CallbackManagerMixin`, `langchain_core.callbacks`, `CallbackManagerMixin`], - [`langchain.schema.callbacks.base`, `RunManagerMixin`, `langchain_core.callbacks`, `RunManagerMixin`], - [`langchain.schema.callbacks.base`, `BaseCallbackHandler`, `langchain_core.callbacks`, `BaseCallbackHandler`], - [`langchain.schema.callbacks.base`, `AsyncCallbackHandler`, `langchain_core.callbacks`, `AsyncCallbackHandler`], - [`langchain.schema.callbacks.base`, `BaseCallbackManager`, `langchain_core.callbacks`, `BaseCallbackManager`], - [`langchain.schema.callbacks.manager`, `tracing_enabled`, `langchain_core.tracers.context`, `tracing_enabled`], - [`langchain.schema.callbacks.manager`, `tracing_v2_enabled`, `langchain_core.tracers.context`, `tracing_v2_enabled`], - [`langchain.schema.callbacks.manager`, `collect_runs`, `langchain_core.tracers.context`, `collect_runs`], - [`langchain.schema.callbacks.manager`, `trace_as_chain_group`, `langchain_core.callbacks.manager`, `trace_as_chain_group`], - [`langchain.schema.callbacks.manager`, `handle_event`, `langchain_core.callbacks.manager`, `handle_event`], - [`langchain.schema.callbacks.manager`, `BaseRunManager`, `langchain_core.callbacks`, `BaseRunManager`], - [`langchain.schema.callbacks.manager`, `RunManager`, `langchain_core.callbacks`, `RunManager`], - [`langchain.schema.callbacks.manager`, `ParentRunManager`, `langchain_core.callbacks`, `ParentRunManager`], - [`langchain.schema.callbacks.manager`, `AsyncRunManager`, `langchain_core.callbacks`, `AsyncRunManager`], - [`langchain.schema.callbacks.manager`, `AsyncParentRunManager`, `langchain_core.callbacks`, `AsyncParentRunManager`], - [`langchain.schema.callbacks.manager`, `CallbackManagerForLLMRun`, `langchain_core.callbacks`, `CallbackManagerForLLMRun`], - [`langchain.schema.callbacks.manager`, `AsyncCallbackManagerForLLMRun`, `langchain_core.callbacks`, `AsyncCallbackManagerForLLMRun`], - [`langchain.schema.callbacks.manager`, `CallbackManagerForChainRun`, `langchain_core.callbacks`, `CallbackManagerForChainRun`], - [`langchain.schema.callbacks.manager`, `AsyncCallbackManagerForChainRun`, `langchain_core.callbacks`, `AsyncCallbackManagerForChainRun`], - [`langchain.schema.callbacks.manager`, `CallbackManagerForToolRun`, `langchain_core.callbacks`, `CallbackManagerForToolRun`], - [`langchain.schema.callbacks.manager`, `AsyncCallbackManagerForToolRun`, `langchain_core.callbacks`, `AsyncCallbackManagerForToolRun`], - [`langchain.schema.callbacks.manager`, `CallbackManagerForRetrieverRun`, `langchain_core.callbacks`, `CallbackManagerForRetrieverRun`], - [`langchain.schema.callbacks.manager`, `AsyncCallbackManagerForRetrieverRun`, `langchain_core.callbacks`, `AsyncCallbackManagerForRetrieverRun`], - [`langchain.schema.callbacks.manager`, `CallbackManager`, `langchain_core.callbacks`, `CallbackManager`], - [`langchain.schema.callbacks.manager`, `CallbackManagerForChainGroup`, `langchain_core.callbacks`, `CallbackManagerForChainGroup`], - [`langchain.schema.callbacks.manager`, `AsyncCallbackManager`, `langchain_core.callbacks`, `AsyncCallbackManager`], - [`langchain.schema.callbacks.manager`, `AsyncCallbackManagerForChainGroup`, `langchain_core.callbacks`, `AsyncCallbackManagerForChainGroup`], - [`langchain.schema.callbacks.manager`, `register_configure_hook`, `langchain_core.tracers.context`, `register_configure_hook`], - [`langchain.schema.callbacks.manager`, `env_var_is_set`, `langchain_core.utils.env`, `env_var_is_set`], - [`langchain.schema.callbacks.stdout`, `StdOutCallbackHandler`, `langchain_core.callbacks`, `StdOutCallbackHandler`], - [`langchain.schema.callbacks.streaming_stdout`, `StreamingStdOutCallbackHandler`, `langchain_core.callbacks`, `StreamingStdOutCallbackHandler`], - [`langchain.schema.callbacks.tracers.base`, `TracerException`, `langchain_core.exceptions`, `TracerException`], - [`langchain.schema.callbacks.tracers.base`, `BaseTracer`, `langchain_core.tracers`, `BaseTracer`], - [`langchain.schema.callbacks.tracers.evaluation`, `wait_for_all_evaluators`, `langchain_core.tracers.evaluation`, `wait_for_all_evaluators`], - [`langchain.schema.callbacks.tracers.evaluation`, `EvaluatorCallbackHandler`, `langchain_core.tracers`, `EvaluatorCallbackHandler`], - [`langchain.schema.callbacks.tracers.langchain`, `log_error_once`, `langchain_core.tracers.langchain`, `log_error_once`], - [`langchain.schema.callbacks.tracers.langchain`, `wait_for_all_tracers`, `langchain_core.tracers.langchain`, `wait_for_all_tracers`], - [`langchain.schema.callbacks.tracers.langchain`, `get_client`, `langchain_core.tracers.langchain`, `get_client`], - [`langchain.schema.callbacks.tracers.langchain`, `LangChainTracer`, `langchain_core.tracers`, `LangChainTracer`], - [`langchain.schema.callbacks.tracers.langchain_v1`, `get_headers`, `langchain_core.tracers.langchain_v1`, `get_headers`], - [`langchain.schema.callbacks.tracers.langchain_v1`, `LangChainTracerV1`, `langchain_core.tracers.langchain_v1`, `LangChainTracerV1`], - [`langchain.schema.callbacks.tracers.log_stream`, `LogEntry`, `langchain_core.tracers.log_stream`, `LogEntry`], - [`langchain.schema.callbacks.tracers.log_stream`, `RunState`, `langchain_core.tracers.log_stream`, `RunState`], - [`langchain.schema.callbacks.tracers.log_stream`, `RunLogPatch`, `langchain_core.tracers`, `RunLogPatch`], - [`langchain.schema.callbacks.tracers.log_stream`, `RunLog`, `langchain_core.tracers`, `RunLog`], - [`langchain.schema.callbacks.tracers.log_stream`, `LogStreamCallbackHandler`, `langchain_core.tracers`, `LogStreamCallbackHandler`], - [`langchain.schema.callbacks.tracers.root_listeners`, `RootListenersTracer`, `langchain_core.tracers.root_listeners`, `RootListenersTracer`], - [`langchain.schema.callbacks.tracers.run_collector`, `RunCollectorCallbackHandler`, `langchain_core.tracers.run_collector`, `RunCollectorCallbackHandler`], - [`langchain.schema.callbacks.tracers.schemas`, `RunTypeEnum`, `langchain_core.tracers.schemas`, `RunTypeEnum`], - [`langchain.schema.callbacks.tracers.schemas`, `TracerSessionV1Base`, `langchain_core.tracers.schemas`, `TracerSessionV1Base`], - [`langchain.schema.callbacks.tracers.schemas`, `TracerSessionV1Create`, `langchain_core.tracers.schemas`, `TracerSessionV1Create`], - [`langchain.schema.callbacks.tracers.schemas`, `TracerSessionV1`, `langchain_core.tracers.schemas`, `TracerSessionV1`], - [`langchain.schema.callbacks.tracers.schemas`, `TracerSessionBase`, `langchain_core.tracers.schemas`, `TracerSessionBase`], - [`langchain.schema.callbacks.tracers.schemas`, `TracerSession`, `langchain_core.tracers.schemas`, `TracerSession`], - [`langchain.schema.callbacks.tracers.schemas`, `BaseRun`, `langchain_core.tracers.schemas`, `BaseRun`], - [`langchain.schema.callbacks.tracers.schemas`, `LLMRun`, `langchain_core.tracers.schemas`, `LLMRun`], - [`langchain.schema.callbacks.tracers.schemas`, `ChainRun`, `langchain_core.tracers.schemas`, `ChainRun`], - [`langchain.schema.callbacks.tracers.schemas`, `ToolRun`, `langchain_core.tracers.schemas`, `ToolRun`], - [`langchain.schema.callbacks.tracers.schemas`, `Run`, `langchain_core.tracers`, `Run`], - [`langchain.schema.callbacks.tracers.stdout`, `try_json_stringify`, `langchain_core.tracers.stdout`, `try_json_stringify`], - [`langchain.schema.callbacks.tracers.stdout`, `elapsed`, `langchain_core.tracers.stdout`, `elapsed`], - [`langchain.schema.callbacks.tracers.stdout`, `FunctionCallbackHandler`, `langchain_core.tracers.stdout`, `FunctionCallbackHandler`], - [`langchain.schema.callbacks.tracers.stdout`, `ConsoleCallbackHandler`, `langchain_core.tracers`, `ConsoleCallbackHandler`], - [`langchain.schema.chat`, `ChatSession`, `langchain_core.chat_sessions`, `ChatSession`], - [`langchain.schema.chat_history`, `BaseChatMessageHistory`, `langchain_core.chat_history`, `BaseChatMessageHistory`], - [`langchain.schema.document`, `Document`, `langchain_core.documents`, `Document`], - [`langchain.schema.document`, `BaseDocumentTransformer`, `langchain_core.documents`, `BaseDocumentTransformer`], - [`langchain.schema.embeddings`, `Embeddings`, `langchain_core.embeddings`, `Embeddings`], - [`langchain.schema.exceptions`, `LangChainException`, `langchain_core.exceptions`, `LangChainException`], - [`langchain.schema.language_model`, `BaseLanguageModel`, `langchain_core.language_models`, `BaseLanguageModel`], - [`langchain.schema.language_model`, `_get_token_ids_default_method`, `langchain_core.language_models.base`, `_get_token_ids_default_method`], - [`langchain.schema.memory`, `BaseMemory`, `langchain_core.memory`, `BaseMemory`], - [`langchain.schema.messages`, `get_buffer_string`, `langchain_core.messages`, `get_buffer_string`], - [`langchain.schema.messages`, `BaseMessage`, `langchain_core.messages`, `BaseMessage`], - [`langchain.schema.messages`, `merge_content`, `langchain_core.messages`, `merge_content`], - [`langchain.schema.messages`, `BaseMessageChunk`, `langchain_core.messages`, `BaseMessageChunk`], - [`langchain.schema.messages`, `HumanMessage`, `langchain_core.messages`, `HumanMessage`], - [`langchain.schema.messages`, `HumanMessageChunk`, `langchain_core.messages`, `HumanMessageChunk`], - [`langchain.schema.messages`, `AIMessage`, `langchain_core.messages`, `AIMessage`], - [`langchain.schema.messages`, `AIMessageChunk`, `langchain_core.messages`, `AIMessageChunk`], - [`langchain.schema.messages`, `SystemMessage`, `langchain_core.messages`, `SystemMessage`], - [`langchain.schema.messages`, `SystemMessageChunk`, `langchain_core.messages`, `SystemMessageChunk`], - [`langchain.schema.messages`, `FunctionMessage`, `langchain_core.messages`, `FunctionMessage`], - [`langchain.schema.messages`, `FunctionMessageChunk`, `langchain_core.messages`, `FunctionMessageChunk`], - [`langchain.schema.messages`, `ToolMessage`, `langchain_core.messages`, `ToolMessage`], - [`langchain.schema.messages`, `ToolMessageChunk`, `langchain_core.messages`, `ToolMessageChunk`], - [`langchain.schema.messages`, `ChatMessage`, `langchain_core.messages`, `ChatMessage`], - [`langchain.schema.messages`, `ChatMessageChunk`, `langchain_core.messages`, `ChatMessageChunk`], - [`langchain.schema.messages`, `messages_to_dict`, `langchain_core.messages`, `messages_to_dict`], - [`langchain.schema.messages`, `messages_from_dict`, `langchain_core.messages`, `messages_from_dict`], - [`langchain.schema.messages`, `_message_to_dict`, `langchain_core.messages`, `message_to_dict`], - [`langchain.schema.messages`, `_message_from_dict`, `langchain_core.messages`, `_message_from_dict`], - [`langchain.schema.messages`, `message_to_dict`, `langchain_core.messages`, `message_to_dict`], - [`langchain.schema.output`, `Generation`, `langchain_core.outputs`, `Generation`], - [`langchain.schema.output`, `GenerationChunk`, `langchain_core.outputs`, `GenerationChunk`], - [`langchain.schema.output`, `ChatGeneration`, `langchain_core.outputs`, `ChatGeneration`], - [`langchain.schema.output`, `ChatGenerationChunk`, `langchain_core.outputs`, `ChatGenerationChunk`], - [`langchain.schema.output`, `RunInfo`, `langchain_core.outputs`, `RunInfo`], - [`langchain.schema.output`, `ChatResult`, `langchain_core.outputs`, `ChatResult`], - [`langchain.schema.output`, `LLMResult`, `langchain_core.outputs`, `LLMResult`], - [`langchain.schema.output_parser`, `BaseLLMOutputParser`, `langchain_core.output_parsers`, `BaseLLMOutputParser`], - [`langchain.schema.output_parser`, `BaseGenerationOutputParser`, `langchain_core.output_parsers`, `BaseGenerationOutputParser`], - [`langchain.schema.output_parser`, `BaseOutputParser`, `langchain_core.output_parsers`, `BaseOutputParser`], - [`langchain.schema.output_parser`, `BaseTransformOutputParser`, `langchain_core.output_parsers`, `BaseTransformOutputParser`], - [`langchain.schema.output_parser`, `BaseCumulativeTransformOutputParser`, `langchain_core.output_parsers`, `BaseCumulativeTransformOutputParser`], - [`langchain.schema.output_parser`, `NoOpOutputParser`, `langchain_core.output_parsers`, `StrOutputParser`], - [`langchain.schema.output_parser`, `StrOutputParser`, `langchain_core.output_parsers`, `StrOutputParser`], - [`langchain.schema.output_parser`, `OutputParserException`, `langchain_core.exceptions`, `OutputParserException`], - [`langchain.schema.prompt`, `PromptValue`, `langchain_core.prompt_values`, `PromptValue`], - [`langchain.schema.prompt_template`, `BasePromptTemplate`, `langchain_core.prompts`, `BasePromptTemplate`], - [`langchain.schema.prompt_template`, `format_document`, `langchain_core.prompts`, `format_document`], - [`langchain.schema.retriever`, `BaseRetriever`, `langchain_core.retrievers`, `BaseRetriever`], - [`langchain.schema.runnable`, `ConfigurableField`, `langchain_core.runnables`, `ConfigurableField`], - [`langchain.schema.runnable`, `ConfigurableFieldSingleOption`, `langchain_core.runnables`, `ConfigurableFieldSingleOption`], - [`langchain.schema.runnable`, `ConfigurableFieldMultiOption`, `langchain_core.runnables`, `ConfigurableFieldMultiOption`], - [`langchain.schema.runnable`, `patch_config`, `langchain_core.runnables`, `patch_config`], - [`langchain.schema.runnable`, `RouterInput`, `langchain_core.runnables`, `RouterInput`], - [`langchain.schema.runnable`, `RouterRunnable`, `langchain_core.runnables`, `RouterRunnable`], - [`langchain.schema.runnable`, `Runnable`, `langchain_core.runnables`, `Runnable`], - [`langchain.schema.runnable`, `RunnableSerializable`, `langchain_core.runnables`, `RunnableSerializable`], - [`langchain.schema.runnable`, `RunnableBinding`, `langchain_core.runnables`, `RunnableBinding`], - [`langchain.schema.runnable`, `RunnableBranch`, `langchain_core.runnables`, `RunnableBranch`], - [`langchain.schema.runnable`, `RunnableConfig`, `langchain_core.runnables`, `RunnableConfig`], - [`langchain.schema.runnable`, `RunnableGenerator`, `langchain_core.runnables`, `RunnableGenerator`], - [`langchain.schema.runnable`, `RunnableLambda`, `langchain_core.runnables`, `RunnableLambda`], - [`langchain.schema.runnable`, `RunnableMap`, `langchain_core.runnables`, `RunnableMap`], - [`langchain.schema.runnable`, `RunnableParallel`, `langchain_core.runnables`, `RunnableParallel`], - [`langchain.schema.runnable`, `RunnablePassthrough`, `langchain_core.runnables`, `RunnablePassthrough`], - [`langchain.schema.runnable`, `RunnableSequence`, `langchain_core.runnables`, `RunnableSequence`], - [`langchain.schema.runnable`, `RunnableWithFallbacks`, `langchain_core.runnables`, `RunnableWithFallbacks`], - [`langchain.schema.runnable.base`, `Runnable`, `langchain_core.runnables`, `Runnable`], - [`langchain.schema.runnable.base`, `RunnableSerializable`, `langchain_core.runnables`, `RunnableSerializable`], - [`langchain.schema.runnable.base`, `RunnableSequence`, `langchain_core.runnables`, `RunnableSequence`], - [`langchain.schema.runnable.base`, `RunnableParallel`, `langchain_core.runnables`, `RunnableParallel`], - [`langchain.schema.runnable.base`, `RunnableGenerator`, `langchain_core.runnables`, `RunnableGenerator`], - [`langchain.schema.runnable.base`, `RunnableLambda`, `langchain_core.runnables`, `RunnableLambda`], - [`langchain.schema.runnable.base`, `RunnableEachBase`, `langchain_core.runnables.base`, `RunnableEachBase`], - [`langchain.schema.runnable.base`, `RunnableEach`, `langchain_core.runnables.base`, `RunnableEach`], - [`langchain.schema.runnable.base`, `RunnableBindingBase`, `langchain_core.runnables.base`, `RunnableBindingBase`], - [`langchain.schema.runnable.base`, `RunnableBinding`, `langchain_core.runnables`, `RunnableBinding`], - [`langchain.schema.runnable.base`, `RunnableMap`, `langchain_core.runnables`, `RunnableMap`], - [`langchain.schema.runnable.base`, `coerce_to_runnable`, `langchain_core.runnables.base`, `coerce_to_runnable`], - [`langchain.schema.runnable.branch`, `RunnableBranch`, `langchain_core.runnables`, `RunnableBranch`], - [`langchain.schema.runnable.config`, `EmptyDict`, `langchain_core.runnables.config`, `EmptyDict`], - [`langchain.schema.runnable.config`, `RunnableConfig`, `langchain_core.runnables`, `RunnableConfig`], - [`langchain.schema.runnable.config`, `ensure_config`, `langchain_core.runnables`, `ensure_config`], - [`langchain.schema.runnable.config`, `get_config_list`, `langchain_core.runnables`, `get_config_list`], - [`langchain.schema.runnable.config`, `patch_config`, `langchain_core.runnables`, `patch_config`], - [`langchain.schema.runnable.config`, `merge_configs`, `langchain_core.runnables.config`, `merge_configs`], - [`langchain.schema.runnable.config`, `acall_func_with_variable_args`, `langchain_core.runnables.config`, `acall_func_with_variable_args`], - [`langchain.schema.runnable.config`, `call_func_with_variable_args`, `langchain_core.runnables.config`, `call_func_with_variable_args`], - [`langchain.schema.runnable.config`, `get_callback_manager_for_config`, `langchain_core.runnables.config`, `get_callback_manager_for_config`], - [`langchain.schema.runnable.config`, `get_async_callback_manager_for_config`, `langchain_core.runnables.config`, `get_async_callback_manager_for_config`], - [`langchain.schema.runnable.config`, `get_executor_for_config`, `langchain_core.runnables.config`, `get_executor_for_config`], - [`langchain.schema.runnable.configurable`, `DynamicRunnable`, `langchain_core.runnables.configurable`, `DynamicRunnable`], - [`langchain.schema.runnable.configurable`, `RunnableConfigurableFields`, `langchain_core.runnables.configurable`, `RunnableConfigurableFields`], - [`langchain.schema.runnable.configurable`, `StrEnum`, `langchain_core.runnables.configurable`, `StrEnum`], - [`langchain.schema.runnable.configurable`, `RunnableConfigurableAlternatives`, `langchain_core.runnables.configurable`, `RunnableConfigurableAlternatives`], - [`langchain.schema.runnable.configurable`, `make_options_spec`, `langchain_core.runnables.configurable`, `make_options_spec`], - [`langchain.schema.runnable.fallbacks`, `RunnableWithFallbacks`, `langchain_core.runnables`, `RunnableWithFallbacks`], - [`langchain.schema.runnable.history`, `RunnableWithMessageHistory`, `langchain_core.runnables.history`, `RunnableWithMessageHistory`], - [`langchain.schema.runnable.passthrough`, `aidentity`, `langchain_core.runnables.passthrough`, `aidentity`], - [`langchain.schema.runnable.passthrough`, `identity`, `langchain_core.runnables.passthrough`, `identity`], - [`langchain.schema.runnable.passthrough`, `RunnablePassthrough`, `langchain_core.runnables`, `RunnablePassthrough`], - [`langchain.schema.runnable.passthrough`, `RunnableAssign`, `langchain_core.runnables`, `RunnableAssign`], - [`langchain.schema.runnable.retry`, `RunnableRetry`, `langchain_core.runnables.retry`, `RunnableRetry`], - [`langchain.schema.runnable.router`, `RouterInput`, `langchain_core.runnables`, `RouterInput`], - [`langchain.schema.runnable.router`, `RouterRunnable`, `langchain_core.runnables`, `RouterRunnable`], - [`langchain.schema.runnable.utils`, `accepts_run_manager`, `langchain_core.runnables.utils`, `accepts_run_manager`], - [`langchain.schema.runnable.utils`, `accepts_config`, `langchain_core.runnables.utils`, `accepts_config`], - [`langchain.schema.runnable.utils`, `IsLocalDict`, `langchain_core.runnables.utils`, `IsLocalDict`], - [`langchain.schema.runnable.utils`, `IsFunctionArgDict`, `langchain_core.runnables.utils`, `IsFunctionArgDict`], - [`langchain.schema.runnable.utils`, `GetLambdaSource`, `langchain_core.runnables.utils`, `GetLambdaSource`], - [`langchain.schema.runnable.utils`, `get_function_first_arg_dict_keys`, `langchain_core.runnables.utils`, `get_function_first_arg_dict_keys`], - [`langchain.schema.runnable.utils`, `get_lambda_source`, `langchain_core.runnables.utils`, `get_lambda_source`], - [`langchain.schema.runnable.utils`, `indent_lines_after_first`, `langchain_core.runnables.utils`, `indent_lines_after_first`], - [`langchain.schema.runnable.utils`, `AddableDict`, `langchain_core.runnables`, `AddableDict`], - [`langchain.schema.runnable.utils`, `SupportsAdd`, `langchain_core.runnables.utils`, `SupportsAdd`], - [`langchain.schema.runnable.utils`, `add`, `langchain_core.runnables`, `add`], - [`langchain.schema.runnable.utils`, `ConfigurableField`, `langchain_core.runnables`, `ConfigurableField`], - [`langchain.schema.runnable.utils`, `ConfigurableFieldSingleOption`, `langchain_core.runnables`, `ConfigurableFieldSingleOption`], - [`langchain.schema.runnable.utils`, `ConfigurableFieldMultiOption`, `langchain_core.runnables`, `ConfigurableFieldMultiOption`], - [`langchain.schema.runnable.utils`, `ConfigurableFieldSpec`, `langchain_core.runnables`, `ConfigurableFieldSpec`], - [`langchain.schema.runnable.utils`, `get_unique_config_specs`, `langchain_core.runnables.utils`, `get_unique_config_specs`], - [`langchain.schema.runnable.utils`, `aadd`, `langchain_core.runnables`, `aadd`], - [`langchain.schema.runnable.utils`, `gated_coro`, `langchain_core.runnables.utils`, `gated_coro`], - [`langchain.schema.runnable.utils`, `gather_with_concurrency`, `langchain_core.runnables.utils`, `gather_with_concurrency`], - [`langchain.schema.storage`, `BaseStore`, `langchain_core.stores`, `BaseStore`], - [`langchain.schema.vectorstore`, `VectorStore`, `langchain_core.vectorstores`, `VectorStore`], - [`langchain.schema.vectorstore`, `VectorStoreRetriever`, `langchain_core.vectorstores`, `VectorStoreRetriever`], - [`langchain.tools`, `BaseTool`, `langchain_core.tools`, `BaseTool`], - [`langchain.tools`, `StructuredTool`, `langchain_core.tools`, `StructuredTool`], - [`langchain.tools`, `Tool`, `langchain_core.tools`, `Tool`], - [`langchain.tools`, `format_tool_to_openai_function`, `langchain_core.utils.function_calling`, `format_tool_to_openai_function`], - [`langchain.tools`, `tool`, `langchain_core.tools`, `tool`], - [`langchain.tools.base`, `SchemaAnnotationError`, `langchain_core.tools`, `SchemaAnnotationError`], - [`langchain.tools.base`, `create_schema_from_function`, `langchain_core.tools`, `create_schema_from_function`], - [`langchain.tools.base`, `ToolException`, `langchain_core.tools`, `ToolException`], - [`langchain.tools.base`, `BaseTool`, `langchain_core.tools`, `BaseTool`], - [`langchain.tools.base`, `Tool`, `langchain_core.tools`, `Tool`], - [`langchain.tools.base`, `StructuredTool`, `langchain_core.tools`, `StructuredTool`], - [`langchain.tools.base`, `tool`, `langchain_core.tools`, `tool`], - [`langchain.tools.convert_to_openai`, `format_tool_to_openai_function`, `langchain_core.utils.function_calling`, `format_tool_to_openai_function`], - [`langchain.tools.render`, `format_tool_to_openai_tool`, `langchain_core.utils.function_calling`, `format_tool_to_openai_tool`], - [`langchain.tools.render`, `format_tool_to_openai_function`, `langchain_core.utils.function_calling`, `format_tool_to_openai_function`], - [`langchain.utilities.loading`, `try_load_from_hub`, `langchain_core.utils`, `try_load_from_hub`], - [`langchain.utils`, `StrictFormatter`, `langchain_core.utils`, `StrictFormatter`], - [`langchain.utils`, `check_package_version`, `langchain_core.utils`, `check_package_version`], - [`langchain.utils`, `comma_list`, `langchain_core.utils`, `comma_list`], - [`langchain.utils`, `convert_to_secret_str`, `langchain_core.utils`, `convert_to_secret_str`], - [`langchain.utils`, `get_bolded_text`, `langchain_core.utils`, `get_bolded_text`], - [`langchain.utils`, `get_color_mapping`, `langchain_core.utils`, `get_color_mapping`], - [`langchain.utils`, `get_colored_text`, `langchain_core.utils`, `get_colored_text`], - [`langchain.utils`, `get_from_dict_or_env`, `langchain_core.utils`, `get_from_dict_or_env`], - [`langchain.utils`, `get_from_env`, `langchain_core.utils`, `get_from_env`], - [`langchain.utils`, `get_pydantic_field_names`, `langchain_core.utils`, `get_pydantic_field_names`], - [`langchain.utils`, `guard_import`, `langchain_core.utils`, `guard_import`], - [`langchain.utils`, `mock_now`, `langchain_core.utils`, `mock_now`], - [`langchain.utils`, `print_text`, `langchain_core.utils`, `print_text`], - [`langchain.utils`, `raise_for_status_with_text`, `langchain_core.utils`, `raise_for_status_with_text`], - [`langchain.utils`, `stringify_dict`, `langchain_core.utils`, `stringify_dict`], - [`langchain.utils`, `stringify_value`, `langchain_core.utils`, `stringify_value`], - [`langchain.utils`, `xor_args`, `langchain_core.utils`, `xor_args`], - [`langchain.utils.aiter`, `py_anext`, `langchain_core.utils.aiter`, `py_anext`], - [`langchain.utils.aiter`, `NoLock`, `langchain_core.utils.aiter`, `NoLock`], - [`langchain.utils.aiter`, `Tee`, `langchain_core.utils.aiter`, `Tee`], - [`langchain.utils.env`, `get_from_dict_or_env`, `langchain_core.utils`, `get_from_dict_or_env`], - [`langchain.utils.env`, `get_from_env`, `langchain_core.utils`, `get_from_env`], - [`langchain.utils.formatting`, `StrictFormatter`, `langchain_core.utils`, `StrictFormatter`], - [`langchain.utils.html`, `find_all_links`, `langchain_core.utils.html`, `find_all_links`], - [`langchain.utils.html`, `extract_sub_links`, `langchain_core.utils.html`, `extract_sub_links`], - [`langchain.utils.input`, `get_color_mapping`, `langchain_core.utils`, `get_color_mapping`], - [`langchain.utils.input`, `get_colored_text`, `langchain_core.utils`, `get_colored_text`], - [`langchain.utils.input`, `get_bolded_text`, `langchain_core.utils`, `get_bolded_text`], - [`langchain.utils.input`, `print_text`, `langchain_core.utils`, `print_text`], - [`langchain.utils.iter`, `NoLock`, `langchain_core.utils.iter`, `NoLock`], - [`langchain.utils.iter`, `tee_peer`, `langchain_core.utils.iter`, `tee_peer`], - [`langchain.utils.iter`, `Tee`, `langchain_core.utils.iter`, `Tee`], - [`langchain.utils.iter`, `batch_iterate`, `langchain_core.utils.iter`, `batch_iterate`], - [`langchain.utils.json_schema`, `_retrieve_ref`, `langchain_core.utils.json_schema`, `_retrieve_ref`], - [`langchain.utils.json_schema`, `_dereference_refs_helper`, `langchain_core.utils.json_schema`, `_dereference_refs_helper`], - [`langchain.utils.json_schema`, `_infer_skip_keys`, `langchain_core.utils.json_schema`, `_infer_skip_keys`], - [`langchain.utils.json_schema`, `dereference_refs`, `langchain_core.utils.json_schema`, `dereference_refs`], - [`langchain.utils.loading`, `try_load_from_hub`, `langchain_core.utils`, `try_load_from_hub`], - [`langchain.utils.openai_functions`, `FunctionDescription`, `langchain_core.utils.function_calling`, `FunctionDescription`], - [`langchain.utils.openai_functions`, `ToolDescription`, `langchain_core.utils.function_calling`, `ToolDescription`], - [`langchain.utils.openai_functions`, `convert_pydantic_to_openai_function`, `langchain_core.utils.function_calling`, `convert_pydantic_to_openai_function`], - [`langchain.utils.openai_functions`, `convert_pydantic_to_openai_tool`, `langchain_core.utils.function_calling`, `convert_pydantic_to_openai_tool`], - [`langchain.utils.pydantic`, `get_pydantic_major_version`, `langchain_core.utils.pydantic`, `get_pydantic_major_version`], - [`langchain.utils.strings`, `stringify_value`, `langchain_core.utils`, `stringify_value`], - [`langchain.utils.strings`, `stringify_dict`, `langchain_core.utils`, `stringify_dict`], - [`langchain.utils.strings`, `comma_list`, `langchain_core.utils`, `comma_list`], - [`langchain.utils.utils`, `xor_args`, `langchain_core.utils`, `xor_args`], - [`langchain.utils.utils`, `raise_for_status_with_text`, `langchain_core.utils`, `raise_for_status_with_text`], - [`langchain.utils.utils`, `mock_now`, `langchain_core.utils`, `mock_now`], - [`langchain.utils.utils`, `guard_import`, `langchain_core.utils`, `guard_import`], - [`langchain.utils.utils`, `check_package_version`, `langchain_core.utils`, `check_package_version`], - [`langchain.utils.utils`, `get_pydantic_field_names`, `langchain_core.utils`, `get_pydantic_field_names`], - [`langchain.utils.utils`, `build_extra_kwargs`, `langchain_core.utils`, `build_extra_kwargs`], - [`langchain.utils.utils`, `convert_to_secret_str`, `langchain_core.utils`, `convert_to_secret_str`], - [`langchain.vectorstores`, `VectorStore`, `langchain_core.vectorstores`, `VectorStore`], - [`langchain.vectorstores.base`, `VectorStore`, `langchain_core.vectorstores`, `VectorStore`], - [`langchain.vectorstores.base`, `VectorStoreRetriever`, `langchain_core.vectorstores`, `VectorStoreRetriever`], - [`langchain.vectorstores.singlestoredb`, `SingleStoreDBRetriever`, `langchain_core.vectorstores`, `VectorStoreRetriever`] - ]) -} - -// Add this for invoking directly -langchain_migrate_langchain_to_core() diff --git a/libs/cli/langchain_cli/namespaces/migrate/.grit/patterns/langchain_to_core.json b/libs/cli/langchain_cli/namespaces/migrate/.grit/patterns/langchain_to_core.json deleted file mode 100644 index 3a767528618..00000000000 --- a/libs/cli/langchain_cli/namespaces/migrate/.grit/patterns/langchain_to_core.json +++ /dev/null @@ -1,2122 +0,0 @@ -[ - [ - "langchain._api.deprecated", - "langchain_core._api.deprecated" - ], - [ - "langchain._api.LangChainDeprecationWarning", - "langchain_core._api.LangChainDeprecationWarning" - ], - [ - "langchain._api.suppress_langchain_deprecation_warning", - "langchain_core._api.suppress_langchain_deprecation_warning" - ], - [ - "langchain._api.surface_langchain_deprecation_warnings", - "langchain_core._api.surface_langchain_deprecation_warnings" - ], - [ - "langchain._api.warn_deprecated", - "langchain_core._api.warn_deprecated" - ], - [ - "langchain._api.deprecation.LangChainDeprecationWarning", - "langchain_core._api.LangChainDeprecationWarning" - ], - [ - "langchain._api.deprecation.LangChainPendingDeprecationWarning", - "langchain_core._api.deprecation.LangChainPendingDeprecationWarning" - ], - [ - "langchain._api.deprecation.deprecated", - "langchain_core._api.deprecated" - ], - [ - "langchain._api.deprecation.suppress_langchain_deprecation_warning", - "langchain_core._api.suppress_langchain_deprecation_warning" - ], - [ - "langchain._api.deprecation.warn_deprecated", - "langchain_core._api.warn_deprecated" - ], - [ - "langchain._api.deprecation.surface_langchain_deprecation_warnings", - "langchain_core._api.surface_langchain_deprecation_warnings" - ], - [ - "langchain._api.path.get_relative_path", - "langchain_core._api.get_relative_path" - ], - [ - "langchain._api.path.as_import_path", - "langchain_core._api.as_import_path" - ], - [ - "langchain.agents.Tool", - "langchain_core.tools.Tool" - ], - [ - "langchain.agents.tool", - "langchain_core.tools.tool" - ], - [ - "langchain.agents.tools.BaseTool", - "langchain_core.tools.BaseTool" - ], - [ - "langchain.agents.tools.tool", - "langchain_core.tools.tool" - ], - [ - "langchain.agents.tools.Tool", - "langchain_core.tools.Tool" - ], - [ - "langchain.base_language.BaseLanguageModel", - "langchain_core.language_models.BaseLanguageModel" - ], - [ - "langchain.callbacks.StdOutCallbackHandler", - "langchain_core.callbacks.StdOutCallbackHandler" - ], - [ - "langchain.callbacks.StreamingStdOutCallbackHandler", - "langchain_core.callbacks.StreamingStdOutCallbackHandler" - ], - [ - "langchain.callbacks.LangChainTracer", - "langchain_core.tracers.LangChainTracer" - ], - [ - "langchain.callbacks.tracing_v2_enabled", - "langchain_core.tracers.context.tracing_v2_enabled" - ], - [ - "langchain.callbacks.collect_runs", - "langchain_core.tracers.context.collect_runs" - ], - [ - "langchain.callbacks.base.RetrieverManagerMixin", - "langchain_core.callbacks.RetrieverManagerMixin" - ], - [ - "langchain.callbacks.base.LLMManagerMixin", - "langchain_core.callbacks.LLMManagerMixin" - ], - [ - "langchain.callbacks.base.ChainManagerMixin", - "langchain_core.callbacks.ChainManagerMixin" - ], - [ - "langchain.callbacks.base.ToolManagerMixin", - "langchain_core.callbacks.ToolManagerMixin" - ], - [ - "langchain.callbacks.base.CallbackManagerMixin", - "langchain_core.callbacks.CallbackManagerMixin" - ], - [ - "langchain.callbacks.base.RunManagerMixin", - "langchain_core.callbacks.RunManagerMixin" - ], - [ - "langchain.callbacks.base.BaseCallbackHandler", - "langchain_core.callbacks.BaseCallbackHandler" - ], - [ - "langchain.callbacks.base.AsyncCallbackHandler", - "langchain_core.callbacks.AsyncCallbackHandler" - ], - [ - "langchain.callbacks.base.BaseCallbackManager", - "langchain_core.callbacks.BaseCallbackManager" - ], - [ - "langchain.callbacks.manager.BaseRunManager", - "langchain_core.callbacks.BaseRunManager" - ], - [ - "langchain.callbacks.manager.RunManager", - "langchain_core.callbacks.RunManager" - ], - [ - "langchain.callbacks.manager.ParentRunManager", - "langchain_core.callbacks.ParentRunManager" - ], - [ - "langchain.callbacks.manager.AsyncRunManager", - "langchain_core.callbacks.AsyncRunManager" - ], - [ - "langchain.callbacks.manager.AsyncParentRunManager", - "langchain_core.callbacks.AsyncParentRunManager" - ], - [ - "langchain.callbacks.manager.CallbackManagerForLLMRun", - "langchain_core.callbacks.CallbackManagerForLLMRun" - ], - [ - "langchain.callbacks.manager.AsyncCallbackManagerForLLMRun", - "langchain_core.callbacks.AsyncCallbackManagerForLLMRun" - ], - [ - "langchain.callbacks.manager.CallbackManagerForChainRun", - "langchain_core.callbacks.CallbackManagerForChainRun" - ], - [ - "langchain.callbacks.manager.AsyncCallbackManagerForChainRun", - "langchain_core.callbacks.AsyncCallbackManagerForChainRun" - ], - [ - "langchain.callbacks.manager.CallbackManagerForToolRun", - "langchain_core.callbacks.CallbackManagerForToolRun" - ], - [ - "langchain.callbacks.manager.AsyncCallbackManagerForToolRun", - "langchain_core.callbacks.AsyncCallbackManagerForToolRun" - ], - [ - "langchain.callbacks.manager.CallbackManagerForRetrieverRun", - "langchain_core.callbacks.CallbackManagerForRetrieverRun" - ], - [ - "langchain.callbacks.manager.AsyncCallbackManagerForRetrieverRun", - "langchain_core.callbacks.AsyncCallbackManagerForRetrieverRun" - ], - [ - "langchain.callbacks.manager.CallbackManager", - "langchain_core.callbacks.CallbackManager" - ], - [ - "langchain.callbacks.manager.CallbackManagerForChainGroup", - "langchain_core.callbacks.CallbackManagerForChainGroup" - ], - [ - "langchain.callbacks.manager.AsyncCallbackManager", - "langchain_core.callbacks.AsyncCallbackManager" - ], - [ - "langchain.callbacks.manager.AsyncCallbackManagerForChainGroup", - "langchain_core.callbacks.AsyncCallbackManagerForChainGroup" - ], - [ - "langchain.callbacks.manager.tracing_enabled", - "langchain_core.tracers.context.tracing_enabled" - ], - [ - "langchain.callbacks.manager.tracing_v2_enabled", - "langchain_core.tracers.context.tracing_v2_enabled" - ], - [ - "langchain.callbacks.manager.collect_runs", - "langchain_core.tracers.context.collect_runs" - ], - [ - "langchain.callbacks.manager.atrace_as_chain_group", - "langchain_core.callbacks.manager.atrace_as_chain_group" - ], - [ - "langchain.callbacks.manager.trace_as_chain_group", - "langchain_core.callbacks.manager.trace_as_chain_group" - ], - [ - "langchain.callbacks.manager.handle_event", - "langchain_core.callbacks.manager.handle_event" - ], - [ - "langchain.callbacks.manager.ahandle_event", - "langchain_core.callbacks.manager.ahandle_event" - ], - [ - "langchain.callbacks.manager.env_var_is_set", - "langchain_core.utils.env.env_var_is_set" - ], - [ - "langchain.callbacks.stdout.StdOutCallbackHandler", - "langchain_core.callbacks.StdOutCallbackHandler" - ], - [ - "langchain.callbacks.streaming_stdout.StreamingStdOutCallbackHandler", - "langchain_core.callbacks.StreamingStdOutCallbackHandler" - ], - [ - "langchain.callbacks.tracers.ConsoleCallbackHandler", - "langchain_core.tracers.ConsoleCallbackHandler" - ], - [ - "langchain.callbacks.tracers.FunctionCallbackHandler", - "langchain_core.tracers.stdout.FunctionCallbackHandler" - ], - [ - "langchain.callbacks.tracers.LangChainTracer", - "langchain_core.tracers.LangChainTracer" - ], - [ - "langchain.callbacks.tracers.LangChainTracerV1", - "langchain_core.tracers.langchain_v1.LangChainTracerV1" - ], - [ - "langchain.callbacks.tracers.base.BaseTracer", - "langchain_core.tracers.BaseTracer" - ], - [ - "langchain.callbacks.tracers.base.TracerException", - "langchain_core.exceptions.TracerException" - ], - [ - "langchain.callbacks.tracers.evaluation.wait_for_all_evaluators", - "langchain_core.tracers.evaluation.wait_for_all_evaluators" - ], - [ - "langchain.callbacks.tracers.evaluation.EvaluatorCallbackHandler", - "langchain_core.tracers.EvaluatorCallbackHandler" - ], - [ - "langchain.callbacks.tracers.langchain.LangChainTracer", - "langchain_core.tracers.LangChainTracer" - ], - [ - "langchain.callbacks.tracers.langchain.wait_for_all_tracers", - "langchain_core.tracers.langchain.wait_for_all_tracers" - ], - [ - "langchain.callbacks.tracers.langchain_v1.LangChainTracerV1", - "langchain_core.tracers.langchain_v1.LangChainTracerV1" - ], - [ - "langchain.callbacks.tracers.log_stream.LogEntry", - "langchain_core.tracers.log_stream.LogEntry" - ], - [ - "langchain.callbacks.tracers.log_stream.RunState", - "langchain_core.tracers.log_stream.RunState" - ], - [ - "langchain.callbacks.tracers.log_stream.RunLog", - "langchain_core.tracers.RunLog" - ], - [ - "langchain.callbacks.tracers.log_stream.RunLogPatch", - "langchain_core.tracers.RunLogPatch" - ], - [ - "langchain.callbacks.tracers.log_stream.LogStreamCallbackHandler", - "langchain_core.tracers.LogStreamCallbackHandler" - ], - [ - "langchain.callbacks.tracers.root_listeners.RootListenersTracer", - "langchain_core.tracers.root_listeners.RootListenersTracer" - ], - [ - "langchain.callbacks.tracers.run_collector.RunCollectorCallbackHandler", - "langchain_core.tracers.run_collector.RunCollectorCallbackHandler" - ], - [ - "langchain.callbacks.tracers.schemas.BaseRun", - "langchain_core.tracers.schemas.BaseRun" - ], - [ - "langchain.callbacks.tracers.schemas.ChainRun", - "langchain_core.tracers.schemas.ChainRun" - ], - [ - "langchain.callbacks.tracers.schemas.LLMRun", - "langchain_core.tracers.schemas.LLMRun" - ], - [ - "langchain.callbacks.tracers.schemas.Run", - "langchain_core.tracers.Run" - ], - [ - "langchain.callbacks.tracers.schemas.RunTypeEnum", - "langchain_core.tracers.schemas.RunTypeEnum" - ], - [ - "langchain.callbacks.tracers.schemas.ToolRun", - "langchain_core.tracers.schemas.ToolRun" - ], - [ - "langchain.callbacks.tracers.schemas.TracerSession", - "langchain_core.tracers.schemas.TracerSession" - ], - [ - "langchain.callbacks.tracers.schemas.TracerSessionBase", - "langchain_core.tracers.schemas.TracerSessionBase" - ], - [ - "langchain.callbacks.tracers.schemas.TracerSessionV1", - "langchain_core.tracers.schemas.TracerSessionV1" - ], - [ - "langchain.callbacks.tracers.schemas.TracerSessionV1Base", - "langchain_core.tracers.schemas.TracerSessionV1Base" - ], - [ - "langchain.callbacks.tracers.schemas.TracerSessionV1Create", - "langchain_core.tracers.schemas.TracerSessionV1Create" - ], - [ - "langchain.callbacks.tracers.stdout.FunctionCallbackHandler", - "langchain_core.tracers.stdout.FunctionCallbackHandler" - ], - [ - "langchain.callbacks.tracers.stdout.ConsoleCallbackHandler", - "langchain_core.tracers.ConsoleCallbackHandler" - ], - [ - "langchain.chains.openai_functions.convert_to_openai_function", - "langchain_core.utils.function_calling.convert_to_openai_function" - ], - [ - "langchain.chains.openai_functions.base.convert_to_openai_function", - "langchain_core.utils.function_calling.convert_to_openai_function" - ], - [ - "langchain.chat_models.base.BaseChatModel", - "langchain_core.language_models.BaseChatModel" - ], - [ - "langchain.chat_models.base.SimpleChatModel", - "langchain_core.language_models.SimpleChatModel" - ], - [ - "langchain.chat_models.base.generate_from_stream", - "langchain_core.language_models.chat_models.generate_from_stream" - ], - [ - "langchain.chat_models.base.agenerate_from_stream", - "langchain_core.language_models.chat_models.agenerate_from_stream" - ], - [ - "langchain.docstore.document.Document", - "langchain_core.documents.Document" - ], - [ - "langchain.document_loaders.Blob", - "langchain_core.document_loaders.Blob" - ], - [ - "langchain.document_loaders.BlobLoader", - "langchain_core.document_loaders.BlobLoader" - ], - [ - "langchain.document_loaders.base.BaseLoader", - "langchain_core.document_loaders.BaseLoader" - ], - [ - "langchain.document_loaders.base.BaseBlobParser", - "langchain_core.document_loaders.BaseBlobParser" - ], - [ - "langchain.document_loaders.blob_loaders.BlobLoader", - "langchain_core.document_loaders.BlobLoader" - ], - [ - "langchain.document_loaders.blob_loaders.Blob", - "langchain_core.document_loaders.Blob" - ], - [ - "langchain.document_loaders.blob_loaders.schema.Blob", - "langchain_core.document_loaders.Blob" - ], - [ - "langchain.document_loaders.blob_loaders.schema.BlobLoader", - "langchain_core.document_loaders.BlobLoader" - ], - [ - "langchain.embeddings.base.Embeddings", - "langchain_core.embeddings.Embeddings" - ], - [ - "langchain.formatting.StrictFormatter", - "langchain_core.utils.StrictFormatter" - ], - [ - "langchain.input.get_bolded_text", - "langchain_core.utils.get_bolded_text" - ], - [ - "langchain.input.get_color_mapping", - "langchain_core.utils.get_color_mapping" - ], - [ - "langchain.input.get_colored_text", - "langchain_core.utils.get_colored_text" - ], - [ - "langchain.input.print_text", - "langchain_core.utils.print_text" - ], - [ - "langchain.llms.base.BaseLanguageModel", - "langchain_core.language_models.BaseLanguageModel" - ], - [ - "langchain.llms.base.BaseLLM", - "langchain_core.language_models.BaseLLM" - ], - [ - "langchain.llms.base.LLM", - "langchain_core.language_models.LLM" - ], - [ - "langchain.load.dumpd", - "langchain_core.load.dumpd" - ], - [ - "langchain.load.dumps", - "langchain_core.load.dumps" - ], - [ - "langchain.load.load", - "langchain_core.load.load" - ], - [ - "langchain.load.loads", - "langchain_core.load.loads" - ], - [ - "langchain.load.dump.default", - "langchain_core.load.dump.default" - ], - [ - "langchain.load.dump.dumps", - "langchain_core.load.dumps" - ], - [ - "langchain.load.dump.dumpd", - "langchain_core.load.dumpd" - ], - [ - "langchain.load.load.Reviver", - "langchain_core.load.load.Reviver" - ], - [ - "langchain.load.load.loads", - "langchain_core.load.loads" - ], - [ - "langchain.load.load.load", - "langchain_core.load.load" - ], - [ - "langchain.load.serializable.BaseSerialized", - "langchain_core.load.serializable.BaseSerialized" - ], - [ - "langchain.load.serializable.SerializedConstructor", - "langchain_core.load.serializable.SerializedConstructor" - ], - [ - "langchain.load.serializable.SerializedSecret", - "langchain_core.load.serializable.SerializedSecret" - ], - [ - "langchain.load.serializable.SerializedNotImplemented", - "langchain_core.load.serializable.SerializedNotImplemented" - ], - [ - "langchain.load.serializable.try_neq_default", - "langchain_core.load.serializable.try_neq_default" - ], - [ - "langchain.load.serializable.Serializable", - "langchain_core.load.Serializable" - ], - [ - "langchain.load.serializable.to_json_not_implemented", - "langchain_core.load.serializable.to_json_not_implemented" - ], - [ - "langchain.output_parsers.CommaSeparatedListOutputParser", - "langchain_core.output_parsers.CommaSeparatedListOutputParser" - ], - [ - "langchain.output_parsers.ListOutputParser", - "langchain_core.output_parsers.ListOutputParser" - ], - [ - "langchain.output_parsers.MarkdownListOutputParser", - "langchain_core.output_parsers.MarkdownListOutputParser" - ], - [ - "langchain.output_parsers.NumberedListOutputParser", - "langchain_core.output_parsers.NumberedListOutputParser" - ], - [ - "langchain.output_parsers.PydanticOutputParser", - "langchain_core.output_parsers.PydanticOutputParser" - ], - [ - "langchain.output_parsers.XMLOutputParser", - "langchain_core.output_parsers.XMLOutputParser" - ], - [ - "langchain.output_parsers.JsonOutputToolsParser", - "langchain_core.output_parsers.openai_tools.JsonOutputToolsParser" - ], - [ - "langchain.output_parsers.PydanticToolsParser", - "langchain_core.output_parsers.openai_tools.PydanticToolsParser" - ], - [ - "langchain.output_parsers.JsonOutputKeyToolsParser", - "langchain_core.output_parsers.openai_tools.JsonOutputKeyToolsParser" - ], - [ - "langchain.output_parsers.json.SimpleJsonOutputParser", - "langchain_core.output_parsers.JsonOutputParser" - ], - [ - "langchain.output_parsers.json.parse_partial_json", - "langchain_core.utils.json.parse_partial_json" - ], - [ - "langchain.output_parsers.json.parse_json_markdown", - "langchain_core.utils.json.parse_json_markdown" - ], - [ - "langchain.output_parsers.json.parse_and_check_json_markdown", - "langchain_core.utils.json.parse_and_check_json_markdown" - ], - [ - "langchain.output_parsers.list.ListOutputParser", - "langchain_core.output_parsers.ListOutputParser" - ], - [ - "langchain.output_parsers.list.CommaSeparatedListOutputParser", - "langchain_core.output_parsers.CommaSeparatedListOutputParser" - ], - [ - "langchain.output_parsers.list.NumberedListOutputParser", - "langchain_core.output_parsers.NumberedListOutputParser" - ], - [ - "langchain.output_parsers.list.MarkdownListOutputParser", - "langchain_core.output_parsers.MarkdownListOutputParser" - ], - [ - "langchain.output_parsers.openai_functions.PydanticOutputFunctionsParser", - "langchain_core.output_parsers.openai_functions.PydanticOutputFunctionsParser" - ], - [ - "langchain.output_parsers.openai_functions.PydanticAttrOutputFunctionsParser", - "langchain_core.output_parsers.openai_functions.PydanticAttrOutputFunctionsParser" - ], - [ - "langchain.output_parsers.openai_functions.JsonOutputFunctionsParser", - "langchain_core.output_parsers.openai_functions.JsonOutputFunctionsParser" - ], - [ - "langchain.output_parsers.openai_functions.JsonKeyOutputFunctionsParser", - "langchain_core.output_parsers.openai_functions.JsonKeyOutputFunctionsParser" - ], - [ - "langchain.output_parsers.openai_tools.PydanticToolsParser", - "langchain_core.output_parsers.openai_tools.PydanticToolsParser" - ], - [ - "langchain.output_parsers.openai_tools.JsonOutputToolsParser", - "langchain_core.output_parsers.openai_tools.JsonOutputToolsParser" - ], - [ - "langchain.output_parsers.openai_tools.JsonOutputKeyToolsParser", - "langchain_core.output_parsers.openai_tools.JsonOutputKeyToolsParser" - ], - [ - "langchain.output_parsers.pydantic.PydanticOutputParser", - "langchain_core.output_parsers.PydanticOutputParser" - ], - [ - "langchain.output_parsers.xml.XMLOutputParser", - "langchain_core.output_parsers.XMLOutputParser" - ], - [ - "langchain.prompts.AIMessagePromptTemplate", - "langchain_core.prompts.AIMessagePromptTemplate" - ], - [ - "langchain.prompts.BaseChatPromptTemplate", - "langchain_core.prompts.BaseChatPromptTemplate" - ], - [ - "langchain.prompts.BasePromptTemplate", - "langchain_core.prompts.BasePromptTemplate" - ], - [ - "langchain.prompts.ChatMessagePromptTemplate", - "langchain_core.prompts.ChatMessagePromptTemplate" - ], - [ - "langchain.prompts.ChatPromptTemplate", - "langchain_core.prompts.ChatPromptTemplate" - ], - [ - "langchain.prompts.FewShotPromptTemplate", - "langchain_core.prompts.FewShotPromptTemplate" - ], - [ - "langchain.prompts.FewShotPromptWithTemplates", - "langchain_core.prompts.FewShotPromptWithTemplates" - ], - [ - "langchain.prompts.HumanMessagePromptTemplate", - "langchain_core.prompts.HumanMessagePromptTemplate" - ], - [ - "langchain.prompts.LengthBasedExampleSelector", - "langchain_core.example_selectors.LengthBasedExampleSelector" - ], - [ - "langchain.prompts.MaxMarginalRelevanceExampleSelector", - "langchain_core.example_selectors.MaxMarginalRelevanceExampleSelector" - ], - [ - "langchain.prompts.MessagesPlaceholder", - "langchain_core.prompts.MessagesPlaceholder" - ], - [ - "langchain.prompts.PipelinePromptTemplate", - "langchain_core.prompts.PipelinePromptTemplate" - ], - [ - "langchain.prompts.PromptTemplate", - "langchain_core.prompts.PromptTemplate" - ], - [ - "langchain.prompts.SemanticSimilarityExampleSelector", - "langchain_core.example_selectors.SemanticSimilarityExampleSelector" - ], - [ - "langchain.prompts.StringPromptTemplate", - "langchain_core.prompts.StringPromptTemplate" - ], - [ - "langchain.prompts.SystemMessagePromptTemplate", - "langchain_core.prompts.SystemMessagePromptTemplate" - ], - [ - "langchain.prompts.load_prompt", - "langchain_core.prompts.load_prompt" - ], - [ - "langchain.prompts.FewShotChatMessagePromptTemplate", - "langchain_core.prompts.FewShotChatMessagePromptTemplate" - ], - [ - "langchain.prompts.Prompt", - "langchain_core.prompts.PromptTemplate" - ], - [ - "langchain.prompts.base.jinja2_formatter", - "langchain_core.prompts.jinja2_formatter" - ], - [ - "langchain.prompts.base.validate_jinja2", - "langchain_core.prompts.validate_jinja2" - ], - [ - "langchain.prompts.base.check_valid_template", - "langchain_core.prompts.check_valid_template" - ], - [ - "langchain.prompts.base.get_template_variables", - "langchain_core.prompts.get_template_variables" - ], - [ - "langchain.prompts.base.StringPromptTemplate", - "langchain_core.prompts.StringPromptTemplate" - ], - [ - "langchain.prompts.base.BasePromptTemplate", - "langchain_core.prompts.BasePromptTemplate" - ], - [ - "langchain.prompts.base.StringPromptValue", - "langchain_core.prompt_values.StringPromptValue" - ], - [ - "langchain.prompts.base._get_jinja2_variables_from_template", - "langchain_core.prompts.string._get_jinja2_variables_from_template" - ], - [ - "langchain.prompts.chat.BaseMessagePromptTemplate", - "langchain_core.prompts.chat.BaseMessagePromptTemplate" - ], - [ - "langchain.prompts.chat.MessagesPlaceholder", - "langchain_core.prompts.MessagesPlaceholder" - ], - [ - "langchain.prompts.chat.BaseStringMessagePromptTemplate", - "langchain_core.prompts.chat.BaseStringMessagePromptTemplate" - ], - [ - "langchain.prompts.chat.ChatMessagePromptTemplate", - "langchain_core.prompts.ChatMessagePromptTemplate" - ], - [ - "langchain.prompts.chat.HumanMessagePromptTemplate", - "langchain_core.prompts.HumanMessagePromptTemplate" - ], - [ - "langchain.prompts.chat.AIMessagePromptTemplate", - "langchain_core.prompts.AIMessagePromptTemplate" - ], - [ - "langchain.prompts.chat.SystemMessagePromptTemplate", - "langchain_core.prompts.SystemMessagePromptTemplate" - ], - [ - "langchain.prompts.chat.BaseChatPromptTemplate", - "langchain_core.prompts.BaseChatPromptTemplate" - ], - [ - "langchain.prompts.chat.ChatPromptTemplate", - "langchain_core.prompts.ChatPromptTemplate" - ], - [ - "langchain.prompts.chat.ChatPromptValue", - "langchain_core.prompt_values.ChatPromptValue" - ], - [ - "langchain.prompts.chat.ChatPromptValueConcrete", - "langchain_core.prompt_values.ChatPromptValueConcrete" - ], - [ - "langchain.prompts.chat._convert_to_message", - "langchain_core.prompts.chat._convert_to_message" - ], - [ - "langchain.prompts.chat._create_template_from_message_type", - "langchain_core.prompts.chat._create_template_from_message_type" - ], - [ - "langchain.prompts.example_selector.LengthBasedExampleSelector", - "langchain_core.example_selectors.LengthBasedExampleSelector" - ], - [ - "langchain.prompts.example_selector.MaxMarginalRelevanceExampleSelector", - "langchain_core.example_selectors.MaxMarginalRelevanceExampleSelector" - ], - [ - "langchain.prompts.example_selector.SemanticSimilarityExampleSelector", - "langchain_core.example_selectors.SemanticSimilarityExampleSelector" - ], - [ - "langchain.prompts.example_selector.base.BaseExampleSelector", - "langchain_core.example_selectors.BaseExampleSelector" - ], - [ - "langchain.prompts.example_selector.length_based.LengthBasedExampleSelector", - "langchain_core.example_selectors.LengthBasedExampleSelector" - ], - [ - "langchain.prompts.example_selector.semantic_similarity.sorted_values", - "langchain_core.example_selectors.sorted_values" - ], - [ - "langchain.prompts.example_selector.semantic_similarity.SemanticSimilarityExampleSelector", - "langchain_core.example_selectors.SemanticSimilarityExampleSelector" - ], - [ - "langchain.prompts.example_selector.semantic_similarity.MaxMarginalRelevanceExampleSelector", - "langchain_core.example_selectors.MaxMarginalRelevanceExampleSelector" - ], - [ - "langchain.prompts.few_shot.FewShotPromptTemplate", - "langchain_core.prompts.FewShotPromptTemplate" - ], - [ - "langchain.prompts.few_shot.FewShotChatMessagePromptTemplate", - "langchain_core.prompts.FewShotChatMessagePromptTemplate" - ], - [ - "langchain.prompts.few_shot._FewShotPromptTemplateMixin", - "langchain_core.prompts.few_shot._FewShotPromptTemplateMixin" - ], - [ - "langchain.prompts.few_shot_with_templates.FewShotPromptWithTemplates", - "langchain_core.prompts.FewShotPromptWithTemplates" - ], - [ - "langchain.prompts.loading.load_prompt_from_config", - "langchain_core.prompts.loading.load_prompt_from_config" - ], - [ - "langchain.prompts.loading.load_prompt", - "langchain_core.prompts.load_prompt" - ], - [ - "langchain.prompts.loading.try_load_from_hub", - "langchain_core.utils.try_load_from_hub" - ], - [ - "langchain.prompts.loading._load_examples", - "langchain_core.prompts.loading._load_examples" - ], - [ - "langchain.prompts.loading._load_few_shot_prompt", - "langchain_core.prompts.loading._load_few_shot_prompt" - ], - [ - "langchain.prompts.loading._load_output_parser", - "langchain_core.prompts.loading._load_output_parser" - ], - [ - "langchain.prompts.loading._load_prompt", - "langchain_core.prompts.loading._load_prompt" - ], - [ - "langchain.prompts.loading._load_prompt_from_file", - "langchain_core.prompts.loading._load_prompt_from_file" - ], - [ - "langchain.prompts.loading._load_template", - "langchain_core.prompts.loading._load_template" - ], - [ - "langchain.prompts.pipeline.PipelinePromptTemplate", - "langchain_core.prompts.PipelinePromptTemplate" - ], - [ - "langchain.prompts.pipeline._get_inputs", - "langchain_core.prompts.pipeline._get_inputs" - ], - [ - "langchain.prompts.prompt.PromptTemplate", - "langchain_core.prompts.PromptTemplate" - ], - [ - "langchain.prompts.prompt.Prompt", - "langchain_core.prompts.PromptTemplate" - ], - [ - "langchain.schema.BaseCache", - "langchain_core.caches.BaseCache" - ], - [ - "langchain.schema.BaseMemory", - "langchain_core.memory.BaseMemory" - ], - [ - "langchain.schema.BaseStore", - "langchain_core.stores.BaseStore" - ], - [ - "langchain.schema.AgentFinish", - "langchain_core.agents.AgentFinish" - ], - [ - "langchain.schema.AgentAction", - "langchain_core.agents.AgentAction" - ], - [ - "langchain.schema.Document", - "langchain_core.documents.Document" - ], - [ - "langchain.schema.BaseChatMessageHistory", - "langchain_core.chat_history.BaseChatMessageHistory" - ], - [ - "langchain.schema.BaseDocumentTransformer", - "langchain_core.documents.BaseDocumentTransformer" - ], - [ - "langchain.schema.BaseMessage", - "langchain_core.messages.BaseMessage" - ], - [ - "langchain.schema.ChatMessage", - "langchain_core.messages.ChatMessage" - ], - [ - "langchain.schema.FunctionMessage", - "langchain_core.messages.FunctionMessage" - ], - [ - "langchain.schema.HumanMessage", - "langchain_core.messages.HumanMessage" - ], - [ - "langchain.schema.AIMessage", - "langchain_core.messages.AIMessage" - ], - [ - "langchain.schema.SystemMessage", - "langchain_core.messages.SystemMessage" - ], - [ - "langchain.schema.messages_from_dict", - "langchain_core.messages.messages_from_dict" - ], - [ - "langchain.schema.messages_to_dict", - "langchain_core.messages.messages_to_dict" - ], - [ - "langchain.schema.message_to_dict", - "langchain_core.messages.message_to_dict" - ], - [ - "langchain.schema._message_to_dict", - "langchain_core.messages.message_to_dict" - ], - [ - "langchain.schema._message_from_dict", - "langchain_core.messages._message_from_dict" - ], - [ - "langchain.schema.get_buffer_string", - "langchain_core.messages.get_buffer_string" - ], - [ - "langchain.schema.RunInfo", - "langchain_core.outputs.RunInfo" - ], - [ - "langchain.schema.LLMResult", - "langchain_core.outputs.LLMResult" - ], - [ - "langchain.schema.ChatResult", - "langchain_core.outputs.ChatResult" - ], - [ - "langchain.schema.ChatGeneration", - "langchain_core.outputs.ChatGeneration" - ], - [ - "langchain.schema.Generation", - "langchain_core.outputs.Generation" - ], - [ - "langchain.schema.PromptValue", - "langchain_core.prompt_values.PromptValue" - ], - [ - "langchain.schema.LangChainException", - "langchain_core.exceptions.LangChainException" - ], - [ - "langchain.schema.BaseRetriever", - "langchain_core.retrievers.BaseRetriever" - ], - [ - "langchain.schema.Memory", - "langchain_core.memory.BaseMemory" - ], - [ - "langchain.schema.OutputParserException", - "langchain_core.exceptions.OutputParserException" - ], - [ - "langchain.schema.StrOutputParser", - "langchain_core.output_parsers.StrOutputParser" - ], - [ - "langchain.schema.BaseOutputParser", - "langchain_core.output_parsers.BaseOutputParser" - ], - [ - "langchain.schema.BaseLLMOutputParser", - "langchain_core.output_parsers.BaseLLMOutputParser" - ], - [ - "langchain.schema.BasePromptTemplate", - "langchain_core.prompts.BasePromptTemplate" - ], - [ - "langchain.schema.format_document", - "langchain_core.prompts.format_document" - ], - [ - "langchain.schema.agent.AgentAction", - "langchain_core.agents.AgentAction" - ], - [ - "langchain.schema.agent.AgentActionMessageLog", - "langchain_core.agents.AgentActionMessageLog" - ], - [ - "langchain.schema.agent.AgentFinish", - "langchain_core.agents.AgentFinish" - ], - [ - "langchain.schema.cache.BaseCache", - "langchain_core.caches.BaseCache" - ], - [ - "langchain.schema.callbacks.base.RetrieverManagerMixin", - "langchain_core.callbacks.RetrieverManagerMixin" - ], - [ - "langchain.schema.callbacks.base.LLMManagerMixin", - "langchain_core.callbacks.LLMManagerMixin" - ], - [ - "langchain.schema.callbacks.base.ChainManagerMixin", - "langchain_core.callbacks.ChainManagerMixin" - ], - [ - "langchain.schema.callbacks.base.ToolManagerMixin", - "langchain_core.callbacks.ToolManagerMixin" - ], - [ - "langchain.schema.callbacks.base.CallbackManagerMixin", - "langchain_core.callbacks.CallbackManagerMixin" - ], - [ - "langchain.schema.callbacks.base.RunManagerMixin", - "langchain_core.callbacks.RunManagerMixin" - ], - [ - "langchain.schema.callbacks.base.BaseCallbackHandler", - "langchain_core.callbacks.BaseCallbackHandler" - ], - [ - "langchain.schema.callbacks.base.AsyncCallbackHandler", - "langchain_core.callbacks.AsyncCallbackHandler" - ], - [ - "langchain.schema.callbacks.base.BaseCallbackManager", - "langchain_core.callbacks.BaseCallbackManager" - ], - [ - "langchain.schema.callbacks.manager.tracing_enabled", - "langchain_core.tracers.context.tracing_enabled" - ], - [ - "langchain.schema.callbacks.manager.tracing_v2_enabled", - "langchain_core.tracers.context.tracing_v2_enabled" - ], - [ - "langchain.schema.callbacks.manager.collect_runs", - "langchain_core.tracers.context.collect_runs" - ], - [ - "langchain.schema.callbacks.manager.trace_as_chain_group", - "langchain_core.callbacks.manager.trace_as_chain_group" - ], - [ - "langchain.schema.callbacks.manager.handle_event", - "langchain_core.callbacks.manager.handle_event" - ], - [ - "langchain.schema.callbacks.manager.BaseRunManager", - "langchain_core.callbacks.BaseRunManager" - ], - [ - "langchain.schema.callbacks.manager.RunManager", - "langchain_core.callbacks.RunManager" - ], - [ - "langchain.schema.callbacks.manager.ParentRunManager", - "langchain_core.callbacks.ParentRunManager" - ], - [ - "langchain.schema.callbacks.manager.AsyncRunManager", - "langchain_core.callbacks.AsyncRunManager" - ], - [ - "langchain.schema.callbacks.manager.AsyncParentRunManager", - "langchain_core.callbacks.AsyncParentRunManager" - ], - [ - "langchain.schema.callbacks.manager.CallbackManagerForLLMRun", - "langchain_core.callbacks.CallbackManagerForLLMRun" - ], - [ - "langchain.schema.callbacks.manager.AsyncCallbackManagerForLLMRun", - "langchain_core.callbacks.AsyncCallbackManagerForLLMRun" - ], - [ - "langchain.schema.callbacks.manager.CallbackManagerForChainRun", - "langchain_core.callbacks.CallbackManagerForChainRun" - ], - [ - "langchain.schema.callbacks.manager.AsyncCallbackManagerForChainRun", - "langchain_core.callbacks.AsyncCallbackManagerForChainRun" - ], - [ - "langchain.schema.callbacks.manager.CallbackManagerForToolRun", - "langchain_core.callbacks.CallbackManagerForToolRun" - ], - [ - "langchain.schema.callbacks.manager.AsyncCallbackManagerForToolRun", - "langchain_core.callbacks.AsyncCallbackManagerForToolRun" - ], - [ - "langchain.schema.callbacks.manager.CallbackManagerForRetrieverRun", - "langchain_core.callbacks.CallbackManagerForRetrieverRun" - ], - [ - "langchain.schema.callbacks.manager.AsyncCallbackManagerForRetrieverRun", - "langchain_core.callbacks.AsyncCallbackManagerForRetrieverRun" - ], - [ - "langchain.schema.callbacks.manager.CallbackManager", - "langchain_core.callbacks.CallbackManager" - ], - [ - "langchain.schema.callbacks.manager.CallbackManagerForChainGroup", - "langchain_core.callbacks.CallbackManagerForChainGroup" - ], - [ - "langchain.schema.callbacks.manager.AsyncCallbackManager", - "langchain_core.callbacks.AsyncCallbackManager" - ], - [ - "langchain.schema.callbacks.manager.AsyncCallbackManagerForChainGroup", - "langchain_core.callbacks.AsyncCallbackManagerForChainGroup" - ], - [ - "langchain.schema.callbacks.manager.register_configure_hook", - "langchain_core.tracers.context.register_configure_hook" - ], - [ - "langchain.schema.callbacks.manager.env_var_is_set", - "langchain_core.utils.env.env_var_is_set" - ], - [ - "langchain.schema.callbacks.stdout.StdOutCallbackHandler", - "langchain_core.callbacks.StdOutCallbackHandler" - ], - [ - "langchain.schema.callbacks.streaming_stdout.StreamingStdOutCallbackHandler", - "langchain_core.callbacks.StreamingStdOutCallbackHandler" - ], - [ - "langchain.schema.callbacks.tracers.base.TracerException", - "langchain_core.exceptions.TracerException" - ], - [ - "langchain.schema.callbacks.tracers.base.BaseTracer", - "langchain_core.tracers.BaseTracer" - ], - [ - "langchain.schema.callbacks.tracers.evaluation.wait_for_all_evaluators", - "langchain_core.tracers.evaluation.wait_for_all_evaluators" - ], - [ - "langchain.schema.callbacks.tracers.evaluation.EvaluatorCallbackHandler", - "langchain_core.tracers.EvaluatorCallbackHandler" - ], - [ - "langchain.schema.callbacks.tracers.langchain.log_error_once", - "langchain_core.tracers.langchain.log_error_once" - ], - [ - "langchain.schema.callbacks.tracers.langchain.wait_for_all_tracers", - "langchain_core.tracers.langchain.wait_for_all_tracers" - ], - [ - "langchain.schema.callbacks.tracers.langchain.get_client", - "langchain_core.tracers.langchain.get_client" - ], - [ - "langchain.schema.callbacks.tracers.langchain.LangChainTracer", - "langchain_core.tracers.LangChainTracer" - ], - [ - "langchain.schema.callbacks.tracers.langchain_v1.get_headers", - "langchain_core.tracers.langchain_v1.get_headers" - ], - [ - "langchain.schema.callbacks.tracers.langchain_v1.LangChainTracerV1", - "langchain_core.tracers.langchain_v1.LangChainTracerV1" - ], - [ - "langchain.schema.callbacks.tracers.log_stream.LogEntry", - "langchain_core.tracers.log_stream.LogEntry" - ], - [ - "langchain.schema.callbacks.tracers.log_stream.RunState", - "langchain_core.tracers.log_stream.RunState" - ], - [ - "langchain.schema.callbacks.tracers.log_stream.RunLogPatch", - "langchain_core.tracers.RunLogPatch" - ], - [ - "langchain.schema.callbacks.tracers.log_stream.RunLog", - "langchain_core.tracers.RunLog" - ], - [ - "langchain.schema.callbacks.tracers.log_stream.LogStreamCallbackHandler", - "langchain_core.tracers.LogStreamCallbackHandler" - ], - [ - "langchain.schema.callbacks.tracers.root_listeners.RootListenersTracer", - "langchain_core.tracers.root_listeners.RootListenersTracer" - ], - [ - "langchain.schema.callbacks.tracers.run_collector.RunCollectorCallbackHandler", - "langchain_core.tracers.run_collector.RunCollectorCallbackHandler" - ], - [ - "langchain.schema.callbacks.tracers.schemas.RunTypeEnum", - "langchain_core.tracers.schemas.RunTypeEnum" - ], - [ - "langchain.schema.callbacks.tracers.schemas.TracerSessionV1Base", - "langchain_core.tracers.schemas.TracerSessionV1Base" - ], - [ - "langchain.schema.callbacks.tracers.schemas.TracerSessionV1Create", - "langchain_core.tracers.schemas.TracerSessionV1Create" - ], - [ - "langchain.schema.callbacks.tracers.schemas.TracerSessionV1", - "langchain_core.tracers.schemas.TracerSessionV1" - ], - [ - "langchain.schema.callbacks.tracers.schemas.TracerSessionBase", - "langchain_core.tracers.schemas.TracerSessionBase" - ], - [ - "langchain.schema.callbacks.tracers.schemas.TracerSession", - "langchain_core.tracers.schemas.TracerSession" - ], - [ - "langchain.schema.callbacks.tracers.schemas.BaseRun", - "langchain_core.tracers.schemas.BaseRun" - ], - [ - "langchain.schema.callbacks.tracers.schemas.LLMRun", - "langchain_core.tracers.schemas.LLMRun" - ], - [ - "langchain.schema.callbacks.tracers.schemas.ChainRun", - "langchain_core.tracers.schemas.ChainRun" - ], - [ - "langchain.schema.callbacks.tracers.schemas.ToolRun", - "langchain_core.tracers.schemas.ToolRun" - ], - [ - "langchain.schema.callbacks.tracers.schemas.Run", - "langchain_core.tracers.Run" - ], - [ - "langchain.schema.callbacks.tracers.stdout.try_json_stringify", - "langchain_core.tracers.stdout.try_json_stringify" - ], - [ - "langchain.schema.callbacks.tracers.stdout.elapsed", - "langchain_core.tracers.stdout.elapsed" - ], - [ - "langchain.schema.callbacks.tracers.stdout.FunctionCallbackHandler", - "langchain_core.tracers.stdout.FunctionCallbackHandler" - ], - [ - "langchain.schema.callbacks.tracers.stdout.ConsoleCallbackHandler", - "langchain_core.tracers.ConsoleCallbackHandler" - ], - [ - "langchain.schema.chat.ChatSession", - "langchain_core.chat_sessions.ChatSession" - ], - [ - "langchain.schema.chat_history.BaseChatMessageHistory", - "langchain_core.chat_history.BaseChatMessageHistory" - ], - [ - "langchain.schema.document.Document", - "langchain_core.documents.Document" - ], - [ - "langchain.schema.document.BaseDocumentTransformer", - "langchain_core.documents.BaseDocumentTransformer" - ], - [ - "langchain.schema.embeddings.Embeddings", - "langchain_core.embeddings.Embeddings" - ], - [ - "langchain.schema.exceptions.LangChainException", - "langchain_core.exceptions.LangChainException" - ], - [ - "langchain.schema.language_model.BaseLanguageModel", - "langchain_core.language_models.BaseLanguageModel" - ], - [ - "langchain.schema.language_model._get_token_ids_default_method", - "langchain_core.language_models.base._get_token_ids_default_method" - ], - [ - "langchain.schema.memory.BaseMemory", - "langchain_core.memory.BaseMemory" - ], - [ - "langchain.schema.messages.get_buffer_string", - "langchain_core.messages.get_buffer_string" - ], - [ - "langchain.schema.messages.BaseMessage", - "langchain_core.messages.BaseMessage" - ], - [ - "langchain.schema.messages.merge_content", - "langchain_core.messages.merge_content" - ], - [ - "langchain.schema.messages.BaseMessageChunk", - "langchain_core.messages.BaseMessageChunk" - ], - [ - "langchain.schema.messages.HumanMessage", - "langchain_core.messages.HumanMessage" - ], - [ - "langchain.schema.messages.HumanMessageChunk", - "langchain_core.messages.HumanMessageChunk" - ], - [ - "langchain.schema.messages.AIMessage", - "langchain_core.messages.AIMessage" - ], - [ - "langchain.schema.messages.AIMessageChunk", - "langchain_core.messages.AIMessageChunk" - ], - [ - "langchain.schema.messages.SystemMessage", - "langchain_core.messages.SystemMessage" - ], - [ - "langchain.schema.messages.SystemMessageChunk", - "langchain_core.messages.SystemMessageChunk" - ], - [ - "langchain.schema.messages.FunctionMessage", - "langchain_core.messages.FunctionMessage" - ], - [ - "langchain.schema.messages.FunctionMessageChunk", - "langchain_core.messages.FunctionMessageChunk" - ], - [ - "langchain.schema.messages.ToolMessage", - "langchain_core.messages.ToolMessage" - ], - [ - "langchain.schema.messages.ToolMessageChunk", - "langchain_core.messages.ToolMessageChunk" - ], - [ - "langchain.schema.messages.ChatMessage", - "langchain_core.messages.ChatMessage" - ], - [ - "langchain.schema.messages.ChatMessageChunk", - "langchain_core.messages.ChatMessageChunk" - ], - [ - "langchain.schema.messages.messages_to_dict", - "langchain_core.messages.messages_to_dict" - ], - [ - "langchain.schema.messages.messages_from_dict", - "langchain_core.messages.messages_from_dict" - ], - [ - "langchain.schema.messages._message_to_dict", - "langchain_core.messages.message_to_dict" - ], - [ - "langchain.schema.messages._message_from_dict", - "langchain_core.messages._message_from_dict" - ], - [ - "langchain.schema.messages.message_to_dict", - "langchain_core.messages.message_to_dict" - ], - [ - "langchain.schema.output.Generation", - "langchain_core.outputs.Generation" - ], - [ - "langchain.schema.output.GenerationChunk", - "langchain_core.outputs.GenerationChunk" - ], - [ - "langchain.schema.output.ChatGeneration", - "langchain_core.outputs.ChatGeneration" - ], - [ - "langchain.schema.output.ChatGenerationChunk", - "langchain_core.outputs.ChatGenerationChunk" - ], - [ - "langchain.schema.output.RunInfo", - "langchain_core.outputs.RunInfo" - ], - [ - "langchain.schema.output.ChatResult", - "langchain_core.outputs.ChatResult" - ], - [ - "langchain.schema.output.LLMResult", - "langchain_core.outputs.LLMResult" - ], - [ - "langchain.schema.output_parser.BaseLLMOutputParser", - "langchain_core.output_parsers.BaseLLMOutputParser" - ], - [ - "langchain.schema.output_parser.BaseGenerationOutputParser", - "langchain_core.output_parsers.BaseGenerationOutputParser" - ], - [ - "langchain.schema.output_parser.BaseOutputParser", - "langchain_core.output_parsers.BaseOutputParser" - ], - [ - "langchain.schema.output_parser.BaseTransformOutputParser", - "langchain_core.output_parsers.BaseTransformOutputParser" - ], - [ - "langchain.schema.output_parser.BaseCumulativeTransformOutputParser", - "langchain_core.output_parsers.BaseCumulativeTransformOutputParser" - ], - [ - "langchain.schema.output_parser.NoOpOutputParser", - "langchain_core.output_parsers.StrOutputParser" - ], - [ - "langchain.schema.output_parser.StrOutputParser", - "langchain_core.output_parsers.StrOutputParser" - ], - [ - "langchain.schema.output_parser.OutputParserException", - "langchain_core.exceptions.OutputParserException" - ], - [ - "langchain.schema.prompt.PromptValue", - "langchain_core.prompt_values.PromptValue" - ], - [ - "langchain.schema.prompt_template.BasePromptTemplate", - "langchain_core.prompts.BasePromptTemplate" - ], - [ - "langchain.schema.prompt_template.format_document", - "langchain_core.prompts.format_document" - ], - [ - "langchain.schema.retriever.BaseRetriever", - "langchain_core.retrievers.BaseRetriever" - ], - [ - "langchain.schema.runnable.ConfigurableField", - "langchain_core.runnables.ConfigurableField" - ], - [ - "langchain.schema.runnable.ConfigurableFieldSingleOption", - "langchain_core.runnables.ConfigurableFieldSingleOption" - ], - [ - "langchain.schema.runnable.ConfigurableFieldMultiOption", - "langchain_core.runnables.ConfigurableFieldMultiOption" - ], - [ - "langchain.schema.runnable.patch_config", - "langchain_core.runnables.patch_config" - ], - [ - "langchain.schema.runnable.RouterInput", - "langchain_core.runnables.RouterInput" - ], - [ - "langchain.schema.runnable.RouterRunnable", - "langchain_core.runnables.RouterRunnable" - ], - [ - "langchain.schema.runnable.Runnable", - "langchain_core.runnables.Runnable" - ], - [ - "langchain.schema.runnable.RunnableSerializable", - "langchain_core.runnables.RunnableSerializable" - ], - [ - "langchain.schema.runnable.RunnableBinding", - "langchain_core.runnables.RunnableBinding" - ], - [ - "langchain.schema.runnable.RunnableBranch", - "langchain_core.runnables.RunnableBranch" - ], - [ - "langchain.schema.runnable.RunnableConfig", - "langchain_core.runnables.RunnableConfig" - ], - [ - "langchain.schema.runnable.RunnableGenerator", - "langchain_core.runnables.RunnableGenerator" - ], - [ - "langchain.schema.runnable.RunnableLambda", - "langchain_core.runnables.RunnableLambda" - ], - [ - "langchain.schema.runnable.RunnableMap", - "langchain_core.runnables.RunnableMap" - ], - [ - "langchain.schema.runnable.RunnableParallel", - "langchain_core.runnables.RunnableParallel" - ], - [ - "langchain.schema.runnable.RunnablePassthrough", - "langchain_core.runnables.RunnablePassthrough" - ], - [ - "langchain.schema.runnable.RunnableSequence", - "langchain_core.runnables.RunnableSequence" - ], - [ - "langchain.schema.runnable.RunnableWithFallbacks", - "langchain_core.runnables.RunnableWithFallbacks" - ], - [ - "langchain.schema.runnable.base.Runnable", - "langchain_core.runnables.Runnable" - ], - [ - "langchain.schema.runnable.base.RunnableSerializable", - "langchain_core.runnables.RunnableSerializable" - ], - [ - "langchain.schema.runnable.base.RunnableSequence", - "langchain_core.runnables.RunnableSequence" - ], - [ - "langchain.schema.runnable.base.RunnableParallel", - "langchain_core.runnables.RunnableParallel" - ], - [ - "langchain.schema.runnable.base.RunnableGenerator", - "langchain_core.runnables.RunnableGenerator" - ], - [ - "langchain.schema.runnable.base.RunnableLambda", - "langchain_core.runnables.RunnableLambda" - ], - [ - "langchain.schema.runnable.base.RunnableEachBase", - "langchain_core.runnables.base.RunnableEachBase" - ], - [ - "langchain.schema.runnable.base.RunnableEach", - "langchain_core.runnables.base.RunnableEach" - ], - [ - "langchain.schema.runnable.base.RunnableBindingBase", - "langchain_core.runnables.base.RunnableBindingBase" - ], - [ - "langchain.schema.runnable.base.RunnableBinding", - "langchain_core.runnables.RunnableBinding" - ], - [ - "langchain.schema.runnable.base.RunnableMap", - "langchain_core.runnables.RunnableMap" - ], - [ - "langchain.schema.runnable.base.coerce_to_runnable", - "langchain_core.runnables.base.coerce_to_runnable" - ], - [ - "langchain.schema.runnable.branch.RunnableBranch", - "langchain_core.runnables.RunnableBranch" - ], - [ - "langchain.schema.runnable.config.EmptyDict", - "langchain_core.runnables.config.EmptyDict" - ], - [ - "langchain.schema.runnable.config.RunnableConfig", - "langchain_core.runnables.RunnableConfig" - ], - [ - "langchain.schema.runnable.config.ensure_config", - "langchain_core.runnables.ensure_config" - ], - [ - "langchain.schema.runnable.config.get_config_list", - "langchain_core.runnables.get_config_list" - ], - [ - "langchain.schema.runnable.config.patch_config", - "langchain_core.runnables.patch_config" - ], - [ - "langchain.schema.runnable.config.merge_configs", - "langchain_core.runnables.config.merge_configs" - ], - [ - "langchain.schema.runnable.config.acall_func_with_variable_args", - "langchain_core.runnables.config.acall_func_with_variable_args" - ], - [ - "langchain.schema.runnable.config.call_func_with_variable_args", - "langchain_core.runnables.config.call_func_with_variable_args" - ], - [ - "langchain.schema.runnable.config.get_callback_manager_for_config", - "langchain_core.runnables.config.get_callback_manager_for_config" - ], - [ - "langchain.schema.runnable.config.get_async_callback_manager_for_config", - "langchain_core.runnables.config.get_async_callback_manager_for_config" - ], - [ - "langchain.schema.runnable.config.get_executor_for_config", - "langchain_core.runnables.config.get_executor_for_config" - ], - [ - "langchain.schema.runnable.configurable.DynamicRunnable", - "langchain_core.runnables.configurable.DynamicRunnable" - ], - [ - "langchain.schema.runnable.configurable.RunnableConfigurableFields", - "langchain_core.runnables.configurable.RunnableConfigurableFields" - ], - [ - "langchain.schema.runnable.configurable.StrEnum", - "langchain_core.runnables.configurable.StrEnum" - ], - [ - "langchain.schema.runnable.configurable.RunnableConfigurableAlternatives", - "langchain_core.runnables.configurable.RunnableConfigurableAlternatives" - ], - [ - "langchain.schema.runnable.configurable.make_options_spec", - "langchain_core.runnables.configurable.make_options_spec" - ], - [ - "langchain.schema.runnable.fallbacks.RunnableWithFallbacks", - "langchain_core.runnables.RunnableWithFallbacks" - ], - [ - "langchain.schema.runnable.history.RunnableWithMessageHistory", - "langchain_core.runnables.history.RunnableWithMessageHistory" - ], - [ - "langchain.schema.runnable.passthrough.aidentity", - "langchain_core.runnables.passthrough.aidentity" - ], - [ - "langchain.schema.runnable.passthrough.identity", - "langchain_core.runnables.passthrough.identity" - ], - [ - "langchain.schema.runnable.passthrough.RunnablePassthrough", - "langchain_core.runnables.RunnablePassthrough" - ], - [ - "langchain.schema.runnable.passthrough.RunnableAssign", - "langchain_core.runnables.RunnableAssign" - ], - [ - "langchain.schema.runnable.retry.RunnableRetry", - "langchain_core.runnables.retry.RunnableRetry" - ], - [ - "langchain.schema.runnable.router.RouterInput", - "langchain_core.runnables.RouterInput" - ], - [ - "langchain.schema.runnable.router.RouterRunnable", - "langchain_core.runnables.RouterRunnable" - ], - [ - "langchain.schema.runnable.utils.accepts_run_manager", - "langchain_core.runnables.utils.accepts_run_manager" - ], - [ - "langchain.schema.runnable.utils.accepts_config", - "langchain_core.runnables.utils.accepts_config" - ], - [ - "langchain.schema.runnable.utils.IsLocalDict", - "langchain_core.runnables.utils.IsLocalDict" - ], - [ - "langchain.schema.runnable.utils.IsFunctionArgDict", - "langchain_core.runnables.utils.IsFunctionArgDict" - ], - [ - "langchain.schema.runnable.utils.GetLambdaSource", - "langchain_core.runnables.utils.GetLambdaSource" - ], - [ - "langchain.schema.runnable.utils.get_function_first_arg_dict_keys", - "langchain_core.runnables.utils.get_function_first_arg_dict_keys" - ], - [ - "langchain.schema.runnable.utils.get_lambda_source", - "langchain_core.runnables.utils.get_lambda_source" - ], - [ - "langchain.schema.runnable.utils.indent_lines_after_first", - "langchain_core.runnables.utils.indent_lines_after_first" - ], - [ - "langchain.schema.runnable.utils.AddableDict", - "langchain_core.runnables.AddableDict" - ], - [ - "langchain.schema.runnable.utils.SupportsAdd", - "langchain_core.runnables.utils.SupportsAdd" - ], - [ - "langchain.schema.runnable.utils.add", - "langchain_core.runnables.add" - ], - [ - "langchain.schema.runnable.utils.ConfigurableField", - "langchain_core.runnables.ConfigurableField" - ], - [ - "langchain.schema.runnable.utils.ConfigurableFieldSingleOption", - "langchain_core.runnables.ConfigurableFieldSingleOption" - ], - [ - "langchain.schema.runnable.utils.ConfigurableFieldMultiOption", - "langchain_core.runnables.ConfigurableFieldMultiOption" - ], - [ - "langchain.schema.runnable.utils.ConfigurableFieldSpec", - "langchain_core.runnables.ConfigurableFieldSpec" - ], - [ - "langchain.schema.runnable.utils.get_unique_config_specs", - "langchain_core.runnables.utils.get_unique_config_specs" - ], - [ - "langchain.schema.runnable.utils.aadd", - "langchain_core.runnables.aadd" - ], - [ - "langchain.schema.runnable.utils.gated_coro", - "langchain_core.runnables.utils.gated_coro" - ], - [ - "langchain.schema.runnable.utils.gather_with_concurrency", - "langchain_core.runnables.utils.gather_with_concurrency" - ], - [ - "langchain.schema.storage.BaseStore", - "langchain_core.stores.BaseStore" - ], - [ - "langchain.schema.vectorstore.VectorStore", - "langchain_core.vectorstores.VectorStore" - ], - [ - "langchain.schema.vectorstore.VectorStoreRetriever", - "langchain_core.vectorstores.VectorStoreRetriever" - ], - [ - "langchain.tools.BaseTool", - "langchain_core.tools.BaseTool" - ], - [ - "langchain.tools.StructuredTool", - "langchain_core.tools.StructuredTool" - ], - [ - "langchain.tools.Tool", - "langchain_core.tools.Tool" - ], - [ - "langchain.tools.format_tool_to_openai_function", - "langchain_core.utils.function_calling.format_tool_to_openai_function" - ], - [ - "langchain.tools.tool", - "langchain_core.tools.tool" - ], - [ - "langchain.tools.base.SchemaAnnotationError", - "langchain_core.tools.SchemaAnnotationError" - ], - [ - "langchain.tools.base.create_schema_from_function", - "langchain_core.tools.create_schema_from_function" - ], - [ - "langchain.tools.base.ToolException", - "langchain_core.tools.ToolException" - ], - [ - "langchain.tools.base.BaseTool", - "langchain_core.tools.BaseTool" - ], - [ - "langchain.tools.base.Tool", - "langchain_core.tools.Tool" - ], - [ - "langchain.tools.base.StructuredTool", - "langchain_core.tools.StructuredTool" - ], - [ - "langchain.tools.base.tool", - "langchain_core.tools.tool" - ], - [ - "langchain.tools.convert_to_openai.format_tool_to_openai_function", - "langchain_core.utils.function_calling.format_tool_to_openai_function" - ], - [ - "langchain.tools.render.format_tool_to_openai_tool", - "langchain_core.utils.function_calling.format_tool_to_openai_tool" - ], - [ - "langchain.tools.render.format_tool_to_openai_function", - "langchain_core.utils.function_calling.format_tool_to_openai_function" - ], - [ - "langchain.utilities.loading.try_load_from_hub", - "langchain_core.utils.try_load_from_hub" - ], - [ - "langchain.utils.StrictFormatter", - "langchain_core.utils.StrictFormatter" - ], - [ - "langchain.utils.check_package_version", - "langchain_core.utils.check_package_version" - ], - [ - "langchain.utils.comma_list", - "langchain_core.utils.comma_list" - ], - [ - "langchain.utils.convert_to_secret_str", - "langchain_core.utils.convert_to_secret_str" - ], - [ - "langchain.utils.get_bolded_text", - "langchain_core.utils.get_bolded_text" - ], - [ - "langchain.utils.get_color_mapping", - "langchain_core.utils.get_color_mapping" - ], - [ - "langchain.utils.get_colored_text", - "langchain_core.utils.get_colored_text" - ], - [ - "langchain.utils.get_from_dict_or_env", - "langchain_core.utils.get_from_dict_or_env" - ], - [ - "langchain.utils.get_from_env", - "langchain_core.utils.get_from_env" - ], - [ - "langchain.utils.get_pydantic_field_names", - "langchain_core.utils.get_pydantic_field_names" - ], - [ - "langchain.utils.guard_import", - "langchain_core.utils.guard_import" - ], - [ - "langchain.utils.mock_now", - "langchain_core.utils.mock_now" - ], - [ - "langchain.utils.print_text", - "langchain_core.utils.print_text" - ], - [ - "langchain.utils.raise_for_status_with_text", - "langchain_core.utils.raise_for_status_with_text" - ], - [ - "langchain.utils.stringify_dict", - "langchain_core.utils.stringify_dict" - ], - [ - "langchain.utils.stringify_value", - "langchain_core.utils.stringify_value" - ], - [ - "langchain.utils.xor_args", - "langchain_core.utils.xor_args" - ], - [ - "langchain.utils.aiter.py_anext", - "langchain_core.utils.aiter.py_anext" - ], - [ - "langchain.utils.aiter.NoLock", - "langchain_core.utils.aiter.NoLock" - ], - [ - "langchain.utils.aiter.Tee", - "langchain_core.utils.aiter.Tee" - ], - [ - "langchain.utils.env.get_from_dict_or_env", - "langchain_core.utils.get_from_dict_or_env" - ], - [ - "langchain.utils.env.get_from_env", - "langchain_core.utils.get_from_env" - ], - [ - "langchain.utils.formatting.StrictFormatter", - "langchain_core.utils.StrictFormatter" - ], - [ - "langchain.utils.html.find_all_links", - "langchain_core.utils.html.find_all_links" - ], - [ - "langchain.utils.html.extract_sub_links", - "langchain_core.utils.html.extract_sub_links" - ], - [ - "langchain.utils.input.get_color_mapping", - "langchain_core.utils.get_color_mapping" - ], - [ - "langchain.utils.input.get_colored_text", - "langchain_core.utils.get_colored_text" - ], - [ - "langchain.utils.input.get_bolded_text", - "langchain_core.utils.get_bolded_text" - ], - [ - "langchain.utils.input.print_text", - "langchain_core.utils.print_text" - ], - [ - "langchain.utils.iter.NoLock", - "langchain_core.utils.iter.NoLock" - ], - [ - "langchain.utils.iter.tee_peer", - "langchain_core.utils.iter.tee_peer" - ], - [ - "langchain.utils.iter.Tee", - "langchain_core.utils.iter.Tee" - ], - [ - "langchain.utils.iter.batch_iterate", - "langchain_core.utils.iter.batch_iterate" - ], - [ - "langchain.utils.json_schema._retrieve_ref", - "langchain_core.utils.json_schema._retrieve_ref" - ], - [ - "langchain.utils.json_schema._dereference_refs_helper", - "langchain_core.utils.json_schema._dereference_refs_helper" - ], - [ - "langchain.utils.json_schema._infer_skip_keys", - "langchain_core.utils.json_schema._infer_skip_keys" - ], - [ - "langchain.utils.json_schema.dereference_refs", - "langchain_core.utils.json_schema.dereference_refs" - ], - [ - "langchain.utils.loading.try_load_from_hub", - "langchain_core.utils.try_load_from_hub" - ], - [ - "langchain.utils.openai_functions.FunctionDescription", - "langchain_core.utils.function_calling.FunctionDescription" - ], - [ - "langchain.utils.openai_functions.ToolDescription", - "langchain_core.utils.function_calling.ToolDescription" - ], - [ - "langchain.utils.openai_functions.convert_pydantic_to_openai_function", - "langchain_core.utils.function_calling.convert_pydantic_to_openai_function" - ], - [ - "langchain.utils.openai_functions.convert_pydantic_to_openai_tool", - "langchain_core.utils.function_calling.convert_pydantic_to_openai_tool" - ], - [ - "langchain.utils.pydantic.get_pydantic_major_version", - "langchain_core.utils.pydantic.get_pydantic_major_version" - ], - [ - "langchain.utils.strings.stringify_value", - "langchain_core.utils.stringify_value" - ], - [ - "langchain.utils.strings.stringify_dict", - "langchain_core.utils.stringify_dict" - ], - [ - "langchain.utils.strings.comma_list", - "langchain_core.utils.comma_list" - ], - [ - "langchain.utils.utils.xor_args", - "langchain_core.utils.xor_args" - ], - [ - "langchain.utils.utils.raise_for_status_with_text", - "langchain_core.utils.raise_for_status_with_text" - ], - [ - "langchain.utils.utils.mock_now", - "langchain_core.utils.mock_now" - ], - [ - "langchain.utils.utils.guard_import", - "langchain_core.utils.guard_import" - ], - [ - "langchain.utils.utils.check_package_version", - "langchain_core.utils.check_package_version" - ], - [ - "langchain.utils.utils.get_pydantic_field_names", - "langchain_core.utils.get_pydantic_field_names" - ], - [ - "langchain.utils.utils.build_extra_kwargs", - "langchain_core.utils.build_extra_kwargs" - ], - [ - "langchain.utils.utils.convert_to_secret_str", - "langchain_core.utils.convert_to_secret_str" - ], - [ - "langchain.vectorstores.VectorStore", - "langchain_core.vectorstores.VectorStore" - ], - [ - "langchain.vectorstores.base.VectorStore", - "langchain_core.vectorstores.VectorStore" - ], - [ - "langchain.vectorstores.base.VectorStoreRetriever", - "langchain_core.vectorstores.VectorStoreRetriever" - ], - [ - "langchain.vectorstores.singlestoredb.SingleStoreDBRetriever", - "langchain_core.vectorstores.VectorStoreRetriever" - ] -] diff --git a/libs/cli/langchain_cli/namespaces/migrate/.grit/patterns/langchain_to_langchain_community.grit b/libs/cli/langchain_cli/namespaces/migrate/.grit/patterns/langchain_to_langchain_community.grit deleted file mode 100644 index 9e35dd42ca0..00000000000 --- a/libs/cli/langchain_cli/namespaces/migrate/.grit/patterns/langchain_to_langchain_community.grit +++ /dev/null @@ -1,2043 +0,0 @@ - -language python - -// This migration is generated automatically - do not manually edit this file -pattern langchain_migrate_langchain_to_langchain_community() { - find_replace_imports(list=[ - [`langchain.adapters.openai`, `IndexableBaseModel`, `langchain_community.adapters.openai`, `IndexableBaseModel`], - [`langchain.adapters.openai`, `Choice`, `langchain_community.adapters.openai`, `Choice`], - [`langchain.adapters.openai`, `ChatCompletions`, `langchain_community.adapters.openai`, `ChatCompletions`], - [`langchain.adapters.openai`, `ChoiceChunk`, `langchain_community.adapters.openai`, `ChoiceChunk`], - [`langchain.adapters.openai`, `ChatCompletionChunk`, `langchain_community.adapters.openai`, `ChatCompletionChunk`], - [`langchain.adapters.openai`, `convert_dict_to_message`, `langchain_community.adapters.openai`, `convert_dict_to_message`], - [`langchain.adapters.openai`, `convert_message_to_dict`, `langchain_community.adapters.openai`, `convert_message_to_dict`], - [`langchain.adapters.openai`, `convert_openai_messages`, `langchain_community.adapters.openai`, `convert_openai_messages`], - [`langchain.adapters.openai`, `ChatCompletion`, `langchain_community.adapters.openai`, `ChatCompletion`], - [`langchain.adapters.openai`, `convert_messages_for_finetuning`, `langchain_community.adapters.openai`, `convert_messages_for_finetuning`], - [`langchain.adapters.openai`, `Completions`, `langchain_community.adapters.openai`, `Completions`], - [`langchain.adapters.openai`, `Chat`, `langchain_community.adapters.openai`, `Chat`], - [`langchain.agents`, `create_json_agent`, `langchain_community.agent_toolkits`, `create_json_agent`], - [`langchain.agents`, `create_openapi_agent`, `langchain_community.agent_toolkits`, `create_openapi_agent`], - [`langchain.agents`, `create_pbi_agent`, `langchain_community.agent_toolkits`, `create_pbi_agent`], - [`langchain.agents`, `create_pbi_chat_agent`, `langchain_community.agent_toolkits`, `create_pbi_chat_agent`], - [`langchain.agents`, `create_spark_sql_agent`, `langchain_community.agent_toolkits`, `create_spark_sql_agent`], - [`langchain.agents`, `create_sql_agent`, `langchain_community.agent_toolkits`, `create_sql_agent`], - [`langchain.agents`, `get_all_tool_names`, `langchain_community.agent_toolkits.load_tools`, `get_all_tool_names`], - [`langchain.agents`, `load_huggingface_tool`, `langchain_community.agent_toolkits.load_tools`, `load_huggingface_tool`], - [`langchain.agents`, `load_tools`, `langchain_community.agent_toolkits.load_tools`, `load_tools`], - [`langchain.agents.agent_toolkits`, `AINetworkToolkit`, `langchain_community.agent_toolkits`, `AINetworkToolkit`], - [`langchain.agents.agent_toolkits`, `AmadeusToolkit`, `langchain_community.agent_toolkits`, `AmadeusToolkit`], - [`langchain.agents.agent_toolkits`, `AzureCognitiveServicesToolkit`, `langchain_community.agent_toolkits`, `AzureCognitiveServicesToolkit`], - [`langchain.agents.agent_toolkits`, `FileManagementToolkit`, `langchain_community.agent_toolkits`, `FileManagementToolkit`], - [`langchain.agents.agent_toolkits`, `GmailToolkit`, `langchain_community.agent_toolkits`, `GmailToolkit`], - [`langchain.agents.agent_toolkits`, `JiraToolkit`, `langchain_community.agent_toolkits`, `JiraToolkit`], - [`langchain.agents.agent_toolkits`, `JsonToolkit`, `langchain_community.agent_toolkits`, `JsonToolkit`], - [`langchain.agents.agent_toolkits`, `MultionToolkit`, `langchain_community.agent_toolkits`, `MultionToolkit`], - [`langchain.agents.agent_toolkits`, `NasaToolkit`, `langchain_community.agent_toolkits`, `NasaToolkit`], - [`langchain.agents.agent_toolkits`, `NLAToolkit`, `langchain_community.agent_toolkits`, `NLAToolkit`], - [`langchain.agents.agent_toolkits`, `O365Toolkit`, `langchain_community.agent_toolkits`, `O365Toolkit`], - [`langchain.agents.agent_toolkits`, `OpenAPIToolkit`, `langchain_community.agent_toolkits`, `OpenAPIToolkit`], - [`langchain.agents.agent_toolkits`, `PlayWrightBrowserToolkit`, `langchain_community.agent_toolkits`, `PlayWrightBrowserToolkit`], - [`langchain.agents.agent_toolkits`, `PowerBIToolkit`, `langchain_community.agent_toolkits`, `PowerBIToolkit`], - [`langchain.agents.agent_toolkits`, `SlackToolkit`, `langchain_community.agent_toolkits`, `SlackToolkit`], - [`langchain.agents.agent_toolkits`, `SteamToolkit`, `langchain_community.agent_toolkits`, `SteamToolkit`], - [`langchain.agents.agent_toolkits`, `SQLDatabaseToolkit`, `langchain_community.agent_toolkits`, `SQLDatabaseToolkit`], - [`langchain.agents.agent_toolkits`, `SparkSQLToolkit`, `langchain_community.agent_toolkits`, `SparkSQLToolkit`], - [`langchain.agents.agent_toolkits`, `ZapierToolkit`, `langchain_community.agent_toolkits`, `ZapierToolkit`], - [`langchain.agents.agent_toolkits`, `create_json_agent`, `langchain_community.agent_toolkits`, `create_json_agent`], - [`langchain.agents.agent_toolkits`, `create_openapi_agent`, `langchain_community.agent_toolkits`, `create_openapi_agent`], - [`langchain.agents.agent_toolkits`, `create_pbi_agent`, `langchain_community.agent_toolkits`, `create_pbi_agent`], - [`langchain.agents.agent_toolkits`, `create_pbi_chat_agent`, `langchain_community.agent_toolkits`, `create_pbi_chat_agent`], - [`langchain.agents.agent_toolkits`, `create_spark_sql_agent`, `langchain_community.agent_toolkits`, `create_spark_sql_agent`], - [`langchain.agents.agent_toolkits`, `create_sql_agent`, `langchain_community.agent_toolkits`, `create_sql_agent`], - [`langchain.agents.agent_toolkits.ainetwork.toolkit`, `AINetworkToolkit`, `langchain_community.agent_toolkits`, `AINetworkToolkit`], - [`langchain.agents.agent_toolkits.azure_cognitive_services`, `AzureCognitiveServicesToolkit`, `langchain_community.agent_toolkits`, `AzureCognitiveServicesToolkit`], - [`langchain.agents.agent_toolkits.clickup.toolkit`, `ClickupToolkit`, `langchain_community.agent_toolkits.clickup.toolkit`, `ClickupToolkit`], - [`langchain.agents.agent_toolkits.file_management`, `FileManagementToolkit`, `langchain_community.agent_toolkits`, `FileManagementToolkit`], - [`langchain.agents.agent_toolkits.file_management.toolkit`, `FileManagementToolkit`, `langchain_community.agent_toolkits`, `FileManagementToolkit`], - [`langchain.agents.agent_toolkits.github.toolkit`, `NoInput`, `langchain_community.agent_toolkits.github.toolkit`, `NoInput`], - [`langchain.agents.agent_toolkits.github.toolkit`, `GetIssue`, `langchain_community.agent_toolkits.github.toolkit`, `GetIssue`], - [`langchain.agents.agent_toolkits.github.toolkit`, `CommentOnIssue`, `langchain_community.agent_toolkits.github.toolkit`, `CommentOnIssue`], - [`langchain.agents.agent_toolkits.github.toolkit`, `GetPR`, `langchain_community.agent_toolkits.github.toolkit`, `GetPR`], - [`langchain.agents.agent_toolkits.github.toolkit`, `CreatePR`, `langchain_community.agent_toolkits.github.toolkit`, `CreatePR`], - [`langchain.agents.agent_toolkits.github.toolkit`, `CreateFile`, `langchain_community.agent_toolkits.github.toolkit`, `CreateFile`], - [`langchain.agents.agent_toolkits.github.toolkit`, `ReadFile`, `langchain_community.agent_toolkits.github.toolkit`, `ReadFile`], - [`langchain.agents.agent_toolkits.github.toolkit`, `UpdateFile`, `langchain_community.agent_toolkits.github.toolkit`, `UpdateFile`], - [`langchain.agents.agent_toolkits.github.toolkit`, `DeleteFile`, `langchain_community.agent_toolkits.github.toolkit`, `DeleteFile`], - [`langchain.agents.agent_toolkits.github.toolkit`, `DirectoryPath`, `langchain_community.agent_toolkits.github.toolkit`, `DirectoryPath`], - [`langchain.agents.agent_toolkits.github.toolkit`, `BranchName`, `langchain_community.agent_toolkits.github.toolkit`, `BranchName`], - [`langchain.agents.agent_toolkits.github.toolkit`, `SearchCode`, `langchain_community.agent_toolkits.github.toolkit`, `SearchCode`], - [`langchain.agents.agent_toolkits.github.toolkit`, `CreateReviewRequest`, `langchain_community.agent_toolkits.github.toolkit`, `CreateReviewRequest`], - [`langchain.agents.agent_toolkits.github.toolkit`, `SearchIssuesAndPRs`, `langchain_community.agent_toolkits.github.toolkit`, `SearchIssuesAndPRs`], - [`langchain.agents.agent_toolkits.github.toolkit`, `GitHubToolkit`, `langchain_community.agent_toolkits.github.toolkit`, `GitHubToolkit`], - [`langchain.agents.agent_toolkits.gitlab.toolkit`, `GitLabToolkit`, `langchain_community.agent_toolkits.gitlab.toolkit`, `GitLabToolkit`], - [`langchain.agents.agent_toolkits.gmail.toolkit`, `GmailToolkit`, `langchain_community.agent_toolkits`, `GmailToolkit`], - [`langchain.agents.agent_toolkits.jira.toolkit`, `JiraToolkit`, `langchain_community.agent_toolkits`, `JiraToolkit`], - [`langchain.agents.agent_toolkits.json.base`, `create_json_agent`, `langchain_community.agent_toolkits`, `create_json_agent`], - [`langchain.agents.agent_toolkits.json.toolkit`, `JsonToolkit`, `langchain_community.agent_toolkits`, `JsonToolkit`], - [`langchain.agents.agent_toolkits.multion.toolkit`, `MultionToolkit`, `langchain_community.agent_toolkits`, `MultionToolkit`], - [`langchain.agents.agent_toolkits.nasa.toolkit`, `NasaToolkit`, `langchain_community.agent_toolkits`, `NasaToolkit`], - [`langchain.agents.agent_toolkits.nla.tool`, `NLATool`, `langchain_community.agent_toolkits.nla.tool`, `NLATool`], - [`langchain.agents.agent_toolkits.nla.toolkit`, `NLAToolkit`, `langchain_community.agent_toolkits`, `NLAToolkit`], - [`langchain.agents.agent_toolkits.office365.toolkit`, `O365Toolkit`, `langchain_community.agent_toolkits`, `O365Toolkit`], - [`langchain.agents.agent_toolkits.openapi.base`, `create_openapi_agent`, `langchain_community.agent_toolkits`, `create_openapi_agent`], - [`langchain.agents.agent_toolkits.openapi.planner`, `RequestsGetToolWithParsing`, `langchain_community.agent_toolkits.openapi.planner`, `RequestsGetToolWithParsing`], - [`langchain.agents.agent_toolkits.openapi.planner`, `RequestsPostToolWithParsing`, `langchain_community.agent_toolkits.openapi.planner`, `RequestsPostToolWithParsing`], - [`langchain.agents.agent_toolkits.openapi.planner`, `RequestsPatchToolWithParsing`, `langchain_community.agent_toolkits.openapi.planner`, `RequestsPatchToolWithParsing`], - [`langchain.agents.agent_toolkits.openapi.planner`, `RequestsPutToolWithParsing`, `langchain_community.agent_toolkits.openapi.planner`, `RequestsPutToolWithParsing`], - [`langchain.agents.agent_toolkits.openapi.planner`, `RequestsDeleteToolWithParsing`, `langchain_community.agent_toolkits.openapi.planner`, `RequestsDeleteToolWithParsing`], - [`langchain.agents.agent_toolkits.openapi.planner`, `create_openapi_agent`, `langchain_community.agent_toolkits.openapi.planner`, `create_openapi_agent`], - [`langchain.agents.agent_toolkits.openapi.spec`, `ReducedOpenAPISpec`, `langchain_community.agent_toolkits.openapi.spec`, `ReducedOpenAPISpec`], - [`langchain.agents.agent_toolkits.openapi.spec`, `reduce_openapi_spec`, `langchain_community.agent_toolkits.openapi.spec`, `reduce_openapi_spec`], - [`langchain.agents.agent_toolkits.openapi.toolkit`, `RequestsToolkit`, `langchain_community.agent_toolkits.openapi.toolkit`, `RequestsToolkit`], - [`langchain.agents.agent_toolkits.openapi.toolkit`, `OpenAPIToolkit`, `langchain_community.agent_toolkits`, `OpenAPIToolkit`], - [`langchain.agents.agent_toolkits.playwright`, `PlayWrightBrowserToolkit`, `langchain_community.agent_toolkits`, `PlayWrightBrowserToolkit`], - [`langchain.agents.agent_toolkits.playwright.toolkit`, `PlayWrightBrowserToolkit`, `langchain_community.agent_toolkits`, `PlayWrightBrowserToolkit`], - [`langchain.agents.agent_toolkits.powerbi.base`, `create_pbi_agent`, `langchain_community.agent_toolkits`, `create_pbi_agent`], - [`langchain.agents.agent_toolkits.powerbi.chat_base`, `create_pbi_chat_agent`, `langchain_community.agent_toolkits`, `create_pbi_chat_agent`], - [`langchain.agents.agent_toolkits.powerbi.toolkit`, `PowerBIToolkit`, `langchain_community.agent_toolkits`, `PowerBIToolkit`], - [`langchain.agents.agent_toolkits.slack.toolkit`, `SlackToolkit`, `langchain_community.agent_toolkits`, `SlackToolkit`], - [`langchain.agents.agent_toolkits.spark_sql.base`, `create_spark_sql_agent`, `langchain_community.agent_toolkits`, `create_spark_sql_agent`], - [`langchain.agents.agent_toolkits.spark_sql.toolkit`, `SparkSQLToolkit`, `langchain_community.agent_toolkits`, `SparkSQLToolkit`], - [`langchain.agents.agent_toolkits.sql.base`, `create_sql_agent`, `langchain_community.agent_toolkits`, `create_sql_agent`], - [`langchain.agents.agent_toolkits.sql.toolkit`, `SQLDatabaseToolkit`, `langchain_community.agent_toolkits`, `SQLDatabaseToolkit`], - [`langchain.agents.agent_toolkits.steam.toolkit`, `SteamToolkit`, `langchain_community.agent_toolkits`, `SteamToolkit`], - [`langchain.agents.agent_toolkits.zapier.toolkit`, `ZapierToolkit`, `langchain_community.agent_toolkits`, `ZapierToolkit`], - [`langchain.cache`, `FullLLMCache`, `langchain_community.cache`, `FullLLMCache`], - [`langchain.cache`, `SQLAlchemyCache`, `langchain_community.cache`, `SQLAlchemyCache`], - [`langchain.cache`, `SQLiteCache`, `langchain_community.cache`, `SQLiteCache`], - [`langchain.cache`, `UpstashRedisCache`, `langchain_community.cache`, `UpstashRedisCache`], - [`langchain.cache`, `RedisCache`, `langchain_community.cache`, `RedisCache`], - [`langchain.cache`, `RedisSemanticCache`, `langchain_community.cache`, `RedisSemanticCache`], - [`langchain.cache`, `GPTCache`, `langchain_community.cache`, `GPTCache`], - [`langchain.cache`, `MomentoCache`, `langchain_community.cache`, `MomentoCache`], - [`langchain.cache`, `InMemoryCache`, `langchain_community.cache`, `InMemoryCache`], - [`langchain.cache`, `CassandraCache`, `langchain_community.cache`, `CassandraCache`], - [`langchain.cache`, `CassandraSemanticCache`, `langchain_community.cache`, `CassandraSemanticCache`], - [`langchain.cache`, `FullMd5LLMCache`, `langchain_community.cache`, `FullMd5LLMCache`], - [`langchain.cache`, `SQLAlchemyMd5Cache`, `langchain_community.cache`, `SQLAlchemyMd5Cache`], - [`langchain.cache`, `AstraDBCache`, `langchain_community.cache`, `AstraDBCache`], - [`langchain.cache`, `AstraDBSemanticCache`, `langchain_community.cache`, `AstraDBSemanticCache`], - [`langchain.cache`, `AzureCosmosDBSemanticCache`, `langchain_community.cache`, `AzureCosmosDBSemanticCache`], - [`langchain.callbacks`, `AimCallbackHandler`, `langchain_community.callbacks`, `AimCallbackHandler`], - [`langchain.callbacks`, `ArgillaCallbackHandler`, `langchain_community.callbacks`, `ArgillaCallbackHandler`], - [`langchain.callbacks`, `ArizeCallbackHandler`, `langchain_community.callbacks`, `ArizeCallbackHandler`], - [`langchain.callbacks`, `PromptLayerCallbackHandler`, `langchain_community.callbacks`, `PromptLayerCallbackHandler`], - [`langchain.callbacks`, `ArthurCallbackHandler`, `langchain_community.callbacks`, `ArthurCallbackHandler`], - [`langchain.callbacks`, `ClearMLCallbackHandler`, `langchain_community.callbacks`, `ClearMLCallbackHandler`], - [`langchain.callbacks`, `CometCallbackHandler`, `langchain_community.callbacks`, `CometCallbackHandler`], - [`langchain.callbacks`, `ContextCallbackHandler`, `langchain_community.callbacks`, `ContextCallbackHandler`], - [`langchain.callbacks`, `HumanApprovalCallbackHandler`, `langchain_community.callbacks`, `HumanApprovalCallbackHandler`], - [`langchain.callbacks`, `InfinoCallbackHandler`, `langchain_community.callbacks`, `InfinoCallbackHandler`], - [`langchain.callbacks`, `MlflowCallbackHandler`, `langchain_community.callbacks`, `MlflowCallbackHandler`], - [`langchain.callbacks`, `LLMonitorCallbackHandler`, `langchain_community.callbacks`, `LLMonitorCallbackHandler`], - [`langchain.callbacks`, `OpenAICallbackHandler`, `langchain_community.callbacks`, `OpenAICallbackHandler`], - [`langchain.callbacks`, `LLMThoughtLabeler`, `langchain_community.callbacks`, `LLMThoughtLabeler`], - [`langchain.callbacks`, `StreamlitCallbackHandler`, `langchain_community.callbacks`, `StreamlitCallbackHandler`], - [`langchain.callbacks`, `WandbCallbackHandler`, `langchain_community.callbacks`, `WandbCallbackHandler`], - [`langchain.callbacks`, `WhyLabsCallbackHandler`, `langchain_community.callbacks`, `WhyLabsCallbackHandler`], - [`langchain.callbacks`, `get_openai_callback`, `langchain_community.callbacks`, `get_openai_callback`], - [`langchain.callbacks`, `wandb_tracing_enabled`, `langchain_community.callbacks`, `wandb_tracing_enabled`], - [`langchain.callbacks`, `FlyteCallbackHandler`, `langchain_community.callbacks`, `FlyteCallbackHandler`], - [`langchain.callbacks`, `SageMakerCallbackHandler`, `langchain_community.callbacks`, `SageMakerCallbackHandler`], - [`langchain.callbacks`, `LabelStudioCallbackHandler`, `langchain_community.callbacks`, `LabelStudioCallbackHandler`], - [`langchain.callbacks`, `TrubricsCallbackHandler`, `langchain_community.callbacks`, `TrubricsCallbackHandler`], - [`langchain.callbacks.aim_callback`, `import_aim`, `langchain_community.callbacks.aim_callback`, `import_aim`], - [`langchain.callbacks.aim_callback`, `BaseMetadataCallbackHandler`, `langchain_community.callbacks.aim_callback`, `BaseMetadataCallbackHandler`], - [`langchain.callbacks.aim_callback`, `AimCallbackHandler`, `langchain_community.callbacks`, `AimCallbackHandler`], - [`langchain.callbacks.argilla_callback`, `ArgillaCallbackHandler`, `langchain_community.callbacks`, `ArgillaCallbackHandler`], - [`langchain.callbacks.arize_callback`, `ArizeCallbackHandler`, `langchain_community.callbacks`, `ArizeCallbackHandler`], - [`langchain.callbacks.arthur_callback`, `ArthurCallbackHandler`, `langchain_community.callbacks`, `ArthurCallbackHandler`], - [`langchain.callbacks.clearml_callback`, `ClearMLCallbackHandler`, `langchain_community.callbacks`, `ClearMLCallbackHandler`], - [`langchain.callbacks.comet_ml_callback`, `CometCallbackHandler`, `langchain_community.callbacks`, `CometCallbackHandler`], - [`langchain.callbacks.confident_callback`, `DeepEvalCallbackHandler`, `langchain_community.callbacks.confident_callback`, `DeepEvalCallbackHandler`], - [`langchain.callbacks.context_callback`, `ContextCallbackHandler`, `langchain_community.callbacks`, `ContextCallbackHandler`], - [`langchain.callbacks.flyte_callback`, `FlyteCallbackHandler`, `langchain_community.callbacks`, `FlyteCallbackHandler`], - [`langchain.callbacks.human`, `HumanRejectedException`, `langchain_community.callbacks.human`, `HumanRejectedException`], - [`langchain.callbacks.human`, `HumanApprovalCallbackHandler`, `langchain_community.callbacks`, `HumanApprovalCallbackHandler`], - [`langchain.callbacks.human`, `AsyncHumanApprovalCallbackHandler`, `langchain_community.callbacks.human`, `AsyncHumanApprovalCallbackHandler`], - [`langchain.callbacks.infino_callback`, `InfinoCallbackHandler`, `langchain_community.callbacks`, `InfinoCallbackHandler`], - [`langchain.callbacks.labelstudio_callback`, `LabelStudioMode`, `langchain_community.callbacks.labelstudio_callback`, `LabelStudioMode`], - [`langchain.callbacks.labelstudio_callback`, `get_default_label_configs`, `langchain_community.callbacks.labelstudio_callback`, `get_default_label_configs`], - [`langchain.callbacks.labelstudio_callback`, `LabelStudioCallbackHandler`, `langchain_community.callbacks`, `LabelStudioCallbackHandler`], - [`langchain.callbacks.llmonitor_callback`, `LLMonitorCallbackHandler`, `langchain_community.callbacks`, `LLMonitorCallbackHandler`], - [`langchain.callbacks.manager`, `get_openai_callback`, `langchain_community.callbacks`, `get_openai_callback`], - [`langchain.callbacks.manager`, `wandb_tracing_enabled`, `langchain_community.callbacks`, `wandb_tracing_enabled`], - [`langchain.callbacks.mlflow_callback`, `analyze_text`, `langchain_community.callbacks.mlflow_callback`, `analyze_text`], - [`langchain.callbacks.mlflow_callback`, `construct_html_from_prompt_and_generation`, `langchain_community.callbacks.mlflow_callback`, `construct_html_from_prompt_and_generation`], - [`langchain.callbacks.mlflow_callback`, `MlflowLogger`, `langchain_community.callbacks.mlflow_callback`, `MlflowLogger`], - [`langchain.callbacks.mlflow_callback`, `MlflowCallbackHandler`, `langchain_community.callbacks`, `MlflowCallbackHandler`], - [`langchain.callbacks.openai_info`, `OpenAICallbackHandler`, `langchain_community.callbacks`, `OpenAICallbackHandler`], - [`langchain.callbacks.promptlayer_callback`, `PromptLayerCallbackHandler`, `langchain_community.callbacks`, `PromptLayerCallbackHandler`], - [`langchain.callbacks.sagemaker_callback`, `SageMakerCallbackHandler`, `langchain_community.callbacks`, `SageMakerCallbackHandler`], - [`langchain.callbacks.streamlit.mutable_expander`, `ChildType`, `langchain_community.callbacks.streamlit.mutable_expander`, `ChildType`], - [`langchain.callbacks.streamlit.mutable_expander`, `ChildRecord`, `langchain_community.callbacks.streamlit.mutable_expander`, `ChildRecord`], - [`langchain.callbacks.streamlit.mutable_expander`, `MutableExpander`, `langchain_community.callbacks.streamlit.mutable_expander`, `MutableExpander`], - [`langchain.callbacks.streamlit.streamlit_callback_handler`, `LLMThoughtState`, `langchain_community.callbacks.streamlit.streamlit_callback_handler`, `LLMThoughtState`], - [`langchain.callbacks.streamlit.streamlit_callback_handler`, `ToolRecord`, `langchain_community.callbacks.streamlit.streamlit_callback_handler`, `ToolRecord`], - [`langchain.callbacks.streamlit.streamlit_callback_handler`, `LLMThoughtLabeler`, `langchain_community.callbacks`, `LLMThoughtLabeler`], - [`langchain.callbacks.streamlit.streamlit_callback_handler`, `LLMThought`, `langchain_community.callbacks.streamlit.streamlit_callback_handler`, `LLMThought`], - [`langchain.callbacks.streamlit.streamlit_callback_handler`, `StreamlitCallbackHandler`, `langchain_community.callbacks.streamlit.streamlit_callback_handler`, `StreamlitCallbackHandler`], - [`langchain.callbacks.tracers`, `WandbTracer`, `langchain_community.callbacks.tracers.wandb`, `WandbTracer`], - [`langchain.callbacks.tracers.comet`, `import_comet_llm_api`, `langchain_community.callbacks.tracers.comet`, `import_comet_llm_api`], - [`langchain.callbacks.tracers.comet`, `CometTracer`, `langchain_community.callbacks.tracers.comet`, `CometTracer`], - [`langchain.callbacks.tracers.wandb`, `RunProcessor`, `langchain_community.callbacks.tracers.wandb`, `RunProcessor`], - [`langchain.callbacks.tracers.wandb`, `WandbRunArgs`, `langchain_community.callbacks.tracers.wandb`, `WandbRunArgs`], - [`langchain.callbacks.tracers.wandb`, `WandbTracer`, `langchain_community.callbacks.tracers.wandb`, `WandbTracer`], - [`langchain.callbacks.trubrics_callback`, `TrubricsCallbackHandler`, `langchain_community.callbacks`, `TrubricsCallbackHandler`], - [`langchain.callbacks.utils`, `import_spacy`, `langchain_community.callbacks.utils`, `import_spacy`], - [`langchain.callbacks.utils`, `import_pandas`, `langchain_community.callbacks.utils`, `import_pandas`], - [`langchain.callbacks.utils`, `import_textstat`, `langchain_community.callbacks.utils`, `import_textstat`], - [`langchain.callbacks.utils`, `_flatten_dict`, `langchain_community.callbacks.utils`, `_flatten_dict`], - [`langchain.callbacks.utils`, `flatten_dict`, `langchain_community.callbacks.utils`, `flatten_dict`], - [`langchain.callbacks.utils`, `hash_string`, `langchain_community.callbacks.utils`, `hash_string`], - [`langchain.callbacks.utils`, `load_json`, `langchain_community.callbacks.utils`, `load_json`], - [`langchain.callbacks.utils`, `BaseMetadataCallbackHandler`, `langchain_community.callbacks.utils`, `BaseMetadataCallbackHandler`], - [`langchain.callbacks.wandb_callback`, `WandbCallbackHandler`, `langchain_community.callbacks`, `WandbCallbackHandler`], - [`langchain.callbacks.whylabs_callback`, `WhyLabsCallbackHandler`, `langchain_community.callbacks`, `WhyLabsCallbackHandler`], - [`langchain.chains`, `OpenAPIEndpointChain`, `langchain_community.chains.openapi.chain`, `OpenAPIEndpointChain`], - [`langchain.chains`, `ArangoGraphQAChain`, `langchain_community.chains.graph_qa.arangodb`, `ArangoGraphQAChain`], - [`langchain.chains`, `GraphQAChain`, `langchain_community.chains.graph_qa.base`, `GraphQAChain`], - [`langchain.chains`, `GraphCypherQAChain`, `langchain_community.chains.graph_qa.cypher`, `GraphCypherQAChain`], - [`langchain.chains`, `FalkorDBQAChain`, `langchain_community.chains.graph_qa.falkordb`, `FalkorDBQAChain`], - [`langchain.chains`, `HugeGraphQAChain`, `langchain_community.chains.graph_qa.hugegraph`, `HugeGraphQAChain`], - [`langchain.chains`, `KuzuQAChain`, `langchain_community.chains.graph_qa.kuzu`, `KuzuQAChain`], - [`langchain.chains`, `NebulaGraphQAChain`, `langchain_community.chains.graph_qa.nebulagraph`, `NebulaGraphQAChain`], - [`langchain.chains`, `NeptuneOpenCypherQAChain`, `langchain_community.chains.graph_qa.neptune_cypher`, `NeptuneOpenCypherQAChain`], - [`langchain.chains`, `NeptuneSparqlQAChain`, `langchain_community.chains.graph_qa.neptune_sparql`, `NeptuneSparqlQAChain`], - [`langchain.chains`, `OntotextGraphDBQAChain`, `langchain_community.chains.graph_qa.ontotext_graphdb`, `OntotextGraphDBQAChain`], - [`langchain.chains`, `GraphSparqlQAChain`, `langchain_community.chains.graph_qa.sparql`, `GraphSparqlQAChain`], - [`langchain.chains`, `LLMRequestsChain`, `langchain_community.chains.llm_requests`, `LLMRequestsChain`], - [`langchain.chains.api.openapi.chain`, `OpenAPIEndpointChain`, `langchain_community.chains.openapi.chain`, `OpenAPIEndpointChain`], - [`langchain.chains.api.openapi.requests_chain`, `APIRequesterChain`, `langchain_community.chains.openapi.requests_chain`, `APIRequesterChain`], - [`langchain.chains.api.openapi.requests_chain`, `APIRequesterOutputParser`, `langchain_community.chains.openapi.requests_chain`, `APIRequesterOutputParser`], - [`langchain.chains.api.openapi.response_chain`, `APIResponderChain`, `langchain_community.chains.openapi.response_chain`, `APIResponderChain`], - [`langchain.chains.api.openapi.response_chain`, `APIResponderOutputParser`, `langchain_community.chains.openapi.response_chain`, `APIResponderOutputParser`], - [`langchain.chains.conversation.memory`, `ConversationKGMemory`, `langchain_community.memory.kg`, `ConversationKGMemory`], - [`langchain.chains.ernie_functions`, `convert_to_ernie_function`, `langchain_community.chains.ernie_functions.base`, `convert_to_ernie_function`], - [`langchain.chains.ernie_functions`, `create_structured_output_chain`, `langchain_community.chains.ernie_functions.base`, `create_structured_output_chain`], - [`langchain.chains.ernie_functions`, `create_ernie_fn_chain`, `langchain_community.chains.ernie_functions.base`, `create_ernie_fn_chain`], - [`langchain.chains.ernie_functions`, `create_structured_output_runnable`, `langchain_community.chains.ernie_functions.base`, `create_structured_output_runnable`], - [`langchain.chains.ernie_functions`, `create_ernie_fn_runnable`, `langchain_community.chains.ernie_functions.base`, `create_ernie_fn_runnable`], - [`langchain.chains.ernie_functions`, `get_ernie_output_parser`, `langchain_community.chains.ernie_functions.base`, `get_ernie_output_parser`], - [`langchain.chains.ernie_functions.base`, `convert_python_function_to_ernie_function`, `langchain_community.chains.ernie_functions.base`, `convert_python_function_to_ernie_function`], - [`langchain.chains.ernie_functions.base`, `convert_to_ernie_function`, `langchain_community.chains.ernie_functions.base`, `convert_to_ernie_function`], - [`langchain.chains.ernie_functions.base`, `create_ernie_fn_chain`, `langchain_community.chains.ernie_functions.base`, `create_ernie_fn_chain`], - [`langchain.chains.ernie_functions.base`, `create_ernie_fn_runnable`, `langchain_community.chains.ernie_functions.base`, `create_ernie_fn_runnable`], - [`langchain.chains.ernie_functions.base`, `create_structured_output_chain`, `langchain_community.chains.ernie_functions.base`, `create_structured_output_chain`], - [`langchain.chains.ernie_functions.base`, `create_structured_output_runnable`, `langchain_community.chains.ernie_functions.base`, `create_structured_output_runnable`], - [`langchain.chains.ernie_functions.base`, `get_ernie_output_parser`, `langchain_community.chains.ernie_functions.base`, `get_ernie_output_parser`], - [`langchain.chains.graph_qa.arangodb`, `ArangoGraphQAChain`, `langchain_community.chains.graph_qa.arangodb`, `ArangoGraphQAChain`], - [`langchain.chains.graph_qa.base`, `GraphQAChain`, `langchain_community.chains.graph_qa.base`, `GraphQAChain`], - [`langchain.chains.graph_qa.cypher`, `GraphCypherQAChain`, `langchain_community.chains.graph_qa.cypher`, `GraphCypherQAChain`], - [`langchain.chains.graph_qa.cypher`, `construct_schema`, `langchain_community.chains.graph_qa.cypher`, `construct_schema`], - [`langchain.chains.graph_qa.cypher`, `extract_cypher`, `langchain_community.chains.graph_qa.cypher`, `extract_cypher`], - [`langchain.chains.graph_qa.cypher_utils`, `CypherQueryCorrector`, `langchain_community.chains.graph_qa.cypher_utils`, `CypherQueryCorrector`], - [`langchain.chains.graph_qa.cypher_utils`, `Schema`, `langchain_community.chains.graph_qa.cypher_utils`, `Schema`], - [`langchain.chains.graph_qa.falkordb`, `FalkorDBQAChain`, `langchain_community.chains.graph_qa.falkordb`, `FalkorDBQAChain`], - [`langchain.chains.graph_qa.falkordb`, `extract_cypher`, `langchain_community.chains.graph_qa.falkordb`, `extract_cypher`], - [`langchain.chains.graph_qa.gremlin`, `GremlinQAChain`, `langchain_community.chains.graph_qa.gremlin`, `GremlinQAChain`], - [`langchain.chains.graph_qa.gremlin`, `extract_gremlin`, `langchain_community.chains.graph_qa.gremlin`, `extract_gremlin`], - [`langchain.chains.graph_qa.hugegraph`, `HugeGraphQAChain`, `langchain_community.chains.graph_qa.hugegraph`, `HugeGraphQAChain`], - [`langchain.chains.graph_qa.kuzu`, `KuzuQAChain`, `langchain_community.chains.graph_qa.kuzu`, `KuzuQAChain`], - [`langchain.chains.graph_qa.kuzu`, `extract_cypher`, `langchain_community.chains.graph_qa.kuzu`, `extract_cypher`], - [`langchain.chains.graph_qa.kuzu`, `remove_prefix`, `langchain_community.chains.graph_qa.kuzu`, `remove_prefix`], - [`langchain.chains.graph_qa.nebulagraph`, `NebulaGraphQAChain`, `langchain_community.chains.graph_qa.nebulagraph`, `NebulaGraphQAChain`], - [`langchain.chains.graph_qa.neptune_cypher`, `NeptuneOpenCypherQAChain`, `langchain_community.chains.graph_qa.neptune_cypher`, `NeptuneOpenCypherQAChain`], - [`langchain.chains.graph_qa.neptune_cypher`, `extract_cypher`, `langchain_community.chains.graph_qa.neptune_cypher`, `extract_cypher`], - [`langchain.chains.graph_qa.neptune_cypher`, `trim_query`, `langchain_community.chains.graph_qa.neptune_cypher`, `trim_query`], - [`langchain.chains.graph_qa.neptune_cypher`, `use_simple_prompt`, `langchain_community.chains.graph_qa.neptune_cypher`, `use_simple_prompt`], - [`langchain.chains.graph_qa.neptune_sparql`, `NeptuneSparqlQAChain`, `langchain_community.chains.graph_qa.neptune_sparql`, `NeptuneSparqlQAChain`], - [`langchain.chains.graph_qa.neptune_sparql`, `extract_sparql`, `langchain_community.chains.graph_qa.neptune_sparql`, `extract_sparql`], - [`langchain.chains.graph_qa.ontotext_graphdb`, `OntotextGraphDBQAChain`, `langchain_community.chains.graph_qa.ontotext_graphdb`, `OntotextGraphDBQAChain`], - [`langchain.chains.graph_qa.sparql`, `GraphSparqlQAChain`, `langchain_community.chains.graph_qa.sparql`, `GraphSparqlQAChain`], - [`langchain.chains.llm_requests`, `LLMRequestsChain`, `langchain_community.chains.llm_requests`, `LLMRequestsChain`], - [`langchain.chat_loaders.facebook_messenger`, `SingleFileFacebookMessengerChatLoader`, `langchain_community.chat_loaders`, `SingleFileFacebookMessengerChatLoader`], - [`langchain.chat_loaders.facebook_messenger`, `FolderFacebookMessengerChatLoader`, `langchain_community.chat_loaders`, `FolderFacebookMessengerChatLoader`], - [`langchain.chat_loaders.gmail`, `GMailLoader`, `langchain_community.chat_loaders`, `GMailLoader`], - [`langchain.chat_loaders.imessage`, `IMessageChatLoader`, `langchain_community.chat_loaders`, `IMessageChatLoader`], - [`langchain.chat_loaders.langsmith`, `LangSmithRunChatLoader`, `langchain_community.chat_loaders`, `LangSmithRunChatLoader`], - [`langchain.chat_loaders.langsmith`, `LangSmithDatasetChatLoader`, `langchain_community.chat_loaders`, `LangSmithDatasetChatLoader`], - [`langchain.chat_loaders.slack`, `SlackChatLoader`, `langchain_community.chat_loaders`, `SlackChatLoader`], - [`langchain.chat_loaders.telegram`, `TelegramChatLoader`, `langchain_community.chat_loaders`, `TelegramChatLoader`], - [`langchain.chat_loaders.utils`, `merge_chat_runs_in_session`, `langchain_community.chat_loaders.utils`, `merge_chat_runs_in_session`], - [`langchain.chat_loaders.utils`, `merge_chat_runs`, `langchain_community.chat_loaders.utils`, `merge_chat_runs`], - [`langchain.chat_loaders.utils`, `map_ai_messages_in_session`, `langchain_community.chat_loaders.utils`, `map_ai_messages_in_session`], - [`langchain.chat_loaders.utils`, `map_ai_messages`, `langchain_community.chat_loaders.utils`, `map_ai_messages`], - [`langchain.chat_loaders.whatsapp`, `WhatsAppChatLoader`, `langchain_community.chat_loaders`, `WhatsAppChatLoader`], - [`langchain.chat_models`, `ChatOpenAI`, `langchain_community.chat_models`, `ChatOpenAI`], - [`langchain.chat_models`, `BedrockChat`, `langchain_community.chat_models`, `BedrockChat`], - [`langchain.chat_models`, `AzureChatOpenAI`, `langchain_community.chat_models`, `AzureChatOpenAI`], - [`langchain.chat_models`, `FakeListChatModel`, `langchain_community.chat_models`, `FakeListChatModel`], - [`langchain.chat_models`, `PromptLayerChatOpenAI`, `langchain_community.chat_models`, `PromptLayerChatOpenAI`], - [`langchain.chat_models`, `ChatDatabricks`, `langchain_community.chat_models`, `ChatDatabricks`], - [`langchain.chat_models`, `ChatEverlyAI`, `langchain_community.chat_models`, `ChatEverlyAI`], - [`langchain.chat_models`, `ChatAnthropic`, `langchain_community.chat_models`, `ChatAnthropic`], - [`langchain.chat_models`, `ChatCohere`, `langchain_community.chat_models`, `ChatCohere`], - [`langchain.chat_models`, `ChatGooglePalm`, `langchain_community.chat_models`, `ChatGooglePalm`], - [`langchain.chat_models`, `ChatMlflow`, `langchain_community.chat_models`, `ChatMlflow`], - [`langchain.chat_models`, `ChatMLflowAIGateway`, `langchain_community.chat_models`, `ChatMLflowAIGateway`], - [`langchain.chat_models`, `ChatOllama`, `langchain_community.chat_models`, `ChatOllama`], - [`langchain.chat_models`, `ChatVertexAI`, `langchain_community.chat_models`, `ChatVertexAI`], - [`langchain.chat_models`, `JinaChat`, `langchain_community.chat_models`, `JinaChat`], - [`langchain.chat_models`, `HumanInputChatModel`, `langchain_community.chat_models`, `HumanInputChatModel`], - [`langchain.chat_models`, `MiniMaxChat`, `langchain_community.chat_models`, `MiniMaxChat`], - [`langchain.chat_models`, `ChatAnyscale`, `langchain_community.chat_models`, `ChatAnyscale`], - [`langchain.chat_models`, `ChatLiteLLM`, `langchain_community.chat_models`, `ChatLiteLLM`], - [`langchain.chat_models`, `ErnieBotChat`, `langchain_community.chat_models`, `ErnieBotChat`], - [`langchain.chat_models`, `ChatJavelinAIGateway`, `langchain_community.chat_models`, `ChatJavelinAIGateway`], - [`langchain.chat_models`, `ChatKonko`, `langchain_community.chat_models`, `ChatKonko`], - [`langchain.chat_models`, `PaiEasChatEndpoint`, `langchain_community.chat_models`, `PaiEasChatEndpoint`], - [`langchain.chat_models`, `QianfanChatEndpoint`, `langchain_community.chat_models`, `QianfanChatEndpoint`], - [`langchain.chat_models`, `ChatFireworks`, `langchain_community.chat_models`, `ChatFireworks`], - [`langchain.chat_models`, `ChatYandexGPT`, `langchain_community.chat_models`, `ChatYandexGPT`], - [`langchain.chat_models`, `ChatBaichuan`, `langchain_community.chat_models`, `ChatBaichuan`], - [`langchain.chat_models`, `ChatHunyuan`, `langchain_community.chat_models`, `ChatHunyuan`], - [`langchain.chat_models`, `GigaChat`, `langchain_community.chat_models`, `GigaChat`], - [`langchain.chat_models`, `VolcEngineMaasChat`, `langchain_community.chat_models`, `VolcEngineMaasChat`], - [`langchain.chat_models.anthropic`, `convert_messages_to_prompt_anthropic`, `langchain_community.chat_models.anthropic`, `convert_messages_to_prompt_anthropic`], - [`langchain.chat_models.anthropic`, `ChatAnthropic`, `langchain_community.chat_models`, `ChatAnthropic`], - [`langchain.chat_models.anyscale`, `ChatAnyscale`, `langchain_community.chat_models`, `ChatAnyscale`], - [`langchain.chat_models.azure_openai`, `AzureChatOpenAI`, `langchain_community.chat_models`, `AzureChatOpenAI`], - [`langchain.chat_models.azureml_endpoint`, `LlamaContentFormatter`, `langchain_community.chat_models.azureml_endpoint`, `LlamaContentFormatter`], - [`langchain.chat_models.azureml_endpoint`, `AzureMLChatOnlineEndpoint`, `langchain_community.chat_models.azureml_endpoint`, `AzureMLChatOnlineEndpoint`], - [`langchain.chat_models.baichuan`, `ChatBaichuan`, `langchain_community.chat_models`, `ChatBaichuan`], - [`langchain.chat_models.baidu_qianfan_endpoint`, `QianfanChatEndpoint`, `langchain_community.chat_models`, `QianfanChatEndpoint`], - [`langchain.chat_models.bedrock`, `ChatPromptAdapter`, `langchain_community.chat_models.bedrock`, `ChatPromptAdapter`], - [`langchain.chat_models.bedrock`, `BedrockChat`, `langchain_community.chat_models`, `BedrockChat`], - [`langchain.chat_models.cohere`, `ChatCohere`, `langchain_community.chat_models`, `ChatCohere`], - [`langchain.chat_models.databricks`, `ChatDatabricks`, `langchain_community.chat_models`, `ChatDatabricks`], - [`langchain.chat_models.ernie`, `ErnieBotChat`, `langchain_community.chat_models`, `ErnieBotChat`], - [`langchain.chat_models.everlyai`, `ChatEverlyAI`, `langchain_community.chat_models`, `ChatEverlyAI`], - [`langchain.chat_models.fake`, `FakeMessagesListChatModel`, `langchain_community.chat_models.fake`, `FakeMessagesListChatModel`], - [`langchain.chat_models.fake`, `FakeListChatModel`, `langchain_community.chat_models`, `FakeListChatModel`], - [`langchain.chat_models.fireworks`, `ChatFireworks`, `langchain_community.chat_models`, `ChatFireworks`], - [`langchain.chat_models.gigachat`, `GigaChat`, `langchain_community.chat_models`, `GigaChat`], - [`langchain.chat_models.google_palm`, `ChatGooglePalm`, `langchain_community.chat_models`, `ChatGooglePalm`], - [`langchain.chat_models.google_palm`, `ChatGooglePalmError`, `langchain_community.chat_models.google_palm`, `ChatGooglePalmError`], - [`langchain.chat_models.human`, `HumanInputChatModel`, `langchain_community.chat_models`, `HumanInputChatModel`], - [`langchain.chat_models.hunyuan`, `ChatHunyuan`, `langchain_community.chat_models`, `ChatHunyuan`], - [`langchain.chat_models.javelin_ai_gateway`, `ChatJavelinAIGateway`, `langchain_community.chat_models`, `ChatJavelinAIGateway`], - [`langchain.chat_models.javelin_ai_gateway`, `ChatParams`, `langchain_community.chat_models.javelin_ai_gateway`, `ChatParams`], - [`langchain.chat_models.jinachat`, `JinaChat`, `langchain_community.chat_models`, `JinaChat`], - [`langchain.chat_models.konko`, `ChatKonko`, `langchain_community.chat_models`, `ChatKonko`], - [`langchain.chat_models.litellm`, `ChatLiteLLM`, `langchain_community.chat_models`, `ChatLiteLLM`], - [`langchain.chat_models.litellm`, `ChatLiteLLMException`, `langchain_community.chat_models.litellm`, `ChatLiteLLMException`], - [`langchain.chat_models.meta`, `convert_messages_to_prompt_llama`, `langchain_community.chat_models.meta`, `convert_messages_to_prompt_llama`], - [`langchain.chat_models.minimax`, `MiniMaxChat`, `langchain_community.chat_models`, `MiniMaxChat`], - [`langchain.chat_models.mlflow`, `ChatMlflow`, `langchain_community.chat_models`, `ChatMlflow`], - [`langchain.chat_models.mlflow_ai_gateway`, `ChatMLflowAIGateway`, `langchain_community.chat_models`, `ChatMLflowAIGateway`], - [`langchain.chat_models.mlflow_ai_gateway`, `ChatParams`, `langchain_community.chat_models.mlflow_ai_gateway`, `ChatParams`], - [`langchain.chat_models.ollama`, `ChatOllama`, `langchain_community.chat_models`, `ChatOllama`], - [`langchain.chat_models.openai`, `ChatOpenAI`, `langchain_community.chat_models`, `ChatOpenAI`], - [`langchain.chat_models.pai_eas_endpoint`, `PaiEasChatEndpoint`, `langchain_community.chat_models`, `PaiEasChatEndpoint`], - [`langchain.chat_models.promptlayer_openai`, `PromptLayerChatOpenAI`, `langchain_community.chat_models`, `PromptLayerChatOpenAI`], - [`langchain.chat_models.tongyi`, `ChatTongyi`, `langchain_community.chat_models`, `ChatTongyi`], - [`langchain.chat_models.vertexai`, `ChatVertexAI`, `langchain_community.chat_models`, `ChatVertexAI`], - [`langchain.chat_models.volcengine_maas`, `convert_dict_to_message`, `langchain_community.chat_models.volcengine_maas`, `convert_dict_to_message`], - [`langchain.chat_models.volcengine_maas`, `VolcEngineMaasChat`, `langchain_community.chat_models`, `VolcEngineMaasChat`], - [`langchain.chat_models.yandex`, `ChatYandexGPT`, `langchain_community.chat_models`, `ChatYandexGPT`], - [`langchain.docstore`, `DocstoreFn`, `langchain_community.docstore`, `DocstoreFn`], - [`langchain.docstore`, `InMemoryDocstore`, `langchain_community.docstore`, `InMemoryDocstore`], - [`langchain.docstore`, `Wikipedia`, `langchain_community.docstore`, `Wikipedia`], - [`langchain.docstore.arbitrary_fn`, `DocstoreFn`, `langchain_community.docstore`, `DocstoreFn`], - [`langchain.docstore.base`, `Docstore`, `langchain_community.docstore.base`, `Docstore`], - [`langchain.docstore.base`, `AddableMixin`, `langchain_community.docstore.base`, `AddableMixin`], - [`langchain.docstore.in_memory`, `InMemoryDocstore`, `langchain_community.docstore`, `InMemoryDocstore`], - [`langchain.docstore.wikipedia`, `Wikipedia`, `langchain_community.docstore`, `Wikipedia`], - [`langchain.document_loaders`, `AcreomLoader`, `langchain_community.document_loaders`, `AcreomLoader`], - [`langchain.document_loaders`, `AsyncHtmlLoader`, `langchain_community.document_loaders`, `AsyncHtmlLoader`], - [`langchain.document_loaders`, `AsyncChromiumLoader`, `langchain_community.document_loaders`, `AsyncChromiumLoader`], - [`langchain.document_loaders`, `AZLyricsLoader`, `langchain_community.document_loaders`, `AZLyricsLoader`], - [`langchain.document_loaders`, `AirbyteCDKLoader`, `langchain_community.document_loaders`, `AirbyteCDKLoader`], - [`langchain.document_loaders`, `AirbyteGongLoader`, `langchain_community.document_loaders`, `AirbyteGongLoader`], - [`langchain.document_loaders`, `AirbyteJSONLoader`, `langchain_community.document_loaders`, `AirbyteJSONLoader`], - [`langchain.document_loaders`, `AirbyteHubspotLoader`, `langchain_community.document_loaders`, `AirbyteHubspotLoader`], - [`langchain.document_loaders`, `AirbyteSalesforceLoader`, `langchain_community.document_loaders`, `AirbyteSalesforceLoader`], - [`langchain.document_loaders`, `AirbyteShopifyLoader`, `langchain_community.document_loaders`, `AirbyteShopifyLoader`], - [`langchain.document_loaders`, `AirbyteStripeLoader`, `langchain_community.document_loaders`, `AirbyteStripeLoader`], - [`langchain.document_loaders`, `AirbyteTypeformLoader`, `langchain_community.document_loaders`, `AirbyteTypeformLoader`], - [`langchain.document_loaders`, `AirbyteZendeskSupportLoader`, `langchain_community.document_loaders`, `AirbyteZendeskSupportLoader`], - [`langchain.document_loaders`, `AirtableLoader`, `langchain_community.document_loaders`, `AirtableLoader`], - [`langchain.document_loaders`, `AmazonTextractPDFLoader`, `langchain_community.document_loaders`, `AmazonTextractPDFLoader`], - [`langchain.document_loaders`, `ApifyDatasetLoader`, `langchain_community.document_loaders`, `ApifyDatasetLoader`], - [`langchain.document_loaders`, `ArcGISLoader`, `langchain_community.document_loaders`, `ArcGISLoader`], - [`langchain.document_loaders`, `ArxivLoader`, `langchain_community.document_loaders`, `ArxivLoader`], - [`langchain.document_loaders`, `AssemblyAIAudioTranscriptLoader`, `langchain_community.document_loaders`, `AssemblyAIAudioTranscriptLoader`], - [`langchain.document_loaders`, `AzureAIDataLoader`, `langchain_community.document_loaders`, `AzureAIDataLoader`], - [`langchain.document_loaders`, `AzureBlobStorageContainerLoader`, `langchain_community.document_loaders`, `AzureBlobStorageContainerLoader`], - [`langchain.document_loaders`, `AzureBlobStorageFileLoader`, `langchain_community.document_loaders`, `AzureBlobStorageFileLoader`], - [`langchain.document_loaders`, `BSHTMLLoader`, `langchain_community.document_loaders`, `BSHTMLLoader`], - [`langchain.document_loaders`, `BibtexLoader`, `langchain_community.document_loaders`, `BibtexLoader`], - [`langchain.document_loaders`, `BigQueryLoader`, `langchain_community.document_loaders`, `BigQueryLoader`], - [`langchain.document_loaders`, `BiliBiliLoader`, `langchain_community.document_loaders`, `BiliBiliLoader`], - [`langchain.document_loaders`, `BlackboardLoader`, `langchain_community.document_loaders`, `BlackboardLoader`], - [`langchain.document_loaders`, `BlockchainDocumentLoader`, `langchain_community.document_loaders`, `BlockchainDocumentLoader`], - [`langchain.document_loaders`, `BraveSearchLoader`, `langchain_community.document_loaders`, `BraveSearchLoader`], - [`langchain.document_loaders`, `BrowserlessLoader`, `langchain_community.document_loaders`, `BrowserlessLoader`], - [`langchain.document_loaders`, `CSVLoader`, `langchain_community.document_loaders`, `CSVLoader`], - [`langchain.document_loaders`, `ChatGPTLoader`, `langchain_community.document_loaders`, `ChatGPTLoader`], - [`langchain.document_loaders`, `CoNLLULoader`, `langchain_community.document_loaders`, `CoNLLULoader`], - [`langchain.document_loaders`, `CollegeConfidentialLoader`, `langchain_community.document_loaders`, `CollegeConfidentialLoader`], - [`langchain.document_loaders`, `ConcurrentLoader`, `langchain_community.document_loaders`, `ConcurrentLoader`], - [`langchain.document_loaders`, `ConfluenceLoader`, `langchain_community.document_loaders`, `ConfluenceLoader`], - [`langchain.document_loaders`, `CouchbaseLoader`, `langchain_community.document_loaders`, `CouchbaseLoader`], - [`langchain.document_loaders`, `CubeSemanticLoader`, `langchain_community.document_loaders`, `CubeSemanticLoader`], - [`langchain.document_loaders`, `DataFrameLoader`, `langchain_community.document_loaders`, `DataFrameLoader`], - [`langchain.document_loaders`, `DatadogLogsLoader`, `langchain_community.document_loaders`, `DatadogLogsLoader`], - [`langchain.document_loaders`, `DiffbotLoader`, `langchain_community.document_loaders`, `DiffbotLoader`], - [`langchain.document_loaders`, `DirectoryLoader`, `langchain_community.document_loaders`, `DirectoryLoader`], - [`langchain.document_loaders`, `DiscordChatLoader`, `langchain_community.document_loaders`, `DiscordChatLoader`], - [`langchain.document_loaders`, `DocugamiLoader`, `langchain_community.document_loaders`, `DocugamiLoader`], - [`langchain.document_loaders`, `DocusaurusLoader`, `langchain_community.document_loaders`, `DocusaurusLoader`], - [`langchain.document_loaders`, `Docx2txtLoader`, `langchain_community.document_loaders`, `Docx2txtLoader`], - [`langchain.document_loaders`, `DropboxLoader`, `langchain_community.document_loaders`, `DropboxLoader`], - [`langchain.document_loaders`, `DuckDBLoader`, `langchain_community.document_loaders`, `DuckDBLoader`], - [`langchain.document_loaders`, `EtherscanLoader`, `langchain_community.document_loaders`, `EtherscanLoader`], - [`langchain.document_loaders`, `EverNoteLoader`, `langchain_community.document_loaders`, `EverNoteLoader`], - [`langchain.document_loaders`, `FacebookChatLoader`, `langchain_community.document_loaders`, `FacebookChatLoader`], - [`langchain.document_loaders`, `FaunaLoader`, `langchain_community.document_loaders`, `FaunaLoader`], - [`langchain.document_loaders`, `FigmaFileLoader`, `langchain_community.document_loaders`, `FigmaFileLoader`], - [`langchain.document_loaders`, `FileSystemBlobLoader`, `langchain_community.document_loaders`, `FileSystemBlobLoader`], - [`langchain.document_loaders`, `GCSDirectoryLoader`, `langchain_community.document_loaders`, `GCSDirectoryLoader`], - [`langchain.document_loaders`, `GCSFileLoader`, `langchain_community.document_loaders`, `GCSFileLoader`], - [`langchain.document_loaders`, `GeoDataFrameLoader`, `langchain_community.document_loaders`, `GeoDataFrameLoader`], - [`langchain.document_loaders`, `GithubFileLoader`, `langchain_community.document_loaders`, `GithubFileLoader`], - [`langchain.document_loaders`, `GitHubIssuesLoader`, `langchain_community.document_loaders`, `GitHubIssuesLoader`], - [`langchain.document_loaders`, `GitLoader`, `langchain_community.document_loaders`, `GitLoader`], - [`langchain.document_loaders`, `GitbookLoader`, `langchain_community.document_loaders`, `GitbookLoader`], - [`langchain.document_loaders`, `GoogleApiClient`, `langchain_community.document_loaders`, `GoogleApiClient`], - [`langchain.document_loaders`, `GoogleApiYoutubeLoader`, `langchain_community.document_loaders`, `GoogleApiYoutubeLoader`], - [`langchain.document_loaders`, `GoogleSpeechToTextLoader`, `langchain_community.document_loaders`, `GoogleSpeechToTextLoader`], - [`langchain.document_loaders`, `GoogleDriveLoader`, `langchain_community.document_loaders`, `GoogleDriveLoader`], - [`langchain.document_loaders`, `GutenbergLoader`, `langchain_community.document_loaders`, `GutenbergLoader`], - [`langchain.document_loaders`, `HNLoader`, `langchain_community.document_loaders`, `HNLoader`], - [`langchain.document_loaders`, `HuggingFaceDatasetLoader`, `langchain_community.document_loaders`, `HuggingFaceDatasetLoader`], - [`langchain.document_loaders`, `IFixitLoader`, `langchain_community.document_loaders`, `IFixitLoader`], - [`langchain.document_loaders`, `IMSDbLoader`, `langchain_community.document_loaders`, `IMSDbLoader`], - [`langchain.document_loaders`, `ImageCaptionLoader`, `langchain_community.document_loaders`, `ImageCaptionLoader`], - [`langchain.document_loaders`, `IuguLoader`, `langchain_community.document_loaders`, `IuguLoader`], - [`langchain.document_loaders`, `JSONLoader`, `langchain_community.document_loaders`, `JSONLoader`], - [`langchain.document_loaders`, `JoplinLoader`, `langchain_community.document_loaders`, `JoplinLoader`], - [`langchain.document_loaders`, `LarkSuiteDocLoader`, `langchain_community.document_loaders`, `LarkSuiteDocLoader`], - [`langchain.document_loaders`, `LakeFSLoader`, `langchain_community.document_loaders`, `LakeFSLoader`], - [`langchain.document_loaders`, `MHTMLLoader`, `langchain_community.document_loaders`, `MHTMLLoader`], - [`langchain.document_loaders`, `MWDumpLoader`, `langchain_community.document_loaders`, `MWDumpLoader`], - [`langchain.document_loaders`, `MastodonTootsLoader`, `langchain_community.document_loaders`, `MastodonTootsLoader`], - [`langchain.document_loaders`, `MathpixPDFLoader`, `langchain_community.document_loaders`, `MathpixPDFLoader`], - [`langchain.document_loaders`, `MaxComputeLoader`, `langchain_community.document_loaders`, `MaxComputeLoader`], - [`langchain.document_loaders`, `MergedDataLoader`, `langchain_community.document_loaders`, `MergedDataLoader`], - [`langchain.document_loaders`, `ModernTreasuryLoader`, `langchain_community.document_loaders`, `ModernTreasuryLoader`], - [`langchain.document_loaders`, `MongodbLoader`, `langchain_community.document_loaders`, `MongodbLoader`], - [`langchain.document_loaders`, `NewsURLLoader`, `langchain_community.document_loaders`, `NewsURLLoader`], - [`langchain.document_loaders`, `NotebookLoader`, `langchain_community.document_loaders`, `NotebookLoader`], - [`langchain.document_loaders`, `NotionDBLoader`, `langchain_community.document_loaders`, `NotionDBLoader`], - [`langchain.document_loaders`, `NotionDirectoryLoader`, `langchain_community.document_loaders`, `NotionDirectoryLoader`], - [`langchain.document_loaders`, `OBSDirectoryLoader`, `langchain_community.document_loaders`, `OBSDirectoryLoader`], - [`langchain.document_loaders`, `OBSFileLoader`, `langchain_community.document_loaders`, `OBSFileLoader`], - [`langchain.document_loaders`, `ObsidianLoader`, `langchain_community.document_loaders`, `ObsidianLoader`], - [`langchain.document_loaders`, `OneDriveFileLoader`, `langchain_community.document_loaders`, `OneDriveFileLoader`], - [`langchain.document_loaders`, `OneDriveLoader`, `langchain_community.document_loaders`, `OneDriveLoader`], - [`langchain.document_loaders`, `OnlinePDFLoader`, `langchain_community.document_loaders`, `OnlinePDFLoader`], - [`langchain.document_loaders`, `OpenCityDataLoader`, `langchain_community.document_loaders`, `OpenCityDataLoader`], - [`langchain.document_loaders`, `OutlookMessageLoader`, `langchain_community.document_loaders`, `OutlookMessageLoader`], - [`langchain.document_loaders`, `PDFMinerLoader`, `langchain_community.document_loaders`, `PDFMinerLoader`], - [`langchain.document_loaders`, `PDFMinerPDFasHTMLLoader`, `langchain_community.document_loaders`, `PDFMinerPDFasHTMLLoader`], - [`langchain.document_loaders`, `PDFPlumberLoader`, `langchain_community.document_loaders`, `PDFPlumberLoader`], - [`langchain.document_loaders`, `PlaywrightURLLoader`, `langchain_community.document_loaders`, `PlaywrightURLLoader`], - [`langchain.document_loaders`, `PolarsDataFrameLoader`, `langchain_community.document_loaders`, `PolarsDataFrameLoader`], - [`langchain.document_loaders`, `PsychicLoader`, `langchain_community.document_loaders`, `PsychicLoader`], - [`langchain.document_loaders`, `PubMedLoader`, `langchain_community.document_loaders`, `PubMedLoader`], - [`langchain.document_loaders`, `PyMuPDFLoader`, `langchain_community.document_loaders`, `PyMuPDFLoader`], - [`langchain.document_loaders`, `PyPDFDirectoryLoader`, `langchain_community.document_loaders`, `PyPDFDirectoryLoader`], - [`langchain.document_loaders`, `PagedPDFSplitter`, `langchain_community.document_loaders`, `PyPDFLoader`], - [`langchain.document_loaders`, `PyPDFLoader`, `langchain_community.document_loaders`, `PyPDFLoader`], - [`langchain.document_loaders`, `PyPDFium2Loader`, `langchain_community.document_loaders`, `PyPDFium2Loader`], - [`langchain.document_loaders`, `PySparkDataFrameLoader`, `langchain_community.document_loaders`, `PySparkDataFrameLoader`], - [`langchain.document_loaders`, `PythonLoader`, `langchain_community.document_loaders`, `PythonLoader`], - [`langchain.document_loaders`, `RSSFeedLoader`, `langchain_community.document_loaders`, `RSSFeedLoader`], - [`langchain.document_loaders`, `ReadTheDocsLoader`, `langchain_community.document_loaders`, `ReadTheDocsLoader`], - [`langchain.document_loaders`, `RecursiveUrlLoader`, `langchain_community.document_loaders`, `RecursiveUrlLoader`], - [`langchain.document_loaders`, `RedditPostsLoader`, `langchain_community.document_loaders`, `RedditPostsLoader`], - [`langchain.document_loaders`, `RoamLoader`, `langchain_community.document_loaders`, `RoamLoader`], - [`langchain.document_loaders`, `RocksetLoader`, `langchain_community.document_loaders`, `RocksetLoader`], - [`langchain.document_loaders`, `S3DirectoryLoader`, `langchain_community.document_loaders`, `S3DirectoryLoader`], - [`langchain.document_loaders`, `S3FileLoader`, `langchain_community.document_loaders`, `S3FileLoader`], - [`langchain.document_loaders`, `SRTLoader`, `langchain_community.document_loaders`, `SRTLoader`], - [`langchain.document_loaders`, `SeleniumURLLoader`, `langchain_community.document_loaders`, `SeleniumURLLoader`], - [`langchain.document_loaders`, `SharePointLoader`, `langchain_community.document_loaders`, `SharePointLoader`], - [`langchain.document_loaders`, `SitemapLoader`, `langchain_community.document_loaders`, `SitemapLoader`], - [`langchain.document_loaders`, `SlackDirectoryLoader`, `langchain_community.document_loaders`, `SlackDirectoryLoader`], - [`langchain.document_loaders`, `SnowflakeLoader`, `langchain_community.document_loaders`, `SnowflakeLoader`], - [`langchain.document_loaders`, `SpreedlyLoader`, `langchain_community.document_loaders`, `SpreedlyLoader`], - [`langchain.document_loaders`, `StripeLoader`, `langchain_community.document_loaders`, `StripeLoader`], - [`langchain.document_loaders`, `TelegramChatApiLoader`, `langchain_community.document_loaders`, `TelegramChatApiLoader`], - [`langchain.document_loaders`, `TelegramChatFileLoader`, `langchain_community.document_loaders`, `TelegramChatLoader`], - [`langchain.document_loaders`, `TelegramChatLoader`, `langchain_community.document_loaders`, `TelegramChatLoader`], - [`langchain.document_loaders`, `TensorflowDatasetLoader`, `langchain_community.document_loaders`, `TensorflowDatasetLoader`], - [`langchain.document_loaders`, `TencentCOSDirectoryLoader`, `langchain_community.document_loaders`, `TencentCOSDirectoryLoader`], - [`langchain.document_loaders`, `TencentCOSFileLoader`, `langchain_community.document_loaders`, `TencentCOSFileLoader`], - [`langchain.document_loaders`, `TextLoader`, `langchain_community.document_loaders`, `TextLoader`], - [`langchain.document_loaders`, `ToMarkdownLoader`, `langchain_community.document_loaders`, `ToMarkdownLoader`], - [`langchain.document_loaders`, `TomlLoader`, `langchain_community.document_loaders`, `TomlLoader`], - [`langchain.document_loaders`, `TrelloLoader`, `langchain_community.document_loaders`, `TrelloLoader`], - [`langchain.document_loaders`, `TwitterTweetLoader`, `langchain_community.document_loaders`, `TwitterTweetLoader`], - [`langchain.document_loaders`, `UnstructuredAPIFileIOLoader`, `langchain_community.document_loaders`, `UnstructuredAPIFileIOLoader`], - [`langchain.document_loaders`, `UnstructuredAPIFileLoader`, `langchain_community.document_loaders`, `UnstructuredAPIFileLoader`], - [`langchain.document_loaders`, `UnstructuredCSVLoader`, `langchain_community.document_loaders`, `UnstructuredCSVLoader`], - [`langchain.document_loaders`, `UnstructuredEPubLoader`, `langchain_community.document_loaders`, `UnstructuredEPubLoader`], - [`langchain.document_loaders`, `UnstructuredEmailLoader`, `langchain_community.document_loaders`, `UnstructuredEmailLoader`], - [`langchain.document_loaders`, `UnstructuredExcelLoader`, `langchain_community.document_loaders`, `UnstructuredExcelLoader`], - [`langchain.document_loaders`, `UnstructuredFileIOLoader`, `langchain_community.document_loaders`, `UnstructuredFileIOLoader`], - [`langchain.document_loaders`, `UnstructuredFileLoader`, `langchain_community.document_loaders`, `UnstructuredFileLoader`], - [`langchain.document_loaders`, `UnstructuredHTMLLoader`, `langchain_community.document_loaders`, `UnstructuredHTMLLoader`], - [`langchain.document_loaders`, `UnstructuredImageLoader`, `langchain_community.document_loaders`, `UnstructuredImageLoader`], - [`langchain.document_loaders`, `UnstructuredMarkdownLoader`, `langchain_community.document_loaders`, `UnstructuredMarkdownLoader`], - [`langchain.document_loaders`, `UnstructuredODTLoader`, `langchain_community.document_loaders`, `UnstructuredODTLoader`], - [`langchain.document_loaders`, `UnstructuredOrgModeLoader`, `langchain_community.document_loaders`, `UnstructuredOrgModeLoader`], - [`langchain.document_loaders`, `UnstructuredPDFLoader`, `langchain_community.document_loaders`, `UnstructuredPDFLoader`], - [`langchain.document_loaders`, `UnstructuredPowerPointLoader`, `langchain_community.document_loaders`, `UnstructuredPowerPointLoader`], - [`langchain.document_loaders`, `UnstructuredRSTLoader`, `langchain_community.document_loaders`, `UnstructuredRSTLoader`], - [`langchain.document_loaders`, `UnstructuredRTFLoader`, `langchain_community.document_loaders`, `UnstructuredRTFLoader`], - [`langchain.document_loaders`, `UnstructuredTSVLoader`, `langchain_community.document_loaders`, `UnstructuredTSVLoader`], - [`langchain.document_loaders`, `UnstructuredURLLoader`, `langchain_community.document_loaders`, `UnstructuredURLLoader`], - [`langchain.document_loaders`, `UnstructuredWordDocumentLoader`, `langchain_community.document_loaders`, `UnstructuredWordDocumentLoader`], - [`langchain.document_loaders`, `UnstructuredXMLLoader`, `langchain_community.document_loaders`, `UnstructuredXMLLoader`], - [`langchain.document_loaders`, `WeatherDataLoader`, `langchain_community.document_loaders`, `WeatherDataLoader`], - [`langchain.document_loaders`, `WebBaseLoader`, `langchain_community.document_loaders`, `WebBaseLoader`], - [`langchain.document_loaders`, `WhatsAppChatLoader`, `langchain_community.document_loaders`, `WhatsAppChatLoader`], - [`langchain.document_loaders`, `WikipediaLoader`, `langchain_community.document_loaders`, `WikipediaLoader`], - [`langchain.document_loaders`, `XorbitsLoader`, `langchain_community.document_loaders`, `XorbitsLoader`], - [`langchain.document_loaders`, `YoutubeAudioLoader`, `langchain_community.document_loaders`, `YoutubeAudioLoader`], - [`langchain.document_loaders`, `YoutubeLoader`, `langchain_community.document_loaders`, `YoutubeLoader`], - [`langchain.document_loaders`, `YuqueLoader`, `langchain_community.document_loaders`, `YuqueLoader`], - [`langchain.document_loaders.acreom`, `AcreomLoader`, `langchain_community.document_loaders`, `AcreomLoader`], - [`langchain.document_loaders.airbyte`, `AirbyteCDKLoader`, `langchain_community.document_loaders`, `AirbyteCDKLoader`], - [`langchain.document_loaders.airbyte`, `AirbyteHubspotLoader`, `langchain_community.document_loaders`, `AirbyteHubspotLoader`], - [`langchain.document_loaders.airbyte`, `AirbyteStripeLoader`, `langchain_community.document_loaders`, `AirbyteStripeLoader`], - [`langchain.document_loaders.airbyte`, `AirbyteTypeformLoader`, `langchain_community.document_loaders`, `AirbyteTypeformLoader`], - [`langchain.document_loaders.airbyte`, `AirbyteZendeskSupportLoader`, `langchain_community.document_loaders`, `AirbyteZendeskSupportLoader`], - [`langchain.document_loaders.airbyte`, `AirbyteShopifyLoader`, `langchain_community.document_loaders`, `AirbyteShopifyLoader`], - [`langchain.document_loaders.airbyte`, `AirbyteSalesforceLoader`, `langchain_community.document_loaders`, `AirbyteSalesforceLoader`], - [`langchain.document_loaders.airbyte`, `AirbyteGongLoader`, `langchain_community.document_loaders`, `AirbyteGongLoader`], - [`langchain.document_loaders.airbyte_json`, `AirbyteJSONLoader`, `langchain_community.document_loaders`, `AirbyteJSONLoader`], - [`langchain.document_loaders.airtable`, `AirtableLoader`, `langchain_community.document_loaders`, `AirtableLoader`], - [`langchain.document_loaders.apify_dataset`, `ApifyDatasetLoader`, `langchain_community.document_loaders`, `ApifyDatasetLoader`], - [`langchain.document_loaders.arcgis_loader`, `ArcGISLoader`, `langchain_community.document_loaders`, `ArcGISLoader`], - [`langchain.document_loaders.arxiv`, `ArxivLoader`, `langchain_community.document_loaders`, `ArxivLoader`], - [`langchain.document_loaders.assemblyai`, `TranscriptFormat`, `langchain_community.document_loaders.assemblyai`, `TranscriptFormat`], - [`langchain.document_loaders.assemblyai`, `AssemblyAIAudioTranscriptLoader`, `langchain_community.document_loaders`, `AssemblyAIAudioTranscriptLoader`], - [`langchain.document_loaders.async_html`, `AsyncHtmlLoader`, `langchain_community.document_loaders`, `AsyncHtmlLoader`], - [`langchain.document_loaders.azlyrics`, `AZLyricsLoader`, `langchain_community.document_loaders`, `AZLyricsLoader`], - [`langchain.document_loaders.azure_ai_data`, `AzureAIDataLoader`, `langchain_community.document_loaders`, `AzureAIDataLoader`], - [`langchain.document_loaders.azure_blob_storage_container`, `AzureBlobStorageContainerLoader`, `langchain_community.document_loaders`, `AzureBlobStorageContainerLoader`], - [`langchain.document_loaders.azure_blob_storage_file`, `AzureBlobStorageFileLoader`, `langchain_community.document_loaders`, `AzureBlobStorageFileLoader`], - [`langchain.document_loaders.baiducloud_bos_directory`, `BaiduBOSDirectoryLoader`, `langchain_community.document_loaders.baiducloud_bos_directory`, `BaiduBOSDirectoryLoader`], - [`langchain.document_loaders.baiducloud_bos_file`, `BaiduBOSFileLoader`, `langchain_community.document_loaders.baiducloud_bos_file`, `BaiduBOSFileLoader`], - [`langchain.document_loaders.base_o365`, `O365BaseLoader`, `langchain_community.document_loaders.base_o365`, `O365BaseLoader`], - [`langchain.document_loaders.bibtex`, `BibtexLoader`, `langchain_community.document_loaders`, `BibtexLoader`], - [`langchain.document_loaders.bigquery`, `BigQueryLoader`, `langchain_community.document_loaders`, `BigQueryLoader`], - [`langchain.document_loaders.bilibili`, `BiliBiliLoader`, `langchain_community.document_loaders`, `BiliBiliLoader`], - [`langchain.document_loaders.blackboard`, `BlackboardLoader`, `langchain_community.document_loaders`, `BlackboardLoader`], - [`langchain.document_loaders.blob_loaders`, `FileSystemBlobLoader`, `langchain_community.document_loaders`, `FileSystemBlobLoader`], - [`langchain.document_loaders.blob_loaders`, `YoutubeAudioLoader`, `langchain_community.document_loaders`, `YoutubeAudioLoader`], - [`langchain.document_loaders.blob_loaders.file_system`, `FileSystemBlobLoader`, `langchain_community.document_loaders`, `FileSystemBlobLoader`], - [`langchain.document_loaders.blob_loaders.youtube_audio`, `YoutubeAudioLoader`, `langchain_community.document_loaders`, `YoutubeAudioLoader`], - [`langchain.document_loaders.blockchain`, `BlockchainType`, `langchain_community.document_loaders.blockchain`, `BlockchainType`], - [`langchain.document_loaders.blockchain`, `BlockchainDocumentLoader`, `langchain_community.document_loaders`, `BlockchainDocumentLoader`], - [`langchain.document_loaders.brave_search`, `BraveSearchLoader`, `langchain_community.document_loaders`, `BraveSearchLoader`], - [`langchain.document_loaders.browserless`, `BrowserlessLoader`, `langchain_community.document_loaders`, `BrowserlessLoader`], - [`langchain.document_loaders.chatgpt`, `concatenate_rows`, `langchain_community.document_loaders.chatgpt`, `concatenate_rows`], - [`langchain.document_loaders.chatgpt`, `ChatGPTLoader`, `langchain_community.document_loaders`, `ChatGPTLoader`], - [`langchain.document_loaders.chromium`, `AsyncChromiumLoader`, `langchain_community.document_loaders`, `AsyncChromiumLoader`], - [`langchain.document_loaders.college_confidential`, `CollegeConfidentialLoader`, `langchain_community.document_loaders`, `CollegeConfidentialLoader`], - [`langchain.document_loaders.concurrent`, `ConcurrentLoader`, `langchain_community.document_loaders`, `ConcurrentLoader`], - [`langchain.document_loaders.confluence`, `ContentFormat`, `langchain_community.document_loaders.confluence`, `ContentFormat`], - [`langchain.document_loaders.confluence`, `ConfluenceLoader`, `langchain_community.document_loaders`, `ConfluenceLoader`], - [`langchain.document_loaders.conllu`, `CoNLLULoader`, `langchain_community.document_loaders`, `CoNLLULoader`], - [`langchain.document_loaders.couchbase`, `CouchbaseLoader`, `langchain_community.document_loaders`, `CouchbaseLoader`], - [`langchain.document_loaders.csv_loader`, `CSVLoader`, `langchain_community.document_loaders`, `CSVLoader`], - [`langchain.document_loaders.csv_loader`, `UnstructuredCSVLoader`, `langchain_community.document_loaders`, `UnstructuredCSVLoader`], - [`langchain.document_loaders.cube_semantic`, `CubeSemanticLoader`, `langchain_community.document_loaders`, `CubeSemanticLoader`], - [`langchain.document_loaders.datadog_logs`, `DatadogLogsLoader`, `langchain_community.document_loaders`, `DatadogLogsLoader`], - [`langchain.document_loaders.dataframe`, `BaseDataFrameLoader`, `langchain_community.document_loaders.dataframe`, `BaseDataFrameLoader`], - [`langchain.document_loaders.dataframe`, `DataFrameLoader`, `langchain_community.document_loaders`, `DataFrameLoader`], - [`langchain.document_loaders.diffbot`, `DiffbotLoader`, `langchain_community.document_loaders`, `DiffbotLoader`], - [`langchain.document_loaders.directory`, `DirectoryLoader`, `langchain_community.document_loaders`, `DirectoryLoader`], - [`langchain.document_loaders.discord`, `DiscordChatLoader`, `langchain_community.document_loaders`, `DiscordChatLoader`], - [`langchain.document_loaders.docugami`, `DocugamiLoader`, `langchain_community.document_loaders`, `DocugamiLoader`], - [`langchain.document_loaders.docusaurus`, `DocusaurusLoader`, `langchain_community.document_loaders`, `DocusaurusLoader`], - [`langchain.document_loaders.dropbox`, `DropboxLoader`, `langchain_community.document_loaders`, `DropboxLoader`], - [`langchain.document_loaders.duckdb_loader`, `DuckDBLoader`, `langchain_community.document_loaders`, `DuckDBLoader`], - [`langchain.document_loaders.email`, `UnstructuredEmailLoader`, `langchain_community.document_loaders`, `UnstructuredEmailLoader`], - [`langchain.document_loaders.email`, `OutlookMessageLoader`, `langchain_community.document_loaders`, `OutlookMessageLoader`], - [`langchain.document_loaders.epub`, `UnstructuredEPubLoader`, `langchain_community.document_loaders`, `UnstructuredEPubLoader`], - [`langchain.document_loaders.etherscan`, `EtherscanLoader`, `langchain_community.document_loaders`, `EtherscanLoader`], - [`langchain.document_loaders.evernote`, `EverNoteLoader`, `langchain_community.document_loaders`, `EverNoteLoader`], - [`langchain.document_loaders.excel`, `UnstructuredExcelLoader`, `langchain_community.document_loaders`, `UnstructuredExcelLoader`], - [`langchain.document_loaders.facebook_chat`, `concatenate_rows`, `langchain_community.document_loaders.facebook_chat`, `concatenate_rows`], - [`langchain.document_loaders.facebook_chat`, `FacebookChatLoader`, `langchain_community.document_loaders`, `FacebookChatLoader`], - [`langchain.document_loaders.fauna`, `FaunaLoader`, `langchain_community.document_loaders`, `FaunaLoader`], - [`langchain.document_loaders.figma`, `FigmaFileLoader`, `langchain_community.document_loaders`, `FigmaFileLoader`], - [`langchain.document_loaders.gcs_directory`, `GCSDirectoryLoader`, `langchain_community.document_loaders`, `GCSDirectoryLoader`], - [`langchain.document_loaders.gcs_file`, `GCSFileLoader`, `langchain_community.document_loaders`, `GCSFileLoader`], - [`langchain.document_loaders.generic`, `GenericLoader`, `langchain_community.document_loaders.generic`, `GenericLoader`], - [`langchain.document_loaders.geodataframe`, `GeoDataFrameLoader`, `langchain_community.document_loaders`, `GeoDataFrameLoader`], - [`langchain.document_loaders.git`, `GitLoader`, `langchain_community.document_loaders`, `GitLoader`], - [`langchain.document_loaders.gitbook`, `GitbookLoader`, `langchain_community.document_loaders`, `GitbookLoader`], - [`langchain.document_loaders.github`, `BaseGitHubLoader`, `langchain_community.document_loaders.github`, `BaseGitHubLoader`], - [`langchain.document_loaders.github`, `GitHubIssuesLoader`, `langchain_community.document_loaders`, `GitHubIssuesLoader`], - [`langchain.document_loaders.google_speech_to_text`, `GoogleSpeechToTextLoader`, `langchain_community.document_loaders`, `GoogleSpeechToTextLoader`], - [`langchain.document_loaders.googledrive`, `GoogleDriveLoader`, `langchain_community.document_loaders`, `GoogleDriveLoader`], - [`langchain.document_loaders.gutenberg`, `GutenbergLoader`, `langchain_community.document_loaders`, `GutenbergLoader`], - [`langchain.document_loaders.helpers`, `FileEncoding`, `langchain_community.document_loaders.helpers`, `FileEncoding`], - [`langchain.document_loaders.helpers`, `detect_file_encodings`, `langchain_community.document_loaders.helpers`, `detect_file_encodings`], - [`langchain.document_loaders.hn`, `HNLoader`, `langchain_community.document_loaders`, `HNLoader`], - [`langchain.document_loaders.html`, `UnstructuredHTMLLoader`, `langchain_community.document_loaders`, `UnstructuredHTMLLoader`], - [`langchain.document_loaders.html_bs`, `BSHTMLLoader`, `langchain_community.document_loaders`, `BSHTMLLoader`], - [`langchain.document_loaders.hugging_face_dataset`, `HuggingFaceDatasetLoader`, `langchain_community.document_loaders`, `HuggingFaceDatasetLoader`], - [`langchain.document_loaders.ifixit`, `IFixitLoader`, `langchain_community.document_loaders`, `IFixitLoader`], - [`langchain.document_loaders.image`, `UnstructuredImageLoader`, `langchain_community.document_loaders`, `UnstructuredImageLoader`], - [`langchain.document_loaders.image_captions`, `ImageCaptionLoader`, `langchain_community.document_loaders`, `ImageCaptionLoader`], - [`langchain.document_loaders.imsdb`, `IMSDbLoader`, `langchain_community.document_loaders`, `IMSDbLoader`], - [`langchain.document_loaders.iugu`, `IuguLoader`, `langchain_community.document_loaders`, `IuguLoader`], - [`langchain.document_loaders.joplin`, `JoplinLoader`, `langchain_community.document_loaders`, `JoplinLoader`], - [`langchain.document_loaders.json_loader`, `JSONLoader`, `langchain_community.document_loaders`, `JSONLoader`], - [`langchain.document_loaders.lakefs`, `LakeFSClient`, `langchain_community.document_loaders.lakefs`, `LakeFSClient`], - [`langchain.document_loaders.lakefs`, `LakeFSLoader`, `langchain_community.document_loaders`, `LakeFSLoader`], - [`langchain.document_loaders.lakefs`, `UnstructuredLakeFSLoader`, `langchain_community.document_loaders.lakefs`, `UnstructuredLakeFSLoader`], - [`langchain.document_loaders.larksuite`, `LarkSuiteDocLoader`, `langchain_community.document_loaders`, `LarkSuiteDocLoader`], - [`langchain.document_loaders.markdown`, `UnstructuredMarkdownLoader`, `langchain_community.document_loaders`, `UnstructuredMarkdownLoader`], - [`langchain.document_loaders.mastodon`, `MastodonTootsLoader`, `langchain_community.document_loaders`, `MastodonTootsLoader`], - [`langchain.document_loaders.max_compute`, `MaxComputeLoader`, `langchain_community.document_loaders`, `MaxComputeLoader`], - [`langchain.document_loaders.mediawikidump`, `MWDumpLoader`, `langchain_community.document_loaders`, `MWDumpLoader`], - [`langchain.document_loaders.merge`, `MergedDataLoader`, `langchain_community.document_loaders`, `MergedDataLoader`], - [`langchain.document_loaders.mhtml`, `MHTMLLoader`, `langchain_community.document_loaders`, `MHTMLLoader`], - [`langchain.document_loaders.modern_treasury`, `ModernTreasuryLoader`, `langchain_community.document_loaders`, `ModernTreasuryLoader`], - [`langchain.document_loaders.mongodb`, `MongodbLoader`, `langchain_community.document_loaders`, `MongodbLoader`], - [`langchain.document_loaders.news`, `NewsURLLoader`, `langchain_community.document_loaders`, `NewsURLLoader`], - [`langchain.document_loaders.notebook`, `concatenate_cells`, `langchain_community.document_loaders.notebook`, `concatenate_cells`], - [`langchain.document_loaders.notebook`, `remove_newlines`, `langchain_community.document_loaders.notebook`, `remove_newlines`], - [`langchain.document_loaders.notebook`, `NotebookLoader`, `langchain_community.document_loaders`, `NotebookLoader`], - [`langchain.document_loaders.notion`, `NotionDirectoryLoader`, `langchain_community.document_loaders`, `NotionDirectoryLoader`], - [`langchain.document_loaders.notiondb`, `NotionDBLoader`, `langchain_community.document_loaders`, `NotionDBLoader`], - [`langchain.document_loaders.nuclia`, `NucliaLoader`, `langchain_community.document_loaders.nuclia`, `NucliaLoader`], - [`langchain.document_loaders.obs_directory`, `OBSDirectoryLoader`, `langchain_community.document_loaders`, `OBSDirectoryLoader`], - [`langchain.document_loaders.obs_file`, `OBSFileLoader`, `langchain_community.document_loaders`, `OBSFileLoader`], - [`langchain.document_loaders.obsidian`, `ObsidianLoader`, `langchain_community.document_loaders`, `ObsidianLoader`], - [`langchain.document_loaders.odt`, `UnstructuredODTLoader`, `langchain_community.document_loaders`, `UnstructuredODTLoader`], - [`langchain.document_loaders.onedrive`, `OneDriveLoader`, `langchain_community.document_loaders`, `OneDriveLoader`], - [`langchain.document_loaders.onedrive_file`, `OneDriveFileLoader`, `langchain_community.document_loaders`, `OneDriveFileLoader`], - [`langchain.document_loaders.onenote`, `OneNoteLoader`, `langchain_community.document_loaders.onenote`, `OneNoteLoader`], - [`langchain.document_loaders.open_city_data`, `OpenCityDataLoader`, `langchain_community.document_loaders`, `OpenCityDataLoader`], - [`langchain.document_loaders.org_mode`, `UnstructuredOrgModeLoader`, `langchain_community.document_loaders`, `UnstructuredOrgModeLoader`], - [`langchain.document_loaders.parsers`, `BS4HTMLParser`, `langchain_community.document_loaders.parsers.html.bs4`, `BS4HTMLParser`], - [`langchain.document_loaders.parsers`, `DocAIParser`, `langchain_community.document_loaders.parsers.docai`, `DocAIParser`], - [`langchain.document_loaders.parsers`, `GrobidParser`, `langchain_community.document_loaders.parsers.grobid`, `GrobidParser`], - [`langchain.document_loaders.parsers`, `LanguageParser`, `langchain_community.document_loaders.parsers.language.language_parser`, `LanguageParser`], - [`langchain.document_loaders.parsers`, `OpenAIWhisperParser`, `langchain_community.document_loaders.parsers.audio`, `OpenAIWhisperParser`], - [`langchain.document_loaders.parsers`, `PDFMinerParser`, `langchain_community.document_loaders.parsers.pdf`, `PDFMinerParser`], - [`langchain.document_loaders.parsers`, `PDFPlumberParser`, `langchain_community.document_loaders.parsers.pdf`, `PDFPlumberParser`], - [`langchain.document_loaders.parsers`, `PyMuPDFParser`, `langchain_community.document_loaders.parsers.pdf`, `PyMuPDFParser`], - [`langchain.document_loaders.parsers`, `PyPDFium2Parser`, `langchain_community.document_loaders.parsers.pdf`, `PyPDFium2Parser`], - [`langchain.document_loaders.parsers`, `PyPDFParser`, `langchain_community.document_loaders.parsers.pdf`, `PyPDFParser`], - [`langchain.document_loaders.parsers.audio`, `OpenAIWhisperParser`, `langchain_community.document_loaders.parsers.audio`, `OpenAIWhisperParser`], - [`langchain.document_loaders.parsers.audio`, `OpenAIWhisperParserLocal`, `langchain_community.document_loaders.parsers.audio`, `OpenAIWhisperParserLocal`], - [`langchain.document_loaders.parsers.audio`, `YandexSTTParser`, `langchain_community.document_loaders.parsers.audio`, `YandexSTTParser`], - [`langchain.document_loaders.parsers.docai`, `DocAIParsingResults`, `langchain_community.document_loaders.parsers.docai`, `DocAIParsingResults`], - [`langchain.document_loaders.parsers.docai`, `DocAIParser`, `langchain_community.document_loaders.parsers.docai`, `DocAIParser`], - [`langchain.document_loaders.parsers.generic`, `MimeTypeBasedParser`, `langchain_community.document_loaders.parsers.generic`, `MimeTypeBasedParser`], - [`langchain.document_loaders.parsers.grobid`, `GrobidParser`, `langchain_community.document_loaders.parsers.grobid`, `GrobidParser`], - [`langchain.document_loaders.parsers.grobid`, `ServerUnavailableException`, `langchain_community.document_loaders.parsers.grobid`, `ServerUnavailableException`], - [`langchain.document_loaders.parsers.html`, `BS4HTMLParser`, `langchain_community.document_loaders.parsers.html.bs4`, `BS4HTMLParser`], - [`langchain.document_loaders.parsers.html.bs4`, `BS4HTMLParser`, `langchain_community.document_loaders.parsers.html.bs4`, `BS4HTMLParser`], - [`langchain.document_loaders.parsers.language`, `LanguageParser`, `langchain_community.document_loaders.parsers.language.language_parser`, `LanguageParser`], - [`langchain.document_loaders.parsers.language.cobol`, `CobolSegmenter`, `langchain_community.document_loaders.parsers.language.cobol`, `CobolSegmenter`], - [`langchain.document_loaders.parsers.language.code_segmenter`, `CodeSegmenter`, `langchain_community.document_loaders.parsers.language.code_segmenter`, `CodeSegmenter`], - [`langchain.document_loaders.parsers.language.javascript`, `JavaScriptSegmenter`, `langchain_community.document_loaders.parsers.language.javascript`, `JavaScriptSegmenter`], - [`langchain.document_loaders.parsers.language.language_parser`, `LanguageParser`, `langchain_community.document_loaders.parsers.language.language_parser`, `LanguageParser`], - [`langchain.document_loaders.parsers.language.python`, `PythonSegmenter`, `langchain_community.document_loaders.parsers.language.python`, `PythonSegmenter`], - [`langchain.document_loaders.parsers.msword`, `MsWordParser`, `langchain_community.document_loaders.parsers.msword`, `MsWordParser`], - [`langchain.document_loaders.parsers.pdf`, `extract_from_images_with_rapidocr`, `langchain_community.document_loaders.parsers.pdf`, `extract_from_images_with_rapidocr`], - [`langchain.document_loaders.parsers.pdf`, `PyPDFParser`, `langchain_community.document_loaders.parsers.pdf`, `PyPDFParser`], - [`langchain.document_loaders.parsers.pdf`, `PDFMinerParser`, `langchain_community.document_loaders.parsers.pdf`, `PDFMinerParser`], - [`langchain.document_loaders.parsers.pdf`, `PyMuPDFParser`, `langchain_community.document_loaders.parsers.pdf`, `PyMuPDFParser`], - [`langchain.document_loaders.parsers.pdf`, `PyPDFium2Parser`, `langchain_community.document_loaders.parsers.pdf`, `PyPDFium2Parser`], - [`langchain.document_loaders.parsers.pdf`, `PDFPlumberParser`, `langchain_community.document_loaders.parsers.pdf`, `PDFPlumberParser`], - [`langchain.document_loaders.parsers.pdf`, `AmazonTextractPDFParser`, `langchain_community.document_loaders.parsers.pdf`, `AmazonTextractPDFParser`], - [`langchain.document_loaders.parsers.pdf`, `DocumentIntelligenceParser`, `langchain_community.document_loaders.parsers.pdf`, `DocumentIntelligenceParser`], - [`langchain.document_loaders.parsers.registry`, `get_parser`, `langchain_community.document_loaders.parsers.registry`, `get_parser`], - [`langchain.document_loaders.parsers.txt`, `TextParser`, `langchain_community.document_loaders.parsers.txt`, `TextParser`], - [`langchain.document_loaders.pdf`, `UnstructuredPDFLoader`, `langchain_community.document_loaders`, `UnstructuredPDFLoader`], - [`langchain.document_loaders.pdf`, `BasePDFLoader`, `langchain_community.document_loaders.pdf`, `BasePDFLoader`], - [`langchain.document_loaders.pdf`, `OnlinePDFLoader`, `langchain_community.document_loaders`, `OnlinePDFLoader`], - [`langchain.document_loaders.pdf`, `PagedPDFSplitter`, `langchain_community.document_loaders`, `PyPDFLoader`], - [`langchain.document_loaders.pdf`, `PyPDFium2Loader`, `langchain_community.document_loaders`, `PyPDFium2Loader`], - [`langchain.document_loaders.pdf`, `PyPDFDirectoryLoader`, `langchain_community.document_loaders`, `PyPDFDirectoryLoader`], - [`langchain.document_loaders.pdf`, `PDFMinerLoader`, `langchain_community.document_loaders`, `PDFMinerLoader`], - [`langchain.document_loaders.pdf`, `PDFMinerPDFasHTMLLoader`, `langchain_community.document_loaders`, `PDFMinerPDFasHTMLLoader`], - [`langchain.document_loaders.pdf`, `PyMuPDFLoader`, `langchain_community.document_loaders`, `PyMuPDFLoader`], - [`langchain.document_loaders.pdf`, `MathpixPDFLoader`, `langchain_community.document_loaders`, `MathpixPDFLoader`], - [`langchain.document_loaders.pdf`, `PDFPlumberLoader`, `langchain_community.document_loaders`, `PDFPlumberLoader`], - [`langchain.document_loaders.pdf`, `AmazonTextractPDFLoader`, `langchain_community.document_loaders`, `AmazonTextractPDFLoader`], - [`langchain.document_loaders.pdf`, `DocumentIntelligenceLoader`, `langchain_community.document_loaders.pdf`, `DocumentIntelligenceLoader`], - [`langchain.document_loaders.polars_dataframe`, `PolarsDataFrameLoader`, `langchain_community.document_loaders`, `PolarsDataFrameLoader`], - [`langchain.document_loaders.powerpoint`, `UnstructuredPowerPointLoader`, `langchain_community.document_loaders`, `UnstructuredPowerPointLoader`], - [`langchain.document_loaders.psychic`, `PsychicLoader`, `langchain_community.document_loaders`, `PsychicLoader`], - [`langchain.document_loaders.pubmed`, `PubMedLoader`, `langchain_community.document_loaders`, `PubMedLoader`], - [`langchain.document_loaders.pyspark_dataframe`, `PySparkDataFrameLoader`, `langchain_community.document_loaders`, `PySparkDataFrameLoader`], - [`langchain.document_loaders.python`, `PythonLoader`, `langchain_community.document_loaders`, `PythonLoader`], - [`langchain.document_loaders.quip`, `QuipLoader`, `langchain_community.document_loaders.quip`, `QuipLoader`], - [`langchain.document_loaders.readthedocs`, `ReadTheDocsLoader`, `langchain_community.document_loaders`, `ReadTheDocsLoader`], - [`langchain.document_loaders.recursive_url_loader`, `RecursiveUrlLoader`, `langchain_community.document_loaders`, `RecursiveUrlLoader`], - [`langchain.document_loaders.reddit`, `RedditPostsLoader`, `langchain_community.document_loaders`, `RedditPostsLoader`], - [`langchain.document_loaders.roam`, `RoamLoader`, `langchain_community.document_loaders`, `RoamLoader`], - [`langchain.document_loaders.rocksetdb`, `RocksetLoader`, `langchain_community.document_loaders`, `RocksetLoader`], - [`langchain.document_loaders.rspace`, `RSpaceLoader`, `langchain_community.document_loaders.rspace`, `RSpaceLoader`], - [`langchain.document_loaders.rss`, `RSSFeedLoader`, `langchain_community.document_loaders`, `RSSFeedLoader`], - [`langchain.document_loaders.rst`, `UnstructuredRSTLoader`, `langchain_community.document_loaders`, `UnstructuredRSTLoader`], - [`langchain.document_loaders.rtf`, `UnstructuredRTFLoader`, `langchain_community.document_loaders`, `UnstructuredRTFLoader`], - [`langchain.document_loaders.s3_directory`, `S3DirectoryLoader`, `langchain_community.document_loaders`, `S3DirectoryLoader`], - [`langchain.document_loaders.s3_file`, `S3FileLoader`, `langchain_community.document_loaders`, `S3FileLoader`], - [`langchain.document_loaders.sharepoint`, `SharePointLoader`, `langchain_community.document_loaders`, `SharePointLoader`], - [`langchain.document_loaders.sitemap`, `SitemapLoader`, `langchain_community.document_loaders`, `SitemapLoader`], - [`langchain.document_loaders.slack_directory`, `SlackDirectoryLoader`, `langchain_community.document_loaders`, `SlackDirectoryLoader`], - [`langchain.document_loaders.snowflake_loader`, `SnowflakeLoader`, `langchain_community.document_loaders`, `SnowflakeLoader`], - [`langchain.document_loaders.spreedly`, `SpreedlyLoader`, `langchain_community.document_loaders`, `SpreedlyLoader`], - [`langchain.document_loaders.srt`, `SRTLoader`, `langchain_community.document_loaders`, `SRTLoader`], - [`langchain.document_loaders.stripe`, `StripeLoader`, `langchain_community.document_loaders`, `StripeLoader`], - [`langchain.document_loaders.telegram`, `concatenate_rows`, `langchain_community.document_loaders.telegram`, `concatenate_rows`], - [`langchain.document_loaders.telegram`, `TelegramChatFileLoader`, `langchain_community.document_loaders`, `TelegramChatLoader`], - [`langchain.document_loaders.telegram`, `text_to_docs`, `langchain_community.document_loaders.telegram`, `text_to_docs`], - [`langchain.document_loaders.telegram`, `TelegramChatApiLoader`, `langchain_community.document_loaders`, `TelegramChatApiLoader`], - [`langchain.document_loaders.tencent_cos_directory`, `TencentCOSDirectoryLoader`, `langchain_community.document_loaders`, `TencentCOSDirectoryLoader`], - [`langchain.document_loaders.tencent_cos_file`, `TencentCOSFileLoader`, `langchain_community.document_loaders`, `TencentCOSFileLoader`], - [`langchain.document_loaders.tensorflow_datasets`, `TensorflowDatasetLoader`, `langchain_community.document_loaders`, `TensorflowDatasetLoader`], - [`langchain.document_loaders.text`, `TextLoader`, `langchain_community.document_loaders`, `TextLoader`], - [`langchain.document_loaders.tomarkdown`, `ToMarkdownLoader`, `langchain_community.document_loaders`, `ToMarkdownLoader`], - [`langchain.document_loaders.toml`, `TomlLoader`, `langchain_community.document_loaders`, `TomlLoader`], - [`langchain.document_loaders.trello`, `TrelloLoader`, `langchain_community.document_loaders`, `TrelloLoader`], - [`langchain.document_loaders.tsv`, `UnstructuredTSVLoader`, `langchain_community.document_loaders`, `UnstructuredTSVLoader`], - [`langchain.document_loaders.twitter`, `TwitterTweetLoader`, `langchain_community.document_loaders`, `TwitterTweetLoader`], - [`langchain.document_loaders.unstructured`, `satisfies_min_unstructured_version`, `langchain_community.document_loaders.unstructured`, `satisfies_min_unstructured_version`], - [`langchain.document_loaders.unstructured`, `validate_unstructured_version`, `langchain_community.document_loaders.unstructured`, `validate_unstructured_version`], - [`langchain.document_loaders.unstructured`, `UnstructuredBaseLoader`, `langchain_community.document_loaders.unstructured`, `UnstructuredBaseLoader`], - [`langchain.document_loaders.unstructured`, `UnstructuredFileLoader`, `langchain_community.document_loaders`, `UnstructuredFileLoader`], - [`langchain.document_loaders.unstructured`, `get_elements_from_api`, `langchain_community.document_loaders.unstructured`, `get_elements_from_api`], - [`langchain.document_loaders.unstructured`, `UnstructuredAPIFileLoader`, `langchain_community.document_loaders`, `UnstructuredAPIFileLoader`], - [`langchain.document_loaders.unstructured`, `UnstructuredFileIOLoader`, `langchain_community.document_loaders`, `UnstructuredFileIOLoader`], - [`langchain.document_loaders.unstructured`, `UnstructuredAPIFileIOLoader`, `langchain_community.document_loaders`, `UnstructuredAPIFileIOLoader`], - [`langchain.document_loaders.url`, `UnstructuredURLLoader`, `langchain_community.document_loaders`, `UnstructuredURLLoader`], - [`langchain.document_loaders.url_playwright`, `PlaywrightEvaluator`, `langchain_community.document_loaders.url_playwright`, `PlaywrightEvaluator`], - [`langchain.document_loaders.url_playwright`, `UnstructuredHtmlEvaluator`, `langchain_community.document_loaders.url_playwright`, `UnstructuredHtmlEvaluator`], - [`langchain.document_loaders.url_playwright`, `PlaywrightURLLoader`, `langchain_community.document_loaders`, `PlaywrightURLLoader`], - [`langchain.document_loaders.url_selenium`, `SeleniumURLLoader`, `langchain_community.document_loaders`, `SeleniumURLLoader`], - [`langchain.document_loaders.weather`, `WeatherDataLoader`, `langchain_community.document_loaders`, `WeatherDataLoader`], - [`langchain.document_loaders.web_base`, `WebBaseLoader`, `langchain_community.document_loaders`, `WebBaseLoader`], - [`langchain.document_loaders.whatsapp_chat`, `concatenate_rows`, `langchain_community.document_loaders.whatsapp_chat`, `concatenate_rows`], - [`langchain.document_loaders.whatsapp_chat`, `WhatsAppChatLoader`, `langchain_community.document_loaders`, `WhatsAppChatLoader`], - [`langchain.document_loaders.wikipedia`, `WikipediaLoader`, `langchain_community.document_loaders`, `WikipediaLoader`], - [`langchain.document_loaders.word_document`, `Docx2txtLoader`, `langchain_community.document_loaders`, `Docx2txtLoader`], - [`langchain.document_loaders.word_document`, `UnstructuredWordDocumentLoader`, `langchain_community.document_loaders`, `UnstructuredWordDocumentLoader`], - [`langchain.document_loaders.xml`, `UnstructuredXMLLoader`, `langchain_community.document_loaders`, `UnstructuredXMLLoader`], - [`langchain.document_loaders.xorbits`, `XorbitsLoader`, `langchain_community.document_loaders`, `XorbitsLoader`], - [`langchain.document_loaders.youtube`, `YoutubeLoader`, `langchain_community.document_loaders`, `YoutubeLoader`], - [`langchain.document_loaders.youtube`, `GoogleApiYoutubeLoader`, `langchain_community.document_loaders`, `GoogleApiYoutubeLoader`], - [`langchain.document_loaders.youtube`, `GoogleApiClient`, `langchain_community.document_loaders`, `GoogleApiClient`], - [`langchain.document_transformers`, `BeautifulSoupTransformer`, `langchain_community.document_transformers`, `BeautifulSoupTransformer`], - [`langchain.document_transformers`, `DoctranQATransformer`, `langchain_community.document_transformers`, `DoctranQATransformer`], - [`langchain.document_transformers`, `DoctranTextTranslator`, `langchain_community.document_transformers`, `DoctranTextTranslator`], - [`langchain.document_transformers`, `DoctranPropertyExtractor`, `langchain_community.document_transformers`, `DoctranPropertyExtractor`], - [`langchain.document_transformers`, `EmbeddingsClusteringFilter`, `langchain_community.document_transformers`, `EmbeddingsClusteringFilter`], - [`langchain.document_transformers`, `EmbeddingsRedundantFilter`, `langchain_community.document_transformers`, `EmbeddingsRedundantFilter`], - [`langchain.document_transformers`, `GoogleTranslateTransformer`, `langchain_community.document_transformers`, `GoogleTranslateTransformer`], - [`langchain.document_transformers`, `get_stateful_documents`, `langchain_community.document_transformers`, `get_stateful_documents`], - [`langchain.document_transformers`, `LongContextReorder`, `langchain_community.document_transformers`, `LongContextReorder`], - [`langchain.document_transformers`, `NucliaTextTransformer`, `langchain_community.document_transformers`, `NucliaTextTransformer`], - [`langchain.document_transformers`, `OpenAIMetadataTagger`, `langchain_community.document_transformers`, `OpenAIMetadataTagger`], - [`langchain.document_transformers`, `Html2TextTransformer`, `langchain_community.document_transformers`, `Html2TextTransformer`], - [`langchain.document_transformers.beautiful_soup_transformer`, `BeautifulSoupTransformer`, `langchain_community.document_transformers`, `BeautifulSoupTransformer`], - [`langchain.document_transformers.doctran_text_extract`, `DoctranPropertyExtractor`, `langchain_community.document_transformers`, `DoctranPropertyExtractor`], - [`langchain.document_transformers.doctran_text_qa`, `DoctranQATransformer`, `langchain_community.document_transformers`, `DoctranQATransformer`], - [`langchain.document_transformers.doctran_text_translate`, `DoctranTextTranslator`, `langchain_community.document_transformers`, `DoctranTextTranslator`], - [`langchain.document_transformers.embeddings_redundant_filter`, `EmbeddingsRedundantFilter`, `langchain_community.document_transformers`, `EmbeddingsRedundantFilter`], - [`langchain.document_transformers.embeddings_redundant_filter`, `EmbeddingsClusteringFilter`, `langchain_community.document_transformers`, `EmbeddingsClusteringFilter`], - [`langchain.document_transformers.embeddings_redundant_filter`, `_DocumentWithState`, `langchain_community.document_transformers.embeddings_redundant_filter`, `_DocumentWithState`], - [`langchain.document_transformers.embeddings_redundant_filter`, `get_stateful_documents`, `langchain_community.document_transformers`, `get_stateful_documents`], - [`langchain.document_transformers.embeddings_redundant_filter`, `_get_embeddings_from_stateful_docs`, `langchain_community.document_transformers.embeddings_redundant_filter`, `_get_embeddings_from_stateful_docs`], - [`langchain.document_transformers.embeddings_redundant_filter`, `_filter_similar_embeddings`, `langchain_community.document_transformers.embeddings_redundant_filter`, `_filter_similar_embeddings`], - [`langchain.document_transformers.google_translate`, `GoogleTranslateTransformer`, `langchain_community.document_transformers`, `GoogleTranslateTransformer`], - [`langchain.document_transformers.html2text`, `Html2TextTransformer`, `langchain_community.document_transformers`, `Html2TextTransformer`], - [`langchain.document_transformers.long_context_reorder`, `LongContextReorder`, `langchain_community.document_transformers`, `LongContextReorder`], - [`langchain.document_transformers.nuclia_text_transform`, `NucliaTextTransformer`, `langchain_community.document_transformers`, `NucliaTextTransformer`], - [`langchain.document_transformers.openai_functions`, `OpenAIMetadataTagger`, `langchain_community.document_transformers`, `OpenAIMetadataTagger`], - [`langchain.document_transformers.openai_functions`, `create_metadata_tagger`, `langchain_community.document_transformers.openai_functions`, `create_metadata_tagger`], - [`langchain.embeddings`, `AlephAlphaAsymmetricSemanticEmbedding`, `langchain_community.embeddings`, `AlephAlphaAsymmetricSemanticEmbedding`], - [`langchain.embeddings`, `AlephAlphaSymmetricSemanticEmbedding`, `langchain_community.embeddings`, `AlephAlphaSymmetricSemanticEmbedding`], - [`langchain.embeddings`, `AwaEmbeddings`, `langchain_community.embeddings`, `AwaEmbeddings`], - [`langchain.embeddings`, `AzureOpenAIEmbeddings`, `langchain_community.embeddings`, `AzureOpenAIEmbeddings`], - [`langchain.embeddings`, `BedrockEmbeddings`, `langchain_community.embeddings`, `BedrockEmbeddings`], - [`langchain.embeddings`, `BookendEmbeddings`, `langchain_community.embeddings`, `BookendEmbeddings`], - [`langchain.embeddings`, `ClarifaiEmbeddings`, `langchain_community.embeddings`, `ClarifaiEmbeddings`], - [`langchain.embeddings`, `CohereEmbeddings`, `langchain_community.embeddings`, `CohereEmbeddings`], - [`langchain.embeddings`, `DashScopeEmbeddings`, `langchain_community.embeddings`, `DashScopeEmbeddings`], - [`langchain.embeddings`, `DatabricksEmbeddings`, `langchain_community.embeddings`, `DatabricksEmbeddings`], - [`langchain.embeddings`, `DeepInfraEmbeddings`, `langchain_community.embeddings`, `DeepInfraEmbeddings`], - [`langchain.embeddings`, `DeterministicFakeEmbedding`, `langchain_community.embeddings`, `DeterministicFakeEmbedding`], - [`langchain.embeddings`, `EdenAiEmbeddings`, `langchain_community.embeddings`, `EdenAiEmbeddings`], - [`langchain.embeddings`, `ElasticsearchEmbeddings`, `langchain_community.embeddings`, `ElasticsearchEmbeddings`], - [`langchain.embeddings`, `EmbaasEmbeddings`, `langchain_community.embeddings`, `EmbaasEmbeddings`], - [`langchain.embeddings`, `ErnieEmbeddings`, `langchain_community.embeddings`, `ErnieEmbeddings`], - [`langchain.embeddings`, `FakeEmbeddings`, `langchain_community.embeddings`, `FakeEmbeddings`], - [`langchain.embeddings`, `FastEmbedEmbeddings`, `langchain_community.embeddings`, `FastEmbedEmbeddings`], - [`langchain.embeddings`, `GooglePalmEmbeddings`, `langchain_community.embeddings`, `GooglePalmEmbeddings`], - [`langchain.embeddings`, `GPT4AllEmbeddings`, `langchain_community.embeddings`, `GPT4AllEmbeddings`], - [`langchain.embeddings`, `GradientEmbeddings`, `langchain_community.embeddings`, `GradientEmbeddings`], - [`langchain.embeddings`, `HuggingFaceBgeEmbeddings`, `langchain_community.embeddings`, `HuggingFaceBgeEmbeddings`], - [`langchain.embeddings`, `HuggingFaceEmbeddings`, `langchain_community.embeddings`, `SentenceTransformerEmbeddings`], - [`langchain.embeddings`, `HuggingFaceHubEmbeddings`, `langchain_community.embeddings`, `HuggingFaceHubEmbeddings`], - [`langchain.embeddings`, `HuggingFaceInferenceAPIEmbeddings`, `langchain_community.embeddings`, `HuggingFaceInferenceAPIEmbeddings`], - [`langchain.embeddings`, `HuggingFaceInstructEmbeddings`, `langchain_community.embeddings`, `HuggingFaceInstructEmbeddings`], - [`langchain.embeddings`, `InfinityEmbeddings`, `langchain_community.embeddings`, `InfinityEmbeddings`], - [`langchain.embeddings`, `JavelinAIGatewayEmbeddings`, `langchain_community.embeddings`, `JavelinAIGatewayEmbeddings`], - [`langchain.embeddings`, `JinaEmbeddings`, `langchain_community.embeddings`, `JinaEmbeddings`], - [`langchain.embeddings`, `JohnSnowLabsEmbeddings`, `langchain_community.embeddings`, `JohnSnowLabsEmbeddings`], - [`langchain.embeddings`, `LlamaCppEmbeddings`, `langchain_community.embeddings`, `LlamaCppEmbeddings`], - [`langchain.embeddings`, `LocalAIEmbeddings`, `langchain_community.embeddings`, `LocalAIEmbeddings`], - [`langchain.embeddings`, `MiniMaxEmbeddings`, `langchain_community.embeddings`, `MiniMaxEmbeddings`], - [`langchain.embeddings`, `MlflowAIGatewayEmbeddings`, `langchain_community.embeddings`, `MlflowAIGatewayEmbeddings`], - [`langchain.embeddings`, `MlflowEmbeddings`, `langchain_community.embeddings`, `MlflowEmbeddings`], - [`langchain.embeddings`, `ModelScopeEmbeddings`, `langchain_community.embeddings`, `ModelScopeEmbeddings`], - [`langchain.embeddings`, `MosaicMLInstructorEmbeddings`, `langchain_community.embeddings`, `MosaicMLInstructorEmbeddings`], - [`langchain.embeddings`, `NLPCloudEmbeddings`, `langchain_community.embeddings`, `NLPCloudEmbeddings`], - [`langchain.embeddings`, `OctoAIEmbeddings`, `langchain_community.embeddings`, `OctoAIEmbeddings`], - [`langchain.embeddings`, `OllamaEmbeddings`, `langchain_community.embeddings`, `OllamaEmbeddings`], - [`langchain.embeddings`, `OpenAIEmbeddings`, `langchain_community.embeddings`, `OpenAIEmbeddings`], - [`langchain.embeddings`, `OpenVINOEmbeddings`, `langchain_community.embeddings`, `OpenVINOEmbeddings`], - [`langchain.embeddings`, `QianfanEmbeddingsEndpoint`, `langchain_community.embeddings`, `QianfanEmbeddingsEndpoint`], - [`langchain.embeddings`, `SagemakerEndpointEmbeddings`, `langchain_community.embeddings`, `SagemakerEndpointEmbeddings`], - [`langchain.embeddings`, `SelfHostedEmbeddings`, `langchain_community.embeddings`, `SelfHostedEmbeddings`], - [`langchain.embeddings`, `SelfHostedHuggingFaceEmbeddings`, `langchain_community.embeddings`, `SelfHostedHuggingFaceEmbeddings`], - [`langchain.embeddings`, `SelfHostedHuggingFaceInstructEmbeddings`, `langchain_community.embeddings`, `SelfHostedHuggingFaceInstructEmbeddings`], - [`langchain.embeddings`, `SentenceTransformerEmbeddings`, `langchain_community.embeddings`, `SentenceTransformerEmbeddings`], - [`langchain.embeddings`, `SpacyEmbeddings`, `langchain_community.embeddings`, `SpacyEmbeddings`], - [`langchain.embeddings`, `TensorflowHubEmbeddings`, `langchain_community.embeddings`, `TensorflowHubEmbeddings`], - [`langchain.embeddings`, `VertexAIEmbeddings`, `langchain_community.embeddings`, `VertexAIEmbeddings`], - [`langchain.embeddings`, `VoyageEmbeddings`, `langchain_community.embeddings`, `VoyageEmbeddings`], - [`langchain.embeddings`, `XinferenceEmbeddings`, `langchain_community.embeddings`, `XinferenceEmbeddings`], - [`langchain.embeddings.aleph_alpha`, `AlephAlphaAsymmetricSemanticEmbedding`, `langchain_community.embeddings`, `AlephAlphaAsymmetricSemanticEmbedding`], - [`langchain.embeddings.aleph_alpha`, `AlephAlphaSymmetricSemanticEmbedding`, `langchain_community.embeddings`, `AlephAlphaSymmetricSemanticEmbedding`], - [`langchain.embeddings.awa`, `AwaEmbeddings`, `langchain_community.embeddings`, `AwaEmbeddings`], - [`langchain.embeddings.azure_openai`, `AzureOpenAIEmbeddings`, `langchain_community.embeddings`, `AzureOpenAIEmbeddings`], - [`langchain.embeddings.baidu_qianfan_endpoint`, `QianfanEmbeddingsEndpoint`, `langchain_community.embeddings`, `QianfanEmbeddingsEndpoint`], - [`langchain.embeddings.bedrock`, `BedrockEmbeddings`, `langchain_community.embeddings`, `BedrockEmbeddings`], - [`langchain.embeddings.bookend`, `BookendEmbeddings`, `langchain_community.embeddings`, `BookendEmbeddings`], - [`langchain.embeddings.clarifai`, `ClarifaiEmbeddings`, `langchain_community.embeddings`, `ClarifaiEmbeddings`], - [`langchain.embeddings.cloudflare_workersai`, `CloudflareWorkersAIEmbeddings`, `langchain_community.embeddings.cloudflare_workersai`, `CloudflareWorkersAIEmbeddings`], - [`langchain.embeddings.cohere`, `CohereEmbeddings`, `langchain_community.embeddings`, `CohereEmbeddings`], - [`langchain.embeddings.dashscope`, `DashScopeEmbeddings`, `langchain_community.embeddings`, `DashScopeEmbeddings`], - [`langchain.embeddings.databricks`, `DatabricksEmbeddings`, `langchain_community.embeddings`, `DatabricksEmbeddings`], - [`langchain.embeddings.deepinfra`, `DeepInfraEmbeddings`, `langchain_community.embeddings`, `DeepInfraEmbeddings`], - [`langchain.embeddings.edenai`, `EdenAiEmbeddings`, `langchain_community.embeddings`, `EdenAiEmbeddings`], - [`langchain.embeddings.elasticsearch`, `ElasticsearchEmbeddings`, `langchain_community.embeddings`, `ElasticsearchEmbeddings`], - [`langchain.embeddings.embaas`, `EmbaasEmbeddings`, `langchain_community.embeddings`, `EmbaasEmbeddings`], - [`langchain.embeddings.ernie`, `ErnieEmbeddings`, `langchain_community.embeddings`, `ErnieEmbeddings`], - [`langchain.embeddings.fake`, `FakeEmbeddings`, `langchain_community.embeddings`, `FakeEmbeddings`], - [`langchain.embeddings.fake`, `DeterministicFakeEmbedding`, `langchain_community.embeddings`, `DeterministicFakeEmbedding`], - [`langchain.embeddings.fastembed`, `FastEmbedEmbeddings`, `langchain_community.embeddings`, `FastEmbedEmbeddings`], - [`langchain.embeddings.google_palm`, `GooglePalmEmbeddings`, `langchain_community.embeddings`, `GooglePalmEmbeddings`], - [`langchain.embeddings.gpt4all`, `GPT4AllEmbeddings`, `langchain_community.embeddings`, `GPT4AllEmbeddings`], - [`langchain.embeddings.gradient_ai`, `GradientEmbeddings`, `langchain_community.embeddings`, `GradientEmbeddings`], - [`langchain.embeddings.huggingface`, `HuggingFaceEmbeddings`, `langchain_community.embeddings`, `SentenceTransformerEmbeddings`], - [`langchain.embeddings.huggingface`, `HuggingFaceInstructEmbeddings`, `langchain_community.embeddings`, `HuggingFaceInstructEmbeddings`], - [`langchain.embeddings.huggingface`, `HuggingFaceBgeEmbeddings`, `langchain_community.embeddings`, `HuggingFaceBgeEmbeddings`], - [`langchain.embeddings.huggingface`, `HuggingFaceInferenceAPIEmbeddings`, `langchain_community.embeddings`, `HuggingFaceInferenceAPIEmbeddings`], - [`langchain.embeddings.huggingface_hub`, `HuggingFaceHubEmbeddings`, `langchain_community.embeddings`, `HuggingFaceHubEmbeddings`], - [`langchain.embeddings.infinity`, `InfinityEmbeddings`, `langchain_community.embeddings`, `InfinityEmbeddings`], - [`langchain.embeddings.infinity`, `TinyAsyncOpenAIInfinityEmbeddingClient`, `langchain_community.embeddings.infinity`, `TinyAsyncOpenAIInfinityEmbeddingClient`], - [`langchain.embeddings.javelin_ai_gateway`, `JavelinAIGatewayEmbeddings`, `langchain_community.embeddings`, `JavelinAIGatewayEmbeddings`], - [`langchain.embeddings.jina`, `JinaEmbeddings`, `langchain_community.embeddings`, `JinaEmbeddings`], - [`langchain.embeddings.johnsnowlabs`, `JohnSnowLabsEmbeddings`, `langchain_community.embeddings`, `JohnSnowLabsEmbeddings`], - [`langchain.embeddings.llamacpp`, `LlamaCppEmbeddings`, `langchain_community.embeddings`, `LlamaCppEmbeddings`], - [`langchain.embeddings.llm_rails`, `LLMRailsEmbeddings`, `langchain_community.embeddings`, `LLMRailsEmbeddings`], - [`langchain.embeddings.localai`, `LocalAIEmbeddings`, `langchain_community.embeddings`, `LocalAIEmbeddings`], - [`langchain.embeddings.minimax`, `MiniMaxEmbeddings`, `langchain_community.embeddings`, `MiniMaxEmbeddings`], - [`langchain.embeddings.mlflow`, `MlflowEmbeddings`, `langchain_community.embeddings`, `MlflowEmbeddings`], - [`langchain.embeddings.mlflow_gateway`, `MlflowAIGatewayEmbeddings`, `langchain_community.embeddings`, `MlflowAIGatewayEmbeddings`], - [`langchain.embeddings.modelscope_hub`, `ModelScopeEmbeddings`, `langchain_community.embeddings`, `ModelScopeEmbeddings`], - [`langchain.embeddings.mosaicml`, `MosaicMLInstructorEmbeddings`, `langchain_community.embeddings`, `MosaicMLInstructorEmbeddings`], - [`langchain.embeddings.nlpcloud`, `NLPCloudEmbeddings`, `langchain_community.embeddings`, `NLPCloudEmbeddings`], - [`langchain.embeddings.octoai_embeddings`, `OctoAIEmbeddings`, `langchain_community.embeddings`, `OctoAIEmbeddings`], - [`langchain.embeddings.ollama`, `OllamaEmbeddings`, `langchain_community.embeddings`, `OllamaEmbeddings`], - [`langchain.embeddings.openai`, `OpenAIEmbeddings`, `langchain_community.embeddings`, `OpenAIEmbeddings`], - [`langchain.embeddings.sagemaker_endpoint`, `EmbeddingsContentHandler`, `langchain_community.embeddings.sagemaker_endpoint`, `EmbeddingsContentHandler`], - [`langchain.embeddings.sagemaker_endpoint`, `SagemakerEndpointEmbeddings`, `langchain_community.embeddings`, `SagemakerEndpointEmbeddings`], - [`langchain.embeddings.self_hosted`, `SelfHostedEmbeddings`, `langchain_community.embeddings`, `SelfHostedEmbeddings`], - [`langchain.embeddings.self_hosted_hugging_face`, `SelfHostedHuggingFaceEmbeddings`, `langchain_community.embeddings`, `SelfHostedHuggingFaceEmbeddings`], - [`langchain.embeddings.self_hosted_hugging_face`, `SelfHostedHuggingFaceInstructEmbeddings`, `langchain_community.embeddings`, `SelfHostedHuggingFaceInstructEmbeddings`], - [`langchain.embeddings.sentence_transformer`, `SentenceTransformerEmbeddings`, `langchain_community.embeddings`, `SentenceTransformerEmbeddings`], - [`langchain.embeddings.spacy_embeddings`, `SpacyEmbeddings`, `langchain_community.embeddings`, `SpacyEmbeddings`], - [`langchain.embeddings.tensorflow_hub`, `TensorflowHubEmbeddings`, `langchain_community.embeddings`, `TensorflowHubEmbeddings`], - [`langchain.embeddings.vertexai`, `VertexAIEmbeddings`, `langchain_community.embeddings`, `VertexAIEmbeddings`], - [`langchain.embeddings.voyageai`, `VoyageEmbeddings`, `langchain_community.embeddings`, `VoyageEmbeddings`], - [`langchain.embeddings.xinference`, `XinferenceEmbeddings`, `langchain_community.embeddings`, `XinferenceEmbeddings`], - [`langchain.graphs`, `MemgraphGraph`, `langchain_community.graphs`, `MemgraphGraph`], - [`langchain.graphs`, `NetworkxEntityGraph`, `langchain_community.graphs`, `NetworkxEntityGraph`], - [`langchain.graphs`, `Neo4jGraph`, `langchain_community.graphs`, `Neo4jGraph`], - [`langchain.graphs`, `NebulaGraph`, `langchain_community.graphs`, `NebulaGraph`], - [`langchain.graphs`, `NeptuneGraph`, `langchain_community.graphs`, `NeptuneGraph`], - [`langchain.graphs`, `KuzuGraph`, `langchain_community.graphs`, `KuzuGraph`], - [`langchain.graphs`, `HugeGraph`, `langchain_community.graphs`, `HugeGraph`], - [`langchain.graphs`, `RdfGraph`, `langchain_community.graphs`, `RdfGraph`], - [`langchain.graphs`, `ArangoGraph`, `langchain_community.graphs`, `ArangoGraph`], - [`langchain.graphs`, `FalkorDBGraph`, `langchain_community.graphs`, `FalkorDBGraph`], - [`langchain.graphs.arangodb_graph`, `ArangoGraph`, `langchain_community.graphs`, `ArangoGraph`], - [`langchain.graphs.arangodb_graph`, `get_arangodb_client`, `langchain_community.graphs.arangodb_graph`, `get_arangodb_client`], - [`langchain.graphs.falkordb_graph`, `FalkorDBGraph`, `langchain_community.graphs`, `FalkorDBGraph`], - [`langchain.graphs.graph_document`, `Node`, `langchain_community.graphs.graph_document`, `Node`], - [`langchain.graphs.graph_document`, `Relationship`, `langchain_community.graphs.graph_document`, `Relationship`], - [`langchain.graphs.graph_document`, `GraphDocument`, `langchain_community.graphs.graph_document`, `GraphDocument`], - [`langchain.graphs.graph_store`, `GraphStore`, `langchain_community.graphs.graph_store`, `GraphStore`], - [`langchain.graphs.hugegraph`, `HugeGraph`, `langchain_community.graphs`, `HugeGraph`], - [`langchain.graphs.kuzu_graph`, `KuzuGraph`, `langchain_community.graphs`, `KuzuGraph`], - [`langchain.graphs.memgraph_graph`, `MemgraphGraph`, `langchain_community.graphs`, `MemgraphGraph`], - [`langchain.graphs.nebula_graph`, `NebulaGraph`, `langchain_community.graphs`, `NebulaGraph`], - [`langchain.graphs.neo4j_graph`, `Neo4jGraph`, `langchain_community.graphs`, `Neo4jGraph`], - [`langchain.graphs.neptune_graph`, `NeptuneGraph`, `langchain_community.graphs`, `NeptuneGraph`], - [`langchain.graphs.networkx_graph`, `KnowledgeTriple`, `langchain_community.graphs.networkx_graph`, `KnowledgeTriple`], - [`langchain.graphs.networkx_graph`, `parse_triples`, `langchain_community.graphs.networkx_graph`, `parse_triples`], - [`langchain.graphs.networkx_graph`, `get_entities`, `langchain_community.graphs.networkx_graph`, `get_entities`], - [`langchain.graphs.networkx_graph`, `NetworkxEntityGraph`, `langchain_community.graphs`, `NetworkxEntityGraph`], - [`langchain.graphs.rdf_graph`, `RdfGraph`, `langchain_community.graphs`, `RdfGraph`], - [`langchain.indexes`, `GraphIndexCreator`, `langchain_community.graphs.index_creator`, `GraphIndexCreator`], - [`langchain.indexes.graph`, `GraphIndexCreator`, `langchain_community.graphs.index_creator`, `GraphIndexCreator`], - [`langchain.indexes.graph`, `NetworkxEntityGraph`, `langchain_community.graphs`, `NetworkxEntityGraph`], - [`langchain.llms`, `AI21`, `langchain_community.llms`, `AI21`], - [`langchain.llms`, `AlephAlpha`, `langchain_community.llms`, `AlephAlpha`], - [`langchain.llms`, `AmazonAPIGateway`, `langchain_community.llms`, `AmazonAPIGateway`], - [`langchain.llms`, `Anthropic`, `langchain_community.llms`, `Anthropic`], - [`langchain.llms`, `Anyscale`, `langchain_community.llms`, `Anyscale`], - [`langchain.llms`, `Arcee`, `langchain_community.llms`, `Arcee`], - [`langchain.llms`, `Aviary`, `langchain_community.llms`, `Aviary`], - [`langchain.llms`, `AzureMLOnlineEndpoint`, `langchain_community.llms`, `AzureMLOnlineEndpoint`], - [`langchain.llms`, `AzureOpenAI`, `langchain_community.llms`, `AzureOpenAI`], - [`langchain.llms`, `Banana`, `langchain_community.llms`, `Banana`], - [`langchain.llms`, `Baseten`, `langchain_community.llms`, `Baseten`], - [`langchain.llms`, `Beam`, `langchain_community.llms`, `Beam`], - [`langchain.llms`, `Bedrock`, `langchain_community.llms`, `Bedrock`], - [`langchain.llms`, `CTransformers`, `langchain_community.llms`, `CTransformers`], - [`langchain.llms`, `CTranslate2`, `langchain_community.llms`, `CTranslate2`], - [`langchain.llms`, `CerebriumAI`, `langchain_community.llms`, `CerebriumAI`], - [`langchain.llms`, `ChatGLM`, `langchain_community.llms`, `ChatGLM`], - [`langchain.llms`, `Clarifai`, `langchain_community.llms`, `Clarifai`], - [`langchain.llms`, `Cohere`, `langchain_community.llms`, `Cohere`], - [`langchain.llms`, `Databricks`, `langchain_community.llms`, `Databricks`], - [`langchain.llms`, `DeepInfra`, `langchain_community.llms`, `DeepInfra`], - [`langchain.llms`, `DeepSparse`, `langchain_community.llms`, `DeepSparse`], - [`langchain.llms`, `EdenAI`, `langchain_community.llms`, `EdenAI`], - [`langchain.llms`, `FakeListLLM`, `langchain_community.llms`, `FakeListLLM`], - [`langchain.llms`, `Fireworks`, `langchain_community.llms`, `Fireworks`], - [`langchain.llms`, `ForefrontAI`, `langchain_community.llms`, `ForefrontAI`], - [`langchain.llms`, `GigaChat`, `langchain_community.llms`, `GigaChat`], - [`langchain.llms`, `GPT4All`, `langchain_community.llms`, `GPT4All`], - [`langchain.llms`, `GooglePalm`, `langchain_community.llms`, `GooglePalm`], - [`langchain.llms`, `GooseAI`, `langchain_community.llms`, `GooseAI`], - [`langchain.llms`, `GradientLLM`, `langchain_community.llms`, `GradientLLM`], - [`langchain.llms`, `HuggingFaceEndpoint`, `langchain_community.llms`, `HuggingFaceEndpoint`], - [`langchain.llms`, `HuggingFaceHub`, `langchain_community.llms`, `HuggingFaceHub`], - [`langchain.llms`, `HuggingFacePipeline`, `langchain_community.llms`, `HuggingFacePipeline`], - [`langchain.llms`, `HuggingFaceTextGenInference`, `langchain_community.llms`, `HuggingFaceTextGenInference`], - [`langchain.llms`, `HumanInputLLM`, `langchain_community.llms`, `HumanInputLLM`], - [`langchain.llms`, `KoboldApiLLM`, `langchain_community.llms`, `KoboldApiLLM`], - [`langchain.llms`, `LlamaCpp`, `langchain_community.llms`, `LlamaCpp`], - [`langchain.llms`, `TextGen`, `langchain_community.llms`, `TextGen`], - [`langchain.llms`, `ManifestWrapper`, `langchain_community.llms`, `ManifestWrapper`], - [`langchain.llms`, `Minimax`, `langchain_community.llms`, `Minimax`], - [`langchain.llms`, `MlflowAIGateway`, `langchain_community.llms`, `MlflowAIGateway`], - [`langchain.llms`, `Modal`, `langchain_community.llms`, `Modal`], - [`langchain.llms`, `MosaicML`, `langchain_community.llms`, `MosaicML`], - [`langchain.llms`, `Nebula`, `langchain_community.llms`, `Nebula`], - [`langchain.llms`, `NIBittensorLLM`, `langchain_community.llms`, `NIBittensorLLM`], - [`langchain.llms`, `NLPCloud`, `langchain_community.llms`, `NLPCloud`], - [`langchain.llms`, `Ollama`, `langchain_community.llms`, `Ollama`], - [`langchain.llms`, `OpenAI`, `langchain_community.llms`, `OpenAI`], - [`langchain.llms`, `OpenAIChat`, `langchain_community.llms`, `OpenAIChat`], - [`langchain.llms`, `OpenLLM`, `langchain_community.llms`, `OpenLLM`], - [`langchain.llms`, `OpenLM`, `langchain_community.llms`, `OpenLM`], - [`langchain.llms`, `PaiEasEndpoint`, `langchain_community.llms`, `PaiEasEndpoint`], - [`langchain.llms`, `Petals`, `langchain_community.llms`, `Petals`], - [`langchain.llms`, `PipelineAI`, `langchain_community.llms`, `PipelineAI`], - [`langchain.llms`, `Predibase`, `langchain_community.llms`, `Predibase`], - [`langchain.llms`, `PredictionGuard`, `langchain_community.llms`, `PredictionGuard`], - [`langchain.llms`, `PromptLayerOpenAI`, `langchain_community.llms`, `PromptLayerOpenAI`], - [`langchain.llms`, `PromptLayerOpenAIChat`, `langchain_community.llms`, `PromptLayerOpenAIChat`], - [`langchain.llms`, `OpaquePrompts`, `langchain_community.llms`, `OpaquePrompts`], - [`langchain.llms`, `RWKV`, `langchain_community.llms`, `RWKV`], - [`langchain.llms`, `Replicate`, `langchain_community.llms`, `Replicate`], - [`langchain.llms`, `SagemakerEndpoint`, `langchain_community.llms`, `SagemakerEndpoint`], - [`langchain.llms`, `SelfHostedHuggingFaceLLM`, `langchain_community.llms`, `SelfHostedHuggingFaceLLM`], - [`langchain.llms`, `SelfHostedPipeline`, `langchain_community.llms`, `SelfHostedPipeline`], - [`langchain.llms`, `StochasticAI`, `langchain_community.llms`, `StochasticAI`], - [`langchain.llms`, `TitanTakeoff`, `langchain_community.llms`, `TitanTakeoffPro`], - [`langchain.llms`, `TitanTakeoffPro`, `langchain_community.llms`, `TitanTakeoffPro`], - [`langchain.llms`, `Tongyi`, `langchain_community.llms`, `Tongyi`], - [`langchain.llms`, `VertexAI`, `langchain_community.llms`, `VertexAI`], - [`langchain.llms`, `VertexAIModelGarden`, `langchain_community.llms`, `VertexAIModelGarden`], - [`langchain.llms`, `VLLM`, `langchain_community.llms`, `VLLM`], - [`langchain.llms`, `VLLMOpenAI`, `langchain_community.llms`, `VLLMOpenAI`], - [`langchain.llms`, `WatsonxLLM`, `langchain_community.llms`, `WatsonxLLM`], - [`langchain.llms`, `Writer`, `langchain_community.llms`, `Writer`], - [`langchain.llms`, `OctoAIEndpoint`, `langchain_community.llms`, `OctoAIEndpoint`], - [`langchain.llms`, `Xinference`, `langchain_community.llms`, `Xinference`], - [`langchain.llms`, `JavelinAIGateway`, `langchain_community.llms`, `JavelinAIGateway`], - [`langchain.llms`, `QianfanLLMEndpoint`, `langchain_community.llms`, `QianfanLLMEndpoint`], - [`langchain.llms`, `YandexGPT`, `langchain_community.llms`, `YandexGPT`], - [`langchain.llms`, `VolcEngineMaasLLM`, `langchain_community.llms`, `VolcEngineMaasLLM`], - [`langchain.llms.ai21`, `AI21PenaltyData`, `langchain_community.llms.ai21`, `AI21PenaltyData`], - [`langchain.llms.ai21`, `AI21`, `langchain_community.llms`, `AI21`], - [`langchain.llms.aleph_alpha`, `AlephAlpha`, `langchain_community.llms`, `AlephAlpha`], - [`langchain.llms.amazon_api_gateway`, `AmazonAPIGateway`, `langchain_community.llms`, `AmazonAPIGateway`], - [`langchain.llms.anthropic`, `Anthropic`, `langchain_community.llms`, `Anthropic`], - [`langchain.llms.anyscale`, `Anyscale`, `langchain_community.llms`, `Anyscale`], - [`langchain.llms.arcee`, `Arcee`, `langchain_community.llms`, `Arcee`], - [`langchain.llms.aviary`, `Aviary`, `langchain_community.llms`, `Aviary`], - [`langchain.llms.azureml_endpoint`, `AzureMLEndpointClient`, `langchain_community.llms.azureml_endpoint`, `AzureMLEndpointClient`], - [`langchain.llms.azureml_endpoint`, `ContentFormatterBase`, `langchain_community.llms.azureml_endpoint`, `ContentFormatterBase`], - [`langchain.llms.azureml_endpoint`, `GPT2ContentFormatter`, `langchain_community.llms.azureml_endpoint`, `GPT2ContentFormatter`], - [`langchain.llms.azureml_endpoint`, `OSSContentFormatter`, `langchain_community.llms.azureml_endpoint`, `OSSContentFormatter`], - [`langchain.llms.azureml_endpoint`, `HFContentFormatter`, `langchain_community.llms.azureml_endpoint`, `HFContentFormatter`], - [`langchain.llms.azureml_endpoint`, `DollyContentFormatter`, `langchain_community.llms.azureml_endpoint`, `DollyContentFormatter`], - [`langchain.llms.azureml_endpoint`, `CustomOpenAIContentFormatter`, `langchain_community.llms.azureml_endpoint`, `CustomOpenAIContentFormatter`], - [`langchain.llms.azureml_endpoint`, `AzureMLOnlineEndpoint`, `langchain_community.llms`, `AzureMLOnlineEndpoint`], - [`langchain.llms.baidu_qianfan_endpoint`, `QianfanLLMEndpoint`, `langchain_community.llms`, `QianfanLLMEndpoint`], - [`langchain.llms.bananadev`, `Banana`, `langchain_community.llms`, `Banana`], - [`langchain.llms.baseten`, `Baseten`, `langchain_community.llms`, `Baseten`], - [`langchain.llms.beam`, `Beam`, `langchain_community.llms`, `Beam`], - [`langchain.llms.bedrock`, `BedrockBase`, `langchain_community.llms.bedrock`, `BedrockBase`], - [`langchain.llms.bedrock`, `Bedrock`, `langchain_community.llms`, `Bedrock`], - [`langchain.llms.bittensor`, `NIBittensorLLM`, `langchain_community.llms`, `NIBittensorLLM`], - [`langchain.llms.cerebriumai`, `CerebriumAI`, `langchain_community.llms`, `CerebriumAI`], - [`langchain.llms.chatglm`, `ChatGLM`, `langchain_community.llms`, `ChatGLM`], - [`langchain.llms.clarifai`, `Clarifai`, `langchain_community.llms`, `Clarifai`], - [`langchain.llms.cloudflare_workersai`, `CloudflareWorkersAI`, `langchain_community.llms.cloudflare_workersai`, `CloudflareWorkersAI`], - [`langchain.llms.cohere`, `Cohere`, `langchain_community.llms`, `Cohere`], - [`langchain.llms.ctransformers`, `CTransformers`, `langchain_community.llms`, `CTransformers`], - [`langchain.llms.ctranslate2`, `CTranslate2`, `langchain_community.llms`, `CTranslate2`], - [`langchain.llms.databricks`, `Databricks`, `langchain_community.llms`, `Databricks`], - [`langchain.llms.deepinfra`, `DeepInfra`, `langchain_community.llms`, `DeepInfra`], - [`langchain.llms.deepsparse`, `DeepSparse`, `langchain_community.llms`, `DeepSparse`], - [`langchain.llms.edenai`, `EdenAI`, `langchain_community.llms`, `EdenAI`], - [`langchain.llms.fake`, `FakeListLLM`, `langchain_community.llms`, `FakeListLLM`], - [`langchain.llms.fake`, `FakeStreamingListLLM`, `langchain_community.llms.fake`, `FakeStreamingListLLM`], - [`langchain.llms.fireworks`, `Fireworks`, `langchain_community.llms`, `Fireworks`], - [`langchain.llms.forefrontai`, `ForefrontAI`, `langchain_community.llms`, `ForefrontAI`], - [`langchain.llms.gigachat`, `GigaChat`, `langchain_community.llms`, `GigaChat`], - [`langchain.llms.google_palm`, `GooglePalm`, `langchain_community.llms`, `GooglePalm`], - [`langchain.llms.gooseai`, `GooseAI`, `langchain_community.llms`, `GooseAI`], - [`langchain.llms.gpt4all`, `GPT4All`, `langchain_community.llms`, `GPT4All`], - [`langchain.llms.gradient_ai`, `TrainResult`, `langchain_community.llms.gradient_ai`, `TrainResult`], - [`langchain.llms.gradient_ai`, `GradientLLM`, `langchain_community.llms`, `GradientLLM`], - [`langchain.llms.huggingface_endpoint`, `HuggingFaceEndpoint`, `langchain_community.llms`, `HuggingFaceEndpoint`], - [`langchain.llms.huggingface_hub`, `HuggingFaceHub`, `langchain_community.llms`, `HuggingFaceHub`], - [`langchain.llms.huggingface_pipeline`, `HuggingFacePipeline`, `langchain_community.llms`, `HuggingFacePipeline`], - [`langchain.llms.huggingface_text_gen_inference`, `HuggingFaceTextGenInference`, `langchain_community.llms`, `HuggingFaceTextGenInference`], - [`langchain.llms.human`, `HumanInputLLM`, `langchain_community.llms`, `HumanInputLLM`], - [`langchain.llms.javelin_ai_gateway`, `JavelinAIGateway`, `langchain_community.llms`, `JavelinAIGateway`], - [`langchain.llms.javelin_ai_gateway`, `Params`, `langchain_community.llms.javelin_ai_gateway`, `Params`], - [`langchain.llms.koboldai`, `KoboldApiLLM`, `langchain_community.llms`, `KoboldApiLLM`], - [`langchain.llms.llamacpp`, `LlamaCpp`, `langchain_community.llms`, `LlamaCpp`], - [`langchain.llms.loading`, `load_llm_from_config`, `langchain_community.llms.loading`, `load_llm_from_config`], - [`langchain.llms.loading`, `load_llm`, `langchain_community.llms.loading`, `load_llm`], - [`langchain.llms.manifest`, `ManifestWrapper`, `langchain_community.llms`, `ManifestWrapper`], - [`langchain.llms.minimax`, `Minimax`, `langchain_community.llms`, `Minimax`], - [`langchain.llms.mlflow`, `Mlflow`, `langchain_community.llms`, `Mlflow`], - [`langchain.llms.mlflow_ai_gateway`, `MlflowAIGateway`, `langchain_community.llms`, `MlflowAIGateway`], - [`langchain.llms.modal`, `Modal`, `langchain_community.llms`, `Modal`], - [`langchain.llms.mosaicml`, `MosaicML`, `langchain_community.llms`, `MosaicML`], - [`langchain.llms.nlpcloud`, `NLPCloud`, `langchain_community.llms`, `NLPCloud`], - [`langchain.llms.octoai_endpoint`, `OctoAIEndpoint`, `langchain_community.llms`, `OctoAIEndpoint`], - [`langchain.llms.ollama`, `Ollama`, `langchain_community.llms`, `Ollama`], - [`langchain.llms.opaqueprompts`, `OpaquePrompts`, `langchain_community.llms`, `OpaquePrompts`], - [`langchain.llms.openai`, `BaseOpenAI`, `langchain_community.llms.openai`, `BaseOpenAI`], - [`langchain.llms.openai`, `OpenAI`, `langchain_community.llms`, `OpenAI`], - [`langchain.llms.openai`, `AzureOpenAI`, `langchain_community.llms`, `AzureOpenAI`], - [`langchain.llms.openai`, `OpenAIChat`, `langchain_community.llms`, `OpenAIChat`], - [`langchain.llms.openllm`, `OpenLLM`, `langchain_community.llms`, `OpenLLM`], - [`langchain.llms.openlm`, `OpenLM`, `langchain_community.llms`, `OpenLM`], - [`langchain.llms.pai_eas_endpoint`, `PaiEasEndpoint`, `langchain_community.llms`, `PaiEasEndpoint`], - [`langchain.llms.petals`, `Petals`, `langchain_community.llms`, `Petals`], - [`langchain.llms.pipelineai`, `PipelineAI`, `langchain_community.llms`, `PipelineAI`], - [`langchain.llms.predibase`, `Predibase`, `langchain_community.llms`, `Predibase`], - [`langchain.llms.predictionguard`, `PredictionGuard`, `langchain_community.llms`, `PredictionGuard`], - [`langchain.llms.promptlayer_openai`, `PromptLayerOpenAI`, `langchain_community.llms`, `PromptLayerOpenAI`], - [`langchain.llms.promptlayer_openai`, `PromptLayerOpenAIChat`, `langchain_community.llms`, `PromptLayerOpenAIChat`], - [`langchain.llms.replicate`, `Replicate`, `langchain_community.llms`, `Replicate`], - [`langchain.llms.rwkv`, `RWKV`, `langchain_community.llms`, `RWKV`], - [`langchain.llms.sagemaker_endpoint`, `SagemakerEndpoint`, `langchain_community.llms`, `SagemakerEndpoint`], - [`langchain.llms.sagemaker_endpoint`, `LLMContentHandler`, `langchain_community.llms.sagemaker_endpoint`, `LLMContentHandler`], - [`langchain.llms.self_hosted`, `SelfHostedPipeline`, `langchain_community.llms`, `SelfHostedPipeline`], - [`langchain.llms.self_hosted_hugging_face`, `SelfHostedHuggingFaceLLM`, `langchain_community.llms`, `SelfHostedHuggingFaceLLM`], - [`langchain.llms.stochasticai`, `StochasticAI`, `langchain_community.llms`, `StochasticAI`], - [`langchain.llms.symblai_nebula`, `Nebula`, `langchain_community.llms`, `Nebula`], - [`langchain.llms.textgen`, `TextGen`, `langchain_community.llms`, `TextGen`], - [`langchain.llms.titan_takeoff`, `TitanTakeoff`, `langchain_community.llms`, `TitanTakeoffPro`], - [`langchain.llms.titan_takeoff_pro`, `TitanTakeoffPro`, `langchain_community.llms`, `TitanTakeoffPro`], - [`langchain.llms.together`, `Together`, `langchain_community.llms`, `Together`], - [`langchain.llms.tongyi`, `Tongyi`, `langchain_community.llms`, `Tongyi`], - [`langchain.llms.utils`, `enforce_stop_tokens`, `langchain_community.llms.utils`, `enforce_stop_tokens`], - [`langchain.llms.vertexai`, `VertexAI`, `langchain_community.llms`, `VertexAI`], - [`langchain.llms.vertexai`, `VertexAIModelGarden`, `langchain_community.llms`, `VertexAIModelGarden`], - [`langchain.llms.vllm`, `VLLM`, `langchain_community.llms`, `VLLM`], - [`langchain.llms.vllm`, `VLLMOpenAI`, `langchain_community.llms`, `VLLMOpenAI`], - [`langchain.llms.volcengine_maas`, `VolcEngineMaasBase`, `langchain_community.llms.volcengine_maas`, `VolcEngineMaasBase`], - [`langchain.llms.volcengine_maas`, `VolcEngineMaasLLM`, `langchain_community.llms`, `VolcEngineMaasLLM`], - [`langchain.llms.watsonxllm`, `WatsonxLLM`, `langchain_community.llms`, `WatsonxLLM`], - [`langchain.llms.writer`, `Writer`, `langchain_community.llms`, `Writer`], - [`langchain.llms.xinference`, `Xinference`, `langchain_community.llms`, `Xinference`], - [`langchain.llms.yandex`, `YandexGPT`, `langchain_community.llms`, `YandexGPT`], - [`langchain.memory`, `AstraDBChatMessageHistory`, `langchain_community.chat_message_histories`, `AstraDBChatMessageHistory`], - [`langchain.memory`, `CassandraChatMessageHistory`, `langchain_community.chat_message_histories`, `CassandraChatMessageHistory`], - [`langchain.memory`, `ConversationKGMemory`, `langchain_community.memory.kg`, `ConversationKGMemory`], - [`langchain.memory`, `CosmosDBChatMessageHistory`, `langchain_community.chat_message_histories`, `CosmosDBChatMessageHistory`], - [`langchain.memory`, `DynamoDBChatMessageHistory`, `langchain_community.chat_message_histories`, `DynamoDBChatMessageHistory`], - [`langchain.memory`, `ElasticsearchChatMessageHistory`, `langchain_community.chat_message_histories`, `ElasticsearchChatMessageHistory`], - [`langchain.memory`, `FileChatMessageHistory`, `langchain_community.chat_message_histories`, `FileChatMessageHistory`], - [`langchain.memory`, `MomentoChatMessageHistory`, `langchain_community.chat_message_histories`, `MomentoChatMessageHistory`], - [`langchain.memory`, `MongoDBChatMessageHistory`, `langchain_community.chat_message_histories`, `MongoDBChatMessageHistory`], - [`langchain.memory`, `MotorheadMemory`, `langchain_community.memory.motorhead_memory`, `MotorheadMemory`], - [`langchain.memory`, `PostgresChatMessageHistory`, `langchain_community.chat_message_histories`, `PostgresChatMessageHistory`], - [`langchain.memory`, `RedisChatMessageHistory`, `langchain_community.chat_message_histories`, `RedisChatMessageHistory`], - [`langchain.memory`, `SingleStoreDBChatMessageHistory`, `langchain_community.chat_message_histories`, `SingleStoreDBChatMessageHistory`], - [`langchain.memory`, `SQLChatMessageHistory`, `langchain_community.chat_message_histories`, `SQLChatMessageHistory`], - [`langchain.memory`, `StreamlitChatMessageHistory`, `langchain_community.chat_message_histories`, `StreamlitChatMessageHistory`], - [`langchain.memory`, `XataChatMessageHistory`, `langchain_community.chat_message_histories`, `XataChatMessageHistory`], - [`langchain.memory`, `ZepChatMessageHistory`, `langchain_community.chat_message_histories`, `ZepChatMessageHistory`], - [`langchain.memory`, `ZepMemory`, `langchain_community.memory.zep_memory`, `ZepMemory`], - [`langchain.memory`, `UpstashRedisChatMessageHistory`, `langchain_community.chat_message_histories`, `UpstashRedisChatMessageHistory`], - [`langchain.memory.chat_message_histories`, `AstraDBChatMessageHistory`, `langchain_community.chat_message_histories`, `AstraDBChatMessageHistory`], - [`langchain.memory.chat_message_histories`, `CassandraChatMessageHistory`, `langchain_community.chat_message_histories`, `CassandraChatMessageHistory`], - [`langchain.memory.chat_message_histories`, `CosmosDBChatMessageHistory`, `langchain_community.chat_message_histories`, `CosmosDBChatMessageHistory`], - [`langchain.memory.chat_message_histories`, `DynamoDBChatMessageHistory`, `langchain_community.chat_message_histories`, `DynamoDBChatMessageHistory`], - [`langchain.memory.chat_message_histories`, `ElasticsearchChatMessageHistory`, `langchain_community.chat_message_histories`, `ElasticsearchChatMessageHistory`], - [`langchain.memory.chat_message_histories`, `FileChatMessageHistory`, `langchain_community.chat_message_histories`, `FileChatMessageHistory`], - [`langchain.memory.chat_message_histories`, `FirestoreChatMessageHistory`, `langchain_community.chat_message_histories`, `FirestoreChatMessageHistory`], - [`langchain.memory.chat_message_histories`, `MomentoChatMessageHistory`, `langchain_community.chat_message_histories`, `MomentoChatMessageHistory`], - [`langchain.memory.chat_message_histories`, `MongoDBChatMessageHistory`, `langchain_community.chat_message_histories`, `MongoDBChatMessageHistory`], - [`langchain.memory.chat_message_histories`, `Neo4jChatMessageHistory`, `langchain_community.chat_message_histories`, `Neo4jChatMessageHistory`], - [`langchain.memory.chat_message_histories`, `PostgresChatMessageHistory`, `langchain_community.chat_message_histories`, `PostgresChatMessageHistory`], - [`langchain.memory.chat_message_histories`, `RedisChatMessageHistory`, `langchain_community.chat_message_histories`, `RedisChatMessageHistory`], - [`langchain.memory.chat_message_histories`, `RocksetChatMessageHistory`, `langchain_community.chat_message_histories`, `RocksetChatMessageHistory`], - [`langchain.memory.chat_message_histories`, `SingleStoreDBChatMessageHistory`, `langchain_community.chat_message_histories`, `SingleStoreDBChatMessageHistory`], - [`langchain.memory.chat_message_histories`, `SQLChatMessageHistory`, `langchain_community.chat_message_histories`, `SQLChatMessageHistory`], - [`langchain.memory.chat_message_histories`, `StreamlitChatMessageHistory`, `langchain_community.chat_message_histories`, `StreamlitChatMessageHistory`], - [`langchain.memory.chat_message_histories`, `UpstashRedisChatMessageHistory`, `langchain_community.chat_message_histories`, `UpstashRedisChatMessageHistory`], - [`langchain.memory.chat_message_histories`, `XataChatMessageHistory`, `langchain_community.chat_message_histories`, `XataChatMessageHistory`], - [`langchain.memory.chat_message_histories`, `ZepChatMessageHistory`, `langchain_community.chat_message_histories`, `ZepChatMessageHistory`], - [`langchain.memory.chat_message_histories.astradb`, `AstraDBChatMessageHistory`, `langchain_community.chat_message_histories`, `AstraDBChatMessageHistory`], - [`langchain.memory.chat_message_histories.cassandra`, `CassandraChatMessageHistory`, `langchain_community.chat_message_histories`, `CassandraChatMessageHistory`], - [`langchain.memory.chat_message_histories.cosmos_db`, `CosmosDBChatMessageHistory`, `langchain_community.chat_message_histories`, `CosmosDBChatMessageHistory`], - [`langchain.memory.chat_message_histories.dynamodb`, `DynamoDBChatMessageHistory`, `langchain_community.chat_message_histories`, `DynamoDBChatMessageHistory`], - [`langchain.memory.chat_message_histories.elasticsearch`, `ElasticsearchChatMessageHistory`, `langchain_community.chat_message_histories`, `ElasticsearchChatMessageHistory`], - [`langchain.memory.chat_message_histories.file`, `FileChatMessageHistory`, `langchain_community.chat_message_histories`, `FileChatMessageHistory`], - [`langchain.memory.chat_message_histories.firestore`, `FirestoreChatMessageHistory`, `langchain_community.chat_message_histories`, `FirestoreChatMessageHistory`], - [`langchain.memory.chat_message_histories.momento`, `MomentoChatMessageHistory`, `langchain_community.chat_message_histories`, `MomentoChatMessageHistory`], - [`langchain.memory.chat_message_histories.mongodb`, `MongoDBChatMessageHistory`, `langchain_community.chat_message_histories`, `MongoDBChatMessageHistory`], - [`langchain.memory.chat_message_histories.neo4j`, `Neo4jChatMessageHistory`, `langchain_community.chat_message_histories`, `Neo4jChatMessageHistory`], - [`langchain.memory.chat_message_histories.postgres`, `PostgresChatMessageHistory`, `langchain_community.chat_message_histories`, `PostgresChatMessageHistory`], - [`langchain.memory.chat_message_histories.redis`, `RedisChatMessageHistory`, `langchain_community.chat_message_histories`, `RedisChatMessageHistory`], - [`langchain.memory.chat_message_histories.rocksetdb`, `RocksetChatMessageHistory`, `langchain_community.chat_message_histories`, `RocksetChatMessageHistory`], - [`langchain.memory.chat_message_histories.singlestoredb`, `SingleStoreDBChatMessageHistory`, `langchain_community.chat_message_histories`, `SingleStoreDBChatMessageHistory`], - [`langchain.memory.chat_message_histories.sql`, `BaseMessageConverter`, `langchain_community.chat_message_histories.sql`, `BaseMessageConverter`], - [`langchain.memory.chat_message_histories.sql`, `DefaultMessageConverter`, `langchain_community.chat_message_histories.sql`, `DefaultMessageConverter`], - [`langchain.memory.chat_message_histories.sql`, `SQLChatMessageHistory`, `langchain_community.chat_message_histories`, `SQLChatMessageHistory`], - [`langchain.memory.chat_message_histories.streamlit`, `StreamlitChatMessageHistory`, `langchain_community.chat_message_histories`, `StreamlitChatMessageHistory`], - [`langchain.memory.chat_message_histories.upstash_redis`, `UpstashRedisChatMessageHistory`, `langchain_community.chat_message_histories`, `UpstashRedisChatMessageHistory`], - [`langchain.memory.chat_message_histories.xata`, `XataChatMessageHistory`, `langchain_community.chat_message_histories`, `XataChatMessageHistory`], - [`langchain.memory.chat_message_histories.zep`, `ZepChatMessageHistory`, `langchain_community.chat_message_histories`, `ZepChatMessageHistory`], - [`langchain.memory.kg`, `ConversationKGMemory`, `langchain_community.memory.kg`, `ConversationKGMemory`], - [`langchain.memory.motorhead_memory`, `MotorheadMemory`, `langchain_community.memory.motorhead_memory`, `MotorheadMemory`], - [`langchain.memory.zep_memory`, `ZepMemory`, `langchain_community.memory.zep_memory`, `ZepMemory`], - [`langchain.output_parsers`, `GuardrailsOutputParser`, `langchain_community.output_parsers.rail_parser`, `GuardrailsOutputParser`], - [`langchain.output_parsers.ernie_functions`, `JsonKeyOutputFunctionsParser`, `langchain_community.output_parsers.ernie_functions`, `JsonKeyOutputFunctionsParser`], - [`langchain.output_parsers.ernie_functions`, `JsonOutputFunctionsParser`, `langchain_community.output_parsers.ernie_functions`, `JsonOutputFunctionsParser`], - [`langchain.output_parsers.ernie_functions`, `OutputFunctionsParser`, `langchain_community.output_parsers.ernie_functions`, `OutputFunctionsParser`], - [`langchain.output_parsers.ernie_functions`, `PydanticAttrOutputFunctionsParser`, `langchain_community.output_parsers.ernie_functions`, `PydanticAttrOutputFunctionsParser`], - [`langchain.output_parsers.ernie_functions`, `PydanticOutputFunctionsParser`, `langchain_community.output_parsers.ernie_functions`, `PydanticOutputFunctionsParser`], - [`langchain.output_parsers.rail_parser`, `GuardrailsOutputParser`, `langchain_community.output_parsers.rail_parser`, `GuardrailsOutputParser`], - [`langchain.prompts`, `NGramOverlapExampleSelector`, `langchain_community.example_selectors`, `NGramOverlapExampleSelector`], - [`langchain.prompts.example_selector`, `NGramOverlapExampleSelector`, `langchain_community.example_selectors`, `NGramOverlapExampleSelector`], - [`langchain.prompts.example_selector.ngram_overlap`, `NGramOverlapExampleSelector`, `langchain_community.example_selectors`, `NGramOverlapExampleSelector`], - [`langchain.prompts.example_selector.ngram_overlap`, `ngram_overlap_score`, `langchain_community.example_selectors`, `ngram_overlap_score`], - [`langchain.python`, `PythonREPL`, `langchain_community.utilities`, `PythonREPL`], - [`langchain.requests`, `Requests`, `langchain_community.utilities`, `Requests`], - [`langchain.requests`, `RequestsWrapper`, `langchain_community.utilities`, `TextRequestsWrapper`], - [`langchain.requests`, `TextRequestsWrapper`, `langchain_community.utilities`, `TextRequestsWrapper`], - [`langchain.retrievers`, `AmazonKendraRetriever`, `langchain_community.retrievers`, `AmazonKendraRetriever`], - [`langchain.retrievers`, `AmazonKnowledgeBasesRetriever`, `langchain_community.retrievers`, `AmazonKnowledgeBasesRetriever`], - [`langchain.retrievers`, `ArceeRetriever`, `langchain_community.retrievers`, `ArceeRetriever`], - [`langchain.retrievers`, `ArxivRetriever`, `langchain_community.retrievers`, `ArxivRetriever`], - [`langchain.retrievers`, `AzureAISearchRetriever`, `langchain_community.retrievers`, `AzureAISearchRetriever`], - [`langchain.retrievers`, `AzureCognitiveSearchRetriever`, `langchain_community.retrievers`, `AzureCognitiveSearchRetriever`], - [`langchain.retrievers`, `BM25Retriever`, `langchain_community.retrievers`, `BM25Retriever`], - [`langchain.retrievers`, `ChaindeskRetriever`, `langchain_community.retrievers`, `ChaindeskRetriever`], - [`langchain.retrievers`, `ChatGPTPluginRetriever`, `langchain_community.retrievers`, `ChatGPTPluginRetriever`], - [`langchain.retrievers`, `CohereRagRetriever`, `langchain_community.retrievers`, `CohereRagRetriever`], - [`langchain.retrievers`, `DocArrayRetriever`, `langchain_community.retrievers`, `DocArrayRetriever`], - [`langchain.retrievers`, `DriaRetriever`, `langchain_community.retrievers`, `DriaRetriever`], - [`langchain.retrievers`, `ElasticSearchBM25Retriever`, `langchain_community.retrievers`, `ElasticSearchBM25Retriever`], - [`langchain.retrievers`, `EmbedchainRetriever`, `langchain_community.retrievers`, `EmbedchainRetriever`], - [`langchain.retrievers`, `GoogleCloudEnterpriseSearchRetriever`, `langchain_community.retrievers`, `GoogleCloudEnterpriseSearchRetriever`], - [`langchain.retrievers`, `GoogleDocumentAIWarehouseRetriever`, `langchain_community.retrievers`, `GoogleDocumentAIWarehouseRetriever`], - [`langchain.retrievers`, `GoogleVertexAIMultiTurnSearchRetriever`, `langchain_community.retrievers`, `GoogleVertexAIMultiTurnSearchRetriever`], - [`langchain.retrievers`, `GoogleVertexAISearchRetriever`, `langchain_community.retrievers`, `GoogleVertexAISearchRetriever`], - [`langchain.retrievers`, `KayAiRetriever`, `langchain_community.retrievers`, `KayAiRetriever`], - [`langchain.retrievers`, `KNNRetriever`, `langchain_community.retrievers`, `KNNRetriever`], - [`langchain.retrievers`, `LlamaIndexGraphRetriever`, `langchain_community.retrievers`, `LlamaIndexGraphRetriever`], - [`langchain.retrievers`, `LlamaIndexRetriever`, `langchain_community.retrievers`, `LlamaIndexRetriever`], - [`langchain.retrievers`, `MetalRetriever`, `langchain_community.retrievers`, `MetalRetriever`], - [`langchain.retrievers`, `MilvusRetriever`, `langchain_community.retrievers`, `MilvusRetriever`], - [`langchain.retrievers`, `OutlineRetriever`, `langchain_community.retrievers`, `OutlineRetriever`], - [`langchain.retrievers`, `PineconeHybridSearchRetriever`, `langchain_community.retrievers`, `PineconeHybridSearchRetriever`], - [`langchain.retrievers`, `PubMedRetriever`, `langchain_community.retrievers`, `PubMedRetriever`], - [`langchain.retrievers`, `RemoteLangChainRetriever`, `langchain_community.retrievers`, `RemoteLangChainRetriever`], - [`langchain.retrievers`, `SVMRetriever`, `langchain_community.retrievers`, `SVMRetriever`], - [`langchain.retrievers`, `TavilySearchAPIRetriever`, `langchain_community.retrievers`, `TavilySearchAPIRetriever`], - [`langchain.retrievers`, `TFIDFRetriever`, `langchain_community.retrievers`, `TFIDFRetriever`], - [`langchain.retrievers`, `VespaRetriever`, `langchain_community.retrievers`, `VespaRetriever`], - [`langchain.retrievers`, `WeaviateHybridSearchRetriever`, `langchain_community.retrievers`, `WeaviateHybridSearchRetriever`], - [`langchain.retrievers`, `WebResearchRetriever`, `langchain_community.retrievers`, `WebResearchRetriever`], - [`langchain.retrievers`, `WikipediaRetriever`, `langchain_community.retrievers`, `WikipediaRetriever`], - [`langchain.retrievers`, `ZepRetriever`, `langchain_community.retrievers`, `ZepRetriever`], - [`langchain.retrievers`, `NeuralDBRetriever`, `langchain_community.retrievers`, `NeuralDBRetriever`], - [`langchain.retrievers`, `ZillizRetriever`, `langchain_community.retrievers`, `ZillizRetriever`], - [`langchain.retrievers.arcee`, `ArceeRetriever`, `langchain_community.retrievers`, `ArceeRetriever`], - [`langchain.retrievers.arxiv`, `ArxivRetriever`, `langchain_community.retrievers`, `ArxivRetriever`], - [`langchain.retrievers.azure_ai_search`, `AzureAISearchRetriever`, `langchain_community.retrievers`, `AzureAISearchRetriever`], - [`langchain.retrievers.azure_ai_search`, `AzureCognitiveSearchRetriever`, `langchain_community.retrievers`, `AzureCognitiveSearchRetriever`], - [`langchain.retrievers.bedrock`, `VectorSearchConfig`, `langchain_community.retrievers.bedrock`, `VectorSearchConfig`], - [`langchain.retrievers.bedrock`, `RetrievalConfig`, `langchain_community.retrievers.bedrock`, `RetrievalConfig`], - [`langchain.retrievers.bedrock`, `AmazonKnowledgeBasesRetriever`, `langchain_community.retrievers`, `AmazonKnowledgeBasesRetriever`], - [`langchain.retrievers.bm25`, `default_preprocessing_func`, `langchain_community.retrievers.bm25`, `default_preprocessing_func`], - [`langchain.retrievers.bm25`, `BM25Retriever`, `langchain_community.retrievers`, `BM25Retriever`], - [`langchain.retrievers.chaindesk`, `ChaindeskRetriever`, `langchain_community.retrievers`, `ChaindeskRetriever`], - [`langchain.retrievers.chatgpt_plugin_retriever`, `ChatGPTPluginRetriever`, `langchain_community.retrievers`, `ChatGPTPluginRetriever`], - [`langchain.retrievers.cohere_rag_retriever`, `CohereRagRetriever`, `langchain_community.retrievers`, `CohereRagRetriever`], - [`langchain.retrievers.databerry`, `DataberryRetriever`, `langchain_community.retrievers.databerry`, `DataberryRetriever`], - [`langchain.retrievers.docarray`, `SearchType`, `langchain_community.retrievers.docarray`, `SearchType`], - [`langchain.retrievers.docarray`, `DocArrayRetriever`, `langchain_community.retrievers`, `DocArrayRetriever`], - [`langchain.retrievers.document_compressors`, `FlashrankRerank`, `langchain_community.document_compressors`, `FlashrankRerank`], - [`langchain.retrievers.document_compressors.flashrank_rerank`, `FlashrankRerank`, `langchain_community.document_compressors`, `FlashrankRerank`], - [`langchain.retrievers.elastic_search_bm25`, `ElasticSearchBM25Retriever`, `langchain_community.retrievers`, `ElasticSearchBM25Retriever`], - [`langchain.retrievers.embedchain`, `EmbedchainRetriever`, `langchain_community.retrievers`, `EmbedchainRetriever`], - [`langchain.retrievers.google_cloud_documentai_warehouse`, `GoogleDocumentAIWarehouseRetriever`, `langchain_community.retrievers`, `GoogleDocumentAIWarehouseRetriever`], - [`langchain.retrievers.google_vertex_ai_search`, `GoogleVertexAISearchRetriever`, `langchain_community.retrievers`, `GoogleVertexAISearchRetriever`], - [`langchain.retrievers.google_vertex_ai_search`, `GoogleVertexAIMultiTurnSearchRetriever`, `langchain_community.retrievers`, `GoogleVertexAIMultiTurnSearchRetriever`], - [`langchain.retrievers.google_vertex_ai_search`, `GoogleCloudEnterpriseSearchRetriever`, `langchain_community.retrievers`, `GoogleCloudEnterpriseSearchRetriever`], - [`langchain.retrievers.kay`, `KayAiRetriever`, `langchain_community.retrievers`, `KayAiRetriever`], - [`langchain.retrievers.kendra`, `clean_excerpt`, `langchain_community.retrievers.kendra`, `clean_excerpt`], - [`langchain.retrievers.kendra`, `combined_text`, `langchain_community.retrievers.kendra`, `combined_text`], - [`langchain.retrievers.kendra`, `Highlight`, `langchain_community.retrievers.kendra`, `Highlight`], - [`langchain.retrievers.kendra`, `TextWithHighLights`, `langchain_community.retrievers.kendra`, `TextWithHighLights`], - [`langchain.retrievers.kendra`, `AdditionalResultAttributeValue`, `langchain_community.retrievers.kendra`, `AdditionalResultAttributeValue`], - [`langchain.retrievers.kendra`, `AdditionalResultAttribute`, `langchain_community.retrievers.kendra`, `AdditionalResultAttribute`], - [`langchain.retrievers.kendra`, `DocumentAttributeValue`, `langchain_community.retrievers.kendra`, `DocumentAttributeValue`], - [`langchain.retrievers.kendra`, `DocumentAttribute`, `langchain_community.retrievers.kendra`, `DocumentAttribute`], - [`langchain.retrievers.kendra`, `ResultItem`, `langchain_community.retrievers.kendra`, `ResultItem`], - [`langchain.retrievers.kendra`, `QueryResultItem`, `langchain_community.retrievers.kendra`, `QueryResultItem`], - [`langchain.retrievers.kendra`, `RetrieveResultItem`, `langchain_community.retrievers.kendra`, `RetrieveResultItem`], - [`langchain.retrievers.kendra`, `QueryResult`, `langchain_community.retrievers.kendra`, `QueryResult`], - [`langchain.retrievers.kendra`, `RetrieveResult`, `langchain_community.retrievers.kendra`, `RetrieveResult`], - [`langchain.retrievers.kendra`, `AmazonKendraRetriever`, `langchain_community.retrievers`, `AmazonKendraRetriever`], - [`langchain.retrievers.knn`, `KNNRetriever`, `langchain_community.retrievers`, `KNNRetriever`], - [`langchain.retrievers.llama_index`, `LlamaIndexRetriever`, `langchain_community.retrievers`, `LlamaIndexRetriever`], - [`langchain.retrievers.llama_index`, `LlamaIndexGraphRetriever`, `langchain_community.retrievers`, `LlamaIndexGraphRetriever`], - [`langchain.retrievers.metal`, `MetalRetriever`, `langchain_community.retrievers`, `MetalRetriever`], - [`langchain.retrievers.milvus`, `MilvusRetriever`, `langchain_community.retrievers`, `MilvusRetriever`], - [`langchain.retrievers.milvus`, `MilvusRetreiver`, `langchain_community.retrievers.milvus`, `MilvusRetreiver`], - [`langchain.retrievers.outline`, `OutlineRetriever`, `langchain_community.retrievers`, `OutlineRetriever`], - [`langchain.retrievers.pinecone_hybrid_search`, `PineconeHybridSearchRetriever`, `langchain_community.retrievers`, `PineconeHybridSearchRetriever`], - [`langchain.retrievers.pubmed`, `PubMedRetriever`, `langchain_community.retrievers`, `PubMedRetriever`], - [`langchain.retrievers.pupmed`, `PubMedRetriever`, `langchain_community.retrievers`, `PubMedRetriever`], - [`langchain.retrievers.remote_retriever`, `RemoteLangChainRetriever`, `langchain_community.retrievers`, `RemoteLangChainRetriever`], - [`langchain.retrievers.self_query.astradb`, `AstraDBTranslator`, `langchain_community.query_constructors.astradb`, `AstraDBTranslator`], - [`langchain.retrievers.self_query.chroma`, `ChromaTranslator`, `langchain_community.query_constructors.chroma`, `ChromaTranslator`], - [`langchain.retrievers.self_query.dashvector`, `DashvectorTranslator`, `langchain_community.query_constructors.dashvector`, `DashvectorTranslator`], - [`langchain.retrievers.self_query.databricks_vector_search`, `DatabricksVectorSearchTranslator`, `langchain_community.query_constructors.databricks_vector_search`, `DatabricksVectorSearchTranslator`], - [`langchain.retrievers.self_query.deeplake`, `DeepLakeTranslator`, `langchain_community.query_constructors.deeplake`, `DeepLakeTranslator`], - [`langchain.retrievers.self_query.deeplake`, `can_cast_to_float`, `langchain_community.query_constructors.deeplake`, `can_cast_to_float`], - [`langchain.retrievers.self_query.dingo`, `DingoDBTranslator`, `langchain_community.query_constructors.dingo`, `DingoDBTranslator`], - [`langchain.retrievers.self_query.elasticsearch`, `ElasticsearchTranslator`, `langchain_community.query_constructors.elasticsearch`, `ElasticsearchTranslator`], - [`langchain.retrievers.self_query.milvus`, `MilvusTranslator`, `langchain_community.query_constructors.milvus`, `MilvusTranslator`], - [`langchain.retrievers.self_query.milvus`, `process_value`, `langchain_community.query_constructors.milvus`, `process_value`], - [`langchain.retrievers.self_query.mongodb_atlas`, `MongoDBAtlasTranslator`, `langchain_community.query_constructors.mongodb_atlas`, `MongoDBAtlasTranslator`], - [`langchain.retrievers.self_query.myscale`, `MyScaleTranslator`, `langchain_community.query_constructors.myscale`, `MyScaleTranslator`], - [`langchain.retrievers.self_query.opensearch`, `OpenSearchTranslator`, `langchain_community.query_constructors.opensearch`, `OpenSearchTranslator`], - [`langchain.retrievers.self_query.pgvector`, `PGVectorTranslator`, `langchain_community.query_constructors.pgvector`, `PGVectorTranslator`], - [`langchain.retrievers.self_query.pinecone`, `PineconeTranslator`, `langchain_community.query_constructors.pinecone`, `PineconeTranslator`], - [`langchain.retrievers.self_query.qdrant`, `QdrantTranslator`, `langchain_community.query_constructors.qdrant`, `QdrantTranslator`], - [`langchain.retrievers.self_query.redis`, `RedisTranslator`, `langchain_community.query_constructors.redis`, `RedisTranslator`], - [`langchain.retrievers.self_query.supabase`, `SupabaseVectorTranslator`, `langchain_community.query_constructors.supabase`, `SupabaseVectorTranslator`], - [`langchain.retrievers.self_query.tencentvectordb`, `TencentVectorDBTranslator`, `langchain_community.query_constructors.tencentvectordb`, `TencentVectorDBTranslator`], - [`langchain.retrievers.self_query.timescalevector`, `TimescaleVectorTranslator`, `langchain_community.query_constructors.timescalevector`, `TimescaleVectorTranslator`], - [`langchain.retrievers.self_query.vectara`, `VectaraTranslator`, `langchain_community.query_constructors.vectara`, `VectaraTranslator`], - [`langchain.retrievers.self_query.vectara`, `process_value`, `langchain_community.query_constructors.vectara`, `process_value`], - [`langchain.retrievers.self_query.weaviate`, `WeaviateTranslator`, `langchain_community.query_constructors.weaviate`, `WeaviateTranslator`], - [`langchain.retrievers.svm`, `SVMRetriever`, `langchain_community.retrievers`, `SVMRetriever`], - [`langchain.retrievers.tavily_search_api`, `SearchDepth`, `langchain_community.retrievers.tavily_search_api`, `SearchDepth`], - [`langchain.retrievers.tavily_search_api`, `TavilySearchAPIRetriever`, `langchain_community.retrievers`, `TavilySearchAPIRetriever`], - [`langchain.retrievers.tfidf`, `TFIDFRetriever`, `langchain_community.retrievers`, `TFIDFRetriever`], - [`langchain.retrievers.vespa_retriever`, `VespaRetriever`, `langchain_community.retrievers`, `VespaRetriever`], - [`langchain.retrievers.weaviate_hybrid_search`, `WeaviateHybridSearchRetriever`, `langchain_community.retrievers`, `WeaviateHybridSearchRetriever`], - [`langchain.retrievers.web_research`, `QuestionListOutputParser`, `langchain_community.retrievers.web_research`, `QuestionListOutputParser`], - [`langchain.retrievers.web_research`, `SearchQueries`, `langchain_community.retrievers.web_research`, `SearchQueries`], - [`langchain.retrievers.web_research`, `WebResearchRetriever`, `langchain_community.retrievers`, `WebResearchRetriever`], - [`langchain.retrievers.wikipedia`, `WikipediaRetriever`, `langchain_community.retrievers`, `WikipediaRetriever`], - [`langchain.retrievers.you`, `YouRetriever`, `langchain_community.retrievers`, `YouRetriever`], - [`langchain.retrievers.zep`, `SearchScope`, `langchain_community.retrievers.zep`, `SearchScope`], - [`langchain.retrievers.zep`, `SearchType`, `langchain_community.retrievers.zep`, `SearchType`], - [`langchain.retrievers.zep`, `ZepRetriever`, `langchain_community.retrievers`, `ZepRetriever`], - [`langchain.retrievers.zilliz`, `ZillizRetriever`, `langchain_community.retrievers`, `ZillizRetriever`], - [`langchain.retrievers.zilliz`, `ZillizRetreiver`, `langchain_community.retrievers.zilliz`, `ZillizRetreiver`], - [`langchain.serpapi`, `SerpAPIWrapper`, `langchain_community.utilities`, `SerpAPIWrapper`], - [`langchain.sql_database`, `SQLDatabase`, `langchain_community.utilities`, `SQLDatabase`], - [`langchain.storage`, `RedisStore`, `langchain_community.storage`, `RedisStore`], - [`langchain.storage`, `UpstashRedisByteStore`, `langchain_community.storage`, `UpstashRedisByteStore`], - [`langchain.storage`, `UpstashRedisStore`, `langchain_community.storage`, `UpstashRedisStore`], - [`langchain.storage.redis`, `RedisStore`, `langchain_community.storage`, `RedisStore`], - [`langchain.storage.upstash_redis`, `UpstashRedisStore`, `langchain_community.storage`, `UpstashRedisStore`], - [`langchain.storage.upstash_redis`, `UpstashRedisByteStore`, `langchain_community.storage`, `UpstashRedisByteStore`], - [`langchain.tools`, `AINAppOps`, `langchain_community.tools`, `AINAppOps`], - [`langchain.tools`, `AINOwnerOps`, `langchain_community.tools`, `AINOwnerOps`], - [`langchain.tools`, `AINRuleOps`, `langchain_community.tools`, `AINRuleOps`], - [`langchain.tools`, `AINTransfer`, `langchain_community.tools`, `AINTransfer`], - [`langchain.tools`, `AINValueOps`, `langchain_community.tools`, `AINValueOps`], - [`langchain.tools`, `AIPluginTool`, `langchain_community.tools`, `AIPluginTool`], - [`langchain.tools`, `APIOperation`, `langchain_community.tools`, `APIOperation`], - [`langchain.tools`, `ArxivQueryRun`, `langchain_community.tools`, `ArxivQueryRun`], - [`langchain.tools`, `AzureCogsFormRecognizerTool`, `langchain_community.tools`, `AzureCogsFormRecognizerTool`], - [`langchain.tools`, `AzureCogsImageAnalysisTool`, `langchain_community.tools`, `AzureCogsImageAnalysisTool`], - [`langchain.tools`, `AzureCogsSpeech2TextTool`, `langchain_community.tools`, `AzureCogsSpeech2TextTool`], - [`langchain.tools`, `AzureCogsText2SpeechTool`, `langchain_community.tools`, `AzureCogsText2SpeechTool`], - [`langchain.tools`, `AzureCogsTextAnalyticsHealthTool`, `langchain_community.tools`, `AzureCogsTextAnalyticsHealthTool`], - [`langchain.tools`, `BaseGraphQLTool`, `langchain_community.tools`, `BaseGraphQLTool`], - [`langchain.tools`, `BaseRequestsTool`, `langchain_community.tools`, `BaseRequestsTool`], - [`langchain.tools`, `BaseSQLDatabaseTool`, `langchain_community.tools`, `BaseSQLDatabaseTool`], - [`langchain.tools`, `BaseSparkSQLTool`, `langchain_community.tools`, `BaseSparkSQLTool`], - [`langchain.tools`, `BearlyInterpreterTool`, `langchain_community.tools`, `BearlyInterpreterTool`], - [`langchain.tools`, `BingSearchResults`, `langchain_community.tools`, `BingSearchResults`], - [`langchain.tools`, `BingSearchRun`, `langchain_community.tools`, `BingSearchRun`], - [`langchain.tools`, `BraveSearch`, `langchain_community.tools`, `BraveSearch`], - [`langchain.tools`, `ClickTool`, `langchain_community.tools`, `ClickTool`], - [`langchain.tools`, `CopyFileTool`, `langchain_community.tools`, `CopyFileTool`], - [`langchain.tools`, `CurrentWebPageTool`, `langchain_community.tools`, `CurrentWebPageTool`], - [`langchain.tools`, `DeleteFileTool`, `langchain_community.tools`, `DeleteFileTool`], - [`langchain.tools`, `DuckDuckGoSearchResults`, `langchain_community.tools`, `DuckDuckGoSearchResults`], - [`langchain.tools`, `DuckDuckGoSearchRun`, `langchain_community.tools`, `DuckDuckGoSearchRun`], - [`langchain.tools`, `E2BDataAnalysisTool`, `langchain_community.tools`, `E2BDataAnalysisTool`], - [`langchain.tools`, `EdenAiExplicitImageTool`, `langchain_community.tools`, `EdenAiExplicitImageTool`], - [`langchain.tools`, `EdenAiObjectDetectionTool`, `langchain_community.tools`, `EdenAiObjectDetectionTool`], - [`langchain.tools`, `EdenAiParsingIDTool`, `langchain_community.tools`, `EdenAiParsingIDTool`], - [`langchain.tools`, `EdenAiParsingInvoiceTool`, `langchain_community.tools`, `EdenAiParsingInvoiceTool`], - [`langchain.tools`, `EdenAiSpeechToTextTool`, `langchain_community.tools`, `EdenAiSpeechToTextTool`], - [`langchain.tools`, `EdenAiTextModerationTool`, `langchain_community.tools`, `EdenAiTextModerationTool`], - [`langchain.tools`, `EdenAiTextToSpeechTool`, `langchain_community.tools`, `EdenAiTextToSpeechTool`], - [`langchain.tools`, `EdenaiTool`, `langchain_community.tools`, `EdenaiTool`], - [`langchain.tools`, `ElevenLabsText2SpeechTool`, `langchain_community.tools`, `ElevenLabsText2SpeechTool`], - [`langchain.tools`, `ExtractHyperlinksTool`, `langchain_community.tools`, `ExtractHyperlinksTool`], - [`langchain.tools`, `ExtractTextTool`, `langchain_community.tools`, `ExtractTextTool`], - [`langchain.tools`, `FileSearchTool`, `langchain_community.tools`, `FileSearchTool`], - [`langchain.tools`, `GetElementsTool`, `langchain_community.tools`, `GetElementsTool`], - [`langchain.tools`, `GmailCreateDraft`, `langchain_community.tools`, `GmailCreateDraft`], - [`langchain.tools`, `GmailGetMessage`, `langchain_community.tools`, `GmailGetMessage`], - [`langchain.tools`, `GmailGetThread`, `langchain_community.tools`, `GmailGetThread`], - [`langchain.tools`, `GmailSearch`, `langchain_community.tools`, `GmailSearch`], - [`langchain.tools`, `GmailSendMessage`, `langchain_community.tools`, `GmailSendMessage`], - [`langchain.tools`, `GoogleCloudTextToSpeechTool`, `langchain_community.tools`, `GoogleCloudTextToSpeechTool`], - [`langchain.tools`, `GooglePlacesTool`, `langchain_community.tools`, `GooglePlacesTool`], - [`langchain.tools`, `GoogleSearchResults`, `langchain_community.tools`, `GoogleSearchResults`], - [`langchain.tools`, `GoogleSearchRun`, `langchain_community.tools`, `GoogleSearchRun`], - [`langchain.tools`, `GoogleSerperResults`, `langchain_community.tools`, `GoogleSerperResults`], - [`langchain.tools`, `GoogleSerperRun`, `langchain_community.tools`, `GoogleSerperRun`], - [`langchain.tools`, `SearchAPIResults`, `langchain_community.tools`, `SearchAPIResults`], - [`langchain.tools`, `SearchAPIRun`, `langchain_community.tools`, `SearchAPIRun`], - [`langchain.tools`, `HumanInputRun`, `langchain_community.tools`, `HumanInputRun`], - [`langchain.tools`, `IFTTTWebhook`, `langchain_community.tools`, `IFTTTWebhook`], - [`langchain.tools`, `InfoPowerBITool`, `langchain_community.tools`, `InfoPowerBITool`], - [`langchain.tools`, `InfoSQLDatabaseTool`, `langchain_community.tools`, `InfoSQLDatabaseTool`], - [`langchain.tools`, `InfoSparkSQLTool`, `langchain_community.tools`, `InfoSparkSQLTool`], - [`langchain.tools`, `JiraAction`, `langchain_community.tools`, `JiraAction`], - [`langchain.tools`, `JsonGetValueTool`, `langchain_community.tools`, `JsonGetValueTool`], - [`langchain.tools`, `JsonListKeysTool`, `langchain_community.tools`, `JsonListKeysTool`], - [`langchain.tools`, `ListDirectoryTool`, `langchain_community.tools`, `ListDirectoryTool`], - [`langchain.tools`, `ListPowerBITool`, `langchain_community.tools`, `ListPowerBITool`], - [`langchain.tools`, `ListSQLDatabaseTool`, `langchain_community.tools`, `ListSQLDatabaseTool`], - [`langchain.tools`, `ListSparkSQLTool`, `langchain_community.tools`, `ListSparkSQLTool`], - [`langchain.tools`, `MerriamWebsterQueryRun`, `langchain_community.tools`, `MerriamWebsterQueryRun`], - [`langchain.tools`, `MetaphorSearchResults`, `langchain_community.tools`, `MetaphorSearchResults`], - [`langchain.tools`, `MoveFileTool`, `langchain_community.tools`, `MoveFileTool`], - [`langchain.tools`, `NasaAction`, `langchain_community.tools`, `NasaAction`], - [`langchain.tools`, `NavigateBackTool`, `langchain_community.tools`, `NavigateBackTool`], - [`langchain.tools`, `NavigateTool`, `langchain_community.tools`, `NavigateTool`], - [`langchain.tools`, `O365CreateDraftMessage`, `langchain_community.tools`, `O365CreateDraftMessage`], - [`langchain.tools`, `O365SearchEmails`, `langchain_community.tools`, `O365SearchEmails`], - [`langchain.tools`, `O365SearchEvents`, `langchain_community.tools`, `O365SearchEvents`], - [`langchain.tools`, `O365SendEvent`, `langchain_community.tools`, `O365SendEvent`], - [`langchain.tools`, `O365SendMessage`, `langchain_community.tools`, `O365SendMessage`], - [`langchain.tools`, `OpenAPISpec`, `langchain_community.tools`, `OpenAPISpec`], - [`langchain.tools`, `OpenWeatherMapQueryRun`, `langchain_community.tools`, `OpenWeatherMapQueryRun`], - [`langchain.tools`, `PubmedQueryRun`, `langchain_community.tools`, `PubmedQueryRun`], - [`langchain.tools`, `RedditSearchRun`, `langchain_community.tools`, `RedditSearchRun`], - [`langchain.tools`, `QueryCheckerTool`, `langchain_community.tools`, `QueryCheckerTool`], - [`langchain.tools`, `QueryPowerBITool`, `langchain_community.tools`, `QueryPowerBITool`], - [`langchain.tools`, `QuerySQLCheckerTool`, `langchain_community.tools`, `QuerySQLCheckerTool`], - [`langchain.tools`, `QuerySQLDataBaseTool`, `langchain_community.tools`, `QuerySQLDataBaseTool`], - [`langchain.tools`, `QuerySparkSQLTool`, `langchain_community.tools`, `QuerySparkSQLTool`], - [`langchain.tools`, `ReadFileTool`, `langchain_community.tools`, `ReadFileTool`], - [`langchain.tools`, `RequestsDeleteTool`, `langchain_community.tools`, `RequestsDeleteTool`], - [`langchain.tools`, `RequestsGetTool`, `langchain_community.tools`, `RequestsGetTool`], - [`langchain.tools`, `RequestsPatchTool`, `langchain_community.tools`, `RequestsPatchTool`], - [`langchain.tools`, `RequestsPostTool`, `langchain_community.tools`, `RequestsPostTool`], - [`langchain.tools`, `RequestsPutTool`, `langchain_community.tools`, `RequestsPutTool`], - [`langchain.tools`, `SteamWebAPIQueryRun`, `langchain_community.tools`, `SteamWebAPIQueryRun`], - [`langchain.tools`, `SceneXplainTool`, `langchain_community.tools`, `SceneXplainTool`], - [`langchain.tools`, `SearxSearchResults`, `langchain_community.tools`, `SearxSearchResults`], - [`langchain.tools`, `SearxSearchRun`, `langchain_community.tools`, `SearxSearchRun`], - [`langchain.tools`, `ShellTool`, `langchain_community.tools`, `ShellTool`], - [`langchain.tools`, `SlackGetChannel`, `langchain_community.tools`, `SlackGetChannel`], - [`langchain.tools`, `SlackGetMessage`, `langchain_community.tools`, `SlackGetMessage`], - [`langchain.tools`, `SlackScheduleMessage`, `langchain_community.tools`, `SlackScheduleMessage`], - [`langchain.tools`, `SlackSendMessage`, `langchain_community.tools`, `SlackSendMessage`], - [`langchain.tools`, `SleepTool`, `langchain_community.tools`, `SleepTool`], - [`langchain.tools`, `StdInInquireTool`, `langchain_community.tools`, `StdInInquireTool`], - [`langchain.tools`, `StackExchangeTool`, `langchain_community.tools`, `StackExchangeTool`], - [`langchain.tools`, `SteamshipImageGenerationTool`, `langchain_community.tools`, `SteamshipImageGenerationTool`], - [`langchain.tools`, `VectorStoreQATool`, `langchain_community.tools`, `VectorStoreQATool`], - [`langchain.tools`, `VectorStoreQAWithSourcesTool`, `langchain_community.tools`, `VectorStoreQAWithSourcesTool`], - [`langchain.tools`, `WikipediaQueryRun`, `langchain_community.tools`, `WikipediaQueryRun`], - [`langchain.tools`, `WolframAlphaQueryRun`, `langchain_community.tools`, `WolframAlphaQueryRun`], - [`langchain.tools`, `WriteFileTool`, `langchain_community.tools`, `WriteFileTool`], - [`langchain.tools`, `YahooFinanceNewsTool`, `langchain_community.tools`, `YahooFinanceNewsTool`], - [`langchain.tools`, `YouTubeSearchTool`, `langchain_community.tools`, `YouTubeSearchTool`], - [`langchain.tools`, `ZapierNLAListActions`, `langchain_community.tools`, `ZapierNLAListActions`], - [`langchain.tools`, `ZapierNLARunAction`, `langchain_community.tools`, `ZapierNLARunAction`], - [`langchain.tools.ainetwork.app`, `AppOperationType`, `langchain_community.tools.ainetwork.app`, `AppOperationType`], - [`langchain.tools.ainetwork.app`, `AppSchema`, `langchain_community.tools.ainetwork.app`, `AppSchema`], - [`langchain.tools.ainetwork.app`, `AINAppOps`, `langchain_community.tools`, `AINAppOps`], - [`langchain.tools.ainetwork.base`, `OperationType`, `langchain_community.tools.ainetwork.base`, `OperationType`], - [`langchain.tools.ainetwork.base`, `AINBaseTool`, `langchain_community.tools.ainetwork.base`, `AINBaseTool`], - [`langchain.tools.ainetwork.owner`, `RuleSchema`, `langchain_community.tools.ainetwork.owner`, `RuleSchema`], - [`langchain.tools.ainetwork.owner`, `AINOwnerOps`, `langchain_community.tools`, `AINOwnerOps`], - [`langchain.tools.ainetwork.rule`, `RuleSchema`, `langchain_community.tools.ainetwork.rule`, `RuleSchema`], - [`langchain.tools.ainetwork.rule`, `AINRuleOps`, `langchain_community.tools`, `AINRuleOps`], - [`langchain.tools.ainetwork.transfer`, `TransferSchema`, `langchain_community.tools.ainetwork.transfer`, `TransferSchema`], - [`langchain.tools.ainetwork.transfer`, `AINTransfer`, `langchain_community.tools`, `AINTransfer`], - [`langchain.tools.ainetwork.value`, `ValueSchema`, `langchain_community.tools.ainetwork.value`, `ValueSchema`], - [`langchain.tools.ainetwork.value`, `AINValueOps`, `langchain_community.tools`, `AINValueOps`], - [`langchain.tools.amadeus`, `AmadeusClosestAirport`, `langchain_community.tools.amadeus.closest_airport`, `AmadeusClosestAirport`], - [`langchain.tools.amadeus`, `AmadeusFlightSearch`, `langchain_community.tools.amadeus.flight_search`, `AmadeusFlightSearch`], - [`langchain.tools.amadeus.base`, `AmadeusBaseTool`, `langchain_community.tools.amadeus.base`, `AmadeusBaseTool`], - [`langchain.tools.amadeus.closest_airport`, `ClosestAirportSchema`, `langchain_community.tools.amadeus.closest_airport`, `ClosestAirportSchema`], - [`langchain.tools.amadeus.closest_airport`, `AmadeusClosestAirport`, `langchain_community.tools.amadeus.closest_airport`, `AmadeusClosestAirport`], - [`langchain.tools.amadeus.flight_search`, `FlightSearchSchema`, `langchain_community.tools.amadeus.flight_search`, `FlightSearchSchema`], - [`langchain.tools.amadeus.flight_search`, `AmadeusFlightSearch`, `langchain_community.tools.amadeus.flight_search`, `AmadeusFlightSearch`], - [`langchain.tools.arxiv.tool`, `ArxivInput`, `langchain_community.tools.arxiv.tool`, `ArxivInput`], - [`langchain.tools.arxiv.tool`, `ArxivQueryRun`, `langchain_community.tools`, `ArxivQueryRun`], - [`langchain.tools.azure_cognitive_services`, `AzureCogsImageAnalysisTool`, `langchain_community.tools`, `AzureCogsImageAnalysisTool`], - [`langchain.tools.azure_cognitive_services`, `AzureCogsFormRecognizerTool`, `langchain_community.tools`, `AzureCogsFormRecognizerTool`], - [`langchain.tools.azure_cognitive_services`, `AzureCogsSpeech2TextTool`, `langchain_community.tools`, `AzureCogsSpeech2TextTool`], - [`langchain.tools.azure_cognitive_services`, `AzureCogsText2SpeechTool`, `langchain_community.tools`, `AzureCogsText2SpeechTool`], - [`langchain.tools.azure_cognitive_services`, `AzureCogsTextAnalyticsHealthTool`, `langchain_community.tools`, `AzureCogsTextAnalyticsHealthTool`], - [`langchain.tools.azure_cognitive_services.form_recognizer`, `AzureCogsFormRecognizerTool`, `langchain_community.tools`, `AzureCogsFormRecognizerTool`], - [`langchain.tools.azure_cognitive_services.image_analysis`, `AzureCogsImageAnalysisTool`, `langchain_community.tools`, `AzureCogsImageAnalysisTool`], - [`langchain.tools.azure_cognitive_services.speech2text`, `AzureCogsSpeech2TextTool`, `langchain_community.tools`, `AzureCogsSpeech2TextTool`], - [`langchain.tools.azure_cognitive_services.text2speech`, `AzureCogsText2SpeechTool`, `langchain_community.tools`, `AzureCogsText2SpeechTool`], - [`langchain.tools.azure_cognitive_services.text_analytics_health`, `AzureCogsTextAnalyticsHealthTool`, `langchain_community.tools`, `AzureCogsTextAnalyticsHealthTool`], - [`langchain.tools.bearly.tool`, `BearlyInterpreterToolArguments`, `langchain_community.tools.bearly.tool`, `BearlyInterpreterToolArguments`], - [`langchain.tools.bearly.tool`, `FileInfo`, `langchain_community.tools.bearly.tool`, `FileInfo`], - [`langchain.tools.bearly.tool`, `BearlyInterpreterTool`, `langchain_community.tools`, `BearlyInterpreterTool`], - [`langchain.tools.bing_search`, `BingSearchRun`, `langchain_community.tools`, `BingSearchRun`], - [`langchain.tools.bing_search`, `BingSearchResults`, `langchain_community.tools`, `BingSearchResults`], - [`langchain.tools.bing_search.tool`, `BingSearchRun`, `langchain_community.tools`, `BingSearchRun`], - [`langchain.tools.bing_search.tool`, `BingSearchResults`, `langchain_community.tools`, `BingSearchResults`], - [`langchain.tools.brave_search.tool`, `BraveSearch`, `langchain_community.tools`, `BraveSearch`], - [`langchain.tools.clickup.tool`, `ClickupAction`, `langchain_community.tools.clickup.tool`, `ClickupAction`], - [`langchain.tools.dataforseo_api_search`, `DataForSeoAPISearchRun`, `langchain_community.tools.dataforseo_api_search.tool`, `DataForSeoAPISearchRun`], - [`langchain.tools.dataforseo_api_search`, `DataForSeoAPISearchResults`, `langchain_community.tools.dataforseo_api_search.tool`, `DataForSeoAPISearchResults`], - [`langchain.tools.dataforseo_api_search.tool`, `DataForSeoAPISearchRun`, `langchain_community.tools.dataforseo_api_search.tool`, `DataForSeoAPISearchRun`], - [`langchain.tools.dataforseo_api_search.tool`, `DataForSeoAPISearchResults`, `langchain_community.tools.dataforseo_api_search.tool`, `DataForSeoAPISearchResults`], - [`langchain.tools.ddg_search`, `DuckDuckGoSearchRun`, `langchain_community.tools`, `DuckDuckGoSearchRun`], - [`langchain.tools.ddg_search.tool`, `DDGInput`, `langchain_community.tools.ddg_search.tool`, `DDGInput`], - [`langchain.tools.ddg_search.tool`, `DuckDuckGoSearchRun`, `langchain_community.tools`, `DuckDuckGoSearchRun`], - [`langchain.tools.ddg_search.tool`, `DuckDuckGoSearchResults`, `langchain_community.tools`, `DuckDuckGoSearchResults`], - [`langchain.tools.ddg_search.tool`, `DuckDuckGoSearchTool`, `langchain_community.tools.ddg_search.tool`, `DuckDuckGoSearchTool`], - [`langchain.tools.e2b_data_analysis.tool`, `UploadedFile`, `langchain_community.tools.e2b_data_analysis.tool`, `UploadedFile`], - [`langchain.tools.e2b_data_analysis.tool`, `E2BDataAnalysisToolArguments`, `langchain_community.tools.e2b_data_analysis.tool`, `E2BDataAnalysisToolArguments`], - [`langchain.tools.e2b_data_analysis.tool`, `E2BDataAnalysisTool`, `langchain_community.tools`, `E2BDataAnalysisTool`], - [`langchain.tools.edenai`, `EdenAiExplicitImageTool`, `langchain_community.tools`, `EdenAiExplicitImageTool`], - [`langchain.tools.edenai`, `EdenAiObjectDetectionTool`, `langchain_community.tools`, `EdenAiObjectDetectionTool`], - [`langchain.tools.edenai`, `EdenAiParsingIDTool`, `langchain_community.tools`, `EdenAiParsingIDTool`], - [`langchain.tools.edenai`, `EdenAiParsingInvoiceTool`, `langchain_community.tools`, `EdenAiParsingInvoiceTool`], - [`langchain.tools.edenai`, `EdenAiTextToSpeechTool`, `langchain_community.tools`, `EdenAiTextToSpeechTool`], - [`langchain.tools.edenai`, `EdenAiSpeechToTextTool`, `langchain_community.tools`, `EdenAiSpeechToTextTool`], - [`langchain.tools.edenai`, `EdenAiTextModerationTool`, `langchain_community.tools`, `EdenAiTextModerationTool`], - [`langchain.tools.edenai`, `EdenaiTool`, `langchain_community.tools`, `EdenaiTool`], - [`langchain.tools.edenai.audio_speech_to_text`, `EdenAiSpeechToTextTool`, `langchain_community.tools`, `EdenAiSpeechToTextTool`], - [`langchain.tools.edenai.audio_text_to_speech`, `EdenAiTextToSpeechTool`, `langchain_community.tools`, `EdenAiTextToSpeechTool`], - [`langchain.tools.edenai.edenai_base_tool`, `EdenaiTool`, `langchain_community.tools`, `EdenaiTool`], - [`langchain.tools.edenai.image_explicitcontent`, `EdenAiExplicitImageTool`, `langchain_community.tools`, `EdenAiExplicitImageTool`], - [`langchain.tools.edenai.image_objectdetection`, `EdenAiObjectDetectionTool`, `langchain_community.tools`, `EdenAiObjectDetectionTool`], - [`langchain.tools.edenai.ocr_identityparser`, `EdenAiParsingIDTool`, `langchain_community.tools`, `EdenAiParsingIDTool`], - [`langchain.tools.edenai.ocr_invoiceparser`, `EdenAiParsingInvoiceTool`, `langchain_community.tools`, `EdenAiParsingInvoiceTool`], - [`langchain.tools.edenai.text_moderation`, `EdenAiTextModerationTool`, `langchain_community.tools`, `EdenAiTextModerationTool`], - [`langchain.tools.eleven_labs`, `ElevenLabsText2SpeechTool`, `langchain_community.tools`, `ElevenLabsText2SpeechTool`], - [`langchain.tools.eleven_labs.models`, `ElevenLabsModel`, `langchain_community.tools.eleven_labs.models`, `ElevenLabsModel`], - [`langchain.tools.eleven_labs.text2speech`, `ElevenLabsText2SpeechTool`, `langchain_community.tools`, `ElevenLabsText2SpeechTool`], - [`langchain.tools.file_management`, `CopyFileTool`, `langchain_community.tools`, `CopyFileTool`], - [`langchain.tools.file_management`, `DeleteFileTool`, `langchain_community.tools`, `DeleteFileTool`], - [`langchain.tools.file_management`, `FileSearchTool`, `langchain_community.tools`, `FileSearchTool`], - [`langchain.tools.file_management`, `MoveFileTool`, `langchain_community.tools`, `MoveFileTool`], - [`langchain.tools.file_management`, `ReadFileTool`, `langchain_community.tools`, `ReadFileTool`], - [`langchain.tools.file_management`, `WriteFileTool`, `langchain_community.tools`, `WriteFileTool`], - [`langchain.tools.file_management`, `ListDirectoryTool`, `langchain_community.tools`, `ListDirectoryTool`], - [`langchain.tools.file_management.copy`, `FileCopyInput`, `langchain_community.tools.file_management.copy`, `FileCopyInput`], - [`langchain.tools.file_management.copy`, `CopyFileTool`, `langchain_community.tools`, `CopyFileTool`], - [`langchain.tools.file_management.delete`, `FileDeleteInput`, `langchain_community.tools.file_management.delete`, `FileDeleteInput`], - [`langchain.tools.file_management.delete`, `DeleteFileTool`, `langchain_community.tools`, `DeleteFileTool`], - [`langchain.tools.file_management.file_search`, `FileSearchInput`, `langchain_community.tools.file_management.file_search`, `FileSearchInput`], - [`langchain.tools.file_management.file_search`, `FileSearchTool`, `langchain_community.tools`, `FileSearchTool`], - [`langchain.tools.file_management.list_dir`, `DirectoryListingInput`, `langchain_community.tools.file_management.list_dir`, `DirectoryListingInput`], - [`langchain.tools.file_management.list_dir`, `ListDirectoryTool`, `langchain_community.tools`, `ListDirectoryTool`], - [`langchain.tools.file_management.move`, `FileMoveInput`, `langchain_community.tools.file_management.move`, `FileMoveInput`], - [`langchain.tools.file_management.move`, `MoveFileTool`, `langchain_community.tools`, `MoveFileTool`], - [`langchain.tools.file_management.read`, `ReadFileInput`, `langchain_community.tools.file_management.read`, `ReadFileInput`], - [`langchain.tools.file_management.read`, `ReadFileTool`, `langchain_community.tools`, `ReadFileTool`], - [`langchain.tools.file_management.write`, `WriteFileInput`, `langchain_community.tools.file_management.write`, `WriteFileInput`], - [`langchain.tools.file_management.write`, `WriteFileTool`, `langchain_community.tools`, `WriteFileTool`], - [`langchain.tools.github.tool`, `GitHubAction`, `langchain_community.tools.github.tool`, `GitHubAction`], - [`langchain.tools.gitlab.tool`, `GitLabAction`, `langchain_community.tools.gitlab.tool`, `GitLabAction`], - [`langchain.tools.gmail`, `GmailCreateDraft`, `langchain_community.tools`, `GmailCreateDraft`], - [`langchain.tools.gmail`, `GmailSendMessage`, `langchain_community.tools`, `GmailSendMessage`], - [`langchain.tools.gmail`, `GmailSearch`, `langchain_community.tools`, `GmailSearch`], - [`langchain.tools.gmail`, `GmailGetMessage`, `langchain_community.tools`, `GmailGetMessage`], - [`langchain.tools.gmail`, `GmailGetThread`, `langchain_community.tools`, `GmailGetThread`], - [`langchain.tools.gmail.base`, `GmailBaseTool`, `langchain_community.tools.gmail.base`, `GmailBaseTool`], - [`langchain.tools.gmail.create_draft`, `CreateDraftSchema`, `langchain_community.tools.gmail.create_draft`, `CreateDraftSchema`], - [`langchain.tools.gmail.create_draft`, `GmailCreateDraft`, `langchain_community.tools`, `GmailCreateDraft`], - [`langchain.tools.gmail.get_message`, `SearchArgsSchema`, `langchain_community.tools.gmail.get_message`, `SearchArgsSchema`], - [`langchain.tools.gmail.get_message`, `GmailGetMessage`, `langchain_community.tools`, `GmailGetMessage`], - [`langchain.tools.gmail.get_thread`, `GetThreadSchema`, `langchain_community.tools.gmail.get_thread`, `GetThreadSchema`], - [`langchain.tools.gmail.get_thread`, `GmailGetThread`, `langchain_community.tools`, `GmailGetThread`], - [`langchain.tools.gmail.search`, `Resource`, `langchain_community.tools.gmail.search`, `Resource`], - [`langchain.tools.gmail.search`, `SearchArgsSchema`, `langchain_community.tools.gmail.search`, `SearchArgsSchema`], - [`langchain.tools.gmail.search`, `GmailSearch`, `langchain_community.tools`, `GmailSearch`], - [`langchain.tools.gmail.send_message`, `SendMessageSchema`, `langchain_community.tools.gmail.send_message`, `SendMessageSchema`], - [`langchain.tools.gmail.send_message`, `GmailSendMessage`, `langchain_community.tools`, `GmailSendMessage`], - [`langchain.tools.golden_query`, `GoldenQueryRun`, `langchain_community.tools.golden_query.tool`, `GoldenQueryRun`], - [`langchain.tools.golden_query.tool`, `GoldenQueryRun`, `langchain_community.tools.golden_query.tool`, `GoldenQueryRun`], - [`langchain.tools.google_cloud`, `GoogleCloudTextToSpeechTool`, `langchain_community.tools`, `GoogleCloudTextToSpeechTool`], - [`langchain.tools.google_cloud.texttospeech`, `GoogleCloudTextToSpeechTool`, `langchain_community.tools`, `GoogleCloudTextToSpeechTool`], - [`langchain.tools.google_finance`, `GoogleFinanceQueryRun`, `langchain_community.tools.google_finance.tool`, `GoogleFinanceQueryRun`], - [`langchain.tools.google_finance.tool`, `GoogleFinanceQueryRun`, `langchain_community.tools.google_finance.tool`, `GoogleFinanceQueryRun`], - [`langchain.tools.google_jobs`, `GoogleJobsQueryRun`, `langchain_community.tools.google_jobs.tool`, `GoogleJobsQueryRun`], - [`langchain.tools.google_jobs.tool`, `GoogleJobsQueryRun`, `langchain_community.tools.google_jobs.tool`, `GoogleJobsQueryRun`], - [`langchain.tools.google_lens`, `GoogleLensQueryRun`, `langchain_community.tools.google_lens.tool`, `GoogleLensQueryRun`], - [`langchain.tools.google_lens.tool`, `GoogleLensQueryRun`, `langchain_community.tools.google_lens.tool`, `GoogleLensQueryRun`], - [`langchain.tools.google_places`, `GooglePlacesTool`, `langchain_community.tools`, `GooglePlacesTool`], - [`langchain.tools.google_places.tool`, `GooglePlacesSchema`, `langchain_community.tools.google_places.tool`, `GooglePlacesSchema`], - [`langchain.tools.google_places.tool`, `GooglePlacesTool`, `langchain_community.tools`, `GooglePlacesTool`], - [`langchain.tools.google_scholar`, `GoogleScholarQueryRun`, `langchain_community.tools.google_scholar.tool`, `GoogleScholarQueryRun`], - [`langchain.tools.google_scholar.tool`, `GoogleScholarQueryRun`, `langchain_community.tools.google_scholar.tool`, `GoogleScholarQueryRun`], - [`langchain.tools.google_search`, `GoogleSearchRun`, `langchain_community.tools`, `GoogleSearchRun`], - [`langchain.tools.google_search`, `GoogleSearchResults`, `langchain_community.tools`, `GoogleSearchResults`], - [`langchain.tools.google_search.tool`, `GoogleSearchRun`, `langchain_community.tools`, `GoogleSearchRun`], - [`langchain.tools.google_search.tool`, `GoogleSearchResults`, `langchain_community.tools`, `GoogleSearchResults`], - [`langchain.tools.google_serper`, `GoogleSerperRun`, `langchain_community.tools`, `GoogleSerperRun`], - [`langchain.tools.google_serper`, `GoogleSerperResults`, `langchain_community.tools`, `GoogleSerperResults`], - [`langchain.tools.google_serper.tool`, `GoogleSerperRun`, `langchain_community.tools`, `GoogleSerperRun`], - [`langchain.tools.google_serper.tool`, `GoogleSerperResults`, `langchain_community.tools`, `GoogleSerperResults`], - [`langchain.tools.google_trends`, `GoogleTrendsQueryRun`, `langchain_community.tools.google_trends.tool`, `GoogleTrendsQueryRun`], - [`langchain.tools.google_trends.tool`, `GoogleTrendsQueryRun`, `langchain_community.tools.google_trends.tool`, `GoogleTrendsQueryRun`], - [`langchain.tools.graphql.tool`, `BaseGraphQLTool`, `langchain_community.tools`, `BaseGraphQLTool`], - [`langchain.tools.human`, `HumanInputRun`, `langchain_community.tools`, `HumanInputRun`], - [`langchain.tools.human.tool`, `HumanInputRun`, `langchain_community.tools`, `HumanInputRun`], - [`langchain.tools.ifttt`, `IFTTTWebhook`, `langchain_community.tools`, `IFTTTWebhook`], - [`langchain.tools.interaction.tool`, `StdInInquireTool`, `langchain_community.tools`, `StdInInquireTool`], - [`langchain.tools.jira.tool`, `JiraAction`, `langchain_community.tools`, `JiraAction`], - [`langchain.tools.json.tool`, `JsonSpec`, `langchain_community.tools.json.tool`, `JsonSpec`], - [`langchain.tools.json.tool`, `JsonListKeysTool`, `langchain_community.tools`, `JsonListKeysTool`], - [`langchain.tools.json.tool`, `JsonGetValueTool`, `langchain_community.tools`, `JsonGetValueTool`], - [`langchain.tools.memorize`, `Memorize`, `langchain_community.tools.memorize.tool`, `Memorize`], - [`langchain.tools.memorize.tool`, `TrainableLLM`, `langchain_community.tools.memorize.tool`, `TrainableLLM`], - [`langchain.tools.memorize.tool`, `Memorize`, `langchain_community.tools.memorize.tool`, `Memorize`], - [`langchain.tools.merriam_webster.tool`, `MerriamWebsterQueryRun`, `langchain_community.tools`, `MerriamWebsterQueryRun`], - [`langchain.tools.metaphor_search`, `MetaphorSearchResults`, `langchain_community.tools`, `MetaphorSearchResults`], - [`langchain.tools.metaphor_search.tool`, `MetaphorSearchResults`, `langchain_community.tools`, `MetaphorSearchResults`], - [`langchain.tools.multion`, `MultionCreateSession`, `langchain_community.tools.multion.create_session`, `MultionCreateSession`], - [`langchain.tools.multion`, `MultionUpdateSession`, `langchain_community.tools.multion.update_session`, `MultionUpdateSession`], - [`langchain.tools.multion`, `MultionCloseSession`, `langchain_community.tools.multion.close_session`, `MultionCloseSession`], - [`langchain.tools.multion.close_session`, `CloseSessionSchema`, `langchain_community.tools.multion.close_session`, `CloseSessionSchema`], - [`langchain.tools.multion.close_session`, `MultionCloseSession`, `langchain_community.tools.multion.close_session`, `MultionCloseSession`], - [`langchain.tools.multion.create_session`, `CreateSessionSchema`, `langchain_community.tools.multion.create_session`, `CreateSessionSchema`], - [`langchain.tools.multion.create_session`, `MultionCreateSession`, `langchain_community.tools.multion.create_session`, `MultionCreateSession`], - [`langchain.tools.multion.update_session`, `UpdateSessionSchema`, `langchain_community.tools.multion.update_session`, `UpdateSessionSchema`], - [`langchain.tools.multion.update_session`, `MultionUpdateSession`, `langchain_community.tools.multion.update_session`, `MultionUpdateSession`], - [`langchain.tools.nasa.tool`, `NasaAction`, `langchain_community.tools`, `NasaAction`], - [`langchain.tools.nuclia`, `NucliaUnderstandingAPI`, `langchain_community.tools.nuclia.tool`, `NucliaUnderstandingAPI`], - [`langchain.tools.nuclia.tool`, `NUASchema`, `langchain_community.tools.nuclia.tool`, `NUASchema`], - [`langchain.tools.nuclia.tool`, `NucliaUnderstandingAPI`, `langchain_community.tools.nuclia.tool`, `NucliaUnderstandingAPI`], - [`langchain.tools.office365`, `O365SearchEmails`, `langchain_community.tools`, `O365SearchEmails`], - [`langchain.tools.office365`, `O365SearchEvents`, `langchain_community.tools`, `O365SearchEvents`], - [`langchain.tools.office365`, `O365CreateDraftMessage`, `langchain_community.tools`, `O365CreateDraftMessage`], - [`langchain.tools.office365`, `O365SendMessage`, `langchain_community.tools`, `O365SendMessage`], - [`langchain.tools.office365`, `O365SendEvent`, `langchain_community.tools`, `O365SendEvent`], - [`langchain.tools.office365.base`, `O365BaseTool`, `langchain_community.tools.office365.base`, `O365BaseTool`], - [`langchain.tools.office365.create_draft_message`, `CreateDraftMessageSchema`, `langchain_community.tools.office365.create_draft_message`, `CreateDraftMessageSchema`], - [`langchain.tools.office365.create_draft_message`, `O365CreateDraftMessage`, `langchain_community.tools`, `O365CreateDraftMessage`], - [`langchain.tools.office365.events_search`, `SearchEventsInput`, `langchain_community.tools.office365.events_search`, `SearchEventsInput`], - [`langchain.tools.office365.events_search`, `O365SearchEvents`, `langchain_community.tools`, `O365SearchEvents`], - [`langchain.tools.office365.messages_search`, `SearchEmailsInput`, `langchain_community.tools.office365.messages_search`, `SearchEmailsInput`], - [`langchain.tools.office365.messages_search`, `O365SearchEmails`, `langchain_community.tools`, `O365SearchEmails`], - [`langchain.tools.office365.send_event`, `SendEventSchema`, `langchain_community.tools.office365.send_event`, `SendEventSchema`], - [`langchain.tools.office365.send_event`, `O365SendEvent`, `langchain_community.tools`, `O365SendEvent`], - [`langchain.tools.office365.send_message`, `SendMessageSchema`, `langchain_community.tools.office365.send_message`, `SendMessageSchema`], - [`langchain.tools.office365.send_message`, `O365SendMessage`, `langchain_community.tools`, `O365SendMessage`], - [`langchain.tools.openapi.utils.api_models`, `APIPropertyLocation`, `langchain_community.tools.openapi.utils.api_models`, `APIPropertyLocation`], - [`langchain.tools.openapi.utils.api_models`, `APIPropertyBase`, `langchain_community.tools.openapi.utils.api_models`, `APIPropertyBase`], - [`langchain.tools.openapi.utils.api_models`, `APIProperty`, `langchain_community.tools.openapi.utils.api_models`, `APIProperty`], - [`langchain.tools.openapi.utils.api_models`, `APIRequestBodyProperty`, `langchain_community.tools.openapi.utils.api_models`, `APIRequestBodyProperty`], - [`langchain.tools.openapi.utils.api_models`, `APIRequestBody`, `langchain_community.tools.openapi.utils.api_models`, `APIRequestBody`], - [`langchain.tools.openapi.utils.api_models`, `APIOperation`, `langchain_community.tools`, `APIOperation`], - [`langchain.tools.openapi.utils.openapi_utils`, `HTTPVerb`, `langchain_community.utilities.openapi`, `HTTPVerb`], - [`langchain.tools.openapi.utils.openapi_utils`, `OpenAPISpec`, `langchain_community.tools`, `OpenAPISpec`], - [`langchain.tools.openweathermap`, `OpenWeatherMapQueryRun`, `langchain_community.tools`, `OpenWeatherMapQueryRun`], - [`langchain.tools.openweathermap.tool`, `OpenWeatherMapQueryRun`, `langchain_community.tools`, `OpenWeatherMapQueryRun`], - [`langchain.tools.playwright`, `NavigateTool`, `langchain_community.tools`, `NavigateTool`], - [`langchain.tools.playwright`, `NavigateBackTool`, `langchain_community.tools`, `NavigateBackTool`], - [`langchain.tools.playwright`, `ExtractTextTool`, `langchain_community.tools`, `ExtractTextTool`], - [`langchain.tools.playwright`, `ExtractHyperlinksTool`, `langchain_community.tools`, `ExtractHyperlinksTool`], - [`langchain.tools.playwright`, `GetElementsTool`, `langchain_community.tools`, `GetElementsTool`], - [`langchain.tools.playwright`, `ClickTool`, `langchain_community.tools`, `ClickTool`], - [`langchain.tools.playwright`, `CurrentWebPageTool`, `langchain_community.tools`, `CurrentWebPageTool`], - [`langchain.tools.playwright.base`, `BaseBrowserTool`, `langchain_community.tools.playwright.base`, `BaseBrowserTool`], - [`langchain.tools.playwright.click`, `ClickToolInput`, `langchain_community.tools.playwright.click`, `ClickToolInput`], - [`langchain.tools.playwright.click`, `ClickTool`, `langchain_community.tools`, `ClickTool`], - [`langchain.tools.playwright.current_page`, `CurrentWebPageTool`, `langchain_community.tools`, `CurrentWebPageTool`], - [`langchain.tools.playwright.extract_hyperlinks`, `ExtractHyperlinksToolInput`, `langchain_community.tools.playwright.extract_hyperlinks`, `ExtractHyperlinksToolInput`], - [`langchain.tools.playwright.extract_hyperlinks`, `ExtractHyperlinksTool`, `langchain_community.tools`, `ExtractHyperlinksTool`], - [`langchain.tools.playwright.extract_text`, `ExtractTextTool`, `langchain_community.tools`, `ExtractTextTool`], - [`langchain.tools.playwright.get_elements`, `GetElementsToolInput`, `langchain_community.tools.playwright.get_elements`, `GetElementsToolInput`], - [`langchain.tools.playwright.get_elements`, `GetElementsTool`, `langchain_community.tools`, `GetElementsTool`], - [`langchain.tools.playwright.navigate`, `NavigateToolInput`, `langchain_community.tools.playwright.navigate`, `NavigateToolInput`], - [`langchain.tools.playwright.navigate`, `NavigateTool`, `langchain_community.tools`, `NavigateTool`], - [`langchain.tools.playwright.navigate_back`, `NavigateBackTool`, `langchain_community.tools`, `NavigateBackTool`], - [`langchain.tools.plugin`, `ApiConfig`, `langchain_community.tools.plugin`, `ApiConfig`], - [`langchain.tools.plugin`, `AIPlugin`, `langchain_community.tools.plugin`, `AIPlugin`], - [`langchain.tools.plugin`, `AIPluginToolSchema`, `langchain_community.tools.plugin`, `AIPluginToolSchema`], - [`langchain.tools.plugin`, `AIPluginTool`, `langchain_community.tools`, `AIPluginTool`], - [`langchain.tools.powerbi.tool`, `QueryPowerBITool`, `langchain_community.tools`, `QueryPowerBITool`], - [`langchain.tools.powerbi.tool`, `InfoPowerBITool`, `langchain_community.tools`, `InfoPowerBITool`], - [`langchain.tools.powerbi.tool`, `ListPowerBITool`, `langchain_community.tools`, `ListPowerBITool`], - [`langchain.tools.pubmed.tool`, `PubmedQueryRun`, `langchain_community.tools`, `PubmedQueryRun`], - [`langchain.tools.reddit_search.tool`, `RedditSearchSchema`, `langchain_community.tools`, `RedditSearchSchema`], - [`langchain.tools.reddit_search.tool`, `RedditSearchRun`, `langchain_community.tools`, `RedditSearchRun`], - [`langchain.tools.requests.tool`, `BaseRequestsTool`, `langchain_community.tools`, `BaseRequestsTool`], - [`langchain.tools.requests.tool`, `RequestsGetTool`, `langchain_community.tools`, `RequestsGetTool`], - [`langchain.tools.requests.tool`, `RequestsPostTool`, `langchain_community.tools`, `RequestsPostTool`], - [`langchain.tools.requests.tool`, `RequestsPatchTool`, `langchain_community.tools`, `RequestsPatchTool`], - [`langchain.tools.requests.tool`, `RequestsPutTool`, `langchain_community.tools`, `RequestsPutTool`], - [`langchain.tools.requests.tool`, `RequestsDeleteTool`, `langchain_community.tools`, `RequestsDeleteTool`], - [`langchain.tools.scenexplain.tool`, `SceneXplainInput`, `langchain_community.tools.scenexplain.tool`, `SceneXplainInput`], - [`langchain.tools.scenexplain.tool`, `SceneXplainTool`, `langchain_community.tools`, `SceneXplainTool`], - [`langchain.tools.searchapi`, `SearchAPIResults`, `langchain_community.tools`, `SearchAPIResults`], - [`langchain.tools.searchapi`, `SearchAPIRun`, `langchain_community.tools`, `SearchAPIRun`], - [`langchain.tools.searchapi.tool`, `SearchAPIRun`, `langchain_community.tools`, `SearchAPIRun`], - [`langchain.tools.searchapi.tool`, `SearchAPIResults`, `langchain_community.tools`, `SearchAPIResults`], - [`langchain.tools.searx_search.tool`, `SearxSearchRun`, `langchain_community.tools`, `SearxSearchRun`], - [`langchain.tools.searx_search.tool`, `SearxSearchResults`, `langchain_community.tools`, `SearxSearchResults`], - [`langchain.tools.shell`, `ShellTool`, `langchain_community.tools`, `ShellTool`], - [`langchain.tools.shell.tool`, `ShellInput`, `langchain_community.tools.shell.tool`, `ShellInput`], - [`langchain.tools.shell.tool`, `ShellTool`, `langchain_community.tools`, `ShellTool`], - [`langchain.tools.slack`, `SlackGetChannel`, `langchain_community.tools`, `SlackGetChannel`], - [`langchain.tools.slack`, `SlackGetMessage`, `langchain_community.tools`, `SlackGetMessage`], - [`langchain.tools.slack`, `SlackScheduleMessage`, `langchain_community.tools`, `SlackScheduleMessage`], - [`langchain.tools.slack`, `SlackSendMessage`, `langchain_community.tools`, `SlackSendMessage`], - [`langchain.tools.slack.base`, `SlackBaseTool`, `langchain_community.tools.slack.base`, `SlackBaseTool`], - [`langchain.tools.slack.get_channel`, `SlackGetChannel`, `langchain_community.tools`, `SlackGetChannel`], - [`langchain.tools.slack.get_message`, `SlackGetMessageSchema`, `langchain_community.tools.slack.get_message`, `SlackGetMessageSchema`], - [`langchain.tools.slack.get_message`, `SlackGetMessage`, `langchain_community.tools`, `SlackGetMessage`], - [`langchain.tools.slack.schedule_message`, `ScheduleMessageSchema`, `langchain_community.tools.slack.schedule_message`, `ScheduleMessageSchema`], - [`langchain.tools.slack.schedule_message`, `SlackScheduleMessage`, `langchain_community.tools`, `SlackScheduleMessage`], - [`langchain.tools.slack.send_message`, `SendMessageSchema`, `langchain_community.tools.slack.send_message`, `SendMessageSchema`], - [`langchain.tools.slack.send_message`, `SlackSendMessage`, `langchain_community.tools`, `SlackSendMessage`], - [`langchain.tools.sleep.tool`, `SleepInput`, `langchain_community.tools.sleep.tool`, `SleepInput`], - [`langchain.tools.sleep.tool`, `SleepTool`, `langchain_community.tools`, `SleepTool`], - [`langchain.tools.spark_sql.tool`, `BaseSparkSQLTool`, `langchain_community.tools`, `BaseSparkSQLTool`], - [`langchain.tools.spark_sql.tool`, `QuerySparkSQLTool`, `langchain_community.tools`, `QuerySparkSQLTool`], - [`langchain.tools.spark_sql.tool`, `InfoSparkSQLTool`, `langchain_community.tools`, `InfoSparkSQLTool`], - [`langchain.tools.spark_sql.tool`, `ListSparkSQLTool`, `langchain_community.tools`, `ListSparkSQLTool`], - [`langchain.tools.spark_sql.tool`, `QueryCheckerTool`, `langchain_community.tools`, `QueryCheckerTool`], - [`langchain.tools.sql_database.tool`, `BaseSQLDatabaseTool`, `langchain_community.tools`, `BaseSQLDatabaseTool`], - [`langchain.tools.sql_database.tool`, `QuerySQLDataBaseTool`, `langchain_community.tools`, `QuerySQLDataBaseTool`], - [`langchain.tools.sql_database.tool`, `InfoSQLDatabaseTool`, `langchain_community.tools`, `InfoSQLDatabaseTool`], - [`langchain.tools.sql_database.tool`, `ListSQLDatabaseTool`, `langchain_community.tools`, `ListSQLDatabaseTool`], - [`langchain.tools.sql_database.tool`, `QuerySQLCheckerTool`, `langchain_community.tools`, `QuerySQLCheckerTool`], - [`langchain.tools.stackexchange.tool`, `StackExchangeTool`, `langchain_community.tools`, `StackExchangeTool`], - [`langchain.tools.steam.tool`, `SteamWebAPIQueryRun`, `langchain_community.tools`, `SteamWebAPIQueryRun`], - [`langchain.tools.steamship_image_generation`, `SteamshipImageGenerationTool`, `langchain_community.tools`, `SteamshipImageGenerationTool`], - [`langchain.tools.steamship_image_generation.tool`, `ModelName`, `langchain_community.tools.steamship_image_generation.tool`, `ModelName`], - [`langchain.tools.steamship_image_generation.tool`, `SteamshipImageGenerationTool`, `langchain_community.tools`, `SteamshipImageGenerationTool`], - [`langchain.tools.tavily_search`, `TavilySearchResults`, `langchain_community.tools.tavily_search.tool`, `TavilySearchResults`], - [`langchain.tools.tavily_search`, `TavilyAnswer`, `langchain_community.tools.tavily_search.tool`, `TavilyAnswer`], - [`langchain.tools.tavily_search.tool`, `TavilyInput`, `langchain_community.tools.tavily_search.tool`, `TavilyInput`], - [`langchain.tools.tavily_search.tool`, `TavilySearchResults`, `langchain_community.tools.tavily_search.tool`, `TavilySearchResults`], - [`langchain.tools.tavily_search.tool`, `TavilyAnswer`, `langchain_community.tools.tavily_search.tool`, `TavilyAnswer`], - [`langchain.tools.vectorstore.tool`, `VectorStoreQATool`, `langchain_community.tools`, `VectorStoreQATool`], - [`langchain.tools.vectorstore.tool`, `VectorStoreQAWithSourcesTool`, `langchain_community.tools`, `VectorStoreQAWithSourcesTool`], - [`langchain.tools.wikipedia.tool`, `WikipediaQueryRun`, `langchain_community.tools`, `WikipediaQueryRun`], - [`langchain.tools.wolfram_alpha`, `WolframAlphaQueryRun`, `langchain_community.tools`, `WolframAlphaQueryRun`], - [`langchain.tools.wolfram_alpha.tool`, `WolframAlphaQueryRun`, `langchain_community.tools`, `WolframAlphaQueryRun`], - [`langchain.tools.yahoo_finance_news`, `YahooFinanceNewsTool`, `langchain_community.tools`, `YahooFinanceNewsTool`], - [`langchain.tools.youtube.search`, `YouTubeSearchTool`, `langchain_community.tools`, `YouTubeSearchTool`], - [`langchain.tools.zapier`, `ZapierNLARunAction`, `langchain_community.tools`, `ZapierNLARunAction`], - [`langchain.tools.zapier`, `ZapierNLAListActions`, `langchain_community.tools`, `ZapierNLAListActions`], - [`langchain.tools.zapier.tool`, `ZapierNLARunAction`, `langchain_community.tools`, `ZapierNLARunAction`], - [`langchain.tools.zapier.tool`, `ZapierNLAListActions`, `langchain_community.tools`, `ZapierNLAListActions`], - [`langchain.utilities`, `AlphaVantageAPIWrapper`, `langchain_community.utilities`, `AlphaVantageAPIWrapper`], - [`langchain.utilities`, `ApifyWrapper`, `langchain_community.utilities`, `ApifyWrapper`], - [`langchain.utilities`, `ArceeWrapper`, `langchain_community.utilities`, `ArceeWrapper`], - [`langchain.utilities`, `ArxivAPIWrapper`, `langchain_community.utilities`, `ArxivAPIWrapper`], - [`langchain.utilities`, `BibtexparserWrapper`, `langchain_community.utilities`, `BibtexparserWrapper`], - [`langchain.utilities`, `BingSearchAPIWrapper`, `langchain_community.utilities`, `BingSearchAPIWrapper`], - [`langchain.utilities`, `BraveSearchWrapper`, `langchain_community.utilities`, `BraveSearchWrapper`], - [`langchain.utilities`, `DuckDuckGoSearchAPIWrapper`, `langchain_community.utilities`, `DuckDuckGoSearchAPIWrapper`], - [`langchain.utilities`, `GoldenQueryAPIWrapper`, `langchain_community.utilities`, `GoldenQueryAPIWrapper`], - [`langchain.utilities`, `GoogleFinanceAPIWrapper`, `langchain_community.utilities`, `GoogleFinanceAPIWrapper`], - [`langchain.utilities`, `GoogleLensAPIWrapper`, `langchain_community.utilities`, `GoogleLensAPIWrapper`], - [`langchain.utilities`, `GoogleJobsAPIWrapper`, `langchain_community.utilities`, `GoogleJobsAPIWrapper`], - [`langchain.utilities`, `GooglePlacesAPIWrapper`, `langchain_community.utilities`, `GooglePlacesAPIWrapper`], - [`langchain.utilities`, `GoogleScholarAPIWrapper`, `langchain_community.utilities`, `GoogleScholarAPIWrapper`], - [`langchain.utilities`, `GoogleTrendsAPIWrapper`, `langchain_community.utilities`, `GoogleTrendsAPIWrapper`], - [`langchain.utilities`, `GoogleSearchAPIWrapper`, `langchain_community.utilities`, `GoogleSearchAPIWrapper`], - [`langchain.utilities`, `GoogleSerperAPIWrapper`, `langchain_community.utilities`, `GoogleSerperAPIWrapper`], - [`langchain.utilities`, `GraphQLAPIWrapper`, `langchain_community.utilities`, `GraphQLAPIWrapper`], - [`langchain.utilities`, `JiraAPIWrapper`, `langchain_community.utilities`, `JiraAPIWrapper`], - [`langchain.utilities`, `LambdaWrapper`, `langchain_community.utilities`, `LambdaWrapper`], - [`langchain.utilities`, `MaxComputeAPIWrapper`, `langchain_community.utilities`, `MaxComputeAPIWrapper`], - [`langchain.utilities`, `MerriamWebsterAPIWrapper`, `langchain_community.utilities`, `MerriamWebsterAPIWrapper`], - [`langchain.utilities`, `MetaphorSearchAPIWrapper`, `langchain_community.utilities`, `MetaphorSearchAPIWrapper`], - [`langchain.utilities`, `NasaAPIWrapper`, `langchain_community.utilities`, `NasaAPIWrapper`], - [`langchain.utilities`, `OpenWeatherMapAPIWrapper`, `langchain_community.utilities`, `OpenWeatherMapAPIWrapper`], - [`langchain.utilities`, `OutlineAPIWrapper`, `langchain_community.utilities`, `OutlineAPIWrapper`], - [`langchain.utilities`, `Portkey`, `langchain_community.utilities`, `Portkey`], - [`langchain.utilities`, `PowerBIDataset`, `langchain_community.utilities`, `PowerBIDataset`], - [`langchain.utilities`, `PubMedAPIWrapper`, `langchain_community.utilities`, `PubMedAPIWrapper`], - [`langchain.utilities`, `PythonREPL`, `langchain_community.utilities`, `PythonREPL`], - [`langchain.utilities`, `Requests`, `langchain_community.utilities`, `Requests`], - [`langchain.utilities`, `SteamWebAPIWrapper`, `langchain_community.utilities`, `SteamWebAPIWrapper`], - [`langchain.utilities`, `SQLDatabase`, `langchain_community.utilities`, `SQLDatabase`], - [`langchain.utilities`, `SceneXplainAPIWrapper`, `langchain_community.utilities`, `SceneXplainAPIWrapper`], - [`langchain.utilities`, `SearchApiAPIWrapper`, `langchain_community.utilities`, `SearchApiAPIWrapper`], - [`langchain.utilities`, `SearxSearchWrapper`, `langchain_community.utilities`, `SearxSearchWrapper`], - [`langchain.utilities`, `SerpAPIWrapper`, `langchain_community.utilities`, `SerpAPIWrapper`], - [`langchain.utilities`, `SparkSQL`, `langchain_community.utilities`, `SparkSQL`], - [`langchain.utilities`, `StackExchangeAPIWrapper`, `langchain_community.utilities`, `StackExchangeAPIWrapper`], - [`langchain.utilities`, `TensorflowDatasets`, `langchain_community.utilities`, `TensorflowDatasets`], - [`langchain.utilities`, `RequestsWrapper`, `langchain_community.utilities`, `TextRequestsWrapper`], - [`langchain.utilities`, `TextRequestsWrapper`, `langchain_community.utilities`, `TextRequestsWrapper`], - [`langchain.utilities`, `TwilioAPIWrapper`, `langchain_community.utilities`, `TwilioAPIWrapper`], - [`langchain.utilities`, `WikipediaAPIWrapper`, `langchain_community.utilities`, `WikipediaAPIWrapper`], - [`langchain.utilities`, `WolframAlphaAPIWrapper`, `langchain_community.utilities`, `WolframAlphaAPIWrapper`], - [`langchain.utilities`, `ZapierNLAWrapper`, `langchain_community.utilities`, `ZapierNLAWrapper`], - [`langchain.utilities.alpha_vantage`, `AlphaVantageAPIWrapper`, `langchain_community.utilities`, `AlphaVantageAPIWrapper`], - [`langchain.utilities.anthropic`, `get_num_tokens_anthropic`, `langchain_community.utilities.anthropic`, `get_num_tokens_anthropic`], - [`langchain.utilities.anthropic`, `get_token_ids_anthropic`, `langchain_community.utilities.anthropic`, `get_token_ids_anthropic`], - [`langchain.utilities.apify`, `ApifyWrapper`, `langchain_community.utilities`, `ApifyWrapper`], - [`langchain.utilities.arcee`, `ArceeRoute`, `langchain_community.utilities.arcee`, `ArceeRoute`], - [`langchain.utilities.arcee`, `DALMFilterType`, `langchain_community.utilities.arcee`, `DALMFilterType`], - [`langchain.utilities.arcee`, `DALMFilter`, `langchain_community.utilities.arcee`, `DALMFilter`], - [`langchain.utilities.arcee`, `ArceeDocumentSource`, `langchain_community.utilities.arcee`, `ArceeDocumentSource`], - [`langchain.utilities.arcee`, `ArceeDocument`, `langchain_community.utilities.arcee`, `ArceeDocument`], - [`langchain.utilities.arcee`, `ArceeDocumentAdapter`, `langchain_community.utilities.arcee`, `ArceeDocumentAdapter`], - [`langchain.utilities.arcee`, `ArceeWrapper`, `langchain_community.utilities`, `ArceeWrapper`], - [`langchain.utilities.arxiv`, `ArxivAPIWrapper`, `langchain_community.utilities`, `ArxivAPIWrapper`], - [`langchain.utilities.awslambda`, `LambdaWrapper`, `langchain_community.utilities`, `LambdaWrapper`], - [`langchain.utilities.bibtex`, `BibtexparserWrapper`, `langchain_community.utilities`, `BibtexparserWrapper`], - [`langchain.utilities.bing_search`, `BingSearchAPIWrapper`, `langchain_community.utilities`, `BingSearchAPIWrapper`], - [`langchain.utilities.brave_search`, `BraveSearchWrapper`, `langchain_community.utilities`, `BraveSearchWrapper`], - [`langchain.utilities.clickup`, `Component`, `langchain_community.utilities.clickup`, `Component`], - [`langchain.utilities.clickup`, `Task`, `langchain_community.utilities.clickup`, `Task`], - [`langchain.utilities.clickup`, `CUList`, `langchain_community.utilities.clickup`, `CUList`], - [`langchain.utilities.clickup`, `Member`, `langchain_community.utilities.clickup`, `Member`], - [`langchain.utilities.clickup`, `Team`, `langchain_community.utilities.clickup`, `Team`], - [`langchain.utilities.clickup`, `Space`, `langchain_community.utilities.clickup`, `Space`], - [`langchain.utilities.clickup`, `ClickupAPIWrapper`, `langchain_community.utilities.clickup`, `ClickupAPIWrapper`], - [`langchain.utilities.dalle_image_generator`, `DallEAPIWrapper`, `langchain_community.utilities.dalle_image_generator`, `DallEAPIWrapper`], - [`langchain.utilities.dataforseo_api_search`, `DataForSeoAPIWrapper`, `langchain_community.utilities.dataforseo_api_search`, `DataForSeoAPIWrapper`], - [`langchain.utilities.duckduckgo_search`, `DuckDuckGoSearchAPIWrapper`, `langchain_community.utilities`, `DuckDuckGoSearchAPIWrapper`], - [`langchain.utilities.github`, `GitHubAPIWrapper`, `langchain_community.utilities.github`, `GitHubAPIWrapper`], - [`langchain.utilities.gitlab`, `GitLabAPIWrapper`, `langchain_community.utilities.gitlab`, `GitLabAPIWrapper`], - [`langchain.utilities.golden_query`, `GoldenQueryAPIWrapper`, `langchain_community.utilities`, `GoldenQueryAPIWrapper`], - [`langchain.utilities.google_finance`, `GoogleFinanceAPIWrapper`, `langchain_community.utilities`, `GoogleFinanceAPIWrapper`], - [`langchain.utilities.google_jobs`, `GoogleJobsAPIWrapper`, `langchain_community.utilities`, `GoogleJobsAPIWrapper`], - [`langchain.utilities.google_lens`, `GoogleLensAPIWrapper`, `langchain_community.utilities`, `GoogleLensAPIWrapper`], - [`langchain.utilities.google_places_api`, `GooglePlacesAPIWrapper`, `langchain_community.utilities`, `GooglePlacesAPIWrapper`], - [`langchain.utilities.google_scholar`, `GoogleScholarAPIWrapper`, `langchain_community.utilities`, `GoogleScholarAPIWrapper`], - [`langchain.utilities.google_search`, `GoogleSearchAPIWrapper`, `langchain_community.utilities`, `GoogleSearchAPIWrapper`], - [`langchain.utilities.google_serper`, `GoogleSerperAPIWrapper`, `langchain_community.utilities`, `GoogleSerperAPIWrapper`], - [`langchain.utilities.google_trends`, `GoogleTrendsAPIWrapper`, `langchain_community.utilities`, `GoogleTrendsAPIWrapper`], - [`langchain.utilities.graphql`, `GraphQLAPIWrapper`, `langchain_community.utilities`, `GraphQLAPIWrapper`], - [`langchain.utilities.jira`, `JiraAPIWrapper`, `langchain_community.utilities`, `JiraAPIWrapper`], - [`langchain.utilities.max_compute`, `MaxComputeAPIWrapper`, `langchain_community.utilities`, `MaxComputeAPIWrapper`], - [`langchain.utilities.merriam_webster`, `MerriamWebsterAPIWrapper`, `langchain_community.utilities`, `MerriamWebsterAPIWrapper`], - [`langchain.utilities.metaphor_search`, `MetaphorSearchAPIWrapper`, `langchain_community.utilities`, `MetaphorSearchAPIWrapper`], - [`langchain.utilities.nasa`, `NasaAPIWrapper`, `langchain_community.utilities`, `NasaAPIWrapper`], - [`langchain.utilities.opaqueprompts`, `sanitize`, `langchain_community.utilities.opaqueprompts`, `sanitize`], - [`langchain.utilities.opaqueprompts`, `desanitize`, `langchain_community.utilities.opaqueprompts`, `desanitize`], - [`langchain.utilities.openapi`, `HTTPVerb`, `langchain_community.utilities.openapi`, `HTTPVerb`], - [`langchain.utilities.openapi`, `OpenAPISpec`, `langchain_community.tools`, `OpenAPISpec`], - [`langchain.utilities.openweathermap`, `OpenWeatherMapAPIWrapper`, `langchain_community.utilities`, `OpenWeatherMapAPIWrapper`], - [`langchain.utilities.outline`, `OutlineAPIWrapper`, `langchain_community.utilities`, `OutlineAPIWrapper`], - [`langchain.utilities.portkey`, `Portkey`, `langchain_community.utilities`, `Portkey`], - [`langchain.utilities.powerbi`, `PowerBIDataset`, `langchain_community.utilities`, `PowerBIDataset`], - [`langchain.utilities.pubmed`, `PubMedAPIWrapper`, `langchain_community.utilities`, `PubMedAPIWrapper`], - [`langchain.utilities.python`, `PythonREPL`, `langchain_community.utilities`, `PythonREPL`], - [`langchain.utilities.reddit_search`, `RedditSearchAPIWrapper`, `langchain_community.utilities.reddit_search`, `RedditSearchAPIWrapper`], - [`langchain.utilities.redis`, `TokenEscaper`, `langchain_community.utilities.redis`, `TokenEscaper`], - [`langchain.utilities.redis`, `check_redis_module_exist`, `langchain_community.utilities.redis`, `check_redis_module_exist`], - [`langchain.utilities.redis`, `get_client`, `langchain_community.utilities.redis`, `get_client`], - [`langchain.utilities.requests`, `Requests`, `langchain_community.utilities`, `Requests`], - [`langchain.utilities.requests`, `RequestsWrapper`, `langchain_community.utilities`, `TextRequestsWrapper`], - [`langchain.utilities.scenexplain`, `SceneXplainAPIWrapper`, `langchain_community.utilities`, `SceneXplainAPIWrapper`], - [`langchain.utilities.searchapi`, `SearchApiAPIWrapper`, `langchain_community.utilities`, `SearchApiAPIWrapper`], - [`langchain.utilities.searx_search`, `SearxResults`, `langchain_community.utilities.searx_search`, `SearxResults`], - [`langchain.utilities.searx_search`, `SearxSearchWrapper`, `langchain_community.utilities`, `SearxSearchWrapper`], - [`langchain.utilities.serpapi`, `HiddenPrints`, `langchain_community.utilities.serpapi`, `HiddenPrints`], - [`langchain.utilities.serpapi`, `SerpAPIWrapper`, `langchain_community.utilities`, `SerpAPIWrapper`], - [`langchain.utilities.spark_sql`, `SparkSQL`, `langchain_community.utilities`, `SparkSQL`], - [`langchain.utilities.sql_database`, `truncate_word`, `langchain_community.utilities.sql_database`, `truncate_word`], - [`langchain.utilities.sql_database`, `SQLDatabase`, `langchain_community.utilities`, `SQLDatabase`], - [`langchain.utilities.stackexchange`, `StackExchangeAPIWrapper`, `langchain_community.utilities`, `StackExchangeAPIWrapper`], - [`langchain.utilities.steam`, `SteamWebAPIWrapper`, `langchain_community.utilities`, `SteamWebAPIWrapper`], - [`langchain.utilities.tavily_search`, `TavilySearchAPIWrapper`, `langchain_community.utilities.tavily_search`, `TavilySearchAPIWrapper`], - [`langchain.utilities.tensorflow_datasets`, `TensorflowDatasets`, `langchain_community.utilities`, `TensorflowDatasets`], - [`langchain.utilities.twilio`, `TwilioAPIWrapper`, `langchain_community.utilities`, `TwilioAPIWrapper`], - [`langchain.utilities.vertexai`, `create_retry_decorator`, `langchain_community.utilities.vertexai`, `create_retry_decorator`], - [`langchain.utilities.vertexai`, `raise_vertex_import_error`, `langchain_community.utilities.vertexai`, `raise_vertex_import_error`], - [`langchain.utilities.vertexai`, `init_vertexai`, `langchain_community.utilities.vertexai`, `init_vertexai`], - [`langchain.utilities.vertexai`, `get_client_info`, `langchain_community.utilities.vertexai`, `get_client_info`], - [`langchain.utilities.wikipedia`, `WikipediaAPIWrapper`, `langchain_community.utilities`, `WikipediaAPIWrapper`], - [`langchain.utilities.wolfram_alpha`, `WolframAlphaAPIWrapper`, `langchain_community.utilities`, `WolframAlphaAPIWrapper`], - [`langchain.utilities.zapier`, `ZapierNLAWrapper`, `langchain_community.utilities`, `ZapierNLAWrapper`], - [`langchain.utils`, `cosine_similarity`, `langchain_community.utils.math`, `cosine_similarity`], - [`langchain.utils`, `cosine_similarity_top_k`, `langchain_community.utils.math`, `cosine_similarity_top_k`], - [`langchain.utils.ernie_functions`, `FunctionDescription`, `langchain_community.utils.ernie_functions`, `FunctionDescription`], - [`langchain.utils.ernie_functions`, `ToolDescription`, `langchain_community.utils.ernie_functions`, `ToolDescription`], - [`langchain.utils.ernie_functions`, `convert_pydantic_to_ernie_function`, `langchain_community.utils.ernie_functions`, `convert_pydantic_to_ernie_function`], - [`langchain.utils.ernie_functions`, `convert_pydantic_to_ernie_tool`, `langchain_community.utils.ernie_functions`, `convert_pydantic_to_ernie_tool`], - [`langchain.utils.math`, `cosine_similarity`, `langchain_community.utils.math`, `cosine_similarity`], - [`langchain.utils.math`, `cosine_similarity_top_k`, `langchain_community.utils.math`, `cosine_similarity_top_k`], - [`langchain.utils.openai`, `is_openai_v1`, `langchain_community.utils.openai`, `is_openai_v1`], - [`langchain.vectorstores`, `AlibabaCloudOpenSearch`, `langchain_community.vectorstores`, `AlibabaCloudOpenSearch`], - [`langchain.vectorstores`, `AlibabaCloudOpenSearchSettings`, `langchain_community.vectorstores`, `AlibabaCloudOpenSearchSettings`], - [`langchain.vectorstores`, `AnalyticDB`, `langchain_community.vectorstores`, `AnalyticDB`], - [`langchain.vectorstores`, `Annoy`, `langchain_community.vectorstores`, `Annoy`], - [`langchain.vectorstores`, `AstraDB`, `langchain_community.vectorstores`, `AstraDB`], - [`langchain.vectorstores`, `AtlasDB`, `langchain_community.vectorstores`, `AtlasDB`], - [`langchain.vectorstores`, `AwaDB`, `langchain_community.vectorstores`, `AwaDB`], - [`langchain.vectorstores`, `AzureCosmosDBVectorSearch`, `langchain_community.vectorstores`, `AzureCosmosDBVectorSearch`], - [`langchain.vectorstores`, `AzureSearch`, `langchain_community.vectorstores`, `AzureSearch`], - [`langchain.vectorstores`, `Bagel`, `langchain_community.vectorstores`, `Bagel`], - [`langchain.vectorstores`, `Cassandra`, `langchain_community.vectorstores`, `Cassandra`], - [`langchain.vectorstores`, `Chroma`, `langchain_community.vectorstores`, `Chroma`], - [`langchain.vectorstores`, `Clarifai`, `langchain_community.vectorstores`, `Clarifai`], - [`langchain.vectorstores`, `Clickhouse`, `langchain_community.vectorstores`, `Clickhouse`], - [`langchain.vectorstores`, `ClickhouseSettings`, `langchain_community.vectorstores`, `ClickhouseSettings`], - [`langchain.vectorstores`, `DashVector`, `langchain_community.vectorstores`, `DashVector`], - [`langchain.vectorstores`, `DatabricksVectorSearch`, `langchain_community.vectorstores`, `DatabricksVectorSearch`], - [`langchain.vectorstores`, `DeepLake`, `langchain_community.vectorstores`, `DeepLake`], - [`langchain.vectorstores`, `Dingo`, `langchain_community.vectorstores`, `Dingo`], - [`langchain.vectorstores`, `DocArrayHnswSearch`, `langchain_community.vectorstores`, `DocArrayHnswSearch`], - [`langchain.vectorstores`, `DocArrayInMemorySearch`, `langchain_community.vectorstores`, `DocArrayInMemorySearch`], - [`langchain.vectorstores`, `DuckDB`, `langchain_community.vectorstores`, `DuckDB`], - [`langchain.vectorstores`, `EcloudESVectorStore`, `langchain_community.vectorstores`, `EcloudESVectorStore`], - [`langchain.vectorstores`, `ElasticKnnSearch`, `langchain_community.vectorstores`, `ElasticKnnSearch`], - [`langchain.vectorstores`, `ElasticsearchStore`, `langchain_community.vectorstores`, `ElasticsearchStore`], - [`langchain.vectorstores`, `ElasticVectorSearch`, `langchain_community.vectorstores`, `ElasticVectorSearch`], - [`langchain.vectorstores`, `Epsilla`, `langchain_community.vectorstores`, `Epsilla`], - [`langchain.vectorstores`, `FAISS`, `langchain_community.vectorstores`, `FAISS`], - [`langchain.vectorstores`, `Hologres`, `langchain_community.vectorstores`, `Hologres`], - [`langchain.vectorstores`, `LanceDB`, `langchain_community.vectorstores`, `LanceDB`], - [`langchain.vectorstores`, `LLMRails`, `langchain_community.vectorstores`, `LLMRails`], - [`langchain.vectorstores`, `Marqo`, `langchain_community.vectorstores`, `Marqo`], - [`langchain.vectorstores`, `MatchingEngine`, `langchain_community.vectorstores`, `MatchingEngine`], - [`langchain.vectorstores`, `Meilisearch`, `langchain_community.vectorstores`, `Meilisearch`], - [`langchain.vectorstores`, `Milvus`, `langchain_community.vectorstores`, `Milvus`], - [`langchain.vectorstores`, `MomentoVectorIndex`, `langchain_community.vectorstores`, `MomentoVectorIndex`], - [`langchain.vectorstores`, `MongoDBAtlasVectorSearch`, `langchain_community.vectorstores`, `MongoDBAtlasVectorSearch`], - [`langchain.vectorstores`, `MyScale`, `langchain_community.vectorstores`, `MyScale`], - [`langchain.vectorstores`, `MyScaleSettings`, `langchain_community.vectorstores`, `MyScaleSettings`], - [`langchain.vectorstores`, `Neo4jVector`, `langchain_community.vectorstores`, `Neo4jVector`], - [`langchain.vectorstores`, `NeuralDBClientVectorStore`, `langchain_community.vectorstores`, `NeuralDBClientVectorStore`], - [`langchain.vectorstores`, `NeuralDBVectorStore`, `langchain_community.vectorstores`, `NeuralDBVectorStore`], - [`langchain.vectorstores`, `OpenSearchVectorSearch`, `langchain_community.vectorstores`, `OpenSearchVectorSearch`], - [`langchain.vectorstores`, `PGEmbedding`, `langchain_community.vectorstores`, `PGEmbedding`], - [`langchain.vectorstores`, `PGVector`, `langchain_community.vectorstores`, `PGVector`], - [`langchain.vectorstores`, `Pinecone`, `langchain_community.vectorstores`, `Pinecone`], - [`langchain.vectorstores`, `Qdrant`, `langchain_community.vectorstores`, `Qdrant`], - [`langchain.vectorstores`, `Redis`, `langchain_community.vectorstores`, `Redis`], - [`langchain.vectorstores`, `Rockset`, `langchain_community.vectorstores`, `Rockset`], - [`langchain.vectorstores`, `ScaNN`, `langchain_community.vectorstores`, `ScaNN`], - [`langchain.vectorstores`, `SemaDB`, `langchain_community.vectorstores`, `SemaDB`], - [`langchain.vectorstores`, `SingleStoreDB`, `langchain_community.vectorstores`, `SingleStoreDB`], - [`langchain.vectorstores`, `SKLearnVectorStore`, `langchain_community.vectorstores`, `SKLearnVectorStore`], - [`langchain.vectorstores`, `SQLiteVSS`, `langchain_community.vectorstores`, `SQLiteVSS`], - [`langchain.vectorstores`, `StarRocks`, `langchain_community.vectorstores`, `StarRocks`], - [`langchain.vectorstores`, `SupabaseVectorStore`, `langchain_community.vectorstores`, `SupabaseVectorStore`], - [`langchain.vectorstores`, `Tair`, `langchain_community.vectorstores`, `Tair`], - [`langchain.vectorstores`, `TencentVectorDB`, `langchain_community.vectorstores`, `TencentVectorDB`], - [`langchain.vectorstores`, `Tigris`, `langchain_community.vectorstores`, `Tigris`], - [`langchain.vectorstores`, `TileDB`, `langchain_community.vectorstores`, `TileDB`], - [`langchain.vectorstores`, `TimescaleVector`, `langchain_community.vectorstores`, `TimescaleVector`], - [`langchain.vectorstores`, `Typesense`, `langchain_community.vectorstores`, `Typesense`], - [`langchain.vectorstores`, `USearch`, `langchain_community.vectorstores`, `USearch`], - [`langchain.vectorstores`, `Vald`, `langchain_community.vectorstores`, `Vald`], - [`langchain.vectorstores`, `Vearch`, `langchain_community.vectorstores`, `Vearch`], - [`langchain.vectorstores`, `Vectara`, `langchain_community.vectorstores`, `Vectara`], - [`langchain.vectorstores`, `VespaStore`, `langchain_community.vectorstores`, `VespaStore`], - [`langchain.vectorstores`, `Weaviate`, `langchain_community.vectorstores`, `Weaviate`], - [`langchain.vectorstores`, `Yellowbrick`, `langchain_community.vectorstores`, `Yellowbrick`], - [`langchain.vectorstores`, `ZepVectorStore`, `langchain_community.vectorstores`, `ZepVectorStore`], - [`langchain.vectorstores`, `Zilliz`, `langchain_community.vectorstores`, `Zilliz`], - [`langchain.vectorstores.alibabacloud_opensearch`, `AlibabaCloudOpenSearchSettings`, `langchain_community.vectorstores`, `AlibabaCloudOpenSearchSettings`], - [`langchain.vectorstores.alibabacloud_opensearch`, `AlibabaCloudOpenSearch`, `langchain_community.vectorstores`, `AlibabaCloudOpenSearch`], - [`langchain.vectorstores.analyticdb`, `AnalyticDB`, `langchain_community.vectorstores`, `AnalyticDB`], - [`langchain.vectorstores.annoy`, `Annoy`, `langchain_community.vectorstores`, `Annoy`], - [`langchain.vectorstores.astradb`, `AstraDB`, `langchain_community.vectorstores`, `AstraDB`], - [`langchain.vectorstores.atlas`, `AtlasDB`, `langchain_community.vectorstores`, `AtlasDB`], - [`langchain.vectorstores.awadb`, `AwaDB`, `langchain_community.vectorstores`, `AwaDB`], - [`langchain.vectorstores.azure_cosmos_db`, `CosmosDBSimilarityType`, `langchain_community.vectorstores.azure_cosmos_db`, `CosmosDBSimilarityType`], - [`langchain.vectorstores.azure_cosmos_db`, `AzureCosmosDBVectorSearch`, `langchain_community.vectorstores`, `AzureCosmosDBVectorSearch`], - [`langchain.vectorstores.azuresearch`, `AzureSearch`, `langchain_community.vectorstores`, `AzureSearch`], - [`langchain.vectorstores.azuresearch`, `AzureSearchVectorStoreRetriever`, `langchain_community.vectorstores.azuresearch`, `AzureSearchVectorStoreRetriever`], - [`langchain.vectorstores.bageldb`, `Bagel`, `langchain_community.vectorstores`, `Bagel`], - [`langchain.vectorstores.baiducloud_vector_search`, `BESVectorStore`, `langchain_community.vectorstores`, `BESVectorStore`], - [`langchain.vectorstores.cassandra`, `Cassandra`, `langchain_community.vectorstores`, `Cassandra`], - [`langchain.vectorstores.chroma`, `Chroma`, `langchain_community.vectorstores`, `Chroma`], - [`langchain.vectorstores.clarifai`, `Clarifai`, `langchain_community.vectorstores`, `Clarifai`], - [`langchain.vectorstores.clickhouse`, `ClickhouseSettings`, `langchain_community.vectorstores`, `ClickhouseSettings`], - [`langchain.vectorstores.clickhouse`, `Clickhouse`, `langchain_community.vectorstores`, `Clickhouse`], - [`langchain.vectorstores.dashvector`, `DashVector`, `langchain_community.vectorstores`, `DashVector`], - [`langchain.vectorstores.databricks_vector_search`, `DatabricksVectorSearch`, `langchain_community.vectorstores`, `DatabricksVectorSearch`], - [`langchain.vectorstores.deeplake`, `DeepLake`, `langchain_community.vectorstores`, `DeepLake`], - [`langchain.vectorstores.dingo`, `Dingo`, `langchain_community.vectorstores`, `Dingo`], - [`langchain.vectorstores.docarray`, `DocArrayHnswSearch`, `langchain_community.vectorstores`, `DocArrayHnswSearch`], - [`langchain.vectorstores.docarray`, `DocArrayInMemorySearch`, `langchain_community.vectorstores`, `DocArrayInMemorySearch`], - [`langchain.vectorstores.docarray.base`, `DocArrayIndex`, `langchain_community.vectorstores.docarray.base`, `DocArrayIndex`], - [`langchain.vectorstores.docarray.hnsw`, `DocArrayHnswSearch`, `langchain_community.vectorstores`, `DocArrayHnswSearch`], - [`langchain.vectorstores.docarray.in_memory`, `DocArrayInMemorySearch`, `langchain_community.vectorstores`, `DocArrayInMemorySearch`], - [`langchain.vectorstores.elastic_vector_search`, `ElasticVectorSearch`, `langchain_community.vectorstores`, `ElasticVectorSearch`], - [`langchain.vectorstores.elastic_vector_search`, `ElasticKnnSearch`, `langchain_community.vectorstores`, `ElasticKnnSearch`], - [`langchain.vectorstores.elasticsearch`, `BaseRetrievalStrategy`, `langchain_community.vectorstores.elasticsearch`, `BaseRetrievalStrategy`], - [`langchain.vectorstores.elasticsearch`, `ApproxRetrievalStrategy`, `langchain_community.vectorstores.elasticsearch`, `ApproxRetrievalStrategy`], - [`langchain.vectorstores.elasticsearch`, `ExactRetrievalStrategy`, `langchain_community.vectorstores.elasticsearch`, `ExactRetrievalStrategy`], - [`langchain.vectorstores.elasticsearch`, `SparseRetrievalStrategy`, `langchain_community.vectorstores.elasticsearch`, `SparseRetrievalStrategy`], - [`langchain.vectorstores.elasticsearch`, `ElasticsearchStore`, `langchain_community.vectorstores`, `ElasticsearchStore`], - [`langchain.vectorstores.epsilla`, `Epsilla`, `langchain_community.vectorstores`, `Epsilla`], - [`langchain.vectorstores.faiss`, `FAISS`, `langchain_community.vectorstores`, `FAISS`], - [`langchain.vectorstores.hippo`, `Hippo`, `langchain_community.vectorstores.hippo`, `Hippo`], - [`langchain.vectorstores.hologres`, `Hologres`, `langchain_community.vectorstores`, `Hologres`], - [`langchain.vectorstores.lancedb`, `LanceDB`, `langchain_community.vectorstores`, `LanceDB`], - [`langchain.vectorstores.llm_rails`, `LLMRails`, `langchain_community.vectorstores`, `LLMRails`], - [`langchain.vectorstores.llm_rails`, `LLMRailsRetriever`, `langchain_community.vectorstores.llm_rails`, `LLMRailsRetriever`], - [`langchain.vectorstores.marqo`, `Marqo`, `langchain_community.vectorstores`, `Marqo`], - [`langchain.vectorstores.matching_engine`, `MatchingEngine`, `langchain_community.vectorstores`, `MatchingEngine`], - [`langchain.vectorstores.meilisearch`, `Meilisearch`, `langchain_community.vectorstores`, `Meilisearch`], - [`langchain.vectorstores.milvus`, `Milvus`, `langchain_community.vectorstores`, `Milvus`], - [`langchain.vectorstores.momento_vector_index`, `MomentoVectorIndex`, `langchain_community.vectorstores`, `MomentoVectorIndex`], - [`langchain.vectorstores.mongodb_atlas`, `MongoDBAtlasVectorSearch`, `langchain_community.vectorstores`, `MongoDBAtlasVectorSearch`], - [`langchain.vectorstores.myscale`, `MyScaleSettings`, `langchain_community.vectorstores`, `MyScaleSettings`], - [`langchain.vectorstores.myscale`, `MyScale`, `langchain_community.vectorstores`, `MyScale`], - [`langchain.vectorstores.myscale`, `MyScaleWithoutJSON`, `langchain_community.vectorstores.myscale`, `MyScaleWithoutJSON`], - [`langchain.vectorstores.neo4j_vector`, `SearchType`, `langchain_community.vectorstores.neo4j_vector`, `SearchType`], - [`langchain.vectorstores.neo4j_vector`, `Neo4jVector`, `langchain_community.vectorstores`, `Neo4jVector`], - [`langchain.vectorstores.nucliadb`, `NucliaDB`, `langchain_community.vectorstores.nucliadb`, `NucliaDB`], - [`langchain.vectorstores.opensearch_vector_search`, `OpenSearchVectorSearch`, `langchain_community.vectorstores`, `OpenSearchVectorSearch`], - [`langchain.vectorstores.pgembedding`, `CollectionStore`, `langchain_community.vectorstores.pgembedding`, `CollectionStore`], - [`langchain.vectorstores.pgembedding`, `EmbeddingStore`, `langchain_community.vectorstores.pgembedding`, `EmbeddingStore`], - [`langchain.vectorstores.pgembedding`, `QueryResult`, `langchain_community.vectorstores.pgembedding`, `QueryResult`], - [`langchain.vectorstores.pgembedding`, `PGEmbedding`, `langchain_community.vectorstores`, `PGEmbedding`], - [`langchain.vectorstores.pgvecto_rs`, `PGVecto_rs`, `langchain_community.vectorstores.pgvecto_rs`, `PGVecto_rs`], - [`langchain.vectorstores.pgvector`, `DistanceStrategy`, `langchain_community.vectorstores.pgvector`, `DistanceStrategy`], - [`langchain.vectorstores.pgvector`, `PGVector`, `langchain_community.vectorstores`, `PGVector`], - [`langchain.vectorstores.pinecone`, `Pinecone`, `langchain_community.vectorstores`, `Pinecone`], - [`langchain.vectorstores.qdrant`, `QdrantException`, `langchain_community.vectorstores.qdrant`, `QdrantException`], - [`langchain.vectorstores.qdrant`, `Qdrant`, `langchain_community.vectorstores`, `Qdrant`], - [`langchain.vectorstores.redis`, `Redis`, `langchain_community.vectorstores`, `Redis`], - [`langchain.vectorstores.redis`, `RedisFilter`, `langchain_community.vectorstores.redis.filters`, `RedisFilter`], - [`langchain.vectorstores.redis`, `RedisTag`, `langchain_community.vectorstores.redis.filters`, `RedisTag`], - [`langchain.vectorstores.redis`, `RedisText`, `langchain_community.vectorstores.redis.filters`, `RedisText`], - [`langchain.vectorstores.redis`, `RedisNum`, `langchain_community.vectorstores.redis.filters`, `RedisNum`], - [`langchain.vectorstores.redis`, `RedisVectorStoreRetriever`, `langchain_community.vectorstores.redis.base`, `RedisVectorStoreRetriever`], - [`langchain.vectorstores.redis.base`, `check_index_exists`, `langchain_community.vectorstores.redis.base`, `check_index_exists`], - [`langchain.vectorstores.redis.base`, `Redis`, `langchain_community.vectorstores`, `Redis`], - [`langchain.vectorstores.redis.base`, `RedisVectorStoreRetriever`, `langchain_community.vectorstores.redis.base`, `RedisVectorStoreRetriever`], - [`langchain.vectorstores.redis.filters`, `RedisFilterOperator`, `langchain_community.vectorstores.redis.filters`, `RedisFilterOperator`], - [`langchain.vectorstores.redis.filters`, `RedisFilter`, `langchain_community.vectorstores.redis.filters`, `RedisFilter`], - [`langchain.vectorstores.redis.filters`, `RedisFilterField`, `langchain_community.vectorstores.redis.filters`, `RedisFilterField`], - [`langchain.vectorstores.redis.filters`, `check_operator_misuse`, `langchain_community.vectorstores.redis.filters`, `check_operator_misuse`], - [`langchain.vectorstores.redis.filters`, `RedisTag`, `langchain_community.vectorstores.redis.filters`, `RedisTag`], - [`langchain.vectorstores.redis.filters`, `RedisNum`, `langchain_community.vectorstores.redis.filters`, `RedisNum`], - [`langchain.vectorstores.redis.filters`, `RedisText`, `langchain_community.vectorstores.redis.filters`, `RedisText`], - [`langchain.vectorstores.redis.filters`, `RedisFilterExpression`, `langchain_community.vectorstores.redis.filters`, `RedisFilterExpression`], - [`langchain.vectorstores.redis.schema`, `RedisDistanceMetric`, `langchain_community.vectorstores.redis.schema`, `RedisDistanceMetric`], - [`langchain.vectorstores.redis.schema`, `RedisField`, `langchain_community.vectorstores.redis.schema`, `RedisField`], - [`langchain.vectorstores.redis.schema`, `TextFieldSchema`, `langchain_community.vectorstores.redis.schema`, `TextFieldSchema`], - [`langchain.vectorstores.redis.schema`, `TagFieldSchema`, `langchain_community.vectorstores.redis.schema`, `TagFieldSchema`], - [`langchain.vectorstores.redis.schema`, `NumericFieldSchema`, `langchain_community.vectorstores.redis.schema`, `NumericFieldSchema`], - [`langchain.vectorstores.redis.schema`, `RedisVectorField`, `langchain_community.vectorstores.redis.schema`, `RedisVectorField`], - [`langchain.vectorstores.redis.schema`, `FlatVectorField`, `langchain_community.vectorstores.redis.schema`, `FlatVectorField`], - [`langchain.vectorstores.redis.schema`, `HNSWVectorField`, `langchain_community.vectorstores.redis.schema`, `HNSWVectorField`], - [`langchain.vectorstores.redis.schema`, `RedisModel`, `langchain_community.vectorstores.redis.schema`, `RedisModel`], - [`langchain.vectorstores.redis.schema`, `read_schema`, `langchain_community.vectorstores.redis.schema`, `read_schema`], - [`langchain.vectorstores.rocksetdb`, `Rockset`, `langchain_community.vectorstores`, `Rockset`], - [`langchain.vectorstores.scann`, `ScaNN`, `langchain_community.vectorstores`, `ScaNN`], - [`langchain.vectorstores.semadb`, `SemaDB`, `langchain_community.vectorstores`, `SemaDB`], - [`langchain.vectorstores.singlestoredb`, `SingleStoreDB`, `langchain_community.vectorstores`, `SingleStoreDB`], - [`langchain.vectorstores.sklearn`, `BaseSerializer`, `langchain_community.vectorstores.sklearn`, `BaseSerializer`], - [`langchain.vectorstores.sklearn`, `JsonSerializer`, `langchain_community.vectorstores.sklearn`, `JsonSerializer`], - [`langchain.vectorstores.sklearn`, `BsonSerializer`, `langchain_community.vectorstores.sklearn`, `BsonSerializer`], - [`langchain.vectorstores.sklearn`, `ParquetSerializer`, `langchain_community.vectorstores.sklearn`, `ParquetSerializer`], - [`langchain.vectorstores.sklearn`, `SKLearnVectorStoreException`, `langchain_community.vectorstores.sklearn`, `SKLearnVectorStoreException`], - [`langchain.vectorstores.sklearn`, `SKLearnVectorStore`, `langchain_community.vectorstores`, `SKLearnVectorStore`], - [`langchain.vectorstores.sqlitevss`, `SQLiteVSS`, `langchain_community.vectorstores`, `SQLiteVSS`], - [`langchain.vectorstores.starrocks`, `StarRocksSettings`, `langchain_community.vectorstores.starrocks`, `StarRocksSettings`], - [`langchain.vectorstores.starrocks`, `StarRocks`, `langchain_community.vectorstores`, `StarRocks`], - [`langchain.vectorstores.supabase`, `SupabaseVectorStore`, `langchain_community.vectorstores`, `SupabaseVectorStore`], - [`langchain.vectorstores.tair`, `Tair`, `langchain_community.vectorstores`, `Tair`], - [`langchain.vectorstores.tencentvectordb`, `ConnectionParams`, `langchain_community.vectorstores.tencentvectordb`, `ConnectionParams`], - [`langchain.vectorstores.tencentvectordb`, `IndexParams`, `langchain_community.vectorstores.tencentvectordb`, `IndexParams`], - [`langchain.vectorstores.tencentvectordb`, `TencentVectorDB`, `langchain_community.vectorstores`, `TencentVectorDB`], - [`langchain.vectorstores.tigris`, `Tigris`, `langchain_community.vectorstores`, `Tigris`], - [`langchain.vectorstores.tiledb`, `TileDB`, `langchain_community.vectorstores`, `TileDB`], - [`langchain.vectorstores.timescalevector`, `TimescaleVector`, `langchain_community.vectorstores`, `TimescaleVector`], - [`langchain.vectorstores.typesense`, `Typesense`, `langchain_community.vectorstores`, `Typesense`], - [`langchain.vectorstores.usearch`, `USearch`, `langchain_community.vectorstores`, `USearch`], - [`langchain.vectorstores.utils`, `DistanceStrategy`, `langchain_community.vectorstores.utils`, `DistanceStrategy`], - [`langchain.vectorstores.utils`, `maximal_marginal_relevance`, `langchain_community.vectorstores.utils`, `maximal_marginal_relevance`], - [`langchain.vectorstores.utils`, `filter_complex_metadata`, `langchain_community.vectorstores.utils`, `filter_complex_metadata`], - [`langchain.vectorstores.vald`, `Vald`, `langchain_community.vectorstores`, `Vald`], - [`langchain.vectorstores.vearch`, `Vearch`, `langchain_community.vectorstores`, `Vearch`], - [`langchain.vectorstores.vectara`, `Vectara`, `langchain_community.vectorstores`, `Vectara`], - [`langchain.vectorstores.vectara`, `VectaraRetriever`, `langchain_community.vectorstores.vectara`, `VectaraRetriever`], - [`langchain.vectorstores.vespa`, `VespaStore`, `langchain_community.vectorstores`, `VespaStore`], - [`langchain.vectorstores.weaviate`, `Weaviate`, `langchain_community.vectorstores`, `Weaviate`], - [`langchain.vectorstores.xata`, `XataVectorStore`, `langchain_community.vectorstores.xata`, `XataVectorStore`], - [`langchain.vectorstores.yellowbrick`, `Yellowbrick`, `langchain_community.vectorstores`, `Yellowbrick`], - [`langchain.vectorstores.zep`, `CollectionConfig`, `langchain_community.vectorstores.zep`, `CollectionConfig`], - [`langchain.vectorstores.zep`, `ZepVectorStore`, `langchain_community.vectorstores`, `ZepVectorStore`], - [`langchain.vectorstores.zilliz`, `Zilliz`, `langchain_community.vectorstores`, `Zilliz`] - ]) -} - -// Add this for invoking directly -langchain_migrate_langchain_to_langchain_community() diff --git a/libs/cli/langchain_cli/namespaces/migrate/.grit/patterns/langchain_to_textsplitters.grit b/libs/cli/langchain_cli/namespaces/migrate/.grit/patterns/langchain_to_textsplitters.grit deleted file mode 100644 index bf51472d9fa..00000000000 --- a/libs/cli/langchain_cli/namespaces/migrate/.grit/patterns/langchain_to_textsplitters.grit +++ /dev/null @@ -1,31 +0,0 @@ - -language python - -// This migration is generated automatically - do not manually edit this file -pattern langchain_migrate_langchain_to_textsplitters() { - find_replace_imports(list=[ - [`langchain.text_splitter`, `TokenTextSplitter`, `langchain_text_splitters`, `TokenTextSplitter`], - [`langchain.text_splitter`, `TextSplitter`, `langchain_text_splitters`, `TextSplitter`], - [`langchain.text_splitter`, `Tokenizer`, `langchain_text_splitters`, `Tokenizer`], - [`langchain.text_splitter`, `Language`, `langchain_text_splitters`, `Language`], - [`langchain.text_splitter`, `RecursiveCharacterTextSplitter`, `langchain_text_splitters`, `RecursiveCharacterTextSplitter`], - [`langchain.text_splitter`, `RecursiveJsonSplitter`, `langchain_text_splitters`, `RecursiveJsonSplitter`], - [`langchain.text_splitter`, `LatexTextSplitter`, `langchain_text_splitters`, `LatexTextSplitter`], - [`langchain.text_splitter`, `PythonCodeTextSplitter`, `langchain_text_splitters`, `PythonCodeTextSplitter`], - [`langchain.text_splitter`, `KonlpyTextSplitter`, `langchain_text_splitters`, `KonlpyTextSplitter`], - [`langchain.text_splitter`, `SpacyTextSplitter`, `langchain_text_splitters`, `SpacyTextSplitter`], - [`langchain.text_splitter`, `NLTKTextSplitter`, `langchain_text_splitters`, `NLTKTextSplitter`], - [`langchain.text_splitter`, `split_text_on_tokens`, `langchain_text_splitters`, `split_text_on_tokens`], - [`langchain.text_splitter`, `SentenceTransformersTokenTextSplitter`, `langchain_text_splitters`, `SentenceTransformersTokenTextSplitter`], - [`langchain.text_splitter`, `ElementType`, `langchain_text_splitters`, `ElementType`], - [`langchain.text_splitter`, `HeaderType`, `langchain_text_splitters`, `HeaderType`], - [`langchain.text_splitter`, `LineType`, `langchain_text_splitters`, `LineType`], - [`langchain.text_splitter`, `HTMLHeaderTextSplitter`, `langchain_text_splitters`, `HTMLHeaderTextSplitter`], - [`langchain.text_splitter`, `MarkdownHeaderTextSplitter`, `langchain_text_splitters`, `MarkdownHeaderTextSplitter`], - [`langchain.text_splitter`, `MarkdownTextSplitter`, `langchain_text_splitters`, `MarkdownTextSplitter`], - [`langchain.text_splitter`, `CharacterTextSplitter`, `langchain_text_splitters`, `CharacterTextSplitter`] - ]) -} - -// Add this for invoking directly -langchain_migrate_langchain_to_textsplitters() diff --git a/libs/cli/langchain_cli/namespaces/migrate/.grit/patterns/langchain_to_textsplitters.json b/libs/cli/langchain_cli/namespaces/migrate/.grit/patterns/langchain_to_textsplitters.json deleted file mode 100644 index b3b7b0b19c0..00000000000 --- a/libs/cli/langchain_cli/namespaces/migrate/.grit/patterns/langchain_to_textsplitters.json +++ /dev/null @@ -1,70 +0,0 @@ -[ - [ - "langchain.text_splitter.TokenTextSplitter", - "langchain_text_splitters.TokenTextSplitter" - ], - [ - "langchain.text_splitter.TextSplitter", - "langchain_text_splitters.TextSplitter" - ], - ["langchain.text_splitter.Tokenizer", "langchain_text_splitters.Tokenizer"], - ["langchain.text_splitter.Language", "langchain_text_splitters.Language"], - [ - "langchain.text_splitter.RecursiveCharacterTextSplitter", - "langchain_text_splitters.RecursiveCharacterTextSplitter" - ], - [ - "langchain.text_splitter.RecursiveJsonSplitter", - "langchain_text_splitters.RecursiveJsonSplitter" - ], - [ - "langchain.text_splitter.LatexTextSplitter", - "langchain_text_splitters.LatexTextSplitter" - ], - [ - "langchain.text_splitter.PythonCodeTextSplitter", - "langchain_text_splitters.PythonCodeTextSplitter" - ], - [ - "langchain.text_splitter.KonlpyTextSplitter", - "langchain_text_splitters.KonlpyTextSplitter" - ], - [ - "langchain.text_splitter.SpacyTextSplitter", - "langchain_text_splitters.SpacyTextSplitter" - ], - [ - "langchain.text_splitter.NLTKTextSplitter", - "langchain_text_splitters.NLTKTextSplitter" - ], - [ - "langchain.text_splitter.split_text_on_tokens", - "langchain_text_splitters.split_text_on_tokens" - ], - [ - "langchain.text_splitter.SentenceTransformersTokenTextSplitter", - "langchain_text_splitters.SentenceTransformersTokenTextSplitter" - ], - [ - "langchain.text_splitter.ElementType", - "langchain_text_splitters.ElementType" - ], - ["langchain.text_splitter.HeaderType", "langchain_text_splitters.HeaderType"], - ["langchain.text_splitter.LineType", "langchain_text_splitters.LineType"], - [ - "langchain.text_splitter.HTMLHeaderTextSplitter", - "langchain_text_splitters.HTMLHeaderTextSplitter" - ], - [ - "langchain.text_splitter.MarkdownHeaderTextSplitter", - "langchain_text_splitters.MarkdownHeaderTextSplitter" - ], - [ - "langchain.text_splitter.MarkdownTextSplitter", - "langchain_text_splitters.MarkdownTextSplitter" - ], - [ - "langchain.text_splitter.CharacterTextSplitter", - "langchain_text_splitters.CharacterTextSplitter" - ] -] diff --git a/libs/cli/langchain_cli/namespaces/migrate/.grit/patterns/openai.grit b/libs/cli/langchain_cli/namespaces/migrate/.grit/patterns/openai.grit deleted file mode 100644 index c639f5f38ab..00000000000 --- a/libs/cli/langchain_cli/namespaces/migrate/.grit/patterns/openai.grit +++ /dev/null @@ -1,23 +0,0 @@ - -language python - -// This migration is generated automatically - do not manually edit this file -pattern langchain_migrate_openai() { - find_replace_imports(list=[ - [`langchain_community.embeddings.openai`, `OpenAIEmbeddings`, `langchain_openai`, `OpenAIEmbeddings`], - [`langchain_community.embeddings.azure_openai`, `AzureOpenAIEmbeddings`, `langchain_openai`, `AzureOpenAIEmbeddings`], - [`langchain_community.chat_models.openai`, `ChatOpenAI`, `langchain_openai`, `ChatOpenAI`], - [`langchain_community.chat_models.azure_openai`, `AzureChatOpenAI`, `langchain_openai`, `AzureChatOpenAI`], - [`langchain_community.llms.openai`, `OpenAI`, `langchain_openai`, `OpenAI`], - [`langchain_community.llms.openai`, `AzureOpenAI`, `langchain_openai`, `AzureOpenAI`], - [`langchain_community.embeddings`, `AzureOpenAIEmbeddings`, `langchain_openai`, `AzureOpenAIEmbeddings`], - [`langchain_community.embeddings`, `OpenAIEmbeddings`, `langchain_openai`, `OpenAIEmbeddings`], - [`langchain_community.chat_models`, `AzureChatOpenAI`, `langchain_openai`, `AzureChatOpenAI`], - [`langchain_community.chat_models`, `ChatOpenAI`, `langchain_openai`, `ChatOpenAI`], - [`langchain_community.llms`, `AzureOpenAI`, `langchain_openai`, `AzureOpenAI`], - [`langchain_community.llms`, `OpenAI`, `langchain_openai`, `OpenAI`] - ]) -} - -// Add this for invoking directly -langchain_migrate_openai() diff --git a/libs/cli/langchain_cli/namespaces/migrate/.grit/patterns/pinecone.grit b/libs/cli/langchain_cli/namespaces/migrate/.grit/patterns/pinecone.grit deleted file mode 100644 index 190f24cd44a..00000000000 --- a/libs/cli/langchain_cli/namespaces/migrate/.grit/patterns/pinecone.grit +++ /dev/null @@ -1,13 +0,0 @@ - -language python - -// This migration is generated automatically - do not manually edit this file -pattern langchain_migrate_pinecone() { - find_replace_imports(list=[ - [`langchain_community.vectorstores.pinecone`, `Pinecone`, `langchain_pinecone`, `Pinecone`], - [`langchain_community.vectorstores`, `Pinecone`, `langchain_pinecone`, `Pinecone`] - ]) -} - -// Add this for invoking directly -langchain_migrate_pinecone() diff --git a/libs/cli/langchain_cli/namespaces/migrate/.grit/patterns/replace_pydantic_v1_shim.grit b/libs/cli/langchain_cli/namespaces/migrate/.grit/patterns/replace_pydantic_v1_shim.grit deleted file mode 100644 index c3df68dbfe8..00000000000 --- a/libs/cli/langchain_cli/namespaces/migrate/.grit/patterns/replace_pydantic_v1_shim.grit +++ /dev/null @@ -1,36 +0,0 @@ -language python - -// This migration is generated automatically - do not manually edit this file -pattern replace_pydantic_v1_shim() { - `from $IMPORT import $...` where { - or { - and { - $IMPORT <: or { - "langchain_core.pydantic_v1", - "langchain.pydantic_v1", - "langserve.pydantic_v1", - }, - $IMPORT => `pydantic` - }, - and { - $IMPORT <: or { - "langchain_core.pydantic_v1.data_classes", - "langchain.pydantic_v1.data_classes", - "langserve.pydantic_v1.data_classes", - }, - $IMPORT => `pydantic.data_classes` - }, - and { - $IMPORT <: or { - "langchain_core.pydantic_v1.main", - "langchain.pydantic_v1.main", - "langserve.pydantic_v1.main", - }, - $IMPORT => `pydantic.main` - }, - } - } -} - -// Add this for invoking directly - replace_pydantic_v1_shim() diff --git a/libs/cli/langchain_cli/namespaces/migrate/__init__.py b/libs/cli/langchain_cli/namespaces/migrate/__init__.py deleted file mode 100644 index 56c445feb74..00000000000 --- a/libs/cli/langchain_cli/namespaces/migrate/__init__.py +++ /dev/null @@ -1 +0,0 @@ -"""Migrations.""" diff --git a/libs/cli/langchain_cli/namespaces/migrate/generate/__init__.py b/libs/cli/langchain_cli/namespaces/migrate/generate/__init__.py deleted file mode 100644 index 3c21aaf8165..00000000000 --- a/libs/cli/langchain_cli/namespaces/migrate/generate/__init__.py +++ /dev/null @@ -1 +0,0 @@ -"""Generate migrations.""" diff --git a/libs/cli/langchain_cli/namespaces/migrate/generate/generic.py b/libs/cli/langchain_cli/namespaces/migrate/generate/generic.py deleted file mode 100644 index 2fac5bafb34..00000000000 --- a/libs/cli/langchain_cli/namespaces/migrate/generate/generic.py +++ /dev/null @@ -1,182 +0,0 @@ -"""Generate migrations from langchain to langchain-community or core packages.""" - -import importlib -import inspect -import pkgutil -from types import ModuleType - - -def generate_raw_migrations( - from_package: str, - to_package: str, - filter_by_all: bool = False, # noqa: FBT001, FBT002 -) -> list[tuple[str, str]]: - """Scan the `langchain` package and generate migrations for all modules. - - Args: - from_package: The package to migrate from. - to_package: The package to migrate to. - filter_by_all: Whether to only consider items in `__all__`. - - Returns: - A list of tuples containing the original import path and the new import path. - """ - package = importlib.import_module(from_package) - - items = [] - for _importer, modname, _ispkg in pkgutil.walk_packages( - package.__path__, - package.__name__ + ".", - ): - try: - module = importlib.import_module(modname) - except ModuleNotFoundError: - continue - - # Check if the module is an __init__ file and evaluate __all__ - try: - has_all = hasattr(module, "__all__") - except ImportError: - has_all = False - - if has_all: - all_objects = module.__all__ - for name in all_objects: - # Attempt to fetch each object declared in __all__ - try: - obj = getattr(module, name, None) - except ImportError: - continue - if ( - obj - and (inspect.isclass(obj) or inspect.isfunction(obj)) - and obj.__module__.startswith(to_package) - ): - items.append( - (f"{modname}.{name}", f"{obj.__module__}.{obj.__name__}"), - ) - - if not filter_by_all: - # Iterate over all members of the module - for name, obj in inspect.getmembers(module): - # Check if it's a class or function - # Check if the module name of the obj starts with - # 'langchain_community' - if inspect.isclass(obj) or ( - inspect.isfunction(obj) and obj.__module__.startswith(to_package) - ): - items.append( - (f"{modname}.{name}", f"{obj.__module__}.{obj.__name__}"), - ) - - return items - - -def generate_top_level_imports(pkg: str) -> list[tuple[str, str]]: - """Look at all the top level modules in langchain_community. - - Attempt to import everything from each `__init__` file. For example, - - langchain_community/ - chat_models/ - __init__.py # <-- import everything from here - llm/ - __init__.py # <-- import everything from here - - It'll collect all the imports, import the classes / functions it can find - there. It'll return a list of 2-tuples - - Each tuple will contain the fully qualified path of the class / function to where - its logic is defined. - (e.g., `langchain_community.chat_models.xyz_implementation.ver2.XYZ`) - and the second tuple will contain the path - to importing it from the top level namespaces - (e.g., `langchain_community.chat_models.XYZ`) - - Args: - pkg: The package to scan. - - Returns: - A list of tuples containing the fully qualified path and the top-level - import path. - """ - package = importlib.import_module(pkg) - - items = [] - - # Function to handle importing from modules - def handle_module(module: ModuleType, module_name: str) -> None: - if hasattr(module, "__all__"): - all_objects = module.__all__ - for name in all_objects: - # Attempt to fetch each object declared in __all__ - obj = getattr(module, name, None) - if obj and (inspect.isclass(obj) or inspect.isfunction(obj)): - # Capture the fully qualified name of the object - original_module = obj.__module__ - original_name = obj.__name__ - # Form the new import path from the top-level namespace - top_level_import = f"{module_name}.{name}" - # Append the tuple with original and top-level paths - items.append( - (f"{original_module}.{original_name}", top_level_import), - ) - - # Handle the package itself (root level) - handle_module(package, pkg) - - # Only iterate through top-level modules/packages - for _finder, modname, ispkg in pkgutil.iter_modules( - package.__path__, - package.__name__ + ".", - ): - if ispkg: - try: - module = importlib.import_module(modname) - handle_module(module, modname) - except ModuleNotFoundError: - continue - - return items - - -def generate_simplified_migrations( - from_package: str, - to_package: str, - filter_by_all: bool = True, # noqa: FBT001, FBT002 -) -> list[tuple[str, str]]: - """Get all the raw migrations, then simplify them if possible. - - Args: - from_package: The package to migrate from. - to_package: The package to migrate to. - filter_by_all: Whether to only consider items in `__all__`. - - Returns: - A list of tuples containing the original import path and the simplified - import path. - """ - raw_migrations = generate_raw_migrations( - from_package, - to_package, - filter_by_all=filter_by_all, - ) - top_level_simplifications = generate_top_level_imports(to_package) - top_level_dict = dict(top_level_simplifications) - simple_migrations = [] - for migration in raw_migrations: - original, new = migration - replacement = top_level_dict.get(new, new) - simple_migrations.append((original, replacement)) - - # Now let's deduplicate the list based on the original path (which is - # the 1st element of the tuple) - deduped_migrations = [] - seen = set() - for migration in simple_migrations: - original = migration[0] - if original not in seen: - deduped_migrations.append(migration) - seen.add(original) - - return deduped_migrations diff --git a/libs/cli/langchain_cli/namespaces/migrate/generate/grit.py b/libs/cli/langchain_cli/namespaces/migrate/generate/grit.py deleted file mode 100644 index 86f55f95021..00000000000 --- a/libs/cli/langchain_cli/namespaces/migrate/generate/grit.py +++ /dev/null @@ -1,53 +0,0 @@ -"""Migration as Grit file.""" - - -def split_package(package: str) -> tuple[str, str]: - """Split a package name into the containing package and the final name. - - Args: - package: The full package name. - - Returns: - A tuple of `(containing_package, final_name)`. - """ - parts = package.split(".") - return ".".join(parts[:-1]), parts[-1] - - -def dump_migrations_as_grit(name: str, migration_pairs: list[tuple[str, str]]) -> str: - """Dump the migration pairs as a Grit file. - - Args: - name: The name of the migration. - migration_pairs: A list of tuples `(from_module, to_module)`. - - Returns: - The Grit file as a string. - """ - remapped = ",\n".join( - [ - f""" - [ - `{split_package(from_module)[0]}`, - `{split_package(from_module)[1]}`, - `{split_package(to_module)[0]}`, - `{split_package(to_module)[1]}` - ] - """ - for from_module, to_module in migration_pairs - ], - ) - pattern_name = f"langchain_migrate_{name}" - return f""" -language python - -// This migration is generated automatically - do not manually edit this file -pattern {pattern_name}() {{ - find_replace_imports(list=[ -{remapped} - ]) -}} - -// Add this for invoking directly -{pattern_name}() -""" diff --git a/libs/cli/langchain_cli/namespaces/migrate/generate/partner.py b/libs/cli/langchain_cli/namespaces/migrate/generate/partner.py deleted file mode 100644 index 9c9c5db84ba..00000000000 --- a/libs/cli/langchain_cli/namespaces/migrate/generate/partner.py +++ /dev/null @@ -1,53 +0,0 @@ -"""Generate migrations for partner packages.""" - -import importlib - -from langchain_core.documents import BaseDocumentCompressor, BaseDocumentTransformer -from langchain_core.embeddings import Embeddings -from langchain_core.language_models import BaseLanguageModel -from langchain_core.retrievers import BaseRetriever -from langchain_core.vectorstores import VectorStore - -from langchain_cli.namespaces.migrate.generate.utils import ( - COMMUNITY_PKG, - find_subclasses_in_module, - list_classes_by_package, - list_init_imports_by_package, -) - -# PUBLIC API - - -def get_migrations_for_partner_package(pkg_name: str) -> list[tuple[str, str]]: - """Generate migrations from community package to partner package. - - This code works - - Args: - pkg_name: The name of the partner package. - - Returns: - List of 2-tuples containing old and new import paths. - """ - package = importlib.import_module(pkg_name) - classes_ = find_subclasses_in_module( - package, - [ - BaseLanguageModel, - Embeddings, - BaseRetriever, - VectorStore, - BaseDocumentTransformer, - BaseDocumentCompressor, - ], - ) - community_classes = list_classes_by_package(str(COMMUNITY_PKG)) - imports_for_pkg = list_init_imports_by_package(str(COMMUNITY_PKG)) - - old_paths = community_classes + imports_for_pkg - - return [ - (f"{module}.{item}", f"{pkg_name}.{item}") - for module, item in old_paths - if item in classes_ - ] diff --git a/libs/cli/langchain_cli/namespaces/migrate/generate/utils.py b/libs/cli/langchain_cli/namespaces/migrate/generate/utils.py deleted file mode 100644 index 688276617c8..00000000000 --- a/libs/cli/langchain_cli/namespaces/migrate/generate/utils.py +++ /dev/null @@ -1,222 +0,0 @@ -"""Generate migrations utilities.""" - -import ast -import inspect -import os -import pathlib -from pathlib import Path -from types import ModuleType - -from typing_extensions import override - -HERE = Path(__file__).parent -# Should bring us to [root]/src -PKGS_ROOT = HERE.parent.parent.parent.parent.parent - -LANGCHAIN_PKG = PKGS_ROOT / "langchain" -COMMUNITY_PKG = PKGS_ROOT / "community" -PARTNER_PKGS = PKGS_ROOT / "partners" - - -class ImportExtractor(ast.NodeVisitor): - """Import extractor.""" - - def __init__(self, *, from_package: str | None = None) -> None: - """Extract all imports from the given code, optionally filtering by package.""" - self.imports: list[tuple[str, str]] = [] - self.package = from_package - - @override - def visit_ImportFrom(self, node: ast.ImportFrom) -> None: - if node.module and ( - self.package is None or str(node.module).startswith(self.package) - ): - for alias in node.names: - self.imports.append((node.module, alias.name)) - self.generic_visit(node) - - -def _get_class_names(code: str) -> list[str]: - """Extract class names from a code string.""" - # Parse the content of the file into an AST - tree = ast.parse(code) - - # Initialize a list to hold all class names - class_names = [] - - # Define a node visitor class to collect class names - class ClassVisitor(ast.NodeVisitor): - @override - def visit_ClassDef(self, node: ast.ClassDef) -> None: - class_names.append(node.name) - self.generic_visit(node) - - # Create an instance of the visitor and visit the AST - visitor = ClassVisitor() - visitor.visit(tree) - return class_names - - -def is_subclass(class_obj: type, classes_: list[type]) -> bool: - """Check if the given class object is a subclass of any class in list classes. - - Args: - class_obj: The class to check. - classes_: A list of classes to check against. - - Returns: - True if `class_obj` is a subclass of any class in `classes_`, `False` otherwise. - """ - return any( - issubclass(class_obj, kls) - for kls in classes_ - if inspect.isclass(class_obj) and inspect.isclass(kls) - ) - - -def find_subclasses_in_module(module: ModuleType, classes_: list[type]) -> list[str]: - """Find all classes in the module that inherit from one of the classes. - - Args: - module: The module to inspect. - classes_: A list of classes to check against. - - Returns: - A list of class names that are subclasses of any class in `classes_`. - """ - subclasses = [] - # Iterate over all attributes of the module that are classes - for _name, obj in inspect.getmembers(module, inspect.isclass): - if is_subclass(obj, classes_): - subclasses.append(obj.__name__) - return subclasses - - -def _get_all_classnames_from_file(file: Path, pkg: str) -> list[tuple[str, str]]: - """Extract all class names from a file.""" - code = Path(file).read_text(encoding="utf-8") - module_name = _get_current_module(file, pkg) - class_names = _get_class_names(code) - - return [(module_name, class_name) for class_name in class_names] - - -def identify_all_imports_in_file( - file: str, - *, - from_package: str | None = None, -) -> list[tuple[str, str]]: - """Identify all the imports in the given file. - - Args: - file: The file to analyze. - from_package: If provided, only return imports from this package. - - Returns: - A list of tuples `(module, name)` representing the imports found in the file. - """ - code = Path(file).read_text(encoding="utf-8") - return find_imports_from_package(code, from_package=from_package) - - -def identify_pkg_source(pkg_root: str) -> pathlib.Path: - """Identify the source of the package. - - Args: - pkg_root: the root of the package. This contains source + tests, and other - things like pyproject.toml, lock files etc - - Returns: - Returns the path to the source code for the package. - - Raises: - ValueError: If there is not exactly one directory starting with `'langchain_'` - in the package root. - """ - dirs = [d for d in Path(pkg_root).iterdir() if d.is_dir()] - matching_dirs = [d for d in dirs if d.name.startswith("langchain_")] - if len(matching_dirs) != 1: - msg = "There should be only one langchain package." - raise ValueError(msg) - return matching_dirs[0] - - -def list_classes_by_package(pkg_root: str) -> list[tuple[str, str]]: - """List all classes in a package. - - Args: - pkg_root: the root of the package. - - Returns: - A list of tuples `(module, class_name)` representing all classes found in the - package, excluding test files. - """ - module_classes = [] - pkg_source = identify_pkg_source(pkg_root) - files = list(pkg_source.rglob("*.py")) - - for file in files: - rel_path = os.path.relpath(file, pkg_root) - if rel_path.startswith("tests"): - continue - module_classes.extend(_get_all_classnames_from_file(file, pkg_root)) - return module_classes - - -def list_init_imports_by_package(pkg_root: str) -> list[tuple[str, str]]: - """List all the things that are being imported in a package by module. - - Args: - pkg_root: the root of the package. - - Returns: - A list of tuples `(module, name)` representing the imports found in - `__init__.py` files. - """ - imports = [] - pkg_source = identify_pkg_source(pkg_root) - # Scan all the files in the package - files = list(Path(pkg_source).rglob("*.py")) - - for file in files: - if file.name != "__init__.py": - continue - import_in_file = identify_all_imports_in_file(str(file)) - module_name = _get_current_module(file, pkg_root) - imports.extend([(module_name, item) for _, item in import_in_file]) - return imports - - -def find_imports_from_package( - code: str, - *, - from_package: str | None = None, -) -> list[tuple[str, str]]: - """Find imports in code. - - Args: - code: The code to analyze. - from_package: If provided, only return imports from this package. - - Returns: - A list of tuples `(module, name)` representing the imports found. - """ - # Parse the code into an AST - tree = ast.parse(code) - # Create an instance of the visitor - extractor = ImportExtractor(from_package=from_package) - # Use the visitor to update the imports list - extractor.visit(tree) - return extractor.imports - - -def _get_current_module(path: Path, pkg_root: str) -> str: - """Convert a path to a module name.""" - relative_path = path.relative_to(pkg_root).with_suffix("") - posix_path = relative_path.as_posix() - norm_path = os.path.normpath(str(posix_path)) - fully_qualified_module = norm_path.replace("/", ".") - # Strip __init__ if present - if fully_qualified_module.endswith(".__init__"): - return fully_qualified_module[:-9] - return fully_qualified_module diff --git a/libs/cli/langchain_cli/namespaces/migrate/main.py b/libs/cli/langchain_cli/namespaces/migrate/main.py deleted file mode 100644 index 2d27df52b60..00000000000 --- a/libs/cli/langchain_cli/namespaces/migrate/main.py +++ /dev/null @@ -1,74 +0,0 @@ -"""Migrate LangChain to the most recent version.""" - -from pathlib import Path - -import rich -import typer -from gritql import run # type: ignore[import-untyped] -from typer import Option - - -def get_gritdir_path() -> Path: - """Get the path to the grit directory.""" - script_dir = Path(__file__).parent - return script_dir / ".grit" - - -def migrate( - ctx: typer.Context, - # Using diff instead of dry-run for backwards compatibility with the old CLI - diff: bool = Option( # noqa: FBT001 - False, # noqa: FBT003 - "--diff", - help="Show the changes that would be made without applying them.", - ), - interactive: bool = Option( # noqa: FBT001 - False, # noqa: FBT003 - "--interactive", - help="Prompt for confirmation before making each change", - ), -) -> None: - """Migrate langchain to the most recent version. - - Any undocumented arguments will be passed to the Grit CLI. - """ - rich.print( - "✈️ This script will help you migrate to a LangChain 0.3. " - "This migration script will attempt to replace old imports in the code " - "with new ones. " - "If you need to migrate to LangChain 0.2, please downgrade to version 0.0.29 " - "of the langchain-cli.\n\n" - "🔄 You will need to run the migration script TWICE to migrate (e.g., " - "to update llms import from langchain, the script will first move them to " - "corresponding imports from the community package, and on the second " - "run will migrate from the community package to the partner package " - "when possible). \n\n" - "🔍 You can pre-view the changes by running with the --diff flag. \n\n" - "🚫 You can disable specific import changes by using the --disable " - "flag. \n\n" - "📄 Update your pyproject.toml or requirements.txt file to " - "reflect any imports from new packages. For example, if you see new " - "imports from langchain_openai, langchain_anthropic or " - "langchain_text_splitters you " - "should add them to your dependencies! \n\n" - '⚠️ This script is a "best-effort", and is likely to make some ' - "mistakes.\n\n" - "🛡️ Backup your code prior to running the migration script -- it will " - "modify your files!\n\n", - ) - rich.print("-" * 10) - rich.print() - - args = list(ctx.args) - if interactive: - args.append("--interactive") - if diff: - args.append("--dry-run") - - final_code = run.apply_pattern( - "langchain_all_migrations()", - args, - grit_dir=str(get_gritdir_path()), - ) - - raise typer.Exit(code=final_code) diff --git a/libs/cli/langchain_cli/namespaces/template.py b/libs/cli/langchain_cli/namespaces/template.py deleted file mode 100644 index e41cba5e103..00000000000 --- a/libs/cli/langchain_cli/namespaces/template.py +++ /dev/null @@ -1,147 +0,0 @@ -"""Develop installable templates.""" - -import re -import shutil -import subprocess -from pathlib import Path -from typing import Annotated - -import typer -import uvicorn - -from langchain_cli.utils.github import list_packages -from langchain_cli.utils.packages import get_langserve_export, get_package_root - -package_cli = typer.Typer(no_args_is_help=True, add_completion=False) - - -@package_cli.command() -def new( - name: Annotated[str, typer.Argument(help="The name of the folder to create")], - with_poetry: Annotated[ # noqa: FBT002 - bool, - typer.Option("--with-poetry/--no-poetry", help="Don't run poetry install"), - ] = False, -) -> None: - """Create a new template package.""" - computed_name = name if name != "." else Path.cwd().name - destination_dir = Path.cwd() / name if name != "." else Path.cwd() - - # copy over template from ../package_template - project_template_dir = Path(__file__).parents[1] / "package_template" - shutil.copytree(project_template_dir, destination_dir, dirs_exist_ok=name == ".") - - package_name_split = computed_name.split("/") - package_name = ( - package_name_split[-2] - if len(package_name_split) > 1 and not package_name_split[-1] - else package_name_split[-1] - ) - module_name = re.sub( - r"[^a-zA-Z0-9_]", - "_", - package_name, - ) - - # generate app route code - chain_name = f"{module_name}_chain" - app_route_code = ( - f"from {module_name} import chain as {chain_name}\n\n" - f'add_routes(app, {chain_name}, path="/{package_name}")' - ) - - # replace template strings - pyproject = destination_dir / "pyproject.toml" - pyproject_contents = pyproject.read_text() - pyproject.write_text( - pyproject_contents.replace("__package_name__", package_name).replace( - "__module_name__", - module_name, - ), - ) - - # move module folder - package_dir = destination_dir / module_name - shutil.move(destination_dir / "package_template", package_dir) - - # update init - init = package_dir / "__init__.py" - init_contents = init.read_text() - init.write_text(init_contents.replace("__module_name__", module_name)) - - # replace readme - readme = destination_dir / "README.md" - readme_contents = readme.read_text() - readme.write_text( - readme_contents.replace("__package_name__", package_name).replace( - "__app_route_code__", - app_route_code, - ), - ) - - # poetry install - if with_poetry: - subprocess.run(["poetry", "install"], cwd=destination_dir, check=True) # noqa: S607 - - -@package_cli.command() -def serve( - *, - port: Annotated[ - int | None, - typer.Option(help="The port to run the server on"), - ] = None, - host: Annotated[ - str | None, - typer.Option(help="The host to run the server on"), - ] = None, - configurable: Annotated[ - bool | None, - typer.Option( - "--configurable/--no-configurable", - help="Whether to include a configurable route", - ), - ] = None, # defaults to `not chat_playground` - chat_playground: Annotated[ - bool, - typer.Option( - "--chat-playground/--no-chat-playground", - help="Whether to include a chat playground route", - ), - ] = False, -) -> None: - """Start a demo app for this template.""" - # load pyproject.toml - project_dir = get_package_root() - pyproject = project_dir / "pyproject.toml" - - # get langserve export - throws KeyError if invalid - get_langserve_export(pyproject) - - host_str = host if host is not None else "127.0.0.1" - - script = ( - "langchain_cli.dev_scripts:create_demo_server_chat" - if chat_playground - else ( - "langchain_cli.dev_scripts:create_demo_server_configurable" - if configurable - else "langchain_cli.dev_scripts:create_demo_server" - ) - ) - - uvicorn.run( - script, - factory=True, - reload=True, - port=port if port is not None else 8000, - host=host_str, - ) - - -@package_cli.command() -def list(contains: Annotated[str | None, typer.Argument()] = None) -> None: # noqa: A001 - """List all or search for available templates.""" - packages = list_packages(contains=contains) - for package in packages: - typer.echo(package) diff --git a/libs/cli/langchain_cli/package_template/.gitignore b/libs/cli/langchain_cli/package_template/.gitignore deleted file mode 100644 index bee8a64b79a..00000000000 --- a/libs/cli/langchain_cli/package_template/.gitignore +++ /dev/null @@ -1 +0,0 @@ -__pycache__ diff --git a/libs/cli/langchain_cli/package_template/LICENSE b/libs/cli/langchain_cli/package_template/LICENSE deleted file mode 100644 index fc0602feecd..00000000000 --- a/libs/cli/langchain_cli/package_template/LICENSE +++ /dev/null @@ -1,21 +0,0 @@ -MIT License - -Copyright (c) 2024 LangChain, Inc. - -Permission is hereby granted, free of charge, to any person obtaining a copy -of this software and associated documentation files (the "Software"), to deal -in the Software without restriction, including without limitation the rights -to use, copy, modify, merge, publish, distribute, sublicense, and/or sell -copies of the Software, and to permit persons to whom the Software is -furnished to do so, subject to the following conditions: - -The above copyright notice and this permission notice shall be included in all -copies or substantial portions of the Software. - -THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, -FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE -AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER -LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, -OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE -SOFTWARE. diff --git a/libs/cli/langchain_cli/package_template/README.md b/libs/cli/langchain_cli/package_template/README.md deleted file mode 100644 index c0c98eb6844..00000000000 --- a/libs/cli/langchain_cli/package_template/README.md +++ /dev/null @@ -1,64 +0,0 @@ -# __package_name__ - -TODO: What does this package do - -## Environment Setup - -TODO: What environment variables need to be set (if any) - -## Usage - -To use this package, you should first have the LangChain CLI installed: - -```shell -pip install -U langchain-cli -``` - -To create a new LangChain project and install this as the only package, you can do: - -```shell -langchain app new my-app --package __package_name__ -``` - -If you want to add this to an existing project, you can just run: - -```shell -langchain app add __package_name__ -``` - -And add the following code to your `server.py` file: - -```python -__app_route_code__ -``` - -(Optional) Let's now configure LangSmith. -LangSmith will help us trace, monitor and debug LangChain applications. -You can sign up for LangSmith [here](https://smith.langchain.com/). -If you don't have access, you can skip this section - -```shell -export LANGSMITH_TRACING=true -export LANGSMITH_API_KEY= -export LANGSMITH_PROJECT= # if not specified, defaults to "default" -``` - -If you are inside this directory, then you can spin up a LangServe instance directly by: - -```shell -langchain serve -``` - -This will start the FastAPI app with a server is running locally at -[http://localhost:8000](http://localhost:8000) - -We can see all templates at [http://127.0.0.1:8000/docs](http://127.0.0.1:8000/docs) -We can access the playground at [http://127.0.0.1:8000/__package_name__/playground](http://127.0.0.1:8000/__package_name__/playground) - -We can access the template from code with: - -```python -from langserve.client import RemoteRunnable - -runnable = RemoteRunnable("http://localhost:8000/__package_name__") -``` diff --git a/libs/cli/langchain_cli/package_template/package_template/__init__.py b/libs/cli/langchain_cli/package_template/package_template/__init__.py deleted file mode 100644 index 21d83701aa7..00000000000 --- a/libs/cli/langchain_cli/package_template/package_template/__init__.py +++ /dev/null @@ -1,5 +0,0 @@ -"""__module_name__ module.""" - -from __module_name__.chain import chain - -__all__ = ["chain"] diff --git a/libs/cli/langchain_cli/package_template/package_template/chain.py b/libs/cli/langchain_cli/package_template/package_template/chain.py deleted file mode 100644 index a7e28a8ac08..00000000000 --- a/libs/cli/langchain_cli/package_template/package_template/chain.py +++ /dev/null @@ -1,19 +0,0 @@ -"""Chain definition.""" - -from langchain_core.prompts import ChatPromptTemplate -from langchain_openai import ChatOpenAI - -_prompt = ChatPromptTemplate.from_messages( - [ - ( - "system", - "You are a helpful assistant who speaks like a pirate", - ), - ("human", "{text}"), - ] -) -_model = ChatOpenAI() - -# if you update this, you MUST also update ../pyproject.toml -# with the new `tool.langserve.export_attr` -chain = _prompt | _model diff --git a/libs/cli/langchain_cli/package_template/pyproject.toml b/libs/cli/langchain_cli/package_template/pyproject.toml deleted file mode 100644 index 3a6ab95f439..00000000000 --- a/libs/cli/langchain_cli/package_template/pyproject.toml +++ /dev/null @@ -1,24 +0,0 @@ -[build-system] -requires = [ "poetry-core",] -build-backend = "poetry.core.masonry.api" - -[tool.poetry] -name = "__package_name__" -version = "0.0.1" -description = "" -authors = [] -readme = "README.md" - -[tool.langserve] -export_module = "__module_name__" -export_attr = "chain" - -[tool.poetry.dependencies] -python = ">=3.9,<4.0" -langchain-core = "^0.3.15" -langchain-openai = ">=0.0.1" - -[tool.poetry.group.dev.dependencies] -langchain-cli = ">=0.0.4" -fastapi = "^0.104.0" -sse-starlette = "^1.6.5" diff --git a/libs/cli/langchain_cli/package_template/tests/__init__.py b/libs/cli/langchain_cli/package_template/tests/__init__.py deleted file mode 100644 index d420712d8bb..00000000000 --- a/libs/cli/langchain_cli/package_template/tests/__init__.py +++ /dev/null @@ -1 +0,0 @@ -"""Tests.""" diff --git a/libs/cli/langchain_cli/project_template/.gitignore b/libs/cli/langchain_cli/project_template/.gitignore deleted file mode 100644 index bee8a64b79a..00000000000 --- a/libs/cli/langchain_cli/project_template/.gitignore +++ /dev/null @@ -1 +0,0 @@ -__pycache__ diff --git a/libs/cli/langchain_cli/project_template/Dockerfile b/libs/cli/langchain_cli/project_template/Dockerfile deleted file mode 100644 index a129cd0b50a..00000000000 --- a/libs/cli/langchain_cli/project_template/Dockerfile +++ /dev/null @@ -1,21 +0,0 @@ -FROM python:3.11-slim - -RUN pip install poetry==1.6.1 - -RUN poetry config virtualenvs.create false - -WORKDIR /code - -COPY ./pyproject.toml ./README.md ./poetry.lock* ./ - -COPY ./packages ./packages - -RUN poetry install --no-interaction --no-ansi --no-root - -COPY ./app ./app - -RUN poetry install --no-interaction --no-ansi - -EXPOSE 8080 - -CMD exec uvicorn app.server:app --host 0.0.0.0 --port 8080 diff --git a/libs/cli/langchain_cli/project_template/README.md b/libs/cli/langchain_cli/project_template/README.md deleted file mode 100644 index d9b3f59e550..00000000000 --- a/libs/cli/langchain_cli/project_template/README.md +++ /dev/null @@ -1,79 +0,0 @@ -# __app_name__ - -## Installation - -Install the LangChain CLI if you haven't yet - -```bash -pip install -U langchain-cli -``` - -## Adding packages - -```bash -# adding packages from -# https://github.com/langchain-ai/langchain/tree/master/templates -langchain app add $PROJECT_NAME - -# adding custom GitHub repo packages -langchain app add --repo $OWNER/$REPO -# or with whole git string (supports other git providers): -# langchain app add git+https://github.com/hwchase17/chain-of-verification - -# with a custom api mount point (defaults to `/{package_name}`) -langchain app add $PROJECT_NAME --api_path=/my/custom/path/rag -``` - -Note: you remove packages by their api path - -```bash -langchain app remove my/custom/path/rag -``` - -## Setup LangSmith (Optional) - -LangSmith will help us trace, monitor and debug LangChain applications. -You can sign up for LangSmith [here](https://smith.langchain.com/). -If you don't have access, you can skip this section - -```shell -export LANGSMITH_TRACING=true -export LANGSMITH_API_KEY= -export LANGSMITH_PROJECT= # if not specified, defaults to "default" -``` - -## Launch LangServe - -```bash -langchain serve -``` - -## Running in Docker - -This project folder includes a Dockerfile that allows you to easily build and host your LangServe app. - -### Building the Image - -To build the image, you simply: - -```shell -docker build . -t my-langserve-app -``` - -If you tag your image with something other than `my-langserve-app`, -note it for use in the next step. - -### Running the Image Locally - -To run the image, you'll need to include any environment variables -necessary for your application. - -In the below example, we inject the `OPENAI_API_KEY` environment -variable with the value set in my local environment -(`$OPENAI_API_KEY`) - -We also expose port 8080 with the `-p 8080:8080` option. - -```shell -docker run -e OPENAI_API_KEY=$OPENAI_API_KEY -p 8080:8080 my-langserve-app -``` diff --git a/libs/cli/langchain_cli/project_template/app/__init__.py b/libs/cli/langchain_cli/project_template/app/__init__.py deleted file mode 100644 index 432c8b7f1e7..00000000000 --- a/libs/cli/langchain_cli/project_template/app/__init__.py +++ /dev/null @@ -1 +0,0 @@ -"""Server application.""" diff --git a/libs/cli/langchain_cli/project_template/app/server.py b/libs/cli/langchain_cli/project_template/app/server.py deleted file mode 100644 index a8133c9e3de..00000000000 --- a/libs/cli/langchain_cli/project_template/app/server.py +++ /dev/null @@ -1,21 +0,0 @@ -"""Chain server.""" - -from fastapi import FastAPI -from fastapi.responses import RedirectResponse -from langserve import add_routes - -app = FastAPI() - - -@app.get("/") -async def _redirect_root_to_docs() -> RedirectResponse: - return RedirectResponse("/docs") - - -# Edit this to add the chain you want to add -add_routes(app, NotImplemented) - -if __name__ == "__main__": - import uvicorn - - uvicorn.run(app, host="0.0.0.0", port=8000) # noqa: S104 diff --git a/libs/cli/langchain_cli/project_template/packages/README.md b/libs/cli/langchain_cli/project_template/packages/README.md deleted file mode 100644 index e69de29bb2d..00000000000 diff --git a/libs/cli/langchain_cli/project_template/pyproject.toml b/libs/cli/langchain_cli/project_template/pyproject.toml deleted file mode 100644 index 5c4006b162b..00000000000 --- a/libs/cli/langchain_cli/project_template/pyproject.toml +++ /dev/null @@ -1,23 +0,0 @@ -[tool.poetry] -name = "__app_name__" -version = "0.1.0" -description = "" -authors = ["Your Name "] -readme = "README.md" -packages = [ - { include = "app" }, -] - -[tool.poetry.dependencies] -python = "^3.11" -uvicorn = "^0.23.2" -langserve = {extras = ["server"], version = ">=0.0.30"} -pydantic = "<2" - - -[tool.poetry.group.dev.dependencies] -langchain-cli = ">=0.0.15" - -[build-system] -requires = ["poetry-core"] -build-backend = "poetry.core.masonry.api" diff --git a/libs/cli/langchain_cli/utils/__init__.py b/libs/cli/langchain_cli/utils/__init__.py deleted file mode 100644 index dc51750efa0..00000000000 --- a/libs/cli/langchain_cli/utils/__init__.py +++ /dev/null @@ -1 +0,0 @@ -"""Utilities.""" diff --git a/libs/cli/langchain_cli/utils/events.py b/libs/cli/langchain_cli/utils/events.py deleted file mode 100644 index 7a6648bb961..00000000000 --- a/libs/cli/langchain_cli/utils/events.py +++ /dev/null @@ -1,64 +0,0 @@ -"""Events utilities.""" - -from __future__ import annotations - -import http.client -import json -from typing import Any, TypedDict - -import typer - -WRITE_KEY = "310apTK0HUFl4AOv" - - -class EventDict(TypedDict): - """Event data structure for analytics tracking. - - Attributes: - event: The name of the event. - properties: Optional dictionary of event properties. - """ - - event: str - properties: dict[str, Any] | None - - -def create_events(events: list[EventDict]) -> dict[str, Any] | None: - """Create events. - - Args: - events: A list of event dictionaries. - - Returns: - The response from the event tracking service, or None if there was an error. - """ - try: - data = { - "events": [ - { - "write_key": WRITE_KEY, - "name": event["event"], - "properties": event.get("properties"), - } - for event in events - ], - } - - conn = http.client.HTTPSConnection("app.firstpartyhq.com") - - payload = json.dumps(data) - - headers = { - "Content-Type": "application/json", - "Accept": "application/json", - } - - conn.request("POST", "/events/v1/track/bulk", payload, headers) - - res = conn.getresponse() - - response_data = json.loads(res.read()) - return response_data if isinstance(response_data, dict) else None - except (http.client.HTTPException, OSError, json.JSONDecodeError) as exc: - typer.echo(f"Error sending events: {exc}") - return None diff --git a/libs/cli/langchain_cli/utils/find_replace.py b/libs/cli/langchain_cli/utils/find_replace.py deleted file mode 100644 index b53aa42a08d..00000000000 --- a/libs/cli/langchain_cli/utils/find_replace.py +++ /dev/null @@ -1,43 +0,0 @@ -"""Find and replace text in files.""" - -from pathlib import Path - - -def find_and_replace(source: str, replacements: dict[str, str]) -> str: - """Find and replace text in a string. - - Args: - source: The source string. - replacements: A dictionary of `{find: replace}` pairs. - - Returns: - The modified string. - """ - rtn = source - - # replace keys in deterministic alphabetical order - finds = sorted(replacements.keys()) - for find in finds: - replace = replacements[find] - rtn = rtn.replace(find, replace) - return rtn - - -def replace_file(source: Path, replacements: dict[str, str]) -> None: - """Replace text in a file.""" - try: - content = source.read_text() - except UnicodeDecodeError: - # binary file - return - new_content = find_and_replace(content, replacements) - if new_content != content: - source.write_text(new_content) - - -def replace_glob(parent: Path, glob: str, replacements: dict[str, str]) -> None: - """Replace text in files matching a glob pattern.""" - for file in parent.glob(glob): - if not file.is_file(): - continue - replace_file(file, replacements) diff --git a/libs/cli/langchain_cli/utils/git.py b/libs/cli/langchain_cli/utils/git.py deleted file mode 100644 index 550ae76fda9..00000000000 --- a/libs/cli/langchain_cli/utils/git.py +++ /dev/null @@ -1,255 +0,0 @@ -"""Git utilities.""" - -from __future__ import annotations - -import hashlib -import logging -import re -import shutil -from pathlib import Path -from typing import TYPE_CHECKING, Any, TypedDict - -from git import Repo - -from langchain_cli.constants import ( - DEFAULT_GIT_REF, - DEFAULT_GIT_REPO, - DEFAULT_GIT_SUBDIRECTORY, -) - -if TYPE_CHECKING: - from collections.abc import Sequence - -logger = logging.getLogger(__name__) - - -class DependencySource(TypedDict): - """Dependency source information.""" - - git: str - ref: str | None - subdirectory: str | None - api_path: str | None - event_metadata: dict[str, Any] - - -# use poetry dependency string format -def parse_dependency_string( - dep: str | None, - repo: str | None, - branch: str | None, - api_path: str | None, -) -> DependencySource: - """Parse a dependency string into a `DependencySource`. - - Args: - dep: The dependency string - repo: Optional repository - branch: Optional branch - api_path: Optional API path - - Returns: - The parsed dependency source information - - Raises: - ValueError: If the dependency string is invalid - """ - if dep is not None and dep.startswith("git+"): - if repo is not None or branch is not None: - msg = ( - "If a dependency starts with git+, you cannot manually specify " - "a repo or branch." - ) - raise ValueError(msg) - # remove git+ - gitstring = dep[4:] - subdirectory = None - ref = None - # first check for #subdirectory= on the end - if "#subdirectory=" in gitstring: - gitstring, subdirectory = gitstring.split("#subdirectory=") - if "#" in subdirectory or "@" in subdirectory: - msg = "#subdirectory must be the last part of the dependency string" - raise ValueError(msg) - - # find first slash after :// - # find @ or # after that slash - # remainder is ref - # if no @ or #, then ref is None - - # find first slash after :// - if "://" not in gitstring: - msg = "git+ dependencies must start with git+https:// or git+ssh://" - raise ValueError(msg) - - _, find_slash = gitstring.split("://", 1) - - if "/" not in find_slash: - post_slash = find_slash - ref = None - else: - _, post_slash = find_slash.split("/", 1) - if "@" in post_slash or "#" in post_slash: - _, ref = re.split(r"[@#]", post_slash, maxsplit=1) - - # gitstring is everything before that - gitstring = gitstring[: -len(ref) - 1] if ref is not None else gitstring - - return DependencySource( - git=gitstring, - ref=ref, - subdirectory=subdirectory, - api_path=api_path, - event_metadata={"dependency_string": dep}, - ) - - if dep is not None and dep.startswith("https://"): - msg = "Only git dependencies are supported" - raise ValueError(msg) - # if repo is none, use default, including subdirectory - base_subdir = Path(DEFAULT_GIT_SUBDIRECTORY) if repo is None else Path() - subdir = str(base_subdir / dep) if dep is not None else None - gitstring = ( - DEFAULT_GIT_REPO - if repo is None - else f"https://github.com/{repo.strip('/')}.git" - ) - ref = DEFAULT_GIT_REF if branch is None else branch - # it's a default git repo dependency - return DependencySource( - git=gitstring, - ref=ref, - subdirectory=subdir, - api_path=api_path, - event_metadata={ - "dependency_string": dep, - "used_repo_flag": repo is not None, - "used_branch_flag": branch is not None, - }, - ) - - -def _list_arg_to_length(arg: list[str] | None, num: int) -> Sequence[str | None]: - if not arg: - return [None] * num - if len(arg) == 1: - return arg * num - if len(arg) == num: - return arg - msg = f"Argument must be of length 1 or {num}" - raise ValueError(msg) - - -def parse_dependencies( - dependencies: list[str] | None, - repo: list[str], - branch: list[str], - api_path: list[str], -) -> list[DependencySource]: - """Parse dependencies. - - Args: - dependencies: The dependencies to parse - repo: The repositories to use - branch: the branches to use - api_path: the api paths to use - - Returns: - A list of DependencySource objects. - - Raises: - ValueError: if the number of `dependencies`, `repos`, `branches`, or `api_paths` - do not match. - - """ - num_deps = max( - len(dependencies) if dependencies is not None else 0, - len(repo), - len(branch), - ) - if ( - (dependencies and len(dependencies) != num_deps) - or (api_path and len(api_path) != num_deps) - or (repo and len(repo) not in {1, num_deps}) - or (branch and len(branch) not in {1, num_deps}) - ): - msg = ( - "Number of defined repos/branches/api_paths did not match the " - "number of templates." - ) - raise ValueError(msg) - inner_deps = _list_arg_to_length(dependencies, num_deps) - inner_api_paths = _list_arg_to_length(api_path, num_deps) - inner_repos = _list_arg_to_length(repo, num_deps) - inner_branches = _list_arg_to_length(branch, num_deps) - - return list( - map( # type: ignore[call-overload, unused-ignore] - parse_dependency_string, - inner_deps, - inner_repos, - inner_branches, - inner_api_paths, - strict=False, - ) - ) - - -def _get_repo_path(gitstring: str, ref: str | None, repo_dir: Path) -> Path: - # only based on git for now - ref_str = ref if ref is not None else "" - hashed = hashlib.sha256((f"{gitstring}:{ref_str}").encode()).hexdigest()[:8] - - removed_protocol = gitstring.split("://", maxsplit=1)[-1] - removed_basename = re.split(r"[/:]", removed_protocol, maxsplit=1)[-1] - removed_extras = removed_basename.split("#")[0] - foldername = re.sub(r"\W", "_", removed_extras) - - directory_name = f"{foldername}_{hashed}" - return repo_dir / directory_name - - -def update_repo(gitstring: str, ref: str | None, repo_dir: Path) -> Path: - """Update a git repository to the specified ref. - - Tries to pull if the repo already exists, otherwise clones it. - - Args: - gitstring: The git repository URL. - ref: The git reference. - repo_dir: The directory to clone the repository into. - - Returns: - The path to the cloned repository. - """ - # see if path already saved - repo_path = _get_repo_path(gitstring, ref, repo_dir) - if repo_path.exists(): - # try pulling - try: - repo = Repo(repo_path) - if repo.active_branch.name == ref: - repo.remotes.origin.pull() - return repo_path - except Exception: - logger.exception("Failed to pull existing repo") - # if it fails, delete and clone again - shutil.rmtree(repo_path) - - Repo.clone_from(gitstring, repo_path, branch=ref, depth=1) - return repo_path - - -def copy_repo( - source: Path, - destination: Path, -) -> None: - """Copiy a repo, ignoring git folders. - - Raises `FileNotFound` if it can't find source - """ - - def ignore_func(_: str, files: list[str]) -> list[str]: - return [f for f in files if f == ".git"] - - shutil.copytree(source, destination, ignore=ignore_func) diff --git a/libs/cli/langchain_cli/utils/github.py b/libs/cli/langchain_cli/utils/github.py deleted file mode 100644 index 839da2b42f9..00000000000 --- a/libs/cli/langchain_cli/utils/github.py +++ /dev/null @@ -1,43 +0,0 @@ -"""GitHub utilities.""" - -from __future__ import annotations - -import http.client -import json - - -def list_packages(*, contains: str | None = None) -> list[str]: - """List all packages in the langchain repository templates directory. - - Args: - contains: Optional substring that the package name must contain. - - Returns: - A list of package names. - """ - conn = http.client.HTTPSConnection("api.github.com") - try: - headers = { - "Accept": "application/vnd.github+json", - "X-GitHub-Api-Version": "2022-11-28", - "User-Agent": "langchain-cli", - } - - conn.request( - "GET", - "/repos/langchain-ai/langchain/contents/templates", - headers=headers, - ) - res = conn.getresponse() - - res_str = res.read() - - data = json.loads(res_str) - package_names = [ - p["name"] for p in data if p["type"] == "dir" and p["name"] != "docs" - ] - return ( - [p for p in package_names if contains in p] if contains else package_names - ) - finally: - conn.close() diff --git a/libs/cli/langchain_cli/utils/packages.py b/libs/cli/langchain_cli/utils/packages.py deleted file mode 100644 index e649ffbed0f..00000000000 --- a/libs/cli/langchain_cli/utils/packages.py +++ /dev/null @@ -1,75 +0,0 @@ -"""Packages utilities.""" - -from __future__ import annotations - -from pathlib import Path -from typing import Any, TypedDict, cast - -from tomlkit import load - - -def get_package_root(cwd: Path | None = None) -> Path: - """Get package root directory. - - Args: - cwd: The current working directory to start the search from. - If `None`, uses the current working directory of the process. - - Returns: - The path to the package root directory. - - Raises: - FileNotFoundError: If no `pyproject.toml` file is found in the directory - hierarchy. - """ - # traverse path for routes to host (any directory holding a pyproject.toml file) - package_root = Path.cwd() if cwd is None else cwd - visited: set[Path] = set() - while package_root not in visited: - visited.add(package_root) - - pyproject_path = package_root / "pyproject.toml" - if pyproject_path.exists(): - return package_root - package_root = package_root.parent - msg = "No pyproject.toml found" - raise FileNotFoundError(msg) - - -class LangServeExport(TypedDict): - """Fields from `pyproject.toml` that are relevant to LangServe. - - Attributes: - module: The module to import from, `tool.langserve.export_module` - attr: The attribute to import from the module, `tool.langserve.export_attr` - package_name: The name of the package, `tool.poetry.name` - """ - - module: str - attr: str - package_name: str - - -def get_langserve_export(filepath: Path) -> LangServeExport: - """Get LangServe export information from a `pyproject.toml` file. - - Args: - filepath: Path to the `pyproject.toml` file. - - Returns: - The LangServeExport information. - - Raises: - KeyError: If the `pyproject.toml` file is missing required fields. - """ - with filepath.open() as f: - # tomlkit types aren't amazing - treat as Dict instead - data = cast("dict[str, Any]", load(f)) - try: - module = str(data["tool"]["langserve"]["export_module"]) - attr = str(data["tool"]["langserve"]["export_attr"]) - package_name = str(data["tool"]["poetry"]["name"]) - except KeyError as e: - msg = "Invalid LangServe PyProject.toml" - raise KeyError(msg) from e - return LangServeExport(module=module, attr=attr, package_name=package_name) diff --git a/libs/cli/langchain_cli/utils/pyproject.py b/libs/cli/langchain_cli/utils/pyproject.py deleted file mode 100644 index 1014f83612d..00000000000 --- a/libs/cli/langchain_cli/utils/pyproject.py +++ /dev/null @@ -1,50 +0,0 @@ -"""Pyproject.toml utilities.""" - -import contextlib -from collections.abc import Iterable -from pathlib import Path -from typing import Any - -from tomlkit import dump, inline_table, load -from tomlkit.items import InlineTable - - -def _get_dep_inline_table(path: Path) -> InlineTable: - dep = inline_table() - dep.update({"path": str(path), "develop": True}) - return dep - - -def add_dependencies_to_pyproject_toml( - pyproject_toml: Path, - local_editable_dependencies: Iterable[tuple[str, Path]], -) -> None: - """Add dependencies to `pyproject.toml`.""" - with pyproject_toml.open(encoding="utf-8") as f: - # tomlkit types aren't amazing - treat as Dict instead - pyproject: dict[str, Any] = load(f) - pyproject["tool"]["poetry"]["dependencies"].update( - { - name: _get_dep_inline_table(loc.relative_to(pyproject_toml.parent)) - for name, loc in local_editable_dependencies - }, - ) - with pyproject_toml.open("w", encoding="utf-8") as f: - dump(pyproject, f) - - -def remove_dependencies_from_pyproject_toml( - pyproject_toml: Path, - local_editable_dependencies: Iterable[str], -) -> None: - """Remove dependencies from `pyproject.toml`.""" - with pyproject_toml.open(encoding="utf-8") as f: - pyproject: dict[str, Any] = load(f) - # tomlkit types aren't amazing - treat as Dict instead - dependencies = pyproject["tool"]["poetry"]["dependencies"] - for name in local_editable_dependencies: - with contextlib.suppress(KeyError): - del dependencies[name] - - with pyproject_toml.open("w", encoding="utf-8") as f: - dump(pyproject, f) diff --git a/libs/cli/poetry.toml b/libs/cli/poetry.toml deleted file mode 100644 index ab1033bd372..00000000000 --- a/libs/cli/poetry.toml +++ /dev/null @@ -1,2 +0,0 @@ -[virtualenvs] -in-project = true diff --git a/libs/cli/pyproject.toml b/libs/cli/pyproject.toml deleted file mode 100644 index 6af3e21abd1..00000000000 --- a/libs/cli/pyproject.toml +++ /dev/null @@ -1,111 +0,0 @@ -[build-system] -requires = ["hatchling"] -build-backend = "hatchling.build" - -[project] -authors = [{ name = "Erick Friis", email = "erick@langchain.dev" }] -license = { text = "MIT" } -requires-python = ">=3.10.0,<4.0.0" -dependencies = [ - "typer>=0.17.0,<1.0.0", - "gitpython>=3.0.0,<4.0.0", - "langserve[all]>=0.0.51,<1.0.0", - "uvicorn>=0.23.0,<1.0.0", - "tomlkit>=0.12.0,<1.0.0", - "gritql>=0.2.0,<1.0.0", -] -name = "langchain-cli" -version = "1.0.0a1" -description = "CLI for interacting with LangChain" -readme = "README.md" - -[project.urls] -Homepage = "https://docs.langchain.com/" -Documentation = "https://docs.langchain.com/" -Source = "https://github.com/langchain-ai/langchain/tree/master/libs/cli" -Changelog = "https://github.com/langchain-ai/langchain/releases?q=%22langchain-cli%3D%3D1%22" -Twitter = "https://x.com/LangChain" -Slack = "https://www.langchain.com/join-community" -Reddit = "https://www.reddit.com/r/LangChain/" - -[project.scripts] -langchain = "langchain_cli.cli:app" -langchain-cli = "langchain_cli.cli:app" - -[dependency-groups] -dev = [ - "pytest>=7.4.2,<9.0.0", - "pytest-watcher>=0.3.4,<1.0.0" -] -lint = [ - "ruff>=0.14.11,<0.15.0" -] -test = [ - "langchain-core", - "langchain-classic" -] -typing = [ - "mypy>=1.19.1,<1.20", - "langchain-classic" -] -test_integration = [] - -[tool.uv.sources] -langchain-core = { path = "../core", editable = true } -langchain-classic = { path = "../langchain", editable = true } - -[tool.ruff.format] -docstring-code-format = true - -[tool.ruff.lint] -select = [ "ALL",] -ignore = [ - "C90", # McCabe complexity - "COM812", # Messes with the formatter - "CPY", # No copyright - "FIX002", # Line contains TODO - "PERF203", # Rarely useful - "PLR09", # Too many something (arg, statements, etc) - "TD002", # Missing author in TODO - "TD003", # Missing issue link in TODO - - # TODO rules - "BLE", -] -unfixable = [ - "B028", # People should intentionally tune the stacklevel -] - -flake8-annotations.allow-star-arg-any = true -flake8-annotations.mypy-init-return = true -flake8-type-checking.runtime-evaluated-base-classes = ["pydantic.BaseModel","langchain_core.load.serializable.Serializable","langchain_core.runnables.base.RunnableSerializable"] -pep8-naming.classmethod-decorators = [ "classmethod", "langchain_core.utils.pydantic.pre_init", "pydantic.field_validator", "pydantic.v1.root_validator",] -pyupgrade.keep-runtime-typing = true - -[tool.ruff.lint.pydocstyle] -convention = "google" -ignore-var-parameters = true # ignore missing documentation for *args and **kwargs parameters - -[tool.ruff.lint.flake8-tidy-imports] -ban-relative-imports = "all" - -[tool.ruff.lint.per-file-ignores] -"tests/**" = [ "D1", "S", "SLF",] -"scripts/**" = [ "INP", "S",] - -[tool.pytest.ini_options] -addopts = "--strict-markers --strict-config --durations=5" -markers = [ - "compile: mark placeholder test used to compile integration tests without running them", -] - -[tool.mypy] -plugins = ["pydantic.mypy"] -strict = true -enable_error_code = "deprecated" -warn_unreachable = true - -exclude = [ - "langchain_cli/integration_template", - "langchain_cli/package_template", -] diff --git a/libs/cli/scripts/generate_migrations.py b/libs/cli/scripts/generate_migrations.py deleted file mode 100644 index 89adb72ad47..00000000000 --- a/libs/cli/scripts/generate_migrations.py +++ /dev/null @@ -1,135 +0,0 @@ -"""Script to generate migrations for the migration script.""" - -from __future__ import annotations - -import json -import pkgutil -from pathlib import Path - -import click - -from langchain_cli.namespaces.migrate.generate.generic import ( - generate_simplified_migrations, -) -from langchain_cli.namespaces.migrate.generate.grit import ( - dump_migrations_as_grit, -) -from langchain_cli.namespaces.migrate.generate.partner import ( - get_migrations_for_partner_package, -) - - -@click.group() -def cli() -> None: - """Migration scripts management.""" - - -@cli.command() -@click.option( - "--pkg1", - default="langchain", -) -@click.option( - "--pkg2", - default="langchain_community", -) -@click.option( - "--output", - default=None, - help="Output file for the migration script.", -) -@click.option( - "--filter-by-all/--no-filter-by-all", - default=True, - help="Output file for the migration script.", -) -@click.option( - "--format", - "format_", - type=click.Choice(["json", "grit"], case_sensitive=False), - default="json", - help="The output format for the migration script (json or grit).", -) -def generic( - pkg1: str, - pkg2: str, - output: str | None, - filter_by_all: bool, # noqa: FBT001 - format_: str, -) -> None: - """Generate a migration script.""" - click.echo("Migration script generated.") - migrations = generate_simplified_migrations(pkg1, pkg2, filter_by_all=filter_by_all) - - if output is not None: - name = output.removesuffix(".json").removesuffix(".grit") - else: - name = f"{pkg1}_to_{pkg2}" - - if output is None: - output = f"{name}.json" if format_ == "json" else f"{name}.grit" - - if format_ == "json": - dumped = json.dumps(migrations, indent=2, sort_keys=True) - else: - dumped = dump_migrations_as_grit(name, migrations) - - Path(output).write_text(dumped, encoding="utf-8") - - -def handle_partner(pkg: str, output: str | None = None) -> None: - """Handle partner package migrations.""" - migrations = get_migrations_for_partner_package(pkg) - # Run with python 3.9+ - name = pkg.removeprefix("langchain_") - data = dump_migrations_as_grit(name, migrations) - output_name = f"{name}.grit" if output is None else output - if migrations: - Path(output_name).write_text(data, encoding="utf-8") - click.secho(f"LangChain migration script saved to {output_name}") - else: - click.secho(f"No migrations found for {pkg}", fg="yellow") - - -@cli.command() -@click.argument("pkg") -@click.option("--output", default=None, help="Output file for the migration script.") -def partner(pkg: str, output: str) -> None: - """Generate migration scripts specifically for LangChain modules.""" - click.echo("Migration script for LangChain generated.") - handle_partner(pkg, output) - - -@cli.command() -@click.argument("json_file") -def json_to_grit(json_file: str) -> None: - """Generate a Grit migration from an old JSON migration file.""" - file = Path(json_file) - with file.open() as f: - migrations = json.load(f) - name = file.stem - data = dump_migrations_as_grit(name, migrations) - output_name = f"{name}.grit" - Path(output_name).write_text(data, encoding="utf-8") - click.secho(f"GritQL migration script saved to {output_name}") - - -@cli.command() -def all_installed_partner_pkgs() -> None: - """Generate migration scripts for all LangChain modules.""" - # Will generate migrations for all partner packages. - # Define as "langchain_". - # First let's determine which packages are installed in the environment - # and then generate migrations for them. - langchain_pkgs = [ - name - for _, name, _ in pkgutil.iter_modules() - if name.startswith("langchain_") - and name not in {"langchain_core", "langchain_cli", "langchain_community"} - ] - for pkg in langchain_pkgs: - handle_partner(pkg) - - -if __name__ == "__main__": - cli() diff --git a/libs/cli/tests/__init__.py b/libs/cli/tests/__init__.py deleted file mode 100644 index e69de29bb2d..00000000000 diff --git a/libs/cli/tests/integration_tests/__init__.py b/libs/cli/tests/integration_tests/__init__.py deleted file mode 100644 index e69de29bb2d..00000000000 diff --git a/libs/cli/tests/integration_tests/test_compile.py b/libs/cli/tests/integration_tests/test_compile.py deleted file mode 100644 index f315e45f521..00000000000 --- a/libs/cli/tests/integration_tests/test_compile.py +++ /dev/null @@ -1,6 +0,0 @@ -import pytest - - -@pytest.mark.compile -def test_placeholder() -> None: - """Used for compiling integration tests without running any real tests.""" diff --git a/libs/cli/tests/unit_tests/__init__.py b/libs/cli/tests/unit_tests/__init__.py deleted file mode 100644 index e69de29bb2d..00000000000 diff --git a/libs/cli/tests/unit_tests/migrate/__init__.py b/libs/cli/tests/unit_tests/migrate/__init__.py deleted file mode 100644 index e69de29bb2d..00000000000 diff --git a/libs/cli/tests/unit_tests/migrate/cli_runner/__init__.py b/libs/cli/tests/unit_tests/migrate/cli_runner/__init__.py deleted file mode 100644 index e69de29bb2d..00000000000 diff --git a/libs/cli/tests/unit_tests/migrate/cli_runner/case.py b/libs/cli/tests/unit_tests/migrate/cli_runner/case.py deleted file mode 100644 index 2da621ca4ba..00000000000 --- a/libs/cli/tests/unit_tests/migrate/cli_runner/case.py +++ /dev/null @@ -1,15 +0,0 @@ -from __future__ import annotations - -from dataclasses import dataclass -from typing import TYPE_CHECKING - -if TYPE_CHECKING: - from tests.unit_tests.migrate.cli_runner.file import File - from tests.unit_tests.migrate.cli_runner.folder import Folder - - -@dataclass -class Case: - source: Folder | File - expected: Folder | File - name: str diff --git a/libs/cli/tests/unit_tests/migrate/cli_runner/cases/__init__.py b/libs/cli/tests/unit_tests/migrate/cli_runner/cases/__init__.py deleted file mode 100644 index 45ded4fce49..00000000000 --- a/libs/cli/tests/unit_tests/migrate/cli_runner/cases/__init__.py +++ /dev/null @@ -1,15 +0,0 @@ -from tests.unit_tests.migrate.cli_runner.case import Case -from tests.unit_tests.migrate.cli_runner.cases import imports -from tests.unit_tests.migrate.cli_runner.file import File -from tests.unit_tests.migrate.cli_runner.folder import Folder - -cases = [ - Case( - name="empty", - source=File("__init__.py", content=[]), - expected=File("__init__.py", content=[]), - ), - *imports.cases, -] -before = Folder("project", *[case.source for case in cases]) -expected = Folder("project", *[case.expected for case in cases]) diff --git a/libs/cli/tests/unit_tests/migrate/cli_runner/cases/imports.py b/libs/cli/tests/unit_tests/migrate/cli_runner/cases/imports.py deleted file mode 100644 index e4aa5e02c0e..00000000000 --- a/libs/cli/tests/unit_tests/migrate/cli_runner/cases/imports.py +++ /dev/null @@ -1,32 +0,0 @@ -from tests.unit_tests.migrate.cli_runner.case import Case -from tests.unit_tests.migrate.cli_runner.file import File - -cases = [ - Case( - name="Imports", - source=File( - "app.py", - content=[ - "from langchain_community.chat_models import ChatOpenAI", - "", - "", - "class foo:", - " a: int", - "", - "chain = ChatOpenAI()", - ], - ), - expected=File( - "app.py", - content=[ - "from langchain_openai import ChatOpenAI", - "", - "", - "class foo:", - " a: int", - "", - "chain = ChatOpenAI()", - ], - ), - ), -] diff --git a/libs/cli/tests/unit_tests/migrate/cli_runner/cases/imports_with_alias_changes.py b/libs/cli/tests/unit_tests/migrate/cli_runner/cases/imports_with_alias_changes.py deleted file mode 100644 index ef66b417ea7..00000000000 --- a/libs/cli/tests/unit_tests/migrate/cli_runner/cases/imports_with_alias_changes.py +++ /dev/null @@ -1,30 +0,0 @@ -"""Handle a test case where the import is updated and may involve an alias change.""" - -from tests.unit_tests.migrate.cli_runner.case import Case -from tests.unit_tests.migrate.cli_runner.file import File - -# The test case right now make sure that if we update the import -# of RunnableMap to RunnableParallel then the code that's using RunnableMap -# should be updated as well (or else we keep importing RunnableMap.) -cases = [ - Case( - name="Imports", - source=File( - "app.py", - content=[ - "from langchain.runnables import RunnableMap", - "", - "chain = RunnableMap({})", - ], - ), - expected=File( - "app.py", - content=[ - "from langchain_core.runnables import RunnableMap", - "", - "chain = RunnableMap({})", - ], - ), - ), -] -"" diff --git a/libs/cli/tests/unit_tests/migrate/cli_runner/file.py b/libs/cli/tests/unit_tests/migrate/cli_runner/file.py deleted file mode 100644 index c571e7c6099..00000000000 --- a/libs/cli/tests/unit_tests/migrate/cli_runner/file.py +++ /dev/null @@ -1,19 +0,0 @@ -from __future__ import annotations - - -class File: - def __init__(self, name: str, content: list[str] | None = None) -> None: - self.name = name - self.content = "\n".join(content or []) - - def __eq__(self, __value: object, /) -> bool: - if not isinstance(__value, File): - return NotImplemented - - if self.name != __value.name: - return False - - return self.content == __value.content - - def __hash__(self) -> int: - return hash((self.name, self.content)) diff --git a/libs/cli/tests/unit_tests/migrate/cli_runner/folder.py b/libs/cli/tests/unit_tests/migrate/cli_runner/folder.py deleted file mode 100644 index d5f19fdd698..00000000000 --- a/libs/cli/tests/unit_tests/migrate/cli_runner/folder.py +++ /dev/null @@ -1,65 +0,0 @@ -from __future__ import annotations - -from typing import TYPE_CHECKING - -from tests.unit_tests.migrate.cli_runner.file import File - -if TYPE_CHECKING: - from pathlib import Path - - -class Folder: - def __init__(self, name: str, *files: Folder | File) -> None: - self.name = name - self._files = files - - @property - def files(self) -> list[Folder | File]: - return sorted(self._files, key=lambda f: f.name) - - def create_structure(self, root: Path) -> None: - path = root / self.name - path.mkdir() - - for file in self.files: - if isinstance(file, Folder): - file.create_structure(path) - else: - (path / file.name).write_text(file.content, encoding="utf-8") - - @classmethod - def from_structure(cls, root: Path) -> Folder: - name = root.name - files: list[File | Folder] = [] - - for path in root.iterdir(): - if path.is_dir(): - files.append(cls.from_structure(path)) - else: - files.append( - File(path.name, path.read_text(encoding="utf-8").splitlines()), - ) - - return Folder(name, *files) - - def __eq__(self, __value: object, /) -> bool: - if isinstance(__value, File): - return False - - if not isinstance(__value, Folder): - return NotImplemented - - if self.name != __value.name: - return False - - if len(self.files) != len(__value.files): - return False - - for self_file, other_file in zip(self.files, __value.files, strict=False): - if self_file != other_file: - return False - - return True - - def __hash__(self) -> int: - return hash((self.name, tuple(self.files))) diff --git a/libs/cli/tests/unit_tests/migrate/cli_runner/test_cli.py b/libs/cli/tests/unit_tests/migrate/cli_runner/test_cli.py deleted file mode 100644 index 53f88c3acb9..00000000000 --- a/libs/cli/tests/unit_tests/migrate/cli_runner/test_cli.py +++ /dev/null @@ -1,56 +0,0 @@ -from __future__ import annotations - -import difflib -from pathlib import Path - -import pytest -from typer.testing import CliRunner - -from langchain_cli.cli import app -from tests.unit_tests.migrate.cli_runner.cases import before, expected -from tests.unit_tests.migrate.cli_runner.folder import Folder - -pytest.importorskip("gritql") - - -def find_issue(current: Folder, expected: Folder) -> str: - for current_file, expected_file in zip(current.files, expected.files, strict=False): - if current_file != expected_file: - if current_file.name != expected_file.name: - return ( - f"Files have " - f"different names: {current_file.name} != {expected_file.name}" - ) - if isinstance(current_file, Folder) and isinstance(expected_file, Folder): - return find_issue(current_file, expected_file) - if isinstance(current_file, Folder) or isinstance(expected_file, Folder): - return ( - f"One of the files is a " - f"folder: {current_file.name} != {expected_file.name}" - ) - return "\n".join( - difflib.unified_diff( - current_file.content.splitlines(), - expected_file.content.splitlines(), - fromfile=current_file.name, - tofile=expected_file.name, - ), - ) - return "Unknown" - - -@pytest.mark.xfail(reason="grit may not be installed in env") -def test_command_line(tmp_path: Path) -> None: - runner = CliRunner() - - with runner.isolated_filesystem(temp_dir=tmp_path) as td: - before.create_structure(root=Path(td)) - # The input is used to force through the confirmation. - result = runner.invoke(app, ["migrate", before.name, "--force"]) - if result.exit_code != 0: - raise RuntimeError(result.output) - - after = Folder.from_structure(Path(td) / before.name) - - if after != expected: - raise ValueError(find_issue(after, expected)) diff --git a/libs/cli/tests/unit_tests/migrate/generate/__init__.py b/libs/cli/tests/unit_tests/migrate/generate/__init__.py deleted file mode 100644 index e69de29bb2d..00000000000 diff --git a/libs/cli/tests/unit_tests/migrate/generate/test_langchain_migration.py b/libs/cli/tests/unit_tests/migrate/generate/test_langchain_migration.py deleted file mode 100644 index db243b5d470..00000000000 --- a/libs/cli/tests/unit_tests/migrate/generate/test_langchain_migration.py +++ /dev/null @@ -1,63 +0,0 @@ -import pytest -from langchain_classic._api import suppress_langchain_deprecation_warning as sup2 -from langchain_core._api import suppress_langchain_deprecation_warning as sup1 - -from langchain_cli.namespaces.migrate.generate.generic import ( - generate_simplified_migrations, -) - - -@pytest.mark.xfail(reason="Unknown reason") -def test_create_json_agent_migration() -> None: - """Test migration of `create_json_agent` from langchain to `langchain_community`.""" - with sup1(), sup2(): - raw_migrations = generate_simplified_migrations( - from_package="langchain", - to_package="langchain_community", - ) - json_agent_migrations = [ - migration - for migration in raw_migrations - if "create_json_agent" in migration[0] - ] - if json_agent_migrations != [ - ( - "langchain.agents.create_json_agent", - "langchain_community.agent_toolkits.create_json_agent", - ), - ( - "langchain.agents.agent_toolkits.create_json_agent", - "langchain_community.agent_toolkits.create_json_agent", - ), - ( - "langchain.agents.agent_toolkits.json.base.create_json_agent", - "langchain_community.agent_toolkits.create_json_agent", - ), - ]: - msg = "json_agent_migrations did not match the expected value" - raise ValueError(msg) - - -@pytest.mark.xfail(reason="Unknown reason") -def test_create_single_store_retriever_db() -> None: - """Test migration from `langchain` to `langchain_core`.""" - with sup1(), sup2(): - raw_migrations = generate_simplified_migrations( - from_package="langchain", - to_package="langchain_core", - ) - # SingleStore was an old name for VectorStoreRetriever - single_store_migration = [ - migration for migration in raw_migrations if "SingleStore" in migration[0] - ] - if single_store_migration != [ - ( - "langchain.vectorstores.singlestoredb.SingleStoreDBRetriever", - "langchain_core.vectorstores.VectorStoreRetriever", - ), - ]: - msg = ( - "Unexpected migration: single_store_migration does not match expected " - "value" - ) - raise ValueError(msg) diff --git a/libs/cli/tests/unit_tests/migrate/generate/test_partner_migrations.py b/libs/cli/tests/unit_tests/migrate/generate/test_partner_migrations.py deleted file mode 100644 index a636ce48e62..00000000000 --- a/libs/cli/tests/unit_tests/migrate/generate/test_partner_migrations.py +++ /dev/null @@ -1,48 +0,0 @@ -import pytest - -from langchain_cli.namespaces.migrate.generate.partner import ( - get_migrations_for_partner_package, -) - -pytest.importorskip(modname="langchain_openai") - - -def test_generate_migrations() -> None: - migrations = get_migrations_for_partner_package("langchain_openai") - if migrations != [ - ("langchain_community.llms.openai.OpenAI", "langchain_openai.OpenAI"), - ("langchain_community.llms.openai.AzureOpenAI", "langchain_openai.AzureOpenAI"), - ( - "langchain_community.embeddings.openai.OpenAIEmbeddings", - "langchain_openai.OpenAIEmbeddings", - ), - ( - "langchain_community.embeddings.azure_openai.AzureOpenAIEmbeddings", - "langchain_openai.AzureOpenAIEmbeddings", - ), - ( - "langchain_community.chat_models.openai.ChatOpenAI", - "langchain_openai.ChatOpenAI", - ), - ( - "langchain_community.chat_models.azure_openai.AzureChatOpenAI", - "langchain_openai.AzureChatOpenAI", - ), - ("langchain_community.llms.AzureOpenAI", "langchain_openai.AzureOpenAI"), - ("langchain_community.llms.OpenAI", "langchain_openai.OpenAI"), - ( - "langchain_community.embeddings.AzureOpenAIEmbeddings", - "langchain_openai.AzureOpenAIEmbeddings", - ), - ( - "langchain_community.embeddings.OpenAIEmbeddings", - "langchain_openai.OpenAIEmbeddings", - ), - ( - "langchain_community.chat_models.AzureChatOpenAI", - "langchain_openai.AzureChatOpenAI", - ), - ("langchain_community.chat_models.ChatOpenAI", "langchain_openai.ChatOpenAI"), - ]: - msg = "Migrations do not match expected result" - raise ValueError(msg) diff --git a/libs/cli/tests/unit_tests/migrate/generate/test_utils.py b/libs/cli/tests/unit_tests/migrate/generate/test_utils.py deleted file mode 100644 index cc73e3bf2de..00000000000 --- a/libs/cli/tests/unit_tests/migrate/generate/test_utils.py +++ /dev/null @@ -1,7 +0,0 @@ -from langchain_cli.namespaces.migrate.generate.utils import PKGS_ROOT - - -def test_root() -> None: - if PKGS_ROOT.name != "libs": - msg = "Expected PKGS_ROOT.name to be 'libs'." - raise ValueError(msg) diff --git a/libs/cli/tests/unit_tests/test_events.py b/libs/cli/tests/unit_tests/test_events.py deleted file mode 100644 index 52a793e1e5f..00000000000 --- a/libs/cli/tests/unit_tests/test_events.py +++ /dev/null @@ -1,11 +0,0 @@ -import pytest - -from langchain_cli.utils.events import EventDict, create_events - - -@pytest.mark.xfail(reason="Unknown reason") -def test_create_events() -> None: - result = create_events([EventDict(event="Test Event", properties={"test": "test"})]) - if result != {"status": "success"}: - msg = "Expected {'status': 'success'}, got " + repr(result) - raise ValueError(msg) diff --git a/libs/cli/tests/unit_tests/test_utils.py b/libs/cli/tests/unit_tests/test_utils.py deleted file mode 100644 index 6ac6e593437..00000000000 --- a/libs/cli/tests/unit_tests/test_utils.py +++ /dev/null @@ -1,169 +0,0 @@ -from __future__ import annotations - -from typing import Any - -import pytest - -from langchain_cli.constants import ( - DEFAULT_GIT_REF, - DEFAULT_GIT_REPO, - DEFAULT_GIT_SUBDIRECTORY, -) -from langchain_cli.utils.git import DependencySource, parse_dependency_string - - -def _assert_dependency_equals( - dep: DependencySource, - *, - git: str | None = None, - ref: str | None = None, - subdirectory: str | None = None, - event_metadata: dict[str, Any] | None = None, -) -> None: - if dep["git"] != git: - msg = f"Expected git to be {git} but got {dep['git']}" - raise ValueError(msg) - if dep["ref"] != ref: - msg = f"Expected ref to be {ref} but got {dep['ref']}" - raise ValueError(msg) - if dep["subdirectory"] != subdirectory: - msg = ( - f"Expected subdirectory to be {subdirectory} but got {dep['subdirectory']}" - ) - raise ValueError(msg) - if dep["subdirectory"] != subdirectory: - msg = ( - f"Expected subdirectory to be {subdirectory} but got {dep['subdirectory']}" - ) - raise ValueError(msg) - if event_metadata is not None and dep["event_metadata"] != event_metadata: - msg = ( - f"Expected event_metadata to be {event_metadata} " - f"but got {dep['event_metadata']}" - ) - raise ValueError(msg) - - -def test_dependency_string() -> None: - _assert_dependency_equals( - parse_dependency_string( - "git+ssh://git@github.com/efriis/myrepo.git", - None, - None, - None, - ), - git="ssh://git@github.com/efriis/myrepo.git", - ref=None, - subdirectory=None, - ) - - _assert_dependency_equals( - parse_dependency_string( - "git+https://github.com/efriis/myrepo.git#subdirectory=src", - None, - None, - None, - ), - git="https://github.com/efriis/myrepo.git", - subdirectory="src", - ref=None, - ) - - _assert_dependency_equals( - parse_dependency_string( - "git+ssh://git@github.com:efriis/myrepo.git#develop", - None, - None, - None, - ), - git="ssh://git@github.com:efriis/myrepo.git", - ref="develop", - subdirectory=None, - ) - - # also support a slash in ssh - _assert_dependency_equals( - parse_dependency_string( - "git+ssh://git@github.com/efriis/myrepo.git#develop", - None, - None, - None, - ), - git="ssh://git@github.com/efriis/myrepo.git", - ref="develop", - subdirectory=None, - ) - - # looks like poetry supports both an @ and a # - _assert_dependency_equals( - parse_dependency_string( - "git+ssh://git@github.com:efriis/myrepo.git@develop", - None, - None, - None, - ), - git="ssh://git@github.com:efriis/myrepo.git", - ref="develop", - subdirectory=None, - ) - - _assert_dependency_equals( - parse_dependency_string("simple-pirate", None, None, None), - git=DEFAULT_GIT_REPO, - subdirectory=f"{DEFAULT_GIT_SUBDIRECTORY}/simple-pirate", - ref=DEFAULT_GIT_REF, - ) - - -def test_dependency_string_both() -> None: - _assert_dependency_equals( - parse_dependency_string( - "git+https://github.com/efriis/myrepo.git@branch#subdirectory=src", - None, - None, - None, - ), - git="https://github.com/efriis/myrepo.git", - subdirectory="src", - ref="branch", - ) - - -def test_dependency_string_invalids() -> None: - # expect error for wrong order - # Bypassing validation since the ValueError message is dynamic - with pytest.raises(ValueError): # noqa: PT011 - parse_dependency_string( - "git+https://github.com/efriis/myrepo.git#subdirectory=src@branch", - None, - None, - None, - ) - # expect error for @subdirectory - - -def test_dependency_string_edge_case() -> None: - # weird unsolvable edge case of - # git+ssh://a@b - # this could be a ssh dep with user=a, and default ref - # or a ssh dep at a with ref=b. - # in this case, assume the first case (be greedy with the '@') - _assert_dependency_equals( - parse_dependency_string("git+ssh://a@b", None, None, None), - git="ssh://a@b", - subdirectory=None, - ref=None, - ) - - # weird one that is actually valid - _assert_dependency_equals( - parse_dependency_string( - "git+https://github.com/efriis/myrepo.git@subdirectory=src", - None, - None, - None, - ), - git="https://github.com/efriis/myrepo.git", - subdirectory=None, - ref="subdirectory=src", - ) diff --git a/libs/cli/uv.lock b/libs/cli/uv.lock deleted file mode 100644 index bcc5d367c0d..00000000000 --- a/libs/cli/uv.lock +++ /dev/null @@ -1,1820 +0,0 @@ -version = 1 -revision = 3 -requires-python = ">=3.10.0, <4.0.0" - -[[package]] -name = "annotated-doc" -version = "0.0.4" -source = { registry = "https://pypi.org/simple" } -sdist = { url = "https://files.pythonhosted.org/packages/57/ba/046ceea27344560984e26a590f90bc7f4a75b06701f653222458922b558c/annotated_doc-0.0.4.tar.gz", hash = "sha256:fbcda96e87e9c92ad167c2e53839e57503ecfda18804ea28102353485033faa4", size = 7288, upload-time = "2025-11-10T22:07:42.062Z" } -wheels = [ - { url = "https://files.pythonhosted.org/packages/1e/d3/26bf1008eb3d2daa8ef4cacc7f3bfdc11818d111f7e2d0201bc6e3b49d45/annotated_doc-0.0.4-py3-none-any.whl", hash = "sha256:571ac1dc6991c450b25a9c2d84a3705e2ae7a53467b5d111c24fa8baabbed320", size = 5303, upload-time = "2025-11-10T22:07:40.673Z" }, -] - -[[package]] -name = "annotated-types" -version = "0.7.0" -source = { registry = "https://pypi.org/simple" } -sdist = { url = "https://files.pythonhosted.org/packages/ee/67/531ea369ba64dcff5ec9c3402f9f51bf748cec26dde048a2f973a4eea7f5/annotated_types-0.7.0.tar.gz", hash = "sha256:aff07c09a53a08bc8cfccb9c85b05f1aa9a2a6f23728d790723543408344ce89", size = 16081, upload-time = "2024-05-20T21:33:25.928Z" } -wheels = [ - { url = "https://files.pythonhosted.org/packages/78/b6/6307fbef88d9b5ee7421e68d78a9f162e0da4900bc5f5793f6d3d0e34fb8/annotated_types-0.7.0-py3-none-any.whl", hash = "sha256:1f02e8b43a8fbbc3f3e0d4f0f4bfc8131bcb4eebe8849b8e5c773f3a1c582a53", size = 13643, upload-time = "2024-05-20T21:33:24.1Z" }, -] - -[[package]] -name = "anyio" -version = "4.11.0" -source = { registry = "https://pypi.org/simple" } -dependencies = [ - { name = "exceptiongroup", marker = "python_full_version < '3.11'" }, - { name = "idna" }, - { name = "sniffio" }, - { name = "typing-extensions", marker = "python_full_version < '3.13'" }, -] -sdist = { url = "https://files.pythonhosted.org/packages/c6/78/7d432127c41b50bccba979505f272c16cbcadcc33645d5fa3a738110ae75/anyio-4.11.0.tar.gz", hash = "sha256:82a8d0b81e318cc5ce71a5f1f8b5c4e63619620b63141ef8c995fa0db95a57c4", size = 219094, upload-time = "2025-09-23T09:19:12.58Z" } -wheels = [ - { url = "https://files.pythonhosted.org/packages/15/b3/9b1a8074496371342ec1e796a96f99c82c945a339cd81a8e73de28b4cf9e/anyio-4.11.0-py3-none-any.whl", hash = "sha256:0287e96f4d26d4149305414d4e3bc32f0dcd0862365a4bddea19d7a1ec38c4fc", size = 109097, upload-time = "2025-09-23T09:19:10.601Z" }, -] - -[[package]] -name = "async-timeout" -version = "4.0.3" -source = { registry = "https://pypi.org/simple" } -sdist = { url = "https://files.pythonhosted.org/packages/87/d6/21b30a550dafea84b1b8eee21b5e23fa16d010ae006011221f33dcd8d7f8/async-timeout-4.0.3.tar.gz", hash = "sha256:4640d96be84d82d02ed59ea2b7105a0f7b33abe8703703cd0ab0bf87c427522f", size = 8345, upload-time = "2023-08-10T16:35:56.907Z" } -wheels = [ - { url = "https://files.pythonhosted.org/packages/a7/fa/e01228c2938de91d47b307831c62ab9e4001e747789d0b05baf779a6488c/async_timeout-4.0.3-py3-none-any.whl", hash = "sha256:7405140ff1230c310e51dc27b3145b9092d659ce68ff733fb0cefe3ee42be028", size = 5721, upload-time = "2023-08-10T16:35:55.203Z" }, -] - -[[package]] -name = "certifi" -version = "2025.8.3" -source = { registry = "https://pypi.org/simple" } -sdist = { url = "https://files.pythonhosted.org/packages/dc/67/960ebe6bf230a96cda2e0abcf73af550ec4f090005363542f0765df162e0/certifi-2025.8.3.tar.gz", hash = "sha256:e564105f78ded564e3ae7c923924435e1daa7463faeab5bb932bc53ffae63407", size = 162386, upload-time = "2025-08-03T03:07:47.08Z" } -wheels = [ - { url = "https://files.pythonhosted.org/packages/e5/48/1549795ba7742c948d2ad169c1c8cdbae65bc450d6cd753d124b17c8cd32/certifi-2025.8.3-py3-none-any.whl", hash = "sha256:f6c12493cfb1b06ba2ff328595af9350c65d6644968e5d3a2ffd78699af217a5", size = 161216, upload-time = "2025-08-03T03:07:45.777Z" }, -] - -[[package]] -name = "charset-normalizer" -version = "3.4.3" -source = { registry = "https://pypi.org/simple" } -sdist = { url = "https://files.pythonhosted.org/packages/83/2d/5fd176ceb9b2fc619e63405525573493ca23441330fcdaee6bef9460e924/charset_normalizer-3.4.3.tar.gz", hash = "sha256:6fce4b8500244f6fcb71465d4a4930d132ba9ab8e71a7859e6a5d59851068d14", size = 122371, upload-time = "2025-08-09T07:57:28.46Z" } -wheels = [ - { url = "https://files.pythonhosted.org/packages/d6/98/f3b8013223728a99b908c9344da3aa04ee6e3fa235f19409033eda92fb78/charset_normalizer-3.4.3-cp310-cp310-macosx_10_9_universal2.whl", hash = "sha256:fb7f67a1bfa6e40b438170ebdc8158b78dc465a5a67b6dde178a46987b244a72", size = 207695, upload-time = "2025-08-09T07:55:36.452Z" }, - { url = "https://files.pythonhosted.org/packages/21/40/5188be1e3118c82dcb7c2a5ba101b783822cfb413a0268ed3be0468532de/charset_normalizer-3.4.3-cp310-cp310-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:cc9370a2da1ac13f0153780040f465839e6cccb4a1e44810124b4e22483c93fe", size = 147153, upload-time = "2025-08-09T07:55:38.467Z" }, - { url = "https://files.pythonhosted.org/packages/37/60/5d0d74bc1e1380f0b72c327948d9c2aca14b46a9efd87604e724260f384c/charset_normalizer-3.4.3-cp310-cp310-manylinux2014_ppc64le.manylinux_2_17_ppc64le.manylinux_2_28_ppc64le.whl", hash = "sha256:07a0eae9e2787b586e129fdcbe1af6997f8d0e5abaa0bc98c0e20e124d67e601", size = 160428, upload-time = "2025-08-09T07:55:40.072Z" }, - { url = "https://files.pythonhosted.org/packages/85/9a/d891f63722d9158688de58d050c59dc3da560ea7f04f4c53e769de5140f5/charset_normalizer-3.4.3-cp310-cp310-manylinux2014_s390x.manylinux_2_17_s390x.manylinux_2_28_s390x.whl", hash = "sha256:74d77e25adda8581ffc1c720f1c81ca082921329452eba58b16233ab1842141c", size = 157627, upload-time = "2025-08-09T07:55:41.706Z" }, - { url = "https://files.pythonhosted.org/packages/65/1a/7425c952944a6521a9cfa7e675343f83fd82085b8af2b1373a2409c683dc/charset_normalizer-3.4.3-cp310-cp310-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:d0e909868420b7049dafd3a31d45125b31143eec59235311fc4c57ea26a4acd2", size = 152388, upload-time = "2025-08-09T07:55:43.262Z" }, - { url = "https://files.pythonhosted.org/packages/f0/c9/a2c9c2a355a8594ce2446085e2ec97fd44d323c684ff32042e2a6b718e1d/charset_normalizer-3.4.3-cp310-cp310-musllinux_1_2_aarch64.whl", hash = "sha256:c6f162aabe9a91a309510d74eeb6507fab5fff92337a15acbe77753d88d9dcf0", size = 150077, upload-time = "2025-08-09T07:55:44.903Z" }, - { url = "https://files.pythonhosted.org/packages/3b/38/20a1f44e4851aa1c9105d6e7110c9d020e093dfa5836d712a5f074a12bf7/charset_normalizer-3.4.3-cp310-cp310-musllinux_1_2_ppc64le.whl", hash = "sha256:4ca4c094de7771a98d7fbd67d9e5dbf1eb73efa4f744a730437d8a3a5cf994f0", size = 161631, upload-time = "2025-08-09T07:55:46.346Z" }, - { url = "https://files.pythonhosted.org/packages/a4/fa/384d2c0f57edad03d7bec3ebefb462090d8905b4ff5a2d2525f3bb711fac/charset_normalizer-3.4.3-cp310-cp310-musllinux_1_2_s390x.whl", hash = "sha256:02425242e96bcf29a49711b0ca9f37e451da7c70562bc10e8ed992a5a7a25cc0", size = 159210, upload-time = "2025-08-09T07:55:47.539Z" }, - { url = "https://files.pythonhosted.org/packages/33/9e/eca49d35867ca2db336b6ca27617deed4653b97ebf45dfc21311ce473c37/charset_normalizer-3.4.3-cp310-cp310-musllinux_1_2_x86_64.whl", hash = "sha256:78deba4d8f9590fe4dae384aeff04082510a709957e968753ff3c48399f6f92a", size = 153739, upload-time = "2025-08-09T07:55:48.744Z" }, - { url = "https://files.pythonhosted.org/packages/2a/91/26c3036e62dfe8de8061182d33be5025e2424002125c9500faff74a6735e/charset_normalizer-3.4.3-cp310-cp310-win32.whl", hash = "sha256:d79c198e27580c8e958906f803e63cddb77653731be08851c7df0b1a14a8fc0f", size = 99825, upload-time = "2025-08-09T07:55:50.305Z" }, - { url = "https://files.pythonhosted.org/packages/e2/c6/f05db471f81af1fa01839d44ae2a8bfeec8d2a8b4590f16c4e7393afd323/charset_normalizer-3.4.3-cp310-cp310-win_amd64.whl", hash = "sha256:c6e490913a46fa054e03699c70019ab869e990270597018cef1d8562132c2669", size = 107452, upload-time = "2025-08-09T07:55:51.461Z" }, - { url = "https://files.pythonhosted.org/packages/7f/b5/991245018615474a60965a7c9cd2b4efbaabd16d582a5547c47ee1c7730b/charset_normalizer-3.4.3-cp311-cp311-macosx_10_9_universal2.whl", hash = "sha256:b256ee2e749283ef3ddcff51a675ff43798d92d746d1a6e4631bf8c707d22d0b", size = 204483, upload-time = "2025-08-09T07:55:53.12Z" }, - { url = "https://files.pythonhosted.org/packages/c7/2a/ae245c41c06299ec18262825c1569c5d3298fc920e4ddf56ab011b417efd/charset_normalizer-3.4.3-cp311-cp311-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:13faeacfe61784e2559e690fc53fa4c5ae97c6fcedb8eb6fb8d0a15b475d2c64", size = 145520, upload-time = "2025-08-09T07:55:54.712Z" }, - { url = "https://files.pythonhosted.org/packages/3a/a4/b3b6c76e7a635748c4421d2b92c7b8f90a432f98bda5082049af37ffc8e3/charset_normalizer-3.4.3-cp311-cp311-manylinux2014_ppc64le.manylinux_2_17_ppc64le.manylinux_2_28_ppc64le.whl", hash = "sha256:00237675befef519d9af72169d8604a067d92755e84fe76492fef5441db05b91", size = 158876, upload-time = "2025-08-09T07:55:56.024Z" }, - { url = "https://files.pythonhosted.org/packages/e2/e6/63bb0e10f90a8243c5def74b5b105b3bbbfb3e7bb753915fe333fb0c11ea/charset_normalizer-3.4.3-cp311-cp311-manylinux2014_s390x.manylinux_2_17_s390x.manylinux_2_28_s390x.whl", hash = "sha256:585f3b2a80fbd26b048a0be90c5aae8f06605d3c92615911c3a2b03a8a3b796f", size = 156083, upload-time = "2025-08-09T07:55:57.582Z" }, - { url = "https://files.pythonhosted.org/packages/87/df/b7737ff046c974b183ea9aa111b74185ac8c3a326c6262d413bd5a1b8c69/charset_normalizer-3.4.3-cp311-cp311-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:0e78314bdc32fa80696f72fa16dc61168fda4d6a0c014e0380f9d02f0e5d8a07", size = 150295, upload-time = "2025-08-09T07:55:59.147Z" }, - { url = "https://files.pythonhosted.org/packages/61/f1/190d9977e0084d3f1dc169acd060d479bbbc71b90bf3e7bf7b9927dec3eb/charset_normalizer-3.4.3-cp311-cp311-musllinux_1_2_aarch64.whl", hash = "sha256:96b2b3d1a83ad55310de8c7b4a2d04d9277d5591f40761274856635acc5fcb30", size = 148379, upload-time = "2025-08-09T07:56:00.364Z" }, - { url = "https://files.pythonhosted.org/packages/4c/92/27dbe365d34c68cfe0ca76f1edd70e8705d82b378cb54ebbaeabc2e3029d/charset_normalizer-3.4.3-cp311-cp311-musllinux_1_2_ppc64le.whl", hash = "sha256:939578d9d8fd4299220161fdd76e86c6a251987476f5243e8864a7844476ba14", size = 160018, upload-time = "2025-08-09T07:56:01.678Z" }, - { url = "https://files.pythonhosted.org/packages/99/04/baae2a1ea1893a01635d475b9261c889a18fd48393634b6270827869fa34/charset_normalizer-3.4.3-cp311-cp311-musllinux_1_2_s390x.whl", hash = "sha256:fd10de089bcdcd1be95a2f73dbe6254798ec1bda9f450d5828c96f93e2536b9c", size = 157430, upload-time = "2025-08-09T07:56:02.87Z" }, - { url = "https://files.pythonhosted.org/packages/2f/36/77da9c6a328c54d17b960c89eccacfab8271fdaaa228305330915b88afa9/charset_normalizer-3.4.3-cp311-cp311-musllinux_1_2_x86_64.whl", hash = "sha256:1e8ac75d72fa3775e0b7cb7e4629cec13b7514d928d15ef8ea06bca03ef01cae", size = 151600, upload-time = "2025-08-09T07:56:04.089Z" }, - { url = "https://files.pythonhosted.org/packages/64/d4/9eb4ff2c167edbbf08cdd28e19078bf195762e9bd63371689cab5ecd3d0d/charset_normalizer-3.4.3-cp311-cp311-win32.whl", hash = "sha256:6cf8fd4c04756b6b60146d98cd8a77d0cdae0e1ca20329da2ac85eed779b6849", size = 99616, upload-time = "2025-08-09T07:56:05.658Z" }, - { url = "https://files.pythonhosted.org/packages/f4/9c/996a4a028222e7761a96634d1820de8a744ff4327a00ada9c8942033089b/charset_normalizer-3.4.3-cp311-cp311-win_amd64.whl", hash = "sha256:31a9a6f775f9bcd865d88ee350f0ffb0e25936a7f930ca98995c05abf1faf21c", size = 107108, upload-time = "2025-08-09T07:56:07.176Z" }, - { url = "https://files.pythonhosted.org/packages/e9/5e/14c94999e418d9b87682734589404a25854d5f5d0408df68bc15b6ff54bb/charset_normalizer-3.4.3-cp312-cp312-macosx_10_13_universal2.whl", hash = "sha256:e28e334d3ff134e88989d90ba04b47d84382a828c061d0d1027b1b12a62b39b1", size = 205655, upload-time = "2025-08-09T07:56:08.475Z" }, - { url = "https://files.pythonhosted.org/packages/7d/a8/c6ec5d389672521f644505a257f50544c074cf5fc292d5390331cd6fc9c3/charset_normalizer-3.4.3-cp312-cp312-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:0cacf8f7297b0c4fcb74227692ca46b4a5852f8f4f24b3c766dd94a1075c4884", size = 146223, upload-time = "2025-08-09T07:56:09.708Z" }, - { url = "https://files.pythonhosted.org/packages/fc/eb/a2ffb08547f4e1e5415fb69eb7db25932c52a52bed371429648db4d84fb1/charset_normalizer-3.4.3-cp312-cp312-manylinux2014_ppc64le.manylinux_2_17_ppc64le.manylinux_2_28_ppc64le.whl", hash = "sha256:c6fd51128a41297f5409deab284fecbe5305ebd7e5a1f959bee1c054622b7018", size = 159366, upload-time = "2025-08-09T07:56:11.326Z" }, - { url = "https://files.pythonhosted.org/packages/82/10/0fd19f20c624b278dddaf83b8464dcddc2456cb4b02bb902a6da126b87a1/charset_normalizer-3.4.3-cp312-cp312-manylinux2014_s390x.manylinux_2_17_s390x.manylinux_2_28_s390x.whl", hash = "sha256:3cfb2aad70f2c6debfbcb717f23b7eb55febc0bb23dcffc0f076009da10c6392", size = 157104, upload-time = "2025-08-09T07:56:13.014Z" }, - { url = "https://files.pythonhosted.org/packages/16/ab/0233c3231af734f5dfcf0844aa9582d5a1466c985bbed6cedab85af9bfe3/charset_normalizer-3.4.3-cp312-cp312-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:1606f4a55c0fd363d754049cdf400175ee96c992b1f8018b993941f221221c5f", size = 151830, upload-time = "2025-08-09T07:56:14.428Z" }, - { url = "https://files.pythonhosted.org/packages/ae/02/e29e22b4e02839a0e4a06557b1999d0a47db3567e82989b5bb21f3fbbd9f/charset_normalizer-3.4.3-cp312-cp312-musllinux_1_2_aarch64.whl", hash = "sha256:027b776c26d38b7f15b26a5da1044f376455fb3766df8fc38563b4efbc515154", size = 148854, upload-time = "2025-08-09T07:56:16.051Z" }, - { url = "https://files.pythonhosted.org/packages/05/6b/e2539a0a4be302b481e8cafb5af8792da8093b486885a1ae4d15d452bcec/charset_normalizer-3.4.3-cp312-cp312-musllinux_1_2_ppc64le.whl", hash = "sha256:42e5088973e56e31e4fa58eb6bd709e42fc03799c11c42929592889a2e54c491", size = 160670, upload-time = "2025-08-09T07:56:17.314Z" }, - { url = "https://files.pythonhosted.org/packages/31/e7/883ee5676a2ef217a40ce0bffcc3d0dfbf9e64cbcfbdf822c52981c3304b/charset_normalizer-3.4.3-cp312-cp312-musllinux_1_2_s390x.whl", hash = "sha256:cc34f233c9e71701040d772aa7490318673aa7164a0efe3172b2981218c26d93", size = 158501, upload-time = "2025-08-09T07:56:18.641Z" }, - { url = "https://files.pythonhosted.org/packages/c1/35/6525b21aa0db614cf8b5792d232021dca3df7f90a1944db934efa5d20bb1/charset_normalizer-3.4.3-cp312-cp312-musllinux_1_2_x86_64.whl", hash = "sha256:320e8e66157cc4e247d9ddca8e21f427efc7a04bbd0ac8a9faf56583fa543f9f", size = 153173, upload-time = "2025-08-09T07:56:20.289Z" }, - { url = "https://files.pythonhosted.org/packages/50/ee/f4704bad8201de513fdc8aac1cabc87e38c5818c93857140e06e772b5892/charset_normalizer-3.4.3-cp312-cp312-win32.whl", hash = "sha256:fb6fecfd65564f208cbf0fba07f107fb661bcd1a7c389edbced3f7a493f70e37", size = 99822, upload-time = "2025-08-09T07:56:21.551Z" }, - { url = "https://files.pythonhosted.org/packages/39/f5/3b3836ca6064d0992c58c7561c6b6eee1b3892e9665d650c803bd5614522/charset_normalizer-3.4.3-cp312-cp312-win_amd64.whl", hash = "sha256:86df271bf921c2ee3818f0522e9a5b8092ca2ad8b065ece5d7d9d0e9f4849bcc", size = 107543, upload-time = "2025-08-09T07:56:23.115Z" }, - { url = "https://files.pythonhosted.org/packages/65/ca/2135ac97709b400c7654b4b764daf5c5567c2da45a30cdd20f9eefe2d658/charset_normalizer-3.4.3-cp313-cp313-macosx_10_13_universal2.whl", hash = "sha256:14c2a87c65b351109f6abfc424cab3927b3bdece6f706e4d12faaf3d52ee5efe", size = 205326, upload-time = "2025-08-09T07:56:24.721Z" }, - { url = "https://files.pythonhosted.org/packages/71/11/98a04c3c97dd34e49c7d247083af03645ca3730809a5509443f3c37f7c99/charset_normalizer-3.4.3-cp313-cp313-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:41d1fc408ff5fdfb910200ec0e74abc40387bccb3252f3f27c0676731df2b2c8", size = 146008, upload-time = "2025-08-09T07:56:26.004Z" }, - { url = "https://files.pythonhosted.org/packages/60/f5/4659a4cb3c4ec146bec80c32d8bb16033752574c20b1252ee842a95d1a1e/charset_normalizer-3.4.3-cp313-cp313-manylinux2014_ppc64le.manylinux_2_17_ppc64le.manylinux_2_28_ppc64le.whl", hash = "sha256:1bb60174149316da1c35fa5233681f7c0f9f514509b8e399ab70fea5f17e45c9", size = 159196, upload-time = "2025-08-09T07:56:27.25Z" }, - { url = "https://files.pythonhosted.org/packages/86/9e/f552f7a00611f168b9a5865a1414179b2c6de8235a4fa40189f6f79a1753/charset_normalizer-3.4.3-cp313-cp313-manylinux2014_s390x.manylinux_2_17_s390x.manylinux_2_28_s390x.whl", hash = "sha256:30d006f98569de3459c2fc1f2acde170b7b2bd265dc1943e87e1a4efe1b67c31", size = 156819, upload-time = "2025-08-09T07:56:28.515Z" }, - { url = "https://files.pythonhosted.org/packages/7e/95/42aa2156235cbc8fa61208aded06ef46111c4d3f0de233107b3f38631803/charset_normalizer-3.4.3-cp313-cp313-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:416175faf02e4b0810f1f38bcb54682878a4af94059a1cd63b8747244420801f", size = 151350, upload-time = "2025-08-09T07:56:29.716Z" }, - { url = "https://files.pythonhosted.org/packages/c2/a9/3865b02c56f300a6f94fc631ef54f0a8a29da74fb45a773dfd3dcd380af7/charset_normalizer-3.4.3-cp313-cp313-musllinux_1_2_aarch64.whl", hash = "sha256:6aab0f181c486f973bc7262a97f5aca3ee7e1437011ef0c2ec04b5a11d16c927", size = 148644, upload-time = "2025-08-09T07:56:30.984Z" }, - { url = "https://files.pythonhosted.org/packages/77/d9/cbcf1a2a5c7d7856f11e7ac2d782aec12bdfea60d104e60e0aa1c97849dc/charset_normalizer-3.4.3-cp313-cp313-musllinux_1_2_ppc64le.whl", hash = "sha256:fdabf8315679312cfa71302f9bd509ded4f2f263fb5b765cf1433b39106c3cc9", size = 160468, upload-time = "2025-08-09T07:56:32.252Z" }, - { url = "https://files.pythonhosted.org/packages/f6/42/6f45efee8697b89fda4d50580f292b8f7f9306cb2971d4b53f8914e4d890/charset_normalizer-3.4.3-cp313-cp313-musllinux_1_2_s390x.whl", hash = "sha256:bd28b817ea8c70215401f657edef3a8aa83c29d447fb0b622c35403780ba11d5", size = 158187, upload-time = "2025-08-09T07:56:33.481Z" }, - { url = "https://files.pythonhosted.org/packages/70/99/f1c3bdcfaa9c45b3ce96f70b14f070411366fa19549c1d4832c935d8e2c3/charset_normalizer-3.4.3-cp313-cp313-musllinux_1_2_x86_64.whl", hash = "sha256:18343b2d246dc6761a249ba1fb13f9ee9a2bcd95decc767319506056ea4ad4dc", size = 152699, upload-time = "2025-08-09T07:56:34.739Z" }, - { url = "https://files.pythonhosted.org/packages/a3/ad/b0081f2f99a4b194bcbb1934ef3b12aa4d9702ced80a37026b7607c72e58/charset_normalizer-3.4.3-cp313-cp313-win32.whl", hash = "sha256:6fb70de56f1859a3f71261cbe41005f56a7842cc348d3aeb26237560bfa5e0ce", size = 99580, upload-time = "2025-08-09T07:56:35.981Z" }, - { url = "https://files.pythonhosted.org/packages/9a/8f/ae790790c7b64f925e5c953b924aaa42a243fb778fed9e41f147b2a5715a/charset_normalizer-3.4.3-cp313-cp313-win_amd64.whl", hash = "sha256:cf1ebb7d78e1ad8ec2a8c4732c7be2e736f6e5123a4146c5b89c9d1f585f8cef", size = 107366, upload-time = "2025-08-09T07:56:37.339Z" }, - { url = "https://files.pythonhosted.org/packages/8e/91/b5a06ad970ddc7a0e513112d40113e834638f4ca1120eb727a249fb2715e/charset_normalizer-3.4.3-cp314-cp314-macosx_10_13_universal2.whl", hash = "sha256:3cd35b7e8aedeb9e34c41385fda4f73ba609e561faedfae0a9e75e44ac558a15", size = 204342, upload-time = "2025-08-09T07:56:38.687Z" }, - { url = "https://files.pythonhosted.org/packages/ce/ec/1edc30a377f0a02689342f214455c3f6c2fbedd896a1d2f856c002fc3062/charset_normalizer-3.4.3-cp314-cp314-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:b89bc04de1d83006373429975f8ef9e7932534b8cc9ca582e4db7d20d91816db", size = 145995, upload-time = "2025-08-09T07:56:40.048Z" }, - { url = "https://files.pythonhosted.org/packages/17/e5/5e67ab85e6d22b04641acb5399c8684f4d37caf7558a53859f0283a650e9/charset_normalizer-3.4.3-cp314-cp314-manylinux2014_ppc64le.manylinux_2_17_ppc64le.manylinux_2_28_ppc64le.whl", hash = "sha256:2001a39612b241dae17b4687898843f254f8748b796a2e16f1051a17078d991d", size = 158640, upload-time = "2025-08-09T07:56:41.311Z" }, - { url = "https://files.pythonhosted.org/packages/f1/e5/38421987f6c697ee3722981289d554957c4be652f963d71c5e46a262e135/charset_normalizer-3.4.3-cp314-cp314-manylinux2014_s390x.manylinux_2_17_s390x.manylinux_2_28_s390x.whl", hash = "sha256:8dcfc373f888e4fb39a7bc57e93e3b845e7f462dacc008d9749568b1c4ece096", size = 156636, upload-time = "2025-08-09T07:56:43.195Z" }, - { url = "https://files.pythonhosted.org/packages/a0/e4/5a075de8daa3ec0745a9a3b54467e0c2967daaaf2cec04c845f73493e9a1/charset_normalizer-3.4.3-cp314-cp314-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:18b97b8404387b96cdbd30ad660f6407799126d26a39ca65729162fd810a99aa", size = 150939, upload-time = "2025-08-09T07:56:44.819Z" }, - { url = "https://files.pythonhosted.org/packages/02/f7/3611b32318b30974131db62b4043f335861d4d9b49adc6d57c1149cc49d4/charset_normalizer-3.4.3-cp314-cp314-musllinux_1_2_aarch64.whl", hash = "sha256:ccf600859c183d70eb47e05a44cd80a4ce77394d1ac0f79dbd2dd90a69a3a049", size = 148580, upload-time = "2025-08-09T07:56:46.684Z" }, - { url = "https://files.pythonhosted.org/packages/7e/61/19b36f4bd67f2793ab6a99b979b4e4f3d8fc754cbdffb805335df4337126/charset_normalizer-3.4.3-cp314-cp314-musllinux_1_2_ppc64le.whl", hash = "sha256:53cd68b185d98dde4ad8990e56a58dea83a4162161b1ea9272e5c9182ce415e0", size = 159870, upload-time = "2025-08-09T07:56:47.941Z" }, - { url = "https://files.pythonhosted.org/packages/06/57/84722eefdd338c04cf3030ada66889298eaedf3e7a30a624201e0cbe424a/charset_normalizer-3.4.3-cp314-cp314-musllinux_1_2_s390x.whl", hash = "sha256:30a96e1e1f865f78b030d65241c1ee850cdf422d869e9028e2fc1d5e4db73b92", size = 157797, upload-time = "2025-08-09T07:56:49.756Z" }, - { url = "https://files.pythonhosted.org/packages/72/2a/aff5dd112b2f14bcc3462c312dce5445806bfc8ab3a7328555da95330e4b/charset_normalizer-3.4.3-cp314-cp314-musllinux_1_2_x86_64.whl", hash = "sha256:d716a916938e03231e86e43782ca7878fb602a125a91e7acb8b5112e2e96ac16", size = 152224, upload-time = "2025-08-09T07:56:51.369Z" }, - { url = "https://files.pythonhosted.org/packages/b7/8c/9839225320046ed279c6e839d51f028342eb77c91c89b8ef2549f951f3ec/charset_normalizer-3.4.3-cp314-cp314-win32.whl", hash = "sha256:c6dbd0ccdda3a2ba7c2ecd9d77b37f3b5831687d8dc1b6ca5f56a4880cc7b7ce", size = 100086, upload-time = "2025-08-09T07:56:52.722Z" }, - { url = "https://files.pythonhosted.org/packages/ee/7a/36fbcf646e41f710ce0a563c1c9a343c6edf9be80786edeb15b6f62e17db/charset_normalizer-3.4.3-cp314-cp314-win_amd64.whl", hash = "sha256:73dc19b562516fc9bcf6e5d6e596df0b4eb98d87e4f79f3ae71840e6ed21361c", size = 107400, upload-time = "2025-08-09T07:56:55.172Z" }, - { url = "https://files.pythonhosted.org/packages/8a/1f/f041989e93b001bc4e44bb1669ccdcf54d3f00e628229a85b08d330615c5/charset_normalizer-3.4.3-py3-none-any.whl", hash = "sha256:ce571ab16d890d23b5c278547ba694193a45011ff86a9162a71307ed9f86759a", size = 53175, upload-time = "2025-08-09T07:57:26.864Z" }, -] - -[[package]] -name = "click" -version = "8.3.0" -source = { registry = "https://pypi.org/simple" } -dependencies = [ - { name = "colorama", marker = "sys_platform == 'win32'" }, -] -sdist = { url = "https://files.pythonhosted.org/packages/46/61/de6cd827efad202d7057d93e0fed9294b96952e188f7384832791c7b2254/click-8.3.0.tar.gz", hash = "sha256:e7b8232224eba16f4ebe410c25ced9f7875cb5f3263ffc93cc3e8da705e229c4", size = 276943, upload-time = "2025-09-18T17:32:23.696Z" } -wheels = [ - { url = "https://files.pythonhosted.org/packages/db/d3/9dcc0f5797f070ec8edf30fbadfb200e71d9db6b84d211e3b2085a7589a0/click-8.3.0-py3-none-any.whl", hash = "sha256:9b9f285302c6e3064f4330c05f05b81945b2a39544279343e6e7c5f27a9baddc", size = 107295, upload-time = "2025-09-18T17:32:22.42Z" }, -] - -[[package]] -name = "colorama" -version = "0.4.6" -source = { registry = "https://pypi.org/simple" } -sdist = { url = "https://files.pythonhosted.org/packages/d8/53/6f443c9a4a8358a93a6792e2acffb9d9d5cb0a5cfd8802644b7b1c9a02e4/colorama-0.4.6.tar.gz", hash = "sha256:08695f5cb7ed6e0531a20572697297273c47b8cae5a63ffc6d6ed5c201be6e44", size = 27697, upload-time = "2022-10-25T02:36:22.414Z" } -wheels = [ - { url = "https://files.pythonhosted.org/packages/d1/d6/3965ed04c63042e047cb6a3e6ed1a63a35087b6a609aa3a15ed8ac56c221/colorama-0.4.6-py2.py3-none-any.whl", hash = "sha256:4f1d9991f5acc0ca119f9d443620b77f9d6b33703e51011c16baf57afb285fc6", size = 25335, upload-time = "2022-10-25T02:36:20.889Z" }, -] - -[[package]] -name = "exceptiongroup" -version = "1.3.0" -source = { registry = "https://pypi.org/simple" } -dependencies = [ - { name = "typing-extensions", marker = "python_full_version < '3.13'" }, -] -sdist = { url = "https://files.pythonhosted.org/packages/0b/9f/a65090624ecf468cdca03533906e7c69ed7588582240cfe7cc9e770b50eb/exceptiongroup-1.3.0.tar.gz", hash = "sha256:b241f5885f560bc56a59ee63ca4c6a8bfa46ae4ad651af316d4e81817bb9fd88", size = 29749, upload-time = "2025-05-10T17:42:51.123Z" } -wheels = [ - { url = "https://files.pythonhosted.org/packages/36/f4/c6e662dade71f56cd2f3735141b265c3c79293c109549c1e6933b0651ffc/exceptiongroup-1.3.0-py3-none-any.whl", hash = "sha256:4d111e6e0c13d0644cad6ddaa7ed0261a0b36971f6d23e7ec9b4b9097da78a10", size = 16674, upload-time = "2025-05-10T17:42:49.33Z" }, -] - -[[package]] -name = "fastapi" -version = "0.128.0" -source = { registry = "https://pypi.org/simple" } -dependencies = [ - { name = "annotated-doc" }, - { name = "pydantic" }, - { name = "starlette" }, - { name = "typing-extensions" }, -] -sdist = { url = "https://files.pythonhosted.org/packages/52/08/8c8508db6c7b9aae8f7175046af41baad690771c9bcde676419965e338c7/fastapi-0.128.0.tar.gz", hash = "sha256:1cc179e1cef10a6be60ffe429f79b829dce99d8de32d7acb7e6c8dfdf7f2645a", size = 365682, upload-time = "2025-12-27T15:21:13.714Z" } -wheels = [ - { url = "https://files.pythonhosted.org/packages/5c/05/5cbb59154b093548acd0f4c7c474a118eda06da25aa75c616b72d8fcd92a/fastapi-0.128.0-py3-none-any.whl", hash = "sha256:aebd93f9716ee3b4f4fcfe13ffb7cf308d99c9f3ab5622d8877441072561582d", size = 103094, upload-time = "2025-12-27T15:21:12.154Z" }, -] - -[[package]] -name = "gitdb" -version = "4.0.12" -source = { registry = "https://pypi.org/simple" } -dependencies = [ - { name = "smmap" }, -] -sdist = { url = "https://files.pythonhosted.org/packages/72/94/63b0fc47eb32792c7ba1fe1b694daec9a63620db1e313033d18140c2320a/gitdb-4.0.12.tar.gz", hash = "sha256:5ef71f855d191a3326fcfbc0d5da835f26b13fbcba60c32c21091c349ffdb571", size = 394684, upload-time = "2025-01-02T07:20:46.413Z" } -wheels = [ - { url = "https://files.pythonhosted.org/packages/a0/61/5c78b91c3143ed5c14207f463aecfc8f9dbb5092fb2869baf37c273b2705/gitdb-4.0.12-py3-none-any.whl", hash = "sha256:67073e15955400952c6565cc3e707c554a4eea2e428946f7a4c162fab9bd9bcf", size = 62794, upload-time = "2025-01-02T07:20:43.624Z" }, -] - -[[package]] -name = "gitpython" -version = "3.1.45" -source = { registry = "https://pypi.org/simple" } -dependencies = [ - { name = "gitdb" }, -] -sdist = { url = "https://files.pythonhosted.org/packages/9a/c8/dd58967d119baab745caec2f9d853297cec1989ec1d63f677d3880632b88/gitpython-3.1.45.tar.gz", hash = "sha256:85b0ee964ceddf211c41b9f27a49086010a190fd8132a24e21f362a4b36a791c", size = 215076, upload-time = "2025-07-24T03:45:54.871Z" } -wheels = [ - { url = "https://files.pythonhosted.org/packages/01/61/d4b89fec821f72385526e1b9d9a3a0385dda4a72b206d28049e2c7cd39b8/gitpython-3.1.45-py3-none-any.whl", hash = "sha256:8908cb2e02fb3b93b7eb0f2827125cb699869470432cc885f019b8fd0fccff77", size = 208168, upload-time = "2025-07-24T03:45:52.517Z" }, -] - -[[package]] -name = "greenlet" -version = "3.2.4" -source = { registry = "https://pypi.org/simple" } -sdist = { url = "https://files.pythonhosted.org/packages/03/b8/704d753a5a45507a7aab61f18db9509302ed3d0a27ac7e0359ec2905b1a6/greenlet-3.2.4.tar.gz", hash = "sha256:0dca0d95ff849f9a364385f36ab49f50065d76964944638be9691e1832e9f86d", size = 188260, upload-time = "2025-08-07T13:24:33.51Z" } -wheels = [ - { url = "https://files.pythonhosted.org/packages/7d/ed/6bfa4109fcb23a58819600392564fea69cdc6551ffd5e69ccf1d52a40cbc/greenlet-3.2.4-cp310-cp310-macosx_11_0_universal2.whl", hash = "sha256:8c68325b0d0acf8d91dde4e6f930967dd52a5302cd4062932a6b2e7c2969f47c", size = 271061, upload-time = "2025-08-07T13:17:15.373Z" }, - { url = "https://files.pythonhosted.org/packages/2a/fc/102ec1a2fc015b3a7652abab7acf3541d58c04d3d17a8d3d6a44adae1eb1/greenlet-3.2.4-cp310-cp310-manylinux2014_aarch64.manylinux_2_17_aarch64.whl", hash = "sha256:94385f101946790ae13da500603491f04a76b6e4c059dab271b3ce2e283b2590", size = 629475, upload-time = "2025-08-07T13:42:54.009Z" }, - { url = "https://files.pythonhosted.org/packages/c5/26/80383131d55a4ac0fb08d71660fd77e7660b9db6bdb4e8884f46d9f2cc04/greenlet-3.2.4-cp310-cp310-manylinux2014_ppc64le.manylinux_2_17_ppc64le.whl", hash = "sha256:f10fd42b5ee276335863712fa3da6608e93f70629c631bf77145021600abc23c", size = 640802, upload-time = "2025-08-07T13:45:25.52Z" }, - { url = "https://files.pythonhosted.org/packages/9f/7c/e7833dbcd8f376f3326bd728c845d31dcde4c84268d3921afcae77d90d08/greenlet-3.2.4-cp310-cp310-manylinux2014_s390x.manylinux_2_17_s390x.whl", hash = "sha256:c8c9e331e58180d0d83c5b7999255721b725913ff6bc6cf39fa2a45841a4fd4b", size = 636703, upload-time = "2025-08-07T13:53:12.622Z" }, - { url = "https://files.pythonhosted.org/packages/e9/49/547b93b7c0428ede7b3f309bc965986874759f7d89e4e04aeddbc9699acb/greenlet-3.2.4-cp310-cp310-manylinux2014_x86_64.manylinux_2_17_x86_64.whl", hash = "sha256:58b97143c9cc7b86fc458f215bd0932f1757ce649e05b640fea2e79b54cedb31", size = 635417, upload-time = "2025-08-07T13:18:25.189Z" }, - { url = "https://files.pythonhosted.org/packages/7f/91/ae2eb6b7979e2f9b035a9f612cf70f1bf54aad4e1d125129bef1eae96f19/greenlet-3.2.4-cp310-cp310-manylinux_2_24_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:c2ca18a03a8cfb5b25bc1cbe20f3d9a4c80d8c3b13ba3df49ac3961af0b1018d", size = 584358, upload-time = "2025-08-07T13:18:23.708Z" }, - { url = "https://files.pythonhosted.org/packages/f7/85/433de0c9c0252b22b16d413c9407e6cb3b41df7389afc366ca204dbc1393/greenlet-3.2.4-cp310-cp310-musllinux_1_1_aarch64.whl", hash = "sha256:9fe0a28a7b952a21e2c062cd5756d34354117796c6d9215a87f55e38d15402c5", size = 1113550, upload-time = "2025-08-07T13:42:37.467Z" }, - { url = "https://files.pythonhosted.org/packages/a1/8d/88f3ebd2bc96bf7747093696f4335a0a8a4c5acfcf1b757717c0d2474ba3/greenlet-3.2.4-cp310-cp310-musllinux_1_1_x86_64.whl", hash = "sha256:8854167e06950ca75b898b104b63cc646573aa5fef1353d4508ecdd1ee76254f", size = 1137126, upload-time = "2025-08-07T13:18:20.239Z" }, - { url = "https://files.pythonhosted.org/packages/f1/29/74242b7d72385e29bcc5563fba67dad94943d7cd03552bac320d597f29b2/greenlet-3.2.4-cp310-cp310-musllinux_1_2_aarch64.whl", hash = "sha256:f47617f698838ba98f4ff4189aef02e7343952df3a615f847bb575c3feb177a7", size = 1544904, upload-time = "2025-11-04T12:42:04.763Z" }, - { url = "https://files.pythonhosted.org/packages/c8/e2/1572b8eeab0f77df5f6729d6ab6b141e4a84ee8eb9bc8c1e7918f94eda6d/greenlet-3.2.4-cp310-cp310-musllinux_1_2_x86_64.whl", hash = "sha256:af41be48a4f60429d5cad9d22175217805098a9ef7c40bfef44f7669fb9d74d8", size = 1611228, upload-time = "2025-11-04T12:42:08.423Z" }, - { url = "https://files.pythonhosted.org/packages/d6/6f/b60b0291d9623c496638c582297ead61f43c4b72eef5e9c926ef4565ec13/greenlet-3.2.4-cp310-cp310-win_amd64.whl", hash = "sha256:73f49b5368b5359d04e18d15828eecc1806033db5233397748f4ca813ff1056c", size = 298654, upload-time = "2025-08-07T13:50:00.469Z" }, - { url = "https://files.pythonhosted.org/packages/a4/de/f28ced0a67749cac23fecb02b694f6473f47686dff6afaa211d186e2ef9c/greenlet-3.2.4-cp311-cp311-macosx_11_0_universal2.whl", hash = "sha256:96378df1de302bc38e99c3a9aa311967b7dc80ced1dcc6f171e99842987882a2", size = 272305, upload-time = "2025-08-07T13:15:41.288Z" }, - { url = "https://files.pythonhosted.org/packages/09/16/2c3792cba130000bf2a31c5272999113f4764fd9d874fb257ff588ac779a/greenlet-3.2.4-cp311-cp311-manylinux2014_aarch64.manylinux_2_17_aarch64.whl", hash = "sha256:1ee8fae0519a337f2329cb78bd7a8e128ec0f881073d43f023c7b8d4831d5246", size = 632472, upload-time = "2025-08-07T13:42:55.044Z" }, - { url = "https://files.pythonhosted.org/packages/ae/8f/95d48d7e3d433e6dae5b1682e4292242a53f22df82e6d3dda81b1701a960/greenlet-3.2.4-cp311-cp311-manylinux2014_ppc64le.manylinux_2_17_ppc64le.whl", hash = "sha256:94abf90142c2a18151632371140b3dba4dee031633fe614cb592dbb6c9e17bc3", size = 644646, upload-time = "2025-08-07T13:45:26.523Z" }, - { url = "https://files.pythonhosted.org/packages/d5/5e/405965351aef8c76b8ef7ad370e5da58d57ef6068df197548b015464001a/greenlet-3.2.4-cp311-cp311-manylinux2014_s390x.manylinux_2_17_s390x.whl", hash = "sha256:4d1378601b85e2e5171b99be8d2dc85f594c79967599328f95c1dc1a40f1c633", size = 640519, upload-time = "2025-08-07T13:53:13.928Z" }, - { url = "https://files.pythonhosted.org/packages/25/5d/382753b52006ce0218297ec1b628e048c4e64b155379331f25a7316eb749/greenlet-3.2.4-cp311-cp311-manylinux2014_x86_64.manylinux_2_17_x86_64.whl", hash = "sha256:0db5594dce18db94f7d1650d7489909b57afde4c580806b8d9203b6e79cdc079", size = 639707, upload-time = "2025-08-07T13:18:27.146Z" }, - { url = "https://files.pythonhosted.org/packages/1f/8e/abdd3f14d735b2929290a018ecf133c901be4874b858dd1c604b9319f064/greenlet-3.2.4-cp311-cp311-manylinux_2_24_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:2523e5246274f54fdadbce8494458a2ebdcdbc7b802318466ac5606d3cded1f8", size = 587684, upload-time = "2025-08-07T13:18:25.164Z" }, - { url = "https://files.pythonhosted.org/packages/5d/65/deb2a69c3e5996439b0176f6651e0052542bb6c8f8ec2e3fba97c9768805/greenlet-3.2.4-cp311-cp311-musllinux_1_1_aarch64.whl", hash = "sha256:1987de92fec508535687fb807a5cea1560f6196285a4cde35c100b8cd632cc52", size = 1116647, upload-time = "2025-08-07T13:42:38.655Z" }, - { url = "https://files.pythonhosted.org/packages/3f/cc/b07000438a29ac5cfb2194bfc128151d52f333cee74dd7dfe3fb733fc16c/greenlet-3.2.4-cp311-cp311-musllinux_1_1_x86_64.whl", hash = "sha256:55e9c5affaa6775e2c6b67659f3a71684de4c549b3dd9afca3bc773533d284fa", size = 1142073, upload-time = "2025-08-07T13:18:21.737Z" }, - { url = "https://files.pythonhosted.org/packages/67/24/28a5b2fa42d12b3d7e5614145f0bd89714c34c08be6aabe39c14dd52db34/greenlet-3.2.4-cp311-cp311-musllinux_1_2_aarch64.whl", hash = "sha256:c9c6de1940a7d828635fbd254d69db79e54619f165ee7ce32fda763a9cb6a58c", size = 1548385, upload-time = "2025-11-04T12:42:11.067Z" }, - { url = "https://files.pythonhosted.org/packages/6a/05/03f2f0bdd0b0ff9a4f7b99333d57b53a7709c27723ec8123056b084e69cd/greenlet-3.2.4-cp311-cp311-musllinux_1_2_x86_64.whl", hash = "sha256:03c5136e7be905045160b1b9fdca93dd6727b180feeafda6818e6496434ed8c5", size = 1613329, upload-time = "2025-11-04T12:42:12.928Z" }, - { url = "https://files.pythonhosted.org/packages/d8/0f/30aef242fcab550b0b3520b8e3561156857c94288f0332a79928c31a52cf/greenlet-3.2.4-cp311-cp311-win_amd64.whl", hash = "sha256:9c40adce87eaa9ddb593ccb0fa6a07caf34015a29bf8d344811665b573138db9", size = 299100, upload-time = "2025-08-07T13:44:12.287Z" }, - { url = "https://files.pythonhosted.org/packages/44/69/9b804adb5fd0671f367781560eb5eb586c4d495277c93bde4307b9e28068/greenlet-3.2.4-cp312-cp312-macosx_11_0_universal2.whl", hash = "sha256:3b67ca49f54cede0186854a008109d6ee71f66bd57bb36abd6d0a0267b540cdd", size = 274079, upload-time = "2025-08-07T13:15:45.033Z" }, - { url = "https://files.pythonhosted.org/packages/46/e9/d2a80c99f19a153eff70bc451ab78615583b8dac0754cfb942223d2c1a0d/greenlet-3.2.4-cp312-cp312-manylinux2014_aarch64.manylinux_2_17_aarch64.whl", hash = "sha256:ddf9164e7a5b08e9d22511526865780a576f19ddd00d62f8a665949327fde8bb", size = 640997, upload-time = "2025-08-07T13:42:56.234Z" }, - { url = "https://files.pythonhosted.org/packages/3b/16/035dcfcc48715ccd345f3a93183267167cdd162ad123cd93067d86f27ce4/greenlet-3.2.4-cp312-cp312-manylinux2014_ppc64le.manylinux_2_17_ppc64le.whl", hash = "sha256:f28588772bb5fb869a8eb331374ec06f24a83a9c25bfa1f38b6993afe9c1e968", size = 655185, upload-time = "2025-08-07T13:45:27.624Z" }, - { url = "https://files.pythonhosted.org/packages/31/da/0386695eef69ffae1ad726881571dfe28b41970173947e7c558d9998de0f/greenlet-3.2.4-cp312-cp312-manylinux2014_s390x.manylinux_2_17_s390x.whl", hash = "sha256:5c9320971821a7cb77cfab8d956fa8e39cd07ca44b6070db358ceb7f8797c8c9", size = 649926, upload-time = "2025-08-07T13:53:15.251Z" }, - { url = "https://files.pythonhosted.org/packages/68/88/69bf19fd4dc19981928ceacbc5fd4bb6bc2215d53199e367832e98d1d8fe/greenlet-3.2.4-cp312-cp312-manylinux2014_x86_64.manylinux_2_17_x86_64.whl", hash = "sha256:c60a6d84229b271d44b70fb6e5fa23781abb5d742af7b808ae3f6efd7c9c60f6", size = 651839, upload-time = "2025-08-07T13:18:30.281Z" }, - { url = "https://files.pythonhosted.org/packages/19/0d/6660d55f7373b2ff8152401a83e02084956da23ae58cddbfb0b330978fe9/greenlet-3.2.4-cp312-cp312-manylinux_2_24_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:3b3812d8d0c9579967815af437d96623f45c0f2ae5f04e366de62a12d83a8fb0", size = 607586, upload-time = "2025-08-07T13:18:28.544Z" }, - { url = "https://files.pythonhosted.org/packages/8e/1a/c953fdedd22d81ee4629afbb38d2f9d71e37d23caace44775a3a969147d4/greenlet-3.2.4-cp312-cp312-musllinux_1_1_aarch64.whl", hash = "sha256:abbf57b5a870d30c4675928c37278493044d7c14378350b3aa5d484fa65575f0", size = 1123281, upload-time = "2025-08-07T13:42:39.858Z" }, - { url = "https://files.pythonhosted.org/packages/3f/c7/12381b18e21aef2c6bd3a636da1088b888b97b7a0362fac2e4de92405f97/greenlet-3.2.4-cp312-cp312-musllinux_1_1_x86_64.whl", hash = "sha256:20fb936b4652b6e307b8f347665e2c615540d4b42b3b4c8a321d8286da7e520f", size = 1151142, upload-time = "2025-08-07T13:18:22.981Z" }, - { url = "https://files.pythonhosted.org/packages/27/45/80935968b53cfd3f33cf99ea5f08227f2646e044568c9b1555b58ffd61c2/greenlet-3.2.4-cp312-cp312-musllinux_1_2_aarch64.whl", hash = "sha256:ee7a6ec486883397d70eec05059353b8e83eca9168b9f3f9a361971e77e0bcd0", size = 1564846, upload-time = "2025-11-04T12:42:15.191Z" }, - { url = "https://files.pythonhosted.org/packages/69/02/b7c30e5e04752cb4db6202a3858b149c0710e5453b71a3b2aec5d78a1aab/greenlet-3.2.4-cp312-cp312-musllinux_1_2_x86_64.whl", hash = "sha256:326d234cbf337c9c3def0676412eb7040a35a768efc92504b947b3e9cfc7543d", size = 1633814, upload-time = "2025-11-04T12:42:17.175Z" }, - { url = "https://files.pythonhosted.org/packages/e9/08/b0814846b79399e585f974bbeebf5580fbe59e258ea7be64d9dfb253c84f/greenlet-3.2.4-cp312-cp312-win_amd64.whl", hash = "sha256:a7d4e128405eea3814a12cc2605e0e6aedb4035bf32697f72deca74de4105e02", size = 299899, upload-time = "2025-08-07T13:38:53.448Z" }, - { url = "https://files.pythonhosted.org/packages/49/e8/58c7f85958bda41dafea50497cbd59738c5c43dbbea5ee83d651234398f4/greenlet-3.2.4-cp313-cp313-macosx_11_0_universal2.whl", hash = "sha256:1a921e542453fe531144e91e1feedf12e07351b1cf6c9e8a3325ea600a715a31", size = 272814, upload-time = "2025-08-07T13:15:50.011Z" }, - { url = "https://files.pythonhosted.org/packages/62/dd/b9f59862e9e257a16e4e610480cfffd29e3fae018a68c2332090b53aac3d/greenlet-3.2.4-cp313-cp313-manylinux2014_aarch64.manylinux_2_17_aarch64.whl", hash = "sha256:cd3c8e693bff0fff6ba55f140bf390fa92c994083f838fece0f63be121334945", size = 641073, upload-time = "2025-08-07T13:42:57.23Z" }, - { url = "https://files.pythonhosted.org/packages/f7/0b/bc13f787394920b23073ca3b6c4a7a21396301ed75a655bcb47196b50e6e/greenlet-3.2.4-cp313-cp313-manylinux2014_ppc64le.manylinux_2_17_ppc64le.whl", hash = "sha256:710638eb93b1fa52823aa91bf75326f9ecdfd5e0466f00789246a5280f4ba0fc", size = 655191, upload-time = "2025-08-07T13:45:29.752Z" }, - { url = "https://files.pythonhosted.org/packages/f2/d6/6adde57d1345a8d0f14d31e4ab9c23cfe8e2cd39c3baf7674b4b0338d266/greenlet-3.2.4-cp313-cp313-manylinux2014_s390x.manylinux_2_17_s390x.whl", hash = "sha256:c5111ccdc9c88f423426df3fd1811bfc40ed66264d35aa373420a34377efc98a", size = 649516, upload-time = "2025-08-07T13:53:16.314Z" }, - { url = "https://files.pythonhosted.org/packages/7f/3b/3a3328a788d4a473889a2d403199932be55b1b0060f4ddd96ee7cdfcad10/greenlet-3.2.4-cp313-cp313-manylinux2014_x86_64.manylinux_2_17_x86_64.whl", hash = "sha256:d76383238584e9711e20ebe14db6c88ddcedc1829a9ad31a584389463b5aa504", size = 652169, upload-time = "2025-08-07T13:18:32.861Z" }, - { url = "https://files.pythonhosted.org/packages/ee/43/3cecdc0349359e1a527cbf2e3e28e5f8f06d3343aaf82ca13437a9aa290f/greenlet-3.2.4-cp313-cp313-manylinux_2_24_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:23768528f2911bcd7e475210822ffb5254ed10d71f4028387e5a99b4c6699671", size = 610497, upload-time = "2025-08-07T13:18:31.636Z" }, - { url = "https://files.pythonhosted.org/packages/b8/19/06b6cf5d604e2c382a6f31cafafd6f33d5dea706f4db7bdab184bad2b21d/greenlet-3.2.4-cp313-cp313-musllinux_1_1_aarch64.whl", hash = "sha256:00fadb3fedccc447f517ee0d3fd8fe49eae949e1cd0f6a611818f4f6fb7dc83b", size = 1121662, upload-time = "2025-08-07T13:42:41.117Z" }, - { url = "https://files.pythonhosted.org/packages/a2/15/0d5e4e1a66fab130d98168fe984c509249c833c1a3c16806b90f253ce7b9/greenlet-3.2.4-cp313-cp313-musllinux_1_1_x86_64.whl", hash = "sha256:d25c5091190f2dc0eaa3f950252122edbbadbb682aa7b1ef2f8af0f8c0afefae", size = 1149210, upload-time = "2025-08-07T13:18:24.072Z" }, - { url = "https://files.pythonhosted.org/packages/1c/53/f9c440463b3057485b8594d7a638bed53ba531165ef0ca0e6c364b5cc807/greenlet-3.2.4-cp313-cp313-musllinux_1_2_aarch64.whl", hash = "sha256:6e343822feb58ac4d0a1211bd9399de2b3a04963ddeec21530fc426cc121f19b", size = 1564759, upload-time = "2025-11-04T12:42:19.395Z" }, - { url = "https://files.pythonhosted.org/packages/47/e4/3bb4240abdd0a8d23f4f88adec746a3099f0d86bfedb623f063b2e3b4df0/greenlet-3.2.4-cp313-cp313-musllinux_1_2_x86_64.whl", hash = "sha256:ca7f6f1f2649b89ce02f6f229d7c19f680a6238af656f61e0115b24857917929", size = 1634288, upload-time = "2025-11-04T12:42:21.174Z" }, - { url = "https://files.pythonhosted.org/packages/0b/55/2321e43595e6801e105fcfdee02b34c0f996eb71e6ddffca6b10b7e1d771/greenlet-3.2.4-cp313-cp313-win_amd64.whl", hash = "sha256:554b03b6e73aaabec3745364d6239e9e012d64c68ccd0b8430c64ccc14939a8b", size = 299685, upload-time = "2025-08-07T13:24:38.824Z" }, - { url = "https://files.pythonhosted.org/packages/22/5c/85273fd7cc388285632b0498dbbab97596e04b154933dfe0f3e68156c68c/greenlet-3.2.4-cp314-cp314-macosx_11_0_universal2.whl", hash = "sha256:49a30d5fda2507ae77be16479bdb62a660fa51b1eb4928b524975b3bde77b3c0", size = 273586, upload-time = "2025-08-07T13:16:08.004Z" }, - { url = "https://files.pythonhosted.org/packages/d1/75/10aeeaa3da9332c2e761e4c50d4c3556c21113ee3f0afa2cf5769946f7a3/greenlet-3.2.4-cp314-cp314-manylinux2014_aarch64.manylinux_2_17_aarch64.whl", hash = "sha256:299fd615cd8fc86267b47597123e3f43ad79c9d8a22bebdce535e53550763e2f", size = 686346, upload-time = "2025-08-07T13:42:59.944Z" }, - { url = "https://files.pythonhosted.org/packages/c0/aa/687d6b12ffb505a4447567d1f3abea23bd20e73a5bed63871178e0831b7a/greenlet-3.2.4-cp314-cp314-manylinux2014_ppc64le.manylinux_2_17_ppc64le.whl", hash = "sha256:c17b6b34111ea72fc5a4e4beec9711d2226285f0386ea83477cbb97c30a3f3a5", size = 699218, upload-time = "2025-08-07T13:45:30.969Z" }, - { url = "https://files.pythonhosted.org/packages/dc/8b/29aae55436521f1d6f8ff4e12fb676f3400de7fcf27fccd1d4d17fd8fecd/greenlet-3.2.4-cp314-cp314-manylinux2014_s390x.manylinux_2_17_s390x.whl", hash = "sha256:b4a1870c51720687af7fa3e7cda6d08d801dae660f75a76f3845b642b4da6ee1", size = 694659, upload-time = "2025-08-07T13:53:17.759Z" }, - { url = "https://files.pythonhosted.org/packages/92/2e/ea25914b1ebfde93b6fc4ff46d6864564fba59024e928bdc7de475affc25/greenlet-3.2.4-cp314-cp314-manylinux2014_x86_64.manylinux_2_17_x86_64.whl", hash = "sha256:061dc4cf2c34852b052a8620d40f36324554bc192be474b9e9770e8c042fd735", size = 695355, upload-time = "2025-08-07T13:18:34.517Z" }, - { url = "https://files.pythonhosted.org/packages/72/60/fc56c62046ec17f6b0d3060564562c64c862948c9d4bc8aa807cf5bd74f4/greenlet-3.2.4-cp314-cp314-manylinux_2_24_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:44358b9bf66c8576a9f57a590d5f5d6e72fa4228b763d0e43fee6d3b06d3a337", size = 657512, upload-time = "2025-08-07T13:18:33.969Z" }, - { url = "https://files.pythonhosted.org/packages/23/6e/74407aed965a4ab6ddd93a7ded3180b730d281c77b765788419484cdfeef/greenlet-3.2.4-cp314-cp314-musllinux_1_2_aarch64.whl", hash = "sha256:2917bdf657f5859fbf3386b12d68ede4cf1f04c90c3a6bc1f013dd68a22e2269", size = 1612508, upload-time = "2025-11-04T12:42:23.427Z" }, - { url = "https://files.pythonhosted.org/packages/0d/da/343cd760ab2f92bac1845ca07ee3faea9fe52bee65f7bcb19f16ad7de08b/greenlet-3.2.4-cp314-cp314-musllinux_1_2_x86_64.whl", hash = "sha256:015d48959d4add5d6c9f6c5210ee3803a830dce46356e3bc326d6776bde54681", size = 1680760, upload-time = "2025-11-04T12:42:25.341Z" }, - { url = "https://files.pythonhosted.org/packages/e3/a5/6ddab2b4c112be95601c13428db1d8b6608a8b6039816f2ba09c346c08fc/greenlet-3.2.4-cp314-cp314-win_amd64.whl", hash = "sha256:e37ab26028f12dbb0ff65f29a8d3d44a765c61e729647bf2ddfbbed621726f01", size = 303425, upload-time = "2025-08-07T13:32:27.59Z" }, -] - -[[package]] -name = "gritql" -version = "0.2.0" -source = { registry = "https://pypi.org/simple" } -sdist = { url = "https://files.pythonhosted.org/packages/de/f6/9d485d595a049feabc5bd85c37713b2c1509aa61448fb737f791081624f3/gritql-0.2.0.tar.gz", hash = "sha256:09e26e3d3152d3ec2e4fa80c0af4f2fe1436c82a2c6343cec6ab74ae61474bae", size = 3780, upload-time = "2024-10-26T21:48:35.405Z" } -wheels = [ - { url = "https://files.pythonhosted.org/packages/22/45/f3bfad1cf462d85a9ba3be5cb8b7fd5e6bf4e67f7a24cf00ae53ee6da86e/gritql-0.2.0-py2.py3-none-any.whl", hash = "sha256:6a37f4a6388c09801c25de8753546ca11d4b8a3ad527742821eb032ad069cd13", size = 5162, upload-time = "2024-10-26T21:48:33.973Z" }, - { url = "https://files.pythonhosted.org/packages/0d/19/852daaa9273667e5d9f8bbe007b1d26ad1f465a72f6451f7f3bb4e86eca8/gritql-0.2.0-py3-none-any.whl", hash = "sha256:de95dd6d027184b0c388f1b8864c0c71fa889154c55d360f427adfd00b28ac9c", size = 4827, upload-time = "2025-06-24T16:28:33.819Z" }, -] - -[[package]] -name = "h11" -version = "0.16.0" -source = { registry = "https://pypi.org/simple" } -sdist = { url = "https://files.pythonhosted.org/packages/01/ee/02a2c011bdab74c6fb3c75474d40b3052059d95df7e73351460c8588d963/h11-0.16.0.tar.gz", hash = "sha256:4e35b956cf45792e4caa5885e69fba00bdbc6ffafbfa020300e549b208ee5ff1", size = 101250, upload-time = "2025-04-24T03:35:25.427Z" } -wheels = [ - { url = "https://files.pythonhosted.org/packages/04/4b/29cac41a4d98d144bf5f6d33995617b185d14b22401f75ca86f384e87ff1/h11-0.16.0-py3-none-any.whl", hash = "sha256:63cf8bbe7522de3bf65932fda1d9c2772064ffb3dae62d55932da54b31cb6c86", size = 37515, upload-time = "2025-04-24T03:35:24.344Z" }, -] - -[[package]] -name = "httpcore" -version = "1.0.9" -source = { registry = "https://pypi.org/simple" } -dependencies = [ - { name = "certifi" }, - { name = "h11" }, -] -sdist = { url = "https://files.pythonhosted.org/packages/06/94/82699a10bca87a5556c9c59b5963f2d039dbd239f25bc2a63907a05a14cb/httpcore-1.0.9.tar.gz", hash = "sha256:6e34463af53fd2ab5d807f399a9b45ea31c3dfa2276f15a2c3f00afff6e176e8", size = 85484, upload-time = "2025-04-24T22:06:22.219Z" } -wheels = [ - { url = "https://files.pythonhosted.org/packages/7e/f5/f66802a942d491edb555dd61e3a9961140fd64c90bce1eafd741609d334d/httpcore-1.0.9-py3-none-any.whl", hash = "sha256:2d400746a40668fc9dec9810239072b40b4484b640a8c38fd654a024c7a1bf55", size = 78784, upload-time = "2025-04-24T22:06:20.566Z" }, -] - -[[package]] -name = "httpx" -version = "0.28.1" -source = { registry = "https://pypi.org/simple" } -dependencies = [ - { name = "anyio" }, - { name = "certifi" }, - { name = "httpcore" }, - { name = "idna" }, -] -sdist = { url = "https://files.pythonhosted.org/packages/b1/df/48c586a5fe32a0f01324ee087459e112ebb7224f646c0b5023f5e79e9956/httpx-0.28.1.tar.gz", hash = "sha256:75e98c5f16b0f35b567856f597f06ff2270a374470a5c2392242528e3e3e42fc", size = 141406, upload-time = "2024-12-06T15:37:23.222Z" } -wheels = [ - { url = "https://files.pythonhosted.org/packages/2a/39/e50c7c3a983047577ee07d2a9e53faf5a69493943ec3f6a384bdc792deb2/httpx-0.28.1-py3-none-any.whl", hash = "sha256:d909fcccc110f8c7faf814ca82a9a4d816bc5a6dbfea25d6591d6985b8ba59ad", size = 73517, upload-time = "2024-12-06T15:37:21.509Z" }, -] - -[[package]] -name = "httpx-sse" -version = "0.4.1" -source = { registry = "https://pypi.org/simple" } -sdist = { url = "https://files.pythonhosted.org/packages/6e/fa/66bd985dd0b7c109a3bcb89272ee0bfb7e2b4d06309ad7b38ff866734b2a/httpx_sse-0.4.1.tar.gz", hash = "sha256:8f44d34414bc7b21bf3602713005c5df4917884f76072479b21f68befa4ea26e", size = 12998, upload-time = "2025-06-24T13:21:05.71Z" } -wheels = [ - { url = "https://files.pythonhosted.org/packages/25/0a/6269e3473b09aed2dab8aa1a600c70f31f00ae1349bee30658f7e358a159/httpx_sse-0.4.1-py3-none-any.whl", hash = "sha256:cba42174344c3a5b06f255ce65b350880f962d99ead85e776f23c6618a377a37", size = 8054, upload-time = "2025-06-24T13:21:04.772Z" }, -] - -[[package]] -name = "idna" -version = "3.10" -source = { registry = "https://pypi.org/simple" } -sdist = { url = "https://files.pythonhosted.org/packages/f1/70/7703c29685631f5a7590aa73f1f1d3fa9a380e654b86af429e0934a32f7d/idna-3.10.tar.gz", hash = "sha256:12f65c9b470abda6dc35cf8e63cc574b1c52b11df2c86030af0ac09b01b13ea9", size = 190490, upload-time = "2024-09-15T18:07:39.745Z" } -wheels = [ - { url = "https://files.pythonhosted.org/packages/76/c6/c88e154df9c4e1a2a66ccf0005a88dfb2650c1dffb6f5ce603dfbd452ce3/idna-3.10-py3-none-any.whl", hash = "sha256:946d195a0d259cbba61165e88e65941f16e9b36ea6ddb97f00452bae8b1287d3", size = 70442, upload-time = "2024-09-15T18:07:37.964Z" }, -] - -[[package]] -name = "iniconfig" -version = "2.1.0" -source = { registry = "https://pypi.org/simple" } -sdist = { url = "https://files.pythonhosted.org/packages/f2/97/ebf4da567aa6827c909642694d71c9fcf53e5b504f2d96afea02718862f3/iniconfig-2.1.0.tar.gz", hash = "sha256:3abbd2e30b36733fee78f9c7f7308f2d0050e88f0087fd25c2645f63c773e1c7", size = 4793, upload-time = "2025-03-19T20:09:59.721Z" } -wheels = [ - { url = "https://files.pythonhosted.org/packages/2c/e1/e6716421ea10d38022b952c159d5161ca1193197fb744506875fbb87ea7b/iniconfig-2.1.0-py3-none-any.whl", hash = "sha256:9deba5723312380e77435581c6bf4935c94cbfab9b1ed33ef8d238ea168eb760", size = 6050, upload-time = "2025-03-19T20:10:01.071Z" }, -] - -[[package]] -name = "jsonpatch" -version = "1.33" -source = { registry = "https://pypi.org/simple" } -dependencies = [ - { name = "jsonpointer" }, -] -sdist = { url = "https://files.pythonhosted.org/packages/42/78/18813351fe5d63acad16aec57f94ec2b70a09e53ca98145589e185423873/jsonpatch-1.33.tar.gz", hash = "sha256:9fcd4009c41e6d12348b4a0ff2563ba56a2923a7dfee731d004e212e1ee5030c", size = 21699, upload-time = "2023-06-26T12:07:29.144Z" } -wheels = [ - { url = "https://files.pythonhosted.org/packages/73/07/02e16ed01e04a374e644b575638ec7987ae846d25ad97bcc9945a3ee4b0e/jsonpatch-1.33-py2.py3-none-any.whl", hash = "sha256:0ae28c0cd062bbd8b8ecc26d7d164fbbea9652a1a3693f3b956c1eae5145dade", size = 12898, upload-time = "2023-06-16T21:01:28.466Z" }, -] - -[[package]] -name = "jsonpointer" -version = "3.0.0" -source = { registry = "https://pypi.org/simple" } -sdist = { url = "https://files.pythonhosted.org/packages/6a/0a/eebeb1fa92507ea94016a2a790b93c2ae41a7e18778f85471dc54475ed25/jsonpointer-3.0.0.tar.gz", hash = "sha256:2b2d729f2091522d61c3b31f82e11870f60b68f43fbc705cb76bf4b832af59ef", size = 9114, upload-time = "2024-06-10T19:24:42.462Z" } -wheels = [ - { url = "https://files.pythonhosted.org/packages/71/92/5e77f98553e9e75130c78900d000368476aed74276eb8ae8796f65f00918/jsonpointer-3.0.0-py2.py3-none-any.whl", hash = "sha256:13e088adc14fca8b6aa8177c044e12701e6ad4b28ff10e65f2267a90109c9942", size = 7595, upload-time = "2024-06-10T19:24:40.698Z" }, -] - -[[package]] -name = "langchain" -version = "1.0.0" -source = { registry = "https://pypi.org/simple" } -dependencies = [ - { name = "langchain-core" }, - { name = "langgraph" }, - { name = "pydantic" }, -] -sdist = { url = "https://files.pythonhosted.org/packages/7d/b8/36078257ba52351608129ee983079a4d77ee69eb1470ee248cd8f5728a31/langchain-1.0.0.tar.gz", hash = "sha256:56bf90d935ac1dda864519372d195ca58757b755dd4c44b87840b67d069085b7", size = 466932, upload-time = "2025-10-17T20:53:20.319Z" } -wheels = [ - { url = "https://files.pythonhosted.org/packages/c4/4d/2758a16ad01716c0fb3fe9ec205fd530eae4528b35a27ff44837c399e032/langchain-1.0.0-py3-none-any.whl", hash = "sha256:8c95e41250fc86d09a978fbdf999f86c18d50a28a2addc5da88546af00a1ad15", size = 106202, upload-time = "2025-10-17T20:53:18.685Z" }, -] - -[[package]] -name = "langchain-classic" -version = "1.0.1" -source = { editable = "../langchain" } -dependencies = [ - { name = "async-timeout", marker = "python_full_version < '3.11'" }, - { name = "langchain-core" }, - { name = "langchain-text-splitters" }, - { name = "langsmith" }, - { name = "pydantic" }, - { name = "pyyaml" }, - { name = "requests" }, - { name = "sqlalchemy" }, -] - -[package.metadata] -requires-dist = [ - { name = "async-timeout", marker = "python_full_version < '3.11'", specifier = ">=4.0.0,<5.0.0" }, - { name = "langchain-anthropic", marker = "extra == 'anthropic'" }, - { name = "langchain-aws", marker = "extra == 'aws'" }, - { name = "langchain-core", editable = "../core" }, - { name = "langchain-deepseek", marker = "extra == 'deepseek'" }, - { name = "langchain-fireworks", marker = "extra == 'fireworks'" }, - { name = "langchain-google-genai", marker = "extra == 'google-genai'" }, - { name = "langchain-google-vertexai", marker = "extra == 'google-vertexai'" }, - { name = "langchain-groq", marker = "extra == 'groq'" }, - { name = "langchain-huggingface", marker = "extra == 'huggingface'" }, - { name = "langchain-mistralai", marker = "extra == 'mistralai'" }, - { name = "langchain-ollama", marker = "extra == 'ollama'" }, - { name = "langchain-openai", marker = "extra == 'openai'", editable = "../partners/openai" }, - { name = "langchain-perplexity", marker = "extra == 'perplexity'" }, - { name = "langchain-text-splitters", editable = "../text-splitters" }, - { name = "langchain-together", marker = "extra == 'together'" }, - { name = "langchain-xai", marker = "extra == 'xai'" }, - { name = "langsmith", specifier = ">=0.1.17,<1.0.0" }, - { name = "pydantic", specifier = ">=2.7.4,<3.0.0" }, - { name = "pyyaml", specifier = ">=5.3.0,<7.0.0" }, - { name = "requests", specifier = ">=2.0.0,<3.0.0" }, - { name = "sqlalchemy", specifier = ">=1.4.0,<3.0.0" }, -] -provides-extras = ["anthropic", "openai", "google-vertexai", "google-genai", "fireworks", "ollama", "together", "mistralai", "huggingface", "groq", "aws", "deepseek", "xai", "perplexity"] - -[package.metadata.requires-dev] -dev = [ - { name = "jupyter", specifier = ">=1.0.0,<2.0.0" }, - { name = "langchain-core", editable = "../core" }, - { name = "langchain-text-splitters", editable = "../text-splitters" }, - { name = "playwright", specifier = ">=1.28.0,<2.0.0" }, - { name = "setuptools", specifier = ">=67.6.1,<79.0.0" }, -] -lint = [ - { name = "cffi", marker = "python_full_version < '3.10'", specifier = "<1.17.1" }, - { name = "cffi", marker = "python_full_version >= '3.10'" }, - { name = "ruff", specifier = ">=0.14.11,<0.15.0" }, -] -test = [ - { name = "cffi", marker = "python_full_version < '3.10'", specifier = "<1.17.1" }, - { name = "cffi", marker = "python_full_version >= '3.10'" }, - { name = "freezegun", specifier = ">=1.2.2,<2.0.0" }, - { name = "langchain-core", editable = "../core" }, - { name = "langchain-openai", editable = "../partners/openai" }, - { name = "langchain-tests", editable = "../standard-tests" }, - { name = "langchain-text-splitters", editable = "../text-splitters" }, - { name = "lark", specifier = ">=1.1.5,<2.0.0" }, - { name = "numpy", marker = "python_full_version < '3.13'", specifier = ">=1.26.4" }, - { name = "numpy", marker = "python_full_version >= '3.13'", specifier = ">=2.1.0" }, - { name = "packaging", specifier = ">=24.2.0,<26.0.0" }, - { name = "pandas", specifier = ">=2.0.0,<3.0.0" }, - { name = "pytest", specifier = ">=8.0.0,<9.0.0" }, - { name = "pytest-asyncio", specifier = ">=0.23.2,<1.0.0" }, - { name = "pytest-cov", specifier = ">=4.0.0,<5.0.0" }, - { name = "pytest-dotenv", specifier = ">=0.5.2,<1.0.0" }, - { name = "pytest-mock", specifier = ">=3.10.0,<4.0.0" }, - { name = "pytest-socket", specifier = ">=0.6.0,<1.0.0" }, - { name = "pytest-watcher", specifier = ">=0.2.6,<1.0.0" }, - { name = "pytest-xdist", specifier = ">=3.6.1,<4.0.0" }, - { name = "requests-mock", specifier = ">=1.11.0,<2.0.0" }, - { name = "responses", specifier = ">=0.22.0,<1.0.0" }, - { name = "syrupy", specifier = ">=4.0.2,<5.0.0" }, - { name = "toml", specifier = ">=0.10.2,<1.0.0" }, -] -test-integration = [ - { name = "cassio", specifier = ">=0.1.0,<1.0.0" }, - { name = "langchain-core", editable = "../core" }, - { name = "langchain-text-splitters", editable = "../text-splitters" }, - { name = "langchainhub", specifier = ">=0.1.16,<1.0.0" }, - { name = "python-dotenv", specifier = ">=1.0.0,<2.0.0" }, - { name = "urllib3", marker = "python_full_version < '3.10'", specifier = "<2.0.0" }, - { name = "vcrpy", specifier = ">=7.0.0,<8.0.0" }, - { name = "wrapt", specifier = ">=1.15.0,<2.0.0" }, -] -typing = [ - { name = "fastapi", specifier = ">=0.116.1,<1.0.0" }, - { name = "langchain-core", editable = "../core" }, - { name = "langchain-text-splitters", editable = "../text-splitters" }, - { name = "mypy", specifier = ">=1.19.1,<1.20.0" }, - { name = "mypy-protobuf", specifier = ">=3.0.0,<4.0.0" }, - { name = "numpy", marker = "python_full_version < '3.13'", specifier = ">=1.26.4" }, - { name = "numpy", marker = "python_full_version >= '3.13'", specifier = ">=2.1.0" }, - { name = "types-chardet", specifier = ">=5.0.4.6,<6.0.0.0" }, - { name = "types-pytz", specifier = ">=2023.3.0.0,<2024.0.0.0" }, - { name = "types-pyyaml", specifier = ">=6.0.12.2,<7.0.0.0" }, - { name = "types-redis", specifier = ">=4.3.21.6,<5.0.0.0" }, - { name = "types-requests", specifier = ">=2.28.11.5,<3.0.0.0" }, - { name = "types-toml", specifier = ">=0.10.8.1,<1.0.0.0" }, -] - -[[package]] -name = "langchain-cli" -version = "1.0.0a1" -source = { editable = "." } -dependencies = [ - { name = "gitpython" }, - { name = "gritql" }, - { name = "langserve", extra = ["all"] }, - { name = "tomlkit" }, - { name = "typer" }, - { name = "uvicorn" }, -] - -[package.dev-dependencies] -dev = [ - { name = "pytest" }, - { name = "pytest-watcher" }, -] -lint = [ - { name = "ruff" }, -] -test = [ - { name = "langchain-classic" }, - { name = "langchain-core" }, -] -typing = [ - { name = "langchain-classic" }, - { name = "mypy" }, -] - -[package.metadata] -requires-dist = [ - { name = "gitpython", specifier = ">=3.0.0,<4.0.0" }, - { name = "gritql", specifier = ">=0.2.0,<1.0.0" }, - { name = "langserve", extras = ["all"], specifier = ">=0.0.51,<1.0.0" }, - { name = "tomlkit", specifier = ">=0.12.0,<1.0.0" }, - { name = "typer", specifier = ">=0.17.0,<1.0.0" }, - { name = "uvicorn", specifier = ">=0.23.0,<1.0.0" }, -] - -[package.metadata.requires-dev] -dev = [ - { name = "pytest", specifier = ">=7.4.2,<9.0.0" }, - { name = "pytest-watcher", specifier = ">=0.3.4,<1.0.0" }, -] -lint = [{ name = "ruff", specifier = ">=0.14.11,<0.15.0" }] -test = [ - { name = "langchain-classic", editable = "../langchain" }, - { name = "langchain-core", editable = "../core" }, -] -test-integration = [] -typing = [ - { name = "langchain-classic", editable = "../langchain" }, - { name = "mypy", specifier = ">=1.19.1,<1.20" }, -] - -[[package]] -name = "langchain-core" -version = "1.2.7" -source = { editable = "../core" } -dependencies = [ - { name = "jsonpatch" }, - { name = "langsmith" }, - { name = "packaging" }, - { name = "pydantic" }, - { name = "pyyaml" }, - { name = "tenacity" }, - { name = "typing-extensions" }, - { name = "uuid-utils" }, -] - -[package.metadata] -requires-dist = [ - { name = "jsonpatch", specifier = ">=1.33.0,<2.0.0" }, - { name = "langsmith", specifier = ">=0.3.45,<1.0.0" }, - { name = "packaging", specifier = ">=23.2.0,<26.0.0" }, - { name = "pydantic", specifier = ">=2.7.4,<3.0.0" }, - { name = "pyyaml", specifier = ">=5.3.0,<7.0.0" }, - { name = "tenacity", specifier = ">=8.1.0,!=8.4.0,<10.0.0" }, - { name = "typing-extensions", specifier = ">=4.7.0,<5.0.0" }, - { name = "uuid-utils", specifier = ">=0.12.0,<1.0" }, -] - -[package.metadata.requires-dev] -dev = [ - { name = "grandalf", specifier = ">=0.8.0,<1.0.0" }, - { name = "jupyter", specifier = ">=1.0.0,<2.0.0" }, - { name = "setuptools", specifier = ">=67.6.1,<68.0.0" }, -] -lint = [{ name = "ruff", specifier = ">=0.14.11,<0.15.0" }] -test = [ - { name = "blockbuster", specifier = ">=1.5.18,<1.6.0" }, - { name = "freezegun", specifier = ">=1.2.2,<2.0.0" }, - { name = "grandalf", specifier = ">=0.8.0,<1.0.0" }, - { name = "langchain-tests", directory = "../standard-tests" }, - { name = "numpy", marker = "python_full_version < '3.13'", specifier = ">=1.26.4" }, - { name = "numpy", marker = "python_full_version >= '3.13'", specifier = ">=2.1.0" }, - { name = "pytest", specifier = ">=8.0.0,<9.0.0" }, - { name = "pytest-asyncio", specifier = ">=0.21.1,<1.0.0" }, - { name = "pytest-benchmark" }, - { name = "pytest-codspeed" }, - { name = "pytest-mock", specifier = ">=3.10.0,<4.0.0" }, - { name = "pytest-socket", specifier = ">=0.7.0,<1.0.0" }, - { name = "pytest-watcher", specifier = ">=0.3.4,<1.0.0" }, - { name = "pytest-xdist", specifier = ">=3.6.1,<4.0.0" }, - { name = "responses", specifier = ">=0.25.0,<1.0.0" }, - { name = "syrupy", specifier = ">=4.0.2,<5.0.0" }, -] -test-integration = [] -typing = [ - { name = "langchain-text-splitters", directory = "../text-splitters" }, - { name = "mypy", specifier = ">=1.19.1,<1.20.0" }, - { name = "types-pyyaml", specifier = ">=6.0.12.2,<7.0.0.0" }, - { name = "types-requests", specifier = ">=2.28.11.5,<3.0.0.0" }, -] - -[[package]] -name = "langchain-text-splitters" -version = "1.1.0" -source = { editable = "../text-splitters" } -dependencies = [ - { name = "langchain-core" }, -] - -[package.metadata] -requires-dist = [{ name = "langchain-core", editable = "../core" }] - -[package.metadata.requires-dev] -dev = [ - { name = "jupyter", specifier = ">=1.0.0,<2.0.0" }, - { name = "langchain-core", editable = "../core" }, -] -lint = [ - { name = "langchain-core", editable = "../core" }, - { name = "ruff", specifier = ">=0.14.11,<0.15.0" }, -] -test = [ - { name = "freezegun", specifier = ">=1.2.2,<2.0.0" }, - { name = "langchain-core", editable = "../core" }, - { name = "pytest", specifier = ">=8.0.0,<9.0.0" }, - { name = "pytest-asyncio", specifier = ">=0.21.1,<1.0.0" }, - { name = "pytest-mock", specifier = ">=3.10.0,<4.0.0" }, - { name = "pytest-socket", specifier = ">=0.7.0,<1.0.0" }, - { name = "pytest-watcher", specifier = ">=0.3.4,<1.0.0" }, - { name = "pytest-xdist", specifier = ">=3.6.1,<4.0.0" }, -] -test-integration = [ - { name = "en-core-web-sm", url = "https://github.com/explosion/spacy-models/releases/download/en_core_web_sm-3.8.0/en_core_web_sm-3.8.0-py3-none-any.whl" }, - { name = "nltk", specifier = ">=3.9.1,<4.0.0" }, - { name = "scipy", marker = "python_full_version == '3.12.*'", specifier = ">=1.7.0,<2.0.0" }, - { name = "scipy", marker = "python_full_version >= '3.13'", specifier = ">=1.14.1,<2.0.0" }, - { name = "sentence-transformers", specifier = ">=3.0.1,<4.0.0" }, - { name = "spacy", marker = "python_full_version < '3.14'", specifier = ">=3.8.7,<4.0.0" }, - { name = "thinc", specifier = ">=8.3.6,<9.0.0" }, - { name = "tiktoken", specifier = ">=0.8.0,<1.0.0" }, - { name = "transformers", specifier = ">=4.51.3,<5.0.0" }, -] -typing = [ - { name = "beautifulsoup4", specifier = ">=4.13.5,<5.0.0" }, - { name = "lxml-stubs", specifier = ">=0.5.1,<1.0.0" }, - { name = "mypy", specifier = ">=1.19.1,<1.20.0" }, - { name = "tiktoken", specifier = ">=0.8.0,<1.0.0" }, - { name = "types-requests", specifier = ">=2.31.0.20240218,<3.0.0.0" }, -] - -[[package]] -name = "langgraph" -version = "1.0.6" -source = { registry = "https://pypi.org/simple" } -dependencies = [ - { name = "langchain-core" }, - { name = "langgraph-checkpoint" }, - { name = "langgraph-prebuilt" }, - { name = "langgraph-sdk" }, - { name = "pydantic" }, - { name = "xxhash" }, -] -sdist = { url = "https://files.pythonhosted.org/packages/c2/9c/dac99ab1732e9fb2d3b673482ac28f02bee222c0319a3b8f8f73d90727e6/langgraph-1.0.6.tar.gz", hash = "sha256:dd8e754c76d34a07485308d7117221acf63990e7de8f46ddf5fe256b0a22e6c5", size = 495092, upload-time = "2026-01-12T20:33:30.778Z" } -wheels = [ - { url = "https://files.pythonhosted.org/packages/10/45/9960747781416bed4e531ed0c6b2f2c739bc7b5397d8e92155463735a40e/langgraph-1.0.6-py3-none-any.whl", hash = "sha256:bcfce190974519c72e29f6e5b17f0023914fd6f936bfab8894083215b271eb89", size = 157356, upload-time = "2026-01-12T20:33:29.191Z" }, -] - -[[package]] -name = "langgraph-checkpoint" -version = "3.0.0" -source = { registry = "https://pypi.org/simple" } -dependencies = [ - { name = "langchain-core" }, - { name = "ormsgpack" }, -] -sdist = { url = "https://files.pythonhosted.org/packages/b7/cb/2a6dad2f0a14317580cc122e2a60e7f0ecabb50aaa6dc5b7a6a2c94cead7/langgraph_checkpoint-3.0.0.tar.gz", hash = "sha256:f738695ad938878d8f4775d907d9629e9fcd345b1950196effb08f088c52369e", size = 132132, upload-time = "2025-10-20T18:35:49.132Z" } -wheels = [ - { url = "https://files.pythonhosted.org/packages/85/2a/2efe0b5a72c41e3a936c81c5f5d8693987a1b260287ff1bbebaae1b7b888/langgraph_checkpoint-3.0.0-py3-none-any.whl", hash = "sha256:560beb83e629784ab689212a3d60834fb3196b4bbe1d6ac18e5cad5d85d46010", size = 46060, upload-time = "2025-10-20T18:35:48.255Z" }, -] - -[[package]] -name = "langgraph-prebuilt" -version = "1.0.6" -source = { registry = "https://pypi.org/simple" } -dependencies = [ - { name = "langchain-core" }, - { name = "langgraph-checkpoint" }, -] -sdist = { url = "https://files.pythonhosted.org/packages/3c/f5/8c75dace0d729561dce2966e630c5e312193df7e5df41a7e10cd7378c3a7/langgraph_prebuilt-1.0.6.tar.gz", hash = "sha256:c5f6cf0f5a0ac47643d2e26ae6faa38cb28885ecde67911190df9e30c4f72361", size = 162623, upload-time = "2026-01-12T20:31:28.425Z" } -wheels = [ - { url = "https://files.pythonhosted.org/packages/26/6c/4045822b0630cfc0f8624c4499ceaf90644142143c063a8dc385a7424fc3/langgraph_prebuilt-1.0.6-py3-none-any.whl", hash = "sha256:9fdc35048ff4ac985a55bd2a019a86d45b8184551504aff6780d096c678b39ae", size = 35322, upload-time = "2026-01-12T20:31:27.161Z" }, -] - -[[package]] -name = "langgraph-sdk" -version = "0.3.3" -source = { registry = "https://pypi.org/simple" } -dependencies = [ - { name = "httpx" }, - { name = "orjson" }, -] -sdist = { url = "https://files.pythonhosted.org/packages/c3/0f/ed0634c222eed48a31ba48eab6881f94ad690d65e44fe7ca838240a260c1/langgraph_sdk-0.3.3.tar.gz", hash = "sha256:c34c3dce3b6848755eb61f0c94369d1ba04aceeb1b76015db1ea7362c544fb26", size = 130589, upload-time = "2026-01-13T00:30:43.894Z" } -wheels = [ - { url = "https://files.pythonhosted.org/packages/6e/be/4ad511bacfdd854afb12974f407cb30010dceb982dc20c55491867b34526/langgraph_sdk-0.3.3-py3-none-any.whl", hash = "sha256:a52ebaf09d91143e55378bb2d0b033ed98f57f48c9ad35c8f81493b88705fc7b", size = 67021, upload-time = "2026-01-13T00:30:42.264Z" }, -] - -[[package]] -name = "langserve" -version = "0.0.51" -source = { registry = "https://pypi.org/simple" } -dependencies = [ - { name = "httpx" }, - { name = "langchain" }, - { name = "orjson" }, - { name = "pydantic" }, -] -sdist = { url = "https://files.pythonhosted.org/packages/06/af/243c8a6ad0efee30186fba5a05a68b4bd9553d3662f946e2e8302cb4a141/langserve-0.0.51.tar.gz", hash = "sha256:036c0104c512bcc2c2406ae089ef9e7e718c32c39ebf6dcb2212f168c7d09816", size = 1135441, upload-time = "2024-03-12T06:16:32.374Z" } -wheels = [ - { url = "https://files.pythonhosted.org/packages/b3/49/5b407071f7ea5a861b3f4c3ed2f034cdafb75db1554bbe1a256a092d2669/langserve-0.0.51-py3-none-any.whl", hash = "sha256:e735eef2b6fde7e1514f4be8234b9f0727283e639822ca9c25e8ccc2d24e8492", size = 1167759, upload-time = "2024-03-12T06:16:30.099Z" }, -] - -[package.optional-dependencies] -all = [ - { name = "fastapi" }, - { name = "httpx-sse" }, - { name = "sse-starlette" }, -] - -[[package]] -name = "langsmith" -version = "0.4.31" -source = { registry = "https://pypi.org/simple" } -dependencies = [ - { name = "httpx" }, - { name = "orjson", marker = "platform_python_implementation != 'PyPy'" }, - { name = "packaging" }, - { name = "pydantic" }, - { name = "requests" }, - { name = "requests-toolbelt" }, - { name = "zstandard" }, -] -sdist = { url = "https://files.pythonhosted.org/packages/55/f5/edbdf89a162ee025348b3b2080fb3b88f4a1040a5a186f32d34aca913994/langsmith-0.4.31.tar.gz", hash = "sha256:5fb3729e22bd9a225391936cb9d1080322e6c375bb776514af06b56d6c46ed3e", size = 959698, upload-time = "2025-09-25T04:18:19.55Z" } -wheels = [ - { url = "https://files.pythonhosted.org/packages/3e/8e/e7a43d907a147e1f87eebdd6737483f9feba52a5d4b20f69d0bd6f2fa22f/langsmith-0.4.31-py3-none-any.whl", hash = "sha256:64f340bdead21defe5f4a6ca330c11073e35444989169f669508edf45a19025f", size = 386347, upload-time = "2025-09-25T04:18:16.69Z" }, -] - -[[package]] -name = "librt" -version = "0.7.5" -source = { registry = "https://pypi.org/simple" } -sdist = { url = "https://files.pythonhosted.org/packages/b5/8a/071f6628363d83e803d4783e0cd24fb9c5b798164300fcfaaa47c30659c0/librt-0.7.5.tar.gz", hash = "sha256:de4221a1181fa9c8c4b5f35506ed6f298948f44003d84d2a8b9885d7e01e6cfa", size = 145868, upload-time = "2025-12-25T03:53:16.039Z" } -wheels = [ - { url = "https://files.pythonhosted.org/packages/88/f2/3248d8419db99ab80bb36266735d1241f766ad5fd993071211f789b618a5/librt-0.7.5-cp310-cp310-macosx_10_9_x86_64.whl", hash = "sha256:81056e01bba1394f1d92904ec61a4078f66df785316275edbaf51d90da8c6e26", size = 54703, upload-time = "2025-12-25T03:51:48.394Z" }, - { url = "https://files.pythonhosted.org/packages/7b/30/7e179543dbcb1311f84b7e797658ad85cf2d4474c468f5dbafa13f2a98a5/librt-0.7.5-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:d7c72c8756eeb3aefb1b9e3dac7c37a4a25db63640cac0ab6fc18e91a0edf05a", size = 56660, upload-time = "2025-12-25T03:51:49.791Z" }, - { url = "https://files.pythonhosted.org/packages/15/91/3ba03ac1ac1abd66757a134b3bd56d9674928b163d0e686ea065a2bbb92d/librt-0.7.5-cp310-cp310-manylinux1_i686.manylinux_2_28_i686.manylinux_2_5_i686.whl", hash = "sha256:ddc4a16207f88f9597b397fc1f60781266d13b13de922ff61c206547a29e4bbd", size = 161026, upload-time = "2025-12-25T03:51:51.021Z" }, - { url = "https://files.pythonhosted.org/packages/0d/6e/b8365f547817d37b44c4be2ffa02630be995ef18be52d72698cecc3640c5/librt-0.7.5-cp310-cp310-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:63055d3dda433ebb314c9f1819942f16a19203c454508fdb2d167613f7017169", size = 169530, upload-time = "2025-12-25T03:51:52.417Z" }, - { url = "https://files.pythonhosted.org/packages/63/6a/8442eb0b6933c651a06e1888f863971f3391cc11338fdaa6ab969f7d1eac/librt-0.7.5-cp310-cp310-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:9f85f9b5db87b0f52e53c68ad2a0c5a53e00afa439bd54a1723742a2b1021276", size = 183272, upload-time = "2025-12-25T03:51:53.713Z" }, - { url = "https://files.pythonhosted.org/packages/90/c4/b1166df6ef8e1f68d309f50bf69e8e750a5ea12fe7e2cf202c771ff359fc/librt-0.7.5-cp310-cp310-musllinux_1_2_aarch64.whl", hash = "sha256:c566a4672564c5d54d8ab65cdaae5a87ee14c1564c1a2ddc7a9f5811c750f023", size = 179040, upload-time = "2025-12-25T03:51:55.048Z" }, - { url = "https://files.pythonhosted.org/packages/fc/30/8f3fd9fd975b16c37832d6c248b976d2a0e33f155063781e064f249b37f1/librt-0.7.5-cp310-cp310-musllinux_1_2_i686.whl", hash = "sha256:fee15c2a190ef389f14928135c6fb2d25cd3fdb7887bfd9a7b444bbdc8c06b96", size = 173506, upload-time = "2025-12-25T03:51:56.407Z" }, - { url = "https://files.pythonhosted.org/packages/75/71/c3d4d5658f9849bf8e07ffba99f892d49a0c9a4001323ed610db72aedc82/librt-0.7.5-cp310-cp310-musllinux_1_2_x86_64.whl", hash = "sha256:584cb3e605ec45ba350962cec853e17be0a25a772f21f09f1e422f7044ae2a7d", size = 193573, upload-time = "2025-12-25T03:51:57.949Z" }, - { url = "https://files.pythonhosted.org/packages/86/7c/c1c8a0116a2eed3d58c8946c589a8f9e1354b9b825cc92eba58bb15f6fb1/librt-0.7.5-cp310-cp310-win32.whl", hash = "sha256:9c08527055fbb03c641c15bbc5b79dd2942fb6a3bd8dabf141dd7e97eeea4904", size = 42603, upload-time = "2025-12-25T03:51:59.215Z" }, - { url = "https://files.pythonhosted.org/packages/1d/00/b52c77ca294247420020b829b70465c6e6f2b9d59ab21d8051aac20432da/librt-0.7.5-cp310-cp310-win_amd64.whl", hash = "sha256:dd810f2d39c526c42ea205e0addad5dc08ef853c625387806a29d07f9d150d9b", size = 48977, upload-time = "2025-12-25T03:52:00.519Z" }, - { url = "https://files.pythonhosted.org/packages/11/89/42b3ccb702a7e5f7a4cf2afc8a0a8f8c5e7d4b4d3a7c3de6357673dddddb/librt-0.7.5-cp311-cp311-macosx_10_9_x86_64.whl", hash = "sha256:f952e1a78c480edee8fb43aa2bf2e84dcd46c917d44f8065b883079d3893e8fc", size = 54705, upload-time = "2025-12-25T03:52:01.433Z" }, - { url = "https://files.pythonhosted.org/packages/bb/90/c16970b509c3c448c365041d326eeef5aeb2abaed81eb3187b26a3cd13f8/librt-0.7.5-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:75965c1f4efb7234ff52a58b729d245a21e87e4b6a26a0ec08052f02b16274e4", size = 56667, upload-time = "2025-12-25T03:52:02.391Z" }, - { url = "https://files.pythonhosted.org/packages/ac/2f/da4bdf6c190503f4663fbb781dfae5564a2b1c3f39a2da8e1ac7536ac7bd/librt-0.7.5-cp311-cp311-manylinux1_i686.manylinux_2_28_i686.manylinux_2_5_i686.whl", hash = "sha256:732e0aa0385b59a1b2545159e781c792cc58ce9c134249233a7c7250a44684c4", size = 161705, upload-time = "2025-12-25T03:52:03.395Z" }, - { url = "https://files.pythonhosted.org/packages/fb/88/c5da8e1f5f22b23d56e1fbd87266799dcf32828d47bf69fabc6f9673c6eb/librt-0.7.5-cp311-cp311-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:cdde31759bd8888f3ef0eebda80394a48961328a17c264dce8cc35f4b9cde35d", size = 171029, upload-time = "2025-12-25T03:52:04.798Z" }, - { url = "https://files.pythonhosted.org/packages/38/8a/8dfc00a6f1febc094ed9a55a448fc0b3a591b5dfd83be6cfd76d0910b1f0/librt-0.7.5-cp311-cp311-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:df3146d52465b3b6397d25d513f428cb421c18df65b7378667bb5f1e3cc45805", size = 184704, upload-time = "2025-12-25T03:52:05.887Z" }, - { url = "https://files.pythonhosted.org/packages/ad/57/65dec835ff235f431801064a3b41268f2f5ee0d224dc3bbf46d911af5c1a/librt-0.7.5-cp311-cp311-musllinux_1_2_aarch64.whl", hash = "sha256:29c8d2fae11d4379ea207ba7fc69d43237e42cf8a9f90ec6e05993687e6d648b", size = 180720, upload-time = "2025-12-25T03:52:06.925Z" }, - { url = "https://files.pythonhosted.org/packages/1e/27/92033d169bbcaa0d9a2dd476c179e5171ec22ed574b1b135a3c6104fb7d4/librt-0.7.5-cp311-cp311-musllinux_1_2_i686.whl", hash = "sha256:bb41f04046b4f22b1e7ba5ef513402cd2e3477ec610e5f92d38fe2bba383d419", size = 174538, upload-time = "2025-12-25T03:52:08.075Z" }, - { url = "https://files.pythonhosted.org/packages/44/5c/0127098743575d5340624d8d4ec508d4d5ff0877dcee6f55f54bf03e5ed0/librt-0.7.5-cp311-cp311-musllinux_1_2_x86_64.whl", hash = "sha256:8bb7883c1e94ceb87c2bf81385266f032da09cd040e804cc002f2c9d6b842e2f", size = 195240, upload-time = "2025-12-25T03:52:09.427Z" }, - { url = "https://files.pythonhosted.org/packages/47/0f/be028c3e906a8ee6d29a42fd362e6d57d4143057f2bc0c454d489a0f898b/librt-0.7.5-cp311-cp311-win32.whl", hash = "sha256:84d4a6b9efd6124f728558a18e79e7cc5c5d4efc09b2b846c910de7e564f5bad", size = 42941, upload-time = "2025-12-25T03:52:10.527Z" }, - { url = "https://files.pythonhosted.org/packages/ac/3a/2f0ed57f4c3ae3c841780a95dfbea4cd811c6842d9ee66171ce1af606d25/librt-0.7.5-cp311-cp311-win_amd64.whl", hash = "sha256:ab4b0d3bee6f6ff7017e18e576ac7e41a06697d8dea4b8f3ab9e0c8e1300c409", size = 49244, upload-time = "2025-12-25T03:52:11.832Z" }, - { url = "https://files.pythonhosted.org/packages/ee/7c/d7932aedfa5a87771f9e2799e7185ec3a322f4a1f4aa87c234159b75c8c8/librt-0.7.5-cp311-cp311-win_arm64.whl", hash = "sha256:730be847daad773a3c898943cf67fb9845a3961d06fb79672ceb0a8cd8624cfa", size = 42614, upload-time = "2025-12-25T03:52:12.745Z" }, - { url = "https://files.pythonhosted.org/packages/33/9d/cb0a296cee177c0fee7999ada1c1af7eee0e2191372058814a4ca6d2baf0/librt-0.7.5-cp312-cp312-macosx_10_13_x86_64.whl", hash = "sha256:ba1077c562a046208a2dc6366227b3eeae8f2c2ab4b41eaf4fd2fa28cece4203", size = 55689, upload-time = "2025-12-25T03:52:14.041Z" }, - { url = "https://files.pythonhosted.org/packages/79/5c/d7de4d4228b74c5b81a3fbada157754bb29f0e1f8c38229c669a7f90422a/librt-0.7.5-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:654fdc971c76348a73af5240d8e2529265b9a7ba6321e38dd5bae7b0d4ab3abe", size = 57142, upload-time = "2025-12-25T03:52:15.336Z" }, - { url = "https://files.pythonhosted.org/packages/e5/b2/5da779184aae369b69f4ae84225f63741662a0fe422e91616c533895d7a4/librt-0.7.5-cp312-cp312-manylinux1_i686.manylinux_2_28_i686.manylinux_2_5_i686.whl", hash = "sha256:6b7b58913d475911f6f33e8082f19dd9b120c4f4a5c911d07e395d67b81c6982", size = 165323, upload-time = "2025-12-25T03:52:16.384Z" }, - { url = "https://files.pythonhosted.org/packages/5a/40/6d5abc15ab6cc70e04c4d201bb28baffff4cfb46ab950b8e90935b162d58/librt-0.7.5-cp312-cp312-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:b8e0fd344bad57026a8f4ccfaf406486c2fc991838050c2fef156170edc3b775", size = 174218, upload-time = "2025-12-25T03:52:17.518Z" }, - { url = "https://files.pythonhosted.org/packages/0d/d0/5239a8507e6117a3cb59ce0095bdd258bd2a93d8d4b819a506da06d8d645/librt-0.7.5-cp312-cp312-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:46aa91813c267c3f60db75d56419b42c0c0b9748ec2c568a0e3588e543fb4233", size = 189007, upload-time = "2025-12-25T03:52:18.585Z" }, - { url = "https://files.pythonhosted.org/packages/1f/a4/8eed1166ffddbb01c25363e4c4e655f4bac298debe9e5a2dcfaf942438a1/librt-0.7.5-cp312-cp312-musllinux_1_2_aarch64.whl", hash = "sha256:ddc0ab9dbc5f9ceaf2bf7a367bf01f2697660e908f6534800e88f43590b271db", size = 183962, upload-time = "2025-12-25T03:52:19.723Z" }, - { url = "https://files.pythonhosted.org/packages/a1/83/260e60aab2f5ccba04579c5c46eb3b855e51196fde6e2bcf6742d89140a8/librt-0.7.5-cp312-cp312-musllinux_1_2_i686.whl", hash = "sha256:7a488908a470451338607650f1c064175094aedebf4a4fa37890682e30ce0b57", size = 177611, upload-time = "2025-12-25T03:52:21.18Z" }, - { url = "https://files.pythonhosted.org/packages/c4/36/6dcfed0df41e9695665462bab59af15b7ed2b9c668d85c7ebadd022cbb76/librt-0.7.5-cp312-cp312-musllinux_1_2_x86_64.whl", hash = "sha256:e47fc52602ffc374e69bf1b76536dc99f7f6dd876bd786c8213eaa3598be030a", size = 199273, upload-time = "2025-12-25T03:52:22.25Z" }, - { url = "https://files.pythonhosted.org/packages/a6/b7/157149c8cffae6bc4293a52e0267860cee2398cb270798d94f1c8a69b9ae/librt-0.7.5-cp312-cp312-win32.whl", hash = "sha256:cda8b025875946ffff5a9a7590bf9acde3eb02cb6200f06a2d3e691ef3d9955b", size = 43191, upload-time = "2025-12-25T03:52:23.643Z" }, - { url = "https://files.pythonhosted.org/packages/f8/91/197dfeb8d3bdeb0a5344d0d8b3077f183ba5e76c03f158126f6072730998/librt-0.7.5-cp312-cp312-win_amd64.whl", hash = "sha256:b591c094afd0ffda820e931148c9e48dc31a556dc5b2b9b3cc552fa710d858e4", size = 49462, upload-time = "2025-12-25T03:52:24.637Z" }, - { url = "https://files.pythonhosted.org/packages/03/ea/052a79454cc52081dfaa9a1c4c10a529f7a6a6805b2fac5805fea5b25975/librt-0.7.5-cp312-cp312-win_arm64.whl", hash = "sha256:532ddc6a8a6ca341b1cd7f4d999043e4c71a212b26fe9fd2e7f1e8bb4e873544", size = 42830, upload-time = "2025-12-25T03:52:25.944Z" }, - { url = "https://files.pythonhosted.org/packages/9f/9a/8f61e16de0ff76590af893cfb5b1aa5fa8b13e5e54433d0809c7033f59ed/librt-0.7.5-cp313-cp313-macosx_10_13_x86_64.whl", hash = "sha256:b1795c4b2789b458fa290059062c2f5a297ddb28c31e704d27e161386469691a", size = 55750, upload-time = "2025-12-25T03:52:26.975Z" }, - { url = "https://files.pythonhosted.org/packages/05/7c/a8a883804851a066f301e0bad22b462260b965d5c9e7fe3c5de04e6f91f8/librt-0.7.5-cp313-cp313-macosx_11_0_arm64.whl", hash = "sha256:2fcbf2e135c11f721193aa5f42ba112bb1046afafbffd407cbc81d8d735c74d0", size = 57170, upload-time = "2025-12-25T03:52:27.948Z" }, - { url = "https://files.pythonhosted.org/packages/d6/5d/b3b47facf5945be294cf8a835b03589f70ee0e791522f99ec6782ed738b3/librt-0.7.5-cp313-cp313-manylinux1_i686.manylinux_2_28_i686.manylinux_2_5_i686.whl", hash = "sha256:c039bbf79a9a2498404d1ae7e29a6c175e63678d7a54013a97397c40aee026c5", size = 165834, upload-time = "2025-12-25T03:52:29.09Z" }, - { url = "https://files.pythonhosted.org/packages/b4/b6/b26910cd0a4e43e5d02aacaaea0db0d2a52e87660dca08293067ee05601a/librt-0.7.5-cp313-cp313-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:3919c9407faeeee35430ae135e3a78acd4ecaaaa73767529e2c15ca1d73ba325", size = 174820, upload-time = "2025-12-25T03:52:30.463Z" }, - { url = "https://files.pythonhosted.org/packages/a5/a3/81feddd345d4c869b7a693135a462ae275f964fcbbe793d01ea56a84c2ee/librt-0.7.5-cp313-cp313-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:26b46620e1e0e45af510d9848ea0915e7040605dd2ae94ebefb6c962cbb6f7ec", size = 189609, upload-time = "2025-12-25T03:52:31.492Z" }, - { url = "https://files.pythonhosted.org/packages/ce/a9/31310796ef4157d1d37648bf4a3b84555319f14cee3e9bad7bdd7bfd9a35/librt-0.7.5-cp313-cp313-musllinux_1_2_aarch64.whl", hash = "sha256:9bbb8facc5375476d392990dd6a71f97e4cb42e2ac66f32e860f6e47299d5e89", size = 184589, upload-time = "2025-12-25T03:52:32.59Z" }, - { url = "https://files.pythonhosted.org/packages/32/22/da3900544cb0ac6ab7a2857850158a0a093b86f92b264aa6c4a4f2355ff3/librt-0.7.5-cp313-cp313-musllinux_1_2_i686.whl", hash = "sha256:e9e9c988b5ffde7be02180f864cbd17c0b0c1231c235748912ab2afa05789c25", size = 178251, upload-time = "2025-12-25T03:52:33.745Z" }, - { url = "https://files.pythonhosted.org/packages/db/77/78e02609846e78b9b8c8e361753b3dbac9a07e6d5b567fe518de9e074ab0/librt-0.7.5-cp313-cp313-musllinux_1_2_x86_64.whl", hash = "sha256:edf6b465306215b19dbe6c3fb63cf374a8f3e1ad77f3b4c16544b83033bbb67b", size = 199852, upload-time = "2025-12-25T03:52:34.826Z" }, - { url = "https://files.pythonhosted.org/packages/2a/25/05706f6b346429c951582f1b3561f4d5e1418d0d7ba1a0c181237cd77b3b/librt-0.7.5-cp313-cp313-win32.whl", hash = "sha256:060bde69c3604f694bd8ae21a780fe8be46bb3dbb863642e8dfc75c931ca8eee", size = 43250, upload-time = "2025-12-25T03:52:35.905Z" }, - { url = "https://files.pythonhosted.org/packages/d9/59/c38677278ac0b9ae1afc611382ef6c9ea87f52ad257bd3d8d65f0eacdc6a/librt-0.7.5-cp313-cp313-win_amd64.whl", hash = "sha256:a82d5a0ee43aeae2116d7292c77cc8038f4841830ade8aa922e098933b468b9e", size = 49421, upload-time = "2025-12-25T03:52:36.895Z" }, - { url = "https://files.pythonhosted.org/packages/c0/47/1d71113df4a81de5fdfbd3d7244e05d3d67e89f25455c3380ca50b92741e/librt-0.7.5-cp313-cp313-win_arm64.whl", hash = "sha256:3c98a8d0ac9e2a7cb8ff8c53e5d6e8d82bfb2839abf144fdeaaa832f2a12aa45", size = 42827, upload-time = "2025-12-25T03:52:37.856Z" }, - { url = "https://files.pythonhosted.org/packages/97/ae/8635b4efdc784220f1378be640d8b1a794332f7f6ea81bb4859bf9d18aa7/librt-0.7.5-cp314-cp314-macosx_10_13_x86_64.whl", hash = "sha256:9937574e6d842f359b8585903d04f5b4ab62277a091a93e02058158074dc52f2", size = 55191, upload-time = "2025-12-25T03:52:38.839Z" }, - { url = "https://files.pythonhosted.org/packages/52/11/ed7ef6955dc2032af37db9b0b31cd5486a138aa792e1bb9e64f0f4950e27/librt-0.7.5-cp314-cp314-macosx_11_0_arm64.whl", hash = "sha256:5cd3afd71e9bc146203b6c8141921e738364158d4aa7cdb9a874e2505163770f", size = 56894, upload-time = "2025-12-25T03:52:39.805Z" }, - { url = "https://files.pythonhosted.org/packages/24/f1/02921d4a66a1b5dcd0493b89ce76e2762b98c459fe2ad04b67b2ea6fdd39/librt-0.7.5-cp314-cp314-manylinux1_i686.manylinux_2_28_i686.manylinux_2_5_i686.whl", hash = "sha256:9cffa3ef0af29687455161cb446eff059bf27607f95163d6a37e27bcb37180f6", size = 163726, upload-time = "2025-12-25T03:52:40.79Z" }, - { url = "https://files.pythonhosted.org/packages/65/87/27df46d2756fcb7a82fa7f6ca038a0c6064c3e93ba65b0b86fbf6a4f76a2/librt-0.7.5-cp314-cp314-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:82f3f088482e2229387eadf8215c03f7726d56f69cce8c0c40f0795aebc9b361", size = 172470, upload-time = "2025-12-25T03:52:42.226Z" }, - { url = "https://files.pythonhosted.org/packages/9f/a9/e65a35e5d423639f4f3d8e17301ff13cc41c2ff97677fe9c361c26dbfbb7/librt-0.7.5-cp314-cp314-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:d7aa33153a5bb0bac783d2c57885889b1162823384e8313d47800a0e10d0070e", size = 186807, upload-time = "2025-12-25T03:52:43.688Z" }, - { url = "https://files.pythonhosted.org/packages/d7/b0/ac68aa582a996b1241773bd419823290c42a13dc9f494704a12a17ddd7b6/librt-0.7.5-cp314-cp314-musllinux_1_2_aarch64.whl", hash = "sha256:265729b551a2dd329cc47b323a182fb7961af42abf21e913c9dd7d3331b2f3c2", size = 181810, upload-time = "2025-12-25T03:52:45.095Z" }, - { url = "https://files.pythonhosted.org/packages/e1/c1/03f6717677f20acd2d690813ec2bbe12a2de305f32c61479c53f7b9413bc/librt-0.7.5-cp314-cp314-musllinux_1_2_i686.whl", hash = "sha256:168e04663e126416ba712114050f413ac306759a1791d87b7c11d4428ba75760", size = 175599, upload-time = "2025-12-25T03:52:46.177Z" }, - { url = "https://files.pythonhosted.org/packages/01/d7/f976ff4c07c59b69bb5eec7e5886d43243075bbef834428124b073471c86/librt-0.7.5-cp314-cp314-musllinux_1_2_x86_64.whl", hash = "sha256:553dc58987d1d853adda8aeadf4db8e29749f0b11877afcc429a9ad892818ae2", size = 196506, upload-time = "2025-12-25T03:52:47.327Z" }, - { url = "https://files.pythonhosted.org/packages/b7/74/004f068b8888e61b454568b5479f88018fceb14e511ac0609cccee7dd227/librt-0.7.5-cp314-cp314-win32.whl", hash = "sha256:263f4fae9eba277513357c871275b18d14de93fd49bf5e43dc60a97b81ad5eb8", size = 39747, upload-time = "2025-12-25T03:52:48.437Z" }, - { url = "https://files.pythonhosted.org/packages/37/b1/ea3ec8fcf5f0a00df21f08972af77ad799604a306db58587308067d27af8/librt-0.7.5-cp314-cp314-win_amd64.whl", hash = "sha256:85f485b7471571e99fab4f44eeb327dc0e1f814ada575f3fa85e698417d8a54e", size = 45970, upload-time = "2025-12-25T03:52:49.389Z" }, - { url = "https://files.pythonhosted.org/packages/5d/30/5e3fb7ac4614a50fc67e6954926137d50ebc27f36419c9963a94f931f649/librt-0.7.5-cp314-cp314-win_arm64.whl", hash = "sha256:49c596cd18e90e58b7caa4d7ca7606049c1802125fcff96b8af73fa5c3870e4d", size = 39075, upload-time = "2025-12-25T03:52:50.395Z" }, - { url = "https://files.pythonhosted.org/packages/a4/7f/0af0a9306a06c2aabee3a790f5aa560c50ec0a486ab818a572dd3db6c851/librt-0.7.5-cp314-cp314t-macosx_10_13_x86_64.whl", hash = "sha256:54d2aef0b0f5056f130981ad45081b278602ff3657fe16c88529f5058038e802", size = 57375, upload-time = "2025-12-25T03:52:51.439Z" }, - { url = "https://files.pythonhosted.org/packages/57/1f/c85e510baf6572a3d6ef40c742eacedc02973ed2acdb5dba2658751d9af8/librt-0.7.5-cp314-cp314t-macosx_11_0_arm64.whl", hash = "sha256:0b4791202296ad51ac09a3ff58eb49d9da8e3a4009167a6d76ac418a974e5fd4", size = 59234, upload-time = "2025-12-25T03:52:52.687Z" }, - { url = "https://files.pythonhosted.org/packages/49/b1/bb6535e4250cd18b88d6b18257575a0239fa1609ebba925f55f51ae08e8e/librt-0.7.5-cp314-cp314t-manylinux1_i686.manylinux_2_28_i686.manylinux_2_5_i686.whl", hash = "sha256:6e860909fea75baef941ee6436e0453612505883b9d0d87924d4fda27865b9a2", size = 183873, upload-time = "2025-12-25T03:52:53.705Z" }, - { url = "https://files.pythonhosted.org/packages/8e/49/ad4a138cca46cdaa7f0e15fa912ce3ccb4cc0d4090bfeb8ccc35766fa6d5/librt-0.7.5-cp314-cp314t-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:f02c4337bf271c4f06637f5ff254fad2238c0b8e32a3a480ebb2fc5e26f754a5", size = 194609, upload-time = "2025-12-25T03:52:54.884Z" }, - { url = "https://files.pythonhosted.org/packages/9c/2d/3b3cb933092d94bb2c1d3c9b503d8775f08d806588c19a91ee4d1495c2a8/librt-0.7.5-cp314-cp314t-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:f7f51ffe59f4556243d3cc82d827bde74765f594fa3ceb80ec4de0c13ccd3416", size = 206777, upload-time = "2025-12-25T03:52:55.969Z" }, - { url = "https://files.pythonhosted.org/packages/3a/52/6e7611d3d1347812233dabc44abca4c8065ee97b83c9790d7ecc3f782bc8/librt-0.7.5-cp314-cp314t-musllinux_1_2_aarch64.whl", hash = "sha256:0b7f080ba30601dfa3e3deed3160352273e1b9bc92e652f51103c3e9298f7899", size = 203208, upload-time = "2025-12-25T03:52:57.036Z" }, - { url = "https://files.pythonhosted.org/packages/27/aa/466ae4654bd2d45903fbf180815d41e3ae8903e5a1861f319f73c960a843/librt-0.7.5-cp314-cp314t-musllinux_1_2_i686.whl", hash = "sha256:fb565b4219abc8ea2402e61c7ba648a62903831059ed3564fa1245cc245d58d7", size = 196698, upload-time = "2025-12-25T03:52:58.481Z" }, - { url = "https://files.pythonhosted.org/packages/97/8f/424f7e4525bb26fe0d3e984d1c0810ced95e53be4fd867ad5916776e18a3/librt-0.7.5-cp314-cp314t-musllinux_1_2_x86_64.whl", hash = "sha256:8a3cfb15961e7333ea6ef033dc574af75153b5c230d5ad25fbcd55198f21e0cf", size = 217194, upload-time = "2025-12-25T03:52:59.575Z" }, - { url = "https://files.pythonhosted.org/packages/9e/33/13a4cb798a171b173f3c94db23adaf13a417130e1493933dc0df0d7fb439/librt-0.7.5-cp314-cp314t-win32.whl", hash = "sha256:118716de5ad6726332db1801bc90fa6d94194cd2e07c1a7822cebf12c496714d", size = 40282, upload-time = "2025-12-25T03:53:01.091Z" }, - { url = "https://files.pythonhosted.org/packages/5f/f1/62b136301796399d65dad73b580f4509bcbd347dff885a450bff08e80cb6/librt-0.7.5-cp314-cp314t-win_amd64.whl", hash = "sha256:3dd58f7ce20360c6ce0c04f7bd9081c7f9c19fc6129a3c705d0c5a35439f201d", size = 46764, upload-time = "2025-12-25T03:53:02.381Z" }, - { url = "https://files.pythonhosted.org/packages/49/cb/940431d9410fda74f941f5cd7f0e5a22c63be7b0c10fa98b2b7022b48cb1/librt-0.7.5-cp314-cp314t-win_arm64.whl", hash = "sha256:08153ea537609d11f774d2bfe84af39d50d5c9ca3a4d061d946e0c9d8bce04a1", size = 39728, upload-time = "2025-12-25T03:53:03.306Z" }, -] - -[[package]] -name = "markdown-it-py" -version = "4.0.0" -source = { registry = "https://pypi.org/simple" } -dependencies = [ - { name = "mdurl" }, -] -sdist = { url = "https://files.pythonhosted.org/packages/5b/f5/4ec618ed16cc4f8fb3b701563655a69816155e79e24a17b651541804721d/markdown_it_py-4.0.0.tar.gz", hash = "sha256:cb0a2b4aa34f932c007117b194e945bd74e0ec24133ceb5bac59009cda1cb9f3", size = 73070, upload-time = "2025-08-11T12:57:52.854Z" } -wheels = [ - { url = "https://files.pythonhosted.org/packages/94/54/e7d793b573f298e1c9013b8c4dade17d481164aa517d1d7148619c2cedbf/markdown_it_py-4.0.0-py3-none-any.whl", hash = "sha256:87327c59b172c5011896038353a81343b6754500a08cd7a4973bb48c6d578147", size = 87321, upload-time = "2025-08-11T12:57:51.923Z" }, -] - -[[package]] -name = "mdurl" -version = "0.1.2" -source = { registry = "https://pypi.org/simple" } -sdist = { url = "https://files.pythonhosted.org/packages/d6/54/cfe61301667036ec958cb99bd3efefba235e65cdeb9c84d24a8293ba1d90/mdurl-0.1.2.tar.gz", hash = "sha256:bb413d29f5eea38f31dd4754dd7377d4465116fb207585f97bf925588687c1ba", size = 8729, upload-time = "2022-08-14T12:40:10.846Z" } -wheels = [ - { url = "https://files.pythonhosted.org/packages/b3/38/89ba8ad64ae25be8de66a6d463314cf1eb366222074cfda9ee839c56a4b4/mdurl-0.1.2-py3-none-any.whl", hash = "sha256:84008a41e51615a49fc9966191ff91509e3c40b939176e643fd50a5c2196b8f8", size = 9979, upload-time = "2022-08-14T12:40:09.779Z" }, -] - -[[package]] -name = "mypy" -version = "1.19.1" -source = { registry = "https://pypi.org/simple" } -dependencies = [ - { name = "librt", marker = "platform_python_implementation != 'PyPy'" }, - { name = "mypy-extensions" }, - { name = "pathspec" }, - { name = "tomli", marker = "python_full_version < '3.11'" }, - { name = "typing-extensions" }, -] -sdist = { url = "https://files.pythonhosted.org/packages/f5/db/4efed9504bc01309ab9c2da7e352cc223569f05478012b5d9ece38fd44d2/mypy-1.19.1.tar.gz", hash = "sha256:19d88bb05303fe63f71dd2c6270daca27cb9401c4ca8255fe50d1d920e0eb9ba", size = 3582404, upload-time = "2025-12-15T05:03:48.42Z" } -wheels = [ - { url = "https://files.pythonhosted.org/packages/2f/63/e499890d8e39b1ff2df4c0c6ce5d371b6844ee22b8250687a99fd2f657a8/mypy-1.19.1-cp310-cp310-macosx_10_9_x86_64.whl", hash = "sha256:5f05aa3d375b385734388e844bc01733bd33c644ab48e9684faa54e5389775ec", size = 13101333, upload-time = "2025-12-15T05:03:03.28Z" }, - { url = "https://files.pythonhosted.org/packages/72/4b/095626fc136fba96effc4fd4a82b41d688ab92124f8c4f7564bffe5cf1b0/mypy-1.19.1-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:022ea7279374af1a5d78dfcab853fe6a536eebfda4b59deab53cd21f6cd9f00b", size = 12164102, upload-time = "2025-12-15T05:02:33.611Z" }, - { url = "https://files.pythonhosted.org/packages/0c/5b/952928dd081bf88a83a5ccd49aaecfcd18fd0d2710c7ff07b8fb6f7032b9/mypy-1.19.1-cp310-cp310-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:ee4c11e460685c3e0c64a4c5de82ae143622410950d6be863303a1c4ba0e36d6", size = 12765799, upload-time = "2025-12-15T05:03:28.44Z" }, - { url = "https://files.pythonhosted.org/packages/2a/0d/93c2e4a287f74ef11a66fb6d49c7a9f05e47b0a4399040e6719b57f500d2/mypy-1.19.1-cp310-cp310-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:de759aafbae8763283b2ee5869c7255391fbc4de3ff171f8f030b5ec48381b74", size = 13522149, upload-time = "2025-12-15T05:02:36.011Z" }, - { url = "https://files.pythonhosted.org/packages/7b/0e/33a294b56aaad2b338d203e3a1d8b453637ac36cb278b45005e0901cf148/mypy-1.19.1-cp310-cp310-musllinux_1_2_x86_64.whl", hash = "sha256:ab43590f9cd5108f41aacf9fca31841142c786827a74ab7cc8a2eacb634e09a1", size = 13810105, upload-time = "2025-12-15T05:02:40.327Z" }, - { url = "https://files.pythonhosted.org/packages/0e/fd/3e82603a0cb66b67c5e7abababce6bf1a929ddf67bf445e652684af5c5a0/mypy-1.19.1-cp310-cp310-win_amd64.whl", hash = "sha256:2899753e2f61e571b3971747e302d5f420c3fd09650e1951e99f823bc3089dac", size = 10057200, upload-time = "2025-12-15T05:02:51.012Z" }, - { url = "https://files.pythonhosted.org/packages/ef/47/6b3ebabd5474d9cdc170d1342fbf9dddc1b0ec13ec90bf9004ee6f391c31/mypy-1.19.1-cp311-cp311-macosx_10_9_x86_64.whl", hash = "sha256:d8dfc6ab58ca7dda47d9237349157500468e404b17213d44fc1cb77bce532288", size = 13028539, upload-time = "2025-12-15T05:03:44.129Z" }, - { url = "https://files.pythonhosted.org/packages/5c/a6/ac7c7a88a3c9c54334f53a941b765e6ec6c4ebd65d3fe8cdcfbe0d0fd7db/mypy-1.19.1-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:e3f276d8493c3c97930e354b2595a44a21348b320d859fb4a2b9f66da9ed27ab", size = 12083163, upload-time = "2025-12-15T05:03:37.679Z" }, - { url = "https://files.pythonhosted.org/packages/67/af/3afa9cf880aa4a2c803798ac24f1d11ef72a0c8079689fac5cfd815e2830/mypy-1.19.1-cp311-cp311-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:2abb24cf3f17864770d18d673c85235ba52456b36a06b6afc1e07c1fdcd3d0e6", size = 12687629, upload-time = "2025-12-15T05:02:31.526Z" }, - { url = "https://files.pythonhosted.org/packages/2d/46/20f8a7114a56484ab268b0ab372461cb3a8f7deed31ea96b83a4e4cfcfca/mypy-1.19.1-cp311-cp311-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:a009ffa5a621762d0c926a078c2d639104becab69e79538a494bcccb62cc0331", size = 13436933, upload-time = "2025-12-15T05:03:15.606Z" }, - { url = "https://files.pythonhosted.org/packages/5b/f8/33b291ea85050a21f15da910002460f1f445f8007adb29230f0adea279cb/mypy-1.19.1-cp311-cp311-musllinux_1_2_x86_64.whl", hash = "sha256:f7cee03c9a2e2ee26ec07479f38ea9c884e301d42c6d43a19d20fb014e3ba925", size = 13661754, upload-time = "2025-12-15T05:02:26.731Z" }, - { url = "https://files.pythonhosted.org/packages/fd/a3/47cbd4e85bec4335a9cd80cf67dbc02be21b5d4c9c23ad6b95d6c5196bac/mypy-1.19.1-cp311-cp311-win_amd64.whl", hash = "sha256:4b84a7a18f41e167f7995200a1d07a4a6810e89d29859df936f1c3923d263042", size = 10055772, upload-time = "2025-12-15T05:03:26.179Z" }, - { url = "https://files.pythonhosted.org/packages/06/8a/19bfae96f6615aa8a0604915512e0289b1fad33d5909bf7244f02935d33a/mypy-1.19.1-cp312-cp312-macosx_10_13_x86_64.whl", hash = "sha256:a8174a03289288c1f6c46d55cef02379b478bfbc8e358e02047487cad44c6ca1", size = 13206053, upload-time = "2025-12-15T05:03:46.622Z" }, - { url = "https://files.pythonhosted.org/packages/a5/34/3e63879ab041602154ba2a9f99817bb0c85c4df19a23a1443c8986e4d565/mypy-1.19.1-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:ffcebe56eb09ff0c0885e750036a095e23793ba6c2e894e7e63f6d89ad51f22e", size = 12219134, upload-time = "2025-12-15T05:03:24.367Z" }, - { url = "https://files.pythonhosted.org/packages/89/cc/2db6f0e95366b630364e09845672dbee0cbf0bbe753a204b29a944967cd9/mypy-1.19.1-cp312-cp312-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:b64d987153888790bcdb03a6473d321820597ab8dd9243b27a92153c4fa50fd2", size = 12731616, upload-time = "2025-12-15T05:02:44.725Z" }, - { url = "https://files.pythonhosted.org/packages/00/be/dd56c1fd4807bc1eba1cf18b2a850d0de7bacb55e158755eb79f77c41f8e/mypy-1.19.1-cp312-cp312-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:c35d298c2c4bba75feb2195655dfea8124d855dfd7343bf8b8c055421eaf0cf8", size = 13620847, upload-time = "2025-12-15T05:03:39.633Z" }, - { url = "https://files.pythonhosted.org/packages/6d/42/332951aae42b79329f743bf1da088cd75d8d4d9acc18fbcbd84f26c1af4e/mypy-1.19.1-cp312-cp312-musllinux_1_2_x86_64.whl", hash = "sha256:34c81968774648ab5ac09c29a375fdede03ba253f8f8287847bd480782f73a6a", size = 13834976, upload-time = "2025-12-15T05:03:08.786Z" }, - { url = "https://files.pythonhosted.org/packages/6f/63/e7493e5f90e1e085c562bb06e2eb32cae27c5057b9653348d38b47daaecc/mypy-1.19.1-cp312-cp312-win_amd64.whl", hash = "sha256:b10e7c2cd7870ba4ad9b2d8a6102eb5ffc1f16ca35e3de6bfa390c1113029d13", size = 10118104, upload-time = "2025-12-15T05:03:10.834Z" }, - { url = "https://files.pythonhosted.org/packages/de/9f/a6abae693f7a0c697dbb435aac52e958dc8da44e92e08ba88d2e42326176/mypy-1.19.1-cp313-cp313-macosx_10_13_x86_64.whl", hash = "sha256:e3157c7594ff2ef1634ee058aafc56a82db665c9438fd41b390f3bde1ab12250", size = 13201927, upload-time = "2025-12-15T05:02:29.138Z" }, - { url = "https://files.pythonhosted.org/packages/9a/a4/45c35ccf6e1c65afc23a069f50e2c66f46bd3798cbe0d680c12d12935caa/mypy-1.19.1-cp313-cp313-macosx_11_0_arm64.whl", hash = "sha256:bdb12f69bcc02700c2b47e070238f42cb87f18c0bc1fc4cdb4fb2bc5fd7a3b8b", size = 12206730, upload-time = "2025-12-15T05:03:01.325Z" }, - { url = "https://files.pythonhosted.org/packages/05/bb/cdcf89678e26b187650512620eec8368fded4cfd99cfcb431e4cdfd19dec/mypy-1.19.1-cp313-cp313-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:f859fb09d9583a985be9a493d5cfc5515b56b08f7447759a0c5deaf68d80506e", size = 12724581, upload-time = "2025-12-15T05:03:20.087Z" }, - { url = "https://files.pythonhosted.org/packages/d1/32/dd260d52babf67bad8e6770f8e1102021877ce0edea106e72df5626bb0ec/mypy-1.19.1-cp313-cp313-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:c9a6538e0415310aad77cb94004ca6482330fece18036b5f360b62c45814c4ef", size = 13616252, upload-time = "2025-12-15T05:02:49.036Z" }, - { url = "https://files.pythonhosted.org/packages/71/d0/5e60a9d2e3bd48432ae2b454b7ef2b62a960ab51292b1eda2a95edd78198/mypy-1.19.1-cp313-cp313-musllinux_1_2_x86_64.whl", hash = "sha256:da4869fc5e7f62a88f3fe0b5c919d1d9f7ea3cef92d3689de2823fd27e40aa75", size = 13840848, upload-time = "2025-12-15T05:02:55.95Z" }, - { url = "https://files.pythonhosted.org/packages/98/76/d32051fa65ecf6cc8c6610956473abdc9b4c43301107476ac03559507843/mypy-1.19.1-cp313-cp313-win_amd64.whl", hash = "sha256:016f2246209095e8eda7538944daa1d60e1e8134d98983b9fc1e92c1fc0cb8dd", size = 10135510, upload-time = "2025-12-15T05:02:58.438Z" }, - { url = "https://files.pythonhosted.org/packages/de/eb/b83e75f4c820c4247a58580ef86fcd35165028f191e7e1ba57128c52782d/mypy-1.19.1-cp314-cp314-macosx_10_15_x86_64.whl", hash = "sha256:06e6170bd5836770e8104c8fdd58e5e725cfeb309f0a6c681a811f557e97eac1", size = 13199744, upload-time = "2025-12-15T05:03:30.823Z" }, - { url = "https://files.pythonhosted.org/packages/94/28/52785ab7bfa165f87fcbb61547a93f98bb20e7f82f90f165a1f69bce7b3d/mypy-1.19.1-cp314-cp314-macosx_11_0_arm64.whl", hash = "sha256:804bd67b8054a85447c8954215a906d6eff9cabeabe493fb6334b24f4bfff718", size = 12215815, upload-time = "2025-12-15T05:02:42.323Z" }, - { url = "https://files.pythonhosted.org/packages/0a/c6/bdd60774a0dbfb05122e3e925f2e9e846c009e479dcec4821dad881f5b52/mypy-1.19.1-cp314-cp314-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:21761006a7f497cb0d4de3d8ef4ca70532256688b0523eee02baf9eec895e27b", size = 12740047, upload-time = "2025-12-15T05:03:33.168Z" }, - { url = "https://files.pythonhosted.org/packages/32/2a/66ba933fe6c76bd40d1fe916a83f04fed253152f451a877520b3c4a5e41e/mypy-1.19.1-cp314-cp314-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:28902ee51f12e0f19e1e16fbe2f8f06b6637f482c459dd393efddd0ec7f82045", size = 13601998, upload-time = "2025-12-15T05:03:13.056Z" }, - { url = "https://files.pythonhosted.org/packages/e3/da/5055c63e377c5c2418760411fd6a63ee2b96cf95397259038756c042574f/mypy-1.19.1-cp314-cp314-musllinux_1_2_x86_64.whl", hash = "sha256:481daf36a4c443332e2ae9c137dfee878fcea781a2e3f895d54bd3002a900957", size = 13807476, upload-time = "2025-12-15T05:03:17.977Z" }, - { url = "https://files.pythonhosted.org/packages/cd/09/4ebd873390a063176f06b0dbf1f7783dd87bd120eae7727fa4ae4179b685/mypy-1.19.1-cp314-cp314-win_amd64.whl", hash = "sha256:8bb5c6f6d043655e055be9b542aa5f3bdd30e4f3589163e85f93f3640060509f", size = 10281872, upload-time = "2025-12-15T05:03:05.549Z" }, - { url = "https://files.pythonhosted.org/packages/8d/f4/4ce9a05ce5ded1de3ec1c1d96cf9f9504a04e54ce0ed55cfa38619a32b8d/mypy-1.19.1-py3-none-any.whl", hash = "sha256:f1235f5ea01b7db5468d53ece6aaddf1ad0b88d9e7462b86ef96fe04995d7247", size = 2471239, upload-time = "2025-12-15T05:03:07.248Z" }, -] - -[[package]] -name = "mypy-extensions" -version = "1.1.0" -source = { registry = "https://pypi.org/simple" } -sdist = { url = "https://files.pythonhosted.org/packages/a2/6e/371856a3fb9d31ca8dac321cda606860fa4548858c0cc45d9d1d4ca2628b/mypy_extensions-1.1.0.tar.gz", hash = "sha256:52e68efc3284861e772bbcd66823fde5ae21fd2fdb51c62a211403730b916558", size = 6343, upload-time = "2025-04-22T14:54:24.164Z" } -wheels = [ - { url = "https://files.pythonhosted.org/packages/79/7b/2c79738432f5c924bef5071f933bcc9efd0473bac3b4aa584a6f7c1c8df8/mypy_extensions-1.1.0-py3-none-any.whl", hash = "sha256:1be4cccdb0f2482337c4743e60421de3a356cd97508abadd57d47403e94f5505", size = 4963, upload-time = "2025-04-22T14:54:22.983Z" }, -] - -[[package]] -name = "orjson" -version = "3.11.3" -source = { registry = "https://pypi.org/simple" } -sdist = { url = "https://files.pythonhosted.org/packages/be/4d/8df5f83256a809c22c4d6792ce8d43bb503be0fb7a8e4da9025754b09658/orjson-3.11.3.tar.gz", hash = "sha256:1c0603b1d2ffcd43a411d64797a19556ef76958aef1c182f22dc30860152a98a", size = 5482394, upload-time = "2025-08-26T17:46:43.171Z" } -wheels = [ - { url = "https://files.pythonhosted.org/packages/9b/64/4a3cef001c6cd9c64256348d4c13a7b09b857e3e1cbb5185917df67d8ced/orjson-3.11.3-cp310-cp310-macosx_10_15_x86_64.macosx_11_0_arm64.macosx_10_15_universal2.whl", hash = "sha256:29cb1f1b008d936803e2da3d7cba726fc47232c45df531b29edf0b232dd737e7", size = 238600, upload-time = "2025-08-26T17:44:36.875Z" }, - { url = "https://files.pythonhosted.org/packages/10/ce/0c8c87f54f79d051485903dc46226c4d3220b691a151769156054df4562b/orjson-3.11.3-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:97dceed87ed9139884a55db8722428e27bd8452817fbf1869c58b49fecab1120", size = 123526, upload-time = "2025-08-26T17:44:39.574Z" }, - { url = "https://files.pythonhosted.org/packages/ef/d0/249497e861f2d438f45b3ab7b7b361484237414945169aa285608f9f7019/orjson-3.11.3-cp310-cp310-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:58533f9e8266cb0ac298e259ed7b4d42ed3fa0b78ce76860626164de49e0d467", size = 128075, upload-time = "2025-08-26T17:44:40.672Z" }, - { url = "https://files.pythonhosted.org/packages/e5/64/00485702f640a0fd56144042a1ea196469f4a3ae93681871564bf74fa996/orjson-3.11.3-cp310-cp310-manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:0c212cfdd90512fe722fa9bd620de4d46cda691415be86b2e02243242ae81873", size = 130483, upload-time = "2025-08-26T17:44:41.788Z" }, - { url = "https://files.pythonhosted.org/packages/64/81/110d68dba3909171bf3f05619ad0cf187b430e64045ae4e0aa7ccfe25b15/orjson-3.11.3-cp310-cp310-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:5ff835b5d3e67d9207343effb03760c00335f8b5285bfceefd4dc967b0e48f6a", size = 132539, upload-time = "2025-08-26T17:44:43.12Z" }, - { url = "https://files.pythonhosted.org/packages/79/92/dba25c22b0ddfafa1e6516a780a00abac28d49f49e7202eb433a53c3e94e/orjson-3.11.3-cp310-cp310-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:f5aa4682912a450c2db89cbd92d356fef47e115dffba07992555542f344d301b", size = 135390, upload-time = "2025-08-26T17:44:44.199Z" }, - { url = "https://files.pythonhosted.org/packages/44/1d/ca2230fd55edbd87b58a43a19032d63a4b180389a97520cc62c535b726f9/orjson-3.11.3-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:d7d18dd34ea2e860553a579df02041845dee0af8985dff7f8661306f95504ddf", size = 132966, upload-time = "2025-08-26T17:44:45.719Z" }, - { url = "https://files.pythonhosted.org/packages/6e/b9/96bbc8ed3e47e52b487d504bd6861798977445fbc410da6e87e302dc632d/orjson-3.11.3-cp310-cp310-musllinux_1_2_aarch64.whl", hash = "sha256:d8b11701bc43be92ea42bd454910437b355dfb63696c06fe953ffb40b5f763b4", size = 131349, upload-time = "2025-08-26T17:44:46.862Z" }, - { url = "https://files.pythonhosted.org/packages/c4/3c/418fbd93d94b0df71cddf96b7fe5894d64a5d890b453ac365120daec30f7/orjson-3.11.3-cp310-cp310-musllinux_1_2_armv7l.whl", hash = "sha256:90368277087d4af32d38bd55f9da2ff466d25325bf6167c8f382d8ee40cb2bbc", size = 404087, upload-time = "2025-08-26T17:44:48.079Z" }, - { url = "https://files.pythonhosted.org/packages/5b/a9/2bfd58817d736c2f63608dec0c34857339d423eeed30099b126562822191/orjson-3.11.3-cp310-cp310-musllinux_1_2_i686.whl", hash = "sha256:fd7ff459fb393358d3a155d25b275c60b07a2c83dcd7ea962b1923f5a1134569", size = 146067, upload-time = "2025-08-26T17:44:49.302Z" }, - { url = "https://files.pythonhosted.org/packages/33/ba/29023771f334096f564e48d82ed855a0ed3320389d6748a9c949e25be734/orjson-3.11.3-cp310-cp310-musllinux_1_2_x86_64.whl", hash = "sha256:f8d902867b699bcd09c176a280b1acdab57f924489033e53d0afe79817da37e6", size = 135506, upload-time = "2025-08-26T17:44:50.558Z" }, - { url = "https://files.pythonhosted.org/packages/39/62/b5a1eca83f54cb3aa11a9645b8a22f08d97dbd13f27f83aae7c6666a0a05/orjson-3.11.3-cp310-cp310-win32.whl", hash = "sha256:bb93562146120bb51e6b154962d3dadc678ed0fce96513fa6bc06599bb6f6edc", size = 136352, upload-time = "2025-08-26T17:44:51.698Z" }, - { url = "https://files.pythonhosted.org/packages/e3/c0/7ebfaa327d9a9ed982adc0d9420dbce9a3fec45b60ab32c6308f731333fa/orjson-3.11.3-cp310-cp310-win_amd64.whl", hash = "sha256:976c6f1975032cc327161c65d4194c549f2589d88b105a5e3499429a54479770", size = 131539, upload-time = "2025-08-26T17:44:52.974Z" }, - { url = "https://files.pythonhosted.org/packages/cd/8b/360674cd817faef32e49276187922a946468579fcaf37afdfb6c07046e92/orjson-3.11.3-cp311-cp311-macosx_10_15_x86_64.macosx_11_0_arm64.macosx_10_15_universal2.whl", hash = "sha256:9d2ae0cc6aeb669633e0124531f342a17d8e97ea999e42f12a5ad4adaa304c5f", size = 238238, upload-time = "2025-08-26T17:44:54.214Z" }, - { url = "https://files.pythonhosted.org/packages/05/3d/5fa9ea4b34c1a13be7d9046ba98d06e6feb1d8853718992954ab59d16625/orjson-3.11.3-cp311-cp311-macosx_15_0_arm64.whl", hash = "sha256:ba21dbb2493e9c653eaffdc38819b004b7b1b246fb77bfc93dc016fe664eac91", size = 127713, upload-time = "2025-08-26T17:44:55.596Z" }, - { url = "https://files.pythonhosted.org/packages/e5/5f/e18367823925e00b1feec867ff5f040055892fc474bf5f7875649ecfa586/orjson-3.11.3-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:00f1a271e56d511d1569937c0447d7dce5a99a33ea0dec76673706360a051904", size = 123241, upload-time = "2025-08-26T17:44:57.185Z" }, - { url = "https://files.pythonhosted.org/packages/0f/bd/3c66b91c4564759cf9f473251ac1650e446c7ba92a7c0f9f56ed54f9f0e6/orjson-3.11.3-cp311-cp311-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:b67e71e47caa6680d1b6f075a396d04fa6ca8ca09aafb428731da9b3ea32a5a6", size = 127895, upload-time = "2025-08-26T17:44:58.349Z" }, - { url = "https://files.pythonhosted.org/packages/82/b5/dc8dcd609db4766e2967a85f63296c59d4722b39503e5b0bf7fd340d387f/orjson-3.11.3-cp311-cp311-manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:d7d012ebddffcce8c85734a6d9e5f08180cd3857c5f5a3ac70185b43775d043d", size = 130303, upload-time = "2025-08-26T17:44:59.491Z" }, - { url = "https://files.pythonhosted.org/packages/48/c2/d58ec5fd1270b2aa44c862171891adc2e1241bd7dab26c8f46eb97c6c6f1/orjson-3.11.3-cp311-cp311-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:dd759f75d6b8d1b62012b7f5ef9461d03c804f94d539a5515b454ba3a6588038", size = 132366, upload-time = "2025-08-26T17:45:00.654Z" }, - { url = "https://files.pythonhosted.org/packages/73/87/0ef7e22eb8dd1ef940bfe3b9e441db519e692d62ed1aae365406a16d23d0/orjson-3.11.3-cp311-cp311-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:6890ace0809627b0dff19cfad92d69d0fa3f089d3e359a2a532507bb6ba34efb", size = 135180, upload-time = "2025-08-26T17:45:02.424Z" }, - { url = "https://files.pythonhosted.org/packages/bb/6a/e5bf7b70883f374710ad74faf99bacfc4b5b5a7797c1d5e130350e0e28a3/orjson-3.11.3-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:f9d4a5e041ae435b815e568537755773d05dac031fee6a57b4ba70897a44d9d2", size = 132741, upload-time = "2025-08-26T17:45:03.663Z" }, - { url = "https://files.pythonhosted.org/packages/bd/0c/4577fd860b6386ffaa56440e792af01c7882b56d2766f55384b5b0e9d39b/orjson-3.11.3-cp311-cp311-musllinux_1_2_aarch64.whl", hash = "sha256:2d68bf97a771836687107abfca089743885fb664b90138d8761cce61d5625d55", size = 131104, upload-time = "2025-08-26T17:45:04.939Z" }, - { url = "https://files.pythonhosted.org/packages/66/4b/83e92b2d67e86d1c33f2ea9411742a714a26de63641b082bdbf3d8e481af/orjson-3.11.3-cp311-cp311-musllinux_1_2_armv7l.whl", hash = "sha256:bfc27516ec46f4520b18ef645864cee168d2a027dbf32c5537cb1f3e3c22dac1", size = 403887, upload-time = "2025-08-26T17:45:06.228Z" }, - { url = "https://files.pythonhosted.org/packages/6d/e5/9eea6a14e9b5ceb4a271a1fd2e1dec5f2f686755c0fab6673dc6ff3433f4/orjson-3.11.3-cp311-cp311-musllinux_1_2_i686.whl", hash = "sha256:f66b001332a017d7945e177e282a40b6997056394e3ed7ddb41fb1813b83e824", size = 145855, upload-time = "2025-08-26T17:45:08.338Z" }, - { url = "https://files.pythonhosted.org/packages/45/78/8d4f5ad0c80ba9bf8ac4d0fc71f93a7d0dc0844989e645e2074af376c307/orjson-3.11.3-cp311-cp311-musllinux_1_2_x86_64.whl", hash = "sha256:212e67806525d2561efbfe9e799633b17eb668b8964abed6b5319b2f1cfbae1f", size = 135361, upload-time = "2025-08-26T17:45:09.625Z" }, - { url = "https://files.pythonhosted.org/packages/0b/5f/16386970370178d7a9b438517ea3d704efcf163d286422bae3b37b88dbb5/orjson-3.11.3-cp311-cp311-win32.whl", hash = "sha256:6e8e0c3b85575a32f2ffa59de455f85ce002b8bdc0662d6b9c2ed6d80ab5d204", size = 136190, upload-time = "2025-08-26T17:45:10.962Z" }, - { url = "https://files.pythonhosted.org/packages/09/60/db16c6f7a41dd8ac9fb651f66701ff2aeb499ad9ebc15853a26c7c152448/orjson-3.11.3-cp311-cp311-win_amd64.whl", hash = "sha256:6be2f1b5d3dc99a5ce5ce162fc741c22ba9f3443d3dd586e6a1211b7bc87bc7b", size = 131389, upload-time = "2025-08-26T17:45:12.285Z" }, - { url = "https://files.pythonhosted.org/packages/3e/2a/bb811ad336667041dea9b8565c7c9faf2f59b47eb5ab680315eea612ef2e/orjson-3.11.3-cp311-cp311-win_arm64.whl", hash = "sha256:fafb1a99d740523d964b15c8db4eabbfc86ff29f84898262bf6e3e4c9e97e43e", size = 126120, upload-time = "2025-08-26T17:45:13.515Z" }, - { url = "https://files.pythonhosted.org/packages/3d/b0/a7edab2a00cdcb2688e1c943401cb3236323e7bfd2839815c6131a3742f4/orjson-3.11.3-cp312-cp312-macosx_10_15_x86_64.macosx_11_0_arm64.macosx_10_15_universal2.whl", hash = "sha256:8c752089db84333e36d754c4baf19c0e1437012242048439c7e80eb0e6426e3b", size = 238259, upload-time = "2025-08-26T17:45:15.093Z" }, - { url = "https://files.pythonhosted.org/packages/e1/c6/ff4865a9cc398a07a83342713b5932e4dc3cb4bf4bc04e8f83dedfc0d736/orjson-3.11.3-cp312-cp312-macosx_15_0_arm64.whl", hash = "sha256:9b8761b6cf04a856eb544acdd82fc594b978f12ac3602d6374a7edb9d86fd2c2", size = 127633, upload-time = "2025-08-26T17:45:16.417Z" }, - { url = "https://files.pythonhosted.org/packages/6e/e6/e00bea2d9472f44fe8794f523e548ce0ad51eb9693cf538a753a27b8bda4/orjson-3.11.3-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:8b13974dc8ac6ba22feaa867fc19135a3e01a134b4f7c9c28162fed4d615008a", size = 123061, upload-time = "2025-08-26T17:45:17.673Z" }, - { url = "https://files.pythonhosted.org/packages/54/31/9fbb78b8e1eb3ac605467cb846e1c08d0588506028b37f4ee21f978a51d4/orjson-3.11.3-cp312-cp312-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:f83abab5bacb76d9c821fd5c07728ff224ed0e52d7a71b7b3de822f3df04e15c", size = 127956, upload-time = "2025-08-26T17:45:19.172Z" }, - { url = "https://files.pythonhosted.org/packages/36/88/b0604c22af1eed9f98d709a96302006915cfd724a7ebd27d6dd11c22d80b/orjson-3.11.3-cp312-cp312-manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:e6fbaf48a744b94091a56c62897b27c31ee2da93d826aa5b207131a1e13d4064", size = 130790, upload-time = "2025-08-26T17:45:20.586Z" }, - { url = "https://files.pythonhosted.org/packages/0e/9d/1c1238ae9fffbfed51ba1e507731b3faaf6b846126a47e9649222b0fd06f/orjson-3.11.3-cp312-cp312-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:bc779b4f4bba2847d0d2940081a7b6f7b5877e05408ffbb74fa1faf4a136c424", size = 132385, upload-time = "2025-08-26T17:45:22.036Z" }, - { url = "https://files.pythonhosted.org/packages/a3/b5/c06f1b090a1c875f337e21dd71943bc9d84087f7cdf8c6e9086902c34e42/orjson-3.11.3-cp312-cp312-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:bd4b909ce4c50faa2192da6bb684d9848d4510b736b0611b6ab4020ea6fd2d23", size = 135305, upload-time = "2025-08-26T17:45:23.4Z" }, - { url = "https://files.pythonhosted.org/packages/a0/26/5f028c7d81ad2ebbf84414ba6d6c9cac03f22f5cd0d01eb40fb2d6a06b07/orjson-3.11.3-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:524b765ad888dc5518bbce12c77c2e83dee1ed6b0992c1790cc5fb49bb4b6667", size = 132875, upload-time = "2025-08-26T17:45:25.182Z" }, - { url = "https://files.pythonhosted.org/packages/fe/d4/b8df70d9cfb56e385bf39b4e915298f9ae6c61454c8154a0f5fd7efcd42e/orjson-3.11.3-cp312-cp312-musllinux_1_2_aarch64.whl", hash = "sha256:84fd82870b97ae3cdcea9d8746e592b6d40e1e4d4527835fc520c588d2ded04f", size = 130940, upload-time = "2025-08-26T17:45:27.209Z" }, - { url = "https://files.pythonhosted.org/packages/da/5e/afe6a052ebc1a4741c792dd96e9f65bf3939d2094e8b356503b68d48f9f5/orjson-3.11.3-cp312-cp312-musllinux_1_2_armv7l.whl", hash = "sha256:fbecb9709111be913ae6879b07bafd4b0785b44c1eb5cac8ac76da048b3885a1", size = 403852, upload-time = "2025-08-26T17:45:28.478Z" }, - { url = "https://files.pythonhosted.org/packages/f8/90/7bbabafeb2ce65915e9247f14a56b29c9334003536009ef5b122783fe67e/orjson-3.11.3-cp312-cp312-musllinux_1_2_i686.whl", hash = "sha256:9dba358d55aee552bd868de348f4736ca5a4086d9a62e2bfbbeeb5629fe8b0cc", size = 146293, upload-time = "2025-08-26T17:45:29.86Z" }, - { url = "https://files.pythonhosted.org/packages/27/b3/2d703946447da8b093350570644a663df69448c9d9330e5f1d9cce997f20/orjson-3.11.3-cp312-cp312-musllinux_1_2_x86_64.whl", hash = "sha256:eabcf2e84f1d7105f84580e03012270c7e97ecb1fb1618bda395061b2a84a049", size = 135470, upload-time = "2025-08-26T17:45:31.243Z" }, - { url = "https://files.pythonhosted.org/packages/38/70/b14dcfae7aff0e379b0119c8a812f8396678919c431efccc8e8a0263e4d9/orjson-3.11.3-cp312-cp312-win32.whl", hash = "sha256:3782d2c60b8116772aea8d9b7905221437fdf53e7277282e8d8b07c220f96cca", size = 136248, upload-time = "2025-08-26T17:45:32.567Z" }, - { url = "https://files.pythonhosted.org/packages/35/b8/9e3127d65de7fff243f7f3e53f59a531bf6bb295ebe5db024c2503cc0726/orjson-3.11.3-cp312-cp312-win_amd64.whl", hash = "sha256:79b44319268af2eaa3e315b92298de9a0067ade6e6003ddaef72f8e0bedb94f1", size = 131437, upload-time = "2025-08-26T17:45:34.949Z" }, - { url = "https://files.pythonhosted.org/packages/51/92/a946e737d4d8a7fd84a606aba96220043dcc7d6988b9e7551f7f6d5ba5ad/orjson-3.11.3-cp312-cp312-win_arm64.whl", hash = "sha256:0e92a4e83341ef79d835ca21b8bd13e27c859e4e9e4d7b63defc6e58462a3710", size = 125978, upload-time = "2025-08-26T17:45:36.422Z" }, - { url = "https://files.pythonhosted.org/packages/fc/79/8932b27293ad35919571f77cb3693b5906cf14f206ef17546052a241fdf6/orjson-3.11.3-cp313-cp313-macosx_10_15_x86_64.macosx_11_0_arm64.macosx_10_15_universal2.whl", hash = "sha256:af40c6612fd2a4b00de648aa26d18186cd1322330bd3a3cc52f87c699e995810", size = 238127, upload-time = "2025-08-26T17:45:38.146Z" }, - { url = "https://files.pythonhosted.org/packages/1c/82/cb93cd8cf132cd7643b30b6c5a56a26c4e780c7a145db6f83de977b540ce/orjson-3.11.3-cp313-cp313-macosx_15_0_arm64.whl", hash = "sha256:9f1587f26c235894c09e8b5b7636a38091a9e6e7fe4531937534749c04face43", size = 127494, upload-time = "2025-08-26T17:45:39.57Z" }, - { url = "https://files.pythonhosted.org/packages/a4/b8/2d9eb181a9b6bb71463a78882bcac1027fd29cf62c38a40cc02fc11d3495/orjson-3.11.3-cp313-cp313-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:61dcdad16da5bb486d7227a37a2e789c429397793a6955227cedbd7252eb5a27", size = 123017, upload-time = "2025-08-26T17:45:40.876Z" }, - { url = "https://files.pythonhosted.org/packages/b4/14/a0e971e72d03b509190232356d54c0f34507a05050bd026b8db2bf2c192c/orjson-3.11.3-cp313-cp313-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:11c6d71478e2cbea0a709e8a06365fa63da81da6498a53e4c4f065881d21ae8f", size = 127898, upload-time = "2025-08-26T17:45:42.188Z" }, - { url = "https://files.pythonhosted.org/packages/8e/af/dc74536722b03d65e17042cc30ae586161093e5b1f29bccda24765a6ae47/orjson-3.11.3-cp313-cp313-manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:ff94112e0098470b665cb0ed06efb187154b63649403b8d5e9aedeb482b4548c", size = 130742, upload-time = "2025-08-26T17:45:43.511Z" }, - { url = "https://files.pythonhosted.org/packages/62/e6/7a3b63b6677bce089fe939353cda24a7679825c43a24e49f757805fc0d8a/orjson-3.11.3-cp313-cp313-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:ae8b756575aaa2a855a75192f356bbda11a89169830e1439cfb1a3e1a6dde7be", size = 132377, upload-time = "2025-08-26T17:45:45.525Z" }, - { url = "https://files.pythonhosted.org/packages/fc/cd/ce2ab93e2e7eaf518f0fd15e3068b8c43216c8a44ed82ac2b79ce5cef72d/orjson-3.11.3-cp313-cp313-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:c9416cc19a349c167ef76135b2fe40d03cea93680428efee8771f3e9fb66079d", size = 135313, upload-time = "2025-08-26T17:45:46.821Z" }, - { url = "https://files.pythonhosted.org/packages/d0/b4/f98355eff0bd1a38454209bbc73372ce351ba29933cb3e2eba16c04b9448/orjson-3.11.3-cp313-cp313-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:b822caf5b9752bc6f246eb08124c3d12bf2175b66ab74bac2ef3bbf9221ce1b2", size = 132908, upload-time = "2025-08-26T17:45:48.126Z" }, - { url = "https://files.pythonhosted.org/packages/eb/92/8f5182d7bc2a1bed46ed960b61a39af8389f0ad476120cd99e67182bfb6d/orjson-3.11.3-cp313-cp313-musllinux_1_2_aarch64.whl", hash = "sha256:414f71e3bdd5573893bf5ecdf35c32b213ed20aa15536fe2f588f946c318824f", size = 130905, upload-time = "2025-08-26T17:45:49.414Z" }, - { url = "https://files.pythonhosted.org/packages/1a/60/c41ca753ce9ffe3d0f67b9b4c093bdd6e5fdb1bc53064f992f66bb99954d/orjson-3.11.3-cp313-cp313-musllinux_1_2_armv7l.whl", hash = "sha256:828e3149ad8815dc14468f36ab2a4b819237c155ee1370341b91ea4c8672d2ee", size = 403812, upload-time = "2025-08-26T17:45:51.085Z" }, - { url = "https://files.pythonhosted.org/packages/dd/13/e4a4f16d71ce1868860db59092e78782c67082a8f1dc06a3788aef2b41bc/orjson-3.11.3-cp313-cp313-musllinux_1_2_i686.whl", hash = "sha256:ac9e05f25627ffc714c21f8dfe3a579445a5c392a9c8ae7ba1d0e9fb5333f56e", size = 146277, upload-time = "2025-08-26T17:45:52.851Z" }, - { url = "https://files.pythonhosted.org/packages/8d/8b/bafb7f0afef9344754a3a0597a12442f1b85a048b82108ef2c956f53babd/orjson-3.11.3-cp313-cp313-musllinux_1_2_x86_64.whl", hash = "sha256:e44fbe4000bd321d9f3b648ae46e0196d21577cf66ae684a96ff90b1f7c93633", size = 135418, upload-time = "2025-08-26T17:45:54.806Z" }, - { url = "https://files.pythonhosted.org/packages/60/d4/bae8e4f26afb2c23bea69d2f6d566132584d1c3a5fe89ee8c17b718cab67/orjson-3.11.3-cp313-cp313-win32.whl", hash = "sha256:2039b7847ba3eec1f5886e75e6763a16e18c68a63efc4b029ddf994821e2e66b", size = 136216, upload-time = "2025-08-26T17:45:57.182Z" }, - { url = "https://files.pythonhosted.org/packages/88/76/224985d9f127e121c8cad882cea55f0ebe39f97925de040b75ccd4b33999/orjson-3.11.3-cp313-cp313-win_amd64.whl", hash = "sha256:29be5ac4164aa8bdcba5fa0700a3c9c316b411d8ed9d39ef8a882541bd452fae", size = 131362, upload-time = "2025-08-26T17:45:58.56Z" }, - { url = "https://files.pythonhosted.org/packages/e2/cf/0dce7a0be94bd36d1346be5067ed65ded6adb795fdbe3abd234c8d576d01/orjson-3.11.3-cp313-cp313-win_arm64.whl", hash = "sha256:18bd1435cb1f2857ceb59cfb7de6f92593ef7b831ccd1b9bfb28ca530e539dce", size = 125989, upload-time = "2025-08-26T17:45:59.95Z" }, - { url = "https://files.pythonhosted.org/packages/ef/77/d3b1fef1fc6aaeed4cbf3be2b480114035f4df8fa1a99d2dac1d40d6e924/orjson-3.11.3-cp314-cp314-macosx_10_15_x86_64.macosx_11_0_arm64.macosx_10_15_universal2.whl", hash = "sha256:cf4b81227ec86935568c7edd78352a92e97af8da7bd70bdfdaa0d2e0011a1ab4", size = 238115, upload-time = "2025-08-26T17:46:01.669Z" }, - { url = "https://files.pythonhosted.org/packages/e4/6d/468d21d49bb12f900052edcfbf52c292022d0a323d7828dc6376e6319703/orjson-3.11.3-cp314-cp314-macosx_15_0_arm64.whl", hash = "sha256:bc8bc85b81b6ac9fc4dae393a8c159b817f4c2c9dee5d12b773bddb3b95fc07e", size = 127493, upload-time = "2025-08-26T17:46:03.466Z" }, - { url = "https://files.pythonhosted.org/packages/67/46/1e2588700d354aacdf9e12cc2d98131fb8ac6f31ca65997bef3863edb8ff/orjson-3.11.3-cp314-cp314-manylinux_2_34_aarch64.whl", hash = "sha256:88dcfc514cfd1b0de038443c7b3e6a9797ffb1b3674ef1fd14f701a13397f82d", size = 122998, upload-time = "2025-08-26T17:46:04.803Z" }, - { url = "https://files.pythonhosted.org/packages/3b/94/11137c9b6adb3779f1b34fd98be51608a14b430dbc02c6d41134fbba484c/orjson-3.11.3-cp314-cp314-manylinux_2_34_x86_64.whl", hash = "sha256:d61cd543d69715d5fc0a690c7c6f8dcc307bc23abef9738957981885f5f38229", size = 132915, upload-time = "2025-08-26T17:46:06.237Z" }, - { url = "https://files.pythonhosted.org/packages/10/61/dccedcf9e9bcaac09fdabe9eaee0311ca92115699500efbd31950d878833/orjson-3.11.3-cp314-cp314-musllinux_1_2_aarch64.whl", hash = "sha256:2b7b153ed90ababadbef5c3eb39549f9476890d339cf47af563aea7e07db2451", size = 130907, upload-time = "2025-08-26T17:46:07.581Z" }, - { url = "https://files.pythonhosted.org/packages/0e/fd/0e935539aa7b08b3ca0f817d73034f7eb506792aae5ecc3b7c6e679cdf5f/orjson-3.11.3-cp314-cp314-musllinux_1_2_armv7l.whl", hash = "sha256:7909ae2460f5f494fecbcd10613beafe40381fd0316e35d6acb5f3a05bfda167", size = 403852, upload-time = "2025-08-26T17:46:08.982Z" }, - { url = "https://files.pythonhosted.org/packages/4a/2b/50ae1a5505cd1043379132fdb2adb8a05f37b3e1ebffe94a5073321966fd/orjson-3.11.3-cp314-cp314-musllinux_1_2_i686.whl", hash = "sha256:2030c01cbf77bc67bee7eef1e7e31ecf28649353987775e3583062c752da0077", size = 146309, upload-time = "2025-08-26T17:46:10.576Z" }, - { url = "https://files.pythonhosted.org/packages/cd/1d/a473c158e380ef6f32753b5f39a69028b25ec5be331c2049a2201bde2e19/orjson-3.11.3-cp314-cp314-musllinux_1_2_x86_64.whl", hash = "sha256:a0169ebd1cbd94b26c7a7ad282cf5c2744fce054133f959e02eb5265deae1872", size = 135424, upload-time = "2025-08-26T17:46:12.386Z" }, - { url = "https://files.pythonhosted.org/packages/da/09/17d9d2b60592890ff7382e591aa1d9afb202a266b180c3d4049b1ec70e4a/orjson-3.11.3-cp314-cp314-win32.whl", hash = "sha256:0c6d7328c200c349e3a4c6d8c83e0a5ad029bdc2d417f234152bf34842d0fc8d", size = 136266, upload-time = "2025-08-26T17:46:13.853Z" }, - { url = "https://files.pythonhosted.org/packages/15/58/358f6846410a6b4958b74734727e582ed971e13d335d6c7ce3e47730493e/orjson-3.11.3-cp314-cp314-win_amd64.whl", hash = "sha256:317bbe2c069bbc757b1a2e4105b64aacd3bc78279b66a6b9e51e846e4809f804", size = 131351, upload-time = "2025-08-26T17:46:15.27Z" }, - { url = "https://files.pythonhosted.org/packages/28/01/d6b274a0635be0468d4dbd9cafe80c47105937a0d42434e805e67cd2ed8b/orjson-3.11.3-cp314-cp314-win_arm64.whl", hash = "sha256:e8f6a7a27d7b7bec81bd5924163e9af03d49bbb63013f107b48eb5d16db711bc", size = 125985, upload-time = "2025-08-26T17:46:16.67Z" }, -] - -[[package]] -name = "ormsgpack" -version = "1.11.0" -source = { registry = "https://pypi.org/simple" } -sdist = { url = "https://files.pythonhosted.org/packages/65/f8/224c342c0e03e131aaa1a1f19aa2244e167001783a433f4eed10eedd834b/ormsgpack-1.11.0.tar.gz", hash = "sha256:7c9988e78fedba3292541eb3bb274fa63044ef4da2ddb47259ea70c05dee4206", size = 49357, upload-time = "2025-10-08T17:29:15.621Z" } -wheels = [ - { url = "https://files.pythonhosted.org/packages/ff/3d/6996193cb2babc47fc92456223bef7d141065357ad4204eccf313f47a7b3/ormsgpack-1.11.0-cp310-cp310-macosx_10_12_x86_64.macosx_11_0_arm64.macosx_10_12_universal2.whl", hash = "sha256:03d4e658dd6e1882a552ce1d13cc7b49157414e7d56a4091fbe7823225b08cba", size = 367965, upload-time = "2025-10-08T17:28:06.736Z" }, - { url = "https://files.pythonhosted.org/packages/35/89/c83b805dd9caebb046f4ceeed3706d0902ed2dbbcf08b8464e89f2c52e05/ormsgpack-1.11.0-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:1bb67eb913c2b703f0ed39607fc56e50724dd41f92ce080a586b4d6149eb3fe4", size = 195209, upload-time = "2025-10-08T17:28:08.395Z" }, - { url = "https://files.pythonhosted.org/packages/3a/17/427d9c4f77b120f0af01d7a71d8144771c9388c2a81f712048320e31353b/ormsgpack-1.11.0-cp310-cp310-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:1e54175b92411f73a238e5653a998627f6660de3def37d9dd7213e0fd264ca56", size = 205868, upload-time = "2025-10-08T17:28:09.688Z" }, - { url = "https://files.pythonhosted.org/packages/82/32/a9ce218478bdbf3fee954159900e24b314ab3064f7b6a217ccb1e3464324/ormsgpack-1.11.0-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:ca2b197f4556e1823d1319869d4c5dc278be335286d2308b0ed88b59a5afcc25", size = 207391, upload-time = "2025-10-08T17:28:11.031Z" }, - { url = "https://files.pythonhosted.org/packages/7a/d3/4413fe7454711596fdf08adabdfa686580e4656702015108e4975f00a022/ormsgpack-1.11.0-cp310-cp310-musllinux_1_2_aarch64.whl", hash = "sha256:bc62388262f58c792fe1e450e1d9dbcc174ed2fb0b43db1675dd7c5ff2319d6a", size = 377078, upload-time = "2025-10-08T17:28:12.39Z" }, - { url = "https://files.pythonhosted.org/packages/f0/ad/13fae555a45e35ca1ca929a27c9ee0a3ecada931b9d44454658c543f9b9c/ormsgpack-1.11.0-cp310-cp310-musllinux_1_2_armv7l.whl", hash = "sha256:c48bc10af74adfbc9113f3fb160dc07c61ad9239ef264c17e449eba3de343dc2", size = 470776, upload-time = "2025-10-08T17:28:13.484Z" }, - { url = "https://files.pythonhosted.org/packages/36/60/51178b093ffc4e2ef3381013a67223e7d56224434fba80047249f4a84b26/ormsgpack-1.11.0-cp310-cp310-musllinux_1_2_x86_64.whl", hash = "sha256:a608d3a1d4fa4acdc5082168a54513cff91f47764cef435e81a483452f5f7647", size = 380862, upload-time = "2025-10-08T17:28:14.747Z" }, - { url = "https://files.pythonhosted.org/packages/a6/e3/1cb6c161335e2ae7d711ecfb007a31a3936603626e347c13e5e53b7c7cf8/ormsgpack-1.11.0-cp310-cp310-win_amd64.whl", hash = "sha256:97217b4f7f599ba45916b9c4c4b1d5656e8e2a4d91e2e191d72a7569d3c30923", size = 112058, upload-time = "2025-10-08T17:28:15.777Z" }, - { url = "https://files.pythonhosted.org/packages/a4/7c/90164d00e8e94b48eff8a17bc2f4be6b71ae356a00904bc69d5e8afe80fb/ormsgpack-1.11.0-cp311-cp311-macosx_10_12_x86_64.macosx_11_0_arm64.macosx_10_12_universal2.whl", hash = "sha256:c7be823f47d8e36648d4bc90634b93f02b7d7cc7480081195f34767e86f181fb", size = 367964, upload-time = "2025-10-08T17:28:16.778Z" }, - { url = "https://files.pythonhosted.org/packages/7b/c2/fb6331e880a3446c1341e72c77bd5a46da3e92a8e2edf7ea84a4c6c14fff/ormsgpack-1.11.0-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:68accf15d1b013812755c0eb7a30e1fc2f81eb603a1a143bf0cda1b301cfa797", size = 195209, upload-time = "2025-10-08T17:28:17.796Z" }, - { url = "https://files.pythonhosted.org/packages/18/50/4943fb5df8cc02da6b7b1ee2c2a7fb13aebc9f963d69280b1bb02b1fb178/ormsgpack-1.11.0-cp311-cp311-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:805d06fb277d9a4e503c0c707545b49cde66cbb2f84e5cf7c58d81dfc20d8658", size = 205869, upload-time = "2025-10-08T17:28:19.01Z" }, - { url = "https://files.pythonhosted.org/packages/1c/fa/e7e06835bfea9adeef43915143ce818098aecab0cbd3df584815adf3e399/ormsgpack-1.11.0-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:a1e57cdf003e77acc43643bda151dc01f97147a64b11cdee1380bb9698a7601c", size = 207391, upload-time = "2025-10-08T17:28:20.352Z" }, - { url = "https://files.pythonhosted.org/packages/33/f0/f28a19e938a14ec223396e94f4782fbcc023f8c91f2ab6881839d3550f32/ormsgpack-1.11.0-cp311-cp311-musllinux_1_2_aarch64.whl", hash = "sha256:37fc05bdaabd994097c62e2f3e08f66b03f856a640ede6dc5ea340bd15b77f4d", size = 377081, upload-time = "2025-10-08T17:28:21.926Z" }, - { url = "https://files.pythonhosted.org/packages/4f/e3/73d1d7287637401b0b6637e30ba9121e1aa1d9f5ea185ed9834ca15d512c/ormsgpack-1.11.0-cp311-cp311-musllinux_1_2_armv7l.whl", hash = "sha256:a6e9db6c73eb46b2e4d97bdffd1368a66f54e6806b563a997b19c004ef165e1d", size = 470779, upload-time = "2025-10-08T17:28:22.993Z" }, - { url = "https://files.pythonhosted.org/packages/9c/46/7ba7f9721e766dd0dfe4cedf444439447212abffe2d2f4538edeeec8ccbd/ormsgpack-1.11.0-cp311-cp311-musllinux_1_2_x86_64.whl", hash = "sha256:e9c44eae5ac0196ffc8b5ed497c75511056508f2303fa4d36b208eb820cf209e", size = 380865, upload-time = "2025-10-08T17:28:24.012Z" }, - { url = "https://files.pythonhosted.org/packages/a7/7d/bb92a0782bbe0626c072c0320001410cf3f6743ede7dc18f034b1a18edef/ormsgpack-1.11.0-cp311-cp311-win_amd64.whl", hash = "sha256:11d0dfaf40ae7c6de4f7dbd1e4892e2e6a55d911ab1774357c481158d17371e4", size = 112058, upload-time = "2025-10-08T17:28:25.015Z" }, - { url = "https://files.pythonhosted.org/packages/28/1a/f07c6f74142815d67e1d9d98c5b2960007100408ade8242edac96d5d1c73/ormsgpack-1.11.0-cp311-cp311-win_arm64.whl", hash = "sha256:0c63a3f7199a3099c90398a1bdf0cb577b06651a442dc5efe67f2882665e5b02", size = 105894, upload-time = "2025-10-08T17:28:25.93Z" }, - { url = "https://files.pythonhosted.org/packages/1e/16/2805ebfb3d2cbb6c661b5fae053960fc90a2611d0d93e2207e753e836117/ormsgpack-1.11.0-cp312-cp312-macosx_10_12_x86_64.macosx_11_0_arm64.macosx_10_12_universal2.whl", hash = "sha256:3434d0c8d67de27d9010222de07fb6810fb9af3bb7372354ffa19257ac0eb83b", size = 368474, upload-time = "2025-10-08T17:28:27.532Z" }, - { url = "https://files.pythonhosted.org/packages/6f/39/6afae47822dca0ce4465d894c0bbb860a850ce29c157882dbdf77a5dd26e/ormsgpack-1.11.0-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:d2da5bd097e8dbfa4eb0d4ccfe79acd6f538dee4493579e2debfe4fc8f4ca89b", size = 195321, upload-time = "2025-10-08T17:28:28.573Z" }, - { url = "https://files.pythonhosted.org/packages/f6/54/11eda6b59f696d2f16de469bfbe539c9f469c4b9eef5a513996b5879c6e9/ormsgpack-1.11.0-cp312-cp312-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:fdbaa0a5a8606a486960b60c24f2d5235d30ac7a8b98eeaea9854bffef14dc3d", size = 206036, upload-time = "2025-10-08T17:28:29.785Z" }, - { url = "https://files.pythonhosted.org/packages/1e/86/890430f704f84c4699ddad61c595d171ea2fd77a51fbc106f83981e83939/ormsgpack-1.11.0-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:3682f24f800c1837017ee90ce321086b2cbaef88db7d4cdbbda1582aa6508159", size = 207615, upload-time = "2025-10-08T17:28:31.076Z" }, - { url = "https://files.pythonhosted.org/packages/b6/b9/77383e16c991c0ecb772205b966fc68d9c519e0b5f9c3913283cbed30ffe/ormsgpack-1.11.0-cp312-cp312-musllinux_1_2_aarch64.whl", hash = "sha256:fcca21202bb05ccbf3e0e92f560ee59b9331182e4c09c965a28155efbb134993", size = 377195, upload-time = "2025-10-08T17:28:32.436Z" }, - { url = "https://files.pythonhosted.org/packages/20/e2/15f9f045d4947f3c8a5e0535259fddf027b17b1215367488b3565c573b9d/ormsgpack-1.11.0-cp312-cp312-musllinux_1_2_armv7l.whl", hash = "sha256:c30e5c4655ba46152d722ec7468e8302195e6db362ec1ae2c206bc64f6030e43", size = 470960, upload-time = "2025-10-08T17:28:33.556Z" }, - { url = "https://files.pythonhosted.org/packages/b8/61/403ce188c4c495bc99dff921a0ad3d9d352dd6d3c4b629f3638b7f0cf79b/ormsgpack-1.11.0-cp312-cp312-musllinux_1_2_x86_64.whl", hash = "sha256:7138a341f9e2c08c59368f03d3be25e8b87b3baaf10d30fb1f6f6b52f3d47944", size = 381174, upload-time = "2025-10-08T17:28:34.781Z" }, - { url = "https://files.pythonhosted.org/packages/14/a8/94c94bc48c68da4374870a851eea03fc5a45eb041182ad4c5ed9acfc05a4/ormsgpack-1.11.0-cp312-cp312-win_amd64.whl", hash = "sha256:d4bd8589b78a11026d47f4edf13c1ceab9088bb12451f34396afe6497db28a27", size = 112314, upload-time = "2025-10-08T17:28:36.259Z" }, - { url = "https://files.pythonhosted.org/packages/19/d0/aa4cf04f04e4cc180ce7a8d8ddb5a7f3af883329cbc59645d94d3ba157a5/ormsgpack-1.11.0-cp312-cp312-win_arm64.whl", hash = "sha256:e5e746a1223e70f111d4001dab9585ac8639eee8979ca0c8db37f646bf2961da", size = 106072, upload-time = "2025-10-08T17:28:37.518Z" }, - { url = "https://files.pythonhosted.org/packages/8b/35/e34722edb701d053cf2240f55974f17b7dbfd11fdef72bd2f1835bcebf26/ormsgpack-1.11.0-cp313-cp313-macosx_10_12_x86_64.macosx_11_0_arm64.macosx_10_12_universal2.whl", hash = "sha256:0e7b36ab7b45cb95217ae1f05f1318b14a3e5ef73cb00804c0f06233f81a14e8", size = 368502, upload-time = "2025-10-08T17:28:38.547Z" }, - { url = "https://files.pythonhosted.org/packages/2f/6a/c2fc369a79d6aba2aa28c8763856c95337ac7fcc0b2742185cd19397212a/ormsgpack-1.11.0-cp313-cp313-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:43402d67e03a9a35cc147c8c03f0c377cad016624479e1ee5b879b8425551484", size = 195344, upload-time = "2025-10-08T17:28:39.554Z" }, - { url = "https://files.pythonhosted.org/packages/8b/6a/0f8e24b7489885534c1a93bdba7c7c434b9b8638713a68098867db9f254c/ormsgpack-1.11.0-cp313-cp313-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:64fd992f932764d6306b70ddc755c1bc3405c4c6a69f77a36acf7af1c8f5ada4", size = 206045, upload-time = "2025-10-08T17:28:40.561Z" }, - { url = "https://files.pythonhosted.org/packages/99/71/8b460ba264f3c6f82ef5b1920335720094e2bd943057964ce5287d6df83a/ormsgpack-1.11.0-cp313-cp313-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:0362fb7fe4a29c046c8ea799303079a09372653a1ce5a5a588f3bbb8088368d0", size = 207641, upload-time = "2025-10-08T17:28:41.736Z" }, - { url = "https://files.pythonhosted.org/packages/50/cf/f369446abaf65972424ed2651f2df2b7b5c3b735c93fc7fa6cfb81e34419/ormsgpack-1.11.0-cp313-cp313-musllinux_1_2_aarch64.whl", hash = "sha256:de2f7a65a9d178ed57be49eba3d0fc9b833c32beaa19dbd4ba56014d3c20b152", size = 377211, upload-time = "2025-10-08T17:28:43.12Z" }, - { url = "https://files.pythonhosted.org/packages/2f/3f/948bb0047ce0f37c2efc3b9bb2bcfdccc61c63e0b9ce8088d4903ba39dcf/ormsgpack-1.11.0-cp313-cp313-musllinux_1_2_armv7l.whl", hash = "sha256:f38cfae95461466055af966fc922d06db4e1654966385cda2828653096db34da", size = 470973, upload-time = "2025-10-08T17:28:44.465Z" }, - { url = "https://files.pythonhosted.org/packages/31/a4/92a8114d1d017c14aaa403445060f345df9130ca532d538094f38e535988/ormsgpack-1.11.0-cp313-cp313-musllinux_1_2_x86_64.whl", hash = "sha256:c88396189d238f183cea7831b07a305ab5c90d6d29b53288ae11200bd956357b", size = 381161, upload-time = "2025-10-08T17:28:46.063Z" }, - { url = "https://files.pythonhosted.org/packages/d0/64/5b76447da654798bfcfdfd64ea29447ff2b7f33fe19d0e911a83ad5107fc/ormsgpack-1.11.0-cp313-cp313-win_amd64.whl", hash = "sha256:5403d1a945dd7c81044cebeca3f00a28a0f4248b33242a5d2d82111628043725", size = 112321, upload-time = "2025-10-08T17:28:47.393Z" }, - { url = "https://files.pythonhosted.org/packages/46/5e/89900d06db9ab81e7ec1fd56a07c62dfbdcda398c435718f4252e1dc52a0/ormsgpack-1.11.0-cp313-cp313-win_arm64.whl", hash = "sha256:c57357b8d43b49722b876edf317bdad9e6d52071b523fdd7394c30cd1c67d5a0", size = 106084, upload-time = "2025-10-08T17:28:48.305Z" }, - { url = "https://files.pythonhosted.org/packages/4c/0b/c659e8657085c8c13f6a0224789f422620cef506e26573b5434defe68483/ormsgpack-1.11.0-cp314-cp314-macosx_10_12_x86_64.macosx_11_0_arm64.macosx_10_12_universal2.whl", hash = "sha256:d390907d90fd0c908211592c485054d7a80990697ef4dff4e436ac18e1aab98a", size = 368497, upload-time = "2025-10-08T17:28:49.297Z" }, - { url = "https://files.pythonhosted.org/packages/1b/0e/451e5848c7ed56bd287e8a2b5cb5926e54466f60936e05aec6cb299f9143/ormsgpack-1.11.0-cp314-cp314-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:6153c2e92e789509098e04c9aa116b16673bd88ec78fbe0031deeb34ab642d10", size = 195385, upload-time = "2025-10-08T17:28:50.314Z" }, - { url = "https://files.pythonhosted.org/packages/4c/28/90f78cbbe494959f2439c2ec571f08cd3464c05a6a380b0d621c622122a9/ormsgpack-1.11.0-cp314-cp314-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:c2b2c2a065a94d742212b2018e1fecd8f8d72f3c50b53a97d1f407418093446d", size = 206114, upload-time = "2025-10-08T17:28:51.336Z" }, - { url = "https://files.pythonhosted.org/packages/fb/db/34163f4c0923bea32dafe42cd878dcc66795a3e85669bc4b01c1e2b92a7b/ormsgpack-1.11.0-cp314-cp314-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:110e65b5340f3d7ef8b0009deae3c6b169437e6b43ad5a57fd1748085d29d2ac", size = 207679, upload-time = "2025-10-08T17:28:53.627Z" }, - { url = "https://files.pythonhosted.org/packages/b6/14/04ee741249b16f380a9b4a0cc19d4134d0b7c74bab27a2117da09e525eb9/ormsgpack-1.11.0-cp314-cp314-musllinux_1_2_aarch64.whl", hash = "sha256:c27e186fca96ab34662723e65b420919910acbbc50fc8e1a44e08f26268cb0e0", size = 377237, upload-time = "2025-10-08T17:28:56.12Z" }, - { url = "https://files.pythonhosted.org/packages/89/ff/53e588a6aaa833237471caec679582c2950f0e7e1a8ba28c1511b465c1f4/ormsgpack-1.11.0-cp314-cp314-musllinux_1_2_armv7l.whl", hash = "sha256:d56b1f877c13d499052d37a3db2378a97d5e1588d264f5040b3412aee23d742c", size = 471021, upload-time = "2025-10-08T17:28:57.299Z" }, - { url = "https://files.pythonhosted.org/packages/a6/f9/f20a6d9ef2be04da3aad05e8f5699957e9a30c6d5c043a10a296afa7e890/ormsgpack-1.11.0-cp314-cp314-musllinux_1_2_x86_64.whl", hash = "sha256:c88e28cd567c0a3269f624b4ade28142d5e502c8e826115093c572007af5be0a", size = 381205, upload-time = "2025-10-08T17:28:58.872Z" }, - { url = "https://files.pythonhosted.org/packages/f8/64/96c07d084b479ac8b7821a77ffc8d3f29d8b5c95ebfdf8db1c03dff02762/ormsgpack-1.11.0-cp314-cp314-win_amd64.whl", hash = "sha256:8811160573dc0a65f62f7e0792c4ca6b7108dfa50771edb93f9b84e2d45a08ae", size = 112374, upload-time = "2025-10-08T17:29:00Z" }, - { url = "https://files.pythonhosted.org/packages/88/a5/5dcc18b818d50213a3cadfe336bb6163a102677d9ce87f3d2f1a1bee0f8c/ormsgpack-1.11.0-cp314-cp314-win_arm64.whl", hash = "sha256:23e30a8d3c17484cf74e75e6134322255bd08bc2b5b295cc9c442f4bae5f3c2d", size = 106056, upload-time = "2025-10-08T17:29:01.29Z" }, - { url = "https://files.pythonhosted.org/packages/19/2b/776d1b411d2be50f77a6e6e94a25825cca55dcacfe7415fd691a144db71b/ormsgpack-1.11.0-cp314-cp314t-macosx_10_12_x86_64.macosx_11_0_arm64.macosx_10_12_universal2.whl", hash = "sha256:2905816502adfaf8386a01dd85f936cd378d243f4f5ee2ff46f67f6298dc90d5", size = 368661, upload-time = "2025-10-08T17:29:02.382Z" }, - { url = "https://files.pythonhosted.org/packages/a9/0c/81a19e6115b15764db3d241788f9fac093122878aaabf872cc545b0c4650/ormsgpack-1.11.0-cp314-cp314t-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:c04402fb9a0a9b9f18fbafd6d5f8398ee99b3ec619fb63952d3a954bc9d47daa", size = 195539, upload-time = "2025-10-08T17:29:03.472Z" }, - { url = "https://files.pythonhosted.org/packages/97/86/e5b50247a61caec5718122feb2719ea9d451d30ac0516c288c1dbc6408e8/ormsgpack-1.11.0-cp314-cp314t-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:a025ec07ac52056ecfd9e57b5cbc6fff163f62cb9805012b56cda599157f8ef2", size = 207718, upload-time = "2025-10-08T17:29:04.545Z" }, -] - -[[package]] -name = "packaging" -version = "25.0" -source = { registry = "https://pypi.org/simple" } -sdist = { url = "https://files.pythonhosted.org/packages/a1/d4/1fc4078c65507b51b96ca8f8c3ba19e6a61c8253c72794544580a7b6c24d/packaging-25.0.tar.gz", hash = "sha256:d443872c98d677bf60f6a1f2f8c1cb748e8fe762d2bf9d3148b5599295b0fc4f", size = 165727, upload-time = "2025-04-19T11:48:59.673Z" } -wheels = [ - { url = "https://files.pythonhosted.org/packages/20/12/38679034af332785aac8774540895e234f4d07f7545804097de4b666afd8/packaging-25.0-py3-none-any.whl", hash = "sha256:29572ef2b1f17581046b3a2227d5c611fb25ec70ca1ba8554b24b0e69331a484", size = 66469, upload-time = "2025-04-19T11:48:57.875Z" }, -] - -[[package]] -name = "pathspec" -version = "0.12.1" -source = { registry = "https://pypi.org/simple" } -sdist = { url = "https://files.pythonhosted.org/packages/ca/bc/f35b8446f4531a7cb215605d100cd88b7ac6f44ab3fc94870c120ab3adbf/pathspec-0.12.1.tar.gz", hash = "sha256:a482d51503a1ab33b1c67a6c3813a26953dbdc71c31dacaef9a838c4e29f5712", size = 51043, upload-time = "2023-12-10T22:30:45Z" } -wheels = [ - { url = "https://files.pythonhosted.org/packages/cc/20/ff623b09d963f88bfde16306a54e12ee5ea43e9b597108672ff3a408aad6/pathspec-0.12.1-py3-none-any.whl", hash = "sha256:a0d503e138a4c123b27490a4f7beda6a01c6f288df0e4a8b79c7eb0dc7b4cc08", size = 31191, upload-time = "2023-12-10T22:30:43.14Z" }, -] - -[[package]] -name = "pluggy" -version = "1.6.0" -source = { registry = "https://pypi.org/simple" } -sdist = { url = "https://files.pythonhosted.org/packages/f9/e2/3e91f31a7d2b083fe6ef3fa267035b518369d9511ffab804f839851d2779/pluggy-1.6.0.tar.gz", hash = "sha256:7dcc130b76258d33b90f61b658791dede3486c3e6bfb003ee5c9bfb396dd22f3", size = 69412, upload-time = "2025-05-15T12:30:07.975Z" } -wheels = [ - { url = "https://files.pythonhosted.org/packages/54/20/4d324d65cc6d9205fabedc306948156824eb9f0ee1633355a8f7ec5c66bf/pluggy-1.6.0-py3-none-any.whl", hash = "sha256:e920276dd6813095e9377c0bc5566d94c932c33b27a3e3945d8389c374dd4746", size = 20538, upload-time = "2025-05-15T12:30:06.134Z" }, -] - -[[package]] -name = "pydantic" -version = "2.12.3" -source = { registry = "https://pypi.org/simple" } -dependencies = [ - { name = "annotated-types" }, - { name = "pydantic-core" }, - { name = "typing-extensions" }, - { name = "typing-inspection" }, -] -sdist = { url = "https://files.pythonhosted.org/packages/f3/1e/4f0a3233767010308f2fd6bd0814597e3f63f1dc98304a9112b8759df4ff/pydantic-2.12.3.tar.gz", hash = "sha256:1da1c82b0fc140bb0103bc1441ffe062154c8d38491189751ee00fd8ca65ce74", size = 819383, upload-time = "2025-10-17T15:04:21.222Z" } -wheels = [ - { url = "https://files.pythonhosted.org/packages/a1/6b/83661fa77dcefa195ad5f8cd9af3d1a7450fd57cc883ad04d65446ac2029/pydantic-2.12.3-py3-none-any.whl", hash = "sha256:6986454a854bc3bc6e5443e1369e06a3a456af9d339eda45510f517d9ea5c6bf", size = 462431, upload-time = "2025-10-17T15:04:19.346Z" }, -] - -[[package]] -name = "pydantic-core" -version = "2.41.4" -source = { registry = "https://pypi.org/simple" } -dependencies = [ - { name = "typing-extensions" }, -] -sdist = { url = "https://files.pythonhosted.org/packages/df/18/d0944e8eaaa3efd0a91b0f1fc537d3be55ad35091b6a87638211ba691964/pydantic_core-2.41.4.tar.gz", hash = "sha256:70e47929a9d4a1905a67e4b687d5946026390568a8e952b92824118063cee4d5", size = 457557, upload-time = "2025-10-14T10:23:47.909Z" } -wheels = [ - { url = "https://files.pythonhosted.org/packages/a7/3d/9b8ca77b0f76fcdbf8bc6b72474e264283f461284ca84ac3fde570c6c49a/pydantic_core-2.41.4-cp310-cp310-macosx_10_12_x86_64.whl", hash = "sha256:2442d9a4d38f3411f22eb9dd0912b7cbf4b7d5b6c92c4173b75d3e1ccd84e36e", size = 2111197, upload-time = "2025-10-14T10:19:43.303Z" }, - { url = "https://files.pythonhosted.org/packages/59/92/b7b0fe6ed4781642232755cb7e56a86e2041e1292f16d9ae410a0ccee5ac/pydantic_core-2.41.4-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:30a9876226dda131a741afeab2702e2d127209bde3c65a2b8133f428bc5d006b", size = 1917909, upload-time = "2025-10-14T10:19:45.194Z" }, - { url = "https://files.pythonhosted.org/packages/52/8c/3eb872009274ffa4fb6a9585114e161aa1a0915af2896e2d441642929fe4/pydantic_core-2.41.4-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:d55bbac04711e2980645af68b97d445cdbcce70e5216de444a6c4b6943ebcccd", size = 1969905, upload-time = "2025-10-14T10:19:46.567Z" }, - { url = "https://files.pythonhosted.org/packages/f4/21/35adf4a753bcfaea22d925214a0c5b880792e3244731b3f3e6fec0d124f7/pydantic_core-2.41.4-cp310-cp310-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:e1d778fb7849a42d0ee5927ab0f7453bf9f85eef8887a546ec87db5ddb178945", size = 2051938, upload-time = "2025-10-14T10:19:48.237Z" }, - { url = "https://files.pythonhosted.org/packages/7d/d0/cdf7d126825e36d6e3f1eccf257da8954452934ede275a8f390eac775e89/pydantic_core-2.41.4-cp310-cp310-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:1b65077a4693a98b90ec5ad8f203ad65802a1b9b6d4a7e48066925a7e1606706", size = 2250710, upload-time = "2025-10-14T10:19:49.619Z" }, - { url = "https://files.pythonhosted.org/packages/2e/1c/af1e6fd5ea596327308f9c8d1654e1285cc3d8de0d584a3c9d7705bf8a7c/pydantic_core-2.41.4-cp310-cp310-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:62637c769dee16eddb7686bf421be48dfc2fae93832c25e25bc7242e698361ba", size = 2367445, upload-time = "2025-10-14T10:19:51.269Z" }, - { url = "https://files.pythonhosted.org/packages/d3/81/8cece29a6ef1b3a92f956ea6da6250d5b2d2e7e4d513dd3b4f0c7a83dfea/pydantic_core-2.41.4-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:2dfe3aa529c8f501babf6e502936b9e8d4698502b2cfab41e17a028d91b1ac7b", size = 2072875, upload-time = "2025-10-14T10:19:52.671Z" }, - { url = "https://files.pythonhosted.org/packages/e3/37/a6a579f5fc2cd4d5521284a0ab6a426cc6463a7b3897aeb95b12f1ba607b/pydantic_core-2.41.4-cp310-cp310-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:ca2322da745bf2eeb581fc9ea3bbb31147702163ccbcbf12a3bb630e4bf05e1d", size = 2191329, upload-time = "2025-10-14T10:19:54.214Z" }, - { url = "https://files.pythonhosted.org/packages/ae/03/505020dc5c54ec75ecba9f41119fd1e48f9e41e4629942494c4a8734ded1/pydantic_core-2.41.4-cp310-cp310-musllinux_1_1_aarch64.whl", hash = "sha256:e8cd3577c796be7231dcf80badcf2e0835a46665eaafd8ace124d886bab4d700", size = 2151658, upload-time = "2025-10-14T10:19:55.843Z" }, - { url = "https://files.pythonhosted.org/packages/cb/5d/2c0d09fb53aa03bbd2a214d89ebfa6304be7df9ed86ee3dc7770257f41ee/pydantic_core-2.41.4-cp310-cp310-musllinux_1_1_armv7l.whl", hash = "sha256:1cae8851e174c83633f0833e90636832857297900133705ee158cf79d40f03e6", size = 2316777, upload-time = "2025-10-14T10:19:57.607Z" }, - { url = "https://files.pythonhosted.org/packages/ea/4b/c2c9c8f5e1f9c864b57d08539d9d3db160e00491c9f5ee90e1bfd905e644/pydantic_core-2.41.4-cp310-cp310-musllinux_1_1_x86_64.whl", hash = "sha256:a26d950449aae348afe1ac8be5525a00ae4235309b729ad4d3399623125b43c9", size = 2320705, upload-time = "2025-10-14T10:19:59.016Z" }, - { url = "https://files.pythonhosted.org/packages/28/c3/a74c1c37f49c0a02c89c7340fafc0ba816b29bd495d1a31ce1bdeacc6085/pydantic_core-2.41.4-cp310-cp310-win32.whl", hash = "sha256:0cf2a1f599efe57fa0051312774280ee0f650e11152325e41dfd3018ef2c1b57", size = 1975464, upload-time = "2025-10-14T10:20:00.581Z" }, - { url = "https://files.pythonhosted.org/packages/d6/23/5dd5c1324ba80303368f7569e2e2e1a721c7d9eb16acb7eb7b7f85cb1be2/pydantic_core-2.41.4-cp310-cp310-win_amd64.whl", hash = "sha256:a8c2e340d7e454dc3340d3d2e8f23558ebe78c98aa8f68851b04dcb7bc37abdc", size = 2024497, upload-time = "2025-10-14T10:20:03.018Z" }, - { url = "https://files.pythonhosted.org/packages/62/4c/f6cbfa1e8efacd00b846764e8484fe173d25b8dab881e277a619177f3384/pydantic_core-2.41.4-cp311-cp311-macosx_10_12_x86_64.whl", hash = "sha256:28ff11666443a1a8cf2a044d6a545ebffa8382b5f7973f22c36109205e65dc80", size = 2109062, upload-time = "2025-10-14T10:20:04.486Z" }, - { url = "https://files.pythonhosted.org/packages/21/f8/40b72d3868896bfcd410e1bd7e516e762d326201c48e5b4a06446f6cf9e8/pydantic_core-2.41.4-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:61760c3925d4633290292bad462e0f737b840508b4f722247d8729684f6539ae", size = 1916301, upload-time = "2025-10-14T10:20:06.857Z" }, - { url = "https://files.pythonhosted.org/packages/94/4d/d203dce8bee7faeca791671c88519969d98d3b4e8f225da5b96dad226fc8/pydantic_core-2.41.4-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:eae547b7315d055b0de2ec3965643b0ab82ad0106a7ffd29615ee9f266a02827", size = 1968728, upload-time = "2025-10-14T10:20:08.353Z" }, - { url = "https://files.pythonhosted.org/packages/65/f5/6a66187775df87c24d526985b3a5d78d861580ca466fbd9d4d0e792fcf6c/pydantic_core-2.41.4-cp311-cp311-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:ef9ee5471edd58d1fcce1c80ffc8783a650e3e3a193fe90d52e43bb4d87bff1f", size = 2050238, upload-time = "2025-10-14T10:20:09.766Z" }, - { url = "https://files.pythonhosted.org/packages/5e/b9/78336345de97298cf53236b2f271912ce11f32c1e59de25a374ce12f9cce/pydantic_core-2.41.4-cp311-cp311-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:15dd504af121caaf2c95cb90c0ebf71603c53de98305621b94da0f967e572def", size = 2249424, upload-time = "2025-10-14T10:20:11.732Z" }, - { url = "https://files.pythonhosted.org/packages/99/bb/a4584888b70ee594c3d374a71af5075a68654d6c780369df269118af7402/pydantic_core-2.41.4-cp311-cp311-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:3a926768ea49a8af4d36abd6a8968b8790f7f76dd7cbd5a4c180db2b4ac9a3a2", size = 2366047, upload-time = "2025-10-14T10:20:13.647Z" }, - { url = "https://files.pythonhosted.org/packages/5f/8d/17fc5de9d6418e4d2ae8c675f905cdafdc59d3bf3bf9c946b7ab796a992a/pydantic_core-2.41.4-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:6916b9b7d134bff5440098a4deb80e4cb623e68974a87883299de9124126c2a8", size = 2071163, upload-time = "2025-10-14T10:20:15.307Z" }, - { url = "https://files.pythonhosted.org/packages/54/e7/03d2c5c0b8ed37a4617430db68ec5e7dbba66358b629cd69e11b4d564367/pydantic_core-2.41.4-cp311-cp311-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:5cf90535979089df02e6f17ffd076f07237efa55b7343d98760bde8743c4b265", size = 2190585, upload-time = "2025-10-14T10:20:17.3Z" }, - { url = "https://files.pythonhosted.org/packages/be/fc/15d1c9fe5ad9266a5897d9b932b7f53d7e5cfc800573917a2c5d6eea56ec/pydantic_core-2.41.4-cp311-cp311-musllinux_1_1_aarch64.whl", hash = "sha256:7533c76fa647fade2d7ec75ac5cc079ab3f34879626dae5689b27790a6cf5a5c", size = 2150109, upload-time = "2025-10-14T10:20:19.143Z" }, - { url = "https://files.pythonhosted.org/packages/26/ef/e735dd008808226c83ba56972566138665b71477ad580fa5a21f0851df48/pydantic_core-2.41.4-cp311-cp311-musllinux_1_1_armv7l.whl", hash = "sha256:37e516bca9264cbf29612539801ca3cd5d1be465f940417b002905e6ed79d38a", size = 2315078, upload-time = "2025-10-14T10:20:20.742Z" }, - { url = "https://files.pythonhosted.org/packages/90/00/806efdcf35ff2ac0f938362350cd9827b8afb116cc814b6b75cf23738c7c/pydantic_core-2.41.4-cp311-cp311-musllinux_1_1_x86_64.whl", hash = "sha256:0c19cb355224037c83642429b8ce261ae108e1c5fbf5c028bac63c77b0f8646e", size = 2318737, upload-time = "2025-10-14T10:20:22.306Z" }, - { url = "https://files.pythonhosted.org/packages/41/7e/6ac90673fe6cb36621a2283552897838c020db343fa86e513d3f563b196f/pydantic_core-2.41.4-cp311-cp311-win32.whl", hash = "sha256:09c2a60e55b357284b5f31f5ab275ba9f7f70b7525e18a132ec1f9160b4f1f03", size = 1974160, upload-time = "2025-10-14T10:20:23.817Z" }, - { url = "https://files.pythonhosted.org/packages/e0/9d/7c5e24ee585c1f8b6356e1d11d40ab807ffde44d2db3b7dfd6d20b09720e/pydantic_core-2.41.4-cp311-cp311-win_amd64.whl", hash = "sha256:711156b6afb5cb1cb7c14a2cc2c4a8b4c717b69046f13c6b332d8a0a8f41ca3e", size = 2021883, upload-time = "2025-10-14T10:20:25.48Z" }, - { url = "https://files.pythonhosted.org/packages/33/90/5c172357460fc28b2871eb4a0fb3843b136b429c6fa827e4b588877bf115/pydantic_core-2.41.4-cp311-cp311-win_arm64.whl", hash = "sha256:6cb9cf7e761f4f8a8589a45e49ed3c0d92d1d696a45a6feaee8c904b26efc2db", size = 1968026, upload-time = "2025-10-14T10:20:27.039Z" }, - { url = "https://files.pythonhosted.org/packages/e9/81/d3b3e95929c4369d30b2a66a91db63c8ed0a98381ae55a45da2cd1cc1288/pydantic_core-2.41.4-cp312-cp312-macosx_10_12_x86_64.whl", hash = "sha256:ab06d77e053d660a6faaf04894446df7b0a7e7aba70c2797465a0a1af00fc887", size = 2099043, upload-time = "2025-10-14T10:20:28.561Z" }, - { url = "https://files.pythonhosted.org/packages/58/da/46fdac49e6717e3a94fc9201403e08d9d61aa7a770fab6190b8740749047/pydantic_core-2.41.4-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:c53ff33e603a9c1179a9364b0a24694f183717b2e0da2b5ad43c316c956901b2", size = 1910699, upload-time = "2025-10-14T10:20:30.217Z" }, - { url = "https://files.pythonhosted.org/packages/1e/63/4d948f1b9dd8e991a5a98b77dd66c74641f5f2e5225fee37994b2e07d391/pydantic_core-2.41.4-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:304c54176af2c143bd181d82e77c15c41cbacea8872a2225dd37e6544dce9999", size = 1952121, upload-time = "2025-10-14T10:20:32.246Z" }, - { url = "https://files.pythonhosted.org/packages/b2/a7/e5fc60a6f781fc634ecaa9ecc3c20171d238794cef69ae0af79ac11b89d7/pydantic_core-2.41.4-cp312-cp312-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:025ba34a4cf4fb32f917d5d188ab5e702223d3ba603be4d8aca2f82bede432a4", size = 2041590, upload-time = "2025-10-14T10:20:34.332Z" }, - { url = "https://files.pythonhosted.org/packages/70/69/dce747b1d21d59e85af433428978a1893c6f8a7068fa2bb4a927fba7a5ff/pydantic_core-2.41.4-cp312-cp312-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:b9f5f30c402ed58f90c70e12eff65547d3ab74685ffe8283c719e6bead8ef53f", size = 2219869, upload-time = "2025-10-14T10:20:35.965Z" }, - { url = "https://files.pythonhosted.org/packages/83/6a/c070e30e295403bf29c4df1cb781317b6a9bac7cd07b8d3acc94d501a63c/pydantic_core-2.41.4-cp312-cp312-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:dd96e5d15385d301733113bcaa324c8bcf111275b7675a9c6e88bfb19fc05e3b", size = 2345169, upload-time = "2025-10-14T10:20:37.627Z" }, - { url = "https://files.pythonhosted.org/packages/f0/83/06d001f8043c336baea7fd202a9ac7ad71f87e1c55d8112c50b745c40324/pydantic_core-2.41.4-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:98f348cbb44fae6e9653c1055db7e29de67ea6a9ca03a5fa2c2e11a47cff0e47", size = 2070165, upload-time = "2025-10-14T10:20:39.246Z" }, - { url = "https://files.pythonhosted.org/packages/14/0a/e567c2883588dd12bcbc110232d892cf385356f7c8a9910311ac997ab715/pydantic_core-2.41.4-cp312-cp312-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:ec22626a2d14620a83ca583c6f5a4080fa3155282718b6055c2ea48d3ef35970", size = 2189067, upload-time = "2025-10-14T10:20:41.015Z" }, - { url = "https://files.pythonhosted.org/packages/f4/1d/3d9fca34273ba03c9b1c5289f7618bc4bd09c3ad2289b5420481aa051a99/pydantic_core-2.41.4-cp312-cp312-musllinux_1_1_aarch64.whl", hash = "sha256:3a95d4590b1f1a43bf33ca6d647b990a88f4a3824a8c4572c708f0b45a5290ed", size = 2132997, upload-time = "2025-10-14T10:20:43.106Z" }, - { url = "https://files.pythonhosted.org/packages/52/70/d702ef7a6cd41a8afc61f3554922b3ed8d19dd54c3bd4bdbfe332e610827/pydantic_core-2.41.4-cp312-cp312-musllinux_1_1_armv7l.whl", hash = "sha256:f9672ab4d398e1b602feadcffcdd3af44d5f5e6ddc15bc7d15d376d47e8e19f8", size = 2307187, upload-time = "2025-10-14T10:20:44.849Z" }, - { url = "https://files.pythonhosted.org/packages/68/4c/c06be6e27545d08b802127914156f38d10ca287a9e8489342793de8aae3c/pydantic_core-2.41.4-cp312-cp312-musllinux_1_1_x86_64.whl", hash = "sha256:84d8854db5f55fead3b579f04bda9a36461dab0730c5d570e1526483e7bb8431", size = 2305204, upload-time = "2025-10-14T10:20:46.781Z" }, - { url = "https://files.pythonhosted.org/packages/b0/e5/35ae4919bcd9f18603419e23c5eaf32750224a89d41a8df1a3704b69f77e/pydantic_core-2.41.4-cp312-cp312-win32.whl", hash = "sha256:9be1c01adb2ecc4e464392c36d17f97e9110fbbc906bcbe1c943b5b87a74aabd", size = 1972536, upload-time = "2025-10-14T10:20:48.39Z" }, - { url = "https://files.pythonhosted.org/packages/1e/c2/49c5bb6d2a49eb2ee3647a93e3dae7080c6409a8a7558b075027644e879c/pydantic_core-2.41.4-cp312-cp312-win_amd64.whl", hash = "sha256:d682cf1d22bab22a5be08539dca3d1593488a99998f9f412137bc323179067ff", size = 2031132, upload-time = "2025-10-14T10:20:50.421Z" }, - { url = "https://files.pythonhosted.org/packages/06/23/936343dbcba6eec93f73e95eb346810fc732f71ba27967b287b66f7b7097/pydantic_core-2.41.4-cp312-cp312-win_arm64.whl", hash = "sha256:833eebfd75a26d17470b58768c1834dfc90141b7afc6eb0429c21fc5a21dcfb8", size = 1969483, upload-time = "2025-10-14T10:20:52.35Z" }, - { url = "https://files.pythonhosted.org/packages/13/d0/c20adabd181a029a970738dfe23710b52a31f1258f591874fcdec7359845/pydantic_core-2.41.4-cp313-cp313-macosx_10_12_x86_64.whl", hash = "sha256:85e050ad9e5f6fe1004eec65c914332e52f429bc0ae12d6fa2092407a462c746", size = 2105688, upload-time = "2025-10-14T10:20:54.448Z" }, - { url = "https://files.pythonhosted.org/packages/00/b6/0ce5c03cec5ae94cca220dfecddc453c077d71363b98a4bbdb3c0b22c783/pydantic_core-2.41.4-cp313-cp313-macosx_11_0_arm64.whl", hash = "sha256:e7393f1d64792763a48924ba31d1e44c2cfbc05e3b1c2c9abb4ceeadd912cced", size = 1910807, upload-time = "2025-10-14T10:20:56.115Z" }, - { url = "https://files.pythonhosted.org/packages/68/3e/800d3d02c8beb0b5c069c870cbb83799d085debf43499c897bb4b4aaff0d/pydantic_core-2.41.4-cp313-cp313-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:94dab0940b0d1fb28bcab847adf887c66a27a40291eedf0b473be58761c9799a", size = 1956669, upload-time = "2025-10-14T10:20:57.874Z" }, - { url = "https://files.pythonhosted.org/packages/60/a4/24271cc71a17f64589be49ab8bd0751f6a0a03046c690df60989f2f95c2c/pydantic_core-2.41.4-cp313-cp313-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:de7c42f897e689ee6f9e93c4bec72b99ae3b32a2ade1c7e4798e690ff5246e02", size = 2051629, upload-time = "2025-10-14T10:21:00.006Z" }, - { url = "https://files.pythonhosted.org/packages/68/de/45af3ca2f175d91b96bfb62e1f2d2f1f9f3b14a734afe0bfeff079f78181/pydantic_core-2.41.4-cp313-cp313-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:664b3199193262277b8b3cd1e754fb07f2c6023289c815a1e1e8fb415cb247b1", size = 2224049, upload-time = "2025-10-14T10:21:01.801Z" }, - { url = "https://files.pythonhosted.org/packages/af/8f/ae4e1ff84672bf869d0a77af24fd78387850e9497753c432875066b5d622/pydantic_core-2.41.4-cp313-cp313-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:d95b253b88f7d308b1c0b417c4624f44553ba4762816f94e6986819b9c273fb2", size = 2342409, upload-time = "2025-10-14T10:21:03.556Z" }, - { url = "https://files.pythonhosted.org/packages/18/62/273dd70b0026a085c7b74b000394e1ef95719ea579c76ea2f0cc8893736d/pydantic_core-2.41.4-cp313-cp313-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:a1351f5bbdbbabc689727cb91649a00cb9ee7203e0a6e54e9f5ba9e22e384b84", size = 2069635, upload-time = "2025-10-14T10:21:05.385Z" }, - { url = "https://files.pythonhosted.org/packages/30/03/cf485fff699b4cdaea469bc481719d3e49f023241b4abb656f8d422189fc/pydantic_core-2.41.4-cp313-cp313-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:1affa4798520b148d7182da0615d648e752de4ab1a9566b7471bc803d88a062d", size = 2194284, upload-time = "2025-10-14T10:21:07.122Z" }, - { url = "https://files.pythonhosted.org/packages/f9/7e/c8e713db32405dfd97211f2fc0a15d6bf8adb7640f3d18544c1f39526619/pydantic_core-2.41.4-cp313-cp313-musllinux_1_1_aarch64.whl", hash = "sha256:7b74e18052fea4aa8dea2fb7dbc23d15439695da6cbe6cfc1b694af1115df09d", size = 2137566, upload-time = "2025-10-14T10:21:08.981Z" }, - { url = "https://files.pythonhosted.org/packages/04/f7/db71fd4cdccc8b75990f79ccafbbd66757e19f6d5ee724a6252414483fb4/pydantic_core-2.41.4-cp313-cp313-musllinux_1_1_armv7l.whl", hash = "sha256:285b643d75c0e30abda9dc1077395624f314a37e3c09ca402d4015ef5979f1a2", size = 2316809, upload-time = "2025-10-14T10:21:10.805Z" }, - { url = "https://files.pythonhosted.org/packages/76/63/a54973ddb945f1bca56742b48b144d85c9fc22f819ddeb9f861c249d5464/pydantic_core-2.41.4-cp313-cp313-musllinux_1_1_x86_64.whl", hash = "sha256:f52679ff4218d713b3b33f88c89ccbf3a5c2c12ba665fb80ccc4192b4608dbab", size = 2311119, upload-time = "2025-10-14T10:21:12.583Z" }, - { url = "https://files.pythonhosted.org/packages/f8/03/5d12891e93c19218af74843a27e32b94922195ded2386f7b55382f904d2f/pydantic_core-2.41.4-cp313-cp313-win32.whl", hash = "sha256:ecde6dedd6fff127c273c76821bb754d793be1024bc33314a120f83a3c69460c", size = 1981398, upload-time = "2025-10-14T10:21:14.584Z" }, - { url = "https://files.pythonhosted.org/packages/be/d8/fd0de71f39db91135b7a26996160de71c073d8635edfce8b3c3681be0d6d/pydantic_core-2.41.4-cp313-cp313-win_amd64.whl", hash = "sha256:d081a1f3800f05409ed868ebb2d74ac39dd0c1ff6c035b5162356d76030736d4", size = 2030735, upload-time = "2025-10-14T10:21:16.432Z" }, - { url = "https://files.pythonhosted.org/packages/72/86/c99921c1cf6650023c08bfab6fe2d7057a5142628ef7ccfa9921f2dda1d5/pydantic_core-2.41.4-cp313-cp313-win_arm64.whl", hash = "sha256:f8e49c9c364a7edcbe2a310f12733aad95b022495ef2a8d653f645e5d20c1564", size = 1973209, upload-time = "2025-10-14T10:21:18.213Z" }, - { url = "https://files.pythonhosted.org/packages/36/0d/b5706cacb70a8414396efdda3d72ae0542e050b591119e458e2490baf035/pydantic_core-2.41.4-cp313-cp313t-macosx_11_0_arm64.whl", hash = "sha256:ed97fd56a561f5eb5706cebe94f1ad7c13b84d98312a05546f2ad036bafe87f4", size = 1877324, upload-time = "2025-10-14T10:21:20.363Z" }, - { url = "https://files.pythonhosted.org/packages/de/2d/cba1fa02cfdea72dfb3a9babb067c83b9dff0bbcb198368e000a6b756ea7/pydantic_core-2.41.4-cp313-cp313t-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:a870c307bf1ee91fc58a9a61338ff780d01bfae45922624816878dce784095d2", size = 1884515, upload-time = "2025-10-14T10:21:22.339Z" }, - { url = "https://files.pythonhosted.org/packages/07/ea/3df927c4384ed9b503c9cc2d076cf983b4f2adb0c754578dfb1245c51e46/pydantic_core-2.41.4-cp313-cp313t-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:d25e97bc1f5f8f7985bdc2335ef9e73843bb561eb1fa6831fdfc295c1c2061cf", size = 2042819, upload-time = "2025-10-14T10:21:26.683Z" }, - { url = "https://files.pythonhosted.org/packages/6a/ee/df8e871f07074250270a3b1b82aad4cd0026b588acd5d7d3eb2fcb1471a3/pydantic_core-2.41.4-cp313-cp313t-win_amd64.whl", hash = "sha256:d405d14bea042f166512add3091c1af40437c2e7f86988f3915fabd27b1e9cd2", size = 1995866, upload-time = "2025-10-14T10:21:28.951Z" }, - { url = "https://files.pythonhosted.org/packages/fc/de/b20f4ab954d6d399499c33ec4fafc46d9551e11dc1858fb7f5dca0748ceb/pydantic_core-2.41.4-cp313-cp313t-win_arm64.whl", hash = "sha256:19f3684868309db5263a11bace3c45d93f6f24afa2ffe75a647583df22a2ff89", size = 1970034, upload-time = "2025-10-14T10:21:30.869Z" }, - { url = "https://files.pythonhosted.org/packages/54/28/d3325da57d413b9819365546eb9a6e8b7cbd9373d9380efd5f74326143e6/pydantic_core-2.41.4-cp314-cp314-macosx_10_12_x86_64.whl", hash = "sha256:e9205d97ed08a82ebb9a307e92914bb30e18cdf6f6b12ca4bedadb1588a0bfe1", size = 2102022, upload-time = "2025-10-14T10:21:32.809Z" }, - { url = "https://files.pythonhosted.org/packages/9e/24/b58a1bc0d834bf1acc4361e61233ee217169a42efbdc15a60296e13ce438/pydantic_core-2.41.4-cp314-cp314-macosx_11_0_arm64.whl", hash = "sha256:82df1f432b37d832709fbcc0e24394bba04a01b6ecf1ee87578145c19cde12ac", size = 1905495, upload-time = "2025-10-14T10:21:34.812Z" }, - { url = "https://files.pythonhosted.org/packages/fb/a4/71f759cc41b7043e8ecdaab81b985a9b6cad7cec077e0b92cff8b71ecf6b/pydantic_core-2.41.4-cp314-cp314-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:fc3b4cc4539e055cfa39a3763c939f9d409eb40e85813257dcd761985a108554", size = 1956131, upload-time = "2025-10-14T10:21:36.924Z" }, - { url = "https://files.pythonhosted.org/packages/b0/64/1e79ac7aa51f1eec7c4cda8cbe456d5d09f05fdd68b32776d72168d54275/pydantic_core-2.41.4-cp314-cp314-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:b1eb1754fce47c63d2ff57fdb88c351a6c0150995890088b33767a10218eaa4e", size = 2052236, upload-time = "2025-10-14T10:21:38.927Z" }, - { url = "https://files.pythonhosted.org/packages/e9/e3/a3ffc363bd4287b80f1d43dc1c28ba64831f8dfc237d6fec8f2661138d48/pydantic_core-2.41.4-cp314-cp314-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:e6ab5ab30ef325b443f379ddb575a34969c333004fca5a1daa0133a6ffaad616", size = 2223573, upload-time = "2025-10-14T10:21:41.574Z" }, - { url = "https://files.pythonhosted.org/packages/28/27/78814089b4d2e684a9088ede3790763c64693c3d1408ddc0a248bc789126/pydantic_core-2.41.4-cp314-cp314-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:31a41030b1d9ca497634092b46481b937ff9397a86f9f51bd41c4767b6fc04af", size = 2342467, upload-time = "2025-10-14T10:21:44.018Z" }, - { url = "https://files.pythonhosted.org/packages/92/97/4de0e2a1159cb85ad737e03306717637842c88c7fd6d97973172fb183149/pydantic_core-2.41.4-cp314-cp314-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:a44ac1738591472c3d020f61c6df1e4015180d6262ebd39bf2aeb52571b60f12", size = 2063754, upload-time = "2025-10-14T10:21:46.466Z" }, - { url = "https://files.pythonhosted.org/packages/0f/50/8cb90ce4b9efcf7ae78130afeb99fd1c86125ccdf9906ef64b9d42f37c25/pydantic_core-2.41.4-cp314-cp314-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:d72f2b5e6e82ab8f94ea7d0d42f83c487dc159c5240d8f83beae684472864e2d", size = 2196754, upload-time = "2025-10-14T10:21:48.486Z" }, - { url = "https://files.pythonhosted.org/packages/34/3b/ccdc77af9cd5082723574a1cc1bcae7a6acacc829d7c0a06201f7886a109/pydantic_core-2.41.4-cp314-cp314-musllinux_1_1_aarch64.whl", hash = "sha256:c4d1e854aaf044487d31143f541f7aafe7b482ae72a022c664b2de2e466ed0ad", size = 2137115, upload-time = "2025-10-14T10:21:50.63Z" }, - { url = "https://files.pythonhosted.org/packages/ca/ba/e7c7a02651a8f7c52dc2cff2b64a30c313e3b57c7d93703cecea76c09b71/pydantic_core-2.41.4-cp314-cp314-musllinux_1_1_armv7l.whl", hash = "sha256:b568af94267729d76e6ee5ececda4e283d07bbb28e8148bb17adad93d025d25a", size = 2317400, upload-time = "2025-10-14T10:21:52.959Z" }, - { url = "https://files.pythonhosted.org/packages/2c/ba/6c533a4ee8aec6b812c643c49bb3bd88d3f01e3cebe451bb85512d37f00f/pydantic_core-2.41.4-cp314-cp314-musllinux_1_1_x86_64.whl", hash = "sha256:6d55fb8b1e8929b341cc313a81a26e0d48aa3b519c1dbaadec3a6a2b4fcad025", size = 2312070, upload-time = "2025-10-14T10:21:55.419Z" }, - { url = "https://files.pythonhosted.org/packages/22/ae/f10524fcc0ab8d7f96cf9a74c880243576fd3e72bd8ce4f81e43d22bcab7/pydantic_core-2.41.4-cp314-cp314-win32.whl", hash = "sha256:5b66584e549e2e32a1398df11da2e0a7eff45d5c2d9db9d5667c5e6ac764d77e", size = 1982277, upload-time = "2025-10-14T10:21:57.474Z" }, - { url = "https://files.pythonhosted.org/packages/b4/dc/e5aa27aea1ad4638f0c3fb41132f7eb583bd7420ee63204e2d4333a3bbf9/pydantic_core-2.41.4-cp314-cp314-win_amd64.whl", hash = "sha256:557a0aab88664cc552285316809cab897716a372afaf8efdbef756f8b890e894", size = 2024608, upload-time = "2025-10-14T10:21:59.557Z" }, - { url = "https://files.pythonhosted.org/packages/3e/61/51d89cc2612bd147198e120a13f150afbf0bcb4615cddb049ab10b81b79e/pydantic_core-2.41.4-cp314-cp314-win_arm64.whl", hash = "sha256:3f1ea6f48a045745d0d9f325989d8abd3f1eaf47dd00485912d1a3a63c623a8d", size = 1967614, upload-time = "2025-10-14T10:22:01.847Z" }, - { url = "https://files.pythonhosted.org/packages/0d/c2/472f2e31b95eff099961fa050c376ab7156a81da194f9edb9f710f68787b/pydantic_core-2.41.4-cp314-cp314t-macosx_11_0_arm64.whl", hash = "sha256:6c1fe4c5404c448b13188dd8bd2ebc2bdd7e6727fa61ff481bcc2cca894018da", size = 1876904, upload-time = "2025-10-14T10:22:04.062Z" }, - { url = "https://files.pythonhosted.org/packages/4a/07/ea8eeb91173807ecdae4f4a5f4b150a520085b35454350fc219ba79e66a3/pydantic_core-2.41.4-cp314-cp314t-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:523e7da4d43b113bf8e7b49fa4ec0c35bf4fe66b2230bfc5c13cc498f12c6c3e", size = 1882538, upload-time = "2025-10-14T10:22:06.39Z" }, - { url = "https://files.pythonhosted.org/packages/1e/29/b53a9ca6cd366bfc928823679c6a76c7a4c69f8201c0ba7903ad18ebae2f/pydantic_core-2.41.4-cp314-cp314t-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:5729225de81fb65b70fdb1907fcf08c75d498f4a6f15af005aabb1fdadc19dfa", size = 2041183, upload-time = "2025-10-14T10:22:08.812Z" }, - { url = "https://files.pythonhosted.org/packages/c7/3d/f8c1a371ceebcaf94d6dd2d77c6cf4b1c078e13a5837aee83f760b4f7cfd/pydantic_core-2.41.4-cp314-cp314t-win_amd64.whl", hash = "sha256:de2cfbb09e88f0f795fd90cf955858fc2c691df65b1f21f0aa00b99f3fbc661d", size = 1993542, upload-time = "2025-10-14T10:22:11.332Z" }, - { url = "https://files.pythonhosted.org/packages/8a/ac/9fc61b4f9d079482a290afe8d206b8f490e9fd32d4fc03ed4fc698214e01/pydantic_core-2.41.4-cp314-cp314t-win_arm64.whl", hash = "sha256:d34f950ae05a83e0ede899c595f312ca976023ea1db100cd5aa188f7005e3ab0", size = 1973897, upload-time = "2025-10-14T10:22:13.444Z" }, - { url = "https://files.pythonhosted.org/packages/b0/12/5ba58daa7f453454464f92b3ca7b9d7c657d8641c48e370c3ebc9a82dd78/pydantic_core-2.41.4-graalpy311-graalpy242_311_native-macosx_10_12_x86_64.whl", hash = "sha256:a1b2cfec3879afb742a7b0bcfa53e4f22ba96571c9e54d6a3afe1052d17d843b", size = 2122139, upload-time = "2025-10-14T10:22:47.288Z" }, - { url = "https://files.pythonhosted.org/packages/21/fb/6860126a77725c3108baecd10fd3d75fec25191d6381b6eb2ac660228eac/pydantic_core-2.41.4-graalpy311-graalpy242_311_native-macosx_11_0_arm64.whl", hash = "sha256:d175600d975b7c244af6eb9c9041f10059f20b8bbffec9e33fdd5ee3f67cdc42", size = 1936674, upload-time = "2025-10-14T10:22:49.555Z" }, - { url = "https://files.pythonhosted.org/packages/de/be/57dcaa3ed595d81f8757e2b44a38240ac5d37628bce25fb20d02c7018776/pydantic_core-2.41.4-graalpy311-graalpy242_311_native-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:0f184d657fa4947ae5ec9c47bd7e917730fa1cbb78195037e32dcbab50aca5ee", size = 1956398, upload-time = "2025-10-14T10:22:52.19Z" }, - { url = "https://files.pythonhosted.org/packages/2f/1d/679a344fadb9695f1a6a294d739fbd21d71fa023286daeea8c0ed49e7c2b/pydantic_core-2.41.4-graalpy311-graalpy242_311_native-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:1ed810568aeffed3edc78910af32af911c835cc39ebbfacd1f0ab5dd53028e5c", size = 2138674, upload-time = "2025-10-14T10:22:54.499Z" }, - { url = "https://files.pythonhosted.org/packages/c4/48/ae937e5a831b7c0dc646b2ef788c27cd003894882415300ed21927c21efa/pydantic_core-2.41.4-graalpy312-graalpy250_312_native-macosx_10_12_x86_64.whl", hash = "sha256:4f5d640aeebb438517150fdeec097739614421900e4a08db4a3ef38898798537", size = 2112087, upload-time = "2025-10-14T10:22:56.818Z" }, - { url = "https://files.pythonhosted.org/packages/5e/db/6db8073e3d32dae017da7e0d16a9ecb897d0a4d92e00634916e486097961/pydantic_core-2.41.4-graalpy312-graalpy250_312_native-macosx_11_0_arm64.whl", hash = "sha256:4a9ab037b71927babc6d9e7fc01aea9e66dc2a4a34dff06ef0724a4049629f94", size = 1920387, upload-time = "2025-10-14T10:22:59.342Z" }, - { url = "https://files.pythonhosted.org/packages/0d/c1/dd3542d072fcc336030d66834872f0328727e3b8de289c662faa04aa270e/pydantic_core-2.41.4-graalpy312-graalpy250_312_native-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:e4dab9484ec605c3016df9ad4fd4f9a390bc5d816a3b10c6550f8424bb80b18c", size = 1951495, upload-time = "2025-10-14T10:23:02.089Z" }, - { url = "https://files.pythonhosted.org/packages/2b/c6/db8d13a1f8ab3f1eb08c88bd00fd62d44311e3456d1e85c0e59e0a0376e7/pydantic_core-2.41.4-graalpy312-graalpy250_312_native-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:bd8a5028425820731d8c6c098ab642d7b8b999758e24acae03ed38a66eca8335", size = 2139008, upload-time = "2025-10-14T10:23:04.539Z" }, - { url = "https://files.pythonhosted.org/packages/5d/d4/912e976a2dd0b49f31c98a060ca90b353f3b73ee3ea2fd0030412f6ac5ec/pydantic_core-2.41.4-pp310-pypy310_pp73-macosx_10_12_x86_64.whl", hash = "sha256:1e5ab4fc177dd41536b3c32b2ea11380dd3d4619a385860621478ac2d25ceb00", size = 2106739, upload-time = "2025-10-14T10:23:06.934Z" }, - { url = "https://files.pythonhosted.org/packages/71/f0/66ec5a626c81eba326072d6ee2b127f8c139543f1bf609b4842978d37833/pydantic_core-2.41.4-pp310-pypy310_pp73-macosx_11_0_arm64.whl", hash = "sha256:3d88d0054d3fa11ce936184896bed3c1c5441d6fa483b498fac6a5d0dd6f64a9", size = 1932549, upload-time = "2025-10-14T10:23:09.24Z" }, - { url = "https://files.pythonhosted.org/packages/c4/af/625626278ca801ea0a658c2dcf290dc9f21bb383098e99e7c6a029fccfc0/pydantic_core-2.41.4-pp310-pypy310_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:7b2a054a8725f05b4b6503357e0ac1c4e8234ad3b0c2ac130d6ffc66f0e170e2", size = 2135093, upload-time = "2025-10-14T10:23:11.626Z" }, - { url = "https://files.pythonhosted.org/packages/20/f6/2fba049f54e0f4975fef66be654c597a1d005320fa141863699180c7697d/pydantic_core-2.41.4-pp310-pypy310_pp73-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:b0d9db5a161c99375a0c68c058e227bee1d89303300802601d76a3d01f74e258", size = 2187971, upload-time = "2025-10-14T10:23:14.437Z" }, - { url = "https://files.pythonhosted.org/packages/0e/80/65ab839a2dfcd3b949202f9d920c34f9de5a537c3646662bdf2f7d999680/pydantic_core-2.41.4-pp310-pypy310_pp73-musllinux_1_1_aarch64.whl", hash = "sha256:6273ea2c8ffdac7b7fda2653c49682db815aebf4a89243a6feccf5e36c18c347", size = 2147939, upload-time = "2025-10-14T10:23:16.831Z" }, - { url = "https://files.pythonhosted.org/packages/44/58/627565d3d182ce6dfda18b8e1c841eede3629d59c9d7cbc1e12a03aeb328/pydantic_core-2.41.4-pp310-pypy310_pp73-musllinux_1_1_armv7l.whl", hash = "sha256:4c973add636efc61de22530b2ef83a65f39b6d6f656df97f678720e20de26caa", size = 2311400, upload-time = "2025-10-14T10:23:19.234Z" }, - { url = "https://files.pythonhosted.org/packages/24/06/8a84711162ad5a5f19a88cead37cca81b4b1f294f46260ef7334ae4f24d3/pydantic_core-2.41.4-pp310-pypy310_pp73-musllinux_1_1_x86_64.whl", hash = "sha256:b69d1973354758007f46cf2d44a4f3d0933f10b6dc9bf15cf1356e037f6f731a", size = 2316840, upload-time = "2025-10-14T10:23:21.738Z" }, - { url = "https://files.pythonhosted.org/packages/aa/8b/b7bb512a4682a2f7fbfae152a755d37351743900226d29bd953aaf870eaa/pydantic_core-2.41.4-pp310-pypy310_pp73-win_amd64.whl", hash = "sha256:3619320641fd212aaf5997b6ca505e97540b7e16418f4a241f44cdf108ffb50d", size = 2149135, upload-time = "2025-10-14T10:23:24.379Z" }, - { url = "https://files.pythonhosted.org/packages/7e/7d/138e902ed6399b866f7cfe4435d22445e16fff888a1c00560d9dc79a780f/pydantic_core-2.41.4-pp311-pypy311_pp73-macosx_10_12_x86_64.whl", hash = "sha256:491535d45cd7ad7e4a2af4a5169b0d07bebf1adfd164b0368da8aa41e19907a5", size = 2104721, upload-time = "2025-10-14T10:23:26.906Z" }, - { url = "https://files.pythonhosted.org/packages/47/13/0525623cf94627f7b53b4c2034c81edc8491cbfc7c28d5447fa318791479/pydantic_core-2.41.4-pp311-pypy311_pp73-macosx_11_0_arm64.whl", hash = "sha256:54d86c0cada6aba4ec4c047d0e348cbad7063b87ae0f005d9f8c9ad04d4a92a2", size = 1931608, upload-time = "2025-10-14T10:23:29.306Z" }, - { url = "https://files.pythonhosted.org/packages/d6/f9/744bc98137d6ef0a233f808bfc9b18cf94624bf30836a18d3b05d08bf418/pydantic_core-2.41.4-pp311-pypy311_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:eca1124aced216b2500dc2609eade086d718e8249cb9696660ab447d50a758bd", size = 2132986, upload-time = "2025-10-14T10:23:32.057Z" }, - { url = "https://files.pythonhosted.org/packages/17/c8/629e88920171173f6049386cc71f893dff03209a9ef32b4d2f7e7c264bcf/pydantic_core-2.41.4-pp311-pypy311_pp73-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:6c9024169becccf0cb470ada03ee578d7348c119a0d42af3dcf9eda96e3a247c", size = 2187516, upload-time = "2025-10-14T10:23:34.871Z" }, - { url = "https://files.pythonhosted.org/packages/2e/0f/4f2734688d98488782218ca61bcc118329bf5de05bb7fe3adc7dd79b0b86/pydantic_core-2.41.4-pp311-pypy311_pp73-musllinux_1_1_aarch64.whl", hash = "sha256:26895a4268ae5a2849269f4991cdc97236e4b9c010e51137becf25182daac405", size = 2146146, upload-time = "2025-10-14T10:23:37.342Z" }, - { url = "https://files.pythonhosted.org/packages/ed/f2/ab385dbd94a052c62224b99cf99002eee99dbec40e10006c78575aead256/pydantic_core-2.41.4-pp311-pypy311_pp73-musllinux_1_1_armv7l.whl", hash = "sha256:ca4df25762cf71308c446e33c9b1fdca2923a3f13de616e2a949f38bf21ff5a8", size = 2311296, upload-time = "2025-10-14T10:23:40.145Z" }, - { url = "https://files.pythonhosted.org/packages/fc/8e/e4f12afe1beeb9823bba5375f8f258df0cc61b056b0195fb1cf9f62a1a58/pydantic_core-2.41.4-pp311-pypy311_pp73-musllinux_1_1_x86_64.whl", hash = "sha256:5a28fcedd762349519276c36634e71853b4541079cab4acaaac60c4421827308", size = 2315386, upload-time = "2025-10-14T10:23:42.624Z" }, - { url = "https://files.pythonhosted.org/packages/48/f7/925f65d930802e3ea2eb4d5afa4cb8730c8dc0d2cb89a59dc4ed2fcb2d74/pydantic_core-2.41.4-pp311-pypy311_pp73-win_amd64.whl", hash = "sha256:c173ddcd86afd2535e2b695217e82191580663a1d1928239f877f5a1649ef39f", size = 2147775, upload-time = "2025-10-14T10:23:45.406Z" }, -] - -[[package]] -name = "pygments" -version = "2.19.2" -source = { registry = "https://pypi.org/simple" } -sdist = { url = "https://files.pythonhosted.org/packages/b0/77/a5b8c569bf593b0140bde72ea885a803b82086995367bf2037de0159d924/pygments-2.19.2.tar.gz", hash = "sha256:636cb2477cec7f8952536970bc533bc43743542f70392ae026374600add5b887", size = 4968631, upload-time = "2025-06-21T13:39:12.283Z" } -wheels = [ - { url = "https://files.pythonhosted.org/packages/c7/21/705964c7812476f378728bdf590ca4b771ec72385c533964653c68e86bdc/pygments-2.19.2-py3-none-any.whl", hash = "sha256:86540386c03d588bb81d44bc3928634ff26449851e99741617ecb9037ee5ec0b", size = 1225217, upload-time = "2025-06-21T13:39:07.939Z" }, -] - -[[package]] -name = "pytest" -version = "8.4.2" -source = { registry = "https://pypi.org/simple" } -dependencies = [ - { name = "colorama", marker = "sys_platform == 'win32'" }, - { name = "exceptiongroup", marker = "python_full_version < '3.11'" }, - { name = "iniconfig" }, - { name = "packaging" }, - { name = "pluggy" }, - { name = "pygments" }, - { name = "tomli", marker = "python_full_version < '3.11'" }, -] -sdist = { url = "https://files.pythonhosted.org/packages/a3/5c/00a0e072241553e1a7496d638deababa67c5058571567b92a7eaa258397c/pytest-8.4.2.tar.gz", hash = "sha256:86c0d0b93306b961d58d62a4db4879f27fe25513d4b969df351abdddb3c30e01", size = 1519618, upload-time = "2025-09-04T14:34:22.711Z" } -wheels = [ - { url = "https://files.pythonhosted.org/packages/a8/a4/20da314d277121d6534b3a980b29035dcd51e6744bd79075a6ce8fa4eb8d/pytest-8.4.2-py3-none-any.whl", hash = "sha256:872f880de3fc3a5bdc88a11b39c9710c3497a547cfa9320bc3c5e62fbf272e79", size = 365750, upload-time = "2025-09-04T14:34:20.226Z" }, -] - -[[package]] -name = "pytest-watcher" -version = "0.4.3" -source = { registry = "https://pypi.org/simple" } -dependencies = [ - { name = "tomli", marker = "python_full_version < '3.11'" }, - { name = "watchdog" }, -] -sdist = { url = "https://files.pythonhosted.org/packages/72/72/a2a1e81f1b272ddd9a1848af4959c87c39aa95c0bbfb3007cacb86c47fa9/pytest_watcher-0.4.3.tar.gz", hash = "sha256:0cb0e4661648c8c0ff2b2d25efa5a8e421784b9e4c60fcecbf9b7c30b2d731b3", size = 10386, upload-time = "2024-08-28T17:37:46.662Z" } -wheels = [ - { url = "https://files.pythonhosted.org/packages/5b/3a/c44a76c6bb5e9e896d9707fb1c704a31a0136950dec9514373ced0684d56/pytest_watcher-0.4.3-py3-none-any.whl", hash = "sha256:d59b1e1396f33a65ea4949b713d6884637755d641646960056a90b267c3460f9", size = 11852, upload-time = "2024-08-28T17:37:45.731Z" }, -] - -[[package]] -name = "pyyaml" -version = "6.0.3" -source = { registry = "https://pypi.org/simple" } -sdist = { url = "https://files.pythonhosted.org/packages/05/8e/961c0007c59b8dd7729d542c61a4d537767a59645b82a0b521206e1e25c2/pyyaml-6.0.3.tar.gz", hash = "sha256:d76623373421df22fb4cf8817020cbb7ef15c725b9d5e45f17e189bfc384190f", size = 130960, upload-time = "2025-09-25T21:33:16.546Z" } -wheels = [ - { url = "https://files.pythonhosted.org/packages/f4/a0/39350dd17dd6d6c6507025c0e53aef67a9293a6d37d3511f23ea510d5800/pyyaml-6.0.3-cp310-cp310-macosx_10_13_x86_64.whl", hash = "sha256:214ed4befebe12df36bcc8bc2b64b396ca31be9304b8f59e25c11cf94a4c033b", size = 184227, upload-time = "2025-09-25T21:31:46.04Z" }, - { url = "https://files.pythonhosted.org/packages/05/14/52d505b5c59ce73244f59c7a50ecf47093ce4765f116cdb98286a71eeca2/pyyaml-6.0.3-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:02ea2dfa234451bbb8772601d7b8e426c2bfa197136796224e50e35a78777956", size = 174019, upload-time = "2025-09-25T21:31:47.706Z" }, - { url = "https://files.pythonhosted.org/packages/43/f7/0e6a5ae5599c838c696adb4e6330a59f463265bfa1e116cfd1fbb0abaaae/pyyaml-6.0.3-cp310-cp310-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:b30236e45cf30d2b8e7b3e85881719e98507abed1011bf463a8fa23e9c3e98a8", size = 740646, upload-time = "2025-09-25T21:31:49.21Z" }, - { url = "https://files.pythonhosted.org/packages/2f/3a/61b9db1d28f00f8fd0ae760459a5c4bf1b941baf714e207b6eb0657d2578/pyyaml-6.0.3-cp310-cp310-manylinux2014_s390x.manylinux_2_17_s390x.manylinux_2_28_s390x.whl", hash = "sha256:66291b10affd76d76f54fad28e22e51719ef9ba22b29e1d7d03d6777a9174198", size = 840793, upload-time = "2025-09-25T21:31:50.735Z" }, - { url = "https://files.pythonhosted.org/packages/7a/1e/7acc4f0e74c4b3d9531e24739e0ab832a5edf40e64fbae1a9c01941cabd7/pyyaml-6.0.3-cp310-cp310-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:9c7708761fccb9397fe64bbc0395abcae8c4bf7b0eac081e12b809bf47700d0b", size = 770293, upload-time = "2025-09-25T21:31:51.828Z" }, - { url = "https://files.pythonhosted.org/packages/8b/ef/abd085f06853af0cd59fa5f913d61a8eab65d7639ff2a658d18a25d6a89d/pyyaml-6.0.3-cp310-cp310-musllinux_1_2_aarch64.whl", hash = "sha256:418cf3f2111bc80e0933b2cd8cd04f286338bb88bdc7bc8e6dd775ebde60b5e0", size = 732872, upload-time = "2025-09-25T21:31:53.282Z" }, - { url = "https://files.pythonhosted.org/packages/1f/15/2bc9c8faf6450a8b3c9fc5448ed869c599c0a74ba2669772b1f3a0040180/pyyaml-6.0.3-cp310-cp310-musllinux_1_2_x86_64.whl", hash = "sha256:5e0b74767e5f8c593e8c9b5912019159ed0533c70051e9cce3e8b6aa699fcd69", size = 758828, upload-time = "2025-09-25T21:31:54.807Z" }, - { url = "https://files.pythonhosted.org/packages/a3/00/531e92e88c00f4333ce359e50c19b8d1de9fe8d581b1534e35ccfbc5f393/pyyaml-6.0.3-cp310-cp310-win32.whl", hash = "sha256:28c8d926f98f432f88adc23edf2e6d4921ac26fb084b028c733d01868d19007e", size = 142415, upload-time = "2025-09-25T21:31:55.885Z" }, - { url = "https://files.pythonhosted.org/packages/2a/fa/926c003379b19fca39dd4634818b00dec6c62d87faf628d1394e137354d4/pyyaml-6.0.3-cp310-cp310-win_amd64.whl", hash = "sha256:bdb2c67c6c1390b63c6ff89f210c8fd09d9a1217a465701eac7316313c915e4c", size = 158561, upload-time = "2025-09-25T21:31:57.406Z" }, - { url = "https://files.pythonhosted.org/packages/6d/16/a95b6757765b7b031c9374925bb718d55e0a9ba8a1b6a12d25962ea44347/pyyaml-6.0.3-cp311-cp311-macosx_10_13_x86_64.whl", hash = "sha256:44edc647873928551a01e7a563d7452ccdebee747728c1080d881d68af7b997e", size = 185826, upload-time = "2025-09-25T21:31:58.655Z" }, - { url = "https://files.pythonhosted.org/packages/16/19/13de8e4377ed53079ee996e1ab0a9c33ec2faf808a4647b7b4c0d46dd239/pyyaml-6.0.3-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:652cb6edd41e718550aad172851962662ff2681490a8a711af6a4d288dd96824", size = 175577, upload-time = "2025-09-25T21:32:00.088Z" }, - { url = "https://files.pythonhosted.org/packages/0c/62/d2eb46264d4b157dae1275b573017abec435397aa59cbcdab6fc978a8af4/pyyaml-6.0.3-cp311-cp311-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:10892704fc220243f5305762e276552a0395f7beb4dbf9b14ec8fd43b57f126c", size = 775556, upload-time = "2025-09-25T21:32:01.31Z" }, - { url = "https://files.pythonhosted.org/packages/10/cb/16c3f2cf3266edd25aaa00d6c4350381c8b012ed6f5276675b9eba8d9ff4/pyyaml-6.0.3-cp311-cp311-manylinux2014_s390x.manylinux_2_17_s390x.manylinux_2_28_s390x.whl", hash = "sha256:850774a7879607d3a6f50d36d04f00ee69e7fc816450e5f7e58d7f17f1ae5c00", size = 882114, upload-time = "2025-09-25T21:32:03.376Z" }, - { url = "https://files.pythonhosted.org/packages/71/60/917329f640924b18ff085ab889a11c763e0b573da888e8404ff486657602/pyyaml-6.0.3-cp311-cp311-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:b8bb0864c5a28024fac8a632c443c87c5aa6f215c0b126c449ae1a150412f31d", size = 806638, upload-time = "2025-09-25T21:32:04.553Z" }, - { url = "https://files.pythonhosted.org/packages/dd/6f/529b0f316a9fd167281a6c3826b5583e6192dba792dd55e3203d3f8e655a/pyyaml-6.0.3-cp311-cp311-musllinux_1_2_aarch64.whl", hash = "sha256:1d37d57ad971609cf3c53ba6a7e365e40660e3be0e5175fa9f2365a379d6095a", size = 767463, upload-time = "2025-09-25T21:32:06.152Z" }, - { url = "https://files.pythonhosted.org/packages/f2/6a/b627b4e0c1dd03718543519ffb2f1deea4a1e6d42fbab8021936a4d22589/pyyaml-6.0.3-cp311-cp311-musllinux_1_2_x86_64.whl", hash = "sha256:37503bfbfc9d2c40b344d06b2199cf0e96e97957ab1c1b546fd4f87e53e5d3e4", size = 794986, upload-time = "2025-09-25T21:32:07.367Z" }, - { url = "https://files.pythonhosted.org/packages/45/91/47a6e1c42d9ee337c4839208f30d9f09caa9f720ec7582917b264defc875/pyyaml-6.0.3-cp311-cp311-win32.whl", hash = "sha256:8098f252adfa6c80ab48096053f512f2321f0b998f98150cea9bd23d83e1467b", size = 142543, upload-time = "2025-09-25T21:32:08.95Z" }, - { url = "https://files.pythonhosted.org/packages/da/e3/ea007450a105ae919a72393cb06f122f288ef60bba2dc64b26e2646fa315/pyyaml-6.0.3-cp311-cp311-win_amd64.whl", hash = "sha256:9f3bfb4965eb874431221a3ff3fdcddc7e74e3b07799e0e84ca4a0f867d449bf", size = 158763, upload-time = "2025-09-25T21:32:09.96Z" }, - { url = "https://files.pythonhosted.org/packages/d1/33/422b98d2195232ca1826284a76852ad5a86fe23e31b009c9886b2d0fb8b2/pyyaml-6.0.3-cp312-cp312-macosx_10_13_x86_64.whl", hash = "sha256:7f047e29dcae44602496db43be01ad42fc6f1cc0d8cd6c83d342306c32270196", size = 182063, upload-time = "2025-09-25T21:32:11.445Z" }, - { url = "https://files.pythonhosted.org/packages/89/a0/6cf41a19a1f2f3feab0e9c0b74134aa2ce6849093d5517a0c550fe37a648/pyyaml-6.0.3-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:fc09d0aa354569bc501d4e787133afc08552722d3ab34836a80547331bb5d4a0", size = 173973, upload-time = "2025-09-25T21:32:12.492Z" }, - { url = "https://files.pythonhosted.org/packages/ed/23/7a778b6bd0b9a8039df8b1b1d80e2e2ad78aa04171592c8a5c43a56a6af4/pyyaml-6.0.3-cp312-cp312-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:9149cad251584d5fb4981be1ecde53a1ca46c891a79788c0df828d2f166bda28", size = 775116, upload-time = "2025-09-25T21:32:13.652Z" }, - { url = "https://files.pythonhosted.org/packages/65/30/d7353c338e12baef4ecc1b09e877c1970bd3382789c159b4f89d6a70dc09/pyyaml-6.0.3-cp312-cp312-manylinux2014_s390x.manylinux_2_17_s390x.manylinux_2_28_s390x.whl", hash = "sha256:5fdec68f91a0c6739b380c83b951e2c72ac0197ace422360e6d5a959d8d97b2c", size = 844011, upload-time = "2025-09-25T21:32:15.21Z" }, - { url = "https://files.pythonhosted.org/packages/8b/9d/b3589d3877982d4f2329302ef98a8026e7f4443c765c46cfecc8858c6b4b/pyyaml-6.0.3-cp312-cp312-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:ba1cc08a7ccde2d2ec775841541641e4548226580ab850948cbfda66a1befcdc", size = 807870, upload-time = "2025-09-25T21:32:16.431Z" }, - { url = "https://files.pythonhosted.org/packages/05/c0/b3be26a015601b822b97d9149ff8cb5ead58c66f981e04fedf4e762f4bd4/pyyaml-6.0.3-cp312-cp312-musllinux_1_2_aarch64.whl", hash = "sha256:8dc52c23056b9ddd46818a57b78404882310fb473d63f17b07d5c40421e47f8e", size = 761089, upload-time = "2025-09-25T21:32:17.56Z" }, - { url = "https://files.pythonhosted.org/packages/be/8e/98435a21d1d4b46590d5459a22d88128103f8da4c2d4cb8f14f2a96504e1/pyyaml-6.0.3-cp312-cp312-musllinux_1_2_x86_64.whl", hash = "sha256:41715c910c881bc081f1e8872880d3c650acf13dfa8214bad49ed4cede7c34ea", size = 790181, upload-time = "2025-09-25T21:32:18.834Z" }, - { url = "https://files.pythonhosted.org/packages/74/93/7baea19427dcfbe1e5a372d81473250b379f04b1bd3c4c5ff825e2327202/pyyaml-6.0.3-cp312-cp312-win32.whl", hash = "sha256:96b533f0e99f6579b3d4d4995707cf36df9100d67e0c8303a0c55b27b5f99bc5", size = 137658, upload-time = "2025-09-25T21:32:20.209Z" }, - { url = "https://files.pythonhosted.org/packages/86/bf/899e81e4cce32febab4fb42bb97dcdf66bc135272882d1987881a4b519e9/pyyaml-6.0.3-cp312-cp312-win_amd64.whl", hash = "sha256:5fcd34e47f6e0b794d17de1b4ff496c00986e1c83f7ab2fb8fcfe9616ff7477b", size = 154003, upload-time = "2025-09-25T21:32:21.167Z" }, - { url = "https://files.pythonhosted.org/packages/1a/08/67bd04656199bbb51dbed1439b7f27601dfb576fb864099c7ef0c3e55531/pyyaml-6.0.3-cp312-cp312-win_arm64.whl", hash = "sha256:64386e5e707d03a7e172c0701abfb7e10f0fb753ee1d773128192742712a98fd", size = 140344, upload-time = "2025-09-25T21:32:22.617Z" }, - { url = "https://files.pythonhosted.org/packages/d1/11/0fd08f8192109f7169db964b5707a2f1e8b745d4e239b784a5a1dd80d1db/pyyaml-6.0.3-cp313-cp313-macosx_10_13_x86_64.whl", hash = "sha256:8da9669d359f02c0b91ccc01cac4a67f16afec0dac22c2ad09f46bee0697eba8", size = 181669, upload-time = "2025-09-25T21:32:23.673Z" }, - { url = "https://files.pythonhosted.org/packages/b1/16/95309993f1d3748cd644e02e38b75d50cbc0d9561d21f390a76242ce073f/pyyaml-6.0.3-cp313-cp313-macosx_11_0_arm64.whl", hash = "sha256:2283a07e2c21a2aa78d9c4442724ec1eb15f5e42a723b99cb3d822d48f5f7ad1", size = 173252, upload-time = "2025-09-25T21:32:25.149Z" }, - { url = "https://files.pythonhosted.org/packages/50/31/b20f376d3f810b9b2371e72ef5adb33879b25edb7a6d072cb7ca0c486398/pyyaml-6.0.3-cp313-cp313-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:ee2922902c45ae8ccada2c5b501ab86c36525b883eff4255313a253a3160861c", size = 767081, upload-time = "2025-09-25T21:32:26.575Z" }, - { url = "https://files.pythonhosted.org/packages/49/1e/a55ca81e949270d5d4432fbbd19dfea5321eda7c41a849d443dc92fd1ff7/pyyaml-6.0.3-cp313-cp313-manylinux2014_s390x.manylinux_2_17_s390x.manylinux_2_28_s390x.whl", hash = "sha256:a33284e20b78bd4a18c8c2282d549d10bc8408a2a7ff57653c0cf0b9be0afce5", size = 841159, upload-time = "2025-09-25T21:32:27.727Z" }, - { url = "https://files.pythonhosted.org/packages/74/27/e5b8f34d02d9995b80abcef563ea1f8b56d20134d8f4e5e81733b1feceb2/pyyaml-6.0.3-cp313-cp313-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:0f29edc409a6392443abf94b9cf89ce99889a1dd5376d94316ae5145dfedd5d6", size = 801626, upload-time = "2025-09-25T21:32:28.878Z" }, - { url = "https://files.pythonhosted.org/packages/f9/11/ba845c23988798f40e52ba45f34849aa8a1f2d4af4b798588010792ebad6/pyyaml-6.0.3-cp313-cp313-musllinux_1_2_aarch64.whl", hash = "sha256:f7057c9a337546edc7973c0d3ba84ddcdf0daa14533c2065749c9075001090e6", size = 753613, upload-time = "2025-09-25T21:32:30.178Z" }, - { url = "https://files.pythonhosted.org/packages/3d/e0/7966e1a7bfc0a45bf0a7fb6b98ea03fc9b8d84fa7f2229e9659680b69ee3/pyyaml-6.0.3-cp313-cp313-musllinux_1_2_x86_64.whl", hash = "sha256:eda16858a3cab07b80edaf74336ece1f986ba330fdb8ee0d6c0d68fe82bc96be", size = 794115, upload-time = "2025-09-25T21:32:31.353Z" }, - { url = "https://files.pythonhosted.org/packages/de/94/980b50a6531b3019e45ddeada0626d45fa85cbe22300844a7983285bed3b/pyyaml-6.0.3-cp313-cp313-win32.whl", hash = "sha256:d0eae10f8159e8fdad514efdc92d74fd8d682c933a6dd088030f3834bc8e6b26", size = 137427, upload-time = "2025-09-25T21:32:32.58Z" }, - { url = "https://files.pythonhosted.org/packages/97/c9/39d5b874e8b28845e4ec2202b5da735d0199dbe5b8fb85f91398814a9a46/pyyaml-6.0.3-cp313-cp313-win_amd64.whl", hash = "sha256:79005a0d97d5ddabfeeea4cf676af11e647e41d81c9a7722a193022accdb6b7c", size = 154090, upload-time = "2025-09-25T21:32:33.659Z" }, - { url = "https://files.pythonhosted.org/packages/73/e8/2bdf3ca2090f68bb3d75b44da7bbc71843b19c9f2b9cb9b0f4ab7a5a4329/pyyaml-6.0.3-cp313-cp313-win_arm64.whl", hash = "sha256:5498cd1645aa724a7c71c8f378eb29ebe23da2fc0d7a08071d89469bf1d2defb", size = 140246, upload-time = "2025-09-25T21:32:34.663Z" }, - { url = "https://files.pythonhosted.org/packages/9d/8c/f4bd7f6465179953d3ac9bc44ac1a8a3e6122cf8ada906b4f96c60172d43/pyyaml-6.0.3-cp314-cp314-macosx_10_13_x86_64.whl", hash = "sha256:8d1fab6bb153a416f9aeb4b8763bc0f22a5586065f86f7664fc23339fc1c1fac", size = 181814, upload-time = "2025-09-25T21:32:35.712Z" }, - { url = "https://files.pythonhosted.org/packages/bd/9c/4d95bb87eb2063d20db7b60faa3840c1b18025517ae857371c4dd55a6b3a/pyyaml-6.0.3-cp314-cp314-macosx_11_0_arm64.whl", hash = "sha256:34d5fcd24b8445fadc33f9cf348c1047101756fd760b4dacb5c3e99755703310", size = 173809, upload-time = "2025-09-25T21:32:36.789Z" }, - { url = "https://files.pythonhosted.org/packages/92/b5/47e807c2623074914e29dabd16cbbdd4bf5e9b2db9f8090fa64411fc5382/pyyaml-6.0.3-cp314-cp314-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:501a031947e3a9025ed4405a168e6ef5ae3126c59f90ce0cd6f2bfc477be31b7", size = 766454, upload-time = "2025-09-25T21:32:37.966Z" }, - { url = "https://files.pythonhosted.org/packages/02/9e/e5e9b168be58564121efb3de6859c452fccde0ab093d8438905899a3a483/pyyaml-6.0.3-cp314-cp314-manylinux2014_s390x.manylinux_2_17_s390x.manylinux_2_28_s390x.whl", hash = "sha256:b3bc83488de33889877a0f2543ade9f70c67d66d9ebb4ac959502e12de895788", size = 836355, upload-time = "2025-09-25T21:32:39.178Z" }, - { url = "https://files.pythonhosted.org/packages/88/f9/16491d7ed2a919954993e48aa941b200f38040928474c9e85ea9e64222c3/pyyaml-6.0.3-cp314-cp314-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:c458b6d084f9b935061bc36216e8a69a7e293a2f1e68bf956dcd9e6cbcd143f5", size = 794175, upload-time = "2025-09-25T21:32:40.865Z" }, - { url = "https://files.pythonhosted.org/packages/dd/3f/5989debef34dc6397317802b527dbbafb2b4760878a53d4166579111411e/pyyaml-6.0.3-cp314-cp314-musllinux_1_2_aarch64.whl", hash = "sha256:7c6610def4f163542a622a73fb39f534f8c101d690126992300bf3207eab9764", size = 755228, upload-time = "2025-09-25T21:32:42.084Z" }, - { url = "https://files.pythonhosted.org/packages/d7/ce/af88a49043cd2e265be63d083fc75b27b6ed062f5f9fd6cdc223ad62f03e/pyyaml-6.0.3-cp314-cp314-musllinux_1_2_x86_64.whl", hash = "sha256:5190d403f121660ce8d1d2c1bb2ef1bd05b5f68533fc5c2ea899bd15f4399b35", size = 789194, upload-time = "2025-09-25T21:32:43.362Z" }, - { url = "https://files.pythonhosted.org/packages/23/20/bb6982b26a40bb43951265ba29d4c246ef0ff59c9fdcdf0ed04e0687de4d/pyyaml-6.0.3-cp314-cp314-win_amd64.whl", hash = "sha256:4a2e8cebe2ff6ab7d1050ecd59c25d4c8bd7e6f400f5f82b96557ac0abafd0ac", size = 156429, upload-time = "2025-09-25T21:32:57.844Z" }, - { url = "https://files.pythonhosted.org/packages/f4/f4/a4541072bb9422c8a883ab55255f918fa378ecf083f5b85e87fc2b4eda1b/pyyaml-6.0.3-cp314-cp314-win_arm64.whl", hash = "sha256:93dda82c9c22deb0a405ea4dc5f2d0cda384168e466364dec6255b293923b2f3", size = 143912, upload-time = "2025-09-25T21:32:59.247Z" }, - { url = "https://files.pythonhosted.org/packages/7c/f9/07dd09ae774e4616edf6cda684ee78f97777bdd15847253637a6f052a62f/pyyaml-6.0.3-cp314-cp314t-macosx_10_13_x86_64.whl", hash = "sha256:02893d100e99e03eda1c8fd5c441d8c60103fd175728e23e431db1b589cf5ab3", size = 189108, upload-time = "2025-09-25T21:32:44.377Z" }, - { url = "https://files.pythonhosted.org/packages/4e/78/8d08c9fb7ce09ad8c38ad533c1191cf27f7ae1effe5bb9400a46d9437fcf/pyyaml-6.0.3-cp314-cp314t-macosx_11_0_arm64.whl", hash = "sha256:c1ff362665ae507275af2853520967820d9124984e0f7466736aea23d8611fba", size = 183641, upload-time = "2025-09-25T21:32:45.407Z" }, - { url = "https://files.pythonhosted.org/packages/7b/5b/3babb19104a46945cf816d047db2788bcaf8c94527a805610b0289a01c6b/pyyaml-6.0.3-cp314-cp314t-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:6adc77889b628398debc7b65c073bcb99c4a0237b248cacaf3fe8a557563ef6c", size = 831901, upload-time = "2025-09-25T21:32:48.83Z" }, - { url = "https://files.pythonhosted.org/packages/8b/cc/dff0684d8dc44da4d22a13f35f073d558c268780ce3c6ba1b87055bb0b87/pyyaml-6.0.3-cp314-cp314t-manylinux2014_s390x.manylinux_2_17_s390x.manylinux_2_28_s390x.whl", hash = "sha256:a80cb027f6b349846a3bf6d73b5e95e782175e52f22108cfa17876aaeff93702", size = 861132, upload-time = "2025-09-25T21:32:50.149Z" }, - { url = "https://files.pythonhosted.org/packages/b1/5e/f77dc6b9036943e285ba76b49e118d9ea929885becb0a29ba8a7c75e29fe/pyyaml-6.0.3-cp314-cp314t-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:00c4bdeba853cc34e7dd471f16b4114f4162dc03e6b7afcc2128711f0eca823c", size = 839261, upload-time = "2025-09-25T21:32:51.808Z" }, - { url = "https://files.pythonhosted.org/packages/ce/88/a9db1376aa2a228197c58b37302f284b5617f56a5d959fd1763fb1675ce6/pyyaml-6.0.3-cp314-cp314t-musllinux_1_2_aarch64.whl", hash = "sha256:66e1674c3ef6f541c35191caae2d429b967b99e02040f5ba928632d9a7f0f065", size = 805272, upload-time = "2025-09-25T21:32:52.941Z" }, - { url = "https://files.pythonhosted.org/packages/da/92/1446574745d74df0c92e6aa4a7b0b3130706a4142b2d1a5869f2eaa423c6/pyyaml-6.0.3-cp314-cp314t-musllinux_1_2_x86_64.whl", hash = "sha256:16249ee61e95f858e83976573de0f5b2893b3677ba71c9dd36b9cf8be9ac6d65", size = 829923, upload-time = "2025-09-25T21:32:54.537Z" }, - { url = "https://files.pythonhosted.org/packages/f0/7a/1c7270340330e575b92f397352af856a8c06f230aa3e76f86b39d01b416a/pyyaml-6.0.3-cp314-cp314t-win_amd64.whl", hash = "sha256:4ad1906908f2f5ae4e5a8ddfce73c320c2a1429ec52eafd27138b7f1cbe341c9", size = 174062, upload-time = "2025-09-25T21:32:55.767Z" }, - { url = "https://files.pythonhosted.org/packages/f1/12/de94a39c2ef588c7e6455cfbe7343d3b2dc9d6b6b2f40c4c6565744c873d/pyyaml-6.0.3-cp314-cp314t-win_arm64.whl", hash = "sha256:ebc55a14a21cb14062aa4162f906cd962b28e2e9ea38f9b4391244cd8de4ae0b", size = 149341, upload-time = "2025-09-25T21:32:56.828Z" }, -] - -[[package]] -name = "requests" -version = "2.32.5" -source = { registry = "https://pypi.org/simple" } -dependencies = [ - { name = "certifi" }, - { name = "charset-normalizer" }, - { name = "idna" }, - { name = "urllib3" }, -] -sdist = { url = "https://files.pythonhosted.org/packages/c9/74/b3ff8e6c8446842c3f5c837e9c3dfcfe2018ea6ecef224c710c85ef728f4/requests-2.32.5.tar.gz", hash = "sha256:dbba0bac56e100853db0ea71b82b4dfd5fe2bf6d3754a8893c3af500cec7d7cf", size = 134517, upload-time = "2025-08-18T20:46:02.573Z" } -wheels = [ - { url = "https://files.pythonhosted.org/packages/1e/db/4254e3eabe8020b458f1a747140d32277ec7a271daf1d235b70dc0b4e6e3/requests-2.32.5-py3-none-any.whl", hash = "sha256:2462f94637a34fd532264295e186976db0f5d453d1cdd31473c85a6a161affb6", size = 64738, upload-time = "2025-08-18T20:46:00.542Z" }, -] - -[[package]] -name = "requests-toolbelt" -version = "1.0.0" -source = { registry = "https://pypi.org/simple" } -dependencies = [ - { name = "requests" }, -] -sdist = { url = "https://files.pythonhosted.org/packages/f3/61/d7545dafb7ac2230c70d38d31cbfe4cc64f7144dc41f6e4e4b78ecd9f5bb/requests-toolbelt-1.0.0.tar.gz", hash = "sha256:7681a0a3d047012b5bdc0ee37d7f8f07ebe76ab08caeccfc3921ce23c88d5bc6", size = 206888, upload-time = "2023-05-01T04:11:33.229Z" } -wheels = [ - { url = "https://files.pythonhosted.org/packages/3f/51/d4db610ef29373b879047326cbf6fa98b6c1969d6f6dc423279de2b1be2c/requests_toolbelt-1.0.0-py2.py3-none-any.whl", hash = "sha256:cccfdd665f0a24fcf4726e690f65639d272bb0637b9b92dfd91a5568ccf6bd06", size = 54481, upload-time = "2023-05-01T04:11:28.427Z" }, -] - -[[package]] -name = "rich" -version = "14.1.0" -source = { registry = "https://pypi.org/simple" } -dependencies = [ - { name = "markdown-it-py" }, - { name = "pygments" }, -] -sdist = { url = "https://files.pythonhosted.org/packages/fe/75/af448d8e52bf1d8fa6a9d089ca6c07ff4453d86c65c145d0a300bb073b9b/rich-14.1.0.tar.gz", hash = "sha256:e497a48b844b0320d45007cdebfeaeed8db2a4f4bcf49f15e455cfc4af11eaa8", size = 224441, upload-time = "2025-07-25T07:32:58.125Z" } -wheels = [ - { url = "https://files.pythonhosted.org/packages/e3/30/3c4d035596d3cf444529e0b2953ad0466f6049528a879d27534700580395/rich-14.1.0-py3-none-any.whl", hash = "sha256:536f5f1785986d6dbdea3c75205c473f970777b4a0d6c6dd1b696aa05a3fa04f", size = 243368, upload-time = "2025-07-25T07:32:56.73Z" }, -] - -[[package]] -name = "ruff" -version = "0.14.11" -source = { registry = "https://pypi.org/simple" } -sdist = { url = "https://files.pythonhosted.org/packages/d4/77/9a7fe084d268f8855d493e5031ea03fa0af8cc05887f638bf1c4e3363eb8/ruff-0.14.11.tar.gz", hash = "sha256:f6dc463bfa5c07a59b1ff2c3b9767373e541346ea105503b4c0369c520a66958", size = 5993417, upload-time = "2026-01-08T19:11:58.322Z" } -wheels = [ - { url = "https://files.pythonhosted.org/packages/f0/a6/a4c40a5aaa7e331f245d2dc1ac8ece306681f52b636b40ef87c88b9f7afd/ruff-0.14.11-py3-none-linux_armv6l.whl", hash = "sha256:f6ff2d95cbd335841a7217bdfd9c1d2e44eac2c584197ab1385579d55ff8830e", size = 12951208, upload-time = "2026-01-08T19:12:09.218Z" }, - { url = "https://files.pythonhosted.org/packages/5c/5c/360a35cb7204b328b685d3129c08aca24765ff92b5a7efedbdd6c150d555/ruff-0.14.11-py3-none-macosx_10_12_x86_64.whl", hash = "sha256:6f6eb5c1c8033680f4172ea9c8d3706c156223010b8b97b05e82c59bdc774ee6", size = 13330075, upload-time = "2026-01-08T19:12:02.549Z" }, - { url = "https://files.pythonhosted.org/packages/1b/9e/0cc2f1be7a7d33cae541824cf3f95b4ff40d03557b575912b5b70273c9ec/ruff-0.14.11-py3-none-macosx_11_0_arm64.whl", hash = "sha256:f2fc34cc896f90080fca01259f96c566f74069a04b25b6205d55379d12a6855e", size = 12257809, upload-time = "2026-01-08T19:12:00.366Z" }, - { url = "https://files.pythonhosted.org/packages/a7/e5/5faab97c15bb75228d9f74637e775d26ac703cc2b4898564c01ab3637c02/ruff-0.14.11-py3-none-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:53386375001773ae812b43205d6064dae49ff0968774e6befe16a994fc233caa", size = 12678447, upload-time = "2026-01-08T19:12:13.899Z" }, - { url = "https://files.pythonhosted.org/packages/1b/33/e9767f60a2bef779fb5855cab0af76c488e0ce90f7bb7b8a45c8a2ba4178/ruff-0.14.11-py3-none-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:a697737dce1ca97a0a55b5ff0434ee7205943d4874d638fe3ae66166ff46edbe", size = 12758560, upload-time = "2026-01-08T19:11:42.55Z" }, - { url = "https://files.pythonhosted.org/packages/eb/84/4c6cf627a21462bb5102f7be2a320b084228ff26e105510cd2255ea868e5/ruff-0.14.11-py3-none-manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:6845ca1da8ab81ab1dce755a32ad13f1db72e7fba27c486d5d90d65e04d17b8f", size = 13599296, upload-time = "2026-01-08T19:11:30.371Z" }, - { url = "https://files.pythonhosted.org/packages/88/e1/92b5ed7ea66d849f6157e695dc23d5d6d982bd6aa8d077895652c38a7cae/ruff-0.14.11-py3-none-manylinux_2_17_ppc64.manylinux2014_ppc64.whl", hash = "sha256:e36ce2fd31b54065ec6f76cb08d60159e1b32bdf08507862e32f47e6dde8bcbf", size = 15048981, upload-time = "2026-01-08T19:12:04.742Z" }, - { url = "https://files.pythonhosted.org/packages/61/df/c1bd30992615ac17c2fb64b8a7376ca22c04a70555b5d05b8f717163cf9f/ruff-0.14.11-py3-none-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:590bcc0e2097ecf74e62a5c10a6b71f008ad82eb97b0a0079e85defe19fe74d9", size = 14633183, upload-time = "2026-01-08T19:11:40.069Z" }, - { url = "https://files.pythonhosted.org/packages/04/e9/fe552902f25013dd28a5428a42347d9ad20c4b534834a325a28305747d64/ruff-0.14.11-py3-none-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:53fe71125fc158210d57fe4da26e622c9c294022988d08d9347ec1cf782adafe", size = 14050453, upload-time = "2026-01-08T19:11:37.555Z" }, - { url = "https://files.pythonhosted.org/packages/ae/93/f36d89fa021543187f98991609ce6e47e24f35f008dfe1af01379d248a41/ruff-0.14.11-py3-none-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:a35c9da08562f1598ded8470fcfef2afb5cf881996e6c0a502ceb61f4bc9c8a3", size = 13757889, upload-time = "2026-01-08T19:12:07.094Z" }, - { url = "https://files.pythonhosted.org/packages/b7/9f/c7fb6ecf554f28709a6a1f2a7f74750d400979e8cd47ed29feeaa1bd4db8/ruff-0.14.11-py3-none-manylinux_2_31_riscv64.whl", hash = "sha256:0f3727189a52179393ecf92ec7057c2210203e6af2676f08d92140d3e1ee72c1", size = 13955832, upload-time = "2026-01-08T19:11:55.064Z" }, - { url = "https://files.pythonhosted.org/packages/db/a0/153315310f250f76900a98278cf878c64dfb6d044e184491dd3289796734/ruff-0.14.11-py3-none-musllinux_1_2_aarch64.whl", hash = "sha256:eb09f849bd37147a789b85995ff734a6c4a095bed5fd1608c4f56afc3634cde2", size = 12586522, upload-time = "2026-01-08T19:11:35.356Z" }, - { url = "https://files.pythonhosted.org/packages/2f/2b/a73a2b6e6d2df1d74bf2b78098be1572191e54bec0e59e29382d13c3adc5/ruff-0.14.11-py3-none-musllinux_1_2_armv7l.whl", hash = "sha256:c61782543c1231bf71041461c1f28c64b961d457d0f238ac388e2ab173d7ecb7", size = 12724637, upload-time = "2026-01-08T19:11:47.796Z" }, - { url = "https://files.pythonhosted.org/packages/f0/41/09100590320394401cd3c48fc718a8ba71c7ddb1ffd07e0ad6576b3a3df2/ruff-0.14.11-py3-none-musllinux_1_2_i686.whl", hash = "sha256:82ff352ea68fb6766140381748e1f67f83c39860b6446966cff48a315c3e2491", size = 13145837, upload-time = "2026-01-08T19:11:32.87Z" }, - { url = "https://files.pythonhosted.org/packages/3b/d8/e035db859d1d3edf909381eb8ff3e89a672d6572e9454093538fe6f164b0/ruff-0.14.11-py3-none-musllinux_1_2_x86_64.whl", hash = "sha256:728e56879df4ca5b62a9dde2dd0eb0edda2a55160c0ea28c4025f18c03f86984", size = 13850469, upload-time = "2026-01-08T19:12:11.694Z" }, - { url = "https://files.pythonhosted.org/packages/4e/02/bb3ff8b6e6d02ce9e3740f4c17dfbbfb55f34c789c139e9cd91985f356c7/ruff-0.14.11-py3-none-win32.whl", hash = "sha256:337c5dd11f16ee52ae217757d9b82a26400be7efac883e9e852646f1557ed841", size = 12851094, upload-time = "2026-01-08T19:11:45.163Z" }, - { url = "https://files.pythonhosted.org/packages/58/f1/90ddc533918d3a2ad628bc3044cdfc094949e6d4b929220c3f0eb8a1c998/ruff-0.14.11-py3-none-win_amd64.whl", hash = "sha256:f981cea63d08456b2c070e64b79cb62f951aa1305282974d4d5216e6e0178ae6", size = 14001379, upload-time = "2026-01-08T19:11:52.591Z" }, - { url = "https://files.pythonhosted.org/packages/c4/1c/1dbe51782c0e1e9cfce1d1004752672d2d4629ea46945d19d731ad772b3b/ruff-0.14.11-py3-none-win_arm64.whl", hash = "sha256:649fb6c9edd7f751db276ef42df1f3df41c38d67d199570ae2a7bd6cbc3590f0", size = 12938644, upload-time = "2026-01-08T19:11:50.027Z" }, -] - -[[package]] -name = "shellingham" -version = "1.5.4" -source = { registry = "https://pypi.org/simple" } -sdist = { url = "https://files.pythonhosted.org/packages/58/15/8b3609fd3830ef7b27b655beb4b4e9c62313a4e8da8c676e142cc210d58e/shellingham-1.5.4.tar.gz", hash = "sha256:8dbca0739d487e5bd35ab3ca4b36e11c4078f3a234bfce294b0a0291363404de", size = 10310, upload-time = "2023-10-24T04:13:40.426Z" } -wheels = [ - { url = "https://files.pythonhosted.org/packages/e0/f9/0595336914c5619e5f28a1fb793285925a8cd4b432c9da0a987836c7f822/shellingham-1.5.4-py2.py3-none-any.whl", hash = "sha256:7ecfff8f2fd72616f7481040475a65b2bf8af90a56c89140852d1120324e8686", size = 9755, upload-time = "2023-10-24T04:13:38.866Z" }, -] - -[[package]] -name = "smmap" -version = "5.0.2" -source = { registry = "https://pypi.org/simple" } -sdist = { url = "https://files.pythonhosted.org/packages/44/cd/a040c4b3119bbe532e5b0732286f805445375489fceaec1f48306068ee3b/smmap-5.0.2.tar.gz", hash = "sha256:26ea65a03958fa0c8a1c7e8c7a58fdc77221b8910f6be2131affade476898ad5", size = 22329, upload-time = "2025-01-02T07:14:40.909Z" } -wheels = [ - { url = "https://files.pythonhosted.org/packages/04/be/d09147ad1ec7934636ad912901c5fd7667e1c858e19d355237db0d0cd5e4/smmap-5.0.2-py3-none-any.whl", hash = "sha256:b30115f0def7d7531d22a0fb6502488d879e75b260a9db4d0819cfb25403af5e", size = 24303, upload-time = "2025-01-02T07:14:38.724Z" }, -] - -[[package]] -name = "sniffio" -version = "1.3.1" -source = { registry = "https://pypi.org/simple" } -sdist = { url = "https://files.pythonhosted.org/packages/a2/87/a6771e1546d97e7e041b6ae58d80074f81b7d5121207425c964ddf5cfdbd/sniffio-1.3.1.tar.gz", hash = "sha256:f4324edc670a0f49750a81b895f35c3adb843cca46f0530f79fc1babb23789dc", size = 20372, upload-time = "2024-02-25T23:20:04.057Z" } -wheels = [ - { url = "https://files.pythonhosted.org/packages/e9/44/75a9c9421471a6c4805dbf2356f7c181a29c1879239abab1ea2cc8f38b40/sniffio-1.3.1-py3-none-any.whl", hash = "sha256:2f6da418d1f1e0fddd844478f41680e794e6051915791a034ff65e5f100525a2", size = 10235, upload-time = "2024-02-25T23:20:01.196Z" }, -] - -[[package]] -name = "sqlalchemy" -version = "2.0.43" -source = { registry = "https://pypi.org/simple" } -dependencies = [ - { name = "greenlet", marker = "(python_full_version < '3.14' and platform_machine == 'AMD64') or (python_full_version < '3.14' and platform_machine == 'WIN32') or (python_full_version < '3.14' and platform_machine == 'aarch64') or (python_full_version < '3.14' and platform_machine == 'amd64') or (python_full_version < '3.14' and platform_machine == 'ppc64le') or (python_full_version < '3.14' and platform_machine == 'win32') or (python_full_version < '3.14' and platform_machine == 'x86_64')" }, - { name = "typing-extensions" }, -] -sdist = { url = "https://files.pythonhosted.org/packages/d7/bc/d59b5d97d27229b0e009bd9098cd81af71c2fa5549c580a0a67b9bed0496/sqlalchemy-2.0.43.tar.gz", hash = "sha256:788bfcef6787a7764169cfe9859fe425bf44559619e1d9f56f5bddf2ebf6f417", size = 9762949, upload-time = "2025-08-11T14:24:58.438Z" } -wheels = [ - { url = "https://files.pythonhosted.org/packages/8f/4e/985f7da36f09592c5ade99321c72c15101d23c0bb7eecfd1daaca5714422/sqlalchemy-2.0.43-cp310-cp310-macosx_10_9_x86_64.whl", hash = "sha256:70322986c0c699dca241418fcf18e637a4369e0ec50540a2b907b184c8bca069", size = 2133162, upload-time = "2025-08-11T15:52:17.854Z" }, - { url = "https://files.pythonhosted.org/packages/37/34/798af8db3cae069461e3bc0898a1610dc469386a97048471d364dc8aae1c/sqlalchemy-2.0.43-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:87accdbba88f33efa7b592dc2e8b2a9c2cdbca73db2f9d5c510790428c09c154", size = 2123082, upload-time = "2025-08-11T15:52:19.181Z" }, - { url = "https://files.pythonhosted.org/packages/fb/0f/79cf4d9dad42f61ec5af1e022c92f66c2d110b93bb1dc9b033892971abfa/sqlalchemy-2.0.43-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:c00e7845d2f692ebfc7d5e4ec1a3fd87698e4337d09e58d6749a16aedfdf8612", size = 3208871, upload-time = "2025-08-11T15:50:30.656Z" }, - { url = "https://files.pythonhosted.org/packages/56/b3/59befa58fb0e1a9802c87df02344548e6d007e77e87e6084e2131c29e033/sqlalchemy-2.0.43-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:022e436a1cb39b13756cf93b48ecce7aa95382b9cfacceb80a7d263129dfd019", size = 3209583, upload-time = "2025-08-11T15:57:47.697Z" }, - { url = "https://files.pythonhosted.org/packages/29/d2/124b50c0eb8146e8f0fe16d01026c1a073844f0b454436d8544fe9b33bd7/sqlalchemy-2.0.43-cp310-cp310-musllinux_1_2_aarch64.whl", hash = "sha256:c5e73ba0d76eefc82ec0219d2301cb33bfe5205ed7a2602523111e2e56ccbd20", size = 3148177, upload-time = "2025-08-11T15:50:32.078Z" }, - { url = "https://files.pythonhosted.org/packages/83/f5/e369cd46aa84278107624617034a5825fedfc5c958b2836310ced4d2eadf/sqlalchemy-2.0.43-cp310-cp310-musllinux_1_2_x86_64.whl", hash = "sha256:9c2e02f06c68092b875d5cbe4824238ab93a7fa35d9c38052c033f7ca45daa18", size = 3172276, upload-time = "2025-08-11T15:57:49.477Z" }, - { url = "https://files.pythonhosted.org/packages/de/2b/4602bf4c3477fa4c837c9774e6dd22e0389fc52310c4c4dfb7e7ba05e90d/sqlalchemy-2.0.43-cp310-cp310-win32.whl", hash = "sha256:e7a903b5b45b0d9fa03ac6a331e1c1d6b7e0ab41c63b6217b3d10357b83c8b00", size = 2101491, upload-time = "2025-08-11T15:54:59.191Z" }, - { url = "https://files.pythonhosted.org/packages/38/2d/bfc6b6143adef553a08295490ddc52607ee435b9c751c714620c1b3dd44d/sqlalchemy-2.0.43-cp310-cp310-win_amd64.whl", hash = "sha256:4bf0edb24c128b7be0c61cd17eef432e4bef507013292415f3fb7023f02b7d4b", size = 2125148, upload-time = "2025-08-11T15:55:00.593Z" }, - { url = "https://files.pythonhosted.org/packages/9d/77/fa7189fe44114658002566c6fe443d3ed0ec1fa782feb72af6ef7fbe98e7/sqlalchemy-2.0.43-cp311-cp311-macosx_10_9_x86_64.whl", hash = "sha256:52d9b73b8fb3e9da34c2b31e6d99d60f5f99fd8c1225c9dad24aeb74a91e1d29", size = 2136472, upload-time = "2025-08-11T15:52:21.789Z" }, - { url = "https://files.pythonhosted.org/packages/99/ea/92ac27f2fbc2e6c1766bb807084ca455265707e041ba027c09c17d697867/sqlalchemy-2.0.43-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:f42f23e152e4545157fa367b2435a1ace7571cab016ca26038867eb7df2c3631", size = 2126535, upload-time = "2025-08-11T15:52:23.109Z" }, - { url = "https://files.pythonhosted.org/packages/94/12/536ede80163e295dc57fff69724caf68f91bb40578b6ac6583a293534849/sqlalchemy-2.0.43-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:4fb1a8c5438e0c5ea51afe9c6564f951525795cf432bed0c028c1cb081276685", size = 3297521, upload-time = "2025-08-11T15:50:33.536Z" }, - { url = "https://files.pythonhosted.org/packages/03/b5/cacf432e6f1fc9d156eca0560ac61d4355d2181e751ba8c0cd9cb232c8c1/sqlalchemy-2.0.43-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:db691fa174e8f7036afefe3061bc40ac2b770718be2862bfb03aabae09051aca", size = 3297343, upload-time = "2025-08-11T15:57:51.186Z" }, - { url = "https://files.pythonhosted.org/packages/ca/ba/d4c9b526f18457667de4c024ffbc3a0920c34237b9e9dd298e44c7c00ee5/sqlalchemy-2.0.43-cp311-cp311-musllinux_1_2_aarch64.whl", hash = "sha256:fe2b3b4927d0bc03d02ad883f402d5de201dbc8894ac87d2e981e7d87430e60d", size = 3232113, upload-time = "2025-08-11T15:50:34.949Z" }, - { url = "https://files.pythonhosted.org/packages/aa/79/c0121b12b1b114e2c8a10ea297a8a6d5367bc59081b2be896815154b1163/sqlalchemy-2.0.43-cp311-cp311-musllinux_1_2_x86_64.whl", hash = "sha256:4d3d9b904ad4a6b175a2de0738248822f5ac410f52c2fd389ada0b5262d6a1e3", size = 3258240, upload-time = "2025-08-11T15:57:52.983Z" }, - { url = "https://files.pythonhosted.org/packages/79/99/a2f9be96fb382f3ba027ad42f00dbe30fdb6ba28cda5f11412eee346bec5/sqlalchemy-2.0.43-cp311-cp311-win32.whl", hash = "sha256:5cda6b51faff2639296e276591808c1726c4a77929cfaa0f514f30a5f6156921", size = 2101248, upload-time = "2025-08-11T15:55:01.855Z" }, - { url = "https://files.pythonhosted.org/packages/ee/13/744a32ebe3b4a7a9c7ea4e57babae7aa22070d47acf330d8e5a1359607f1/sqlalchemy-2.0.43-cp311-cp311-win_amd64.whl", hash = "sha256:c5d1730b25d9a07727d20ad74bc1039bbbb0a6ca24e6769861c1aa5bf2c4c4a8", size = 2126109, upload-time = "2025-08-11T15:55:04.092Z" }, - { url = "https://files.pythonhosted.org/packages/61/db/20c78f1081446095450bdc6ee6cc10045fce67a8e003a5876b6eaafc5cc4/sqlalchemy-2.0.43-cp312-cp312-macosx_10_13_x86_64.whl", hash = "sha256:20d81fc2736509d7a2bd33292e489b056cbae543661bb7de7ce9f1c0cd6e7f24", size = 2134891, upload-time = "2025-08-11T15:51:13.019Z" }, - { url = "https://files.pythonhosted.org/packages/45/0a/3d89034ae62b200b4396f0f95319f7d86e9945ee64d2343dcad857150fa2/sqlalchemy-2.0.43-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:25b9fc27650ff5a2c9d490c13c14906b918b0de1f8fcbb4c992712d8caf40e83", size = 2123061, upload-time = "2025-08-11T15:51:14.319Z" }, - { url = "https://files.pythonhosted.org/packages/cb/10/2711f7ff1805919221ad5bee205971254845c069ee2e7036847103ca1e4c/sqlalchemy-2.0.43-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:6772e3ca8a43a65a37c88e2f3e2adfd511b0b1da37ef11ed78dea16aeae85bd9", size = 3320384, upload-time = "2025-08-11T15:52:35.088Z" }, - { url = "https://files.pythonhosted.org/packages/6e/0e/3d155e264d2ed2778484006ef04647bc63f55b3e2d12e6a4f787747b5900/sqlalchemy-2.0.43-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:1a113da919c25f7f641ffbd07fbc9077abd4b3b75097c888ab818f962707eb48", size = 3329648, upload-time = "2025-08-11T15:56:34.153Z" }, - { url = "https://files.pythonhosted.org/packages/5b/81/635100fb19725c931622c673900da5efb1595c96ff5b441e07e3dd61f2be/sqlalchemy-2.0.43-cp312-cp312-musllinux_1_2_aarch64.whl", hash = "sha256:4286a1139f14b7d70141c67a8ae1582fc2b69105f1b09d9573494eb4bb4b2687", size = 3258030, upload-time = "2025-08-11T15:52:36.933Z" }, - { url = "https://files.pythonhosted.org/packages/0c/ed/a99302716d62b4965fded12520c1cbb189f99b17a6d8cf77611d21442e47/sqlalchemy-2.0.43-cp312-cp312-musllinux_1_2_x86_64.whl", hash = "sha256:529064085be2f4d8a6e5fab12d36ad44f1909a18848fcfbdb59cc6d4bbe48efe", size = 3294469, upload-time = "2025-08-11T15:56:35.553Z" }, - { url = "https://files.pythonhosted.org/packages/5d/a2/3a11b06715149bf3310b55a98b5c1e84a42cfb949a7b800bc75cb4e33abc/sqlalchemy-2.0.43-cp312-cp312-win32.whl", hash = "sha256:b535d35dea8bbb8195e7e2b40059e2253acb2b7579b73c1b432a35363694641d", size = 2098906, upload-time = "2025-08-11T15:55:00.645Z" }, - { url = "https://files.pythonhosted.org/packages/bc/09/405c915a974814b90aa591280623adc6ad6b322f61fd5cff80aeaef216c9/sqlalchemy-2.0.43-cp312-cp312-win_amd64.whl", hash = "sha256:1c6d85327ca688dbae7e2b06d7d84cfe4f3fffa5b5f9e21bb6ce9d0e1a0e0e0a", size = 2126260, upload-time = "2025-08-11T15:55:02.965Z" }, - { url = "https://files.pythonhosted.org/packages/41/1c/a7260bd47a6fae7e03768bf66451437b36451143f36b285522b865987ced/sqlalchemy-2.0.43-cp313-cp313-macosx_10_13_x86_64.whl", hash = "sha256:e7c08f57f75a2bb62d7ee80a89686a5e5669f199235c6d1dac75cd59374091c3", size = 2130598, upload-time = "2025-08-11T15:51:15.903Z" }, - { url = "https://files.pythonhosted.org/packages/8e/84/8a337454e82388283830b3586ad7847aa9c76fdd4f1df09cdd1f94591873/sqlalchemy-2.0.43-cp313-cp313-macosx_11_0_arm64.whl", hash = "sha256:14111d22c29efad445cd5021a70a8b42f7d9152d8ba7f73304c4d82460946aaa", size = 2118415, upload-time = "2025-08-11T15:51:17.256Z" }, - { url = "https://files.pythonhosted.org/packages/cf/ff/22ab2328148492c4d71899d62a0e65370ea66c877aea017a244a35733685/sqlalchemy-2.0.43-cp313-cp313-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:21b27b56eb2f82653168cefe6cb8e970cdaf4f3a6cb2c5e3c3c1cf3158968ff9", size = 3248707, upload-time = "2025-08-11T15:52:38.444Z" }, - { url = "https://files.pythonhosted.org/packages/dc/29/11ae2c2b981de60187f7cbc84277d9d21f101093d1b2e945c63774477aba/sqlalchemy-2.0.43-cp313-cp313-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:9c5a9da957c56e43d72126a3f5845603da00e0293720b03bde0aacffcf2dc04f", size = 3253602, upload-time = "2025-08-11T15:56:37.348Z" }, - { url = "https://files.pythonhosted.org/packages/b8/61/987b6c23b12c56d2be451bc70900f67dd7d989d52b1ee64f239cf19aec69/sqlalchemy-2.0.43-cp313-cp313-musllinux_1_2_aarch64.whl", hash = "sha256:5d79f9fdc9584ec83d1b3c75e9f4595c49017f5594fee1a2217117647225d738", size = 3183248, upload-time = "2025-08-11T15:52:39.865Z" }, - { url = "https://files.pythonhosted.org/packages/86/85/29d216002d4593c2ce1c0ec2cec46dda77bfbcd221e24caa6e85eff53d89/sqlalchemy-2.0.43-cp313-cp313-musllinux_1_2_x86_64.whl", hash = "sha256:9df7126fd9db49e3a5a3999442cc67e9ee8971f3cb9644250107d7296cb2a164", size = 3219363, upload-time = "2025-08-11T15:56:39.11Z" }, - { url = "https://files.pythonhosted.org/packages/b6/e4/bd78b01919c524f190b4905d47e7630bf4130b9f48fd971ae1c6225b6f6a/sqlalchemy-2.0.43-cp313-cp313-win32.whl", hash = "sha256:7f1ac7828857fcedb0361b48b9ac4821469f7694089d15550bbcf9ab22564a1d", size = 2096718, upload-time = "2025-08-11T15:55:05.349Z" }, - { url = "https://files.pythonhosted.org/packages/ac/a5/ca2f07a2a201f9497de1928f787926613db6307992fe5cda97624eb07c2f/sqlalchemy-2.0.43-cp313-cp313-win_amd64.whl", hash = "sha256:971ba928fcde01869361f504fcff3b7143b47d30de188b11c6357c0505824197", size = 2123200, upload-time = "2025-08-11T15:55:07.932Z" }, - { url = "https://files.pythonhosted.org/packages/b8/d9/13bdde6521f322861fab67473cec4b1cc8999f3871953531cf61945fad92/sqlalchemy-2.0.43-py3-none-any.whl", hash = "sha256:1681c21dd2ccee222c2fe0bef671d1aef7c504087c9c4e800371cfcc8ac966fc", size = 1924759, upload-time = "2025-08-11T15:39:53.024Z" }, -] - -[[package]] -name = "sse-starlette" -version = "1.8.2" -source = { registry = "https://pypi.org/simple" } -dependencies = [ - { name = "anyio" }, - { name = "fastapi" }, - { name = "starlette" }, - { name = "uvicorn" }, -] -sdist = { url = "https://files.pythonhosted.org/packages/18/5b/f703fd3d1b3207e49b6f992b6c4a72b79a3602129f8ebb0dd8feaa8bc52f/sse_starlette-1.8.2.tar.gz", hash = "sha256:e0f9b8dec41adc092a0a6e0694334bd3cfd3084c44c497a6ebc1fb4bdd919acd", size = 17159, upload-time = "2023-11-25T09:53:47.105Z" } -wheels = [ - { url = "https://files.pythonhosted.org/packages/34/7e/d6087916bf58a4343459b47807a116a3a755e6ddd4857f375547e00f6252/sse_starlette-1.8.2-py3-none-any.whl", hash = "sha256:70cc7ef5aca4abe8a25dec1284cce4fe644dd7bf0c406d3e852e516092b7f849", size = 8928, upload-time = "2023-11-25T09:53:44.857Z" }, -] - -[[package]] -name = "starlette" -version = "0.49.1" -source = { registry = "https://pypi.org/simple" } -dependencies = [ - { name = "anyio" }, - { name = "typing-extensions", marker = "python_full_version < '3.13'" }, -] -sdist = { url = "https://files.pythonhosted.org/packages/1b/3f/507c21db33b66fb027a332f2cb3abbbe924cc3a79ced12f01ed8645955c9/starlette-0.49.1.tar.gz", hash = "sha256:481a43b71e24ed8c43b11ea02f5353d77840e01480881b8cb5a26b8cae64a8cb", size = 2654703, upload-time = "2025-10-28T17:34:10.928Z" } -wheels = [ - { url = "https://files.pythonhosted.org/packages/51/da/545b75d420bb23b5d494b0517757b351963e974e79933f01e05c929f20a6/starlette-0.49.1-py3-none-any.whl", hash = "sha256:d92ce9f07e4a3caa3ac13a79523bd18e3bc0042bb8ff2d759a8e7dd0e1859875", size = 74175, upload-time = "2025-10-28T17:34:09.13Z" }, -] - -[[package]] -name = "tenacity" -version = "9.1.2" -source = { registry = "https://pypi.org/simple" } -sdist = { url = "https://files.pythonhosted.org/packages/0a/d4/2b0cd0fe285e14b36db076e78c93766ff1d529d70408bd1d2a5a84f1d929/tenacity-9.1.2.tar.gz", hash = "sha256:1169d376c297e7de388d18b4481760d478b0e99a777cad3a9c86e556f4b697cb", size = 48036, upload-time = "2025-04-02T08:25:09.966Z" } -wheels = [ - { url = "https://files.pythonhosted.org/packages/e5/30/643397144bfbfec6f6ef821f36f33e57d35946c44a2352d3c9f0ae847619/tenacity-9.1.2-py3-none-any.whl", hash = "sha256:f77bf36710d8b73a50b2dd155c97b870017ad21afe6ab300326b0371b3b05138", size = 28248, upload-time = "2025-04-02T08:25:07.678Z" }, -] - -[[package]] -name = "tomli" -version = "2.2.1" -source = { registry = "https://pypi.org/simple" } -sdist = { url = "https://files.pythonhosted.org/packages/18/87/302344fed471e44a87289cf4967697d07e532f2421fdaf868a303cbae4ff/tomli-2.2.1.tar.gz", hash = "sha256:cd45e1dc79c835ce60f7404ec8119f2eb06d38b1deba146f07ced3bbc44505ff", size = 17175, upload-time = "2024-11-27T22:38:36.873Z" } -wheels = [ - { url = "https://files.pythonhosted.org/packages/43/ca/75707e6efa2b37c77dadb324ae7d9571cb424e61ea73fad7c56c2d14527f/tomli-2.2.1-cp311-cp311-macosx_10_9_x86_64.whl", hash = "sha256:678e4fa69e4575eb77d103de3df8a895e1591b48e740211bd1067378c69e8249", size = 131077, upload-time = "2024-11-27T22:37:54.956Z" }, - { url = "https://files.pythonhosted.org/packages/c7/16/51ae563a8615d472fdbffc43a3f3d46588c264ac4f024f63f01283becfbb/tomli-2.2.1-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:023aa114dd824ade0100497eb2318602af309e5a55595f76b626d6d9f3b7b0a6", size = 123429, upload-time = "2024-11-27T22:37:56.698Z" }, - { url = "https://files.pythonhosted.org/packages/f1/dd/4f6cd1e7b160041db83c694abc78e100473c15d54620083dbd5aae7b990e/tomli-2.2.1-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:ece47d672db52ac607a3d9599a9d48dcb2f2f735c6c2d1f34130085bb12b112a", size = 226067, upload-time = "2024-11-27T22:37:57.63Z" }, - { url = "https://files.pythonhosted.org/packages/a9/6b/c54ede5dc70d648cc6361eaf429304b02f2871a345bbdd51e993d6cdf550/tomli-2.2.1-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:6972ca9c9cc9f0acaa56a8ca1ff51e7af152a9f87fb64623e31d5c83700080ee", size = 236030, upload-time = "2024-11-27T22:37:59.344Z" }, - { url = "https://files.pythonhosted.org/packages/1f/47/999514fa49cfaf7a92c805a86c3c43f4215621855d151b61c602abb38091/tomli-2.2.1-cp311-cp311-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:c954d2250168d28797dd4e3ac5cf812a406cd5a92674ee4c8f123c889786aa8e", size = 240898, upload-time = "2024-11-27T22:38:00.429Z" }, - { url = "https://files.pythonhosted.org/packages/73/41/0a01279a7ae09ee1573b423318e7934674ce06eb33f50936655071d81a24/tomli-2.2.1-cp311-cp311-musllinux_1_2_aarch64.whl", hash = "sha256:8dd28b3e155b80f4d54beb40a441d366adcfe740969820caf156c019fb5c7ec4", size = 229894, upload-time = "2024-11-27T22:38:02.094Z" }, - { url = "https://files.pythonhosted.org/packages/55/18/5d8bc5b0a0362311ce4d18830a5d28943667599a60d20118074ea1b01bb7/tomli-2.2.1-cp311-cp311-musllinux_1_2_i686.whl", hash = "sha256:e59e304978767a54663af13c07b3d1af22ddee3bb2fb0618ca1593e4f593a106", size = 245319, upload-time = "2024-11-27T22:38:03.206Z" }, - { url = "https://files.pythonhosted.org/packages/92/a3/7ade0576d17f3cdf5ff44d61390d4b3febb8a9fc2b480c75c47ea048c646/tomli-2.2.1-cp311-cp311-musllinux_1_2_x86_64.whl", hash = "sha256:33580bccab0338d00994d7f16f4c4ec25b776af3ffaac1ed74e0b3fc95e885a8", size = 238273, upload-time = "2024-11-27T22:38:04.217Z" }, - { url = "https://files.pythonhosted.org/packages/72/6f/fa64ef058ac1446a1e51110c375339b3ec6be245af9d14c87c4a6412dd32/tomli-2.2.1-cp311-cp311-win32.whl", hash = "sha256:465af0e0875402f1d226519c9904f37254b3045fc5084697cefb9bdde1ff99ff", size = 98310, upload-time = "2024-11-27T22:38:05.908Z" }, - { url = "https://files.pythonhosted.org/packages/6a/1c/4a2dcde4a51b81be3530565e92eda625d94dafb46dbeb15069df4caffc34/tomli-2.2.1-cp311-cp311-win_amd64.whl", hash = "sha256:2d0f2fdd22b02c6d81637a3c95f8cd77f995846af7414c5c4b8d0545afa1bc4b", size = 108309, upload-time = "2024-11-27T22:38:06.812Z" }, - { url = "https://files.pythonhosted.org/packages/52/e1/f8af4c2fcde17500422858155aeb0d7e93477a0d59a98e56cbfe75070fd0/tomli-2.2.1-cp312-cp312-macosx_10_13_x86_64.whl", hash = "sha256:4a8f6e44de52d5e6c657c9fe83b562f5f4256d8ebbfe4ff922c495620a7f6cea", size = 132762, upload-time = "2024-11-27T22:38:07.731Z" }, - { url = "https://files.pythonhosted.org/packages/03/b8/152c68bb84fc00396b83e7bbddd5ec0bd3dd409db4195e2a9b3e398ad2e3/tomli-2.2.1-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:8d57ca8095a641b8237d5b079147646153d22552f1c637fd3ba7f4b0b29167a8", size = 123453, upload-time = "2024-11-27T22:38:09.384Z" }, - { url = "https://files.pythonhosted.org/packages/c8/d6/fc9267af9166f79ac528ff7e8c55c8181ded34eb4b0e93daa767b8841573/tomli-2.2.1-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:4e340144ad7ae1533cb897d406382b4b6fede8890a03738ff1683af800d54192", size = 233486, upload-time = "2024-11-27T22:38:10.329Z" }, - { url = "https://files.pythonhosted.org/packages/5c/51/51c3f2884d7bab89af25f678447ea7d297b53b5a3b5730a7cb2ef6069f07/tomli-2.2.1-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:db2b95f9de79181805df90bedc5a5ab4c165e6ec3fe99f970d0e302f384ad222", size = 242349, upload-time = "2024-11-27T22:38:11.443Z" }, - { url = "https://files.pythonhosted.org/packages/ab/df/bfa89627d13a5cc22402e441e8a931ef2108403db390ff3345c05253935e/tomli-2.2.1-cp312-cp312-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:40741994320b232529c802f8bc86da4e1aa9f413db394617b9a256ae0f9a7f77", size = 252159, upload-time = "2024-11-27T22:38:13.099Z" }, - { url = "https://files.pythonhosted.org/packages/9e/6e/fa2b916dced65763a5168c6ccb91066f7639bdc88b48adda990db10c8c0b/tomli-2.2.1-cp312-cp312-musllinux_1_2_aarch64.whl", hash = "sha256:400e720fe168c0f8521520190686ef8ef033fb19fc493da09779e592861b78c6", size = 237243, upload-time = "2024-11-27T22:38:14.766Z" }, - { url = "https://files.pythonhosted.org/packages/b4/04/885d3b1f650e1153cbb93a6a9782c58a972b94ea4483ae4ac5cedd5e4a09/tomli-2.2.1-cp312-cp312-musllinux_1_2_i686.whl", hash = "sha256:02abe224de6ae62c19f090f68da4e27b10af2b93213d36cf44e6e1c5abd19fdd", size = 259645, upload-time = "2024-11-27T22:38:15.843Z" }, - { url = "https://files.pythonhosted.org/packages/9c/de/6b432d66e986e501586da298e28ebeefd3edc2c780f3ad73d22566034239/tomli-2.2.1-cp312-cp312-musllinux_1_2_x86_64.whl", hash = "sha256:b82ebccc8c8a36f2094e969560a1b836758481f3dc360ce9a3277c65f374285e", size = 244584, upload-time = "2024-11-27T22:38:17.645Z" }, - { url = "https://files.pythonhosted.org/packages/1c/9a/47c0449b98e6e7d1be6cbac02f93dd79003234ddc4aaab6ba07a9a7482e2/tomli-2.2.1-cp312-cp312-win32.whl", hash = "sha256:889f80ef92701b9dbb224e49ec87c645ce5df3fa2cc548664eb8a25e03127a98", size = 98875, upload-time = "2024-11-27T22:38:19.159Z" }, - { url = "https://files.pythonhosted.org/packages/ef/60/9b9638f081c6f1261e2688bd487625cd1e660d0a85bd469e91d8db969734/tomli-2.2.1-cp312-cp312-win_amd64.whl", hash = "sha256:7fc04e92e1d624a4a63c76474610238576942d6b8950a2d7f908a340494e67e4", size = 109418, upload-time = "2024-11-27T22:38:20.064Z" }, - { url = "https://files.pythonhosted.org/packages/04/90/2ee5f2e0362cb8a0b6499dc44f4d7d48f8fff06d28ba46e6f1eaa61a1388/tomli-2.2.1-cp313-cp313-macosx_10_13_x86_64.whl", hash = "sha256:f4039b9cbc3048b2416cc57ab3bda989a6fcf9b36cf8937f01a6e731b64f80d7", size = 132708, upload-time = "2024-11-27T22:38:21.659Z" }, - { url = "https://files.pythonhosted.org/packages/c0/ec/46b4108816de6b385141f082ba99e315501ccd0a2ea23db4a100dd3990ea/tomli-2.2.1-cp313-cp313-macosx_11_0_arm64.whl", hash = "sha256:286f0ca2ffeeb5b9bd4fcc8d6c330534323ec51b2f52da063b11c502da16f30c", size = 123582, upload-time = "2024-11-27T22:38:22.693Z" }, - { url = "https://files.pythonhosted.org/packages/a0/bd/b470466d0137b37b68d24556c38a0cc819e8febe392d5b199dcd7f578365/tomli-2.2.1-cp313-cp313-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:a92ef1a44547e894e2a17d24e7557a5e85a9e1d0048b0b5e7541f76c5032cb13", size = 232543, upload-time = "2024-11-27T22:38:24.367Z" }, - { url = "https://files.pythonhosted.org/packages/d9/e5/82e80ff3b751373f7cead2815bcbe2d51c895b3c990686741a8e56ec42ab/tomli-2.2.1-cp313-cp313-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:9316dc65bed1684c9a98ee68759ceaed29d229e985297003e494aa825ebb0281", size = 241691, upload-time = "2024-11-27T22:38:26.081Z" }, - { url = "https://files.pythonhosted.org/packages/05/7e/2a110bc2713557d6a1bfb06af23dd01e7dde52b6ee7dadc589868f9abfac/tomli-2.2.1-cp313-cp313-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:e85e99945e688e32d5a35c1ff38ed0b3f41f43fad8df0bdf79f72b2ba7bc5272", size = 251170, upload-time = "2024-11-27T22:38:27.921Z" }, - { url = "https://files.pythonhosted.org/packages/64/7b/22d713946efe00e0adbcdfd6d1aa119ae03fd0b60ebed51ebb3fa9f5a2e5/tomli-2.2.1-cp313-cp313-musllinux_1_2_aarch64.whl", hash = "sha256:ac065718db92ca818f8d6141b5f66369833d4a80a9d74435a268c52bdfa73140", size = 236530, upload-time = "2024-11-27T22:38:29.591Z" }, - { url = "https://files.pythonhosted.org/packages/38/31/3a76f67da4b0cf37b742ca76beaf819dca0ebef26d78fc794a576e08accf/tomli-2.2.1-cp313-cp313-musllinux_1_2_i686.whl", hash = "sha256:d920f33822747519673ee656a4b6ac33e382eca9d331c87770faa3eef562aeb2", size = 258666, upload-time = "2024-11-27T22:38:30.639Z" }, - { url = "https://files.pythonhosted.org/packages/07/10/5af1293da642aded87e8a988753945d0cf7e00a9452d3911dd3bb354c9e2/tomli-2.2.1-cp313-cp313-musllinux_1_2_x86_64.whl", hash = "sha256:a198f10c4d1b1375d7687bc25294306e551bf1abfa4eace6650070a5c1ae2744", size = 243954, upload-time = "2024-11-27T22:38:31.702Z" }, - { url = "https://files.pythonhosted.org/packages/5b/b9/1ed31d167be802da0fc95020d04cd27b7d7065cc6fbefdd2f9186f60d7bd/tomli-2.2.1-cp313-cp313-win32.whl", hash = "sha256:d3f5614314d758649ab2ab3a62d4f2004c825922f9e370b29416484086b264ec", size = 98724, upload-time = "2024-11-27T22:38:32.837Z" }, - { url = "https://files.pythonhosted.org/packages/c7/32/b0963458706accd9afcfeb867c0f9175a741bf7b19cd424230714d722198/tomli-2.2.1-cp313-cp313-win_amd64.whl", hash = "sha256:a38aa0308e754b0e3c67e344754dff64999ff9b513e691d0e786265c93583c69", size = 109383, upload-time = "2024-11-27T22:38:34.455Z" }, - { url = "https://files.pythonhosted.org/packages/6e/c2/61d3e0f47e2b74ef40a68b9e6ad5984f6241a942f7cd3bbfbdbd03861ea9/tomli-2.2.1-py3-none-any.whl", hash = "sha256:cb55c73c5f4408779d0cf3eef9f762b9c9f147a77de7b258bef0a5628adc85cc", size = 14257, upload-time = "2024-11-27T22:38:35.385Z" }, -] - -[[package]] -name = "tomlkit" -version = "0.13.3" -source = { registry = "https://pypi.org/simple" } -sdist = { url = "https://files.pythonhosted.org/packages/cc/18/0bbf3884e9eaa38819ebe46a7bd25dcd56b67434402b66a58c4b8e552575/tomlkit-0.13.3.tar.gz", hash = "sha256:430cf247ee57df2b94ee3fbe588e71d362a941ebb545dec29b53961d61add2a1", size = 185207, upload-time = "2025-06-05T07:13:44.947Z" } -wheels = [ - { url = "https://files.pythonhosted.org/packages/bd/75/8539d011f6be8e29f339c42e633aae3cb73bffa95dd0f9adec09b9c58e85/tomlkit-0.13.3-py3-none-any.whl", hash = "sha256:c89c649d79ee40629a9fda55f8ace8c6a1b42deb912b2a8fd8d942ddadb606b0", size = 38901, upload-time = "2025-06-05T07:13:43.546Z" }, -] - -[[package]] -name = "typer" -version = "0.19.2" -source = { registry = "https://pypi.org/simple" } -dependencies = [ - { name = "click" }, - { name = "rich" }, - { name = "shellingham" }, - { name = "typing-extensions" }, -] -sdist = { url = "https://files.pythonhosted.org/packages/21/ca/950278884e2ca20547ff3eb109478c6baf6b8cf219318e6bc4f666fad8e8/typer-0.19.2.tar.gz", hash = "sha256:9ad824308ded0ad06cc716434705f691d4ee0bfd0fb081839d2e426860e7fdca", size = 104755, upload-time = "2025-09-23T09:47:48.256Z" } -wheels = [ - { url = "https://files.pythonhosted.org/packages/00/22/35617eee79080a5d071d0f14ad698d325ee6b3bf824fc0467c03b30e7fa8/typer-0.19.2-py3-none-any.whl", hash = "sha256:755e7e19670ffad8283db353267cb81ef252f595aa6834a0d1ca9312d9326cb9", size = 46748, upload-time = "2025-09-23T09:47:46.777Z" }, -] - -[[package]] -name = "typing-extensions" -version = "4.15.0" -source = { registry = "https://pypi.org/simple" } -sdist = { url = "https://files.pythonhosted.org/packages/72/94/1a15dd82efb362ac84269196e94cf00f187f7ed21c242792a923cdb1c61f/typing_extensions-4.15.0.tar.gz", hash = "sha256:0cea48d173cc12fa28ecabc3b837ea3cf6f38c6d1136f85cbaaf598984861466", size = 109391, upload-time = "2025-08-25T13:49:26.313Z" } -wheels = [ - { url = "https://files.pythonhosted.org/packages/18/67/36e9267722cc04a6b9f15c7f3441c2363321a3ea07da7ae0c0707beb2a9c/typing_extensions-4.15.0-py3-none-any.whl", hash = "sha256:f0fa19c6845758ab08074a0cfa8b7aecb71c999ca73d62883bc25cc018c4e548", size = 44614, upload-time = "2025-08-25T13:49:24.86Z" }, -] - -[[package]] -name = "typing-inspection" -version = "0.4.2" -source = { registry = "https://pypi.org/simple" } -dependencies = [ - { name = "typing-extensions" }, -] -sdist = { url = "https://files.pythonhosted.org/packages/55/e3/70399cb7dd41c10ac53367ae42139cf4b1ca5f36bb3dc6c9d33acdb43655/typing_inspection-0.4.2.tar.gz", hash = "sha256:ba561c48a67c5958007083d386c3295464928b01faa735ab8547c5692e87f464", size = 75949, upload-time = "2025-10-01T02:14:41.687Z" } -wheels = [ - { url = "https://files.pythonhosted.org/packages/dc/9b/47798a6c91d8bdb567fe2698fe81e0c6b7cb7ef4d13da4114b41d239f65d/typing_inspection-0.4.2-py3-none-any.whl", hash = "sha256:4ed1cacbdc298c220f1bd249ed5287caa16f34d44ef4e9c3d0cbad5b521545e7", size = 14611, upload-time = "2025-10-01T02:14:40.154Z" }, -] - -[[package]] -name = "urllib3" -version = "2.6.3" -source = { registry = "https://pypi.org/simple" } -sdist = { url = "https://files.pythonhosted.org/packages/c7/24/5f1b3bdffd70275f6661c76461e25f024d5a38a46f04aaca912426a2b1d3/urllib3-2.6.3.tar.gz", hash = "sha256:1b62b6884944a57dbe321509ab94fd4d3b307075e0c2eae991ac71ee15ad38ed", size = 435556, upload-time = "2026-01-07T16:24:43.925Z" } -wheels = [ - { url = "https://files.pythonhosted.org/packages/39/08/aaaad47bc4e9dc8c725e68f9d04865dbcb2052843ff09c97b08904852d84/urllib3-2.6.3-py3-none-any.whl", hash = "sha256:bf272323e553dfb2e87d9bfd225ca7b0f467b919d7bbd355436d3fd37cb0acd4", size = 131584, upload-time = "2026-01-07T16:24:42.685Z" }, -] - -[[package]] -name = "uuid-utils" -version = "0.12.0" -source = { registry = "https://pypi.org/simple" } -sdist = { url = "https://files.pythonhosted.org/packages/0b/0e/512fb221e4970c2f75ca9dae412d320b7d9ddc9f2b15e04ea8e44710396c/uuid_utils-0.12.0.tar.gz", hash = "sha256:252bd3d311b5d6b7f5dfce7a5857e27bb4458f222586bb439463231e5a9cbd64", size = 20889, upload-time = "2025-12-01T17:29:55.494Z" } -wheels = [ - { url = "https://files.pythonhosted.org/packages/8a/43/de5cd49a57b6293b911b6a9a62fc03e55db9f964da7d5882d9edbee1e9d2/uuid_utils-0.12.0-cp39-abi3-macosx_10_12_x86_64.macosx_11_0_arm64.macosx_10_12_universal2.whl", hash = "sha256:3b9b30707659292f207b98f294b0e081f6d77e1fbc760ba5b41331a39045f514", size = 603197, upload-time = "2025-12-01T17:29:30.104Z" }, - { url = "https://files.pythonhosted.org/packages/02/fa/5fd1d8c9234e44f0c223910808cde0de43bb69f7df1349e49b1afa7f2baa/uuid_utils-0.12.0-cp39-abi3-macosx_10_12_x86_64.whl", hash = "sha256:add3d820c7ec14ed37317375bea30249699c5d08ff4ae4dbee9fc9bce3bfbf65", size = 305168, upload-time = "2025-12-01T17:29:31.384Z" }, - { url = "https://files.pythonhosted.org/packages/c8/c6/8633ac9942bf9dc97a897b5154e5dcffa58816ec4dd780b3b12b559ff05c/uuid_utils-0.12.0-cp39-abi3-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:1b8fce83ecb3b16af29c7809669056c4b6e7cc912cab8c6d07361645de12dd79", size = 340580, upload-time = "2025-12-01T17:29:32.362Z" }, - { url = "https://files.pythonhosted.org/packages/f3/88/8a61307b04b4da1c576373003e6d857a04dade52ab035151d62cb84d5cb5/uuid_utils-0.12.0-cp39-abi3-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:ec921769afcb905035d785582b0791d02304a7850fbd6ce924c1a8976380dfc6", size = 346771, upload-time = "2025-12-01T17:29:33.708Z" }, - { url = "https://files.pythonhosted.org/packages/1c/fb/aab2dcf94b991e62aa167457c7825b9b01055b884b888af926562864398c/uuid_utils-0.12.0-cp39-abi3-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:6f3b060330f5899a92d5c723547dc6a95adef42433e9748f14c66859a7396664", size = 474781, upload-time = "2025-12-01T17:29:35.237Z" }, - { url = "https://files.pythonhosted.org/packages/5a/7a/dbd5e49c91d6c86dba57158bbfa0e559e1ddf377bb46dcfd58aea4f0d567/uuid_utils-0.12.0-cp39-abi3-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:908dfef7f0bfcf98d406e5dc570c25d2f2473e49b376de41792b6e96c1d5d291", size = 343685, upload-time = "2025-12-01T17:29:36.677Z" }, - { url = "https://files.pythonhosted.org/packages/1a/19/8c4b1d9f450159733b8be421a4e1fb03533709b80ed3546800102d085572/uuid_utils-0.12.0-cp39-abi3-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:4c6a24148926bd0ca63e8a2dabf4cc9dc329a62325b3ad6578ecd60fbf926506", size = 366482, upload-time = "2025-12-01T17:29:37.979Z" }, - { url = "https://files.pythonhosted.org/packages/82/43/c79a6e45687647f80a159c8ba34346f287b065452cc419d07d2212d38420/uuid_utils-0.12.0-cp39-abi3-musllinux_1_2_aarch64.whl", hash = "sha256:64a91e632669f059ef605f1771d28490b1d310c26198e46f754e8846dddf12f4", size = 523132, upload-time = "2025-12-01T17:29:39.293Z" }, - { url = "https://files.pythonhosted.org/packages/5a/a2/b2d75a621260a40c438aa88593827dfea596d18316520a99e839f7a5fb9d/uuid_utils-0.12.0-cp39-abi3-musllinux_1_2_armv7l.whl", hash = "sha256:93c082212470bb4603ca3975916c205a9d7ef1443c0acde8fbd1e0f5b36673c7", size = 614218, upload-time = "2025-12-01T17:29:40.315Z" }, - { url = "https://files.pythonhosted.org/packages/13/6b/ba071101626edd5a6dabf8525c9a1537ff3d885dbc210540574a03901fef/uuid_utils-0.12.0-cp39-abi3-musllinux_1_2_i686.whl", hash = "sha256:431b1fb7283ba974811b22abd365f2726f8f821ab33f0f715be389640e18d039", size = 546241, upload-time = "2025-12-01T17:29:41.656Z" }, - { url = "https://files.pythonhosted.org/packages/01/12/9a942b81c0923268e6d85bf98d8f0a61fcbcd5e432fef94fdf4ce2ef8748/uuid_utils-0.12.0-cp39-abi3-musllinux_1_2_x86_64.whl", hash = "sha256:2ffd7838c40149100299fa37cbd8bab5ee382372e8e65a148002a37d380df7c8", size = 511842, upload-time = "2025-12-01T17:29:43.107Z" }, - { url = "https://files.pythonhosted.org/packages/a9/a7/c326f5163dd48b79368b87d8a05f5da4668dd228a3f5ca9d79d5fee2fc40/uuid_utils-0.12.0-cp39-abi3-win32.whl", hash = "sha256:487f17c0fee6cbc1d8b90fe811874174a9b1b5683bf2251549e302906a50fed3", size = 179088, upload-time = "2025-12-01T17:29:44.492Z" }, - { url = "https://files.pythonhosted.org/packages/38/92/41c8734dd97213ee1d5ae435cf4499705dc4f2751e3b957fd12376f61784/uuid_utils-0.12.0-cp39-abi3-win_amd64.whl", hash = "sha256:9598e7c9da40357ae8fffc5d6938b1a7017f09a1acbcc95e14af8c65d48c655a", size = 183003, upload-time = "2025-12-01T17:29:45.47Z" }, - { url = "https://files.pythonhosted.org/packages/c9/f9/52ab0359618987331a1f739af837d26168a4b16281c9c3ab46519940c628/uuid_utils-0.12.0-cp39-abi3-win_arm64.whl", hash = "sha256:c9bea7c5b2aa6f57937ebebeee4d4ef2baad10f86f1b97b58a3f6f34c14b4e84", size = 182975, upload-time = "2025-12-01T17:29:46.444Z" }, - { url = "https://files.pythonhosted.org/packages/ef/f7/6c55b7722cede3b424df02ed5cddb25c19543abda2f95fa4cfc34a892ae5/uuid_utils-0.12.0-pp311-pypy311_pp73-macosx_10_12_x86_64.macosx_11_0_arm64.macosx_10_12_universal2.whl", hash = "sha256:e2209d361f2996966ab7114f49919eb6aaeabc6041672abbbbf4fdbb8ec1acc0", size = 593065, upload-time = "2025-12-01T17:29:47.507Z" }, - { url = "https://files.pythonhosted.org/packages/b8/40/ce5fe8e9137dbd5570e0016c2584fca43ad81b11a1cef809a1a1b4952ab7/uuid_utils-0.12.0-pp311-pypy311_pp73-macosx_10_12_x86_64.whl", hash = "sha256:d9636bcdbd6cfcad2b549c352b669412d0d1eb09be72044a2f13e498974863cd", size = 300047, upload-time = "2025-12-01T17:29:48.596Z" }, - { url = "https://files.pythonhosted.org/packages/fb/9b/31c5d0736d7b118f302c50214e581f40e904305d8872eb0f0c921d50e138/uuid_utils-0.12.0-pp311-pypy311_pp73-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:8cd8543a3419251fb78e703ce3b15fdfafe1b7c542cf40caf0775e01db7e7674", size = 335165, upload-time = "2025-12-01T17:29:49.755Z" }, - { url = "https://files.pythonhosted.org/packages/f6/5c/d80b4d08691c9d7446d0ad58fd41503081a662cfd2c7640faf68c64d8098/uuid_utils-0.12.0-pp311-pypy311_pp73-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:e98db2d8977c052cb307ae1cb5cc37a21715e8d415dbc65863b039397495a013", size = 341437, upload-time = "2025-12-01T17:29:51.112Z" }, - { url = "https://files.pythonhosted.org/packages/f6/b3/9dccdc6f3c22f6ef5bd381ae559173f8a1ae185ae89ed1f39f499d9d8b02/uuid_utils-0.12.0-pp311-pypy311_pp73-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:f8f2bdf5e4ffeb259ef6d15edae92aed60a1d6f07cbfab465d836f6b12b48da8", size = 469123, upload-time = "2025-12-01T17:29:52.389Z" }, - { url = "https://files.pythonhosted.org/packages/fd/90/6c35ef65fbc49f8189729839b793a4a74a7dd8c5aa5eb56caa93f8c97732/uuid_utils-0.12.0-pp311-pypy311_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:8c3ec53c0cb15e1835870c139317cc5ec06e35aa22843e3ed7d9c74f23f23898", size = 335892, upload-time = "2025-12-01T17:29:53.44Z" }, - { url = "https://files.pythonhosted.org/packages/6b/c7/e3f3ce05c5af2bf86a0938d22165affe635f4dcbfd5687b1dacc042d3e0e/uuid_utils-0.12.0-pp311-pypy311_pp73-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:84e5c0eba209356f7f389946a3a47b2cc2effd711b3fc7c7f155ad9f7d45e8a3", size = 360693, upload-time = "2025-12-01T17:29:54.558Z" }, -] - -[[package]] -name = "uvicorn" -version = "0.37.0" -source = { registry = "https://pypi.org/simple" } -dependencies = [ - { name = "click" }, - { name = "h11" }, - { name = "typing-extensions", marker = "python_full_version < '3.11'" }, -] -sdist = { url = "https://files.pythonhosted.org/packages/71/57/1616c8274c3442d802621abf5deb230771c7a0fec9414cb6763900eb3868/uvicorn-0.37.0.tar.gz", hash = "sha256:4115c8add6d3fd536c8ee77f0e14a7fd2ebba939fed9b02583a97f80648f9e13", size = 80367, upload-time = "2025-09-23T13:33:47.486Z" } -wheels = [ - { url = "https://files.pythonhosted.org/packages/85/cd/584a2ceb5532af99dd09e50919e3615ba99aa127e9850eafe5f31ddfdb9a/uvicorn-0.37.0-py3-none-any.whl", hash = "sha256:913b2b88672343739927ce381ff9e2ad62541f9f8289664fa1d1d3803fa2ce6c", size = 67976, upload-time = "2025-09-23T13:33:45.842Z" }, -] - -[[package]] -name = "watchdog" -version = "6.0.0" -source = { registry = "https://pypi.org/simple" } -sdist = { url = "https://files.pythonhosted.org/packages/db/7d/7f3d619e951c88ed75c6037b246ddcf2d322812ee8ea189be89511721d54/watchdog-6.0.0.tar.gz", hash = "sha256:9ddf7c82fda3ae8e24decda1338ede66e1c99883db93711d8fb941eaa2d8c282", size = 131220, upload-time = "2024-11-01T14:07:13.037Z" } -wheels = [ - { url = "https://files.pythonhosted.org/packages/0c/56/90994d789c61df619bfc5ce2ecdabd5eeff564e1eb47512bd01b5e019569/watchdog-6.0.0-cp310-cp310-macosx_10_9_universal2.whl", hash = "sha256:d1cdb490583ebd691c012b3d6dae011000fe42edb7a82ece80965b42abd61f26", size = 96390, upload-time = "2024-11-01T14:06:24.793Z" }, - { url = "https://files.pythonhosted.org/packages/55/46/9a67ee697342ddf3c6daa97e3a587a56d6c4052f881ed926a849fcf7371c/watchdog-6.0.0-cp310-cp310-macosx_10_9_x86_64.whl", hash = "sha256:bc64ab3bdb6a04d69d4023b29422170b74681784ffb9463ed4870cf2f3e66112", size = 88389, upload-time = "2024-11-01T14:06:27.112Z" }, - { url = "https://files.pythonhosted.org/packages/44/65/91b0985747c52064d8701e1075eb96f8c40a79df889e59a399453adfb882/watchdog-6.0.0-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:c897ac1b55c5a1461e16dae288d22bb2e412ba9807df8397a635d88f671d36c3", size = 89020, upload-time = "2024-11-01T14:06:29.876Z" }, - { url = "https://files.pythonhosted.org/packages/e0/24/d9be5cd6642a6aa68352ded4b4b10fb0d7889cb7f45814fb92cecd35f101/watchdog-6.0.0-cp311-cp311-macosx_10_9_universal2.whl", hash = "sha256:6eb11feb5a0d452ee41f824e271ca311a09e250441c262ca2fd7ebcf2461a06c", size = 96393, upload-time = "2024-11-01T14:06:31.756Z" }, - { url = "https://files.pythonhosted.org/packages/63/7a/6013b0d8dbc56adca7fdd4f0beed381c59f6752341b12fa0886fa7afc78b/watchdog-6.0.0-cp311-cp311-macosx_10_9_x86_64.whl", hash = "sha256:ef810fbf7b781a5a593894e4f439773830bdecb885e6880d957d5b9382a960d2", size = 88392, upload-time = "2024-11-01T14:06:32.99Z" }, - { url = "https://files.pythonhosted.org/packages/d1/40/b75381494851556de56281e053700e46bff5b37bf4c7267e858640af5a7f/watchdog-6.0.0-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:afd0fe1b2270917c5e23c2a65ce50c2a4abb63daafb0d419fde368e272a76b7c", size = 89019, upload-time = "2024-11-01T14:06:34.963Z" }, - { url = "https://files.pythonhosted.org/packages/39/ea/3930d07dafc9e286ed356a679aa02d777c06e9bfd1164fa7c19c288a5483/watchdog-6.0.0-cp312-cp312-macosx_10_13_universal2.whl", hash = "sha256:bdd4e6f14b8b18c334febb9c4425a878a2ac20efd1e0b231978e7b150f92a948", size = 96471, upload-time = "2024-11-01T14:06:37.745Z" }, - { url = "https://files.pythonhosted.org/packages/12/87/48361531f70b1f87928b045df868a9fd4e253d9ae087fa4cf3f7113be363/watchdog-6.0.0-cp312-cp312-macosx_10_13_x86_64.whl", hash = "sha256:c7c15dda13c4eb00d6fb6fc508b3c0ed88b9d5d374056b239c4ad1611125c860", size = 88449, upload-time = "2024-11-01T14:06:39.748Z" }, - { url = "https://files.pythonhosted.org/packages/5b/7e/8f322f5e600812e6f9a31b75d242631068ca8f4ef0582dd3ae6e72daecc8/watchdog-6.0.0-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:6f10cb2d5902447c7d0da897e2c6768bca89174d0c6e1e30abec5421af97a5b0", size = 89054, upload-time = "2024-11-01T14:06:41.009Z" }, - { url = "https://files.pythonhosted.org/packages/68/98/b0345cabdce2041a01293ba483333582891a3bd5769b08eceb0d406056ef/watchdog-6.0.0-cp313-cp313-macosx_10_13_universal2.whl", hash = "sha256:490ab2ef84f11129844c23fb14ecf30ef3d8a6abafd3754a6f75ca1e6654136c", size = 96480, upload-time = "2024-11-01T14:06:42.952Z" }, - { url = "https://files.pythonhosted.org/packages/85/83/cdf13902c626b28eedef7ec4f10745c52aad8a8fe7eb04ed7b1f111ca20e/watchdog-6.0.0-cp313-cp313-macosx_10_13_x86_64.whl", hash = "sha256:76aae96b00ae814b181bb25b1b98076d5fc84e8a53cd8885a318b42b6d3a5134", size = 88451, upload-time = "2024-11-01T14:06:45.084Z" }, - { url = "https://files.pythonhosted.org/packages/fe/c4/225c87bae08c8b9ec99030cd48ae9c4eca050a59bf5c2255853e18c87b50/watchdog-6.0.0-cp313-cp313-macosx_11_0_arm64.whl", hash = "sha256:a175f755fc2279e0b7312c0035d52e27211a5bc39719dd529625b1930917345b", size = 89057, upload-time = "2024-11-01T14:06:47.324Z" }, - { url = "https://files.pythonhosted.org/packages/30/ad/d17b5d42e28a8b91f8ed01cb949da092827afb9995d4559fd448d0472763/watchdog-6.0.0-pp310-pypy310_pp73-macosx_10_15_x86_64.whl", hash = "sha256:c7ac31a19f4545dd92fc25d200694098f42c9a8e391bc00bdd362c5736dbf881", size = 87902, upload-time = "2024-11-01T14:06:53.119Z" }, - { url = "https://files.pythonhosted.org/packages/5c/ca/c3649991d140ff6ab67bfc85ab42b165ead119c9e12211e08089d763ece5/watchdog-6.0.0-pp310-pypy310_pp73-macosx_11_0_arm64.whl", hash = "sha256:9513f27a1a582d9808cf21a07dae516f0fab1cf2d7683a742c498b93eedabb11", size = 88380, upload-time = "2024-11-01T14:06:55.19Z" }, - { url = "https://files.pythonhosted.org/packages/a9/c7/ca4bf3e518cb57a686b2feb4f55a1892fd9a3dd13f470fca14e00f80ea36/watchdog-6.0.0-py3-none-manylinux2014_aarch64.whl", hash = "sha256:7607498efa04a3542ae3e05e64da8202e58159aa1fa4acddf7678d34a35d4f13", size = 79079, upload-time = "2024-11-01T14:06:59.472Z" }, - { url = "https://files.pythonhosted.org/packages/5c/51/d46dc9332f9a647593c947b4b88e2381c8dfc0942d15b8edc0310fa4abb1/watchdog-6.0.0-py3-none-manylinux2014_armv7l.whl", hash = "sha256:9041567ee8953024c83343288ccc458fd0a2d811d6a0fd68c4c22609e3490379", size = 79078, upload-time = "2024-11-01T14:07:01.431Z" }, - { url = "https://files.pythonhosted.org/packages/d4/57/04edbf5e169cd318d5f07b4766fee38e825d64b6913ca157ca32d1a42267/watchdog-6.0.0-py3-none-manylinux2014_i686.whl", hash = "sha256:82dc3e3143c7e38ec49d61af98d6558288c415eac98486a5c581726e0737c00e", size = 79076, upload-time = "2024-11-01T14:07:02.568Z" }, - { url = "https://files.pythonhosted.org/packages/ab/cc/da8422b300e13cb187d2203f20b9253e91058aaf7db65b74142013478e66/watchdog-6.0.0-py3-none-manylinux2014_ppc64.whl", hash = "sha256:212ac9b8bf1161dc91bd09c048048a95ca3a4c4f5e5d4a7d1b1a7d5752a7f96f", size = 79077, upload-time = "2024-11-01T14:07:03.893Z" }, - { url = "https://files.pythonhosted.org/packages/2c/3b/b8964e04ae1a025c44ba8e4291f86e97fac443bca31de8bd98d3263d2fcf/watchdog-6.0.0-py3-none-manylinux2014_ppc64le.whl", hash = "sha256:e3df4cbb9a450c6d49318f6d14f4bbc80d763fa587ba46ec86f99f9e6876bb26", size = 79078, upload-time = "2024-11-01T14:07:05.189Z" }, - { url = "https://files.pythonhosted.org/packages/62/ae/a696eb424bedff7407801c257d4b1afda455fe40821a2be430e173660e81/watchdog-6.0.0-py3-none-manylinux2014_s390x.whl", hash = "sha256:2cce7cfc2008eb51feb6aab51251fd79b85d9894e98ba847408f662b3395ca3c", size = 79077, upload-time = "2024-11-01T14:07:06.376Z" }, - { url = "https://files.pythonhosted.org/packages/b5/e8/dbf020b4d98251a9860752a094d09a65e1b436ad181faf929983f697048f/watchdog-6.0.0-py3-none-manylinux2014_x86_64.whl", hash = "sha256:20ffe5b202af80ab4266dcd3e91aae72bf2da48c0d33bdb15c66658e685e94e2", size = 79078, upload-time = "2024-11-01T14:07:07.547Z" }, - { url = "https://files.pythonhosted.org/packages/07/f6/d0e5b343768e8bcb4cda79f0f2f55051bf26177ecd5651f84c07567461cf/watchdog-6.0.0-py3-none-win32.whl", hash = "sha256:07df1fdd701c5d4c8e55ef6cf55b8f0120fe1aef7ef39a1c6fc6bc2e606d517a", size = 79065, upload-time = "2024-11-01T14:07:09.525Z" }, - { url = "https://files.pythonhosted.org/packages/db/d9/c495884c6e548fce18a8f40568ff120bc3a4b7b99813081c8ac0c936fa64/watchdog-6.0.0-py3-none-win_amd64.whl", hash = "sha256:cbafb470cf848d93b5d013e2ecb245d4aa1c8fd0504e863ccefa32445359d680", size = 79070, upload-time = "2024-11-01T14:07:10.686Z" }, - { url = "https://files.pythonhosted.org/packages/33/e8/e40370e6d74ddba47f002a32919d91310d6074130fe4e17dabcafc15cbf1/watchdog-6.0.0-py3-none-win_ia64.whl", hash = "sha256:a1914259fa9e1454315171103c6a30961236f508b9b623eae470268bbcc6a22f", size = 79067, upload-time = "2024-11-01T14:07:11.845Z" }, -] - -[[package]] -name = "xxhash" -version = "3.6.0" -source = { registry = "https://pypi.org/simple" } -sdist = { url = "https://files.pythonhosted.org/packages/02/84/30869e01909fb37a6cc7e18688ee8bf1e42d57e7e0777636bd47524c43c7/xxhash-3.6.0.tar.gz", hash = "sha256:f0162a78b13a0d7617b2845b90c763339d1f1d82bb04a4b07f4ab535cc5e05d6", size = 85160, upload-time = "2025-10-02T14:37:08.097Z" } -wheels = [ - { url = "https://files.pythonhosted.org/packages/34/ee/f9f1d656ad168681bb0f6b092372c1e533c4416b8069b1896a175c46e484/xxhash-3.6.0-cp310-cp310-macosx_10_9_x86_64.whl", hash = "sha256:87ff03d7e35c61435976554477a7f4cd1704c3596a89a8300d5ce7fc83874a71", size = 32845, upload-time = "2025-10-02T14:33:51.573Z" }, - { url = "https://files.pythonhosted.org/packages/a3/b1/93508d9460b292c74a09b83d16750c52a0ead89c51eea9951cb97a60d959/xxhash-3.6.0-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:f572dfd3d0e2eb1a57511831cf6341242f5a9f8298a45862d085f5b93394a27d", size = 30807, upload-time = "2025-10-02T14:33:52.964Z" }, - { url = "https://files.pythonhosted.org/packages/07/55/28c93a3662f2d200c70704efe74aab9640e824f8ce330d8d3943bf7c9b3c/xxhash-3.6.0-cp310-cp310-manylinux1_i686.manylinux_2_28_i686.manylinux_2_5_i686.whl", hash = "sha256:89952ea539566b9fed2bbd94e589672794b4286f342254fad28b149f9615fef8", size = 193786, upload-time = "2025-10-02T14:33:54.272Z" }, - { url = "https://files.pythonhosted.org/packages/c1/96/fec0be9bb4b8f5d9c57d76380a366f31a1781fb802f76fc7cda6c84893c7/xxhash-3.6.0-cp310-cp310-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:48e6f2ffb07a50b52465a1032c3cf1f4a5683f944acaca8a134a2f23674c2058", size = 212830, upload-time = "2025-10-02T14:33:55.706Z" }, - { url = "https://files.pythonhosted.org/packages/c4/a0/c706845ba77b9611f81fd2e93fad9859346b026e8445e76f8c6fd057cc6d/xxhash-3.6.0-cp310-cp310-manylinux2014_ppc64le.manylinux_2_17_ppc64le.manylinux_2_28_ppc64le.whl", hash = "sha256:b5b848ad6c16d308c3ac7ad4ba6bede80ed5df2ba8ed382f8932df63158dd4b2", size = 211606, upload-time = "2025-10-02T14:33:57.133Z" }, - { url = "https://files.pythonhosted.org/packages/67/1e/164126a2999e5045f04a69257eea946c0dc3e86541b400d4385d646b53d7/xxhash-3.6.0-cp310-cp310-manylinux2014_s390x.manylinux_2_17_s390x.manylinux_2_28_s390x.whl", hash = "sha256:a034590a727b44dd8ac5914236a7b8504144447a9682586c3327e935f33ec8cc", size = 444872, upload-time = "2025-10-02T14:33:58.446Z" }, - { url = "https://files.pythonhosted.org/packages/2d/4b/55ab404c56cd70a2cf5ecfe484838865d0fea5627365c6c8ca156bd09c8f/xxhash-3.6.0-cp310-cp310-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:8a8f1972e75ebdd161d7896743122834fe87378160c20e97f8b09166213bf8cc", size = 193217, upload-time = "2025-10-02T14:33:59.724Z" }, - { url = "https://files.pythonhosted.org/packages/45/e6/52abf06bac316db33aa269091ae7311bd53cfc6f4b120ae77bac1b348091/xxhash-3.6.0-cp310-cp310-musllinux_1_2_aarch64.whl", hash = "sha256:ee34327b187f002a596d7b167ebc59a1b729e963ce645964bbc050d2f1b73d07", size = 210139, upload-time = "2025-10-02T14:34:02.041Z" }, - { url = "https://files.pythonhosted.org/packages/34/37/db94d490b8691236d356bc249c08819cbcef9273a1a30acf1254ff9ce157/xxhash-3.6.0-cp310-cp310-musllinux_1_2_i686.whl", hash = "sha256:339f518c3c7a850dd033ab416ea25a692759dc7478a71131fe8869010d2b75e4", size = 197669, upload-time = "2025-10-02T14:34:03.664Z" }, - { url = "https://files.pythonhosted.org/packages/b7/36/c4f219ef4a17a4f7a64ed3569bc2b5a9c8311abdb22249ac96093625b1a4/xxhash-3.6.0-cp310-cp310-musllinux_1_2_ppc64le.whl", hash = "sha256:bf48889c9630542d4709192578aebbd836177c9f7a4a2778a7d6340107c65f06", size = 210018, upload-time = "2025-10-02T14:34:05.325Z" }, - { url = "https://files.pythonhosted.org/packages/fd/06/bfac889a374fc2fc439a69223d1750eed2e18a7db8514737ab630534fa08/xxhash-3.6.0-cp310-cp310-musllinux_1_2_s390x.whl", hash = "sha256:5576b002a56207f640636056b4160a378fe36a58db73ae5c27a7ec8db35f71d4", size = 413058, upload-time = "2025-10-02T14:34:06.925Z" }, - { url = "https://files.pythonhosted.org/packages/c9/d1/555d8447e0dd32ad0930a249a522bb2e289f0d08b6b16204cfa42c1f5a0c/xxhash-3.6.0-cp310-cp310-musllinux_1_2_x86_64.whl", hash = "sha256:af1f3278bd02814d6dedc5dec397993b549d6f16c19379721e5a1d31e132c49b", size = 190628, upload-time = "2025-10-02T14:34:08.669Z" }, - { url = "https://files.pythonhosted.org/packages/d1/15/8751330b5186cedc4ed4b597989882ea05e0408b53fa47bcb46a6125bfc6/xxhash-3.6.0-cp310-cp310-win32.whl", hash = "sha256:aed058764db109dc9052720da65fafe84873b05eb8b07e5e653597951af57c3b", size = 30577, upload-time = "2025-10-02T14:34:10.234Z" }, - { url = "https://files.pythonhosted.org/packages/bb/cc/53f87e8b5871a6eb2ff7e89c48c66093bda2be52315a8161ddc54ea550c4/xxhash-3.6.0-cp310-cp310-win_amd64.whl", hash = "sha256:e82da5670f2d0d98950317f82a0e4a0197150ff19a6df2ba40399c2a3b9ae5fb", size = 31487, upload-time = "2025-10-02T14:34:11.618Z" }, - { url = "https://files.pythonhosted.org/packages/9f/00/60f9ea3bb697667a14314d7269956f58bf56bb73864f8f8d52a3c2535e9a/xxhash-3.6.0-cp310-cp310-win_arm64.whl", hash = "sha256:4a082ffff8c6ac07707fb6b671caf7c6e020c75226c561830b73d862060f281d", size = 27863, upload-time = "2025-10-02T14:34:12.619Z" }, - { url = "https://files.pythonhosted.org/packages/17/d4/cc2f0400e9154df4b9964249da78ebd72f318e35ccc425e9f403c392f22a/xxhash-3.6.0-cp311-cp311-macosx_10_9_x86_64.whl", hash = "sha256:b47bbd8cf2d72797f3c2772eaaac0ded3d3af26481a26d7d7d41dc2d3c46b04a", size = 32844, upload-time = "2025-10-02T14:34:14.037Z" }, - { url = "https://files.pythonhosted.org/packages/5e/ec/1cc11cd13e26ea8bc3cb4af4eaadd8d46d5014aebb67be3f71fb0b68802a/xxhash-3.6.0-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:2b6821e94346f96db75abaa6e255706fb06ebd530899ed76d32cd99f20dc52fa", size = 30809, upload-time = "2025-10-02T14:34:15.484Z" }, - { url = "https://files.pythonhosted.org/packages/04/5f/19fe357ea348d98ca22f456f75a30ac0916b51c753e1f8b2e0e6fb884cce/xxhash-3.6.0-cp311-cp311-manylinux1_i686.manylinux_2_28_i686.manylinux_2_5_i686.whl", hash = "sha256:d0a9751f71a1a65ce3584e9cae4467651c7e70c9d31017fa57574583a4540248", size = 194665, upload-time = "2025-10-02T14:34:16.541Z" }, - { url = "https://files.pythonhosted.org/packages/90/3b/d1f1a8f5442a5fd8beedae110c5af7604dc37349a8e16519c13c19a9a2de/xxhash-3.6.0-cp311-cp311-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:8b29ee68625ab37b04c0b40c3fafdf24d2f75ccd778333cfb698f65f6c463f62", size = 213550, upload-time = "2025-10-02T14:34:17.878Z" }, - { url = "https://files.pythonhosted.org/packages/c4/ef/3a9b05eb527457d5db13a135a2ae1a26c80fecd624d20f3e8dcc4cb170f3/xxhash-3.6.0-cp311-cp311-manylinux2014_ppc64le.manylinux_2_17_ppc64le.manylinux_2_28_ppc64le.whl", hash = "sha256:6812c25fe0d6c36a46ccb002f40f27ac903bf18af9f6dd8f9669cb4d176ab18f", size = 212384, upload-time = "2025-10-02T14:34:19.182Z" }, - { url = "https://files.pythonhosted.org/packages/0f/18/ccc194ee698c6c623acbf0f8c2969811a8a4b6185af5e824cd27b9e4fd3e/xxhash-3.6.0-cp311-cp311-manylinux2014_s390x.manylinux_2_17_s390x.manylinux_2_28_s390x.whl", hash = "sha256:4ccbff013972390b51a18ef1255ef5ac125c92dc9143b2d1909f59abc765540e", size = 445749, upload-time = "2025-10-02T14:34:20.659Z" }, - { url = "https://files.pythonhosted.org/packages/a5/86/cf2c0321dc3940a7aa73076f4fd677a0fb3e405cb297ead7d864fd90847e/xxhash-3.6.0-cp311-cp311-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:297b7fbf86c82c550e12e8fb71968b3f033d27b874276ba3624ea868c11165a8", size = 193880, upload-time = "2025-10-02T14:34:22.431Z" }, - { url = "https://files.pythonhosted.org/packages/82/fb/96213c8560e6f948a1ecc9a7613f8032b19ee45f747f4fca4eb31bb6d6ed/xxhash-3.6.0-cp311-cp311-musllinux_1_2_aarch64.whl", hash = "sha256:dea26ae1eb293db089798d3973a5fc928a18fdd97cc8801226fae705b02b14b0", size = 210912, upload-time = "2025-10-02T14:34:23.937Z" }, - { url = "https://files.pythonhosted.org/packages/40/aa/4395e669b0606a096d6788f40dbdf2b819d6773aa290c19e6e83cbfc312f/xxhash-3.6.0-cp311-cp311-musllinux_1_2_i686.whl", hash = "sha256:7a0b169aafb98f4284f73635a8e93f0735f9cbde17bd5ec332480484241aaa77", size = 198654, upload-time = "2025-10-02T14:34:25.644Z" }, - { url = "https://files.pythonhosted.org/packages/67/74/b044fcd6b3d89e9b1b665924d85d3f400636c23590226feb1eb09e1176ce/xxhash-3.6.0-cp311-cp311-musllinux_1_2_ppc64le.whl", hash = "sha256:08d45aef063a4531b785cd72de4887766d01dc8f362a515693df349fdb825e0c", size = 210867, upload-time = "2025-10-02T14:34:27.203Z" }, - { url = "https://files.pythonhosted.org/packages/bc/fd/3ce73bf753b08cb19daee1eb14aa0d7fe331f8da9c02dd95316ddfe5275e/xxhash-3.6.0-cp311-cp311-musllinux_1_2_s390x.whl", hash = "sha256:929142361a48ee07f09121fe9e96a84950e8d4df3bb298ca5d88061969f34d7b", size = 414012, upload-time = "2025-10-02T14:34:28.409Z" }, - { url = "https://files.pythonhosted.org/packages/ba/b3/5a4241309217c5c876f156b10778f3ab3af7ba7e3259e6d5f5c7d0129eb2/xxhash-3.6.0-cp311-cp311-musllinux_1_2_x86_64.whl", hash = "sha256:51312c768403d8540487dbbfb557454cfc55589bbde6424456951f7fcd4facb3", size = 191409, upload-time = "2025-10-02T14:34:29.696Z" }, - { url = "https://files.pythonhosted.org/packages/c0/01/99bfbc15fb9abb9a72b088c1d95219fc4782b7d01fc835bd5744d66dd0b8/xxhash-3.6.0-cp311-cp311-win32.whl", hash = "sha256:d1927a69feddc24c987b337ce81ac15c4720955b667fe9b588e02254b80446fd", size = 30574, upload-time = "2025-10-02T14:34:31.028Z" }, - { url = "https://files.pythonhosted.org/packages/65/79/9d24d7f53819fe301b231044ea362ce64e86c74f6e8c8e51320de248b3e5/xxhash-3.6.0-cp311-cp311-win_amd64.whl", hash = "sha256:26734cdc2d4ffe449b41d186bbeac416f704a482ed835d375a5c0cb02bc63fef", size = 31481, upload-time = "2025-10-02T14:34:32.062Z" }, - { url = "https://files.pythonhosted.org/packages/30/4e/15cd0e3e8772071344eab2961ce83f6e485111fed8beb491a3f1ce100270/xxhash-3.6.0-cp311-cp311-win_arm64.whl", hash = "sha256:d72f67ef8bf36e05f5b6c65e8524f265bd61071471cd4cf1d36743ebeeeb06b7", size = 27861, upload-time = "2025-10-02T14:34:33.555Z" }, - { url = "https://files.pythonhosted.org/packages/9a/07/d9412f3d7d462347e4511181dea65e47e0d0e16e26fbee2ea86a2aefb657/xxhash-3.6.0-cp312-cp312-macosx_10_13_x86_64.whl", hash = "sha256:01362c4331775398e7bb34e3ab403bc9ee9f7c497bc7dee6272114055277dd3c", size = 32744, upload-time = "2025-10-02T14:34:34.622Z" }, - { url = "https://files.pythonhosted.org/packages/79/35/0429ee11d035fc33abe32dca1b2b69e8c18d236547b9a9b72c1929189b9a/xxhash-3.6.0-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:b7b2df81a23f8cb99656378e72501b2cb41b1827c0f5a86f87d6b06b69f9f204", size = 30816, upload-time = "2025-10-02T14:34:36.043Z" }, - { url = "https://files.pythonhosted.org/packages/b7/f2/57eb99aa0f7d98624c0932c5b9a170e1806406cdbcdb510546634a1359e0/xxhash-3.6.0-cp312-cp312-manylinux1_i686.manylinux_2_28_i686.manylinux_2_5_i686.whl", hash = "sha256:dc94790144e66b14f67b10ac8ed75b39ca47536bf8800eb7c24b50271ea0c490", size = 194035, upload-time = "2025-10-02T14:34:37.354Z" }, - { url = "https://files.pythonhosted.org/packages/4c/ed/6224ba353690d73af7a3f1c7cdb1fc1b002e38f783cb991ae338e1eb3d79/xxhash-3.6.0-cp312-cp312-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:93f107c673bccf0d592cdba077dedaf52fe7f42dcd7676eba1f6d6f0c3efffd2", size = 212914, upload-time = "2025-10-02T14:34:38.6Z" }, - { url = "https://files.pythonhosted.org/packages/38/86/fb6b6130d8dd6b8942cc17ab4d90e223653a89aa32ad2776f8af7064ed13/xxhash-3.6.0-cp312-cp312-manylinux2014_ppc64le.manylinux_2_17_ppc64le.manylinux_2_28_ppc64le.whl", hash = "sha256:2aa5ee3444c25b69813663c9f8067dcfaa2e126dc55e8dddf40f4d1c25d7effa", size = 212163, upload-time = "2025-10-02T14:34:39.872Z" }, - { url = "https://files.pythonhosted.org/packages/ee/dc/e84875682b0593e884ad73b2d40767b5790d417bde603cceb6878901d647/xxhash-3.6.0-cp312-cp312-manylinux2014_s390x.manylinux_2_17_s390x.manylinux_2_28_s390x.whl", hash = "sha256:f7f99123f0e1194fa59cc69ad46dbae2e07becec5df50a0509a808f90a0f03f0", size = 445411, upload-time = "2025-10-02T14:34:41.569Z" }, - { url = "https://files.pythonhosted.org/packages/11/4f/426f91b96701ec2f37bb2b8cec664eff4f658a11f3fa9d94f0a887ea6d2b/xxhash-3.6.0-cp312-cp312-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:49e03e6fe2cac4a1bc64952dd250cf0dbc5ef4ebb7b8d96bce82e2de163c82a2", size = 193883, upload-time = "2025-10-02T14:34:43.249Z" }, - { url = "https://files.pythonhosted.org/packages/53/5a/ddbb83eee8e28b778eacfc5a85c969673e4023cdeedcfcef61f36731610b/xxhash-3.6.0-cp312-cp312-musllinux_1_2_aarch64.whl", hash = "sha256:bd17fede52a17a4f9a7bc4472a5867cb0b160deeb431795c0e4abe158bc784e9", size = 210392, upload-time = "2025-10-02T14:34:45.042Z" }, - { url = "https://files.pythonhosted.org/packages/1e/c2/ff69efd07c8c074ccdf0a4f36fcdd3d27363665bcdf4ba399abebe643465/xxhash-3.6.0-cp312-cp312-musllinux_1_2_i686.whl", hash = "sha256:6fb5f5476bef678f69db04f2bd1efbed3030d2aba305b0fc1773645f187d6a4e", size = 197898, upload-time = "2025-10-02T14:34:46.302Z" }, - { url = "https://files.pythonhosted.org/packages/58/ca/faa05ac19b3b622c7c9317ac3e23954187516298a091eb02c976d0d3dd45/xxhash-3.6.0-cp312-cp312-musllinux_1_2_ppc64le.whl", hash = "sha256:843b52f6d88071f87eba1631b684fcb4b2068cd2180a0224122fe4ef011a9374", size = 210655, upload-time = "2025-10-02T14:34:47.571Z" }, - { url = "https://files.pythonhosted.org/packages/d4/7a/06aa7482345480cc0cb597f5c875b11a82c3953f534394f620b0be2f700c/xxhash-3.6.0-cp312-cp312-musllinux_1_2_s390x.whl", hash = "sha256:7d14a6cfaf03b1b6f5f9790f76880601ccc7896aff7ab9cd8978a939c1eb7e0d", size = 414001, upload-time = "2025-10-02T14:34:49.273Z" }, - { url = "https://files.pythonhosted.org/packages/23/07/63ffb386cd47029aa2916b3d2f454e6cc5b9f5c5ada3790377d5430084e7/xxhash-3.6.0-cp312-cp312-musllinux_1_2_x86_64.whl", hash = "sha256:418daf3db71e1413cfe211c2f9a528456936645c17f46b5204705581a45390ae", size = 191431, upload-time = "2025-10-02T14:34:50.798Z" }, - { url = "https://files.pythonhosted.org/packages/0f/93/14fde614cadb4ddf5e7cebf8918b7e8fac5ae7861c1875964f17e678205c/xxhash-3.6.0-cp312-cp312-win32.whl", hash = "sha256:50fc255f39428a27299c20e280d6193d8b63b8ef8028995323bf834a026b4fbb", size = 30617, upload-time = "2025-10-02T14:34:51.954Z" }, - { url = "https://files.pythonhosted.org/packages/13/5d/0d125536cbe7565a83d06e43783389ecae0c0f2ed037b48ede185de477c0/xxhash-3.6.0-cp312-cp312-win_amd64.whl", hash = "sha256:c0f2ab8c715630565ab8991b536ecded9416d615538be8ecddce43ccf26cbc7c", size = 31534, upload-time = "2025-10-02T14:34:53.276Z" }, - { url = "https://files.pythonhosted.org/packages/54/85/6ec269b0952ec7e36ba019125982cf11d91256a778c7c3f98a4c5043d283/xxhash-3.6.0-cp312-cp312-win_arm64.whl", hash = "sha256:eae5c13f3bc455a3bbb68bdc513912dc7356de7e2280363ea235f71f54064829", size = 27876, upload-time = "2025-10-02T14:34:54.371Z" }, - { url = "https://files.pythonhosted.org/packages/33/76/35d05267ac82f53ae9b0e554da7c5e281ee61f3cad44c743f0fcd354f211/xxhash-3.6.0-cp313-cp313-macosx_10_13_x86_64.whl", hash = "sha256:599e64ba7f67472481ceb6ee80fa3bd828fd61ba59fb11475572cc5ee52b89ec", size = 32738, upload-time = "2025-10-02T14:34:55.839Z" }, - { url = "https://files.pythonhosted.org/packages/31/a8/3fbce1cd96534a95e35d5120637bf29b0d7f5d8fa2f6374e31b4156dd419/xxhash-3.6.0-cp313-cp313-macosx_11_0_arm64.whl", hash = "sha256:7d8b8aaa30fca4f16f0c84a5c8d7ddee0e25250ec2796c973775373257dde8f1", size = 30821, upload-time = "2025-10-02T14:34:57.219Z" }, - { url = "https://files.pythonhosted.org/packages/0c/ea/d387530ca7ecfa183cb358027f1833297c6ac6098223fd14f9782cd0015c/xxhash-3.6.0-cp313-cp313-manylinux1_i686.manylinux_2_28_i686.manylinux_2_5_i686.whl", hash = "sha256:d597acf8506d6e7101a4a44a5e428977a51c0fadbbfd3c39650cca9253f6e5a6", size = 194127, upload-time = "2025-10-02T14:34:59.21Z" }, - { url = "https://files.pythonhosted.org/packages/ba/0c/71435dcb99874b09a43b8d7c54071e600a7481e42b3e3ce1eb5226a5711a/xxhash-3.6.0-cp313-cp313-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:858dc935963a33bc33490128edc1c12b0c14d9c7ebaa4e387a7869ecc4f3e263", size = 212975, upload-time = "2025-10-02T14:35:00.816Z" }, - { url = "https://files.pythonhosted.org/packages/84/7a/c2b3d071e4bb4a90b7057228a99b10d51744878f4a8a6dd643c8bd897620/xxhash-3.6.0-cp313-cp313-manylinux2014_ppc64le.manylinux_2_17_ppc64le.manylinux_2_28_ppc64le.whl", hash = "sha256:ba284920194615cb8edf73bf52236ce2e1664ccd4a38fdb543506413529cc546", size = 212241, upload-time = "2025-10-02T14:35:02.207Z" }, - { url = "https://files.pythonhosted.org/packages/81/5f/640b6eac0128e215f177df99eadcd0f1b7c42c274ab6a394a05059694c5a/xxhash-3.6.0-cp313-cp313-manylinux2014_s390x.manylinux_2_17_s390x.manylinux_2_28_s390x.whl", hash = "sha256:4b54219177f6c6674d5378bd862c6aedf64725f70dd29c472eaae154df1a2e89", size = 445471, upload-time = "2025-10-02T14:35:03.61Z" }, - { url = "https://files.pythonhosted.org/packages/5e/1e/3c3d3ef071b051cc3abbe3721ffb8365033a172613c04af2da89d5548a87/xxhash-3.6.0-cp313-cp313-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:42c36dd7dbad2f5238950c377fcbf6811b1cdb1c444fab447960030cea60504d", size = 193936, upload-time = "2025-10-02T14:35:05.013Z" }, - { url = "https://files.pythonhosted.org/packages/2c/bd/4a5f68381939219abfe1c22a9e3a5854a4f6f6f3c4983a87d255f21f2e5d/xxhash-3.6.0-cp313-cp313-musllinux_1_2_aarch64.whl", hash = "sha256:f22927652cba98c44639ffdc7aaf35828dccf679b10b31c4ad72a5b530a18eb7", size = 210440, upload-time = "2025-10-02T14:35:06.239Z" }, - { url = "https://files.pythonhosted.org/packages/eb/37/b80fe3d5cfb9faff01a02121a0f4d565eb7237e9e5fc66e73017e74dcd36/xxhash-3.6.0-cp313-cp313-musllinux_1_2_i686.whl", hash = "sha256:b45fad44d9c5c119e9c6fbf2e1c656a46dc68e280275007bbfd3d572b21426db", size = 197990, upload-time = "2025-10-02T14:35:07.735Z" }, - { url = "https://files.pythonhosted.org/packages/d7/fd/2c0a00c97b9e18f72e1f240ad4e8f8a90fd9d408289ba9c7c495ed7dc05c/xxhash-3.6.0-cp313-cp313-musllinux_1_2_ppc64le.whl", hash = "sha256:6f2580ffab1a8b68ef2b901cde7e55fa8da5e4be0977c68f78fc80f3c143de42", size = 210689, upload-time = "2025-10-02T14:35:09.438Z" }, - { url = "https://files.pythonhosted.org/packages/93/86/5dd8076a926b9a95db3206aba20d89a7fc14dd5aac16e5c4de4b56033140/xxhash-3.6.0-cp313-cp313-musllinux_1_2_s390x.whl", hash = "sha256:40c391dd3cd041ebc3ffe6f2c862f402e306eb571422e0aa918d8070ba31da11", size = 414068, upload-time = "2025-10-02T14:35:11.162Z" }, - { url = "https://files.pythonhosted.org/packages/af/3c/0bb129170ee8f3650f08e993baee550a09593462a5cddd8e44d0011102b1/xxhash-3.6.0-cp313-cp313-musllinux_1_2_x86_64.whl", hash = "sha256:f205badabde7aafd1a31e8ca2a3e5a763107a71c397c4481d6a804eb5063d8bd", size = 191495, upload-time = "2025-10-02T14:35:12.971Z" }, - { url = "https://files.pythonhosted.org/packages/e9/3a/6797e0114c21d1725e2577508e24006fd7ff1d8c0c502d3b52e45c1771d8/xxhash-3.6.0-cp313-cp313-win32.whl", hash = "sha256:2577b276e060b73b73a53042ea5bd5203d3e6347ce0d09f98500f418a9fcf799", size = 30620, upload-time = "2025-10-02T14:35:14.129Z" }, - { url = "https://files.pythonhosted.org/packages/86/15/9bc32671e9a38b413a76d24722a2bf8784a132c043063a8f5152d390b0f9/xxhash-3.6.0-cp313-cp313-win_amd64.whl", hash = "sha256:757320d45d2fbcce8f30c42a6b2f47862967aea7bf458b9625b4bbe7ee390392", size = 31542, upload-time = "2025-10-02T14:35:15.21Z" }, - { url = "https://files.pythonhosted.org/packages/39/c5/cc01e4f6188656e56112d6a8e0dfe298a16934b8c47a247236549a3f7695/xxhash-3.6.0-cp313-cp313-win_arm64.whl", hash = "sha256:457b8f85dec5825eed7b69c11ae86834a018b8e3df5e77783c999663da2f96d6", size = 27880, upload-time = "2025-10-02T14:35:16.315Z" }, - { url = "https://files.pythonhosted.org/packages/f3/30/25e5321c8732759e930c555176d37e24ab84365482d257c3b16362235212/xxhash-3.6.0-cp313-cp313t-macosx_10_13_x86_64.whl", hash = "sha256:a42e633d75cdad6d625434e3468126c73f13f7584545a9cf34e883aa1710e702", size = 32956, upload-time = "2025-10-02T14:35:17.413Z" }, - { url = "https://files.pythonhosted.org/packages/9f/3c/0573299560d7d9f8ab1838f1efc021a280b5ae5ae2e849034ef3dee18810/xxhash-3.6.0-cp313-cp313t-macosx_11_0_arm64.whl", hash = "sha256:568a6d743219e717b07b4e03b0a828ce593833e498c3b64752e0f5df6bfe84db", size = 31072, upload-time = "2025-10-02T14:35:18.844Z" }, - { url = "https://files.pythonhosted.org/packages/7a/1c/52d83a06e417cd9d4137722693424885cc9878249beb3a7c829e74bf7ce9/xxhash-3.6.0-cp313-cp313t-manylinux1_i686.manylinux_2_28_i686.manylinux_2_5_i686.whl", hash = "sha256:bec91b562d8012dae276af8025a55811b875baace6af510412a5e58e3121bc54", size = 196409, upload-time = "2025-10-02T14:35:20.31Z" }, - { url = "https://files.pythonhosted.org/packages/e3/8e/c6d158d12a79bbd0b878f8355432075fc82759e356ab5a111463422a239b/xxhash-3.6.0-cp313-cp313t-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:78e7f2f4c521c30ad5e786fdd6bae89d47a32672a80195467b5de0480aa97b1f", size = 215736, upload-time = "2025-10-02T14:35:21.616Z" }, - { url = "https://files.pythonhosted.org/packages/bc/68/c4c80614716345d55071a396cf03d06e34b5f4917a467faf43083c995155/xxhash-3.6.0-cp313-cp313t-manylinux2014_ppc64le.manylinux_2_17_ppc64le.manylinux_2_28_ppc64le.whl", hash = "sha256:3ed0df1b11a79856df5ffcab572cbd6b9627034c1c748c5566fa79df9048a7c5", size = 214833, upload-time = "2025-10-02T14:35:23.32Z" }, - { url = "https://files.pythonhosted.org/packages/7e/e9/ae27c8ffec8b953efa84c7c4a6c6802c263d587b9fc0d6e7cea64e08c3af/xxhash-3.6.0-cp313-cp313t-manylinux2014_s390x.manylinux_2_17_s390x.manylinux_2_28_s390x.whl", hash = "sha256:0e4edbfc7d420925b0dd5e792478ed393d6e75ff8fc219a6546fb446b6a417b1", size = 448348, upload-time = "2025-10-02T14:35:25.111Z" }, - { url = "https://files.pythonhosted.org/packages/d7/6b/33e21afb1b5b3f46b74b6bd1913639066af218d704cc0941404ca717fc57/xxhash-3.6.0-cp313-cp313t-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:fba27a198363a7ef87f8c0f6b171ec36b674fe9053742c58dd7e3201c1ab30ee", size = 196070, upload-time = "2025-10-02T14:35:26.586Z" }, - { url = "https://files.pythonhosted.org/packages/96/b6/fcabd337bc5fa624e7203aa0fa7d0c49eed22f72e93229431752bddc83d9/xxhash-3.6.0-cp313-cp313t-musllinux_1_2_aarch64.whl", hash = "sha256:794fe9145fe60191c6532fa95063765529770edcdd67b3d537793e8004cabbfd", size = 212907, upload-time = "2025-10-02T14:35:28.087Z" }, - { url = "https://files.pythonhosted.org/packages/4b/d3/9ee6160e644d660fcf176c5825e61411c7f62648728f69c79ba237250143/xxhash-3.6.0-cp313-cp313t-musllinux_1_2_i686.whl", hash = "sha256:6105ef7e62b5ac73a837778efc331a591d8442f8ef5c7e102376506cb4ae2729", size = 200839, upload-time = "2025-10-02T14:35:29.857Z" }, - { url = "https://files.pythonhosted.org/packages/0d/98/e8de5baa5109394baf5118f5e72ab21a86387c4f89b0e77ef3e2f6b0327b/xxhash-3.6.0-cp313-cp313t-musllinux_1_2_ppc64le.whl", hash = "sha256:f01375c0e55395b814a679b3eea205db7919ac2af213f4a6682e01220e5fe292", size = 213304, upload-time = "2025-10-02T14:35:31.222Z" }, - { url = "https://files.pythonhosted.org/packages/7b/1d/71056535dec5c3177eeb53e38e3d367dd1d16e024e63b1cee208d572a033/xxhash-3.6.0-cp313-cp313t-musllinux_1_2_s390x.whl", hash = "sha256:d706dca2d24d834a4661619dcacf51a75c16d65985718d6a7d73c1eeeb903ddf", size = 416930, upload-time = "2025-10-02T14:35:32.517Z" }, - { url = "https://files.pythonhosted.org/packages/dc/6c/5cbde9de2cd967c322e651c65c543700b19e7ae3e0aae8ece3469bf9683d/xxhash-3.6.0-cp313-cp313t-musllinux_1_2_x86_64.whl", hash = "sha256:5f059d9faeacd49c0215d66f4056e1326c80503f51a1532ca336a385edadd033", size = 193787, upload-time = "2025-10-02T14:35:33.827Z" }, - { url = "https://files.pythonhosted.org/packages/19/fa/0172e350361d61febcea941b0cc541d6e6c8d65d153e85f850a7b256ff8a/xxhash-3.6.0-cp313-cp313t-win32.whl", hash = "sha256:1244460adc3a9be84731d72b8e80625788e5815b68da3da8b83f78115a40a7ec", size = 30916, upload-time = "2025-10-02T14:35:35.107Z" }, - { url = "https://files.pythonhosted.org/packages/ad/e6/e8cf858a2b19d6d45820f072eff1bea413910592ff17157cabc5f1227a16/xxhash-3.6.0-cp313-cp313t-win_amd64.whl", hash = "sha256:b1e420ef35c503869c4064f4a2f2b08ad6431ab7b229a05cce39d74268bca6b8", size = 31799, upload-time = "2025-10-02T14:35:36.165Z" }, - { url = "https://files.pythonhosted.org/packages/56/15/064b197e855bfb7b343210e82490ae672f8bc7cdf3ddb02e92f64304ee8a/xxhash-3.6.0-cp313-cp313t-win_arm64.whl", hash = "sha256:ec44b73a4220623235f67a996c862049f375df3b1052d9899f40a6382c32d746", size = 28044, upload-time = "2025-10-02T14:35:37.195Z" }, - { url = "https://files.pythonhosted.org/packages/7e/5e/0138bc4484ea9b897864d59fce9be9086030825bc778b76cb5a33a906d37/xxhash-3.6.0-cp314-cp314-macosx_10_13_x86_64.whl", hash = "sha256:a40a3d35b204b7cc7643cbcf8c9976d818cb47befcfac8bbefec8038ac363f3e", size = 32754, upload-time = "2025-10-02T14:35:38.245Z" }, - { url = "https://files.pythonhosted.org/packages/18/d7/5dac2eb2ec75fd771957a13e5dda560efb2176d5203f39502a5fc571f899/xxhash-3.6.0-cp314-cp314-macosx_11_0_arm64.whl", hash = "sha256:a54844be970d3fc22630b32d515e79a90d0a3ddb2644d8d7402e3c4c8da61405", size = 30846, upload-time = "2025-10-02T14:35:39.6Z" }, - { url = "https://files.pythonhosted.org/packages/fe/71/8bc5be2bb00deb5682e92e8da955ebe5fa982da13a69da5a40a4c8db12fb/xxhash-3.6.0-cp314-cp314-manylinux1_i686.manylinux_2_28_i686.manylinux_2_5_i686.whl", hash = "sha256:016e9190af8f0a4e3741343777710e3d5717427f175adfdc3e72508f59e2a7f3", size = 194343, upload-time = "2025-10-02T14:35:40.69Z" }, - { url = "https://files.pythonhosted.org/packages/e7/3b/52badfb2aecec2c377ddf1ae75f55db3ba2d321c5e164f14461c90837ef3/xxhash-3.6.0-cp314-cp314-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:4f6f72232f849eb9d0141e2ebe2677ece15adfd0fa599bc058aad83c714bb2c6", size = 213074, upload-time = "2025-10-02T14:35:42.29Z" }, - { url = "https://files.pythonhosted.org/packages/a2/2b/ae46b4e9b92e537fa30d03dbc19cdae57ed407e9c26d163895e968e3de85/xxhash-3.6.0-cp314-cp314-manylinux2014_ppc64le.manylinux_2_17_ppc64le.manylinux_2_28_ppc64le.whl", hash = "sha256:63275a8aba7865e44b1813d2177e0f5ea7eadad3dd063a21f7cf9afdc7054063", size = 212388, upload-time = "2025-10-02T14:35:43.929Z" }, - { url = "https://files.pythonhosted.org/packages/f5/80/49f88d3afc724b4ac7fbd664c8452d6db51b49915be48c6982659e0e7942/xxhash-3.6.0-cp314-cp314-manylinux2014_s390x.manylinux_2_17_s390x.manylinux_2_28_s390x.whl", hash = "sha256:3cd01fa2aa00d8b017c97eb46b9a794fbdca53fc14f845f5a328c71254b0abb7", size = 445614, upload-time = "2025-10-02T14:35:45.216Z" }, - { url = "https://files.pythonhosted.org/packages/ed/ba/603ce3961e339413543d8cd44f21f2c80e2a7c5cfe692a7b1f2cccf58f3c/xxhash-3.6.0-cp314-cp314-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:0226aa89035b62b6a86d3c68df4d7c1f47a342b8683da2b60cedcddb46c4d95b", size = 194024, upload-time = "2025-10-02T14:35:46.959Z" }, - { url = "https://files.pythonhosted.org/packages/78/d1/8e225ff7113bf81545cfdcd79eef124a7b7064a0bba53605ff39590b95c2/xxhash-3.6.0-cp314-cp314-musllinux_1_2_aarch64.whl", hash = "sha256:c6e193e9f56e4ca4923c61238cdaced324f0feac782544eb4c6d55ad5cc99ddd", size = 210541, upload-time = "2025-10-02T14:35:48.301Z" }, - { url = "https://files.pythonhosted.org/packages/6f/58/0f89d149f0bad89def1a8dd38feb50ccdeb643d9797ec84707091d4cb494/xxhash-3.6.0-cp314-cp314-musllinux_1_2_i686.whl", hash = "sha256:9176dcaddf4ca963d4deb93866d739a343c01c969231dbe21680e13a5d1a5bf0", size = 198305, upload-time = "2025-10-02T14:35:49.584Z" }, - { url = "https://files.pythonhosted.org/packages/11/38/5eab81580703c4df93feb5f32ff8fa7fe1e2c51c1f183ee4e48d4bb9d3d7/xxhash-3.6.0-cp314-cp314-musllinux_1_2_ppc64le.whl", hash = "sha256:c1ce4009c97a752e682b897aa99aef84191077a9433eb237774689f14f8ec152", size = 210848, upload-time = "2025-10-02T14:35:50.877Z" }, - { url = "https://files.pythonhosted.org/packages/5e/6b/953dc4b05c3ce678abca756416e4c130d2382f877a9c30a20d08ee6a77c0/xxhash-3.6.0-cp314-cp314-musllinux_1_2_s390x.whl", hash = "sha256:8cb2f4f679b01513b7adbb9b1b2f0f9cdc31b70007eaf9d59d0878809f385b11", size = 414142, upload-time = "2025-10-02T14:35:52.15Z" }, - { url = "https://files.pythonhosted.org/packages/08/a9/238ec0d4e81a10eb5026d4a6972677cbc898ba6c8b9dbaec12ae001b1b35/xxhash-3.6.0-cp314-cp314-musllinux_1_2_x86_64.whl", hash = "sha256:653a91d7c2ab54a92c19ccf43508b6a555440b9be1bc8be553376778be7f20b5", size = 191547, upload-time = "2025-10-02T14:35:53.547Z" }, - { url = "https://files.pythonhosted.org/packages/f1/ee/3cf8589e06c2164ac77c3bf0aa127012801128f1feebf2a079272da5737c/xxhash-3.6.0-cp314-cp314-win32.whl", hash = "sha256:a756fe893389483ee8c394d06b5ab765d96e68fbbfe6fde7aa17e11f5720559f", size = 31214, upload-time = "2025-10-02T14:35:54.746Z" }, - { url = "https://files.pythonhosted.org/packages/02/5d/a19552fbc6ad4cb54ff953c3908bbc095f4a921bc569433d791f755186f1/xxhash-3.6.0-cp314-cp314-win_amd64.whl", hash = "sha256:39be8e4e142550ef69629c9cd71b88c90e9a5db703fecbcf265546d9536ca4ad", size = 32290, upload-time = "2025-10-02T14:35:55.791Z" }, - { url = "https://files.pythonhosted.org/packages/b1/11/dafa0643bc30442c887b55baf8e73353a344ee89c1901b5a5c54a6c17d39/xxhash-3.6.0-cp314-cp314-win_arm64.whl", hash = "sha256:25915e6000338999236f1eb68a02a32c3275ac338628a7eaa5a269c401995679", size = 28795, upload-time = "2025-10-02T14:35:57.162Z" }, - { url = "https://files.pythonhosted.org/packages/2c/db/0e99732ed7f64182aef4a6fb145e1a295558deec2a746265dcdec12d191e/xxhash-3.6.0-cp314-cp314t-macosx_10_13_x86_64.whl", hash = "sha256:c5294f596a9017ca5a3e3f8884c00b91ab2ad2933cf288f4923c3fd4346cf3d4", size = 32955, upload-time = "2025-10-02T14:35:58.267Z" }, - { url = "https://files.pythonhosted.org/packages/55/f4/2a7c3c68e564a099becfa44bb3d398810cc0ff6749b0d3cb8ccb93f23c14/xxhash-3.6.0-cp314-cp314t-macosx_11_0_arm64.whl", hash = "sha256:1cf9dcc4ab9cff01dfbba78544297a3a01dafd60f3bde4e2bfd016cf7e4ddc67", size = 31072, upload-time = "2025-10-02T14:35:59.382Z" }, - { url = "https://files.pythonhosted.org/packages/c6/d9/72a29cddc7250e8a5819dad5d466facb5dc4c802ce120645630149127e73/xxhash-3.6.0-cp314-cp314t-manylinux1_i686.manylinux_2_28_i686.manylinux_2_5_i686.whl", hash = "sha256:01262da8798422d0685f7cef03b2bd3f4f46511b02830861df548d7def4402ad", size = 196579, upload-time = "2025-10-02T14:36:00.838Z" }, - { url = "https://files.pythonhosted.org/packages/63/93/b21590e1e381040e2ca305a884d89e1c345b347404f7780f07f2cdd47ef4/xxhash-3.6.0-cp314-cp314t-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:51a73fb7cb3a3ead9f7a8b583ffd9b8038e277cdb8cb87cf890e88b3456afa0b", size = 215854, upload-time = "2025-10-02T14:36:02.207Z" }, - { url = "https://files.pythonhosted.org/packages/ce/b8/edab8a7d4fa14e924b29be877d54155dcbd8b80be85ea00d2be3413a9ed4/xxhash-3.6.0-cp314-cp314t-manylinux2014_ppc64le.manylinux_2_17_ppc64le.manylinux_2_28_ppc64le.whl", hash = "sha256:b9c6df83594f7df8f7f708ce5ebeacfc69f72c9fbaaababf6cf4758eaada0c9b", size = 214965, upload-time = "2025-10-02T14:36:03.507Z" }, - { url = "https://files.pythonhosted.org/packages/27/67/dfa980ac7f0d509d54ea0d5a486d2bb4b80c3f1bb22b66e6a05d3efaf6c0/xxhash-3.6.0-cp314-cp314t-manylinux2014_s390x.manylinux_2_17_s390x.manylinux_2_28_s390x.whl", hash = "sha256:627f0af069b0ea56f312fd5189001c24578868643203bca1abbc2c52d3a6f3ca", size = 448484, upload-time = "2025-10-02T14:36:04.828Z" }, - { url = "https://files.pythonhosted.org/packages/8c/63/8ffc2cc97e811c0ca5d00ab36604b3ea6f4254f20b7bc658ca825ce6c954/xxhash-3.6.0-cp314-cp314t-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:aa912c62f842dfd013c5f21a642c9c10cd9f4c4e943e0af83618b4a404d9091a", size = 196162, upload-time = "2025-10-02T14:36:06.182Z" }, - { url = "https://files.pythonhosted.org/packages/4b/77/07f0e7a3edd11a6097e990f6e5b815b6592459cb16dae990d967693e6ea9/xxhash-3.6.0-cp314-cp314t-musllinux_1_2_aarch64.whl", hash = "sha256:b465afd7909db30168ab62afe40b2fcf79eedc0b89a6c0ab3123515dc0df8b99", size = 213007, upload-time = "2025-10-02T14:36:07.733Z" }, - { url = "https://files.pythonhosted.org/packages/ae/d8/bc5fa0d152837117eb0bef6f83f956c509332ce133c91c63ce07ee7c4873/xxhash-3.6.0-cp314-cp314t-musllinux_1_2_i686.whl", hash = "sha256:a881851cf38b0a70e7c4d3ce81fc7afd86fbc2a024f4cfb2a97cf49ce04b75d3", size = 200956, upload-time = "2025-10-02T14:36:09.106Z" }, - { url = "https://files.pythonhosted.org/packages/26/a5/d749334130de9411783873e9b98ecc46688dad5db64ca6e04b02acc8b473/xxhash-3.6.0-cp314-cp314t-musllinux_1_2_ppc64le.whl", hash = "sha256:9b3222c686a919a0f3253cfc12bb118b8b103506612253b5baeaac10d8027cf6", size = 213401, upload-time = "2025-10-02T14:36:10.585Z" }, - { url = "https://files.pythonhosted.org/packages/89/72/abed959c956a4bfc72b58c0384bb7940663c678127538634d896b1195c10/xxhash-3.6.0-cp314-cp314t-musllinux_1_2_s390x.whl", hash = "sha256:c5aa639bc113e9286137cec8fadc20e9cd732b2cc385c0b7fa673b84fc1f2a93", size = 417083, upload-time = "2025-10-02T14:36:12.276Z" }, - { url = "https://files.pythonhosted.org/packages/0c/b3/62fd2b586283b7d7d665fb98e266decadf31f058f1cf6c478741f68af0cb/xxhash-3.6.0-cp314-cp314t-musllinux_1_2_x86_64.whl", hash = "sha256:5c1343d49ac102799905e115aee590183c3921d475356cb24b4de29a4bc56518", size = 193913, upload-time = "2025-10-02T14:36:14.025Z" }, - { url = "https://files.pythonhosted.org/packages/9a/9a/c19c42c5b3f5a4aad748a6d5b4f23df3bed7ee5445accc65a0fb3ff03953/xxhash-3.6.0-cp314-cp314t-win32.whl", hash = "sha256:5851f033c3030dd95c086b4a36a2683c2ff4a799b23af60977188b057e467119", size = 31586, upload-time = "2025-10-02T14:36:15.603Z" }, - { url = "https://files.pythonhosted.org/packages/03/d6/4cc450345be9924fd5dc8c590ceda1db5b43a0a889587b0ae81a95511360/xxhash-3.6.0-cp314-cp314t-win_amd64.whl", hash = "sha256:0444e7967dac37569052d2409b00a8860c2135cff05502df4da80267d384849f", size = 32526, upload-time = "2025-10-02T14:36:16.708Z" }, - { url = "https://files.pythonhosted.org/packages/0f/c9/7243eb3f9eaabd1a88a5a5acadf06df2d83b100c62684b7425c6a11bcaa8/xxhash-3.6.0-cp314-cp314t-win_arm64.whl", hash = "sha256:bb79b1e63f6fd84ec778a4b1916dfe0a7c3fdb986c06addd5db3a0d413819d95", size = 28898, upload-time = "2025-10-02T14:36:17.843Z" }, - { url = "https://files.pythonhosted.org/packages/93/1e/8aec23647a34a249f62e2398c42955acd9b4c6ed5cf08cbea94dc46f78d2/xxhash-3.6.0-pp311-pypy311_pp73-macosx_10_15_x86_64.whl", hash = "sha256:0f7b7e2ec26c1666ad5fc9dbfa426a6a3367ceaf79db5dd76264659d509d73b0", size = 30662, upload-time = "2025-10-02T14:37:01.743Z" }, - { url = "https://files.pythonhosted.org/packages/b8/0b/b14510b38ba91caf43006209db846a696ceea6a847a0c9ba0a5b1adc53d6/xxhash-3.6.0-pp311-pypy311_pp73-manylinux1_i686.manylinux_2_28_i686.manylinux_2_5_i686.whl", hash = "sha256:5dc1e14d14fa0f5789ec29a7062004b5933964bb9b02aae6622b8f530dc40296", size = 41056, upload-time = "2025-10-02T14:37:02.879Z" }, - { url = "https://files.pythonhosted.org/packages/50/55/15a7b8a56590e66ccd374bbfa3f9ffc45b810886c8c3b614e3f90bd2367c/xxhash-3.6.0-pp311-pypy311_pp73-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:881b47fc47e051b37d94d13e7455131054b56749b91b508b0907eb07900d1c13", size = 36251, upload-time = "2025-10-02T14:37:04.44Z" }, - { url = "https://files.pythonhosted.org/packages/62/b2/5ac99a041a29e58e95f907876b04f7067a0242cb85b5f39e726153981503/xxhash-3.6.0-pp311-pypy311_pp73-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:c6dc31591899f5e5666f04cc2e529e69b4072827085c1ef15294d91a004bc1bd", size = 32481, upload-time = "2025-10-02T14:37:05.869Z" }, - { url = "https://files.pythonhosted.org/packages/7b/d9/8d95e906764a386a3d3b596f3c68bb63687dfca806373509f51ce8eea81f/xxhash-3.6.0-pp311-pypy311_pp73-win_amd64.whl", hash = "sha256:15e0dac10eb9309508bfc41f7f9deaa7755c69e35af835db9cb10751adebc35d", size = 31565, upload-time = "2025-10-02T14:37:06.966Z" }, -] - -[[package]] -name = "zstandard" -version = "0.25.0" -source = { registry = "https://pypi.org/simple" } -sdist = { url = "https://files.pythonhosted.org/packages/fd/aa/3e0508d5a5dd96529cdc5a97011299056e14c6505b678fd58938792794b1/zstandard-0.25.0.tar.gz", hash = "sha256:7713e1179d162cf5c7906da876ec2ccb9c3a9dcbdffef0cc7f70c3667a205f0b", size = 711513, upload-time = "2025-09-14T22:15:54.002Z" } -wheels = [ - { url = "https://files.pythonhosted.org/packages/56/7a/28efd1d371f1acd037ac64ed1c5e2b41514a6cc937dd6ab6a13ab9f0702f/zstandard-0.25.0-cp310-cp310-macosx_10_9_x86_64.whl", hash = "sha256:e59fdc271772f6686e01e1b3b74537259800f57e24280be3f29c8a0deb1904dd", size = 795256, upload-time = "2025-09-14T22:15:56.415Z" }, - { url = "https://files.pythonhosted.org/packages/96/34/ef34ef77f1ee38fc8e4f9775217a613b452916e633c4f1d98f31db52c4a5/zstandard-0.25.0-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:4d441506e9b372386a5271c64125f72d5df6d2a8e8a2a45a0ae09b03cb781ef7", size = 640565, upload-time = "2025-09-14T22:15:58.177Z" }, - { url = "https://files.pythonhosted.org/packages/9d/1b/4fdb2c12eb58f31f28c4d28e8dc36611dd7205df8452e63f52fb6261d13e/zstandard-0.25.0-cp310-cp310-manylinux2010_i686.manylinux2014_i686.manylinux_2_12_i686.manylinux_2_17_i686.whl", hash = "sha256:ab85470ab54c2cb96e176f40342d9ed41e58ca5733be6a893b730e7af9c40550", size = 5345306, upload-time = "2025-09-14T22:16:00.165Z" }, - { url = "https://files.pythonhosted.org/packages/73/28/a44bdece01bca027b079f0e00be3b6bd89a4df180071da59a3dd7381665b/zstandard-0.25.0-cp310-cp310-manylinux2014_aarch64.manylinux_2_17_aarch64.whl", hash = "sha256:e05ab82ea7753354bb054b92e2f288afb750e6b439ff6ca78af52939ebbc476d", size = 5055561, upload-time = "2025-09-14T22:16:02.22Z" }, - { url = "https://files.pythonhosted.org/packages/e9/74/68341185a4f32b274e0fc3410d5ad0750497e1acc20bd0f5b5f64ce17785/zstandard-0.25.0-cp310-cp310-manylinux2014_ppc64le.manylinux_2_17_ppc64le.whl", hash = "sha256:78228d8a6a1c177a96b94f7e2e8d012c55f9c760761980da16ae7546a15a8e9b", size = 5402214, upload-time = "2025-09-14T22:16:04.109Z" }, - { url = "https://files.pythonhosted.org/packages/8b/67/f92e64e748fd6aaffe01e2b75a083c0c4fd27abe1c8747fee4555fcee7dd/zstandard-0.25.0-cp310-cp310-manylinux2014_s390x.manylinux_2_17_s390x.whl", hash = "sha256:2b6bd67528ee8b5c5f10255735abc21aa106931f0dbaf297c7be0c886353c3d0", size = 5449703, upload-time = "2025-09-14T22:16:06.312Z" }, - { url = "https://files.pythonhosted.org/packages/fd/e5/6d36f92a197c3c17729a2125e29c169f460538a7d939a27eaaa6dcfcba8e/zstandard-0.25.0-cp310-cp310-manylinux2014_x86_64.manylinux_2_17_x86_64.whl", hash = "sha256:4b6d83057e713ff235a12e73916b6d356e3084fd3d14ced499d84240f3eecee0", size = 5556583, upload-time = "2025-09-14T22:16:08.457Z" }, - { url = "https://files.pythonhosted.org/packages/d7/83/41939e60d8d7ebfe2b747be022d0806953799140a702b90ffe214d557638/zstandard-0.25.0-cp310-cp310-musllinux_1_1_aarch64.whl", hash = "sha256:9174f4ed06f790a6869b41cba05b43eeb9a35f8993c4422ab853b705e8112bbd", size = 5045332, upload-time = "2025-09-14T22:16:10.444Z" }, - { url = "https://files.pythonhosted.org/packages/b3/87/d3ee185e3d1aa0133399893697ae91f221fda79deb61adbe998a7235c43f/zstandard-0.25.0-cp310-cp310-musllinux_1_1_x86_64.whl", hash = "sha256:25f8f3cd45087d089aef5ba3848cd9efe3ad41163d3400862fb42f81a3a46701", size = 5572283, upload-time = "2025-09-14T22:16:12.128Z" }, - { url = "https://files.pythonhosted.org/packages/0a/1d/58635ae6104df96671076ac7d4ae7816838ce7debd94aecf83e30b7121b0/zstandard-0.25.0-cp310-cp310-musllinux_1_2_aarch64.whl", hash = "sha256:3756b3e9da9b83da1796f8809dd57cb024f838b9eeafde28f3cb472012797ac1", size = 4959754, upload-time = "2025-09-14T22:16:14.225Z" }, - { url = "https://files.pythonhosted.org/packages/75/d6/57e9cb0a9983e9a229dd8fd2e6e96593ef2aa82a3907188436f22b111ccd/zstandard-0.25.0-cp310-cp310-musllinux_1_2_i686.whl", hash = "sha256:81dad8d145d8fd981b2962b686b2241d3a1ea07733e76a2f15435dfb7fb60150", size = 5266477, upload-time = "2025-09-14T22:16:16.343Z" }, - { url = "https://files.pythonhosted.org/packages/d1/a9/ee891e5edf33a6ebce0a028726f0bbd8567effe20fe3d5808c42323e8542/zstandard-0.25.0-cp310-cp310-musllinux_1_2_ppc64le.whl", hash = "sha256:a5a419712cf88862a45a23def0ae063686db3d324cec7edbe40509d1a79a0aab", size = 5440914, upload-time = "2025-09-14T22:16:18.453Z" }, - { url = "https://files.pythonhosted.org/packages/58/08/a8522c28c08031a9521f27abc6f78dbdee7312a7463dd2cfc658b813323b/zstandard-0.25.0-cp310-cp310-musllinux_1_2_s390x.whl", hash = "sha256:e7360eae90809efd19b886e59a09dad07da4ca9ba096752e61a2e03c8aca188e", size = 5819847, upload-time = "2025-09-14T22:16:20.559Z" }, - { url = "https://files.pythonhosted.org/packages/6f/11/4c91411805c3f7b6f31c60e78ce347ca48f6f16d552fc659af6ec3b73202/zstandard-0.25.0-cp310-cp310-musllinux_1_2_x86_64.whl", hash = "sha256:75ffc32a569fb049499e63ce68c743155477610532da1eb38e7f24bf7cd29e74", size = 5363131, upload-time = "2025-09-14T22:16:22.206Z" }, - { url = "https://files.pythonhosted.org/packages/ef/d6/8c4bd38a3b24c4c7676a7a3d8de85d6ee7a983602a734b9f9cdefb04a5d6/zstandard-0.25.0-cp310-cp310-win32.whl", hash = "sha256:106281ae350e494f4ac8a80470e66d1fe27e497052c8d9c3b95dc4cf1ade81aa", size = 436469, upload-time = "2025-09-14T22:16:25.002Z" }, - { url = "https://files.pythonhosted.org/packages/93/90/96d50ad417a8ace5f841b3228e93d1bb13e6ad356737f42e2dde30d8bd68/zstandard-0.25.0-cp310-cp310-win_amd64.whl", hash = "sha256:ea9d54cc3d8064260114a0bbf3479fc4a98b21dffc89b3459edd506b69262f6e", size = 506100, upload-time = "2025-09-14T22:16:23.569Z" }, - { url = "https://files.pythonhosted.org/packages/2a/83/c3ca27c363d104980f1c9cee1101cc8ba724ac8c28a033ede6aab89585b1/zstandard-0.25.0-cp311-cp311-macosx_10_9_x86_64.whl", hash = "sha256:933b65d7680ea337180733cf9e87293cc5500cc0eb3fc8769f4d3c88d724ec5c", size = 795254, upload-time = "2025-09-14T22:16:26.137Z" }, - { url = "https://files.pythonhosted.org/packages/ac/4d/e66465c5411a7cf4866aeadc7d108081d8ceba9bc7abe6b14aa21c671ec3/zstandard-0.25.0-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:a3f79487c687b1fc69f19e487cd949bf3aae653d181dfb5fde3bf6d18894706f", size = 640559, upload-time = "2025-09-14T22:16:27.973Z" }, - { url = "https://files.pythonhosted.org/packages/12/56/354fe655905f290d3b147b33fe946b0f27e791e4b50a5f004c802cb3eb7b/zstandard-0.25.0-cp311-cp311-manylinux2010_i686.manylinux2014_i686.manylinux_2_12_i686.manylinux_2_17_i686.whl", hash = "sha256:0bbc9a0c65ce0eea3c34a691e3c4b6889f5f3909ba4822ab385fab9057099431", size = 5348020, upload-time = "2025-09-14T22:16:29.523Z" }, - { url = "https://files.pythonhosted.org/packages/3b/13/2b7ed68bd85e69a2069bcc72141d378f22cae5a0f3b353a2c8f50ef30c1b/zstandard-0.25.0-cp311-cp311-manylinux2014_aarch64.manylinux_2_17_aarch64.whl", hash = "sha256:01582723b3ccd6939ab7b3a78622c573799d5d8737b534b86d0e06ac18dbde4a", size = 5058126, upload-time = "2025-09-14T22:16:31.811Z" }, - { url = "https://files.pythonhosted.org/packages/c9/dd/fdaf0674f4b10d92cb120ccff58bbb6626bf8368f00ebfd2a41ba4a0dc99/zstandard-0.25.0-cp311-cp311-manylinux2014_ppc64le.manylinux_2_17_ppc64le.whl", hash = "sha256:5f1ad7bf88535edcf30038f6919abe087f606f62c00a87d7e33e7fc57cb69fcc", size = 5405390, upload-time = "2025-09-14T22:16:33.486Z" }, - { url = "https://files.pythonhosted.org/packages/0f/67/354d1555575bc2490435f90d67ca4dd65238ff2f119f30f72d5cde09c2ad/zstandard-0.25.0-cp311-cp311-manylinux2014_s390x.manylinux_2_17_s390x.whl", hash = "sha256:06acb75eebeedb77b69048031282737717a63e71e4ae3f77cc0c3b9508320df6", size = 5452914, upload-time = "2025-09-14T22:16:35.277Z" }, - { url = "https://files.pythonhosted.org/packages/bb/1f/e9cfd801a3f9190bf3e759c422bbfd2247db9d7f3d54a56ecde70137791a/zstandard-0.25.0-cp311-cp311-manylinux2014_x86_64.manylinux_2_17_x86_64.whl", hash = "sha256:9300d02ea7c6506f00e627e287e0492a5eb0371ec1670ae852fefffa6164b072", size = 5559635, upload-time = "2025-09-14T22:16:37.141Z" }, - { url = "https://files.pythonhosted.org/packages/21/88/5ba550f797ca953a52d708c8e4f380959e7e3280af029e38fbf47b55916e/zstandard-0.25.0-cp311-cp311-musllinux_1_1_aarch64.whl", hash = "sha256:bfd06b1c5584b657a2892a6014c2f4c20e0db0208c159148fa78c65f7e0b0277", size = 5048277, upload-time = "2025-09-14T22:16:38.807Z" }, - { url = "https://files.pythonhosted.org/packages/46/c0/ca3e533b4fa03112facbe7fbe7779cb1ebec215688e5df576fe5429172e0/zstandard-0.25.0-cp311-cp311-musllinux_1_1_x86_64.whl", hash = "sha256:f373da2c1757bb7f1acaf09369cdc1d51d84131e50d5fa9863982fd626466313", size = 5574377, upload-time = "2025-09-14T22:16:40.523Z" }, - { url = "https://files.pythonhosted.org/packages/12/9b/3fb626390113f272abd0799fd677ea33d5fc3ec185e62e6be534493c4b60/zstandard-0.25.0-cp311-cp311-musllinux_1_2_aarch64.whl", hash = "sha256:6c0e5a65158a7946e7a7affa6418878ef97ab66636f13353b8502d7ea03c8097", size = 4961493, upload-time = "2025-09-14T22:16:43.3Z" }, - { url = "https://files.pythonhosted.org/packages/cb/d3/23094a6b6a4b1343b27ae68249daa17ae0651fcfec9ed4de09d14b940285/zstandard-0.25.0-cp311-cp311-musllinux_1_2_i686.whl", hash = "sha256:c8e167d5adf59476fa3e37bee730890e389410c354771a62e3c076c86f9f7778", size = 5269018, upload-time = "2025-09-14T22:16:45.292Z" }, - { url = "https://files.pythonhosted.org/packages/8c/a7/bb5a0c1c0f3f4b5e9d5b55198e39de91e04ba7c205cc46fcb0f95f0383c1/zstandard-0.25.0-cp311-cp311-musllinux_1_2_ppc64le.whl", hash = "sha256:98750a309eb2f020da61e727de7d7ba3c57c97cf6213f6f6277bb7fb42a8e065", size = 5443672, upload-time = "2025-09-14T22:16:47.076Z" }, - { url = "https://files.pythonhosted.org/packages/27/22/503347aa08d073993f25109c36c8d9f029c7d5949198050962cb568dfa5e/zstandard-0.25.0-cp311-cp311-musllinux_1_2_s390x.whl", hash = "sha256:22a086cff1b6ceca18a8dd6096ec631e430e93a8e70a9ca5efa7561a00f826fa", size = 5822753, upload-time = "2025-09-14T22:16:49.316Z" }, - { url = "https://files.pythonhosted.org/packages/e2/be/94267dc6ee64f0f8ba2b2ae7c7a2df934a816baaa7291db9e1aa77394c3c/zstandard-0.25.0-cp311-cp311-musllinux_1_2_x86_64.whl", hash = "sha256:72d35d7aa0bba323965da807a462b0966c91608ef3a48ba761678cb20ce5d8b7", size = 5366047, upload-time = "2025-09-14T22:16:51.328Z" }, - { url = "https://files.pythonhosted.org/packages/7b/a3/732893eab0a3a7aecff8b99052fecf9f605cf0fb5fb6d0290e36beee47a4/zstandard-0.25.0-cp311-cp311-win32.whl", hash = "sha256:f5aeea11ded7320a84dcdd62a3d95b5186834224a9e55b92ccae35d21a8b63d4", size = 436484, upload-time = "2025-09-14T22:16:55.005Z" }, - { url = "https://files.pythonhosted.org/packages/43/a3/c6155f5c1cce691cb80dfd38627046e50af3ee9ddc5d0b45b9b063bfb8c9/zstandard-0.25.0-cp311-cp311-win_amd64.whl", hash = "sha256:daab68faadb847063d0c56f361a289c4f268706b598afbf9ad113cbe5c38b6b2", size = 506183, upload-time = "2025-09-14T22:16:52.753Z" }, - { url = "https://files.pythonhosted.org/packages/8c/3e/8945ab86a0820cc0e0cdbf38086a92868a9172020fdab8a03ac19662b0e5/zstandard-0.25.0-cp311-cp311-win_arm64.whl", hash = "sha256:22a06c5df3751bb7dc67406f5374734ccee8ed37fc5981bf1ad7041831fa1137", size = 462533, upload-time = "2025-09-14T22:16:53.878Z" }, - { url = "https://files.pythonhosted.org/packages/82/fc/f26eb6ef91ae723a03e16eddb198abcfce2bc5a42e224d44cc8b6765e57e/zstandard-0.25.0-cp312-cp312-macosx_10_13_x86_64.whl", hash = "sha256:7b3c3a3ab9daa3eed242d6ecceead93aebbb8f5f84318d82cee643e019c4b73b", size = 795738, upload-time = "2025-09-14T22:16:56.237Z" }, - { url = "https://files.pythonhosted.org/packages/aa/1c/d920d64b22f8dd028a8b90e2d756e431a5d86194caa78e3819c7bf53b4b3/zstandard-0.25.0-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:913cbd31a400febff93b564a23e17c3ed2d56c064006f54efec210d586171c00", size = 640436, upload-time = "2025-09-14T22:16:57.774Z" }, - { url = "https://files.pythonhosted.org/packages/53/6c/288c3f0bd9fcfe9ca41e2c2fbfd17b2097f6af57b62a81161941f09afa76/zstandard-0.25.0-cp312-cp312-manylinux2010_i686.manylinux2014_i686.manylinux_2_12_i686.manylinux_2_17_i686.whl", hash = "sha256:011d388c76b11a0c165374ce660ce2c8efa8e5d87f34996aa80f9c0816698b64", size = 5343019, upload-time = "2025-09-14T22:16:59.302Z" }, - { url = "https://files.pythonhosted.org/packages/1e/15/efef5a2f204a64bdb5571e6161d49f7ef0fffdbca953a615efbec045f60f/zstandard-0.25.0-cp312-cp312-manylinux2014_aarch64.manylinux_2_17_aarch64.whl", hash = "sha256:6dffecc361d079bb48d7caef5d673c88c8988d3d33fb74ab95b7ee6da42652ea", size = 5063012, upload-time = "2025-09-14T22:17:01.156Z" }, - { url = "https://files.pythonhosted.org/packages/b7/37/a6ce629ffdb43959e92e87ebdaeebb5ac81c944b6a75c9c47e300f85abdf/zstandard-0.25.0-cp312-cp312-manylinux2014_ppc64le.manylinux_2_17_ppc64le.whl", hash = "sha256:7149623bba7fdf7e7f24312953bcf73cae103db8cae49f8154dd1eadc8a29ecb", size = 5394148, upload-time = "2025-09-14T22:17:03.091Z" }, - { url = "https://files.pythonhosted.org/packages/e3/79/2bf870b3abeb5c070fe2d670a5a8d1057a8270f125ef7676d29ea900f496/zstandard-0.25.0-cp312-cp312-manylinux2014_s390x.manylinux_2_17_s390x.whl", hash = "sha256:6a573a35693e03cf1d67799fd01b50ff578515a8aeadd4595d2a7fa9f3ec002a", size = 5451652, upload-time = "2025-09-14T22:17:04.979Z" }, - { url = "https://files.pythonhosted.org/packages/53/60/7be26e610767316c028a2cbedb9a3beabdbe33e2182c373f71a1c0b88f36/zstandard-0.25.0-cp312-cp312-manylinux2014_x86_64.manylinux_2_17_x86_64.whl", hash = "sha256:5a56ba0db2d244117ed744dfa8f6f5b366e14148e00de44723413b2f3938a902", size = 5546993, upload-time = "2025-09-14T22:17:06.781Z" }, - { url = "https://files.pythonhosted.org/packages/85/c7/3483ad9ff0662623f3648479b0380d2de5510abf00990468c286c6b04017/zstandard-0.25.0-cp312-cp312-musllinux_1_1_aarch64.whl", hash = "sha256:10ef2a79ab8e2974e2075fb984e5b9806c64134810fac21576f0668e7ea19f8f", size = 5046806, upload-time = "2025-09-14T22:17:08.415Z" }, - { url = "https://files.pythonhosted.org/packages/08/b3/206883dd25b8d1591a1caa44b54c2aad84badccf2f1de9e2d60a446f9a25/zstandard-0.25.0-cp312-cp312-musllinux_1_1_x86_64.whl", hash = "sha256:aaf21ba8fb76d102b696781bddaa0954b782536446083ae3fdaa6f16b25a1c4b", size = 5576659, upload-time = "2025-09-14T22:17:10.164Z" }, - { url = "https://files.pythonhosted.org/packages/9d/31/76c0779101453e6c117b0ff22565865c54f48f8bd807df2b00c2c404b8e0/zstandard-0.25.0-cp312-cp312-musllinux_1_2_aarch64.whl", hash = "sha256:1869da9571d5e94a85a5e8d57e4e8807b175c9e4a6294e3b66fa4efb074d90f6", size = 4953933, upload-time = "2025-09-14T22:17:11.857Z" }, - { url = "https://files.pythonhosted.org/packages/18/e1/97680c664a1bf9a247a280a053d98e251424af51f1b196c6d52f117c9720/zstandard-0.25.0-cp312-cp312-musllinux_1_2_i686.whl", hash = "sha256:809c5bcb2c67cd0ed81e9229d227d4ca28f82d0f778fc5fea624a9def3963f91", size = 5268008, upload-time = "2025-09-14T22:17:13.627Z" }, - { url = "https://files.pythonhosted.org/packages/1e/73/316e4010de585ac798e154e88fd81bb16afc5c5cb1a72eeb16dd37e8024a/zstandard-0.25.0-cp312-cp312-musllinux_1_2_ppc64le.whl", hash = "sha256:f27662e4f7dbf9f9c12391cb37b4c4c3cb90ffbd3b1fb9284dadbbb8935fa708", size = 5433517, upload-time = "2025-09-14T22:17:16.103Z" }, - { url = "https://files.pythonhosted.org/packages/5b/60/dd0f8cfa8129c5a0ce3ea6b7f70be5b33d2618013a161e1ff26c2b39787c/zstandard-0.25.0-cp312-cp312-musllinux_1_2_s390x.whl", hash = "sha256:99c0c846e6e61718715a3c9437ccc625de26593fea60189567f0118dc9db7512", size = 5814292, upload-time = "2025-09-14T22:17:17.827Z" }, - { url = "https://files.pythonhosted.org/packages/fc/5f/75aafd4b9d11b5407b641b8e41a57864097663699f23e9ad4dbb91dc6bfe/zstandard-0.25.0-cp312-cp312-musllinux_1_2_x86_64.whl", hash = "sha256:474d2596a2dbc241a556e965fb76002c1ce655445e4e3bf38e5477d413165ffa", size = 5360237, upload-time = "2025-09-14T22:17:19.954Z" }, - { url = "https://files.pythonhosted.org/packages/ff/8d/0309daffea4fcac7981021dbf21cdb2e3427a9e76bafbcdbdf5392ff99a4/zstandard-0.25.0-cp312-cp312-win32.whl", hash = "sha256:23ebc8f17a03133b4426bcc04aabd68f8236eb78c3760f12783385171b0fd8bd", size = 436922, upload-time = "2025-09-14T22:17:24.398Z" }, - { url = "https://files.pythonhosted.org/packages/79/3b/fa54d9015f945330510cb5d0b0501e8253c127cca7ebe8ba46a965df18c5/zstandard-0.25.0-cp312-cp312-win_amd64.whl", hash = "sha256:ffef5a74088f1e09947aecf91011136665152e0b4b359c42be3373897fb39b01", size = 506276, upload-time = "2025-09-14T22:17:21.429Z" }, - { url = "https://files.pythonhosted.org/packages/ea/6b/8b51697e5319b1f9ac71087b0af9a40d8a6288ff8025c36486e0c12abcc4/zstandard-0.25.0-cp312-cp312-win_arm64.whl", hash = "sha256:181eb40e0b6a29b3cd2849f825e0fa34397f649170673d385f3598ae17cca2e9", size = 462679, upload-time = "2025-09-14T22:17:23.147Z" }, - { url = "https://files.pythonhosted.org/packages/35/0b/8df9c4ad06af91d39e94fa96cc010a24ac4ef1378d3efab9223cc8593d40/zstandard-0.25.0-cp313-cp313-macosx_10_13_x86_64.whl", hash = "sha256:ec996f12524f88e151c339688c3897194821d7f03081ab35d31d1e12ec975e94", size = 795735, upload-time = "2025-09-14T22:17:26.042Z" }, - { url = "https://files.pythonhosted.org/packages/3f/06/9ae96a3e5dcfd119377ba33d4c42a7d89da1efabd5cb3e366b156c45ff4d/zstandard-0.25.0-cp313-cp313-macosx_11_0_arm64.whl", hash = "sha256:a1a4ae2dec3993a32247995bdfe367fc3266da832d82f8438c8570f989753de1", size = 640440, upload-time = "2025-09-14T22:17:27.366Z" }, - { url = "https://files.pythonhosted.org/packages/d9/14/933d27204c2bd404229c69f445862454dcc101cd69ef8c6068f15aaec12c/zstandard-0.25.0-cp313-cp313-manylinux2010_i686.manylinux2014_i686.manylinux_2_12_i686.manylinux_2_17_i686.whl", hash = "sha256:e96594a5537722fdfb79951672a2a63aec5ebfb823e7560586f7484819f2a08f", size = 5343070, upload-time = "2025-09-14T22:17:28.896Z" }, - { url = "https://files.pythonhosted.org/packages/6d/db/ddb11011826ed7db9d0e485d13df79b58586bfdec56e5c84a928a9a78c1c/zstandard-0.25.0-cp313-cp313-manylinux2014_aarch64.manylinux_2_17_aarch64.whl", hash = "sha256:bfc4e20784722098822e3eee42b8e576b379ed72cca4a7cb856ae733e62192ea", size = 5063001, upload-time = "2025-09-14T22:17:31.044Z" }, - { url = "https://files.pythonhosted.org/packages/db/00/87466ea3f99599d02a5238498b87bf84a6348290c19571051839ca943777/zstandard-0.25.0-cp313-cp313-manylinux2014_ppc64le.manylinux_2_17_ppc64le.whl", hash = "sha256:457ed498fc58cdc12fc48f7950e02740d4f7ae9493dd4ab2168a47c93c31298e", size = 5394120, upload-time = "2025-09-14T22:17:32.711Z" }, - { url = "https://files.pythonhosted.org/packages/2b/95/fc5531d9c618a679a20ff6c29e2b3ef1d1f4ad66c5e161ae6ff847d102a9/zstandard-0.25.0-cp313-cp313-manylinux2014_s390x.manylinux_2_17_s390x.whl", hash = "sha256:fd7a5004eb1980d3cefe26b2685bcb0b17989901a70a1040d1ac86f1d898c551", size = 5451230, upload-time = "2025-09-14T22:17:34.41Z" }, - { url = "https://files.pythonhosted.org/packages/63/4b/e3678b4e776db00f9f7b2fe58e547e8928ef32727d7a1ff01dea010f3f13/zstandard-0.25.0-cp313-cp313-manylinux2014_x86_64.manylinux_2_17_x86_64.whl", hash = "sha256:8e735494da3db08694d26480f1493ad2cf86e99bdd53e8e9771b2752a5c0246a", size = 5547173, upload-time = "2025-09-14T22:17:36.084Z" }, - { url = "https://files.pythonhosted.org/packages/4e/d5/ba05ed95c6b8ec30bd468dfeab20589f2cf709b5c940483e31d991f2ca58/zstandard-0.25.0-cp313-cp313-musllinux_1_1_aarch64.whl", hash = "sha256:3a39c94ad7866160a4a46d772e43311a743c316942037671beb264e395bdd611", size = 5046736, upload-time = "2025-09-14T22:17:37.891Z" }, - { url = "https://files.pythonhosted.org/packages/50/d5/870aa06b3a76c73eced65c044b92286a3c4e00554005ff51962deef28e28/zstandard-0.25.0-cp313-cp313-musllinux_1_1_x86_64.whl", hash = "sha256:172de1f06947577d3a3005416977cce6168f2261284c02080e7ad0185faeced3", size = 5576368, upload-time = "2025-09-14T22:17:40.206Z" }, - { url = "https://files.pythonhosted.org/packages/5d/35/398dc2ffc89d304d59bc12f0fdd931b4ce455bddf7038a0a67733a25f550/zstandard-0.25.0-cp313-cp313-musllinux_1_2_aarch64.whl", hash = "sha256:3c83b0188c852a47cd13ef3bf9209fb0a77fa5374958b8c53aaa699398c6bd7b", size = 4954022, upload-time = "2025-09-14T22:17:41.879Z" }, - { url = "https://files.pythonhosted.org/packages/9a/5c/36ba1e5507d56d2213202ec2b05e8541734af5f2ce378c5d1ceaf4d88dc4/zstandard-0.25.0-cp313-cp313-musllinux_1_2_i686.whl", hash = "sha256:1673b7199bbe763365b81a4f3252b8e80f44c9e323fc42940dc8843bfeaf9851", size = 5267889, upload-time = "2025-09-14T22:17:43.577Z" }, - { url = "https://files.pythonhosted.org/packages/70/e8/2ec6b6fb7358b2ec0113ae202647ca7c0e9d15b61c005ae5225ad0995df5/zstandard-0.25.0-cp313-cp313-musllinux_1_2_ppc64le.whl", hash = "sha256:0be7622c37c183406f3dbf0cba104118eb16a4ea7359eeb5752f0794882fc250", size = 5433952, upload-time = "2025-09-14T22:17:45.271Z" }, - { url = "https://files.pythonhosted.org/packages/7b/01/b5f4d4dbc59ef193e870495c6f1275f5b2928e01ff5a81fecb22a06e22fb/zstandard-0.25.0-cp313-cp313-musllinux_1_2_s390x.whl", hash = "sha256:5f5e4c2a23ca271c218ac025bd7d635597048b366d6f31f420aaeb715239fc98", size = 5814054, upload-time = "2025-09-14T22:17:47.08Z" }, - { url = "https://files.pythonhosted.org/packages/b2/e5/fbd822d5c6f427cf158316d012c5a12f233473c2f9c5fe5ab1ae5d21f3d8/zstandard-0.25.0-cp313-cp313-musllinux_1_2_x86_64.whl", hash = "sha256:4f187a0bb61b35119d1926aee039524d1f93aaf38a9916b8c4b78ac8514a0aaf", size = 5360113, upload-time = "2025-09-14T22:17:48.893Z" }, - { url = "https://files.pythonhosted.org/packages/8e/e0/69a553d2047f9a2c7347caa225bb3a63b6d7704ad74610cb7823baa08ed7/zstandard-0.25.0-cp313-cp313-win32.whl", hash = "sha256:7030defa83eef3e51ff26f0b7bfb229f0204b66fe18e04359ce3474ac33cbc09", size = 436936, upload-time = "2025-09-14T22:17:52.658Z" }, - { url = "https://files.pythonhosted.org/packages/d9/82/b9c06c870f3bd8767c201f1edbdf9e8dc34be5b0fbc5682c4f80fe948475/zstandard-0.25.0-cp313-cp313-win_amd64.whl", hash = "sha256:1f830a0dac88719af0ae43b8b2d6aef487d437036468ef3c2ea59c51f9d55fd5", size = 506232, upload-time = "2025-09-14T22:17:50.402Z" }, - { url = "https://files.pythonhosted.org/packages/d4/57/60c3c01243bb81d381c9916e2a6d9e149ab8627c0c7d7abb2d73384b3c0c/zstandard-0.25.0-cp313-cp313-win_arm64.whl", hash = "sha256:85304a43f4d513f5464ceb938aa02c1e78c2943b29f44a750b48b25ac999a049", size = 462671, upload-time = "2025-09-14T22:17:51.533Z" }, - { url = "https://files.pythonhosted.org/packages/3d/5c/f8923b595b55fe49e30612987ad8bf053aef555c14f05bb659dd5dbe3e8a/zstandard-0.25.0-cp314-cp314-macosx_10_13_x86_64.whl", hash = "sha256:e29f0cf06974c899b2c188ef7f783607dbef36da4c242eb6c82dcd8b512855e3", size = 795887, upload-time = "2025-09-14T22:17:54.198Z" }, - { url = "https://files.pythonhosted.org/packages/8d/09/d0a2a14fc3439c5f874042dca72a79c70a532090b7ba0003be73fee37ae2/zstandard-0.25.0-cp314-cp314-macosx_11_0_arm64.whl", hash = "sha256:05df5136bc5a011f33cd25bc9f506e7426c0c9b3f9954f056831ce68f3b6689f", size = 640658, upload-time = "2025-09-14T22:17:55.423Z" }, - { url = "https://files.pythonhosted.org/packages/5d/7c/8b6b71b1ddd517f68ffb55e10834388d4f793c49c6b83effaaa05785b0b4/zstandard-0.25.0-cp314-cp314-manylinux2010_i686.manylinux_2_12_i686.manylinux_2_28_i686.whl", hash = "sha256:f604efd28f239cc21b3adb53eb061e2a205dc164be408e553b41ba2ffe0ca15c", size = 5379849, upload-time = "2025-09-14T22:17:57.372Z" }, - { url = "https://files.pythonhosted.org/packages/a4/86/a48e56320d0a17189ab7a42645387334fba2200e904ee47fc5a26c1fd8ca/zstandard-0.25.0-cp314-cp314-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:223415140608d0f0da010499eaa8ccdb9af210a543fac54bce15babbcfc78439", size = 5058095, upload-time = "2025-09-14T22:17:59.498Z" }, - { url = "https://files.pythonhosted.org/packages/f8/ad/eb659984ee2c0a779f9d06dbfe45e2dc39d99ff40a319895df2d3d9a48e5/zstandard-0.25.0-cp314-cp314-manylinux2014_ppc64le.manylinux_2_17_ppc64le.manylinux_2_28_ppc64le.whl", hash = "sha256:2e54296a283f3ab5a26fc9b8b5d4978ea0532f37b231644f367aa588930aa043", size = 5551751, upload-time = "2025-09-14T22:18:01.618Z" }, - { url = "https://files.pythonhosted.org/packages/61/b3/b637faea43677eb7bd42ab204dfb7053bd5c4582bfe6b1baefa80ac0c47b/zstandard-0.25.0-cp314-cp314-manylinux2014_s390x.manylinux_2_17_s390x.manylinux_2_28_s390x.whl", hash = "sha256:ca54090275939dc8ec5dea2d2afb400e0f83444b2fc24e07df7fdef677110859", size = 6364818, upload-time = "2025-09-14T22:18:03.769Z" }, - { url = "https://files.pythonhosted.org/packages/31/dc/cc50210e11e465c975462439a492516a73300ab8caa8f5e0902544fd748b/zstandard-0.25.0-cp314-cp314-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:e09bb6252b6476d8d56100e8147b803befa9a12cea144bbe629dd508800d1ad0", size = 5560402, upload-time = "2025-09-14T22:18:05.954Z" }, - { url = "https://files.pythonhosted.org/packages/c9/ae/56523ae9c142f0c08efd5e868a6da613ae76614eca1305259c3bf6a0ed43/zstandard-0.25.0-cp314-cp314-musllinux_1_2_aarch64.whl", hash = "sha256:a9ec8c642d1ec73287ae3e726792dd86c96f5681eb8df274a757bf62b750eae7", size = 4955108, upload-time = "2025-09-14T22:18:07.68Z" }, - { url = "https://files.pythonhosted.org/packages/98/cf/c899f2d6df0840d5e384cf4c4121458c72802e8bda19691f3b16619f51e9/zstandard-0.25.0-cp314-cp314-musllinux_1_2_i686.whl", hash = "sha256:a4089a10e598eae6393756b036e0f419e8c1d60f44a831520f9af41c14216cf2", size = 5269248, upload-time = "2025-09-14T22:18:09.753Z" }, - { url = "https://files.pythonhosted.org/packages/1b/c0/59e912a531d91e1c192d3085fc0f6fb2852753c301a812d856d857ea03c6/zstandard-0.25.0-cp314-cp314-musllinux_1_2_ppc64le.whl", hash = "sha256:f67e8f1a324a900e75b5e28ffb152bcac9fbed1cc7b43f99cd90f395c4375344", size = 5430330, upload-time = "2025-09-14T22:18:11.966Z" }, - { url = "https://files.pythonhosted.org/packages/a0/1d/7e31db1240de2df22a58e2ea9a93fc6e38cc29353e660c0272b6735d6669/zstandard-0.25.0-cp314-cp314-musllinux_1_2_s390x.whl", hash = "sha256:9654dbc012d8b06fc3d19cc825af3f7bf8ae242226df5f83936cb39f5fdc846c", size = 5811123, upload-time = "2025-09-14T22:18:13.907Z" }, - { url = "https://files.pythonhosted.org/packages/f6/49/fac46df5ad353d50535e118d6983069df68ca5908d4d65b8c466150a4ff1/zstandard-0.25.0-cp314-cp314-musllinux_1_2_x86_64.whl", hash = "sha256:4203ce3b31aec23012d3a4cf4a2ed64d12fea5269c49aed5e4c3611b938e4088", size = 5359591, upload-time = "2025-09-14T22:18:16.465Z" }, - { url = "https://files.pythonhosted.org/packages/c2/38/f249a2050ad1eea0bb364046153942e34abba95dd5520af199aed86fbb49/zstandard-0.25.0-cp314-cp314-win32.whl", hash = "sha256:da469dc041701583e34de852d8634703550348d5822e66a0c827d39b05365b12", size = 444513, upload-time = "2025-09-14T22:18:20.61Z" }, - { url = "https://files.pythonhosted.org/packages/3a/43/241f9615bcf8ba8903b3f0432da069e857fc4fd1783bd26183db53c4804b/zstandard-0.25.0-cp314-cp314-win_amd64.whl", hash = "sha256:c19bcdd826e95671065f8692b5a4aa95c52dc7a02a4c5a0cac46deb879a017a2", size = 516118, upload-time = "2025-09-14T22:18:17.849Z" }, - { url = "https://files.pythonhosted.org/packages/f0/ef/da163ce2450ed4febf6467d77ccb4cd52c4c30ab45624bad26ca0a27260c/zstandard-0.25.0-cp314-cp314-win_arm64.whl", hash = "sha256:d7541afd73985c630bafcd6338d2518ae96060075f9463d7dc14cfb33514383d", size = 476940, upload-time = "2025-09-14T22:18:19.088Z" }, -]