fix(fc2a): satisfy ruff 0.15.13 lint — UP017, UP042, I001

Ruff lint surfaced 23 violations across three rules; all addressed:

UP017 (Use datetime.UTC alias):
  Replaced 13 sites of datetime.now(timezone.utc) with datetime.now(UTC),
  also adjusted from-imports accordingly. UTC is a Python 3.11+ alias for
  timezone.utc that ruff's pyupgrade rules prefer.

UP042 (StrEnum):
  Replaced `class TagKind(str, Enum)` and `class SkipReason(str, Enum)`
  with `class Foo(StrEnum)`. StrEnum was added in Python 3.11 stdlib and
  is the modern idiom. Behavior is equivalent for our usage (the .value
  attribute, str(member) semantics).

I001 (Import sorting):
  Added `known-first-party = ["backend"]` to ruff.toml's [lint.isort] so
  ruff groups `backend.*` imports correctly. Without it, ruff treated
  them as third-party and demanded a different grouping. The existing
  import order is stdlib → third-party → first-party → local relative,
  which ruff now accepts.

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
This commit is contained in:
2026-05-14 14:11:35 -04:00
parent 117873423b
commit b4e0d680f1
10 changed files with 31 additions and 26 deletions
+5 -5
View File
@@ -2,7 +2,7 @@
updates the ImportTask state machine + ImportBatch counters atomically.
"""
from datetime import datetime, timezone
from datetime import UTC, datetime
from pathlib import Path
from sqlalchemy import create_engine, select, update
@@ -34,7 +34,7 @@ def import_media_file(self, import_task_id: int) -> dict:
return {"status": "missing", "task_id": import_task_id}
task.status = "processing"
task.started_at = datetime.now(timezone.utc)
task.started_at = datetime.now(UTC)
session.add(task)
session.commit()
@@ -55,7 +55,7 @@ def import_media_file(self, import_task_id: int) -> dict:
except Exception as exc: # pragma: no cover — pipeline crash
task.status = "failed"
task.error = f"{type(exc).__name__}: {exc}"
task.finished_at = datetime.now(timezone.utc)
task.finished_at = datetime.now(UTC)
session.execute(
update(ImportBatch)
.where(ImportBatch.id == task.batch_id)
@@ -86,7 +86,7 @@ def import_media_file(self, import_task_id: int) -> dict:
counter_col_name = "failed"
counter_col = ImportBatch.failed
task.finished_at = datetime.now(timezone.utc)
task.finished_at = datetime.now(UTC)
session.execute(
update(ImportBatch)
.where(ImportBatch.id == task.batch_id)
@@ -114,7 +114,7 @@ def import_media_file(self, import_task_id: int) -> dict:
.where(ImportBatch.id == task.batch_id)
.values(
status="complete",
finished_at=datetime.now(timezone.utc),
finished_at=datetime.now(UTC),
)
)
session.commit()