Skip to content

Commit 79871d3

Browse files
Fix setup.cfg license detection bug
Signed-off-by: Ayan Sinha Mahapatra <[email protected]>
1 parent 951b155 commit 79871d3

File tree

10 files changed

+378
-128
lines changed

10 files changed

+378
-128
lines changed
Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,10 @@
1+
---
2+
license_expression: bsd-new
3+
is_license_tag: yes
4+
relevance: 100
5+
referenced_filenames:
6+
- LICENSE.rst
7+
---
8+
9+
license = BSD-3-Clause
10+
license_files = LICENSE.rst
Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,9 @@
1+
---
2+
license_expression: bsd-new
3+
is_license_tag: yes
4+
relevance: 100
5+
referenced_filenames:
6+
- LICENSE.rst
7+
---
8+
9+
BSD-3-Clause LICENSE.rst

src/packagedcode/pypi.py

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -771,6 +771,7 @@ def parse(cls, location):
771771
'name',
772772
'version',
773773
'license',
774+
'license_files',
774775
'url',
775776
'author',
776777
'author_email',
@@ -793,6 +794,11 @@ def parse(cls, location):
793794
)
794795
]
795796

797+
extracted_license_statement = metadata.get('license')
798+
license_file_references = metadata.get('license_files')
799+
if license_file_references:
800+
extracted_license_statement = f"{extracted_license_statement} {license_file_references}"
801+
796802
yield models.PackageData(
797803
datasource_id=cls.datasource_id,
798804
type=cls.default_package_type,
@@ -802,6 +808,7 @@ def parse(cls, location):
802808
homepage_url=metadata.get('url'),
803809
primary_language=cls.default_primary_language,
804810
dependencies=dependent_packages,
811+
extracted_license_statement=extracted_license_statement,
805812
)
806813

807814
@classmethod
Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1 @@
1+
license bsd-new

tests/packagedcode/data/instance/python-package-instance-expected-with-uuid.json

Lines changed: 57 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -32,13 +32,33 @@
3232
"vcs_url": null,
3333
"copyright": null,
3434
"holder": null,
35-
"declared_license_expression": null,
36-
"declared_license_expression_spdx": null,
37-
"license_detections": [],
35+
"declared_license_expression": "bsd-new",
36+
"declared_license_expression_spdx": "BSD-3-Clause",
37+
"license_detections": [
38+
{
39+
"license_expression": "bsd-new",
40+
"matches": [
41+
{
42+
"score": 100.0,
43+
"start_line": 1,
44+
"end_line": 1,
45+
"matched_length": 5,
46+
"match_coverage": 100.0,
47+
"matcher": "1-hash",
48+
"license_expression": "bsd-new",
49+
"rule_identifier": "bsd-new_1303.RULE",
50+
"rule_relevance": 100,
51+
"rule_url": "https://github.com/nexB/scancode-toolkit/tree/develop/src/licensedcode/data/rules/bsd-new_1303.RULE",
52+
"matched_text": "BSD-3-Clause LICENSE.rst"
53+
}
54+
],
55+
"identifier": "bsd_new-93f27a43-68fa-0573-8609-f6d624f3ac9a"
56+
}
57+
],
3858
"other_license_expression": null,
3959
"other_license_expression_spdx": null,
4060
"other_license_detections": [],
41-
"extracted_license_statement": null,
61+
"extracted_license_statement": "BSD-3-Clause LICENSE.rst",
4262
"notice_text": null,
4363
"source_packages": [],
4464
"extra_data": {},
@@ -100,6 +120,15 @@
100120
}
101121
],
102122
"files": [
123+
{
124+
"path": "LICENSE.rst",
125+
"type": "file",
126+
"package_data": [],
127+
"for_packages": [
128+
"pkg:pypi/click@attr:%20click.__version__?uuid=fixed-uid-done-for-testing-5642512d1758"
129+
],
130+
"scan_errors": []
131+
},
103132
{
104133
"path": "MANIFEST.in",
105134
"type": "file",
@@ -145,13 +174,33 @@
145174
"vcs_url": null,
146175
"copyright": null,
147176
"holder": null,
148-
"declared_license_expression": null,
149-
"declared_license_expression_spdx": null,
150-
"license_detections": [],
177+
"declared_license_expression": "bsd-new",
178+
"declared_license_expression_spdx": "BSD-3-Clause",
179+
"license_detections": [
180+
{
181+
"license_expression": "bsd-new",
182+
"matches": [
183+
{
184+
"score": 100.0,
185+
"start_line": 1,
186+
"end_line": 1,
187+
"matched_length": 5,
188+
"match_coverage": 100.0,
189+
"matcher": "1-hash",
190+
"license_expression": "bsd-new",
191+
"rule_identifier": "bsd-new_1303.RULE",
192+
"rule_relevance": 100,
193+
"rule_url": "https://github.com/nexB/scancode-toolkit/tree/develop/src/licensedcode/data/rules/bsd-new_1303.RULE",
194+
"matched_text": "BSD-3-Clause LICENSE.rst"
195+
}
196+
],
197+
"identifier": "bsd_new-93f27a43-68fa-0573-8609-f6d624f3ac9a"
198+
}
199+
],
151200
"other_license_expression": null,
152201
"other_license_expression_spdx": null,
153202
"other_license_detections": [],
154-
"extracted_license_statement": null,
203+
"extracted_license_statement": "BSD-3-Clause LICENSE.rst",
155204
"notice_text": null,
156205
"source_packages": [],
157206
"file_references": [],

tests/packagedcode/data/instance/python-package-instance-expected.json

Lines changed: 57 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -32,13 +32,33 @@
3232
"vcs_url": null,
3333
"copyright": null,
3434
"holder": null,
35-
"declared_license_expression": null,
36-
"declared_license_expression_spdx": null,
37-
"license_detections": [],
35+
"declared_license_expression": "bsd-new",
36+
"declared_license_expression_spdx": "BSD-3-Clause",
37+
"license_detections": [
38+
{
39+
"license_expression": "bsd-new",
40+
"matches": [
41+
{
42+
"score": 100.0,
43+
"start_line": 1,
44+
"end_line": 1,
45+
"matched_length": 5,
46+
"match_coverage": 100.0,
47+
"matcher": "1-hash",
48+
"license_expression": "bsd-new",
49+
"rule_identifier": "bsd-new_1303.RULE",
50+
"rule_relevance": 100,
51+
"rule_url": "https://github.com/nexB/scancode-toolkit/tree/develop/src/licensedcode/data/rules/bsd-new_1303.RULE",
52+
"matched_text": "BSD-3-Clause LICENSE.rst"
53+
}
54+
],
55+
"identifier": "bsd_new-93f27a43-68fa-0573-8609-f6d624f3ac9a"
56+
}
57+
],
3858
"other_license_expression": null,
3959
"other_license_expression_spdx": null,
4060
"other_license_detections": [],
41-
"extracted_license_statement": null,
61+
"extracted_license_statement": "BSD-3-Clause LICENSE.rst",
4262
"notice_text": null,
4363
"source_packages": [],
4464
"extra_data": {},
@@ -100,6 +120,15 @@
100120
}
101121
],
102122
"files": [
123+
{
124+
"path": "LICENSE.rst",
125+
"type": "file",
126+
"package_data": [],
127+
"for_packages": [
128+
"pkg:pypi/click@attr:%20click.__version__?uuid=fixed-uid-done-for-testing-5642512d1758"
129+
],
130+
"scan_errors": []
131+
},
103132
{
104133
"path": "MANIFEST.in",
105134
"type": "file",
@@ -145,13 +174,33 @@
145174
"vcs_url": null,
146175
"copyright": null,
147176
"holder": null,
148-
"declared_license_expression": null,
149-
"declared_license_expression_spdx": null,
150-
"license_detections": [],
177+
"declared_license_expression": "bsd-new",
178+
"declared_license_expression_spdx": "BSD-3-Clause",
179+
"license_detections": [
180+
{
181+
"license_expression": "bsd-new",
182+
"matches": [
183+
{
184+
"score": 100.0,
185+
"start_line": 1,
186+
"end_line": 1,
187+
"matched_length": 5,
188+
"match_coverage": 100.0,
189+
"matcher": "1-hash",
190+
"license_expression": "bsd-new",
191+
"rule_identifier": "bsd-new_1303.RULE",
192+
"rule_relevance": 100,
193+
"rule_url": "https://github.com/nexB/scancode-toolkit/tree/develop/src/licensedcode/data/rules/bsd-new_1303.RULE",
194+
"matched_text": "BSD-3-Clause LICENSE.rst"
195+
}
196+
],
197+
"identifier": "bsd_new-93f27a43-68fa-0573-8609-f6d624f3ac9a"
198+
}
199+
],
151200
"other_license_expression": null,
152201
"other_license_expression_spdx": null,
153202
"other_license_detections": [],
154-
"extracted_license_statement": null,
203+
"extracted_license_statement": "BSD-3-Clause LICENSE.rst",
155204
"notice_text": null,
156205
"source_packages": [],
157206
"file_references": [],

0 commit comments

Comments
 (0)