20fa355838
Every direct dep in pyproject.toml now has a ~X.Y.Z bound (patch-only). The 7 unconstrained deps (imgui-bundle, anthropic, google-genai, openai, fastapi, mcp, uvicorn, plus tomli-w) get explicit tilde bounds discovered from uv.lock. The 6 >=X.Y.Z deps are normalized to tilde-style (pinned to the current lock version). The local-rag optional dep (sentence-transformers) is also tilde-pinned. requirements.txt is deleted (was redundant with uv.lock; the uv project uses uv.lock as the canonical lock file, which is regenerated locally and gitignored per project policy at .gitignore:9). Re-running the audit confirms 0 PIN_VIOLATION (was 7). The final.md report records the post-cleanup state. Also adds --report-name CLI flag to the audit script (default 'initial') so the script can write either initial.md (Phase 1) or final.md (Phase 2) into the same report directory.
83 lines
1.9 KiB
TOML
83 lines
1.9 KiB
TOML
# pyproject.toml
|
|
[project]
|
|
name = "manual_slop"
|
|
version = "0.1.0"
|
|
requires-python = ">=3.11"
|
|
dependencies = [
|
|
"imgui-bundle~=1.92.5",
|
|
"pyopengl~=3.1.10",
|
|
|
|
"tomli-w~=1.2.0",
|
|
"tree-sitter~=0.25.2",
|
|
"tree-sitter-python~=0.25.0",
|
|
"tree-sitter-c~=0.24.2",
|
|
"tree-sitter-cpp~=0.23.4",
|
|
|
|
"psutil~=7.2.2",
|
|
"fastapi~=0.133.0",
|
|
"mcp~=1.26.0",
|
|
"pytest-timeout~=2.4.0",
|
|
"uvicorn~=0.41.0",
|
|
|
|
"anthropic~=0.83.0",
|
|
"google-genai~=1.64.0",
|
|
"openai~=2.26.0",
|
|
|
|
"chromadb~=1.5.8",
|
|
]
|
|
|
|
[project.optional-dependencies]
|
|
local-rag = [
|
|
"sentence-transformers~=5.4.1",
|
|
]
|
|
|
|
[dependency-groups]
|
|
dev = [
|
|
"pytest>=9.0.2",
|
|
"pytest-cov>=7.0.0",
|
|
"pytest-asyncio>=0.25.3",
|
|
]
|
|
|
|
[tool.pytest.ini_options]
|
|
markers = [
|
|
"integration: marks tests as integration tests (requires live GUI)",
|
|
"clean_install: clean install verification (opt-in via RUN_CLEAN_INSTALL_TEST=1)",
|
|
"docker: docker build and run test (opt-in via RUN_DOCKER_TEST=1)",
|
|
]
|
|
|
|
[tool.mypy]
|
|
strict = true
|
|
disallow_untyped_defs = true
|
|
disallow_incomplete_defs = true
|
|
ignore_missing_imports = true
|
|
explicit_package_bases = true
|
|
|
|
[tool.ruff]
|
|
# Target version
|
|
target-version = "py311"
|
|
exclude = [
|
|
"scripts/ai_style_formatter.py",
|
|
"scripts/temp_def.py",
|
|
]
|
|
|
|
[tool.ruff.lint]
|
|
# Enable McCabe complexity check for nesting depth enforcement
|
|
# PLR = complexity rules for methods/functions
|
|
select = ["E", "F", "W", "C90", "C4", "PLR0912", "PLR6301", "PLR0206"]
|
|
|
|
# Ignore style choices that conflict with project's compact style
|
|
ignore = [
|
|
"E701", # Multiple statements on one line (colon)
|
|
"E702", # Multiple statements on one line (semicolon)
|
|
"E402", # Module level import not at top of file
|
|
"E501", # Line too long
|
|
"W291", # Trailing whitespace
|
|
"W293", # Blank line contains whitespace
|
|
]
|
|
|
|
[tool.ruff.lint.per-file-ignores]
|
|
"__init__.py" = ["PLR"] # Allow init to export classes
|
|
|
|
[tool.ruff.lint.mccabe]
|
|
max-complexity = 5
|