[tool.poetry] name = "langchain-community" version = "0.0.28" description = "Community contributed LangChain integrations." authors = [] license = "MIT" readme = "README.md" repository = "https://github.com/langchain-ai/langchain" [tool.poetry.dependencies] python = ">=3.8.1,<4.0" langchain-core = "^0.1.31" SQLAlchemy = ">=1.4,<3" requests = "^2" PyYAML = ">=5.3" numpy = "^1" aiohttp = "^3.8.3" tenacity = "^8.1.0" dataclasses-json = ">= 0.5.7, < 0.7" langsmith = "^0.1.0" typer = { version = "^0.9.0", optional = true } [tool.poetry.group.test] optional = true [tool.poetry.group.test.dependencies] # The only dependencies that should be added are # dependencies used for running tests (e.g., pytest, freezegun, response). # Any dependencies that do not meet that criteria will be removed. pytest = "^7.3.0" pytest-cov = "^4.1.0" pytest-dotenv = "^0.5.2" duckdb-engine = "^0.9.2" pytest-watcher = "^0.2.6" freezegun = "^1.2.2" responses = "^0.22.0" pytest-asyncio = "^0.20.3" lark = "^1.1.5" pandas = "^2.0.0" pytest-mock = "^3.10.0" pytest-socket = "^0.6.0" syrupy = "^4.0.2" requests-mock = "^1.11.0" langchain-core = { path = "../core", develop = true } [tool.poetry.group.codespell] optional = true [tool.poetry.group.codespell.dependencies] codespell = "^2.2.0" [tool.poetry.group.test_integration] optional = true [tool.poetry.group.test_integration.dependencies] # Do not add dependencies in the test_integration group # Instead read the following link: # https://python.langchain.com/docs/contributing/code#working-with-optional-dependencies pytest-vcr = "^1.0.2" wrapt = "^1.15.0" openai = "^1" python-dotenv = "^1.0.0" cassio = "^0.1.0" tiktoken = ">=0.3.2,<0.6.0" anthropic = "^0.3.11" langchain-core = { path = "../core", develop = true } fireworks-ai = "^0.9.0" [tool.poetry.group.lint] optional = true [tool.poetry.group.lint.dependencies] ruff = "^0.1.5" [tool.poetry.group.typing.dependencies] mypy = "^0.991" types-pyyaml = "^6.0.12.2" types-requests = "^2.28.11.5" types-toml = "^0.10.8.1" types-pytz = "^2023.3.0.0" types-chardet = "^5.0.4.6" types-redis = "^4.3.21.6" mypy-protobuf = "^3.0.0" pydantic = "^1" langchain-core = { path = "../core", develop = true } langchain-text-splitters = { path = "../text-splitters", develop = true } [tool.poetry.group.dev] optional = true [tool.poetry.group.dev.dependencies] jupyter = "^1.0.0" setuptools = "^67.6.1" langchain-core = { path = "../core", develop = true } [tool.poetry.extras] cli = ["typer"] [tool.ruff] exclude = [ "tests/examples/non-utf8-encoding.py", "tests/integration_tests/examples/non-utf8-encoding.py", ] [tool.ruff.lint] select = [ "E", # pycodestyle "F", # pyflakes "I", # isort "T201", # print ] [tool.mypy] ignore_missing_imports = "True" disallow_untyped_defs = "True" exclude = ["notebooks", "examples", "example_data"] [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. # # https://github.com/tophat/syrupy # --snapshot-warn-unused Prints a warning on unused snapshots rather than fail the test suite. addopts = "--strict-markers --strict-config --durations=5 --snapshot-warn-unused -vv" # 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", "scheduled: mark tests to run in scheduled testing", "compile: mark placeholder test used to compile integration tests without running them", ] asyncio_mode = "auto" [tool.codespell] skip = '.git,*.pdf,*.svg,*.pdf,*.yaml,*.ipynb,poetry.lock,*.min.js,*.css,package-lock.json,example_data,_dist,examples,*.trig' # Ignore latin etc ignore-regex = '.*(Stati Uniti|Tense=Pres).*' # whats is a typo but used frequently in queries so kept as is # aapply - async apply # unsecure - typo but part of API, decided to not bother for now ignore-words-list = 'momento,collison,ned,foor,reworkd,parth,whats,aapply,mysogyny,unsecure,damon,crate,aadd,symbl,precesses,accademia,nin'