Skip to content

Commit 8935a9c

Browse files
[issue-426] update model: primaryPurpose
to ab0391a52864ce3fc568df3938f542058556731c Signed-off-by: Armin Tänzer <armin.taenzer@tngtech.com>
1 parent c708c93 commit 8935a9c

10 files changed

Lines changed: 23 additions & 17 deletions

File tree

README.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -50,7 +50,7 @@ additional installation of optional dependencies
5050
* Serialize to JSON-LD
5151

5252
See [Quickstart to SPDX 3.0](#quickstart-to-spdx-30) below.
53-
The implementation is based on the descriptive markdown files in the repository https://github.com/spdx/spdx-3-model (latest commit: a5e7cebcd2c7094f89fb7416be16803d67716402).
53+
The implementation is based on the descriptive markdown files in the repository https://github.com/spdx/spdx-3-model (latest commit: ab0391a52864ce3fc568df3938f542058556731c).
5454

5555

5656
# Installation

src/spdx_tools/spdx3/bump_from_spdx2/package.py

Lines changed: 2 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -93,9 +93,7 @@ def bump_package(
9393
elif isinstance(id_or_ref, ExternalIdentifier):
9494
external_identifiers.append(id_or_ref)
9595

96-
package_purpose = (
97-
[SoftwarePurpose[spdx2_package.primary_package_purpose.name]] if spdx2_package.primary_package_purpose else []
98-
)
96+
package_purpose = SoftwarePurpose[spdx2_package.primary_package_purpose.name]
9997

10098
payload.add_element(
10199
Package(
@@ -113,7 +111,7 @@ def bump_package(
113111
built_time=spdx2_package.built_date,
114112
release_time=spdx2_package.release_date,
115113
valid_until_time=spdx2_package.valid_until_date,
116-
purpose=package_purpose,
114+
primary_purpose=package_purpose,
117115
package_version=spdx2_package.version,
118116
download_location=download_location,
119117
package_url=package_url,

src/spdx_tools/spdx3/model/ai/ai_package.py

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -46,7 +46,7 @@ def __init__(
4646
supplied_by: List[str],
4747
download_location: str,
4848
package_version: str,
49-
purpose: List[SoftwarePurpose],
49+
primary_purpose: SoftwarePurpose,
5050
release_time: datetime,
5151
creation_info: Optional[CreationInfo] = None,
5252
summary: Optional[str] = None,
@@ -61,6 +61,7 @@ def __init__(
6161
valid_until_time: Optional[datetime] = None,
6262
standard: List[str] = None,
6363
content_identifier: Optional[str] = None,
64+
additional_purpose: List[SoftwarePurpose] = None,
6465
concluded_license: Optional[LicenseField] = None,
6566
declared_license: Optional[LicenseField] = None,
6667
copyright_text: Optional[str] = None,
@@ -88,6 +89,7 @@ def __init__(
8889
external_references = [] if external_references is None else external_references
8990
external_identifier = [] if external_identifier is None else external_identifier
9091
originated_by = [] if originated_by is None else originated_by
92+
additional_purpose = [] if additional_purpose is None else additional_purpose
9193
standard = [] if standard is None else standard
9294
standard_compliance = [] if standard_compliance is None else standard_compliance
9395
type_of_model = [] if type_of_model is None else type_of_model

src/spdx_tools/spdx3/model/dataset/dataset.py

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -51,7 +51,7 @@ def __init__(
5151
name: str,
5252
originated_by: List[str],
5353
download_location: str,
54-
purpose: List[SoftwarePurpose],
54+
primary_purpose: SoftwarePurpose,
5555
built_time: datetime,
5656
release_time: datetime,
5757
dataset_type: str,
@@ -67,6 +67,7 @@ def __init__(
6767
valid_until_time: Optional[datetime] = None,
6868
standard: List[str] = None,
6969
content_identifier: Optional[str] = None,
70+
additional_purpose: List[SoftwarePurpose] = None,
7071
concluded_license: Optional[LicenseField] = None,
7172
declared_license: Optional[LicenseField] = None,
7273
copyright_text: Optional[str] = None,
@@ -92,6 +93,7 @@ def __init__(
9293
external_references = [] if external_references is None else external_references
9394
external_identifier = [] if external_identifier is None else external_identifier
9495
originated_by = [] if originated_by is None else originated_by
96+
additional_purpose = [] if additional_purpose is None else additional_purpose
9597
supplied_by = [] if supplied_by is None else supplied_by
9698
standard = [] if standard is None else standard
9799
data_preprocessing = [] if data_preprocessing is None else data_preprocessing

src/spdx_tools/spdx3/model/namespace_map.py

Lines changed: 0 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,8 +1,6 @@
11
# SPDX-FileCopyrightText: 2023 spdx contributors
22
#
33
# SPDX-License-Identifier: Apache-2.0
4-
from beartype.typing import Optional
5-
64
from spdx_tools.common.typing.dataclass_with_properties import dataclass_with_properties
75
from spdx_tools.common.typing.type_checks import check_types_and_set_values
86

src/spdx_tools/spdx3/model/software/file.py

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -36,7 +36,8 @@ def __init__(
3636
valid_until_time: Optional[datetime] = None,
3737
standard: List[str] = None,
3838
content_identifier: Optional[str] = None,
39-
purpose: List[SoftwarePurpose] = None,
39+
primary_purpose: Optional[SoftwarePurpose] = None,
40+
additional_purpose: List[SoftwarePurpose] = None,
4041
concluded_license: Optional[LicenseField] = None,
4142
declared_license: Optional[LicenseField] = None,
4243
copyright_text: Optional[str] = None,
@@ -49,5 +50,5 @@ def __init__(
4950
originated_by = [] if originated_by is None else originated_by
5051
supplied_by = [] if supplied_by is None else supplied_by
5152
standard = [] if standard is None else standard
52-
purpose = [] if purpose is None else purpose
53+
additional_purpose = [] if additional_purpose is None else additional_purpose
5354
check_types_and_set_values(self, locals())

src/spdx_tools/spdx3/model/software/package.py

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -40,7 +40,8 @@ def __init__(
4040
valid_until_time: Optional[datetime] = None,
4141
standard: List[str] = None,
4242
content_identifier: Optional[str] = None,
43-
purpose: List[SoftwarePurpose] = None,
43+
primary_purpose: Optional[SoftwarePurpose] = None,
44+
additional_purpose: List[SoftwarePurpose] = None,
4445
concluded_license: Optional[LicenseField] = None,
4546
declared_license: Optional[LicenseField] = None,
4647
copyright_text: Optional[str] = None,
@@ -57,5 +58,5 @@ def __init__(
5758
originated_by = [] if originated_by is None else originated_by
5859
supplied_by = [] if supplied_by is None else supplied_by
5960
standard = [] if standard is None else standard
60-
purpose = [] if purpose is None else purpose
61+
additional_purpose = [] if additional_purpose is None else additional_purpose
6162
check_types_and_set_values(self, locals())

src/spdx_tools/spdx3/model/software/snippet.py

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -38,7 +38,8 @@ def __init__(
3838
valid_until_time: Optional[datetime] = None,
3939
standard: List[str] = None,
4040
content_identifier: Optional[str] = None,
41-
purpose: List[SoftwarePurpose] = None,
41+
primary_purpose: Optional[SoftwarePurpose] = None,
42+
additional_purpose: List[SoftwarePurpose] = None,
4243
concluded_license: Optional[LicenseField] = None,
4344
declared_license: Optional[LicenseField] = None,
4445
copyright_text: Optional[str] = None,
@@ -52,5 +53,5 @@ def __init__(
5253
originated_by = [] if originated_by is None else originated_by
5354
supplied_by = [] if supplied_by is None else supplied_by
5455
standard = [] if standard is None else standard
55-
purpose = [] if purpose is None else purpose
56+
additional_purpose = [] if additional_purpose is None else additional_purpose
5657
check_types_and_set_values(self, locals())

src/spdx_tools/spdx3/model/software/software_artifact.py

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -2,6 +2,7 @@
22
#
33
# SPDX-License-Identifier: Apache-2.0
44
from abc import abstractmethod
5+
from dataclasses import field
56

67
from beartype.typing import List, Optional
78

@@ -14,7 +15,8 @@
1415
@dataclass_with_properties
1516
class SoftwareArtifact(Artifact):
1617
content_identifier: Optional[str] = None
17-
purpose: List[SoftwarePurpose] = None
18+
primary_purpose: Optional[SoftwarePurpose] = None
19+
additional_purpose: List[SoftwarePurpose] = field(default_factory=list)
1820
concluded_license: Optional[LicenseField] = None
1921
declared_license: Optional[LicenseField] = None
2022
copyright_text: Optional[str] = None

tests/spdx3/fixtures.py

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -380,7 +380,8 @@ def listed_license_fixture(
380380

381381
SOFTWARE_ARTIFACT_DICT = {
382382
"content_identifier": "https://spdx.test/tools-python/contentIdentifier",
383-
"purpose": [SoftwarePurpose.OTHER],
383+
"primary_purpose": SoftwarePurpose.SOURCE,
384+
"additional_purpose": [SoftwarePurpose.OTHER],
384385
"concluded_license": listed_license_fixture(),
385386
"declared_license": listed_license_fixture(),
386387
"copyright_text": "copyrightText",

0 commit comments

Comments
 (0)