from dataclasses import dataclass from pathlib import Path from archive_logs import ArchiveLogsResult from archive_logs import run as run_archive_logs from clients import ClientsResult from clients import run as run_clients from session_details import SessionDetailsResult from session_details import run as run_session_details from summary import SummaryResult from summary import run as run_summary @dataclass(frozen=True) class InfoResult: clients_result: ClientsResult archive_result: ArchiveLogsResult session_details_result: SessionDetailsResult summary_result: SummaryResult def run( directory: Path, clients_output: Path, session_details_output: Path, summary_output: Path, days: int = 14, ) -> InfoResult: clients_result = run_clients(directory, clients_output) archive_result = run_archive_logs(directory) session_details_result = run_session_details(directory, session_details_output) summary_result = run_summary(session_details_output, summary_output, days) return InfoResult( clients_result=clients_result, archive_result=archive_result, session_details_result=session_details_result, summary_result=summary_result, )