from abc import ABC, abstractmethod

from sator_core.models.vulnerability.description import VulnerabilityDescription


class VulnerabilityAttributesExtractorPort(ABC):
    @abstractmethod
    def extract_vulnerability_attributes(self, vulnerability_description: VulnerabilityDescription) -> dict | None:
        """
            Method for extracting attributes from a vulnerability description.
        """
        raise NotImplementedError
