Skip to content

Commit

Permalink
Update: Create a deep copy of package attribute of codebase to have r…
Browse files Browse the repository at this point in the history
…esources #1395

Signed-off-by: swastik <[email protected]>
  • Loading branch information
swastkk committed Jul 12, 2024
1 parent be4b61d commit 2500f8f
Showing 1 changed file with 27 additions and 3 deletions.
30 changes: 27 additions & 3 deletions src/packagedcode/plugin_package.py
Original file line number Diff line number Diff line change
Expand Up @@ -13,6 +13,7 @@

import attr
import click
import copy

from commoncode.cliutils import PluggableCommandLineOption
from commoncode.cliutils import DOC_GROUP
Expand All @@ -39,6 +40,7 @@
from packagedcode.models import Package
from packagedcode.models import PackageData
from packagedcode.models import PackageWithResources
from packagedcode.models import get_files_for_packages
from summarycode.score import compute_license_score_package_level

TRACE = os.environ.get('SCANCODE_DEBUG_PACKAGE_API', False)
Expand Down Expand Up @@ -304,12 +306,34 @@ def process_codebase(self, codebase, package_summary, **kwargs):
if not self.is_enabled(package_summary):
return

packages= codebase.attributes.packages
for package in packages:
packages = codebase.attributes.packages
resource_for_packages = list(get_files_for_packages(codebase))
packages_copy = copy.deepcopy(packages) # created a deep copy
package_resources = {}

for resource, package_uid in resource_for_packages:
if package_uid not in package_resources:
package_resources[package_uid] = []
package_resources[package_uid].append(resource)

for package in packages_copy:
package_uid = package['package_uid']
if package_uid in package_resources:
resources_for_package = package_resources[package_uid]
for resource in resources_for_package:
package['resources']= resource.to_dict()
else:
print(f"No resources found for package {package_uid}")

for package in packages_copy:
scoring_elements= compute_license_score_package_level(package)
license_clarity_score= scoring_elements.to_dict()
package['license_clarity_score'] = license_clarity_score

# adding license_clarity_score to package attribute(orignal)
for package in packages:
package['license_clarity_score'] = license_clarity_score


def add_license_from_file(resource, codebase):
"""
Given a Resource, check if the detected package_data doesn't have license detections
Expand Down

0 comments on commit 2500f8f

Please sign in to comment.