Skip to content

Commit 78ca7d9

Browse files
committed
Revert "Create DiscoveredPackages before other models #447"
This reverts commit c9b8bed. Sorting Packages, Dependencies, and Resources from DatafileHandler.assemble() will never work. The code needs to be changed in scancode-toolkit. Signed-off-by: Jono Yang <[email protected]>
1 parent 45c81c9 commit 78ca7d9

File tree

1 file changed

+14
-34
lines changed

1 file changed

+14
-34
lines changed

scanpipe/pipes/scancode.py

Lines changed: 14 additions & 34 deletions
Original file line numberDiff line numberDiff line change
@@ -320,28 +320,27 @@ def scan_for_application_packages(project):
320320
resource_qs = project.codebaseresources.no_status()
321321

322322
# Collect detected Package data and save it to the CodebaseResource it was
323-
# detected from
323+
# detected from.
324324
_scan_and_save(
325325
resource_qs=resource_qs,
326326
scan_func=scan_for_package_data,
327327
save_func=save_scan_package_results,
328328
)
329329

330330
# Iterate through CodebaseResources with Package data and handle them using
331-
# the proper Package handler from packagedcode
331+
# the proper Package handler from packagedcode.
332332
assemble_packages(project=project)
333333

334334

335335
def add_to_package(package_uid, resource, project):
336336
"""
337-
Relate a DiscoveredPackage to `resource` from `project` using `package_uid`
337+
Relate a DiscoveredPackage to `resource` from `project` using `package_uid`.
338338
"""
339339
if not package_uid:
340340
return
341-
package_associated_with_resource = resource.discovered_packages.filter(
342-
package_uid=package_uid
343-
).exists()
344-
if not package_associated_with_resource:
341+
342+
resource_package = resource.discovered_packages.filter(package_uid=package_uid)
343+
if not resource_package.exists():
345344
package = project.discoveredpackages.get(package_uid=package_uid)
346345
resource.discovered_packages.add(package)
347346

@@ -351,22 +350,20 @@ def assemble_packages(project):
351350
Create instances of DiscoveredPackage and DiscoveredDependency for `project`
352351
from the parsed package data present in the CodebaseResources of `project`.
353352
"""
354-
logger.info(f"Project: {project}:\n" "Function: assemble_packages\n")
353+
logger.info(f"Project {project} assemble_packages:")
355354
seen_resource_paths = set()
355+
356356
for resource in project.codebaseresources.has_package_data():
357357
if resource.path in seen_resource_paths:
358358
continue
359359

360-
logger.info(f"Processing: CodebaseResource {resource.path}\n")
361-
360+
logger.info(f" Processing: {resource.path}")
362361
for package_mapping in resource.package_data:
363362
pd = packagedcode_models.PackageData.from_dict(mapping=package_mapping)
364-
365-
logger.info(f"Processing: PackageData {pd.purl}\n")
363+
logger.info(f" Package data: {pd.purl}")
366364

367365
handler = get_package_handler(pd)
368-
369-
logger.info(f"Selected: Package handler {handler}\n")
366+
logger.info(f" Selected package handler: {handler.__name__}")
370367

371368
items = handler.assemble(
372369
package_data=pd,
@@ -375,36 +372,19 @@ def assemble_packages(project):
375372
package_adder=add_to_package,
376373
)
377374

378-
dependencies = []
379-
resources = []
380375
for item in items:
381-
logger.info(f"Processing: item {item}\n")
376+
logger.info(f" Processing item: {item}")
382377
if isinstance(item, packagedcode_models.Package):
383-
# In order to relate CodebaseResources to
384-
# DiscoveredPackages, we create DiscoveredPackages from
385-
# yielded `Package`s first
386378
package_data = item.to_dict()
387379
pipes.update_or_create_package(project, package_data)
388380
elif isinstance(item, packagedcode_models.Dependency):
389381
# We will handle Dependencies when we properly implement the
390382
# DiscoveredDependency model
391383
pass
392-
elif isinstance(item, CodebaseResource):
393-
# We store CodebaseResources in `resources` so we can
394-
# process them after we create all Packages assembled from
395-
# `resource`
396-
resources.append(item)
397-
else:
398-
logger.info(f"Unknown Package assembly item type: {item!r}\n")
399-
400-
for item in resources + dependencies:
401-
logger.info(f"Processing: item {item}\n")
402-
if isinstance(item, packagedcode_models.Dependency):
403-
# We will handle Dependencies when we properly implement the
404-
# DiscoveredDependency model
405-
pass
406384
elif isinstance(item, CodebaseResource):
407385
seen_resource_paths.add(item.path)
386+
else:
387+
logger.info(f"Unknown Package assembly item type: {item!r}")
408388

409389

410390
def run_scancode(location, output_file, options, raise_on_error=False):

0 commit comments

Comments
 (0)