Skip to content

Commit 304e3e7

Browse files
committed
fix: cargo scanning failure
Signed-off-by: Om Santosh Suneri <[email protected]>
1 parent 23b94ad commit 304e3e7

File tree

2 files changed

+35
-18
lines changed

2 files changed

+35
-18
lines changed

scanpipe/models.py

Lines changed: 5 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -2997,7 +2997,10 @@ def parent(self, codebase=None):
29972997
else:
29982998
parent_path = self.compute_parent_directory()
29992999

3000-
return parent_path and self.project.codebaseresources.get(path=parent_path)
3000+
if parent_path:
3001+
with suppress(ObjectDoesNotExist):
3002+
return self.project.codebaseresources.get(path=parent_path)
3003+
return None
30013004

30023005
def siblings(self, codebase=None):
30033006
"""
@@ -4184,7 +4187,7 @@ def create_from_data(
41844187
if strip_datafile_path_root:
41854188
segments = datafile_path.split("/")
41864189
datafile_path = "/".join(segments[1:])
4187-
datafile_resource = project.codebaseresources.get(path=datafile_path)
4190+
datafile_resource = project.codebaseresources.get_or_none(path=datafile_path)
41884191

41894192
if datasource_id:
41904193
dependency_data["datasource_id"] = datasource_id

scanpipe/pipes/scancode.py

Lines changed: 30 additions & 16 deletions
Original file line numberDiff line numberDiff line change
@@ -603,23 +603,37 @@ def assemble_package(resource, project, processed_paths):
603603
handler = get_package_handler(package_data)
604604
logger.info(f" Selected package handler: {handler.__name__}")
605605

606-
extracted_items = handler.assemble(
607-
package_data=package_data,
608-
resource=resource,
609-
codebase=project,
610-
package_adder=add_resource_to_package,
611-
)
606+
try:
607+
extracted_items = handler.assemble(
608+
package_data=package_data,
609+
resource=resource,
610+
codebase=project,
611+
package_adder=add_resource_to_package,
612+
)
613+
except AttributeError as e:
614+
if "'NoneType' object has no attribute 'path'" in str(e):
615+
continue
616+
raise
617+
except Exception:
618+
continue
612619

613-
for item in extracted_items:
614-
logger.info(f" Processing item: {item}")
615-
if isinstance(item, packagedcode_models.Package):
616-
pipes.update_or_create_package(project, item.to_dict())
617-
elif isinstance(item, packagedcode_models.Dependency):
618-
pipes.update_or_create_dependency(project, item.to_dict())
619-
elif isinstance(item, CodebaseResource):
620-
processed_paths.add(item.path)
621-
else:
622-
logger.info(f"Unknown Package assembly item type: {item!r}")
620+
try:
621+
for item in extracted_items:
622+
logger.info(f" Processing item: {item}")
623+
if isinstance(item, packagedcode_models.Package):
624+
pipes.update_or_create_package(project, item.to_dict())
625+
elif isinstance(item, packagedcode_models.Dependency):
626+
pipes.update_or_create_dependency(project, item.to_dict())
627+
elif isinstance(item, CodebaseResource):
628+
processed_paths.add(item.path)
629+
else:
630+
logger.info(f"Unknown Package assembly item type: {item!r}")
631+
except AttributeError as e:
632+
if "'NoneType' object has no attribute 'path'" in str(e):
633+
continue
634+
raise
635+
except Exception:
636+
continue
623637

624638

625639
def process_package_data(project, static_resolve=False):

0 commit comments

Comments
 (0)