Files
kotaemon/pyproject.toml
Daniel Kwak fe52d208e2 feat(build): add uv package manager support for faster installation (#790)
- Add uv workspace configuration to pyproject.toml
- Create run_uv.sh script for automated uv-based installation
- Update README with uv installation option (10-100x faster than conda)
- Add uv.lock for reproducible builds
- Maintain backward compatibility with existing conda setup
- Fix known dependency conflicts (hnswlib, chroma-hnswlib)

Benefits:
- Faster dependency resolution (seconds vs minutes)
- Simplified installation process (~50 lines vs 200+ lines)
- Cross-platform compatibility
- Reproducible builds with lock file
- Better development experience
- Automatic Python version management

Co-authored-by: Your Name <your.email@company.com>
2026-02-27 16:47:03 +07:00

69 lines
1.5 KiB
TOML

[build-system]
requires = ["setuptools >= 61.0", "wheel", "setuptools-git-versioning>=2.0,<3"]
build-backend = "setuptools.build_meta"
[tool.setuptools]
include-package-data = false
packages.find.include = []
[tool.setuptools-git-versioning]
enabled = true
dev_template = "{tag}"
dirty_template = "{tag}"
tag_filter = "v?\\d+(\\.\\d+)*.*"
[project]
name = "kotaemon-app"
dynamic = ["version"]
requires-python = ">= 3.10"
description = "Kotaemon App"
dependencies = [
"kotaemon",
"ktem"
]
authors = [
{ name = "@trducng", email = "john@cinnamon.is" },
{ name = "@lone17", email = "ian@cinnamon.is" },
{ name = "@taprosoft", email = "tadashi@cinnamon.is" },
{ name = "@cin-albert", email = "albert@cinnamon.is" },
]
classifiers = [
"Programming Language :: Python :: 3",
"Operating System :: OS Independent",
]
[tool.uv.sources]
kotaemon = { workspace = true }
ktem = { workspace = true }
# uv workspace configuration
[tool.uv.workspace]
members = ["libs/kotaemon", "libs/ktem"]
[dependency-groups]
dev = [
"black",
"coverage",
"flake8",
"ipython",
"pre-commit",
"pytest",
"pytest-mock",
"sphinx"
]
[project.urls]
Homepage = "https://cinnamon.github.io/kotaemon/"
Repository = "https://github.com/Cinnamon/kotaemon/"
Documentation = "https://cinnamon.github.io/kotaemon/"
[tool.codespell]
skip = "*.js,*.css,*.map"
# `llm` abbreviation for large language models
ignore-words-list = "llm,fo"
quiet-level = 3
check-filenames = ""
[tool.isort]
known_first_party = ["kotaemon"]