[build-system] requires = ["setuptools>=80", "wheel"] build-backend = "setuptools.build_meta" [project] name = "chromy" version = "1.1.0" description = "Chromy is a minimal CLI RAG system based on Chromadb" readme = "README.md" requires-python = ">=3.12" dependencies = [ "chromadb>=1.5.8", "openai>=2.32.0", "pymupdf4llm>=1.27.2.2", "python-dotenv>=1.2.2", "rich>=15.0.0", "semchunk>=4.0.0", "tiktoken>=0.12.0", "transformers>=5.5.4", "typer>=0.24.1", ] [project.scripts] chromy = "chromy.main:main" [tool.setuptools] packages = ["chromy", "chromy.handlers"] [dependency-groups] dev = [ "mypy>=1.18.2", "nuitka[onefile]>=4.0.8", "pytest>=9.0.2", "ruff>=0.14.8", ] [tool.ruff] line-length = 88 target-version = "py312" [tool.ruff.lint] select = [ "B", "E", "F", "I", "SIM", ] [tool.ruff.format] quote-style = "double" indent-style = "space" line-ending = "auto" [tool.mypy] python_version = "3.12" files = [ "chromy", "tests", ] strict = true warn_return_any = true warn_unused_ignores = true no_implicit_reexport = true show_error_codes = true [[tool.mypy.overrides]] module = [ "chromadb.*", "semchunk.*", ] ignore_missing_imports = true [[tool.mypy.overrides]] module = "chromy.chunk_functions" disable_error_code = [ "attr-defined", ]