diff --git a/.gitignore b/.gitignore index 770d014..7ac4476 100644 --- a/.gitignore +++ b/.gitignore @@ -5,4 +5,6 @@ examples .vscode **/node_modules/** **/target/** -**/dist/** \ No newline at end of file +**/dist/** +**/build/** +**/license_sh.egg-info/** \ No newline at end of file diff --git a/license_sh/helpers.py b/license_sh/helpers.py index 56b2849..7358ff7 100644 --- a/license_sh/helpers.py +++ b/license_sh/helpers.py @@ -43,7 +43,11 @@ def get_npm_license_from_licenses_array(licenses_array): license_name = UNKNOWN for license_item in licenses_array: - license_item_type = license_item.get("type", UNKNOWN) + license_item_type = ( + license_item.get("type", UNKNOWN) + if type(license_item) is dict + else f"{license_item}" + ) if license_name != UNKNOWN: license_name = f"{license_name} AND {license_item_type}" else: diff --git a/license_sh/runners/runners_shared.py b/license_sh/runners/runners_shared.py index 8f013df..bcea6e3 100644 --- a/license_sh/runners/runners_shared.py +++ b/license_sh/runners/runners_shared.py @@ -30,9 +30,10 @@ async def fetch_concurrent(urls): try: output, version = await result page = json.loads(output) - license_map[f"{page['name']}@{version}"] = extract_npm_license( - page, version - ) + if ("name") in page: + license_map[f"{page['name']}@{version}"] = extract_npm_license( + page, version + ) except json.JSONDecodeError: pass diff --git a/license_sh/version.py b/license_sh/version.py index f871089..13361d1 100644 --- a/license_sh/version.py +++ b/license_sh/version.py @@ -1 +1 @@ -__version__ = "1.0.15" +__version__ = "1.0.16" diff --git a/tests/runners/test_helpers.py b/tests/runners/test_helpers.py index 1a0f966..9026a98 100644 --- a/tests/runners/test_helpers.py +++ b/tests/runners/test_helpers.py @@ -272,6 +272,16 @@ def test_extract_npm_license_simple(self): name = extract_npm_license(data, "Unknown") self.assertEqual(name, "MIT") + def test_extract_npm_licenses_global_single_string(self): + data = json.loads( + """{ + "name": "name", + "licenses": ["MIT"] + }""" + ) + name = extract_npm_license(data, "Unknown") + self.assertEqual(name, "MIT") + def test_extract_npm_licenses_global_single(self): data = json.loads( """{