MCPcopy Create free account
hub / github.com/ScaleML/AgentSPEX / _collect_logs

Function _collect_logs

scripts/dashboard.py:2793–2833  ·  view source on GitHub ↗
(root: Optional[Path])

Source from the content-addressed store, hash-verified

2791
2792
2793def _collect_logs(root: Optional[Path]) -> list[dict]:
2794 if not root or not root.exists():
2795 return []
2796 patterns = ["agent_events.log", "*_agent_events.log", "agent_events-prev-*.log"]
2797 seen: set[Path] = set()
2798 entries: list[dict] = []
2799 for pattern in patterns:
2800 for path in root.rglob(pattern):
2801 if not path.is_file():
2802 continue
2803 resolved = path.resolve()
2804 if resolved in seen:
2805 continue
2806 seen.add(resolved)
2807 try:
2808 stat = resolved.stat()
2809 group = "outputs"
2810 label = _log_label(resolved)
2811 if log_root_path:
2812 try:
2813 rel = resolved.relative_to(log_root_path)
2814 parent = rel.parent
2815 label = rel.name
2816 parent_group = parent.as_posix() if parent else ""
2817 group = (
2818 parent_group if parent_group not in ("", ".") else "outputs"
2819 )
2820 except Exception:
2821 group = "outputs"
2822 entries.append(
2823 {
2824 "path": str(resolved),
2825 "label": label,
2826 "group": group or "logs",
2827 "mtime": stat.st_mtime,
2828 }
2829 )
2830 except Exception:
2831 continue
2832 entries.sort(key=lambda e: e.get("label", "").lower())
2833 return entries
2834
2835
2836@app.route("/api/logs")

Callers 3

list_logsMethod · 0.85
list_logsFunction · 0.85
switch_logFunction · 0.85

Calls 3

_log_labelFunction · 0.85
resolveMethod · 0.80
getMethod · 0.80

Tested by

no test coverage detected