[project] name = "quivr-monorepo" version = "0.0.1" description = "Quivr Monorepo" authors = [ { name = "Stan Girard", email = "stan@quivr.app" }, { name = "Amine Diro", email = "amine@quivr.app" }, { name = "ChloƩ Daems", email = "chloe@quivr.app" }, { name = "Jacopo Chevallard", email = "jacopo@quivr.app" }, ] dependencies = [ "packaging>=22.0", # Logging packages "structlog>=24.4.0", "python-json-logger>=2.0.7", "orjson>=3.10.7", ] readme = "README.md" requires-python = ">= 3.11" [build-system] requires = ["hatchling"] build-backend = "hatchling.build" [tool.rye] managed = true virtual = false universal = true dev-dependencies = [ "mypy>=1.11.1", "pre-commit>=3.8.0", "ipykernel>=6.29.5", "ruff>=0.6.0", "flake8>=7.1.1", "flake8-black>=0.3.6", "pytest-dotenv>=0.5.2", "pytest-mock>=3.14.0", "pytest-asyncio>=0.24.0", "pytest>=8.3.2", "pytest-xdist>=3.6.1", "pytest-cov>=5.0.0", "tox>=4.0.0", "chainlit>=1.1.306", ] [tool.rye.workspace] members = [".", "core", "worker", "api", "docs", "core/examples/chatbot", "core/MegaParse", "worker/diff-assistant"] [tool.hatch.metadata] allow-direct-references = true [tool.hatch.build.targets.wheel] packages = ["src/backend"] [[tool.rye.sources]] name = "pytorch" url = "https://download.pytorch.org/whl/cpu" [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" asyncio_default_fixture_loop_scope = "session" filterwarnings = ["ignore::DeprecationWarning"] markers = [ "slow: marks tests as slow (deselect with '-m \"not slow\"')", "base: these tests require quivr-core with extra `base` to be installed", "tika: these tests require a tika server to be running", "unstructured: these tests require `unstructured` dependency", ]