Skip to content

Commit 1ec5fa7

Browse files
committed
fix: prevent 'NoneType' error when scanning single Cargo.toml files
Signed-off-by: Om Santosh Suneri <[email protected]>
1 parent 93a2d69 commit 1ec5fa7

File tree

1 file changed

+15
-7
lines changed

1 file changed

+15
-7
lines changed

src/packagedcode/cargo.py

Lines changed: 15 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -59,7 +59,13 @@ def assemble(cls, package_data, resource, codebase, package_adder):
5959
package_data.extra_data[attribute] = 'workspace'
6060
workspace_package_data[attribute] = getattr(package_data, attribute)
6161

62-
workspace_root_path = resource.parent(codebase).path
62+
workspace_root = resource.parent(codebase)
63+
if not workspace_root:
64+
# If there's no parent (e.g., scanning a single file), use the directory part of the resource path
65+
workspace_root_path = os.path.dirname(resource.path)
66+
else:
67+
workspace_root_path = workspace_root.path
68+
6369
if workspace_package_data and workspace_members:
6470

6571
# TODO: support glob patterns found in cargo workspaces
@@ -95,12 +101,14 @@ def assemble(cls, package_data, resource, codebase, package_adder):
95101
package_adder=package_adder,
96102
)
97103
else:
98-
yield from cls.assemble_from_many_datafiles(
99-
datafile_name_patterns=('Cargo.toml', 'cargo.toml', 'Cargo.lock', 'cargo.lock'),
100-
directory=resource.parent(codebase),
101-
codebase=codebase,
102-
package_adder=package_adder,
103-
)
104+
parent_resource = resource.parent(codebase)
105+
if parent_resource:
106+
yield from cls.assemble_from_many_datafiles(
107+
datafile_name_patterns=('Cargo.toml', 'cargo.toml', 'Cargo.lock', 'cargo.lock'),
108+
directory=parent_resource,
109+
codebase=codebase,
110+
package_adder=package_adder,
111+
)
104112

105113
@classmethod
106114
def update_resource_package_data(cls, workspace, workspace_package_data, resource_package_data, mapping=None):

0 commit comments

Comments
 (0)