2
2
#
3
3
# SPDX-License-Identifier: Apache-2.0
4
4
5
+ import re
5
6
from datetime import datetime
6
7
7
8
from west import log
8
9
9
10
from zspdx .util import getHashes
10
11
11
- import re
12
-
13
12
CPE23TYPE_REGEX = (
14
13
r'^cpe:2\.3:[aho\*\-](:(((\?*|\*?)([a-zA-Z0-9\-\._]|(\\[\\\*\?!"#$$%&\'\(\)\+,\/:;<=>@\[\]\^'
15
14
r"`\{\|}~]))+(\?*|\*?))|[\*\-])){5}(:(([a-zA-Z]{2,3}(-([a-zA-Z]{2}|[0-9]{3}))?)|[\*\-]))(:(((\?*"
@@ -26,7 +25,10 @@ def _normalize_spdx_name(name):
26
25
# 1) f: file handle for SPDX document
27
26
# 2) rln: Relationship object being described
28
27
def writeRelationshipSPDX (f , rln ):
29
- f .write (f"Relationship: { _normalize_spdx_name (rln .refA )} { rln .rlnType } { _normalize_spdx_name (rln .refB )} \n " )
28
+ f .write (
29
+ f"Relationship: { _normalize_spdx_name (rln .refA )} { rln .rlnType } "
30
+ f"{ _normalize_spdx_name (rln .refB )} \n "
31
+ )
30
32
31
33
# Output tag-value SPDX 2.3 content for the given File object.
32
34
# Arguments:
@@ -45,7 +47,7 @@ def writeFileSPDX(f, bf):
45
47
f .write (f"FileChecksum: MD5: { bf .md5 } \n " )
46
48
f .write (f"LicenseConcluded: { bf .concludedLicense } \n " )
47
49
if len (bf .licenseInfoInFile ) == 0 :
48
- f .write (f "LicenseInfoInFile: NONE\n " )
50
+ f .write ("LicenseInfoInFile: NONE\n " )
49
51
else :
50
52
for licInfoInFile in bf .licenseInfoInFile :
51
53
f .write (f"LicenseInfoInFile: { licInfoInFile } \n " )
@@ -111,10 +113,10 @@ def writePackageSPDX(f, pkg):
111
113
for licFromFiles in pkg .licenseInfoFromFiles :
112
114
f .write (f"PackageLicenseInfoFromFiles: { licFromFiles } \n " )
113
115
else :
114
- f .write (f "PackageLicenseInfoFromFiles: NOASSERTION\n " )
116
+ f .write ("PackageLicenseInfoFromFiles: NOASSERTION\n " )
115
117
f .write (f"FilesAnalyzed: true\n PackageVerificationCode: { pkg .verificationCode } \n \n " )
116
118
else :
117
- f .write (f "FilesAnalyzed: false\n PackageComment: Utility target; no files\n \n " )
119
+ f .write ("FilesAnalyzed: false\n PackageComment: Utility target; no files\n \n " )
118
120
119
121
# write package relationships
120
122
if len (pkg .rlns ) > 0 :
@@ -162,14 +164,17 @@ def writeDocumentSPDX(f, doc):
162
164
extDocs = list (doc .externalDocuments )
163
165
extDocs .sort (key = lambda x : x .cfg .docRefID )
164
166
for extDoc in extDocs :
165
- f .write (f"ExternalDocumentRef: { extDoc .cfg .docRefID } { extDoc .cfg .namespace } SHA1: { extDoc .myDocSHA1 } \n " )
166
- f .write (f"\n " )
167
+ f .write (
168
+ f"ExternalDocumentRef: { extDoc .cfg .docRefID } { extDoc .cfg .namespace } "
169
+ f"SHA1: { extDoc .myDocSHA1 } \n "
170
+ )
171
+ f .write ("\n " )
167
172
168
173
# write relationships owned by this Document (not by its Packages, etc.), if any
169
174
if len (doc .relationships ) > 0 :
170
175
for rln in doc .relationships :
171
176
writeRelationshipSPDX (f , rln )
172
- f .write (f "\n " )
177
+ f .write ("\n " )
173
178
174
179
# write packages
175
180
for pkg in doc .pkgs .values ():
@@ -198,7 +203,7 @@ def writeSPDX(spdxPath, doc):
198
203
# calculate hash of the document we just wrote
199
204
hashes = getHashes (spdxPath )
200
205
if not hashes :
201
- log .err (f "Error: created document but unable to calculate hash values" )
206
+ log .err ("Error: created document but unable to calculate hash values" )
202
207
return False
203
208
doc .myDocSHA1 = hashes [0 ]
204
209
0 commit comments