import abc from typing import Optional __all__ = ['VulnDescriptionProvider', 'VulnDescription'] class VulnDescription: def __init__(self, text: str, url: Optional[str] = None): self.text = text self.url = url class VulnDescriptionProvider(metaclass=abc.ABCMeta): """ Provides extended vulnerability description by vulnerablity identifier and type """ @abc.abstractmethod def get_description(self, vuln: str, vuln_type: str) -> VulnDescription: pass