Add ruff and mypy to dev dependencies with configuration in pyproject.toml. Add a lint CI job that runs ruff check, ruff format --check, and mypy. Auto-fix import sorting and formatting across the codebase. Exclude alembic/versions from linting (auto-generated migrations). Ignore B008 (FastAPI Depends pattern) and RUF001 (unicode in user-facing strings). 21 ruff lint errors and 50 mypy errors remain for manual review. Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
20 lines
538 B
Python
20 lines
538 B
Python
from __future__ import annotations
|
|
|
|
from sqlalchemy import select
|
|
from sqlalchemy.ext.asyncio import AsyncSession
|
|
|
|
from app.db.models import DataRepairJob
|
|
|
|
|
|
def _bounded_limit(limit: int) -> int:
|
|
return max(1, min(int(limit), 200))
|
|
|
|
|
|
async def list_repair_jobs(
|
|
db_session: AsyncSession,
|
|
*,
|
|
limit: int = 50,
|
|
) -> list[DataRepairJob]:
|
|
bounded = _bounded_limit(limit)
|
|
result = await db_session.execute(select(DataRepairJob).order_by(DataRepairJob.created_at.desc()).limit(bounded))
|
|
return list(result.scalars())
|