Skip to content

Commit 86e4e90

Browse files
Add can_assemble property to PackageData
Signed-off-by: Ayan Sinha Mahapatra <ayansmahapatra@gmail.com>
1 parent 754966a commit 86e4e90

File tree

2 files changed

+20
-0
lines changed

2 files changed

+20
-0
lines changed

src/packagedcode/models.py

Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -741,6 +741,15 @@ def from_data(cls, package_data, package_only=False):
741741

742742
return package_data
743743

744+
@property
745+
def can_assemble(self):
746+
from packagedcode import HANDLER_BY_DATASOURCE_ID
747+
handler = HANDLER_BY_DATASOURCE_ID.get(self.datasource_id)
748+
if issubclass(handler, NonAssemblableDatafileHandler):
749+
return False
750+
751+
return True
752+
744753
def normalize_extracted_license_statement(self):
745754
"""
746755
Normalizes the extracted license statement to a readable

tests/packagedcode/test_package_models.py

Lines changed: 11 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -90,6 +90,17 @@ def test_Package_simple(self):
9090
expected_loc = 'models/simple-expected.json'
9191
self.check_package_data(package_data, expected_loc, regen=REGEN_TEST_FIXTURES)
9292

93+
def test_PackageData_model_can_assemble(self):
94+
package_jar = models.PackageData(
95+
type='maven', name='this', version='23', datasource_id="java_jar",
96+
)
97+
package_pom = models.PackageData(
98+
type='maven', name='this', version='23', datasource_id="maven_pom",
99+
)
100+
101+
assert not package_jar.can_assemble
102+
assert package_pom.can_assemble
103+
93104
def test_Package_model_qualifiers_are_serialized_as_mappings(self):
94105
package = models.PackageData(
95106
type='maven', name='this', version='23', qualifiers=dict(this='that')

0 commit comments

Comments
 (0)