Skip to content

Commit 1af074f

Browse files
Refactor and address feedback
Signed-off-by: Ayan Sinha Mahapatra <[email protected]>
1 parent f117a76 commit 1af074f

11 files changed

+53
-23
lines changed

src/packagedcode/__init__.py

Lines changed: 1 addition & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -254,11 +254,6 @@ def get_package_handler(package_data):
254254
return ppc
255255

256256

257-
PACKAGE_DATA_CLASS_WITH_CUSTOM_LICENSE_DETECTION = [
258-
maven.MavenPackageData
259-
]
260-
261257
PACKAGE_DATA_CLASS_BY_DATASOURCE_ID = {
262-
package_data_class.datasource_id: package_data_class
263-
for package_data_class in PACKAGE_DATA_CLASS_WITH_CUSTOM_LICENSE_DETECTION
258+
maven.MavenPackageData.datasource_id: maven.MavenPackageData
264259
}

src/packagedcode/jar_manifest.py

Lines changed: 17 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -248,7 +248,7 @@ def dget(s):
248248
package['homepage_url'] = dget('Implementation-URL') or dget('Implementation-Url')
249249

250250
# Bundle-DocURL: http://logging.apache.org/log4j/1.2
251-
#package['documentation_url'] = dget('Bundle-DocURL')
251+
doc_url = dget('Bundle-DocURL')
252252

253253
# vendor/owner/contact
254254
#########################
@@ -339,7 +339,15 @@ def dget(s):
339339
# Deps:
340340
# Require-Bundle
341341

342-
#package['notes'] = dget('Comment')
342+
comment = dget('Comment')
343+
344+
if comment or doc_url:
345+
package["extra_data"] = {}
346+
if comment:
347+
package["extra_data"]['notes'] = comment
348+
if doc_url:
349+
package["extra_data"]['documentation_url'] = doc_url
350+
343351
return package
344352

345353

@@ -378,16 +386,20 @@ def parse_scm_connection(scm_connection):
378386

379387

380388
def get_datasource_id(package_type):
389+
"""
390+
Get the corresponding `datasource_id` for the given
391+
`package_type`. This is a seperate function to avoid
392+
cyclic imports.
393+
"""
381394
from packagedcode.maven import JavaJarManifestHandler
382395
from packagedcode.maven import JavaOSGiManifestHandler
383396

384-
if package_type == 'maven':
385-
return JavaJarManifestHandler.datasource_id
386-
elif package_type == 'jar':
397+
if package_type in ['maven', 'jar']:
387398
return JavaJarManifestHandler.datasource_id
388399
elif package_type == 'osgi':
389400
return JavaOSGiManifestHandler.datasource_id
390401

402+
391403
def is_id(s):
392404
"""
393405
Return True if `s` is some kind of id.

src/packagedcode/licensing.py

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -775,8 +775,8 @@ def get_license_detections_and_expression(
775775
if not extracted_license_statement:
776776
return detection_data, license_expression
777777

778-
if datasource_id in PACKAGE_DATA_CLASS_BY_DATASOURCE_ID:
779-
package_data_class = PACKAGE_DATA_CLASS_BY_DATASOURCE_ID.get(datasource_id, None)
778+
package_data_class = PACKAGE_DATA_CLASS_BY_DATASOURCE_ID.get(datasource_id)
779+
if package_data_class:
780780
license_detections = package_data_class.get_license_detections_for_extracted_license_statement(
781781
extracted_license=extracted_license_statement,
782782
try_as_expression=try_as_expression,

src/packagedcode/maven.py

Lines changed: 6 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -60,6 +60,9 @@ class MavenBasePackageHandler(models.DatafileHandler):
6060
@classmethod
6161
def assemble(cls, package_data, resource, codebase, package_adder=models.add_to_package):
6262
"""
63+
Assembles from codebases where both a pom.xml and a MANIFEST.MF is present,
64+
otherwise uses the default assemble function and `assign_package_to_resources`
65+
function from respective DatafileHandlers.
6366
"""
6467
if codebase.has_single_resource:
6568
yield from models.DatafileHandler.assemble(package_data, resource, codebase)
@@ -1308,11 +1311,11 @@ def get_license_detections_for_extracted_license_statement(
13081311

13091312
for license_entry in new_extracted_license:
13101313
license_entry.pop("distribution")
1311-
if not license_entry.get("name", None):
1314+
if not license_entry.get("name"):
13121315
license_entry.pop("name")
1313-
if not license_entry.get("url", None):
1316+
if not license_entry.get("url"):
13141317
license_entry.pop("url")
1315-
if not license_entry.get("comments", None):
1318+
if not license_entry.get("comments"):
13161319
license_entry.pop("comments")
13171320

13181321
extracted_license_statement = saneyaml.dump(new_extracted_license)

tests/packagedcode/data/maven_misc/assemble/johnzon-jsonb-1.2.11-expected.json

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -427,7 +427,9 @@
427427
"notice_text": null,
428428
"source_packages": [],
429429
"file_references": [],
430-
"extra_data": {},
430+
"extra_data": {
431+
"documentation_url": "http://johnzon.apache.org/"
432+
},
431433
"dependencies": [],
432434
"repository_homepage_url": null,
433435
"repository_download_url": null,

tests/packagedcode/data/maven_misc/manifest/10/MANIFEST.MF.package-data.json

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -15,5 +15,8 @@
1515
}
1616
],
1717
"vcs_url": null,
18-
"code_view_url": null
18+
"code_view_url": null,
19+
"extra_data": {
20+
"documentation_url": "http://www.hibernate.org/orm/5.3"
21+
}
1922
}

tests/packagedcode/data/maven_misc/manifest/24/MANIFEST.MF.package-data.json

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -15,5 +15,8 @@
1515
}
1616
],
1717
"vcs_url": null,
18-
"code_view_url": null
18+
"code_view_url": null,
19+
"extra_data": {
20+
"documentation_url": "http://www.oracle.com"
21+
}
1922
}

tests/packagedcode/data/maven_misc/manifest/4/MANIFEST.MF.package-data.json

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -15,5 +15,8 @@
1515
}
1616
],
1717
"vcs_url": null,
18-
"code_view_url": null
18+
"code_view_url": null,
19+
"extra_data": {
20+
"documentation_url": "http://logging.apache.org/log4j/1.2"
21+
}
1922
}

tests/packagedcode/data/maven_misc/manifest/5/MANIFEST.MF.package-data.json

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -15,5 +15,8 @@
1515
}
1616
],
1717
"vcs_url": null,
18-
"code_view_url": null
18+
"code_view_url": null,
19+
"extra_data": {
20+
"documentation_url": "http://www.oracle.com"
21+
}
1922
}

tests/packagedcode/data/maven_misc/manifest/7/MANIFEST.MF.package-data.json

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -15,5 +15,8 @@
1515
}
1616
],
1717
"vcs_url": null,
18-
"code_view_url": null
18+
"code_view_url": null,
19+
"extra_data": {
20+
"documentation_url": "http://fusesource.com/"
21+
}
1922
}

0 commit comments

Comments
 (0)