feat. Revision of Agent Lopp & major clean-up
CI / test (push) Successful in 8s

This commit is contained in:
2026-06-04 18:00:26 +02:00
parent 1f606475c5
commit 75a2600e4d
28 changed files with 753 additions and 1941 deletions
+38 -5
View File
@@ -3,8 +3,9 @@ from __future__ import annotations
import base64
import io
import logging
import shutil
import sys
from datetime import datetime, timezone
from datetime import datetime, timedelta, timezone
from pathlib import Path
from PIL import Image, ImageDraw
@@ -85,23 +86,55 @@ def setup_artifacts(base_dir: Path) -> RunArtifacts:
)
def cleanup_old_run_artifacts(base_dir: Path, retention_days: int) -> int:
if retention_days < 1 or not base_dir.exists() or not base_dir.is_dir():
return 0
cutoff = datetime.now(timezone.utc) - timedelta(days=retention_days)
removed = 0
for child in base_dir.iterdir():
try:
modified_at = datetime.fromtimestamp(child.stat().st_mtime, tz=timezone.utc)
except FileNotFoundError:
continue
if modified_at >= cutoff:
continue
if child.is_dir():
shutil.rmtree(child, ignore_errors=True)
removed += 1
elif child.is_file():
try:
child.unlink()
removed += 1
except FileNotFoundError:
pass
return removed
def setup_logger(log_file: Path, verbose: bool = True) -> logging.Logger:
logger = logging.getLogger("screenjob")
logger_name = f"screenjob.{log_file.parent.parent.name}"
logger = logging.getLogger(logger_name)
logger.setLevel(logging.DEBUG)
logger.handlers.clear()
logger.propagate = False
if logger.handlers:
return logger
stream_level = logging.INFO if verbose else logging.WARNING
stream_handler = logging.StreamHandler(sys.stdout)
stream_handler.setLevel(stream_level)
stream_handler.setFormatter(
logging.Formatter("%(asctime)s | %(levelname)-8s | %(message)s")
logging.Formatter(
"%(asctime)s.%(msecs)03d | %(message)s",
datefmt="%H:%M:%S",
)
)
file_handler = logging.FileHandler(log_file, encoding="utf-8")
file_handler.setLevel(logging.DEBUG)
file_handler.setFormatter(
logging.Formatter(
"%(asctime)s | %(levelname)-8s | %(name)s | %(filename)s:%(lineno)d | %(message)s"
"%(asctime)s.%(msecs)03d | %(levelname)-8s | %(filename)s:%(lineno)d | %(message)s",
datefmt="%Y-%m-%d %H:%M:%S",
)
)