spdx_tools.spdx3.model.software.software_dependency_relationship

 1# SPDX-FileCopyrightText: 2023 spdx contributors
 2#
 3# SPDX-License-Identifier: Apache-2.0
 4from datetime import datetime
 5from enum import Enum, auto
 6
 7from beartype.typing import List, Optional
 8
 9from spdx_tools.common.typing.dataclass_with_properties import dataclass_with_properties
10from spdx_tools.common.typing.type_checks import check_types_and_set_values
11from spdx_tools.spdx3.model import (
12    CreationInfo,
13    ExternalIdentifier,
14    ExternalReference,
15    IntegrityMethod,
16    LifecycleScopedRelationship,
17    LifecycleScopeType,
18    RelationshipCompleteness,
19    RelationshipType,
20)
21
22
23class SoftwareDependencyLinkType(Enum):
24    STATIC = auto()
25    DYNAMIC = auto()
26    TOOL = auto()
27    OTHER = auto()
28
29
30class DependencyConditionalityType(Enum):
31    OPTIONAL = auto()
32    REQUIRED = auto()
33    PROVIDED = auto()
34    PREREQUISITE = auto()
35    OTHER = auto()
36
37
38@dataclass_with_properties
39class SoftwareDependencyRelationship(LifecycleScopedRelationship):
40    software_linkage: Optional[SoftwareDependencyLinkType] = None
41    conditionality: Optional[DependencyConditionalityType] = None
42
43    def __init__(
44        self,
45        spdx_id: str,
46        from_element: str,
47        relationship_type: RelationshipType,
48        to: List[str] = None,
49        creation_info: Optional[CreationInfo] = None,
50        name: Optional[str] = None,
51        summary: Optional[str] = None,
52        description: Optional[str] = None,
53        comment: Optional[str] = None,
54        verified_using: List[IntegrityMethod] = None,
55        external_reference: List[ExternalReference] = None,
56        external_identifier: List[ExternalIdentifier] = None,
57        extension: Optional[str] = None,
58        completeness: Optional[RelationshipCompleteness] = None,
59        start_time: Optional[datetime] = None,
60        end_time: Optional[datetime] = None,
61        scope: Optional[LifecycleScopeType] = None,
62        software_linkage: Optional[SoftwareDependencyLinkType] = None,
63        conditionality: Optional[DependencyConditionalityType] = None,
64    ):
65        to = [] if to is None else to
66        verified_using = [] if verified_using is None else verified_using
67        external_reference = [] if external_reference is None else external_reference
68        external_identifier = [] if external_identifier is None else external_identifier
69        check_types_and_set_values(self, locals())
class SoftwareDependencyLinkType(enum.Enum):
24class SoftwareDependencyLinkType(Enum):
25    STATIC = auto()
26    DYNAMIC = auto()
27    TOOL = auto()
28    OTHER = auto()
Inherited Members
enum.Enum
name
value
class DependencyConditionalityType(enum.Enum):
31class DependencyConditionalityType(Enum):
32    OPTIONAL = auto()
33    REQUIRED = auto()
34    PROVIDED = auto()
35    PREREQUISITE = auto()
36    OTHER = auto()
Inherited Members
enum.Enum
name
value
@dataclass_with_properties
class SoftwareDependencyRelationship(spdx_tools.spdx3.model.lifecycle_scoped_relationship.LifecycleScopedRelationship):
39@dataclass_with_properties
40class SoftwareDependencyRelationship(LifecycleScopedRelationship):
41    software_linkage: Optional[SoftwareDependencyLinkType] = None
42    conditionality: Optional[DependencyConditionalityType] = None
43
44    def __init__(
45        self,
46        spdx_id: str,
47        from_element: str,
48        relationship_type: RelationshipType,
49        to: List[str] = None,
50        creation_info: Optional[CreationInfo] = None,
51        name: Optional[str] = None,
52        summary: Optional[str] = None,
53        description: Optional[str] = None,
54        comment: Optional[str] = None,
55        verified_using: List[IntegrityMethod] = None,
56        external_reference: List[ExternalReference] = None,
57        external_identifier: List[ExternalIdentifier] = None,
58        extension: Optional[str] = None,
59        completeness: Optional[RelationshipCompleteness] = None,
60        start_time: Optional[datetime] = None,
61        end_time: Optional[datetime] = None,
62        scope: Optional[LifecycleScopeType] = None,
63        software_linkage: Optional[SoftwareDependencyLinkType] = None,
64        conditionality: Optional[DependencyConditionalityType] = None,
65    ):
66        to = [] if to is None else to
67        verified_using = [] if verified_using is None else verified_using
68        external_reference = [] if external_reference is None else external_reference
69        external_identifier = [] if external_identifier is None else external_identifier
70        check_types_and_set_values(self, locals())
SoftwareDependencyRelationship( spdx_id: str, from_element: str, relationship_type: spdx_tools.spdx3.model.relationship.RelationshipType, to: list[str] = None, creation_info: Optional[spdx_tools.spdx3.model.creation_info.CreationInfo] = None, name: Optional[str] = None, summary: Optional[str] = None, description: Optional[str] = None, comment: Optional[str] = None, verified_using: list[spdx_tools.spdx3.model.integrity_method.IntegrityMethod] = None, external_reference: list[spdx_tools.spdx3.model.external_reference.ExternalReference] = None, external_identifier: list[spdx_tools.spdx3.model.external_identifier.ExternalIdentifier] = None, extension: Optional[str] = None, completeness: Optional[spdx_tools.spdx3.model.relationship.RelationshipCompleteness] = None, start_time: Optional[datetime.datetime] = None, end_time: Optional[datetime.datetime] = None, scope: Optional[spdx_tools.spdx3.model.lifecycle_scoped_relationship.LifecycleScopeType] = None, software_linkage: Optional[SoftwareDependencyLinkType] = None, conditionality: Optional[DependencyConditionalityType] = None)
44    def __init__(
45        self,
46        spdx_id: str,
47        from_element: str,
48        relationship_type: RelationshipType,
49        to: List[str] = None,
50        creation_info: Optional[CreationInfo] = None,
51        name: Optional[str] = None,
52        summary: Optional[str] = None,
53        description: Optional[str] = None,
54        comment: Optional[str] = None,
55        verified_using: List[IntegrityMethod] = None,
56        external_reference: List[ExternalReference] = None,
57        external_identifier: List[ExternalIdentifier] = None,
58        extension: Optional[str] = None,
59        completeness: Optional[RelationshipCompleteness] = None,
60        start_time: Optional[datetime] = None,
61        end_time: Optional[datetime] = None,
62        scope: Optional[LifecycleScopeType] = None,
63        software_linkage: Optional[SoftwareDependencyLinkType] = None,
64        conditionality: Optional[DependencyConditionalityType] = None,
65    ):
66        to = [] if to is None else to
67        verified_using = [] if verified_using is None else verified_using
68        external_reference = [] if external_reference is None else external_reference
69        external_identifier = [] if external_identifier is None else external_identifier
70        check_types_and_set_values(self, locals())
software_linkage: Optional[SoftwareDependencyLinkType]
47    def get_field(self) -> field_type:
48        return getattr(self, f"_{field_name}")
conditionality: Optional[DependencyConditionalityType]
47    def get_field(self) -> field_type:
48        return getattr(self, f"_{field_name}")