Module continuous_delivery_scripts.spdx_report.spdx_dependency
Definition of dependency SPDX Document.
Expand source code
#
# Copyright (C) 2020-2025 Arm Limited or its affiliates and Contributors. All rights reserved.
# SPDX-License-Identifier: Apache-2.0
#
"""Definition of dependency SPDX Document."""
from spdx.checksum import Algorithm
from spdx.document import ExternalDocumentRef
class DependencySpdxDocumentRef:
"""SPDX external document describing dependency.
The specification in use as well as the current SPDX SDK do not currently
allow having more than one package described in a single SPDX document.
Therefore, it has been decided to use the ExternalDocumentRef field and
describe each third-party dependency in a separate file.
See https://spdx.org/spdx-specification-21-web-version#h.h430e9ypa0j9
"""
def __init__(self, name: str, namespace: str, checksum: str) -> None:
"""Constructor."""
self._document_name = name
self._document_namespace = namespace
self._document_checksum = checksum
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
"""
return ExternalDocumentRef(
external_document_id=self._document_name,
spdx_document_uri=self._document_namespace,
check_sum=Algorithm("SHA1", self._document_checksum),
)
Classes
class DependencySpdxDocumentRef (name: str, namespace: str, checksum: str)
-
SPDX external document describing dependency.
The specification in use as well as the current SPDX SDK do not currently allow having more than one package described in a single SPDX document. Therefore, it has been decided to use the ExternalDocumentRef field and describe each third-party dependency in a separate file. See https://spdx.org/spdx-specification-21-web-version#h.h430e9ypa0j9
Constructor.
Expand source code
class DependencySpdxDocumentRef: """SPDX external document describing dependency. The specification in use as well as the current SPDX SDK do not currently allow having more than one package described in a single SPDX document. Therefore, it has been decided to use the ExternalDocumentRef field and describe each third-party dependency in a separate file. See https://spdx.org/spdx-specification-21-web-version#h.h430e9ypa0j9 """ def __init__(self, name: str, namespace: str, checksum: str) -> None: """Constructor.""" self._document_name = name self._document_namespace = namespace self._document_checksum = checksum 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 """ return ExternalDocumentRef( external_document_id=self._document_name, spdx_document_uri=self._document_namespace, check_sum=Algorithm("SHA1", self._document_checksum), )
Methods
def generate_external_reference(self) ‑> spdx.document.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
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 """ return ExternalDocumentRef( external_document_id=self._document_name, spdx_document_uri=self._document_namespace, check_sum=Algorithm("SHA1", self._document_checksum), )