Skip to content

Commit 0d4a091

Browse files
committed
1 parent 1f4cab9 commit 0d4a091

5 files changed

Lines changed: 26 additions & 9 deletions

File tree

licensecheck/io/cli.py

Lines changed: 5 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -121,7 +121,11 @@ def cli() -> None: # pragma: no cover
121121
if stdin.isatty():
122122
args["requirements_paths"] = ["pyproject.toml"]
123123
else:
124-
stdin_path.write_text("\n".join(stdin.readlines()), encoding="utf-8")
124+
lines = stdin.readlines()
125+
if lines:
126+
stdin_path.write_text("\n".join(lines), encoding="utf-8")
127+
else:
128+
args["requirements_paths"] = ["pyproject.toml"]
125129

126130
config: ConfigNode = Config()
127131

licensecheck/io/fmt.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -302,7 +302,7 @@ def rawCsv(
302302

303303

304304
def fmt(
305-
format_: str,
305+
format_: FMT,
306306
myLice: License,
307307
packages: list[PackageInfo],
308308
hide_parameters: set[str] | None = None,

licensecheck/packageinforesolver.py

Lines changed: 8 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -78,12 +78,14 @@ def _get_package_info(self, package: Requirement) -> PackageInfo:
7878
:param Requirement package: package info to unpack
7979
:return PackageInfo: Information about the package.
8080
"""
81-
versions = {None}
82-
try:
83-
requirement_specs = package.specifier._specs
84-
versions = {x._spec[1] for x in requirement_specs}
85-
except AttributeError:
86-
pass
81+
versions: set[str | None] = {None}
82+
package.name = canonicalize_name(package.name)
83+
84+
specifier = getattr(package, "specifier", None)
85+
if specifier is not None:
86+
parsed_versions = {item.version for item in specifier}
87+
if parsed_versions:
88+
versions = parsed_versions
8789

8890
package.name = canonicalize_name(package.name)
8991

pyproject.toml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
[project]
22
name = "licensecheck"
3-
version = "2026.0.6"
3+
version = "2026.0.7"
44
description = "Output the licenses used by dependencies and check if these are compatible with the project license"
55
authors = [{ name = "FredHappyface" }]
66
requires-python = ">=3.12"

tests/test_packageinfo.py

Lines changed: 11 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -3,6 +3,7 @@
33
from pathlib import Path
44

55
import pytest
6+
from packaging.requirements import Requirement
67

78
from licensecheck.models.constants import UNKNOWN
89
from licensecheck.models.packageinfo import PackageInfo
@@ -117,3 +118,13 @@ def test_getModuleSize() -> None:
117118
)
118119
def test_normalize_license(lice: str, normalized: str) -> None:
119120
assert normalize_license(lice) == normalized
121+
122+
123+
def test_unpinned_requirement_does_not_crash(package_info_manager: PackageInfoManager) -> None:
124+
package_info_manager.reqs = {Requirement("sample")}
125+
126+
packages = package_info_manager.getPackages()
127+
package: PackageInfo = packages.pop()
128+
129+
assert package.name == "sample"
130+
assert package.errorCode == 0

0 commit comments

Comments
 (0)