fix: tolerate damaged contribution files

This commit is contained in:
Marcel Peterkau
2026-06-21 17:50:56 +02:00
parent 4bc1a8a200
commit 55bc3b666e
10 changed files with 87 additions and 4 deletions
+11 -2
View File
@@ -10,7 +10,7 @@ from pathlib import Path
from typing import Any
from uuid import uuid4
from ccma.domain.models import HousekeeperFinding
from ccma.domain.models import ContributionData, HousekeeperFinding
from ccma.rules.api import RuleAction, RuleContext
from ccma.rules.loader import LoadedRule, load_rules
from ccma.services.intervals import AnniversaryInterval, parse_anniversary_intervals
@@ -68,21 +68,30 @@ class Housekeeper:
rules = load_rules(self.repository.root)
repository_config = self.repository.get_configuration()
for member in self.repository.list_members():
try:
contributions = self.repository.get_contributions(member.member_id)
contributions_error = None
except RepositoryError as exc:
contributions = ContributionData()
contributions_error = str(exc)
for rule in rules:
scope = (rule.rule_id, member.member_id)
try:
context = RuleContext(
member=member,
contributions=self.repository.get_contributions(member.member_id),
contributions=contributions,
today=current_date,
settings=self.settings,
repository_config=repository_config,
contributions_error=contributions_error,
)
actions = rule.evaluate(context)
if not isinstance(actions, list):
raise TypeError("evaluate(context) muss eine Liste zurückgeben")
for action in actions:
self._apply_action(items, action, rule, run_id, now)
if action.action == "create_claim":
contributions = self.repository.get_contributions(member.member_id)
except Exception as exc:
self._refresh_task(
items,