[project] name = "cheddahbot" version = "0.1.0" description = "Personal AI assistant with ClickUp integration" requires-python = ">=3.11" dependencies = [ "gradio>=5.0", "openai>=1.30", "pyyaml>=6.0", "python-dotenv>=1.0", "sentence-transformers>=3.0", "numpy>=1.24", "httpx>=0.27", "beautifulsoup4>=4.12", "croniter>=2.0", "edge-tts>=6.1", "python-docx>=1.2.0", ] [build-system] requires = ["uv_build>=0.9,<1"] build-backend = "uv_build" [tool.uv.build-backend] module-root = "" [dependency-groups] dev = [{include-group = "lint"}, {include-group = "test"}] lint = ["ruff"] test = ["pytest", "pytest-cov", "respx"] [tool.uv] default-groups = ["dev", "test"] [tool.pytest] testpaths = ["tests"] addopts = [ "-ra", "--strict-markers", "--strict-config", "--cov=cheddahbot", "--cov-report=term-missing", ] markers = [ "integration: requires live ClickUp API token", ] [tool.coverage.run] branch = true source = ["cheddahbot"] omit = [ "*/__main__.py", "*/conftest.py", "*/ui.py", "*/media.py", "*/llm.py", ] [tool.coverage.report] exclude_lines = [ "pragma: no cover", "if TYPE_CHECKING:", "if __name__ == .__main__.:", ] show_missing = true [tool.ruff] line-length = 100 target-version = "py311" [tool.ruff.lint] select = ["E", "F", "I", "UP", "B", "SIM", "RUF"] [tool.ruff.lint.per-file-ignores] "tests/**/*.py" = [ "S101", "PLR2004", "ANN", ]