Files
manual_slop/pyproject.toml
T
ed b9c1b63f8d feat(style): Add anti-OOP conventions and OOP refactoring tracker
- Add section 10 (Anti-OOP Conventions) to python.md with hard rules,
  class justification requirements, and Strangler Fig refactoring pattern
- Create conductor/refactor_oop.md tracker with 4 phases for class elimination
- Add ruff PLR rules (PLR0912, PLR6301, PLR0206) to pyproject.toml for
  OOP anti-patterns

Addresses AI agent scope misinterpretation issues by enforcing flat
function-call graphs over deep class hierarchies.
2026-05-11 23:41:41 -04:00

77 lines
1.7 KiB
TOML

# pyproject.toml
[project]
name = "manual_slop"
version = "0.1.0"
requires-python = ">=3.11"
dependencies = [
"dearpygui",
"imgui-bundle",
"google-genai",
"anthropic",
"openai",
"tomli-w",
"psutil>=7.2.2",
"fastapi",
"uvicorn",
"tree-sitter>=0.25.2",
"tree-sitter-python>=0.25.0",
"tree-sitter-c>=0.23.2",
"tree-sitter-cpp>=0.23.2",
"mcp>=1.0.0",
"pytest-timeout>=2.4.0",
"pyopengl>=3.1.10",
"chromadb>=1.5.8",
"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)",
]
[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