aboutcode-org / aboutcode-org/scancode-toolkit

Add ability to create Package objects whose types are not supported by scancode-toolkit

Đang mở
#3,884 2 bình luận 0 reaction 3 người được giao Được @AyanSinhaMahapatra nhận Xem trên GitHub
new feature package scan
Ngôn ngữ chính
Python
Star
2.6k
Fork
791
Merge trung bình
1 ngày 12 giờ
Pull request đã merge (30 ngày)
5

Mô tả

I am updating purldb to use the latest version of scancode-toolkit. In purldb, we create package objects using the Package class from packagedcode (https://github.com/nexB/purldb/blob/7bed64d12fa124bfc33cfed1654d3b211e4ddabe/minecode/mappers/eclipse.py#L75). However, we are failing tests because we are using package types that are not covered by scancode-toolkit (https://github.com/nexB/purldb/blob/7bed64d12fa124bfc33cfed1654d3b211e4ddabe/minecode/mappers/eclipse.py#L102)

```
venv/lib/python3.12/site-packages/packagedcode/models.py:981: KeyError
____________________________________________________________________________ TestEclipseMap.test_build_eclipse_html_packages ____________________________________________________________________________

self =

def test_build_eclipse_html_packages(self):
with open(self.get_test_loc('eclipse/Acceleo_projects.eclipse.org.html')) as eclipse_metadata:
metadata = eclipse_metadata.read()
packages = mappers.eclipse.build_packages(metadata)
> packages = [p.to_dict() for p in packages]

minecode/tests/test_eclipse.py:117:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
minecode/mappers/eclipse.py:138: in build_packages
package = scan_models.Package.from_package_data(
venv/lib/python3.12/site-packages/packagedcode/models.py:1609: in from_package_data
package.populate_license_fields()
venv/lib/python3.12/site-packages/packagedcode/models.py:842: in populate_license_fields
self.get_license_detections_and_expression()
venv/lib/python3.12/site-packages/packagedcode/models.py:966: in get_license_detections_and_expression
default_relation_license=get_default_relation_license(
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _

datasource_id = 'eclipse_html'

def get_default_relation_license(datasource_id):
from packagedcode import HANDLER_BY_DATASOURCE_ID
> handler = HANDLER_BY_DATASOURCE_ID[datasource_id]
E KeyError: 'eclipse_html'
```

An idea would be to have a default handler if one cannot be found.

Hướng dẫn đóng góp

Mở hướng dẫn đóng góp

Đánh giá

Issue này chưa được đánh giá.

Nhận issue mới trong hộp thư của bạn

Bản tóm tắt ngắn những issue GitHub phù hợp với người mới.