Skip to content

Commit d705e5b

Browse files
committed
Add is_notice flag to the --classify option, issue #3822
Signed-off-by: Aayush Kumar <[email protected]>
1 parent e795bc6 commit d705e5b

File tree

19 files changed

+64
-2
lines changed

19 files changed

+64
-2
lines changed

src/summarycode/classify.py

Lines changed: 6 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -91,6 +91,9 @@ def get_relative_path(root_path, path):
9191
'readme',
9292
)
9393

94+
NOTICE_STARTS_ENDS = (
95+
"notice",
96+
)
9497

9598
def check_resource_name_start_and_end(resource, STARTS_ENDS):
9699
"""
@@ -111,6 +114,7 @@ def set_classification_flags(resource,
111114
_LEGAL=LEGAL_STARTS_ENDS,
112115
_MANIF=MANIFEST_ENDS,
113116
_README=README_STARTS_ENDS,
117+
_NOTICE=NOTICE_STARTS_ENDS,
114118
):
115119
"""
116120
Set classification flags on the `resource` Resource
@@ -119,8 +123,9 @@ def set_classification_flags(resource,
119123

120124
resource.is_legal = is_legal = check_resource_name_start_and_end(resource, _LEGAL)
121125
resource.is_readme = is_readme = check_resource_name_start_and_end(resource, _README)
126+
resource.is_notice = is_notice = check_resource_name_start_and_end(resource, _NOTICE)
122127
# FIXME: this will never be picked up as this is NOT available in a pre-scan plugin
123128
has_package_data = bool(getattr(resource, 'package_data', False))
124129
resource.is_manifest = is_manifest = path.endswith(_MANIF) or has_package_data
125-
resource.is_key_file = (resource.is_top_level and (is_readme or is_legal or is_manifest))
130+
resource.is_key_file = (resource.is_top_level and (is_readme or is_legal or is_manifest or is_notice))
126131
return resource

src/summarycode/classify_plugin.py

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -75,7 +75,10 @@ class FileClassifier(PostScanPlugin):
7575

7676
('is_key_file',
7777
Boolean(help='True if this file is "top-level" file and either a '
78-
'legal, readme or manifest file.')),
78+
'legal, notice, readme or manifest file.')),
79+
80+
('is_notice',
81+
Boolean(help='True if this file is likely a notice file')),
7982

8083
# ('is_doc',
8184
# Boolean(help='True if this file is likely a documentation file.')),

tests/formattedcode/data/common/manifests-expected.yaml

Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1934,6 +1934,7 @@ files:
19341934
is_readme: no
19351935
is_top_level: yes
19361936
is_key_file: no
1937+
is_notice: no
19371938
detected_license_expression:
19381939
detected_license_expression_spdx:
19391940
license_detections: []
@@ -1974,6 +1975,7 @@ files:
19741975
is_readme: no
19751976
is_top_level: yes
19761977
is_key_file: no
1978+
is_notice: no
19771979
detected_license_expression:
19781980
detected_license_expression_spdx:
19791981
license_detections: []
@@ -2092,6 +2094,7 @@ files:
20922094
is_readme: no
20932095
is_top_level: no
20942096
is_key_file: no
2097+
is_notice: no
20952098
detected_license_expression: cddl-1.0
20962099
detected_license_expression_spdx: CDDL-1.0
20972100
license_detections:
@@ -2173,6 +2176,7 @@ files:
21732176
is_readme: no
21742177
is_top_level: yes
21752178
is_key_file: no
2179+
is_notice: no
21762180
detected_license_expression:
21772181
detected_license_expression_spdx:
21782182
license_detections: []
@@ -2390,6 +2394,7 @@ files:
23902394
is_readme: no
23912395
is_top_level: no
23922396
is_key_file: no
2397+
is_notice: no
23932398
detected_license_expression: apache-2.0
23942399
detected_license_expression_spdx: Apache-2.0
23952400
license_detections:
@@ -2481,6 +2486,7 @@ files:
24812486
is_readme: no
24822487
is_top_level: yes
24832488
is_key_file: no
2489+
is_notice: no
24842490
detected_license_expression:
24852491
detected_license_expression_spdx:
24862492
license_detections: []
@@ -2631,6 +2637,7 @@ files:
26312637
is_readme: no
26322638
is_top_level: no
26332639
is_key_file: no
2640+
is_notice: no
26342641
detected_license_expression: mit
26352642
detected_license_expression_spdx: MIT
26362643
license_detections:
@@ -2702,6 +2709,7 @@ files:
27022709
is_readme: no
27032710
is_top_level: yes
27042711
is_key_file: no
2712+
is_notice: no
27052713
detected_license_expression:
27062714
detected_license_expression_spdx:
27072715
license_detections: []
@@ -2935,6 +2943,7 @@ files:
29352943
is_readme: no
29362944
is_top_level: no
29372945
is_key_file: no
2946+
is_notice: no
29382947
detected_license_expression: lgpl-3.0
29392948
detected_license_expression_spdx: LGPL-3.0-only
29402949
license_detections:

tests/formattedcode/data/yaml/package-and-licenses-expected.yaml

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1013,6 +1013,7 @@ files:
10131013
is_readme: no
10141014
is_top_level: yes
10151015
is_key_file: no
1016+
is_notice: no
10161017
detected_license_expression:
10171018
detected_license_expression_spdx:
10181019
license_detections: []
@@ -1053,6 +1054,7 @@ files:
10531054
is_readme: yes
10541055
is_top_level: yes
10551056
is_key_file: yes
1057+
is_notice: no
10561058
detected_license_expression: apache-2.0 AND (apache-2.0 OR mit)
10571059
detected_license_expression_spdx: Apache-2.0 AND (Apache-2.0 OR MIT)
10581060
license_detections:
@@ -1129,6 +1131,7 @@ files:
11291131
is_readme: no
11301132
is_top_level: yes
11311133
is_key_file: yes
1134+
is_notice: no
11321135
detected_license_expression: apache-2.0
11331136
detected_license_expression_spdx: Apache-2.0
11341137
license_detections:
@@ -1338,6 +1341,7 @@ files:
13381341
is_readme: no
13391342
is_top_level: yes
13401343
is_key_file: yes
1344+
is_notice: no
13411345
detected_license_expression: mit
13421346
detected_license_expression_spdx: MIT
13431347
license_detections:
@@ -1477,6 +1481,7 @@ files:
14771481
is_readme: no
14781482
is_top_level: no
14791483
is_key_file: no
1484+
is_notice: no
14801485
detected_license_expression: apache-2.0
14811486
detected_license_expression_spdx: Apache-2.0
14821487
license_detections:

tests/packagedcode/data/license_detection/multi-flavor/jquery-form-3.51.0.expected.json

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -705,6 +705,7 @@
705705
"is_readme": true,
706706
"is_top_level": true,
707707
"is_key_file": true,
708+
"is_notice": false,
708709
"detected_license_expression": "mit OR gpl-2.0",
709710
"detected_license_expression_spdx": "MIT OR GPL-2.0-only",
710711
"license_detections": [
@@ -832,6 +833,7 @@
832833
"is_readme": false,
833834
"is_top_level": false,
834835
"is_key_file": false,
836+
"is_notice": false,
835837
"detected_license_expression": null,
836838
"detected_license_expression_spdx": null,
837839
"license_detections": [],
@@ -969,6 +971,7 @@
969971
"is_readme": false,
970972
"is_top_level": false,
971973
"is_key_file": false,
974+
"is_notice": false,
972975
"detected_license_expression": "(mit OR gpl-2.0-plus) AND gpl-2.0",
973976
"detected_license_expression_spdx": "(MIT OR GPL-2.0-or-later) AND GPL-2.0-only",
974977
"license_detections": [
@@ -1242,6 +1245,7 @@
12421245
"is_readme": false,
12431246
"is_top_level": false,
12441247
"is_key_file": false,
1248+
"is_notice": false,
12451249
"detected_license_expression": "mit OR gpl-2.0",
12461250
"detected_license_expression_spdx": "MIT OR GPL-2.0-only",
12471251
"license_detections": [

tests/summarycode/data/classify/cli.expected.json

Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -24,6 +24,7 @@
2424
"is_readme": false,
2525
"is_top_level": true,
2626
"is_key_file": false,
27+
"is_notice": false,
2728
"files_count": 8,
2829
"dirs_count": 1,
2930
"size_count": 0,
@@ -53,6 +54,7 @@
5354
"is_readme": true,
5455
"is_top_level": true,
5556
"is_key_file": true,
57+
"is_notice": false,
5658
"files_count": 0,
5759
"dirs_count": 0,
5860
"size_count": 0,
@@ -82,6 +84,7 @@
8284
"is_readme": true,
8385
"is_top_level": true,
8486
"is_key_file": true,
87+
"is_notice": false,
8588
"files_count": 0,
8689
"dirs_count": 0,
8790
"size_count": 0,
@@ -111,6 +114,7 @@
111114
"is_readme": false,
112115
"is_top_level": true,
113116
"is_key_file": true,
117+
"is_notice": false,
114118
"files_count": 0,
115119
"dirs_count": 0,
116120
"size_count": 0,
@@ -140,6 +144,7 @@
140144
"is_readme": false,
141145
"is_top_level": true,
142146
"is_key_file": true,
147+
"is_notice": false,
143148
"files_count": 0,
144149
"dirs_count": 0,
145150
"size_count": 0,
@@ -169,6 +174,7 @@
169174
"is_readme": false,
170175
"is_top_level": true,
171176
"is_key_file": false,
177+
"is_notice": false,
172178
"files_count": 2,
173179
"dirs_count": 0,
174180
"size_count": 0,
@@ -198,6 +204,7 @@
198204
"is_readme": false,
199205
"is_top_level": false,
200206
"is_key_file": false,
207+
"is_notice": false,
201208
"files_count": 0,
202209
"dirs_count": 0,
203210
"size_count": 0,
@@ -227,6 +234,7 @@
227234
"is_readme": false,
228235
"is_top_level": false,
229236
"is_key_file": false,
237+
"is_notice": false,
230238
"files_count": 0,
231239
"dirs_count": 0,
232240
"size_count": 0,
@@ -256,6 +264,7 @@
256264
"is_readme": false,
257265
"is_top_level": true,
258266
"is_key_file": false,
267+
"is_notice": false,
259268
"files_count": 0,
260269
"dirs_count": 0,
261270
"size_count": 0,
@@ -285,6 +294,7 @@
285294
"is_readme": false,
286295
"is_top_level": true,
287296
"is_key_file": false,
297+
"is_notice": false,
288298
"files_count": 0,
289299
"dirs_count": 0,
290300
"size_count": 0,

tests/summarycode/data/classify/notice/ATTRIBUTION_NOTICE.txt

Whitespace-only changes.

tests/summarycode/data/classify/notice/LICENSE-NOTICE.txt

Whitespace-only changes.

tests/summarycode/data/classify/notice/NOTICE

Whitespace-only changes.

tests/summarycode/data/classify/notice/NOTICE-APACHE.txt

Whitespace-only changes.

0 commit comments

Comments
 (0)