Skip to content

Commit 3f4a323

Browse files
committed
rel 2024.1.4
1 parent 288ace8 commit 3f4a323

File tree

11 files changed

+40
-537
lines changed

11 files changed

+40
-537
lines changed

.gitignore

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -2,6 +2,8 @@ requirements_optional.txt
22
poetry.lock
33
*.~lock*
44
*.sqlite
5+
tests/data/test_main_tc*.*
6+
!tests/data/test_main_tc*_expected.*
57

68
# Byte-compiled / optimized / DLL files
79
__pycache__/

CHANGELOG.md

Lines changed: 12 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -3,6 +3,18 @@
33
All major and minor version changes will be documented in this file. Details of
44
patch-level version changes can be found in [commit messages](../../commits/master).
55

6+
## 2024.1.4 - 2024/03/30
7+
8+
- fix critical https://github.com/FHPythonUtils/LicenseCheck/issues/75 where importlib.metadata.PackageMetadata.json does not exist in Python < 3.10
9+
10+
```txt
11+
py311: OK (7.55=setup[5.89]+cmd[1.66] seconds)
12+
py310: SKIP (0.02 seconds)
13+
py39: SKIP (0.02 seconds)
14+
py38: OK (6.23=setup[4.30]+cmd[1.94] seconds)
15+
congratulations :) (13.95 seconds)
16+
```
17+
618
## 2024.1.3 - 2024/03/20
719

820
- fix https://github.com/FHPythonUtils/LicenseCheck/issues/74

documentation/reference/licensecheck/packageinfo.md

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -23,7 +23,9 @@ Get a string from a key from pkgMetadata.
2323
#### Signature
2424

2525
```python
26-
def _pkgMetadataGet(pkgMetadata: metadata.PackageMetadata, key: str) -> str: ...
26+
def _pkgMetadataGet(
27+
pkgMetadata: metadata.PackageMetadata | dict[str, Any], key: str
28+
) -> str: ...
2729
```
2830

2931

licensecheck/packageinfo.py

Lines changed: 15 additions & 15 deletions
Original file line numberDiff line numberDiff line change
@@ -14,12 +14,12 @@
1414
from licensecheck.types import JOINS, UNKNOWN, PackageInfo, ucstr
1515

1616

17-
def _pkgMetadataGet(pkgMetadata: metadata.PackageMetadata, key: str) -> str:
17+
def _pkgMetadataGet(pkgMetadata: metadata.PackageMetadata | dict[str, Any], key: str) -> str:
1818
"""Get a string from a key from pkgMetadata."""
19-
value = pkgMetadata.json.get(key, UNKNOWN)
20-
if isinstance(value, str):
21-
return value
22-
return JOINS.join(value)
19+
value = pkgMetadata.get(key, UNKNOWN)
20+
if not isinstance(value, str):
21+
value = JOINS.join(value)
22+
return value or UNKNOWN
2323

2424

2525
def getPackageInfoLocal(requirement: ucstr) -> PackageInfo:
@@ -35,11 +35,11 @@ def getPackageInfoLocal(requirement: ucstr) -> PackageInfo:
3535
pkgMetadata = metadata.metadata(requirement)
3636
lice = licenseFromClassifierlist(pkgMetadata.get_all("Classifier"))
3737
if lice == UNKNOWN:
38-
lice = _pkgMetadataGet(pkgMetadata, "license")
39-
homePage = pkgMetadata.get("Home-page", UNKNOWN)
40-
author = _pkgMetadataGet(pkgMetadata, "author")
41-
name = _pkgMetadataGet(pkgMetadata, "name")
42-
version = _pkgMetadataGet(pkgMetadata, "version")
38+
lice = _pkgMetadataGet(pkgMetadata, "License")
39+
homePage = _pkgMetadataGet(pkgMetadata, "Home-page")
40+
author = _pkgMetadataGet(pkgMetadata, "Author")
41+
name = _pkgMetadataGet(pkgMetadata, "Name")
42+
version = _pkgMetadataGet(pkgMetadata, "Version")
4343
size = 0
4444
packagePaths = metadata.Distribution.from_name(requirement).files
4545
if packagePaths is not None:
@@ -70,7 +70,7 @@ def getPackageInfoPypi(requirement: ucstr) -> PackageInfo:
7070
request = session.get(f"https://pypi.org/pypi/{requirement}/json", timeout=60)
7171
response = request.json()
7272
try:
73-
info = response["info"]
73+
info = response.get("info", {})
7474
licenseClassifier = licenseFromClassifierlist(info["classifiers"])
7575

7676
size = -1
@@ -79,10 +79,10 @@ def getPackageInfoPypi(requirement: ucstr) -> PackageInfo:
7979
size = int(urls[-1]["size"])
8080

8181
return PackageInfo(
82-
name=info["name"],
83-
version=info["version"],
84-
homePage=info["home_page"],
85-
author=info["author"],
82+
name=_pkgMetadataGet(info, "name"),
83+
version=_pkgMetadataGet(info, "version"),
84+
homePage=_pkgMetadataGet(info, "home_page"),
85+
author=_pkgMetadataGet(info, "author"),
8686
size=size,
8787
license=ucstr(
8888
licenseClassifier if licenseClassifier != UNKNOWN else info.get("license", UNKNOWN)

pyproject.toml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
[tool.poetry]
22
name = "licensecheck"
3-
version = "2024.1.3"
3+
version = "2024.1.4"
44
license = "mit"
55
description = "Output the licenses used by dependencies and check if these are compatible with the project license"
66
authors = ["FredHappyface"]

tests/data/test_main_tc1.txt

Lines changed: 0 additions & 39 deletions
This file was deleted.

tests/data/test_main_tc2.json

Lines changed: 0 additions & 252 deletions
This file was deleted.

0 commit comments

Comments
 (0)