from .load_reports import load_all_reports


class DiscoveryReportManager:
    """
    Owns the loaded discovery reports for the current Explorer session.

    Discovery scripts generate reports.

    This manager loads them once and provides shared access.
    """

    def __init__(self):

        self.project_root = None
        self.reports = {}

    def load(self, project_root):

        self.project_root = project_root

        self.reports = load_all_reports(project_root)

        return self.reports

    def reload(self):

        if not self.project_root:
            raise RuntimeError(
                "Project root has not been set."
            )

        return self.load(self.project_root)

    def get(self, name):

        return self.reports.get(name)

    def has_reports(self):

        return bool(self.reports)