Skip to content

Commit

Permalink
Fix parsing format
Browse files Browse the repository at this point in the history
Signed-off-by: Tushar Goel <[email protected]>
  • Loading branch information
TG1999 committed Jun 25, 2024
1 parent a5ba6c5 commit 03fce8c
Show file tree
Hide file tree
Showing 9 changed files with 3,206 additions and 43 deletions.
65 changes: 49 additions & 16 deletions src/packagedcode/nuget.py
Original file line number Diff line number Diff line change
Expand Up @@ -199,25 +199,58 @@ def parse(cls, location, package_only=False):
if not parsed:
return

version = parsed.get('version')
dependencies = parsed.get('dependencies', {})

for target_framework, packages in dependencies.items():
top_dependencies = []
for target_framework, packages in parsed.get('dependencies', {}).items():
extra_data = dict(
target_framework=target_framework,
)
for package_name, package_info in packages.items():
extra_data = dict(
type=package_info.get('type'),
requested=package_info.get('requested'),
contentHash=package_info.get('contentHash'),
dependencies=package_info.get('dependencies')
dependencies = get_dependencies(package_info)
resolved_package_mapping = dict(
datasource_id=cls.datasource_id,
type=cls.default_package_type,
primary_language=cls.default_primary_language,
name=package_name,
version=package_info.get('version'),
dependencies=[
dep.to_dict() for dep in dependencies
],
is_virtual=True,
)
yield models.DependentPackage(
resolved_package = models.PackageData.from_data(resolved_package_mapping)
dependency = models.DependentPackage(
purl=str(PackageURL(type='nuget', name=package_name, version=package_info.get('resolved'))),
extracted_requirement=package_info.get('requested'),
scope='dependency',
is_runtime=True,
is_optional=False,
extracted_requirement=package_info.get('requested') or package_info.get('resolved'),
is_resolved=True,
is_direct=False,
extra_data=extra_data,
resolved_package=resolved_package.to_dict(),
scope=package_info.get('type'),
is_optional=False,
is_runtime=True,
is_direct=True if package_info.get('type') == 'Direct' else False,
)
top_dependencies.append(dependency.to_dict())
package_data = dict(
datasource_id=cls.datasource_id,
type=cls.default_package_type,
primary_language=cls.default_primary_language,
extra_data=extra_data,
dependencies=top_dependencies,
)
yield models.PackageData.from_data(package_data, package_only)



def get_dependencies(package_info):
dependencies = []
for dep in package_info.get('dependencies', {}):
dependency = models.DependentPackage(
purl=str(PackageURL(type='nuget', name=dep, version=package_info["dependencies"][dep])),
extracted_requirement=package_info["dependencies"][dep],
is_resolved=True,
scope='dependencies',
is_optional=False,
is_runtime=True,
is_direct=False,
)
dependencies.append(dependency)
return dependencies
23 changes: 19 additions & 4 deletions tests/packagedcode/data/nuget/Castle.Core.nuspec.json.expected
Original file line number Diff line number Diff line change
Expand Up @@ -43,17 +43,20 @@
"license_detections": [
{
"license_expression": "apache-2.0",
"license_expression_spdx": "Apache-2.0",
"matches": [
{
"score": 100.0,
"license_expression": "apache-2.0",
"spdx_license_expression": "Apache-2.0",
"from_file": null,
"start_line": 1,
"end_line": 1,
"matcher": "1-hash",
"score": 100.0,
"matched_length": 9,
"match_coverage": 100.0,
"matcher": "1-hash",
"license_expression": "apache-2.0",
"rule_identifier": "apache-2.0_20.RULE",
"rule_relevance": 100,
"rule_identifier": "apache-2.0_20.RULE",
"rule_url": "https://github.com/nexB/scancode-toolkit/tree/develop/src/licensedcode/data/rules/apache-2.0_20.RULE",
"matched_text": "http://www.apache.org/licenses/LICENSE-2.0.html"
}
Expand All @@ -68,6 +71,8 @@
"notice_text": null,
"source_packages": [],
"file_references": [],
"is_private": false,
"is_virtual": false,
"extra_data": {},
"dependencies": [
{
Expand All @@ -77,6 +82,7 @@
"is_runtime": true,
"is_optional": false,
"is_resolved": false,
"is_direct": true,
"resolved_package": {},
"extra_data": {
"framework": ".NETStandard1.3",
Expand All @@ -90,6 +96,7 @@
"is_runtime": true,
"is_optional": false,
"is_resolved": false,
"is_direct": true,
"resolved_package": {},
"extra_data": {
"framework": ".NETStandard1.3",
Expand All @@ -103,6 +110,7 @@
"is_runtime": true,
"is_optional": false,
"is_resolved": false,
"is_direct": true,
"resolved_package": {},
"extra_data": {
"framework": ".NETStandard1.3",
Expand All @@ -116,6 +124,7 @@
"is_runtime": true,
"is_optional": false,
"is_resolved": false,
"is_direct": true,
"resolved_package": {},
"extra_data": {
"framework": ".NETStandard1.3",
Expand All @@ -129,6 +138,7 @@
"is_runtime": true,
"is_optional": false,
"is_resolved": false,
"is_direct": true,
"resolved_package": {},
"extra_data": {
"framework": ".NETStandard1.3",
Expand All @@ -142,6 +152,7 @@
"is_runtime": true,
"is_optional": false,
"is_resolved": false,
"is_direct": true,
"resolved_package": {},
"extra_data": {
"framework": ".NETStandard1.3",
Expand All @@ -155,6 +166,7 @@
"is_runtime": true,
"is_optional": false,
"is_resolved": false,
"is_direct": true,
"resolved_package": {},
"extra_data": {
"framework": ".NETStandard1.3",
Expand All @@ -168,6 +180,7 @@
"is_runtime": true,
"is_optional": false,
"is_resolved": false,
"is_direct": true,
"resolved_package": {},
"extra_data": {
"framework": ".NETStandard1.3",
Expand All @@ -181,6 +194,7 @@
"is_runtime": true,
"is_optional": false,
"is_resolved": false,
"is_direct": true,
"resolved_package": {},
"extra_data": {
"framework": ".NETStandard1.3",
Expand All @@ -194,6 +208,7 @@
"is_runtime": true,
"is_optional": false,
"is_resolved": false,
"is_direct": true,
"resolved_package": {},
"extra_data": {
"framework": ".NETStandard1.3",
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -43,17 +43,20 @@
"license_detections": [
{
"license_expression": "ms-net-library",
"license_expression_spdx": "LicenseRef-scancode-ms-net-library",
"matches": [
{
"score": 100.0,
"license_expression": "ms-net-library",
"spdx_license_expression": "LicenseRef-scancode-ms-net-library",
"from_file": null,
"start_line": 1,
"end_line": 1,
"matcher": "1-hash",
"score": 100.0,
"matched_length": 7,
"match_coverage": 100.0,
"matcher": "1-hash",
"license_expression": "ms-net-library",
"rule_identifier": "ms-net-library_6.RULE",
"rule_relevance": 100,
"rule_identifier": "ms-net-library_6.RULE",
"rule_url": "https://github.com/nexB/scancode-toolkit/tree/develop/src/licensedcode/data/rules/ms-net-library_6.RULE",
"matched_text": "http://go.microsoft.com/fwlink/?LinkID=320539"
}
Expand All @@ -68,6 +71,8 @@
"notice_text": null,
"source_packages": [],
"file_references": [],
"is_private": false,
"is_virtual": false,
"extra_data": {},
"dependencies": [],
"repository_homepage_url": "https://www.nuget.org/packages/EntityFramework/6.1.3",
Expand Down
Loading

0 comments on commit 03fce8c

Please sign in to comment.