Source code for bridge.builders.spdx.spdx_transormer

"""
Transformer converting raw SPDX license data into a SPDXLicense.
"""

import logging

from bridge.builders.protocols import Transformer
from bridge.core.license import SPDXLicense
from bridge.services import SPDXLicenseIngestor

logger = logging.getLogger(__name__)


[docs] class SPDXLicenseTransformer(Transformer): """ Transform raw data from SPDXLicenseIngestor into a SPDXLicense. Parameters ---------- ingestor : SPDXLicenseIngestor An instance of SPDXLicenseIngestor to fetch raw license metadata. Attributes ---------- ingestor : SPDXLicenseIngestor The ingestor instance used to fetch raw license metadata. """ def __init__(self, ingestor: SPDXLicenseIngestor): self.ingestor = ingestor
[docs] async def transform(self) -> SPDXLicense: """ Transform raw data into a SPDXLicense. Returns ------- SPDXLicense The transformed license model. """ logger.info(f"Transforming data for SPDX license ID {self.ingestor.spdx_id}") raw_data = await self.ingestor.fetch() logger.debug(f"Raw data keys: {list(raw_data.keys())}") result = SPDXLicense(**raw_data) logger.info(f"Transformed data for SPDX license ID {self.ingestor.spdx_id} successfully") return result