[tool.poetry] name = "quivr-core" version = "0.0.4" description = "Quivr core RAG package" authors = [] readme = "README.md" repository = "https://github.com/QuivrHQ/quivr" [tool.poetry.dependencies] python = "^3.11" pydantic = "^2.7.4" langchain-core = "^0.2.10" httpx = "^0.27.0" faiss-cpu = { version = "^1.8.0.post1", optional = true } langchain-community = { version = "^0.2.6", optional = true } langchain-openai = { version = "^0.1.14", optional = true } aiofiles = "^24.1.0" [tool.poetry.extras] base = ["langchain-community", "faiss-cpu", "langchain-openai"] pdf = [] [tool.poetry.group.dev.dependencies] mypy = "^1.10.0" pre-commit = "^3.7.1" ipykernel = "*" ruff = "^0.4.8" flake8 = "*" flake8-black = "*" pytest-cov = "^5.0.0" [tool.poetry.group.test.dependencies] pytest-asyncio = "^0.23.7" pytest = "^8.2.2" pytest-xdist = "^3.6.1" [tool.mypy] disallow_untyped_defs = true # Remove venv skip when integrated with pre-commit exclude = ["_static", "build", "examples", "notebooks", "venv", ".venv"] ignore_missing_imports = true python_version = "3.11" [tool.ruff] line-length = 88 exclude = [".git", "__pycache__", ".mypy_cache", ".pytest_cache"] [tool.ruff.lint] select = [ "E", # pycodestyle errors "W", # pycodestyle warnings "F", # pyflakes "I", # isort "C", # flake8-comprehensions "B", # flake8-bugbear ] ignore = [ "B904", "B006", "E501", # line too long, handled by black "B008", # do not perform function calls in argument defaults "C901", # too complex ] [tool.ruff.lint.isort] order-by-type = true relative-imports-order = "closest-to-furthest" extra-standard-library = ["typing"] section-order = [ "future", "standard-library", "third-party", "first-party", "local-folder", ] known-first-party = [] [tool.pytest.ini_options] addopts = "--tb=short -ra -v" filterwarnings = ["ignore::DeprecationWarning"] [build-system] requires = ["poetry-core"] build-backend = "poetry.core.masonry.api"