Summarize a scan at the codebase level.
| 53 | |
| 54 | @post_scan_impl |
| 55 | class ScanSummary(PostScanPlugin): |
| 56 | """ |
| 57 | Summarize a scan at the codebase level. |
| 58 | """ |
| 59 | |
| 60 | run_order = 6 |
| 61 | sort_order = 2 |
| 62 | |
| 63 | codebase_attributes = dict(summary=attr.ib(default=attr.Factory(dict))) |
| 64 | |
| 65 | options = [ |
| 66 | PluggableCommandLineOption( |
| 67 | ('--summary',), |
| 68 | is_flag=True, |
| 69 | default=False, |
| 70 | help='Summarize scans by providing declared origin ' |
| 71 | 'information and other detected origin info at the ' |
| 72 | 'codebase attribute level.', |
| 73 | help_group=POST_SCAN_GROUP, |
| 74 | required_options=['classify'], |
| 75 | ) |
| 76 | ] |
| 77 | |
| 78 | def is_enabled(self, summary, **kwargs): |
| 79 | return summary |
| 80 | |
| 81 | def process_codebase(self, codebase, summary, **kwargs): |
| 82 | if TRACE_LIGHT: |
| 83 | logger_debug('ScanSummary:process_codebase') |
| 84 | |
| 85 | # Get tallies |
| 86 | tallies = compute_codebase_tallies(codebase, keep_details=False, **kwargs) |
| 87 | license_expressions_tallies = tallies.get('detected_license_expression') or [] |
| 88 | holders_tallies = tallies.get('holders') or [] |
| 89 | programming_language_tallies = tallies.get('programming_language') or [] |
| 90 | |
| 91 | # Determine declared license expression, declared holder, and primary |
| 92 | # language from Package data at the top level. |
| 93 | |
| 94 | declared_license_expression = None |
| 95 | declared_holders = None |
| 96 | primary_language = None |
| 97 | |
| 98 | # use top level packages |
| 99 | if hasattr(codebase.attributes, 'packages'): |
| 100 | top_level_packages = codebase.attributes.packages |
| 101 | ( |
| 102 | declared_license_expression, |
| 103 | declared_holders, |
| 104 | primary_language, |
| 105 | ) = get_origin_info_from_top_level_packages( |
| 106 | top_level_packages=top_level_packages, |
| 107 | codebase=codebase, |
| 108 | ) |
| 109 | |
| 110 | if declared_license_expression: |
| 111 | scoring_elements, _ = compute_license_score(codebase) |
| 112 | else: |
nothing calls this directly
no test coverage detected