Skip to content

Commit 4489784

Browse files
Add basic pyproject.toml parsers #3753
Reference: #3753 Signed-off-by: Ayan Sinha Mahapatra <[email protected]>
1 parent 04e24e0 commit 4489784

29 files changed

+1811
-380
lines changed

src/packagedcode/__init__.py

+1
Original file line numberDiff line numberDiff line change
@@ -168,6 +168,7 @@
168168
# pypi.PypiSdistArchiveHandler,
169169
pypi.PypiWheelHandler,
170170
pypi.PyprojectTomlHandler,
171+
pypi.PoetryPyprojectTomlHandler,
171172
pypi.PythonEditableInstallationPkgInfoFile,
172173
pypi.PythonEggPkgInfoFile,
173174
pypi.PythonInstalledWheelMetadataFile,

src/packagedcode/debian.py

+4-23
Original file line numberDiff line numberDiff line change
@@ -21,6 +21,7 @@
2121

2222
from packagedcode import models
2323
from packagedcode.utils import get_ancestor
24+
from packagedcode.utils import parse_maintainer_name_email
2425

2526
"""
2627
Handle Debian package archives, control files and installed databases.
@@ -653,20 +654,20 @@ def build_package_data(debian_data, datasource_id, package_type='deb', distro=No
653654

654655
maintainer = debian_data.get('maintainer')
655656
if maintainer:
656-
maintainer_name, maintainer_email = parse_debian_maintainers(maintainer)
657+
maintainer_name, maintainer_email = parse_maintainer_name_email(maintainer)
657658
party = models.Party(role='maintainer', name=maintainer_name, email=maintainer_email)
658659
parties.append(party)
659660

660661
orig_maintainer = debian_data.get('original_maintainer')
661662
if orig_maintainer:
662-
maintainer_name, maintainer_email = parse_debian_maintainers(orig_maintainer)
663+
maintainer_name, maintainer_email = parse_maintainer_name_email(orig_maintainer)
663664
party = models.Party(role='maintainer', name=maintainer_name, email=maintainer_email)
664665
parties.append(party)
665666

666667
uploaders = debian_data.get('uploaders')
667668
if uploaders:
668669
for uploader in uploaders.split(", "):
669-
uploader_name, uploader_email = parse_debian_maintainers(uploader)
670+
uploader_name, uploader_email = parse_maintainer_name_email(uploader)
670671
party = models.Party(role='uploader', name=uploader_name, email=uploader_email)
671672
parties.append(party)
672673

@@ -736,26 +737,6 @@ def build_package_data(debian_data, datasource_id, package_type='deb', distro=No
736737
return models.PackageData.from_data(package_data, package_only)
737738

738739

739-
def parse_debian_maintainers(maintainer):
740-
"""
741-
Get name and email values from a debian maintainer string.
742-
743-
Example string:
744-
Debian systemd Maintainers <[email protected]>
745-
"""
746-
email_wrappers = ["<", ">"]
747-
has_email = "@" in maintainer and all([
748-
True
749-
for char in email_wrappers
750-
if char in maintainer
751-
])
752-
if not has_email:
753-
return maintainer, None
754-
755-
name, _, email = maintainer.rpartition("<")
756-
return name.rstrip(" "), email.rstrip(">")
757-
758-
759740
def populate_debian_namespace(packages):
760741
"""
761742
For an iterable of debian `packages`, populate the

0 commit comments

Comments
 (0)