aboutcode-org / aboutcode-org/scancode-toolkit

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

Offen
#3,884 2 Kommentare 0 Reaktionen 3 zugewiesene Personen Beansprucht von @AyanSinhaMahapatra Auf GitHub ansehen
new feature package scan
Vorherrschende Sprache
Python
Sterne
2.6k
Forks
791
Ø Merge
1 T. 12 Std.
Gemergte PRs (30 T.)
5

Beschreibung

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.

Beitragsleitfaden

Beitragsleitfaden öffnen

Bewertung

Dieses Issue wurde noch nicht bewertet.

Neue Issues direkt in Ihr Postfach

Eine kurze Übersicht über anfängerfreundliche GitHub-Issues.