Skip to content

Commit 2080bc9

Browse files
authored
Merge pull request #76 from amyreese/pep639
Support PEP 639 style license metadata
2 parents 2b08a16 + 77a4214 commit 2080bc9

File tree

2 files changed

+19
-1
lines changed

2 files changed

+19
-1
lines changed

dowsing/pep621.py

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -31,7 +31,9 @@ def get_pep621_metadata(self) -> Distribution:
3131
)
3232
d.packages_dict = {i: i.replace(".", "/") for i in d.packages}
3333
elif k == "license":
34-
if "text" in v:
34+
if isinstance(v, str):
35+
pass # PEP 639 proposes `license = "MIT"` style metadata
36+
elif "text" in v:
3537
v = v["text"]
3638
elif "file" in v:
3739
v = f"file: {v['file']}"

dowsing/tests/pep621.py

Lines changed: 16 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -55,3 +55,19 @@ def test_normal(self) -> None:
5555
},
5656
md.asdict(),
5757
)
58+
59+
def test_pep639(self) -> None:
60+
with volatile.dir() as d:
61+
dp = Path(d)
62+
(dp / "pyproject.toml").write_text(
63+
"""\
64+
[project]
65+
name = "Name"
66+
license = "MIT"
67+
"""
68+
)
69+
70+
r = Pep621Reader(dp)
71+
md = r.get_pep621_metadata()
72+
self.assertEqual("Name", md.name)
73+
self.assertEqual("MIT", md.license)

0 commit comments

Comments
 (0)