Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Fix package/dependency creation bugs #2932

Merged
merged 11 commits into from
Apr 30, 2022
Merged
2 changes: 1 addition & 1 deletion src/packagedcode/alpine.py
Original file line number Diff line number Diff line change
Expand Up @@ -129,7 +129,7 @@ def compute_normalized_license(cls, package):

@classmethod
def assign_package_to_resources(cls, package, resource, codebase):
cls.assign_package_to_parent_tree(
super().assign_package_to_parent_tree(
package=package,
resource=resource,
codebase=codebase,
Expand Down
4 changes: 2 additions & 2 deletions src/packagedcode/build.py
Original file line number Diff line number Diff line change
Expand Up @@ -51,7 +51,7 @@ def parse(cls, location):

@classmethod
def assign_package_to_resources(cls, package, resource, codebase):
cls.assign_package_to_parent_tree(
super().assign_package_to_parent_tree(
package=package,
resource=resource,
codebase=codebase,
Expand Down Expand Up @@ -376,7 +376,7 @@ def compute_normalized_license(cls, package):

@classmethod
def assign_package_to_resources(cls, package, resource, codebase):
cls.assign_package_to_parent_tree(
super().assign_package_to_parent_tree(
package_=package,
resource=resource,
codebase=codebase,
Expand Down
2 changes: 1 addition & 1 deletion src/packagedcode/build_gradle.py
Original file line number Diff line number Diff line change
Expand Up @@ -35,7 +35,7 @@ def parse(cls, location):
# TODO: handle complex cases of nested builds with many packages
@classmethod
def assign_package_to_resources(cls, package, resource, codebase):
cls.assign_package_to_parent_tree(
super().assign_package_to_parent_tree(
package=package,
resource=resource,
codebase=codebase,
Expand Down
6 changes: 3 additions & 3 deletions src/packagedcode/debian.py
Original file line number Diff line number Diff line change
Expand Up @@ -142,7 +142,7 @@ def assign_package_to_resources(cls, package, resource, codebase):
# two levels up
root = resource.parent(codebase).parent(codebase)
if root:
return cls.assign_package_to_resources(package, root, codebase)
return super().assign_package_to_resources(package, root, codebase)


# TODO: also look into neighboring copyright files!!!
Expand All @@ -169,7 +169,7 @@ def assign_package_to_resources(cls, package, resource, codebase):
# two levels up
root = resource.parent(codebase).parent(codebase)
if root:
return cls.assign_package_to_resources(package, root, codebase)
return super().assign_package_to_resources(package, root, codebase)


class DebianDscFileHandler(models.DatafileHandler):
Expand Down Expand Up @@ -489,7 +489,7 @@ def assign_package_to_resources(cls, package, resource, codebase):
# two levels up
root = resource.parent(codebase).parent(codebase)
if root:
return cls.assign_package_to_resources(package, root, codebase)
return super().assign_package_to_resources(package, root, codebase)


def build_package_data_from_package_filename(filename, datasource_id, package_type,):
Expand Down
17 changes: 11 additions & 6 deletions src/packagedcode/models.py
Original file line number Diff line number Diff line change
Expand Up @@ -436,12 +436,17 @@ def from_dependent_packages(
"""
dependent_packages = dependent_packages or []
for dependent_package in dependent_packages:
yield Dependency.from_dependent_package(
dependent_package=dependent_package,
datafile_path=datafile_path,
datasource_id=datasource_id,
package_uid=package_uid,
)
if dependent_package.purl:
yield Dependency.from_dependent_package(
dependent_package=dependent_package,
datafile_path=datafile_path,
datasource_id=datasource_id,
package_uid=package_uid,
)
else:
if TRACE:
logger_debug(f' Dependency.from_dependent_packages: dependent_package (does not have purl): {dependent_package}')
pass


@attr.attributes(slots=True)
Expand Down
11 changes: 9 additions & 2 deletions src/packagedcode/npm.py
Original file line number Diff line number Diff line change
Expand Up @@ -53,11 +53,18 @@ def assemble(cls, package_data, resource, codebase):
else:
dir_resource=resource

yield from cls.assemble_from_many_datafiles(
for assembled in cls.assemble_from_many_datafiles(
datafile_name_patterns=datafile_name_patterns,
directory=dir_resource,
codebase=codebase,
)
):
if isinstance(assembled, models.Package):
cls.assign_package_to_resources(
package=assembled,
resource=resource,
codebase=codebase,
)
yield assembled

@classmethod
def walk_npm(cls, resource, codebase, depth=0):
Expand Down
14 changes: 11 additions & 3 deletions src/packagedcode/pypi.py
Original file line number Diff line number Diff line change
Expand Up @@ -71,6 +71,14 @@ class BasePypiHandler(models.DatafileHandler):
def compute_normalized_license(cls, package):
return compute_normalized_license(package.declared_license)

@classmethod
AyanSinhaMahapatra marked this conversation as resolved.
Show resolved Hide resolved
def assign_package_to_resources(cls, package, resource, codebase):
return models.DatafileHandler.assign_package_to_resources(package, resource, codebase)

@classmethod
def assign_package_to_parent_tree(cls, package, resource, codebase):
return models.DatafileHandler.assign_package_to_parent_tree(package, resource, codebase)


class PythonEggPkgInfoFile(BasePypiHandler):
datasource_id = 'pypi_egg_pkginfo'
Expand All @@ -93,7 +101,7 @@ def assign_package_to_resources(cls, package, resource, codebase):
# two levels up
root = resource.parent(codebase).parent(codebase)
if root:
return cls.assign_package_to_resources(package, root, codebase)
return super().assign_package_to_resources(package, root, codebase)


class PythonEditableInstallationPkgInfoFile(BasePypiHandler):
Expand All @@ -115,7 +123,7 @@ def parse(cls, location):
@classmethod
def assign_package_to_resources(cls, package, resource, codebase):
# only the parent for now... though it can be more complex
return cls.assign_package_to_parent_tree(package, resource, codebase)
return super().assign_package_to_parent_tree(package, resource, codebase)


class BaseExtractedPythonLayout(BasePypiHandler):
Expand Down Expand Up @@ -144,7 +152,7 @@ def assemble(cls, package_data, resource, codebase):

@classmethod
def assign_package_to_resources(cls, package, resource, codebase):
return cls.assign_package_to_parent_tree(package, resource, codebase)
return super().assign_package_to_parent_tree(package, resource, codebase)


class PythonSdistPkgInfoFile(BaseExtractedPythonLayout):
Expand Down
2 changes: 1 addition & 1 deletion src/packagedcode/rubygems.py
Original file line number Diff line number Diff line change
Expand Up @@ -123,7 +123,7 @@ def assemble(cls, package_data, resource, codebase):

@classmethod
def assign_package_to_resources(cls, package, resource, codebase):
return cls.assign_package_to_parent_tree(package, resource, codebase)
return super().assign_package_to_parent_tree(package, resource, codebase)


class GemspecHandler(BaseGemHandler):
Expand Down
Original file line number Diff line number Diff line change
@@ -0,0 +1,11 @@
sphinx ~= 4.2, != 4.4.0
towncrier
furo
myst_parser
sphinx-copybutton
sphinx-inline-tabs
sphinxcontrib-towncrier >= 0.2.0a0

# `docs.pipext` uses pip's internals to generate documentation. So, we install
# the current directory to make it work.
.
Loading