Skip to content

Commit

Permalink
Add is_notice flag to the --classify option, issue aboutcode-org#3822
Browse files Browse the repository at this point in the history
Signed-off-by: Aayush Kumar <[email protected]>
  • Loading branch information
aayushkdev committed Feb 11, 2025
1 parent e795bc6 commit d705e5b
Show file tree
Hide file tree
Showing 19 changed files with 64 additions and 2 deletions.
7 changes: 6 additions & 1 deletion src/summarycode/classify.py
Original file line number Diff line number Diff line change
Expand Up @@ -91,6 +91,9 @@ def get_relative_path(root_path, path):
'readme',
)

NOTICE_STARTS_ENDS = (
"notice",
)

def check_resource_name_start_and_end(resource, STARTS_ENDS):
"""
Expand All @@ -111,6 +114,7 @@ def set_classification_flags(resource,
_LEGAL=LEGAL_STARTS_ENDS,
_MANIF=MANIFEST_ENDS,
_README=README_STARTS_ENDS,
_NOTICE=NOTICE_STARTS_ENDS,
):
"""
Set classification flags on the `resource` Resource
Expand All @@ -119,8 +123,9 @@ def set_classification_flags(resource,

resource.is_legal = is_legal = check_resource_name_start_and_end(resource, _LEGAL)
resource.is_readme = is_readme = check_resource_name_start_and_end(resource, _README)
resource.is_notice = is_notice = check_resource_name_start_and_end(resource, _NOTICE)
# FIXME: this will never be picked up as this is NOT available in a pre-scan plugin
has_package_data = bool(getattr(resource, 'package_data', False))
resource.is_manifest = is_manifest = path.endswith(_MANIF) or has_package_data
resource.is_key_file = (resource.is_top_level and (is_readme or is_legal or is_manifest))
resource.is_key_file = (resource.is_top_level and (is_readme or is_legal or is_manifest or is_notice))
return resource
5 changes: 4 additions & 1 deletion src/summarycode/classify_plugin.py
Original file line number Diff line number Diff line change
Expand Up @@ -75,7 +75,10 @@ class FileClassifier(PostScanPlugin):

('is_key_file',
Boolean(help='True if this file is "top-level" file and either a '
'legal, readme or manifest file.')),
'legal, notice, readme or manifest file.')),

('is_notice',
Boolean(help='True if this file is likely a notice file')),

# ('is_doc',
# Boolean(help='True if this file is likely a documentation file.')),
Expand Down
9 changes: 9 additions & 0 deletions tests/formattedcode/data/common/manifests-expected.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -1934,6 +1934,7 @@ files:
is_readme: no
is_top_level: yes
is_key_file: no
is_notice: no
detected_license_expression:
detected_license_expression_spdx:
license_detections: []
Expand Down Expand Up @@ -1974,6 +1975,7 @@ files:
is_readme: no
is_top_level: yes
is_key_file: no
is_notice: no
detected_license_expression:
detected_license_expression_spdx:
license_detections: []
Expand Down Expand Up @@ -2092,6 +2094,7 @@ files:
is_readme: no
is_top_level: no
is_key_file: no
is_notice: no
detected_license_expression: cddl-1.0
detected_license_expression_spdx: CDDL-1.0
license_detections:
Expand Down Expand Up @@ -2173,6 +2176,7 @@ files:
is_readme: no
is_top_level: yes
is_key_file: no
is_notice: no
detected_license_expression:
detected_license_expression_spdx:
license_detections: []
Expand Down Expand Up @@ -2390,6 +2394,7 @@ files:
is_readme: no
is_top_level: no
is_key_file: no
is_notice: no
detected_license_expression: apache-2.0
detected_license_expression_spdx: Apache-2.0
license_detections:
Expand Down Expand Up @@ -2481,6 +2486,7 @@ files:
is_readme: no
is_top_level: yes
is_key_file: no
is_notice: no
detected_license_expression:
detected_license_expression_spdx:
license_detections: []
Expand Down Expand Up @@ -2631,6 +2637,7 @@ files:
is_readme: no
is_top_level: no
is_key_file: no
is_notice: no
detected_license_expression: mit
detected_license_expression_spdx: MIT
license_detections:
Expand Down Expand Up @@ -2702,6 +2709,7 @@ files:
is_readme: no
is_top_level: yes
is_key_file: no
is_notice: no
detected_license_expression:
detected_license_expression_spdx:
license_detections: []
Expand Down Expand Up @@ -2935,6 +2943,7 @@ files:
is_readme: no
is_top_level: no
is_key_file: no
is_notice: no
detected_license_expression: lgpl-3.0
detected_license_expression_spdx: LGPL-3.0-only
license_detections:
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -1013,6 +1013,7 @@ files:
is_readme: no
is_top_level: yes
is_key_file: no
is_notice: no
detected_license_expression:
detected_license_expression_spdx:
license_detections: []
Expand Down Expand Up @@ -1053,6 +1054,7 @@ files:
is_readme: yes
is_top_level: yes
is_key_file: yes
is_notice: no
detected_license_expression: apache-2.0 AND (apache-2.0 OR mit)
detected_license_expression_spdx: Apache-2.0 AND (Apache-2.0 OR MIT)
license_detections:
Expand Down Expand Up @@ -1129,6 +1131,7 @@ files:
is_readme: no
is_top_level: yes
is_key_file: yes
is_notice: no
detected_license_expression: apache-2.0
detected_license_expression_spdx: Apache-2.0
license_detections:
Expand Down Expand Up @@ -1338,6 +1341,7 @@ files:
is_readme: no
is_top_level: yes
is_key_file: yes
is_notice: no
detected_license_expression: mit
detected_license_expression_spdx: MIT
license_detections:
Expand Down Expand Up @@ -1477,6 +1481,7 @@ files:
is_readme: no
is_top_level: no
is_key_file: no
is_notice: no
detected_license_expression: apache-2.0
detected_license_expression_spdx: Apache-2.0
license_detections:
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -705,6 +705,7 @@
"is_readme": true,
"is_top_level": true,
"is_key_file": true,
"is_notice": false,
"detected_license_expression": "mit OR gpl-2.0",
"detected_license_expression_spdx": "MIT OR GPL-2.0-only",
"license_detections": [
Expand Down Expand Up @@ -832,6 +833,7 @@
"is_readme": false,
"is_top_level": false,
"is_key_file": false,
"is_notice": false,
"detected_license_expression": null,
"detected_license_expression_spdx": null,
"license_detections": [],
Expand Down Expand Up @@ -969,6 +971,7 @@
"is_readme": false,
"is_top_level": false,
"is_key_file": false,
"is_notice": false,
"detected_license_expression": "(mit OR gpl-2.0-plus) AND gpl-2.0",
"detected_license_expression_spdx": "(MIT OR GPL-2.0-or-later) AND GPL-2.0-only",
"license_detections": [
Expand Down Expand Up @@ -1242,6 +1245,7 @@
"is_readme": false,
"is_top_level": false,
"is_key_file": false,
"is_notice": false,
"detected_license_expression": "mit OR gpl-2.0",
"detected_license_expression_spdx": "MIT OR GPL-2.0-only",
"license_detections": [
Expand Down
10 changes: 10 additions & 0 deletions tests/summarycode/data/classify/cli.expected.json
Original file line number Diff line number Diff line change
Expand Up @@ -24,6 +24,7 @@
"is_readme": false,
"is_top_level": true,
"is_key_file": false,
"is_notice": false,
"files_count": 8,
"dirs_count": 1,
"size_count": 0,
Expand Down Expand Up @@ -53,6 +54,7 @@
"is_readme": true,
"is_top_level": true,
"is_key_file": true,
"is_notice": false,
"files_count": 0,
"dirs_count": 0,
"size_count": 0,
Expand Down Expand Up @@ -82,6 +84,7 @@
"is_readme": true,
"is_top_level": true,
"is_key_file": true,
"is_notice": false,
"files_count": 0,
"dirs_count": 0,
"size_count": 0,
Expand Down Expand Up @@ -111,6 +114,7 @@
"is_readme": false,
"is_top_level": true,
"is_key_file": true,
"is_notice": false,
"files_count": 0,
"dirs_count": 0,
"size_count": 0,
Expand Down Expand Up @@ -140,6 +144,7 @@
"is_readme": false,
"is_top_level": true,
"is_key_file": true,
"is_notice": false,
"files_count": 0,
"dirs_count": 0,
"size_count": 0,
Expand Down Expand Up @@ -169,6 +174,7 @@
"is_readme": false,
"is_top_level": true,
"is_key_file": false,
"is_notice": false,
"files_count": 2,
"dirs_count": 0,
"size_count": 0,
Expand Down Expand Up @@ -198,6 +204,7 @@
"is_readme": false,
"is_top_level": false,
"is_key_file": false,
"is_notice": false,
"files_count": 0,
"dirs_count": 0,
"size_count": 0,
Expand Down Expand Up @@ -227,6 +234,7 @@
"is_readme": false,
"is_top_level": false,
"is_key_file": false,
"is_notice": false,
"files_count": 0,
"dirs_count": 0,
"size_count": 0,
Expand Down Expand Up @@ -256,6 +264,7 @@
"is_readme": false,
"is_top_level": true,
"is_key_file": false,
"is_notice": false,
"files_count": 0,
"dirs_count": 0,
"size_count": 0,
Expand Down Expand Up @@ -285,6 +294,7 @@
"is_readme": false,
"is_top_level": true,
"is_key_file": false,
"is_notice": false,
"files_count": 0,
"dirs_count": 0,
"size_count": 0,
Expand Down
Empty file.
Empty file.
Empty file.
Empty file.
Empty file.
Empty file.
Empty file.
Empty file.
Empty file.
Empty file.
Empty file.
15 changes: 15 additions & 0 deletions tests/summarycode/data/classify/with_package_data.expected.json
Original file line number Diff line number Diff line change
Expand Up @@ -255,6 +255,7 @@
"is_readme": false,
"is_top_level": true,
"is_key_file": false,
"is_notice": false,
"files_count": 7,
"dirs_count": 7,
"size_count": 31701,
Expand Down Expand Up @@ -288,6 +289,7 @@
"is_readme": false,
"is_top_level": true,
"is_key_file": false,
"is_notice": false,
"files_count": 5,
"dirs_count": 3,
"size_count": 27441,
Expand Down Expand Up @@ -321,6 +323,7 @@
"is_readme": false,
"is_top_level": true,
"is_key_file": false,
"is_notice": false,
"files_count": 0,
"dirs_count": 0,
"size_count": 0,
Expand Down Expand Up @@ -354,6 +357,7 @@
"is_readme": false,
"is_top_level": true,
"is_key_file": true,
"is_notice": false,
"files_count": 0,
"dirs_count": 0,
"size_count": 0,
Expand Down Expand Up @@ -437,6 +441,7 @@
"is_readme": false,
"is_top_level": true,
"is_key_file": true,
"is_notice": false,
"files_count": 0,
"dirs_count": 0,
"size_count": 0,
Expand Down Expand Up @@ -470,6 +475,7 @@
"is_readme": false,
"is_top_level": true,
"is_key_file": false,
"is_notice": false,
"files_count": 2,
"dirs_count": 2,
"size_count": 15229,
Expand Down Expand Up @@ -503,6 +509,7 @@
"is_readme": false,
"is_top_level": true,
"is_key_file": false,
"is_notice": false,
"files_count": 2,
"dirs_count": 1,
"size_count": 15229,
Expand Down Expand Up @@ -536,6 +543,7 @@
"is_readme": false,
"is_top_level": true,
"is_key_file": false,
"is_notice": false,
"files_count": 2,
"dirs_count": 0,
"size_count": 15229,
Expand Down Expand Up @@ -614,6 +622,7 @@
"is_readme": false,
"is_top_level": true,
"is_key_file": true,
"is_notice": false,
"files_count": 0,
"dirs_count": 0,
"size_count": 0,
Expand Down Expand Up @@ -832,6 +841,7 @@
"is_readme": false,
"is_top_level": true,
"is_key_file": true,
"is_notice": false,
"files_count": 0,
"dirs_count": 0,
"size_count": 0,
Expand Down Expand Up @@ -865,6 +875,7 @@
"is_readme": false,
"is_top_level": true,
"is_key_file": false,
"is_notice": false,
"files_count": 2,
"dirs_count": 2,
"size_count": 4260,
Expand Down Expand Up @@ -898,6 +909,7 @@
"is_readme": false,
"is_top_level": false,
"is_key_file": false,
"is_notice": false,
"files_count": 2,
"dirs_count": 1,
"size_count": 4260,
Expand Down Expand Up @@ -931,6 +943,7 @@
"is_readme": false,
"is_top_level": false,
"is_key_file": false,
"is_notice": false,
"files_count": 2,
"dirs_count": 0,
"size_count": 4260,
Expand Down Expand Up @@ -964,6 +977,7 @@
"is_readme": false,
"is_top_level": false,
"is_key_file": false,
"is_notice": false,
"files_count": 0,
"dirs_count": 0,
"size_count": 0,
Expand Down Expand Up @@ -997,6 +1011,7 @@
"is_readme": false,
"is_top_level": false,
"is_key_file": false,
"is_notice": false,
"files_count": 0,
"dirs_count": 0,
"size_count": 0,
Expand Down
Loading

0 comments on commit d705e5b

Please sign in to comment.