From 774117302bd1a25bf0b1b1d6ad651392ebafde8a Mon Sep 17 00:00:00 2001 From: 35C4n0r Date: Wed, 11 Jan 2023 11:59:11 +0530 Subject: [PATCH 1/5] Small fixes. Signed-off-by: Jay --- minecode/debutils.py | 2 +- minecode/mappers/debian.py | 32 +++++++++++++++++++++++--------- 2 files changed, 24 insertions(+), 10 deletions(-) diff --git a/minecode/debutils.py b/minecode/debutils.py index 64c50ab5..4549caad 100644 --- a/minecode/debutils.py +++ b/minecode/debutils.py @@ -21,7 +21,7 @@ def parse_email(text): email = email.strip() if not email: return name, email - email.strip('>') + email = email.strip('>') return name, email diff --git a/minecode/mappers/debian.py b/minecode/mappers/debian.py index 10bcfa88..28a4aa49 100644 --- a/minecode/mappers/debian.py +++ b/minecode/mappers/debian.py @@ -21,8 +21,8 @@ from minecode import map_router from minecode.mappers import Mapper from minecode.utils import form_vcs_url -# from minecode import debutils - +from minecode import debutils +from packagedb.models import DependentPackage logger = logging.getLogger(__name__) handler = logging.StreamHandler() @@ -50,17 +50,31 @@ def get_dependencies(data): if not depends: continue - dependencies = None # debutils.comma_separated(depends) - if not dependencies: - continue + dependencies = debutils.comma_separated(depends) + name_version = [] + for dependency in dependencies: + version_constraint = None + if "(" in dependency and ")" in dependency: + start = dependency.index("(") + end = dependency.index(")") + version_constraint = dependency[start + 1:end] + name = dependency.split(" ")[0] + name_version.append([name, version_constraint]) + # break each dep in package names and version constraints # FIXME:!!! - for name in dependencies: - purl = PackageURL(type='deb', namespace='debian', name=name) - dep = scan_models.DependentPackage(purl=purl.to_string(), score=scope, **flags) + # FIXED !!! + for name, version_constraint in name_version: + purl = PackageURL(type="deb", namespace="debian", name=name) + dep = DependentPackage( + purl=purl.to_string(), + scope=scope, + requirement=version_constraint, + **flags, + ) dep_pkgs.append(dep) - return dep_pkgs + return dep_pkgs def get_vcs_repo(description): From 0d0fe19d83504eebb635c5bb59126f2975aaad04 Mon Sep 17 00:00:00 2001 From: 35C4n0r Date: Wed, 11 Jan 2023 11:59:11 +0530 Subject: [PATCH 2/5] Small fixes. Added New tests for Parse Email, Rollbacked changes for get_dependancies() for now. Signed-off-by: Jay --- minecode/debutils.py | 7 ++----- minecode/tests/test_debian.py | 15 +++++++++++---- 2 files changed, 13 insertions(+), 9 deletions(-) diff --git a/minecode/debutils.py b/minecode/debutils.py index 4549caad..8493f2d4 100644 --- a/minecode/debutils.py +++ b/minecode/debutils.py @@ -8,7 +8,6 @@ # - def parse_email(text): """ Return a tuple of (name, email) extracted from a `text` string. @@ -17,12 +16,10 @@ def parse_email(text): if not text: return None, None name, _, email = text.partition('<') + email = email.strip('>') name = name.strip() email = email.strip() - if not email: - return name, email - email = email.strip('>') - return name, email + return name or None, email or None def comma_separated(text): diff --git a/minecode/tests/test_debian.py b/minecode/tests/test_debian.py index 54c3a117..50b61455 100644 --- a/minecode/tests/test_debian.py +++ b/minecode/tests/test_debian.py @@ -102,22 +102,29 @@ def test_parse_deb822_dsc(self): result = debcon.get_paragraph_data_from_file(dsc_file) expected_loc = self.get_test_loc('debian/debutils/3dldf_2.0.3+dfsg-2.dsc-expected') self.check_expected_deb822(result, expected_loc, regen=False) + ################################################################# - @expectedFailure def test_parse_email(self): content = 'Debian TeX Maintainers ' name, email = debutils.parse_email(content) self.assertEquals('Debian TeX Maintainers', name) - self.assertEquals('debian-tex-maint@lists.debian.org', email) + self.assertEquals('debian-tex-main.debian.org', email) - @expectedFailure def test_parse_email_2(self): - content = 'Debian TeX Maintainers ' + # Space left Purposefully + content = ' Debian TeX Maintainers ' name, email = debutils.parse_email(content) self.assertEquals('Debian TeX Maintainers', name) self.assertEquals(None, email) + def test_parse_email_3(self): + # Space left Purposefully + content = '< debian-tex-maint@lists.debian.org >' + name, email = debutils.parse_email(content) + self.assertEquals(None, name) + self.assertEquals("debian-tex-maint@lists.debian.org", email) + def test_comma_separated(self): tags = 'implemented-in::perl, role::program, use::converting, works-with::pim' result = list(debutils.comma_separated(tags)) From f5e1701efa4dd9ffa9ec464d7f08d9baef8589a8 Mon Sep 17 00:00:00 2001 From: 35C4n0r Date: Sat, 11 Feb 2023 10:59:28 +0530 Subject: [PATCH 3/5] Small fixes. Added New tests for Parse Email, Rollbacked changes for get_dependancies() for now. Signed-off-by: Jay --- minecode/mappers/debian.py | 28 +++++++--------------------- 1 file changed, 7 insertions(+), 21 deletions(-) diff --git a/minecode/mappers/debian.py b/minecode/mappers/debian.py index 28a4aa49..38906c42 100644 --- a/minecode/mappers/debian.py +++ b/minecode/mappers/debian.py @@ -50,31 +50,17 @@ def get_dependencies(data): if not depends: continue - dependencies = debutils.comma_separated(depends) - name_version = [] - for dependency in dependencies: - version_constraint = None - if "(" in dependency and ")" in dependency: - start = dependency.index("(") - end = dependency.index(")") - version_constraint = dependency[start + 1:end] - name = dependency.split(" ")[0] - name_version.append([name, version_constraint]) - + dependencies = None # debutils.comma_separated(depends) + if not dependencies: + continue # break each dep in package names and version constraints # FIXME:!!! - # FIXED !!! - for name, version_constraint in name_version: - purl = PackageURL(type="deb", namespace="debian", name=name) - dep = DependentPackage( - purl=purl.to_string(), - scope=scope, - requirement=version_constraint, - **flags, - ) + for name in dependencies: + purl = PackageURL(type='deb', namespace='debian', name=name) + dep = scan_models.DependentPackage(purl=purl.to_string(), score=scope, **flags) dep_pkgs.append(dep) - return dep_pkgs + return dep_pkgs def get_vcs_repo(description): From 853173b39073a11d26f14d472dd2ee8f2feb344d Mon Sep 17 00:00:00 2001 From: 35C4n0r Date: Sat, 11 Feb 2023 11:03:00 +0530 Subject: [PATCH 4/5] Fixed test_parse_email(). Signed-off-by: Jay --- minecode/tests/test_debian.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/minecode/tests/test_debian.py b/minecode/tests/test_debian.py index 50b61455..f9142640 100644 --- a/minecode/tests/test_debian.py +++ b/minecode/tests/test_debian.py @@ -109,7 +109,7 @@ def test_parse_email(self): content = 'Debian TeX Maintainers ' name, email = debutils.parse_email(content) self.assertEquals('Debian TeX Maintainers', name) - self.assertEquals('debian-tex-main.debian.org', email) + self.assertEquals('debian-tex-maint@lists.debian.org', email) def test_parse_email_2(self): # Space left Purposefully From 542dc4f9f00092e586315f01efa18120f8ac79a1 Mon Sep 17 00:00:00 2001 From: 35C4n0r Date: Tue, 14 Feb 2023 08:33:55 +0530 Subject: [PATCH 5/5] Removed DependentPackage Import. Added .env in .gitignore Signed-off-by: Jay --- .gitignore | 3 +++ minecode/mappers/debian.py | 3 ++- 2 files changed, 5 insertions(+), 1 deletion(-) diff --git a/.gitignore b/.gitignore index 339dca50..c814d0a9 100644 --- a/.gitignore +++ b/.gitignore @@ -71,3 +71,6 @@ tcl # Ignore Jupyter Notebook related temp files .ipynb_checkpoints/ + +# Env Files +.env \ No newline at end of file diff --git a/minecode/mappers/debian.py b/minecode/mappers/debian.py index 38906c42..8947e458 100644 --- a/minecode/mappers/debian.py +++ b/minecode/mappers/debian.py @@ -22,13 +22,13 @@ from minecode.mappers import Mapper from minecode.utils import form_vcs_url from minecode import debutils -from packagedb.models import DependentPackage logger = logging.getLogger(__name__) handler = logging.StreamHandler() logger.addHandler(handler) logger.setLevel(logging.INFO) + # FIXME: We are not returning download URLs. Returned information is incorrect @@ -346,6 +346,7 @@ def parse_packages(metadata, purl=None): package.set_purl(purl) yield package + ################################################################################# # FIXME: this cannot work since we do not fetch these yet AND what are the zip jar and gz in this??? #################################################################################