From 277a517e6df351e10ab2065b598e014e78f51ecb Mon Sep 17 00:00:00 2001 From: Philippe Ombredanne Date: Thu, 16 Sep 2021 14:54:22 +0200 Subject: [PATCH 01/18] Bump version and qualifiers The qualifiers where not correct Signed-off-by: Philippe Ombredanne Signed-off-by: OzTamari --- setup.py | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/setup.py b/setup.py index ba48f80c6..2fce9728d 100755 --- a/setup.py +++ b/setup.py @@ -13,7 +13,7 @@ def test_suite(): setup( name='spdx-tools', - version='0.7.0a1', + version='0.7.0a2', description='SPDX parser and tools.', long_description=long_description, long_description_content_type='text/markdown', @@ -51,9 +51,9 @@ def test_suite(): classifiers=[ 'Intended Audience :: Developers', 'License :: OSI Approved :: Apache Software License', - 'Programming Language :: Python :: 3.6' - 'Programming Language :: Python :: 3.7' - 'Programming Language :: Python :: 3.8' - 'Programming Language :: Python :: 3.9' + 'Programming Language :: Python :: 3.6', + 'Programming Language :: Python :: 3.7', + 'Programming Language :: Python :: 3.8', + 'Programming Language :: Python :: 3.9', ] ) From bccf672716cffa8edb4b7b4ed042bc03b564f6d2 Mon Sep 17 00:00:00 2001 From: Philippe Ombredanne Date: Thu, 16 Sep 2021 14:57:16 +0200 Subject: [PATCH 02/18] Do not build for Python 2 and bump version Signed-off-by: Philippe Ombredanne Signed-off-by: OzTamari --- setup.cfg | 3 --- setup.py | 2 +- 2 files changed, 1 insertion(+), 4 deletions(-) diff --git a/setup.cfg b/setup.cfg index 8ba2b06da..147347759 100644 --- a/setup.cfg +++ b/setup.cfg @@ -1,8 +1,5 @@ [metadata] license_file = LICENSE -[bdist_wheel] -universal=1 - [aliases] release = clean --all sdist --formats=gztar bdist_wheel diff --git a/setup.py b/setup.py index 2fce9728d..402e9bf32 100755 --- a/setup.py +++ b/setup.py @@ -13,7 +13,7 @@ def test_suite(): setup( name='spdx-tools', - version='0.7.0a2', + version='0.7.0a3', description='SPDX parser and tools.', long_description=long_description, long_description_content_type='text/markdown', From 597978efe47f66c62c09a1edfc99f44f6b3ca3a0 Mon Sep 17 00:00:00 2001 From: Philippe Ombredanne Date: Wed, 13 Oct 2021 08:37:49 +0200 Subject: [PATCH 03/18] Fix minor typo #190 Reported-by: Rich Steenwyk Signed-off-by: Philippe Ombredanne Signed-off-by: OzTamari --- spdx/parsers/tagvalue.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/spdx/parsers/tagvalue.py b/spdx/parsers/tagvalue.py index f3962b8e6..eda58fa70 100644 --- a/spdx/parsers/tagvalue.py +++ b/spdx/parsers/tagvalue.py @@ -86,7 +86,7 @@ "FILE_CHKSUM_VALUE": "FileChecksum must be a single line of text starting with 'SHA1:', line:{0}", "FILE_LICS_CONC_VALUE": "LicenseConcluded must be NOASSERTION, NONE, license identifier or license list, line:{0}", "FILE_LICS_INFO_VALUE": "LicenseInfoInFile must be NOASSERTION, NONE or license identifier, line: {0}", - "FILE_LICS_COMMENT_VALUE": "LicenseComments must be free form lext, line: {0}", + "FILE_LICS_COMMENT_VALUE": "LicenseComments must be free form text, line: {0}", "FILE_CR_TEXT_VALUE": "FileCopyrightText must be one of NOASSERTION, NONE or free form text, line: {0}", "FILE_NOTICE_VALUE": "FileNotice must be free form text, line: {0}", "FILE_CONTRIB_VALUE": "FileContributor must be a single line, line: {0}", From 5986c91a9d31668fe6670f3ab97e1345762e4090 Mon Sep 17 00:00:00 2001 From: OzTamari Date: Sun, 5 Dec 2021 10:53:46 +0200 Subject: [PATCH 04/18] Fixing 3 issues that hinder the tool: 1. yaml creation missing encoding. 2. NoAssert cannot be written to a file (not serializable) as it does not have default repr. 3. Problem creating relationships Signed-off-by: OzTamari --- spdx/relationship.py | 7 ++++++- spdx/utils.py | 2 +- spdx/writers/yaml.py | 2 +- 3 files changed, 8 insertions(+), 3 deletions(-) diff --git a/spdx/relationship.py b/spdx/relationship.py index b0dcbab68..20fae0408 100644 --- a/spdx/relationship.py +++ b/spdx/relationship.py @@ -82,6 +82,9 @@ def __init__(self, relationship=None, relationship_comment=None): self.relationship = relationship self.relationship_comment = relationship_comment + def __eq__(self, other): + return True if self.relationship == other.relationship else False + @property def has_comment(self): return self.relationship_comment is not None @@ -103,7 +106,7 @@ def validate(self, messages): Check that all the fields are valid. Appends any error messages to messages parameter shall be a ErrorMessages. """ - self.validate_relationship(messages) + return self.validate_relationship(messages) def validate_relationship(self, messages): r_type = self.relationship.split(" ")[1] @@ -112,3 +115,5 @@ def validate_relationship(self, messages): "Relationship type must be one of the constants defined in " "class spdx.relationship.Relationship" ) + + return messages diff --git a/spdx/utils.py b/spdx/utils.py index ca8ab6fef..dcdf459a2 100644 --- a/spdx/utils.py +++ b/spdx/utils.py @@ -62,7 +62,7 @@ def datetime_from_iso_format(string): return None -class NoAssert(object): +class NoAssert(str): """ Represent SPDX NOASSERTION value. """ diff --git a/spdx/writers/yaml.py b/spdx/writers/yaml.py index 24600d8a7..2ccc6884d 100644 --- a/spdx/writers/yaml.py +++ b/spdx/writers/yaml.py @@ -27,4 +27,4 @@ def write_document(document, out, validate=True): writer = Writer(document) document_object = writer.create_document() - yaml.safe_dump(document_object, out, indent=2, explicit_start=True) + yaml.safe_dump(document_object, out, indent=2, explicit_start=True, encoding='utf-8') From 0f615eef4d844b32b2a077f74898f2df95f58bf6 Mon Sep 17 00:00:00 2001 From: OzTamari Date: Sun, 5 Dec 2021 11:49:44 +0200 Subject: [PATCH 05/18] Adjust fix in NoAsset to pass test Signed-off-by: OzTamari --- spdx/utils.py | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/spdx/utils.py b/spdx/utils.py index dcdf459a2..e245b3981 100644 --- a/spdx/utils.py +++ b/spdx/utils.py @@ -62,7 +62,7 @@ def datetime_from_iso_format(string): return None -class NoAssert(str): +class NoAssert(object): """ Represent SPDX NOASSERTION value. """ @@ -73,6 +73,9 @@ def to_value(self): def __str__(self): return self.to_value() + def __repr__(self): + return self.to_value() + class UnKnown(object): """ @@ -91,6 +94,7 @@ def __repr__(self): def __eq__(self, other): return self.to_value() == other.to_value() + class SPDXNone(object): """ Represent SPDX None value. From cbae4c0ca21077390b0d20629970239661e4c147 Mon Sep 17 00:00:00 2001 From: OzTamari Date: Sun, 16 Jan 2022 11:52:08 +0200 Subject: [PATCH 06/18] Re-enabled relationships on non-TV output formats. Signed-off-by: OzTamari --- spdx/writers/rdf.py | 11 ++++++----- 1 file changed, 6 insertions(+), 5 deletions(-) diff --git a/spdx/writers/rdf.py b/spdx/writers/rdf.py index b5bb6a458..a7cfcff48 100644 --- a/spdx/writers/rdf.py +++ b/spdx/writers/rdf.py @@ -569,7 +569,7 @@ def relationships(self): """ Return a list of relationship nodes """ - return map(self.create_relationship_node, self.document.relationships) + return list(map(self.create_relationship_node, self.document.relationships)) class CreationInfoWriter(BaseWriter): @@ -1016,10 +1016,11 @@ def write(self): for package_node in self.packages(): package_triple = (doc_node, self.spdx_namespace.describesPackage, package_node) self.graph.add(package_triple) - """# Add relationship - relate_node = self.relationships() - relate_triple = (doc_node, self.spdx_namespace.relationship, relate_node) - self.graph.add(relate_triple)""" + # Add relationship + for relate_node in self.relationships(): + relate_triple = (doc_node, self.spdx_namespace.relationship, relate_node) + self.graph.add(relate_triple) + # Add snippet snippet_nodes = self.snippets() for snippet in snippet_nodes: From e6122e2baf26a3be972c6f59cb07441df279c04f Mon Sep 17 00:00:00 2001 From: OzTamari Date: Sun, 5 Dec 2021 10:53:46 +0200 Subject: [PATCH 07/18] Fixing 3 issues that hinder the tool: 1. yaml creation missing encoding. 2. NoAssert cannot be written to a file (not serializable) as it does not have default repr. 3. Problem creating relationships Signed-off-by: OzTamari --- spdx/utils.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/spdx/utils.py b/spdx/utils.py index e245b3981..b14631878 100644 --- a/spdx/utils.py +++ b/spdx/utils.py @@ -62,7 +62,7 @@ def datetime_from_iso_format(string): return None -class NoAssert(object): +class NoAssert(str): """ Represent SPDX NOASSERTION value. """ From 716905b5d548aa003a49187db3a8a605f5435221 Mon Sep 17 00:00:00 2001 From: OzTamari Date: Sun, 5 Dec 2021 11:49:44 +0200 Subject: [PATCH 08/18] Adjust fix in NoAsset to pass test Signed-off-by: OzTamari --- spdx/utils.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/spdx/utils.py b/spdx/utils.py index b14631878..e245b3981 100644 --- a/spdx/utils.py +++ b/spdx/utils.py @@ -62,7 +62,7 @@ def datetime_from_iso_format(string): return None -class NoAssert(str): +class NoAssert(object): """ Represent SPDX NOASSERTION value. """ From 33959302cc9611bf5614434e8a14cbb05cd0e8f9 Mon Sep 17 00:00:00 2001 From: OzTamari Date: Mon, 7 Feb 2022 11:50:52 +0200 Subject: [PATCH 09/18] Adding 'PackageVerificationCode' only if 'FilesAnalyzed' is True as according to SPDX 2.2 spec 7.9.1 (only for JSON, XML, YAML as it does not happen on TV) --- spdx/writers/jsonyamlxml.py | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/spdx/writers/jsonyamlxml.py b/spdx/writers/jsonyamlxml.py index faac513dd..e455ffaf2 100644 --- a/spdx/writers/jsonyamlxml.py +++ b/spdx/writers/jsonyamlxml.py @@ -112,9 +112,6 @@ def create_package_info(self, package): package_object["SPDXID"] = self.spdx_id(package.spdx_id) package_object["name"] = package.name package_object["downloadLocation"] = package.download_location.__str__() - package_object["packageVerificationCode"] = self.package_verification_code( - package - ) package_object["licenseConcluded"] = self.license(package.conc_lics) package_object["licenseInfoFromFiles"] = list( map(self.license, package.licenses_from_files) @@ -122,6 +119,9 @@ def create_package_info(self, package): package_object["licenseDeclared"] = self.license(package.license_declared) package_object["copyrightText"] = package.cr_text.__str__() + if package.verif_code is not None: + package_object["packageVerificationCode"] = self.package_verification_code(package) + if package.has_optional_field("version"): package_object["versionInfo"] = package.version From fe40893a31baf1822d60dd7637c9ffa61e827667 Mon Sep 17 00:00:00 2001 From: NatalyaDalid Date: Sun, 20 Feb 2022 15:47:53 +0200 Subject: [PATCH 10/18] make SBOM aligned with SPDX Tool Validator --- setup.py | 4 ++-- spdx/writers/jsonyamlxml.py | 40 ++++++++++++++++++++++++++++++++----- spdx/writers/xml.py | 4 +++- 3 files changed, 40 insertions(+), 8 deletions(-) diff --git a/setup.py b/setup.py index 402e9bf32..e65e6a13f 100755 --- a/setup.py +++ b/setup.py @@ -12,8 +12,8 @@ def test_suite(): long_description = fh.read() setup( - name='spdx-tools', - version='0.7.0a3', + name='ws-spdx-tools', + version='0.7.0a3.post3', description='SPDX parser and tools.', long_description=long_description, long_description_content_type='text/markdown', diff --git a/spdx/writers/jsonyamlxml.py b/spdx/writers/jsonyamlxml.py index e455ffaf2..ba4406902 100644 --- a/spdx/writers/jsonyamlxml.py +++ b/spdx/writers/jsonyamlxml.py @@ -47,7 +47,9 @@ def checksum(self, checksum_field): """ checksum_object = dict() checksum_object["algorithm"] = ( - "checksumAlgorithm_" + checksum_field.identifier.lower() + #"checksumAlgorithm_" + checksum_field.identifier.lower() + # Changed by the WhiteSouse PS Team. + checksum_field.identifier ) checksum_object["checksumValue"] = checksum_field.value return checksum_object @@ -156,6 +158,9 @@ def create_package_info(self, package): if package.has_optional_field("homepage"): package_object["homepage"] = package.homepage.__str__() + if package.has_optional_field("files_analyzed"): + package_object["filesAnalyzed"] = package.files_analyzed + return package_object @@ -471,13 +476,36 @@ def create_document(self): self.document_object["SPDXID"] = self.spdx_id(self.document.spdx_id) self.document_object["name"] = self.document.name + # filter by unique spdx_id attribute in Package object, added by the WhiteSouse PS Team + unique_doc_packages = {} + for doc_package in self.document.packages: + if doc_package.spdx_id not in unique_doc_packages.keys(): + unique_doc_packages[doc_package.spdx_id] = doc_package + + # commented by WS PS Team + # package_objects = [] + # for package in self.document.packages: + # package_info_object = self.create_package_info(package) + # package_info_object["files"] = self.create_file_info(package) + # package_objects.append({"Package": package_info_object}) + # + # self.document_object["documentDescribes"] = package_objects + + # the previous code block has been adjusted by the WhiteSouse PS Team. + # adding documentDescribes and packages sections. package_objects = [] - for package in self.document.packages: + document_describes_objects = [] + for package in unique_doc_packages.values(): package_info_object = self.create_package_info(package) package_info_object["files"] = self.create_file_info(package) - package_objects.append({"Package": package_info_object}) + # create a list of the packages' names for the 'documentDescribes' field + package_spdxid = package_info_object.get("SPDXID") + document_describes_objects.append(package_spdxid) + package_objects.append(package_info_object) - self.document_object["documentDescribes"] = package_objects + self.document_object["documentDescribes"] = document_describes_objects + self.document_object["packages"] = package_objects + # end if self.document.has_comment: self.document_object["comment"] = self.document.comment @@ -504,4 +532,6 @@ def create_document(self): if self.document.relationships: self.document_object["relationships"] = self.create_relationship_info() - return {"Document": self.document_object} + # return {"Document": self.document_object}. No need in "Document" key for json and tv format. + # Changed by the WhiteSouse PS Team. + return self.document_object diff --git a/spdx/writers/xml.py b/spdx/writers/xml.py index 43e28f8cf..c2b18d999 100644 --- a/spdx/writers/xml.py +++ b/spdx/writers/xml.py @@ -25,6 +25,8 @@ def write_document(document, out, validate=True): raise InvalidDocumentError(messages) writer = Writer(document) - document_object = {"SpdxDocument": writer.create_document()} + # document_object = {"SpdxDocument": writer.create_document()}. + # hanged by the WhiteSouse PS Team + document_object = {"Document": writer.create_document()} xmltodict.unparse(document_object, out, encoding="utf-8", pretty=True) From 5fc3694d53d6ff93ba94d370868b1fd211fc99f3 Mon Sep 17 00:00:00 2001 From: NatalyaDalid Date: Mon, 21 Feb 2022 08:45:10 +0200 Subject: [PATCH 11/18] adding filter licenses and json converter --- spdx/writers/json.py | 16 +++++++++++++++- spdx/writers/jsonyamlxml.py | 11 +++++++++-- 2 files changed, 24 insertions(+), 3 deletions(-) diff --git a/spdx/writers/json.py b/spdx/writers/json.py index 0177cd104..c9e257d04 100644 --- a/spdx/writers/json.py +++ b/spdx/writers/json.py @@ -14,6 +14,20 @@ from spdx.writers.tagvalue import InvalidDocumentError from spdx.writers.jsonyamlxml import Writer from spdx.parsers.loggers import ErrorMessages +import numpy as np +import datetime + + +# this method has been added by the WhiteSouse PS Team. +def json_converter(obj): + if isinstance(obj, np.integer): + return int(obj) + elif isinstance(obj, np.floating): + return float(obj) + elif isinstance(obj, np.ndarray): + return obj.tolist() + elif isinstance(obj, datetime.datetime): + return obj.__str__() def write_document(document, out, validate=True): @@ -26,4 +40,4 @@ def write_document(document, out, validate=True): writer = Writer(document) document_object = writer.create_document() - json.dump(document_object, out, indent=4) + json.dump(document_object, out, indent=4, default=json_converter) diff --git a/spdx/writers/jsonyamlxml.py b/spdx/writers/jsonyamlxml.py index ba4406902..8204afcaf 100644 --- a/spdx/writers/jsonyamlxml.py +++ b/spdx/writers/jsonyamlxml.py @@ -376,9 +376,16 @@ def __init__(self, document): def create_extracted_license(self): extracted_license_objects = [] - extracted_licenses = self.document.extracted_licenses + # commented by the WS PS Team + # extracted_licenses = self.document.extracted_licenses - for extracted_license in extracted_licenses: + # filter by unique identifier attribute in ExtractedLicense object, added by the WhiteSouse PS Team + unique_extracted_licenses = {} + for lic in self.document.extracted_licenses: + if lic.identifier not in unique_extracted_licenses.keys(): + unique_extracted_licenses[lic.identifier] = lic + + for extracted_license in unique_extracted_licenses.values(): extracted_license_object = dict() if isinstance(extracted_license.identifier, Literal): From a6cee6a46130d5ed8e88e721e38e2b6a8b9a88fe Mon Sep 17 00:00:00 2001 From: NatalyaDalid Date: Mon, 21 Feb 2022 08:47:54 +0200 Subject: [PATCH 12/18] update version --- setup.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/setup.py b/setup.py index e65e6a13f..91ef3c699 100755 --- a/setup.py +++ b/setup.py @@ -13,7 +13,7 @@ def test_suite(): setup( name='ws-spdx-tools', - version='0.7.0a3.post3', + version='0.7.0a3.post4', description='SPDX parser and tools.', long_description=long_description, long_description_content_type='text/markdown', From bd45d419b2e79c43a2b16e25ed2da67551636cc9 Mon Sep 17 00:00:00 2001 From: NatalyaDalid Date: Wed, 23 Feb 2022 20:41:12 +0200 Subject: [PATCH 13/18] remove duplicate sha1 and empty files field --- spdx/writers/jsonyamlxml.py | 8 +++++--- 1 file changed, 5 insertions(+), 3 deletions(-) diff --git a/spdx/writers/jsonyamlxml.py b/spdx/writers/jsonyamlxml.py index 8204afcaf..f89352ebe 100644 --- a/spdx/writers/jsonyamlxml.py +++ b/spdx/writers/jsonyamlxml.py @@ -147,7 +147,8 @@ def create_package_info(self, package): if package.has_optional_field("check_sum"): package_object["checksums"] = [self.checksum(package.check_sum)] - package_object["sha1"] = package.check_sum.value + # package_object["sha1"] = package.check_sum.value + # commented by the WS PS Team, sha1 is already exist in check_sum if package.has_optional_field("description"): package_object["description"] = package.description @@ -489,7 +490,7 @@ def create_document(self): if doc_package.spdx_id not in unique_doc_packages.keys(): unique_doc_packages[doc_package.spdx_id] = doc_package - # commented by WS PS Team + # commented by the WS PS Team # package_objects = [] # for package in self.document.packages: # package_info_object = self.create_package_info(package) @@ -504,7 +505,8 @@ def create_document(self): document_describes_objects = [] for package in unique_doc_packages.values(): package_info_object = self.create_package_info(package) - package_info_object["files"] = self.create_file_info(package) + if package.files: + package_info_object["files"] = self.create_file_info(package) # create a list of the packages' names for the 'documentDescribes' field package_spdxid = package_info_object.get("SPDXID") document_describes_objects.append(package_spdxid) From 3fdd1a4c3e05dadb087b129daeb686d7ba2159bf Mon Sep 17 00:00:00 2001 From: rammatzkvosky <41573396+rammatzkvosky@users.noreply.github.com> Date: Sun, 27 Mar 2022 14:42:28 +0300 Subject: [PATCH 14/18] updating setup.py version to '0.7.0a3.post5' Signed-off-by: rammatzkvosky --- setup.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/setup.py b/setup.py index 91ef3c699..3177ac309 100755 --- a/setup.py +++ b/setup.py @@ -13,7 +13,7 @@ def test_suite(): setup( name='ws-spdx-tools', - version='0.7.0a3.post4', + version='0.7.0a3.post5', description='SPDX parser and tools.', long_description=long_description, long_description_content_type='text/markdown', From 25abc73afa092d4a970c6ef8ada55a90b8be750c Mon Sep 17 00:00:00 2001 From: rammatzkvosky Date: Thu, 31 Mar 2022 23:22:28 +0300 Subject: [PATCH 15/18] Adding condition to validate_checksum() for cases where check_sum.value is not available at WhiteSource Updating setup.py version to '0.7.0a3.post6' Signed-off-by: rammatzkvosky --- setup.py | 2 +- spdx/package.py | 3 +++ 2 files changed, 4 insertions(+), 1 deletion(-) diff --git a/setup.py b/setup.py index 3177ac309..71f221955 100755 --- a/setup.py +++ b/setup.py @@ -13,7 +13,7 @@ def test_suite(): setup( name='ws-spdx-tools', - version='0.7.0a3.post5', + version='0.7.0a3.post6', description='SPDX parser and tools.', long_description=long_description, long_description_content_type='text/markdown', diff --git a/spdx/package.py b/spdx/package.py index 32279d2d5..14817da24 100644 --- a/spdx/package.py +++ b/spdx/package.py @@ -276,6 +276,9 @@ def validate_checksum(self, messages): messages.append( "Package checksum must be instance of spdx.checksum.Algorithm" ) + # this check was added by the WhiteSouse PS Team ( for cases where SHA1 is not available at WhiteSource ) + if not self.check_sum.value: + delattr(self, 'check_sum') return messages From 6a48660fce392b403c0f2c693c4b262d9025767f Mon Sep 17 00:00:00 2001 From: DimarrWS <103509127+DimarrWS@users.noreply.github.com> Date: Tue, 28 Jun 2022 11:24:10 +0300 Subject: [PATCH 16/18] Added exception for delete check_sum --- spdx/package.py | 19 +++++++++++-------- 1 file changed, 11 insertions(+), 8 deletions(-) diff --git a/spdx/package.py b/spdx/package.py index 14817da24..06fd84347 100644 --- a/spdx/package.py +++ b/spdx/package.py @@ -271,14 +271,17 @@ def validate_str_fields(self, fields, optional, messages): return messages def validate_checksum(self, messages): - if self.check_sum is not None: - if not isinstance(self.check_sum, checksum.Algorithm): - messages.append( - "Package checksum must be instance of spdx.checksum.Algorithm" - ) - # this check was added by the WhiteSouse PS Team ( for cases where SHA1 is not available at WhiteSource ) - if not self.check_sum.value: - delattr(self, 'check_sum') + try: + if self.check_sum is not None: + if not isinstance(self.check_sum, checksum.Algorithm): + messages.append( + "Package checksum must be instance of spdx.checksum.Algorithm" + ) + # this check was added by the WhiteSouse PS Team ( for cases where SHA1 is not available at WhiteSource ) + if not self.check_sum.value: + delattr(self, 'check_sum') + except: + pass return messages From b316c0c4883a684f85f1ee0fee25f2f313dc03fa Mon Sep 17 00:00:00 2001 From: DimarrWS <103509127+DimarrWS@users.noreply.github.com> Date: Tue, 28 Jun 2022 11:33:04 +0300 Subject: [PATCH 17/18] Added exception for delete check_sum --- setup.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/setup.py b/setup.py index 71f221955..d0d767511 100755 --- a/setup.py +++ b/setup.py @@ -13,7 +13,7 @@ def test_suite(): setup( name='ws-spdx-tools', - version='0.7.0a3.post6', + version='0.7.0a4.post6', description='SPDX parser and tools.', long_description=long_description, long_description_content_type='text/markdown', From e7d4f5116c4dc8ea4959c190b3e6bdac769b42e2 Mon Sep 17 00:00:00 2001 From: DimarrWS <103509127+DimarrWS@users.noreply.github.com> Date: Tue, 28 Jun 2022 11:40:44 +0300 Subject: [PATCH 18/18] Added exception for delete check_sum --- setup.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/setup.py b/setup.py index d0d767511..46be23a9a 100755 --- a/setup.py +++ b/setup.py @@ -13,7 +13,7 @@ def test_suite(): setup( name='ws-spdx-tools', - version='0.7.0a4.post6', + version='0.7.0a3.post7', description='SPDX parser and tools.', long_description=long_description, long_description_content_type='text/markdown',