Skip to content

Commit 0892a6a

Browse files
committed
Reuse pypi code to extract metadata
Signed-off-by: Tushar Goel <tushar.goel.dav@gmail.com>
1 parent c77d8b6 commit 0892a6a

16 files changed

+1720
-4188
lines changed

src/python_inspector/package_data.py

Lines changed: 12 additions & 29 deletions
Original file line numberDiff line numberDiff line change
@@ -13,8 +13,10 @@
1313

1414
from packageurl import PackageURL
1515

16-
from _packagedcode import models
1716
from _packagedcode.models import PackageData
17+
from _packagedcode.pypi import get_declared_license
18+
from _packagedcode.pypi import get_keywords
19+
from _packagedcode.pypi import get_parties
1820
from python_inspector import utils_pypi
1921
from python_inspector.resolution import get_python_version_from_env_tag
2022
from python_inspector.utils_pypi import Environment
@@ -96,7 +98,6 @@ def get_pypi_data_from_purl(
9698
return []
9799
info = response.get("info") or {}
98100
homepage_url = info.get("home_page")
99-
license = info.get("license")
100101
project_urls = info.get("project_urls") or {}
101102
code_view_url = get_pypi_codeview_url(project_urls)
102103
bug_tracking_url = get_pypi_bugtracker_url(project_urls)
@@ -125,14 +126,6 @@ def get_pypi_data_from_purl(
125126
if dist_url not in valid_distribution_urls:
126127
continue
127128
digests = url.get("digests") or {}
128-
license_classifiers = []
129-
keyword_classifiers = []
130-
classifiers = info.get("classifiers") or []
131-
for clsfr in classifiers:
132-
if "License" in clsfr:
133-
license_classifiers.append(clsfr)
134-
else:
135-
keyword_classifiers.append(clsfr)
136129

137130
yield PackageData(
138131
primary_language="Python",
@@ -141,29 +134,19 @@ def get_pypi_data_from_purl(
141134
api_data_url=api_url,
142135
bug_tracking_url=bug_tracking_url,
143136
code_view_url=code_view_url,
144-
declared_license={
145-
"classifiers": license_classifiers,
146-
"license": license,
147-
},
137+
declared_license=get_declared_license(info),
148138
download_url=dist_url,
149139
size=url.get("size"),
150140
md5=digests.get("md5") or url.get("md5_digest"),
151141
sha256=digests.get("sha256"),
152142
release_date=url.get("upload_time"),
153-
keywords=keyword_classifiers,
154-
parties=[
155-
models.Party(
156-
type=models.party_person,
157-
name=info.get("author"),
158-
role="author",
159-
email=info.get("author_email"),
160-
),
161-
models.Party(
162-
type=models.party_person,
163-
name=info.get("maintainer"),
164-
role="maintainer",
165-
email=info.get("maintainer_email"),
166-
),
167-
],
143+
keywords=get_keywords(info),
144+
parties=get_parties(
145+
info,
146+
author_key="author",
147+
author_email_key="author_email",
148+
maintainer_key="maintainer",
149+
maintainer_email_key="maintainer_email",
150+
),
168151
**purl.to_dict(),
169152
).to_dict()

0 commit comments

Comments
 (0)