99from datetime import datetime , timezone
1010from pathlib import Path
1111
12- from spdx_python_model import v3_0_1 as spdx3
12+ from spdx_python_model . bindings import v3_0_1 as spdx3
1313
1414from pitloom .assemble .spdx3 .ai import _build_ai_package , add_ai_models
1515from pitloom .assemble .spdx3 .dataset import add_datasets_for_model
2323 compute_doc_uuid ,
2424 generate_spdx_id ,
2525)
26- from pitloom .export .spdx3_json import Spdx3JsonExporter
26+ from pitloom .export .spdx3_json import Spdx3JsonExporter , require_spdx_id
2727
2828
2929def _parse_iso_datetime (value : str ) -> datetime :
@@ -87,9 +87,9 @@ def _build_creation_bundle(
8787 creationInfo = spdx_ci ,
8888 )
8989
90- spdx_ci .createdBy = [creator . spdxId ]
90+ spdx_ci .createdBy = [require_spdx_id ( creator ) ]
9191 if tool is not None :
92- spdx_ci .createdUsing = [tool . spdxId ]
92+ spdx_ci .createdUsing = [require_spdx_id ( tool ) ]
9393 return spdx_ci , creator , tool
9494
9595
@@ -179,7 +179,7 @@ def _add_package_files(
179179 )
180180 directory_file .software_fileKind = spdx3 .software_FileKindType .directory
181181 exporter .add_file (directory_file )
182- dir_spdx_ids [directory_name ] = directory_file . spdxId
182+ dir_spdx_ids [directory_name ] = require_spdx_id ( directory_file )
183183
184184 parent_id = (
185185 main_package .spdxId
@@ -192,7 +192,7 @@ def _add_package_files(
192192 "Relationship" , doc_name = metadata .name , doc_uuid = doc_uuid
193193 ),
194194 from_ = parent_id ,
195- to = [directory_file . spdxId ],
195+ to = [require_spdx_id ( directory_file ) ],
196196 relationshipType = spdx3 .RelationshipType .contains ,
197197 creationInfo = spdx_ci ,
198198 )
@@ -211,7 +211,7 @@ def _add_package_files(
211211 )
212212 ]
213213 exporter .add_file (package_entry )
214- file_spdx_ids [package_file .distribution_path ] = package_entry . spdxId
214+ file_spdx_ids [package_file .distribution_path ] = require_spdx_id ( package_entry )
215215
216216 parent_id = (
217217 dir_spdx_ids [parent_paths [- 1 ].as_posix ()]
@@ -224,7 +224,7 @@ def _add_package_files(
224224 "Relationship" , doc_name = metadata .name , doc_uuid = doc_uuid
225225 ),
226226 from_ = parent_id ,
227- to = [package_entry . spdxId ],
227+ to = [require_spdx_id ( package_entry ) ],
228228 relationshipType = spdx3 .RelationshipType .contains ,
229229 creationInfo = spdx_ci ,
230230 )
@@ -303,7 +303,7 @@ def build(doc: DocumentModel, merkle_root: str | None = None) -> Spdx3JsonExport
303303 if metadata .license_name :
304304 rel_declared , rel_concluded = build_license_elements (
305305 license_id = metadata .license_name ,
306- package_spdx_id = main_package . spdxId ,
306+ package_spdx_id = require_spdx_id ( main_package ) ,
307307 license_provenance = metadata .provenance .get (
308308 "license" , "Source: pyproject.toml | Field: project.license"
309309 ),
@@ -320,7 +320,7 @@ def build(doc: DocumentModel, merkle_root: str | None = None) -> Spdx3JsonExport
320320 add_dependencies (
321321 dependencies = metadata .dependencies ,
322322 dep_provenance = metadata .provenance .get ("dependencies" , "Unknown source" ),
323- main_package_spdx_id = main_package . spdxId ,
323+ main_package_spdx_id = require_spdx_id ( main_package ) ,
324324 creation_info = spdx_ci ,
325325 doc_name = metadata .name ,
326326 doc_uuid = doc_uuid ,
@@ -345,7 +345,7 @@ def build(doc: DocumentModel, merkle_root: str | None = None) -> Spdx3JsonExport
345345 )
346346 add_ai_models (
347347 ai_models = doc .ai_models ,
348- main_package_spdx_id = main_package . spdxId ,
348+ main_package_spdx_id = require_spdx_id ( main_package ) ,
349349 file_spdx_ids = file_spdx_ids ,
350350 creation_info = spdx_ci ,
351351 doc_name = metadata .name ,
@@ -418,9 +418,9 @@ def build_model(
418418 creationInfo = spdx_ci ,
419419 )
420420
421- spdx_ci .createdBy = [creator . spdxId ]
421+ spdx_ci .createdBy = [require_spdx_id ( creator ) ]
422422 if tool is not None :
423- spdx_ci .createdUsing = [tool . spdxId ]
423+ spdx_ci .createdUsing = [require_spdx_id ( tool ) ]
424424
425425 exporter .add_creation_info (spdx_ci )
426426 exporter .add_person (creator )
@@ -433,7 +433,7 @@ def build_model(
433433 if model .license :
434434 rel_declared , rel_concluded = build_license_elements (
435435 license_id = model .license ,
436- package_spdx_id = ai_pkg . spdxId ,
436+ package_spdx_id = require_spdx_id ( ai_pkg ) ,
437437 license_provenance = model .provenance .get (
438438 "license" ,
439439 "Source: model file / Hugging Face Hub" ,
@@ -448,7 +448,7 @@ def build_model(
448448
449449 if model .datasets :
450450 add_datasets_for_model (
451- ai_package_spdx_id = ai_pkg . spdxId ,
451+ ai_package_spdx_id = require_spdx_id ( ai_pkg ) ,
452452 datasets = model .datasets ,
453453 creation_info = spdx_ci ,
454454 doc_name = doc_name ,
0 commit comments