diff --git a/backend/app/tasks/maintenance.py b/backend/app/tasks/maintenance.py index ddf9e08..e9e334e 100644 --- a/backend/app/tasks/maintenance.py +++ b/backend/app/tasks/maintenance.py @@ -882,18 +882,22 @@ def snapshot_head_metrics() -> int: ) ) } + # .all() first: dict() of a bare Result tries the mapping protocol (a + # Result exposes .keys()) and subscripts it, which fails. applied = dict( session.execute( select(image_tag.c.tag_id, func.count()) .where(image_tag.c.source == "head_auto") .group_by(image_tag.c.tag_id) - ) + ).all() ) tag_ids = set(heads) | set(metrics) if not tag_ids: return 0 names = dict( - session.execute(select(Tag.id, Tag.name).where(Tag.id.in_(tag_ids))) + session.execute( + select(Tag.id, Tag.name).where(Tag.id.in_(tag_ids)) + ).all() ) for tid in tag_ids: h = heads.get(tid)