forked from Archives/langchain
80558b5b27
# Add action to test with all dependencies installed PR adds a custom action for setting up poetry that allows specifying a cache key: https://github.com/actions/setup-python/issues/505#issuecomment-1273013236 This makes it possible to run 2 types of unit tests: (1) unit tests with only core dependencies (2) unit tests with extended dependencies (e.g., those that rely on an optional pdf parsing library) As part of this PR, we're moving some pdf parsing tests into the unit-tests section and making sure that these unit tests get executed when running with extended dependencies.
205 lines
7.1 KiB
TOML
205 lines
7.1 KiB
TOML
[tool.poetry]
|
|
name = "langchain"
|
|
version = "0.0.163"
|
|
description = "Building applications with LLMs through composability"
|
|
authors = []
|
|
license = "MIT"
|
|
readme = "README.md"
|
|
repository = "https://www.github.com/hwchase17/langchain"
|
|
|
|
[tool.poetry.scripts]
|
|
langchain-server = "langchain.server:main"
|
|
|
|
[tool.poetry.dependencies]
|
|
python = ">=3.8.1,<4.0"
|
|
pydantic = "^1"
|
|
SQLAlchemy = ">=1.4,<3"
|
|
requests = "^2"
|
|
PyYAML = ">=5.4.1"
|
|
numpy = "^1"
|
|
azure-core = {version = "^1.26.4", optional=true}
|
|
tqdm = {version = ">=4.48.0", optional = true}
|
|
openapi-schema-pydantic = "^1.2"
|
|
faiss-cpu = {version = "^1", optional = true}
|
|
wikipedia = {version = "^1", optional = true}
|
|
elasticsearch = {version = "^8", optional = true}
|
|
opensearch-py = {version = "^2.0.0", optional = true}
|
|
redis = {version = "^4", optional = true}
|
|
manifest-ml = {version = "^0.0.1", optional = true}
|
|
spacy = {version = "^3", optional = true}
|
|
nltk = {version = "^3", optional = true}
|
|
transformers = {version = "^4", optional = true}
|
|
beautifulsoup4 = {version = "^4", optional = true}
|
|
torch = {version = ">=1,<3", optional = true}
|
|
jinja2 = {version = "^3", optional = true}
|
|
tiktoken = {version = "^0.3.2", optional = true, python="^3.9"}
|
|
pinecone-client = {version = "^2", optional = true}
|
|
pinecone-text = {version = "^0.4.2", optional = true}
|
|
clickhouse-connect = {version="^0.5.14", optional=true}
|
|
weaviate-client = {version = "^3", optional = true}
|
|
google-api-python-client = {version = "2.70.0", optional = true}
|
|
wolframalpha = {version = "5.0.0", optional = true}
|
|
anthropic = {version = "^0.2.6", optional = true}
|
|
qdrant-client = {version = "^1.1.2", optional = true, python = ">=3.8.1,<3.12"}
|
|
dataclasses-json = "^0.5.7"
|
|
tensorflow-text = {version = "^2.11.0", optional = true, python = "^3.10, <3.12"}
|
|
tenacity = "^8.1.0"
|
|
cohere = {version = "^3", optional = true}
|
|
openai = {version = "^0", optional = true}
|
|
nlpcloud = {version = "^1", optional = true}
|
|
nomic = {version = "^1.0.43", optional = true}
|
|
huggingface_hub = {version = "^0", optional = true}
|
|
jina = {version = "^3.14", optional = true}
|
|
google-search-results = {version = "^2", optional = true}
|
|
sentence-transformers = {version = "^2", optional = true}
|
|
aiohttp = "^3.8.3"
|
|
arxiv = {version = "^1.4", optional = true}
|
|
pypdf = {version = "^3.4.0", optional = true}
|
|
networkx = {version="^2.6.3", optional = true}
|
|
aleph-alpha-client = {version="^2.15.0", optional = true}
|
|
deeplake = {version = "^3.3.0", optional = true}
|
|
pgvector = {version = "^0.1.6", optional = true}
|
|
psycopg2-binary = {version = "^2.9.5", optional = true}
|
|
#boto3 = {version = "^1.26.96", optional = true} # TODO: fix it, commented because the version failed with deeplake
|
|
pyowm = {version = "^3.3.0", optional = true}
|
|
async-timeout = {version = "^4.0.0", python = "<3.11"}
|
|
azure-identity = {version = "^1.12.0", optional=true}
|
|
gptcache = {version = ">=0.1.7", optional = true}
|
|
atlassian-python-api = {version = "^3.36.0", optional=true}
|
|
pytesseract = {version = "^0.3.10", optional=true}
|
|
html2text = {version="^2020.1.16", optional=true}
|
|
numexpr = "^2.8.4"
|
|
duckduckgo-search = {version="^2.8.6", optional=true}
|
|
azure-cosmos = {version="^4.4.0b1", optional=true}
|
|
lark = {version="^1.1.5", optional=true}
|
|
lancedb = {version = "^0.1", optional = true}
|
|
pexpect = {version = "^4.8.0", optional = true}
|
|
pyvespa = {version = "^0.33.0", optional = true}
|
|
O365 = {version = "^2.0.26", optional = true}
|
|
jq = {version = "^1.4.1", optional = true}
|
|
pdfminer-six = {version = "^20221105", optional = true}
|
|
|
|
|
|
[tool.poetry.group.docs.dependencies]
|
|
autodoc_pydantic = "^1.8.0"
|
|
myst_parser = "^0.18.1"
|
|
nbsphinx = "^0.8.9"
|
|
sphinx = "^4.5.0"
|
|
sphinx-autobuild = "^2021.3.14"
|
|
sphinx_book_theme = "^0.3.3"
|
|
sphinx_rtd_theme = "^1.0.0"
|
|
sphinx-typlog-theme = "^0.8.0"
|
|
sphinx-panels = "^0.6.0"
|
|
toml = "^0.10.2"
|
|
myst-nb = "^0.17.1"
|
|
linkchecker = "^10.2.1"
|
|
sphinx-copybutton = "^0.5.1"
|
|
|
|
[tool.poetry.group.test.dependencies]
|
|
pytest = "^7.3.0"
|
|
pytest-cov = "^4.0.0"
|
|
pytest-dotenv = "^0.5.2"
|
|
duckdb-engine = "^0.7.0"
|
|
pytest-watcher = "^0.2.6"
|
|
freezegun = "^1.2.2"
|
|
responses = "^0.22.0"
|
|
pytest-asyncio = "^0.20.3"
|
|
lark = "^1.1.5"
|
|
pytest-mock = "^3.10.0"
|
|
|
|
[tool.poetry.group.test_integration]
|
|
optional = true
|
|
|
|
[tool.poetry.group.test_integration.dependencies]
|
|
pytest-vcr = "^1.0.2"
|
|
wrapt = "^1.15.0"
|
|
openai = "^0.27.4"
|
|
elasticsearch = {extras = ["async"], version = "^8.6.2"}
|
|
redis = "^4.5.4"
|
|
pinecone-client = "^2.2.1"
|
|
pinecone-text = "^0.4.2"
|
|
clickhouse-connect = "^0.5.14"
|
|
pgvector = "^0.1.6"
|
|
transformers = "^4.27.4"
|
|
pandas = "^2.0.0"
|
|
deeplake = "^3.2.21"
|
|
weaviate-client = "^3.15.5"
|
|
torch = "^1.0.0"
|
|
chromadb = "^0.3.21"
|
|
tiktoken = "^0.3.3"
|
|
python-dotenv = "^1.0.0"
|
|
sentence-transformers = "^2"
|
|
gptcache = "^0.1.9"
|
|
promptlayer = "^0.1.80"
|
|
tair = "^1.3.3"
|
|
wikipedia = "^1"
|
|
pymongo = "^4.3.3"
|
|
|
|
[tool.poetry.group.lint.dependencies]
|
|
ruff = "^0.0.249"
|
|
types-toml = "^0.10.8.1"
|
|
types-redis = "^4.3.21.6"
|
|
black = "^23.1.0"
|
|
|
|
[tool.poetry.group.typing.dependencies]
|
|
mypy = "^0.991"
|
|
types-pyyaml = "^6.0.12.2"
|
|
types-requests = "^2.28.11.5"
|
|
|
|
[tool.poetry.group.dev]
|
|
optional = true
|
|
|
|
[tool.poetry.group.dev.dependencies]
|
|
jupyter = "^1.0.0"
|
|
playwright = "^1.28.0"
|
|
setuptools = "^67.6.1"
|
|
|
|
[tool.poetry.extras]
|
|
llms = ["anthropic", "cohere", "openai", "nlpcloud", "huggingface_hub", "manifest-ml", "torch", "transformers"]
|
|
qdrant = ["qdrant-client"]
|
|
openai = ["openai"]
|
|
cohere = ["cohere"]
|
|
embeddings = ["sentence-transformers"]
|
|
azure = ["azure-identity", "azure-cosmos", "openai", "azure-core"]
|
|
all = ["anthropic", "cohere", "openai", "nlpcloud", "huggingface_hub", "jina", "manifest-ml", "elasticsearch", "opensearch-py", "google-search-results", "faiss-cpu", "sentence-transformers", "transformers", "spacy", "nltk", "wikipedia", "beautifulsoup4", "tiktoken", "torch", "jinja2", "pinecone-client", "pinecone-text", "weaviate-client", "redis", "google-api-python-client", "wolframalpha", "qdrant-client", "tensorflow-text", "pypdf", "networkx", "nomic", "aleph-alpha-client", "deeplake", "pgvector", "psycopg2-binary", "boto3", "pyowm", "pytesseract", "html2text", "atlassian-python-api", "gptcache", "duckduckgo-search", "arxiv", "azure-identity", "clickhouse-connect", "azure-cosmos", "lancedb", "lark", "pexpect", "pyvespa", "O365", "jq"]
|
|
# An extra used to be able to add extended testing.
|
|
extended_testing = ["pypdf", "pdfminer.six"]
|
|
|
|
[tool.ruff]
|
|
select = [
|
|
"E", # pycodestyle
|
|
"F", # pyflakes
|
|
"I", # isort
|
|
]
|
|
exclude = [
|
|
"tests/integration_tests/examples/non-utf8-encoding.py",
|
|
]
|
|
|
|
[tool.mypy]
|
|
ignore_missing_imports = "True"
|
|
disallow_untyped_defs = "True"
|
|
exclude = ["notebooks"]
|
|
|
|
[tool.coverage.run]
|
|
omit = [
|
|
"tests/*",
|
|
]
|
|
|
|
[build-system]
|
|
requires = ["poetry-core>=1.0.0"]
|
|
build-backend = "poetry.core.masonry.api"
|
|
|
|
[tool.pytest.ini_options]
|
|
# --strict-markers will raise errors on unknown marks.
|
|
# https://docs.pytest.org/en/7.1.x/how-to/mark.html#raising-errors-on-unknown-marks
|
|
#
|
|
# https://docs.pytest.org/en/7.1.x/reference/reference.html
|
|
# --strict-config any warnings encountered while parsing the `pytest`
|
|
# section of the configuration file raise errors.
|
|
addopts = "--strict-markers --strict-config --durations=5"
|
|
# Registering custom markers.
|
|
# https://docs.pytest.org/en/7.1.x/example/markers.html#registering-markers
|
|
markers = [
|
|
"requires: mark tests as requiring a specific library"
|
|
]
|