Module continuous_delivery_scripts.spdx_report.spdx_dependency
Definition of dependency SPDX Document.
Classes
class DependencySpdxDocumentRef (name: str, namespace: str, checksum: str, package_id: str)-
Expand source code
class DependencySpdxDocumentRef: """SPDX external document describing dependency. Keep each third-party dependency in a separate SPDX file and link its package to the project through an external document reference. See https://spdx.org/spdx-specification-21-web-version#h.h430e9ypa0j9 """ def __init__(self, name: str, namespace: str, checksum: str, package_id: str) -> None: """Constructor.""" self._document_name = name self._document_namespace = namespace self._document_checksum = checksum self._package_id = package_id @property def document_ref_id(self) -> str: """Return a stable SPDX-safe external document identifier.""" safe_name = ( self._document_name if re.fullmatch(r"[A-Za-z0-9.-]+", self._document_name) else str(generate_uuid_based_on_str(self._document_name)) ) return f"DocumentRef-{safe_name}" @property def package_spdx_id(self) -> str: """Return the referenced package identifier in the external document.""" return f"{self.document_ref_id}:SPDXRef-{self._package_id}" def generate_external_reference(self) -> "ExternalDocumentRef": """Generates the external SPDX reference. e.g. ExternalDocumentRef:DocumentRef-spdx-tool-1.2 http://spdx.org/spdxdocs/spdx-tools- v1.2-3F2504E0-4F89-41D3-9A0C-0305E82C3301 SHA1: d6a770ba38583e d4bb4525bd96e50461655d2759 Returns: corresponding reference """ from spdx_tools.spdx.model.checksum import Checksum, ChecksumAlgorithm from spdx_tools.spdx.model.external_document_ref import ExternalDocumentRef return ExternalDocumentRef( document_ref_id=self.document_ref_id, document_uri=self._document_namespace, checksum=Checksum(ChecksumAlgorithm.SHA1, self._document_checksum), )SPDX external document describing dependency.
Keep each third-party dependency in a separate SPDX file and link its package to the project through an external document reference. See https://spdx.org/spdx-specification-21-web-version#h.h430e9ypa0j9
Constructor.
Instance variables
prop document_ref_id : str-
Expand source code
@property def document_ref_id(self) -> str: """Return a stable SPDX-safe external document identifier.""" safe_name = ( self._document_name if re.fullmatch(r"[A-Za-z0-9.-]+", self._document_name) else str(generate_uuid_based_on_str(self._document_name)) ) return f"DocumentRef-{safe_name}"Return a stable SPDX-safe external document identifier.
prop package_spdx_id : str-
Expand source code
@property def package_spdx_id(self) -> str: """Return the referenced package identifier in the external document.""" return f"{self.document_ref_id}:SPDXRef-{self._package_id}"Return the referenced package identifier in the external document.
Methods
def generate_external_reference(self) ‑> ExternalDocumentRef-
Expand source code
def generate_external_reference(self) -> "ExternalDocumentRef": """Generates the external SPDX reference. e.g. ExternalDocumentRef:DocumentRef-spdx-tool-1.2 http://spdx.org/spdxdocs/spdx-tools- v1.2-3F2504E0-4F89-41D3-9A0C-0305E82C3301 SHA1: d6a770ba38583e d4bb4525bd96e50461655d2759 Returns: corresponding reference """ from spdx_tools.spdx.model.checksum import Checksum, ChecksumAlgorithm from spdx_tools.spdx.model.external_document_ref import ExternalDocumentRef return ExternalDocumentRef( document_ref_id=self.document_ref_id, document_uri=self._document_namespace, checksum=Checksum(ChecksumAlgorithm.SHA1, self._document_checksum), )Generates the external SPDX reference.
e.g. ExternalDocumentRef:DocumentRef-spdx-tool-1.2 http://spdx.org/spdxdocs/spdx-tools- v1.2-3F2504E0-4F89-41D3-9A0C-0305E82C3301 SHA1: d6a770ba38583e d4bb4525bd96e50461655d2759
Returns -----= corresponding reference