teleo-infrastructure/pyproject.toml
m3taversal a7251d7529
Some checks failed
CI / lint-and-test (pull_request) Has been cancelled
ganymede: add dev infrastructure — pyproject.toml, CI, deploy script
Phase 2 of pipeline refactoring:

- pyproject.toml: Python >=3.11, aiohttp dep, dev extras (pytest,
  pytest-asyncio, ruff). Ruff configured with sane defaults + ignore
  rules for existing code patterns (implicit Optional, timezone.utc).
- .forgejo/workflows/ci.yml: Forgejo Actions CI — syntax check, ruff
  lint, ruff format, pytest on every PR and push to main.
- deploy.sh: Pull + venv update + syntax check + optional restart.
  Replaces ad-hoc scp workflow.
- tests/conftest.py: Shared fixture for in-memory SQLite with full
  schema. Ready for Phase 4 test suite.
- .gitignore: Added venv, pytest cache, coverage, build artifacts.
- Ruff auto-fixes: import sorting, unused imports removed across all
  modules. All files pass ruff check + ruff format.

Pentagon-Agent: Ganymede <F99EBFA6-547B-4096-BEEA-1D59C3E4028A>
2026-03-13 14:24:27 +00:00

52 lines
1.4 KiB
TOML

[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"]