Source code for mythx_cli.formatter.base

"""This module contains the base formatter interface."""

import abc
from typing import List, Optional, Tuple

from mythx_models.response import (
    AnalysisInputResponse,
    AnalysisListResponse,
    AnalysisStatusResponse,
    DetectedIssuesResponse,
    VersionResponse,
)


[docs]class BaseFormatter(abc.ABC): """The base formatter interface for printing various response types.""" report_requires_input = False
[docs] @staticmethod @abc.abstractmethod def format_analysis_list(obj: AnalysisListResponse) -> str: """Format an analysis list response.""" pass # pragma: no cover
[docs] @staticmethod def format_analysis_status(resp: AnalysisStatusResponse) -> str: """Format an analysis status response.""" pass # pragma: no cover
[docs] @staticmethod @abc.abstractmethod def format_detected_issues( issues_list: List[ Tuple[DetectedIssuesResponse, Optional[AnalysisInputResponse]] ], **kwargs, ) -> str: """Format an issue report response.""" pass # pragma: no cover
[docs] @staticmethod @abc.abstractmethod def format_version(obj: VersionResponse) -> str: """Format a version response.""" pass # pragma: no cover