# 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", "pytest-xdist>=3.6.0", "sentence-transformers~=5.4.1", ] [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)", "live: marks tests as live visualization tests (not in CI by default)", ] [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