[project] name = "teleo-pipeline" version = "2.0.0" description = "Teleo Pipeline v2 — async daemon for claim extraction, validation, evaluation, and merge" requires-python = ">=3.11" dependencies = [ "aiohttp>=3.9,<4", ] [project.optional-dependencies] dev = [ "pytest>=8", "pytest-asyncio>=0.23", "ruff>=0.3", ] [tool.ruff] target-version = "py311" line-length = 120 [tool.ruff.lint] select = [ "E", # pycodestyle errors "F", # pyflakes (undefined names, unused imports) "W", # pycodestyle warnings "I", # isort "UP", # pyupgrade "B", # flake8-bugbear "SIM", # flake8-simplify "RUF", # ruff-specific rules ] ignore = [ "E501", # line length (handled by formatter) "B008", # function call in default argument (common in aiohttp) "RUF013", # implicit Optional — existing code uses = None pattern throughout "UP017", # datetime.UTC alias — keep timezone.utc for consistency with existing code "UP041", # PEP 604 union syntax — existing code mixes styles, fix in Phase 3 "SIM105", # contextlib.suppress — try/except/pass is clearer in migration code "SIM117", # merge with blocks — readability judgment call, not a bug ] [tool.ruff.format] quote-style = "double" [tool.pytest.ini_options] asyncio_mode = "auto" testpaths = ["tests"] python_files = "test_*.py" python_functions = "test_*" [tool.ruff.lint.isort] known-first-party = ["lib"]