AI Slop Code RIsk Monitor

pwr-Solaar/Solaar

Linux device manager for Logitech devices

14.5 Moderate pattern signal View on GitHub

Maintenance and Governance Review

This report summarizes scanner evidence for pwr-Solaar/Solaar, a Python project with 9,472 GitHub stars. SynthScan examined 61,516 lines of code across 283 source files, recording 778 pattern matches distributed across 13 syntactic categories. The legacy adjusted pattern signal is 14.5 (Moderate 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.

14.5
Adjusted Signal
14.5
Raw Pattern Score
100%
Time Factor
2026-08-18
Last Push
9.5K
Stars
Python
Language
61.5K
Lines of Code
283
Files
778
Pattern Hits
2026-10-12
Scan Date
0.08
HC Hit Rate

Risk Review · v3

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

Cognitive Ownership Risk 31.5/100 · MEDIUM

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

Hallucinated Dependency & Supply Chain Risk 5.0/100 · LOW

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

Agent Over-Engineering Ratio 38.9/100 · MEDIUM

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

PR Review Velocity Impact 52.8/100 · HIGH

Which changes need focused human review? 778 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 24MEDIUM 13LOW 741

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 778 distinct pattern matches across 13 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 Identifiers222 hits · 237 pts
SeverityFileLineSnippetContext
LOWtests/conftest.py9def isolate_solaar_configuration(tmp_path, monkeypatch):CODE
LOWtests/conftest.py26def mock_desktop_notifications(monkeypatch):CODE
LOWtests/logitech_receiver/test_setting_templates.py906def test_check_feature_settings(test, mocker):CODE
LOWtests/logitech_receiver/test_setting_templates.py927def test_check_feature_setting(test, mocker):CODE
LOWtests/logitech_receiver/test_setting_templates.py944def _idle_setting_with_persisted(value):CODE
LOWtests/logitech_receiver/test_common.py26def test_named_int_comparison():CODE
LOWtests/logitech_receiver/test_common.py42def test_named_int_comparison_exception():CODE
LOWtests/logitech_receiver/test_common.py49def test_named_int_conversions():CODE
LOW⚡tests/logitech_receiver/test_common.py68def test_color_int_str_and_repr():CODE
LOW⚡tests/logitech_receiver/test_common.py75def test_color_int_equality_with_plain_int():CODE
LOW⚡tests/logitech_receiver/test_common.py80def test_color_int_from_hex_string_prefixes():CODE
LOW⚡tests/logitech_receiver/test_common.py86def test_color_int_from_int_passes_through():CODE
LOW⚡tests/logitech_receiver/test_common.py91def test_color_int_out_of_range_falls_back_to_decimal():CODE
LOW⚡tests/logitech_receiver/test_common.py97def test_color_int_yaml_dumps_as_hex_int_literal():CODE
LOW⚡tests/logitech_receiver/test_common.py103def test_color_int_yaml_roundtrips_to_plain_int():CODE
LOW⚡tests/logitech_receiver/test_common.py112def test_color_int_in_dict_yaml_dumps_each_value_as_hex():CODE
LOWtests/logitech_receiver/test_common.py187def test_named_ints_flag_names(code, expected_flags):CODE
LOWtests/logitech_receiver/test_receiver.py132def test_receiver_factory_create_receiver(device_info, responses, handle, serial, max_devices):CODE
LOWtests/logitech_receiver/test_receiver.py156def test_receiver_factory_props(device_info, responses, firmware, codename, remaining_pairings, pairing_info, count):CODE
LOWtests/logitech_receiver/test_receiver.py176def test_receiver_factory_string(device_info, responses, status_str, strng):CODE
LOWtests/logitech_receiver/test_receiver.py192def test_receiver_factory_no_device(device_info, responses):CODE
LOWtests/logitech_receiver/test_receiver.py208def test_notification_information_nano_receiver(nano_recv, address, data, expected_online, expected_encrypted):CODE
LOWtests/logitech_receiver/test_receiver.py225def test_extract_serial_number():CODE
LOWtests/logitech_receiver/test_receiver.py248def test_extract_remaining_pairings(response, expected_remaining_pairings):CODE
LOWtests/logitech_receiver/test_receiver.py272def test_extract_power_switch_location(power_switch_byte, expected_location):CODE
LOWtests/logitech_receiver/test_receiver.py280def test_extract_connection_count():CODE
LOWtests/logitech_receiver/test_receiver.py296def test_extract_polling_rate():CODE
LOW⚡tests/logitech_receiver/test_receiver.py325def test_force_unpair_slot_empty_slot_acknowledged():CODE
LOW⚡tests/logitech_receiver/test_receiver.py334def test_force_unpair_slot_stale_sentinel_cleared():CODE
LOW⚡tests/logitech_receiver/test_receiver.py343def test_force_unpair_slot_active_device_invalidated():CODE
LOW⚡tests/logitech_receiver/test_receiver.py356def test_force_unpair_slot_register_write_failed():CODE
LOW⚡tests/logitech_receiver/test_receiver.py365def test_force_unpair_slot_no_handle():CODE
LOW⚡tests/logitech_receiver/test_receiver.py374def test_close_keeps_handle_until_paired_devices_closed():CODE
LOWtests/logitech_receiver/test_hidpp20_simple.py172def test_get_mouse_pointer_info():CODE
LOW⚡tests/logitech_receiver/test_hidpp20_simple.py186def test_get_vertical_scrolling_info():CODE
LOW⚡tests/logitech_receiver/test_hidpp20_simple.py195def test_get_hi_res_scrolling_info():CODE
LOW⚡tests/logitech_receiver/test_hidpp20_simple.py205def test_get_pointer_speed_info():CODE
LOW⚡tests/logitech_receiver/test_hidpp20_simple.py214def test_get_lowres_wheel_status():CODE
LOWtests/logitech_receiver/test_hidpp20_simple.py242def test_get_new_fn_inversion():CODE
LOWtests/logitech_receiver/test_hidpp20_simple.py357def test_get_remaining_pairing():CODE
LOW⚡tests/logitech_receiver/test_hidpp20_simple.py375def test_get_configuration_cookie():CODE
LOW⚡tests/logitech_receiver/test_hidpp20_simple.py384def test_set_configuration_complete_explicit_cookie():CODE
LOW⚡tests/logitech_receiver/test_hidpp20_simple.py394def test_set_configuration_complete_monotonic_counter():CODE
LOWtests/logitech_receiver/test_hidpp20_simple.py407def test_set_configuration_complete_skips_zero():CODE
LOWtests/logitech_receiver/test_hidpp20_simple.py416def test_decipher_battery_status():CODE
LOWtests/logitech_receiver/test_hidpp20_simple.py427def test_decipher_battery_voltage():CODE
LOWtests/logitech_receiver/test_hidpp20_simple.py438def test_decipher_battery_unified():CODE
LOWtests/logitech_receiver/test_hidpp20_simple.py448def test_decipher_adc_measurement():CODE
LOWtests/logitech_receiver/test_hidpp20_simple.py522def test_estimate_battery_level_percentage(millivolt, expected_percentage):CODE
LOWtests/logitech_receiver/test_base_usb.py7def test_ensure_known_receivers_mappings_are_valid():CODE
LOWtests/logitech_receiver/test_base_usb.py28def test_get_receiver_info_unknown_device_fails():CODE
LOWtests/logitech_receiver/test_settings_validator.py39def test_map_range_to_string_formats_plain_int_through_value_type():CODE
LOW⚡tests/logitech_receiver/test_settings_validator.py51def test_map_range_to_string_passes_color_int_through():CODE
LOW⚡tests/logitech_receiver/test_settings_validator.py59def test_map_range_to_string_preserves_sentinel_subclass():CODE
LOW⚡tests/logitech_receiver/test_settings_validator.py69def test_map_range_to_string_int_value_type_unchanged():CODE
LOWtests/logitech_receiver/test_notifications.py54def test_process_receiver_notification(sub_id, notification_data, expected_error, expected_new_device):CODE
LOWtests/logitech_receiver/test_notifications.py73def test_process_device_notification(hidpp_notification, expected):CODE
LOWtests/logitech_receiver/test_notifications.py90def test_process_dj_notification(hidpp_notification, expected):CODE
LOWtests/logitech_receiver/test_notifications.py273def test_process_feature_notification(mocker, hidpp_notification, feature):CODE
LOWtests/logitech_receiver/test_notifications.py282def test_process_receiver_notification_invalid(mocker):CODE
162 more matches not shown…
Excessive Try-Catch Wrapping140 hits · 144 pts
SeverityFileLineSnippetContext
LOWsetup.py17except Exception: # get commit from Ubuntu dpkg-parsechangelogCODE
LOWsetup.py26 except Exception as e:CODE
LOWtests/conftest.py39 except Exception:CODE
LOWlib/logitech_receiver/settings_new.py119 except Exception as e:CODE
LOW⚡lib/logitech_receiver/rgb_power.py549 except Exception as e:CODE
LOW⚡lib/logitech_receiver/rgb_power.py562 except Exception as e:CODE
LOWlib/logitech_receiver/rgb_power.py356 except Exception as e:CODE
LOWlib/logitech_receiver/rgb_power.py363 except Exception:CODE
LOWlib/logitech_receiver/rgb_power.py415 except Exception:CODE
LOWlib/logitech_receiver/rgb_power.py491 except Exception:CODE
LOWlib/logitech_receiver/rgb_power.py599 except Exception as e:CODE
LOWlib/logitech_receiver/rgb_power.py608 except Exception as e:CODE
LOWlib/logitech_receiver/rgb_power.py667 except Exception as e:CODE
LOWlib/logitech_receiver/rgb_power.py673 except Exception as e:CODE
LOWlib/logitech_receiver/rgb_power.py763 except Exception as exc:CODE
LOWlib/logitech_receiver/rgb_power.py784 except Exception as e:CODE
LOWlib/logitech_receiver/rgb_power.py816 except Exception as e:CODE
LOWlib/logitech_receiver/rgb_power.py952 except Exception:CODE
LOWlib/logitech_receiver/rgb_power.py992 except Exception as e:CODE
LOWlib/logitech_receiver/desktop_notifications.py64 except Exception:CODE
LOWlib/logitech_receiver/desktop_notifications.py90 except Exception:CODE
LOWlib/logitech_receiver/headset_rgb.py71 except Exception as e:CODE
LOWlib/logitech_receiver/headset_rgb.py82 except Exception as e:CODE
LOWlib/logitech_receiver/headset_rgb.py133 except Exception as e:CODE
LOWlib/logitech_receiver/headset_rgb.py197 except Exception as e:CODE
MEDIUMlib/logitech_receiver/settings_templates.py2879def build(cls, device):CODE
LOWlib/logitech_receiver/settings_templates.py1756 except Exception as e:CODE
LOWlib/logitech_receiver/settings_templates.py1791 except Exception as e:CODE
LOWlib/logitech_receiver/settings_templates.py1978 except Exception:CODE
LOWlib/logitech_receiver/settings_templates.py2091 except Exception as e:CODE
LOWlib/logitech_receiver/settings_templates.py2230 except Exception as e:CODE
LOWlib/logitech_receiver/settings_templates.py2237 except Exception as e:CODE
LOWlib/logitech_receiver/settings_templates.py2317 except Exception as e:CODE
LOWlib/logitech_receiver/settings_templates.py2451 except Exception as e:CODE
LOWlib/logitech_receiver/settings_templates.py2669 except Exception as e:CODE
LOWlib/logitech_receiver/settings_templates.py2971 except Exception as e:CODE
LOWlib/logitech_receiver/settings_templates.py3365 except Exception as e:CODE
LOWlib/logitech_receiver/settings_templates.py3371 except Exception as e:CODE
LOWlib/logitech_receiver/settings_templates.py3512 except Exception:CODE
LOWlib/logitech_receiver/settings_templates.py3819 except Exception as e:CODE
LOWlib/logitech_receiver/settings_templates.py4640 except Exception as e:CODE
LOWlib/logitech_receiver/settings_templates.py4693 except Exception as err:CODE
LOWlib/logitech_receiver/settings_templates.py4730 except Exception:CODE
LOWlib/logitech_receiver/device.py100 except Exception as e:CODE
LOWlib/logitech_receiver/device.py188 except Exception: # maybe the device wasn't set upCODE
LOWlib/logitech_receiver/device.py192 except Exception: # give upCODE
LOWlib/logitech_receiver/device.py526 except Exception as e: # Do nothing if the device is offlineCODE
LOWlib/logitech_receiver/device.py560 except Exception:CODE
LOWlib/logitech_receiver/device.py1017 except Exception:CODE
LOWlib/logitech_receiver/centurion.py295 except Exception:CODE
LOWlib/logitech_receiver/centurion.py352 except Exception:CODE
LOWlib/logitech_receiver/centurion.py403 except Exception:CODE
LOWlib/logitech_receiver/centurion.py589 except Exception as e:CODE
LOWlib/logitech_receiver/receiver.py634 except Exception:CODE
LOWlib/logitech_receiver/rgb_effects_probe.py78 except Exception as e:CODE
LOWlib/logitech_receiver/rgb_effects_probe.py96 except Exception as e:CODE
LOWlib/logitech_receiver/rgb_effects_probe.py214 except Exception as e:CODE
LOWlib/logitech_receiver/rgb_effects_probe.py218 except Exception as e:CODE
LOWlib/logitech_receiver/diversion.py115except Exception:CODE
LOWlib/logitech_receiver/diversion.py184 except Exception:CODE
80 more matches not shown…
Empty Error Handlers24 hits · 120 pts
SeverityFileLineSnippetContext
HIGHlib/logitech_receiver/rgb_power.py363except Exception:CODE
HIGHlib/logitech_receiver/rgb_power.py415except Exception:CODE
HIGHlib/logitech_receiver/rgb_power.py491except Exception:CODE
HIGHlib/logitech_receiver/settings_templates.py3512except Exception:CODE
HIGHlib/logitech_receiver/centurion_constants.py33except ValueError:CODE
HIGHlib/logitech_receiver/centurion.py295except Exception:CODE
HIGHlib/logitech_receiver/centurion.py403except Exception:CODE
HIGHlib/logitech_receiver/base_usb.py235except KeyError:CODE
HIGHlib/logitech_receiver/notifications.py84except KeyError:CODE
HIGHlib/logitech_receiver/settings_validator.py411except Exception:CODE
HIGHlib/logitech_receiver/settings_validator.py818except Exception:CODE
HIGHlib/logitech_receiver/hidpp20.py1485except Exception:CODE
HIGHlib/logitech_receiver/base.py260except ValueError:CODE
HIGHlib/logitech_receiver/base.py321except Exception:CODE
HIGHlib/hid_parser/__init__.py410except (KeyError, ValueError):CODE
HIGHlib/hid_parser/__init__.py512except (KeyError, ValueError):CODE
HIGHlib/hidapi/hidconsole.py207except Exception:CODE
HIGHlib/hidapi/hidapi_impl.py74except OSError:CODE
HIGHlib/solaar/listener.py477except Exception:CODE
HIGHlib/solaar/ui/diversion_rules.py976except KeyError:CODE
HIGHlib/solaar/ui/diversion_rules.py980except KeyError:CODE
HIGHlib/solaar/ui/perkey/control.py110except ValueError:CODE
HIGHlib/solaar/cli/config.py219except Exception:CODE
HIGHlib/solaar/cli/__init__.py187except Exception:CODE
Over-Commented Block105 hits · 100 pts
SeverityFileLineSnippetContext
LOWtests/logitech_receiver/test_setting_templates.py1## Copyright (C) 2024 Solaar Contributors https://pwr-solaar.github.io/Solaar/COMMENT
LOWtests/logitech_receiver/test_hidpp20_simple.py1## Copyright (C) 2024 Solaar Contributors https://pwr-solaar.github.io/Solaar/COMMENT
LOWtests/logitech_receiver/fake_hidpp.py1## Copyright (C) 2024 Solaar Contributors https://pwr-solaar.github.io/Solaar/COMMENT
LOWtests/logitech_receiver/fake_hidpp.py221 # Response("00000000000000000000000000000000", 0x0410, "000180"),COMMENT
LOWtests/logitech_receiver/test_device.py1## Copyright (C) 2024 Solaar Contributors https://pwr-solaar.github.io/Solaar/COMMENT
LOWtests/logitech_receiver/test_hidpp20_complex.py1## Copyright (C) 2024 Solaar Contributors https://pwr-solaar.github.io/Solaar/COMMENT
LOWdocs/usb.ids.txt1#COMMENT
LOWdocs/devices/Marathon Mouse M705 101B.txt21# writing 0x10 in this register will generate an eventCOMMENT
LOWlib/logitech_receiver/hidpp20_constants.py1## Copyright (C) 2012-2013 Daniel PavelCOMMENT
LOWlib/logitech_receiver/settings_new.py1## Copyright (C) 2025 Solaar contributorsCOMMENT
LOWlib/logitech_receiver/rgb_power.py1## Copyright (C) 2012-2013 Daniel PavelCOMMENT
LOWlib/logitech_receiver/rgb_power.py261 # SetEffectByIndex: cluster + effectIdx + 10 param bytes + persist.COMMENT
LOWlib/logitech_receiver/desktop_notifications.py1## Copyright (C) 2024 Solaar contributorsCOMMENT
LOWlib/logitech_receiver/headset_rgb.py1## Copyright (C) 2024 Solaar Contributors https://pwr-solaar.github.io/Solaar/COMMENT
LOWlib/logitech_receiver/device_quirks.py41# effects. Default-DENY allowlist: modelId -> cap_id -> set of color fieldsCOMMENT
LOWlib/logitech_receiver/hidpp10_constants.py1## Copyright (C) 2012-2013 Daniel PavelCOMMENT
LOWlib/logitech_receiver/settings_templates.py1## Copyright (C) 2012-2013 Daniel PavelCOMMENT
LOWlib/logitech_receiver/settings_templates.py101 PRESSED = "pressed"COMMENT
LOWlib/logitech_receiver/settings_templates.py121# and permit reading or writing the entire map or just one key/value pair.COMMENT
LOWlib/logitech_receiver/settings_templates.py141# There are three simple validator classes - BooleanV, RangeValidator, and ChoicesValidatorCOMMENT
LOWlib/logitech_receiver/settings_templates.py161# or None for no limitation and optionally a choices_extra class variable with an extra choice.COMMENT
LOWlib/logitech_receiver/settings_templates.py1661 label = _("Mic Mute")COMMENT
LOWlib/logitech_receiver/settings_templates.py2941# Top-level so users see a direct on/off indicator at a glance.COMMENT
LOWlib/logitech_receiver/device.py1## Copyright (C) 2012-2013 Daniel PavelCOMMENT
LOWlib/logitech_receiver/centurion.py1## Copyright (C) 2012-2013 Daniel PavelCOMMENT
LOWlib/logitech_receiver/receiver.py1## Copyright (C) 2012-2013 Daniel PavelCOMMENT
LOWlib/logitech_receiver/__init__.py1## Copyright (C) 2012-2013 Daniel PavelCOMMENT
LOWlib/logitech_receiver/base_usb.py1## Copyright (C) 2012-2013 Daniel PavelCOMMENT
LOWlib/logitech_receiver/diversion.py1## Copyright (C) 2020 Peter Patel-SchneiderCOMMENT
LOWlib/logitech_receiver/diversion.py61#COMMENT
LOWlib/logitech_receiver/descriptors.py1## Copyright (C) 2012-2013 Daniel PavelCOMMENT
LOWlib/logitech_receiver/descriptors.py161# * 00 - notification flags (all devices)COMMENT
LOWlib/logitech_receiver/descriptors.py181# USB traffic Solaar has to do to fully identify peripherals.COMMENT
LOWlib/logitech_receiver/common.py1## Copyright (C) 2012-2013 Daniel PavelCOMMENT
LOWlib/logitech_receiver/settings.py1## Copyright (C) 2012-2013 Daniel PavelCOMMENT
LOWlib/logitech_receiver/exceptions.py1## Copyright (C) 2012-2013 Daniel PavelCOMMENT
LOWlib/logitech_receiver/notifications.py1## Copyright (C) 2012-2013 Daniel PavelCOMMENT
LOWlib/logitech_receiver/i18n.py1## Copyright (C) 2012-2013 Daniel PavelCOMMENT
LOWlib/logitech_receiver/special_keys.py1## Copyright (C) 2012-2013 Daniel PavelCOMMENT
LOWlib/logitech_receiver/special_keys.py901 # Frame_Back=0xC1,COMMENT
LOWlib/logitech_receiver/advanced_para_eq.py1## Copyright (C) 2024 Solaar Contributors https://pwr-solaar.github.io/Solaar/COMMENT
LOWlib/logitech_receiver/onboard_eq.py1## Copyright (C) 2012-2013 Daniel PavelCOMMENT
LOWlib/logitech_receiver/hidpp20.py1## Copyright (C) 2012-2013 Daniel PavelCOMMENT
LOWlib/logitech_receiver/base.py1## Copyright (C) 2012-2013 Daniel PavelCOMMENT
LOWlib/logitech_receiver/base.py901# Known values in use by other tools at the time of writing:COMMENT
LOWlib/logitech_receiver/hidpp10.py1## Copyright (C) 2012-2013 Daniel PavelCOMMENT
LOWlib/logitech_receiver/listener.py1## Copyright (C) 2012-2013 Daniel PavelCOMMENT
LOWlib/logitech_receiver/logivoice.py1## Copyright (C) 2024 Solaar Contributors https://pwr-solaar.github.io/Solaar/COMMENT
LOWlib/logitech_receiver/logivoice.py101COMMENT
LOWlib/hidapi/hidconsole.py1## Copyright (C) 2012-2013 Daniel PavelCOMMENT
LOWlib/hidapi/hidapi_impl.py1## Copyright (C) 2012-2013 Daniel PavelCOMMENT
LOWlib/hidapi/udev_impl.py1## Copyright (C) 2012-2013 Daniel PavelCOMMENT
LOWlib/solaar/configuration.py1## Copyright (C) 2012-2013 Daniel PavelCOMMENT
LOWlib/solaar/tasks.py1#!/usr/bin/env python3COMMENT
LOWlib/solaar/gtk.py1#!/usr/bin/env python3COMMENT
LOWlib/solaar/dbus.py1## Copyright (C) 2012-2013 Daniel PavelCOMMENT
LOWlib/solaar/__init__.py1## Copyright (C) 2012-2013 Daniel PavelCOMMENT
LOWlib/solaar/i18n.py1## Copyright (C) 2012-2013 Daniel PavelCOMMENT
LOWlib/solaar/listener.py1## Copyright (C) 2012-2013 Daniel PavelCOMMENT
LOWlib/solaar/ui/diversion_rules.py1## Copyright (C) Solaar ContributorsCOMMENT
45 more matches not shown…
Deep Nesting113 hits · 98 pts
SeverityFileLineSnippetContext
LOWlib/logitech_receiver/rgb_power.py192CODE
LOWlib/logitech_receiver/rgb_power.py276CODE
LOWlib/logitech_receiver/rgb_power.py470CODE
LOWlib/logitech_receiver/rgb_power.py578CODE
LOWlib/logitech_receiver/rgb_power.py966CODE
LOWlib/logitech_receiver/desktop_notifications.py93CODE
LOWlib/logitech_receiver/settings_templates.py4647CODE
LOWlib/logitech_receiver/settings_templates.py4721CODE
LOWlib/logitech_receiver/settings_templates.py2759CODE
LOWlib/logitech_receiver/settings_templates.py2783CODE
LOWlib/logitech_receiver/settings_templates.py3467CODE
LOWlib/logitech_receiver/settings_templates.py3761CODE
LOWlib/logitech_receiver/settings_templates.py3902CODE
LOWlib/logitech_receiver/settings_templates.py4013CODE
LOWlib/logitech_receiver/settings_templates.py1009CODE
LOWlib/logitech_receiver/device.py261CODE
LOWlib/logitech_receiver/device.py284CODE
LOWlib/logitech_receiver/device.py414CODE
LOWlib/logitech_receiver/device.py467CODE
LOWlib/logitech_receiver/device.py517CODE
LOWlib/logitech_receiver/device.py539CODE
LOWlib/logitech_receiver/device.py594CODE
LOWlib/logitech_receiver/device.py719CODE
LOWlib/logitech_receiver/device.py755CODE
LOWlib/logitech_receiver/receiver.py579CODE
LOWlib/logitech_receiver/receiver.py298CODE
LOWlib/logitech_receiver/diversion.py292CODE
LOWlib/logitech_receiver/diversion.py1444CODE
LOWlib/logitech_receiver/diversion.py1556CODE
LOWlib/logitech_receiver/diversion.py804CODE
LOWlib/logitech_receiver/diversion.py900CODE
LOWlib/logitech_receiver/diversion.py993CODE
LOWlib/logitech_receiver/descriptors.py60CODE
LOWlib/logitech_receiver/common.py468CODE
LOWlib/logitech_receiver/common.py672CODE
LOWlib/logitech_receiver/settings.py279CODE
LOWlib/logitech_receiver/settings.py382CODE
LOWlib/logitech_receiver/settings.py483CODE
LOWlib/logitech_receiver/settings.py508CODE
LOWlib/logitech_receiver/settings.py739CODE
LOWlib/logitech_receiver/settings.py809CODE
LOWlib/logitech_receiver/settings.py843CODE
LOWlib/logitech_receiver/settings.py740CODE
LOWlib/logitech_receiver/notifications.py241CODE
LOWlib/logitech_receiver/hidpp20.py2244CODE
LOWlib/logitech_receiver/hidpp20.py151CODE
LOWlib/logitech_receiver/hidpp20.py301CODE
LOWlib/logitech_receiver/hidpp20.py486CODE
LOWlib/logitech_receiver/hidpp20.py634CODE
LOWlib/logitech_receiver/hidpp20.py794CODE
LOWlib/logitech_receiver/hidpp20.py1077CODE
LOWlib/logitech_receiver/hidpp20.py1464CODE
LOWlib/logitech_receiver/hidpp20.py1499CODE
LOWlib/logitech_receiver/hidpp20.py1771CODE
LOWlib/logitech_receiver/hidpp20.py2064CODE
LOWlib/logitech_receiver/hidpp20.py2090CODE
LOWlib/logitech_receiver/base.py672CODE
LOWlib/logitech_receiver/base.py804CODE
LOWlib/logitech_receiver/base.py866CODE
LOWlib/logitech_receiver/hidpp10.py230CODE
53 more matches not shown…
Modern Structural Boilerplate79 hits · 92 pts
SeverityFileLineSnippetContext
LOWlib/logitech_receiver/settings_new.py27logger = logging.getLogger(__name__)CODE
LOWlib/logitech_receiver/rgb_power.py38logger = logging.getLogger(__name__)CODE
LOWlib/logitech_receiver/desktop_notifications.py22logger = logging.getLogger(__name__)CODE
LOWlib/logitech_receiver/headset_rgb.py44logger = logging.getLogger(__name__)CODE
LOWlib/logitech_receiver/settings_templates.py57logger = logging.getLogger(__name__)CODE
LOWlib/logitech_receiver/device.py51logger = logging.getLogger(__name__)CODE
LOWlib/logitech_receiver/centurion.py47logger = logging.getLogger(__name__)CODE
LOWlib/logitech_receiver/receiver.py48logger = logging.getLogger(__name__)CODE
LOWlib/logitech_receiver/rgb_effects_probe.py26logger = logging.getLogger(__name__)CODE
LOWlib/logitech_receiver/__init__.py24logger = logging.getLogger(__name__)CODE
LOWlib/logitech_receiver/diversion.py59logger = logging.getLogger(__name__)CODE
LOWlib/logitech_receiver/settings.py33logger = logging.getLogger(__name__)CODE
LOWlib/logitech_receiver/notifications.py50logger = logging.getLogger(__name__)CODE
LOWlib/logitech_receiver/settings_validator.py13logger = logging.getLogger(__name__)CODE
LOWlib/logitech_receiver/advanced_para_eq.py49logger = logging.getLogger(__name__)CODE
LOW⚡lib/logitech_receiver/hidpp20.py510 def set_diverted(self, value: bool) -> None:CODE
LOW⚡lib/logitech_receiver/hidpp20.py515 def set_persistently_diverted(self, value: bool) -> None:CODE
LOW⚡lib/logitech_receiver/hidpp20.py520 def set_rawXY_reporting(self, value: bool) -> None:CODE
LOWlib/logitech_receiver/hidpp20.py60logger = logging.getLogger(__name__)CODE
LOWlib/logitech_receiver/hidpp20.py2346 def set_current(self, current: int) -> None:CODE
LOWlib/logitech_receiver/hidpp20.py2402 def set_current(self, current: int) -> None:CODE
LOWlib/logitech_receiver/base.py56logger = logging.getLogger(__name__)CODE
LOWlib/logitech_receiver/hidpp10.py32logger = logging.getLogger(__name__)CODE
LOWlib/logitech_receiver/listener.py26logger = logging.getLogger(__name__)CODE
LOWlib/logitech_receiver/logivoice.py46logger = logging.getLogger(__name__)CODE
LOWlib/hidapi/hidapi_impl.py49logger = logging.getLogger(__name__)CODE
LOWlib/hidapi/udev_impl.py51logger = logging.getLogger(__name__)CODE
LOWlib/solaar/configuration.py29logger = logging.getLogger(__name__)CODE
LOWlib/solaar/tasks.py23logger = logging.getLogger(__name__)CODE
LOWlib/solaar/gtk.py42logger = logging.getLogger(__name__)CODE
LOWlib/solaar/dbus.py23logger = logging.getLogger(__name__)CODE
LOWlib/solaar/i18n.py29logger = logging.getLogger(__name__)CODE
LOWlib/solaar/i18n.py43def set_locale_to_system_default() -> None:CODE
LOWlib/solaar/listener.py53logger = logging.getLogger(__name__)CODE
LOWlib/solaar/ui/diversion_rules.py54logger = logging.getLogger(__name__)CODE
LOWlib/solaar/ui/desktop_notifications.py26logger = logging.getLogger(__name__)CODE
LOWlib/solaar/ui/tray.py40logger = logging.getLogger(__name__)CODE
LOWlib/solaar/ui/window.py46logger = logging.getLogger(__name__)CODE
LOWlib/solaar/ui/pair_window.py31logger = logging.getLogger(__name__)CODE
LOWlib/solaar/ui/icons.py24logger = logging.getLogger(__name__)CODE
LOWlib/solaar/ui/__init__.py44logger = logging.getLogger(__name__)CODE
LOWlib/solaar/ui/common.py31logger = logging.getLogger(__name__)CODE
LOWlib/solaar/ui/config_panel.py39logger = logging.getLogger(__name__)CODE
LOWlib/solaar/ui/config_panel.py641 def set_value(self, value) -> None:CODE
LOW⚡lib/solaar/ui/about/presenter.py28 def update_version_info(self, version: str) -> None:CODE
LOW⚡lib/solaar/ui/about/presenter.py31 def update_description(self, comments: str) -> None:CODE
LOW⚡lib/solaar/ui/about/presenter.py34 def update_copyright(self, copyright_text: str) -> None:CODE
LOW⚡lib/solaar/ui/about/presenter.py37 def update_authors(self, authors: list[str]) -> None:CODE
LOW⚡lib/solaar/ui/about/presenter.py40 def update_translators(self, translators: list[str]) -> None:CODE
LOW⚡lib/solaar/ui/about/presenter.py46 def update_credits(self, credit_sections: list[tuple[str, list[str]]]) -> None:CODE
LOW⚡lib/solaar/ui/about/presenter.py58 def update_version_info(self) -> None:CODE
LOW⚡lib/solaar/ui/about/presenter.py62 def update_credits(self) -> None:CODE
LOW⚡lib/solaar/ui/about/presenter.py66 def update_description(self) -> None:CODE
LOW⚡lib/solaar/ui/about/presenter.py70 def update_copyright(self) -> None:CODE
LOW⚡lib/solaar/ui/about/presenter.py74 def update_authors(self) -> None:CODE
LOW⚡lib/solaar/ui/about/presenter.py78 def update_translators(self) -> None:CODE
LOW⚡lib/solaar/ui/about/presenter.py82 def update_website(self) -> None:CODE
LOW⚡lib/solaar/ui/about/view.py42 def update_version_info(self, version: str) -> None:CODE
LOW⚡lib/solaar/ui/about/view.py45 def update_description(self, comments: str) -> None:CODE
LOW⚡lib/solaar/ui/about/view.py51 def update_authors(self, authors: List[str]) -> None:CODE
19 more matches not shown…
Unused Imports72 hits · 63 pts
SeverityFileLineSnippetContext
LOWtests/logitech_receiver/fake_hidpp.py19CODE
LOWlib/logitech_receiver/rgb_power.py26CODE
LOWlib/logitech_receiver/headset_rgb.py36CODE
LOWlib/logitech_receiver/device_quirks.py28CODE
LOWlib/logitech_receiver/hidpp10_constants.py17CODE
LOWlib/logitech_receiver/settings_templates.py16CODE
LOWlib/logitech_receiver/device.py18CODE
LOWlib/logitech_receiver/device.py1096CODE
LOWlib/logitech_receiver/centurion_constants.py7CODE
LOWlib/logitech_receiver/centurion.py25CODE
LOWlib/logitech_receiver/receiver.py18CODE
LOWlib/logitech_receiver/rgb_effects_probe.py19CODE
LOWlib/logitech_receiver/base_usb.py30CODE
LOWlib/logitech_receiver/diversion.py17CODE
LOWlib/logitech_receiver/common.py17CODE
LOWlib/logitech_receiver/settings.py16CODE
LOWlib/logitech_receiver/notifications.py22CODE
LOWlib/logitech_receiver/settings_validator.py1CODE
LOWlib/logitech_receiver/advanced_para_eq.py42CODE
LOWlib/logitech_receiver/onboard_eq.py23CODE
LOWlib/logitech_receiver/hidpp20.py17CODE
LOWlib/logitech_receiver/hidpp20.py2414CODE
LOWlib/logitech_receiver/hidpp20.py2415CODE
LOWlib/logitech_receiver/hidpp20.py2416CODE
LOWlib/logitech_receiver/hidpp20.py2417CODE
LOWlib/logitech_receiver/hidpp20.py2418CODE
LOWlib/logitech_receiver/hidpp20.py2419CODE
LOWlib/logitech_receiver/hidpp20.py2420CODE
LOWlib/logitech_receiver/hidpp20.py2421CODE
LOWlib/logitech_receiver/hidpp20.py2422CODE
LOWlib/logitech_receiver/hidpp20.py2423CODE
LOWlib/logitech_receiver/hidpp20.py2424CODE
LOWlib/logitech_receiver/hidpp20.py2425CODE
LOWlib/logitech_receiver/hidpp20.py2426CODE
LOWlib/logitech_receiver/hidpp20.py2427CODE
LOWlib/logitech_receiver/hidpp20.py2428CODE
LOWlib/logitech_receiver/base.py19CODE
LOWlib/logitech_receiver/hidpp10.py16CODE
LOWlib/logitech_receiver/logivoice.py37CODE
LOWlib/hid_parser/__init__.py3CODE
LOWlib/hidapi/hidapi_impl.py26CODE
LOWlib/hidapi/common.py1CODE
LOWlib/hidapi/udev_impl.py26CODE
LOWlib/solaar/dbus.py17CODE
LOWlib/solaar/listener.py18CODE
LOWlib/solaar/ui/diversion_rules.py17CODE
LOWlib/solaar/ui/about/presenter.py17CODE
LOWlib/solaar/ui/about/model.py17CODE
LOWlib/solaar/ui/perkey/_icons.py26CODE
LOWlib/solaar/ui/perkey/dialog.py25CODE
LOWlib/solaar/ui/perkey/layout.py24CODE
LOWlib/solaar/ui/perkey/protocol.py23CODE
LOWlib/solaar/ui/perkey/tools.py24CODE
LOWlib/solaar/ui/perkey/control.py24CODE
LOWlib/solaar/ui/perkey/__init__.py17CODE
LOWlib/solaar/ui/perkey/__init__.py18CODE
LOWlib/solaar/ui/perkey/__init__.py19CODE
LOWlib/solaar/ui/perkey/__init__.py20CODE
LOWlib/solaar/ui/perkey/palette.py25CODE
LOWlib/solaar/ui/perkey/editor.py23CODE
12 more matches not shown…
Redundant / Tautological Comments7 hits · 14 pts
SeverityFileLineSnippetContext
LOW⚡release.sh90# Check if version is in the changelogCOMMENT
LOW⚡release.sh98# Check if commit is a version bumpCOMMENT
LOW⚡release.sh102# Check if commit has been pushed to remoteCOMMENT
LOW⚡release.sh107# Check if tag already existsCOMMENT
LOW⚡release.sh111# Check if tag already exists on remoteCOMMENT
LOWrelease.sh142 # Check if stable branch does not existCOMMENT
LOWlib/logitech_receiver/centurion.py563 # Check if any discovered feature is CentPPBridge (0x0003)COMMENT
AI Structural Patterns8 hits · 7 pts
SeverityFileLineSnippetContext
LOWlib/logitech_receiver/settings_templates.py2742CODE
LOWlib/logitech_receiver/settings_templates.py766CODE
LOWlib/logitech_receiver/diversion.py643CODE
LOWlib/logitech_receiver/diversion.py674CODE
LOWlib/logitech_receiver/descriptors.py60CODE
LOWlib/logitech_receiver/descriptors.py32CODE
LOWlib/logitech_receiver/settings_validator.py426CODE
LOWlib/solaar/ui/config_panel.py713CODE
Decorative Section Separators2 hits · 6 pts
SeverityFileLineSnippetContext
MEDIUMlib/logitech_receiver/settings_templates.py2936# ----------------------------------------------------------------------------COMMENT
MEDIUMlib/logitech_receiver/settings_templates.py2951# ----------------------------------------------------------------------------COMMENT
AI Slop Vocabulary2 hits · 4 pts
SeverityFileLineSnippetContext
MEDIUMlib/logitech_receiver/settings_templates.py3815 # multi-color overlay on top so the user gets a seamless switch.COMMENT
LOWlib/logitech_receiver/settings_templates.py271# can't just use the first byte = 0xFF (for current host) because of a bug in the firmware of the MX Keys SCOMMENT
Slop Phrases2 hits · 3 pts
SeverityFileLineSnippetContext
LOWlib/logitech_receiver/settings.py123 # make sure to save its current value for the next time.COMMENT
LOWlib/solaar/listener.py94 # because udev is not notifying us about device removal, make sure to clean up in _all_listenersCOMMENT
Self-Referential Comments2 hits · 2 pts
SeverityFileLineSnippetContext
MEDIUMlib/hidapi/udev_impl.py65 """This function is a no-op, and exists only to match the native hidapiSTRING
MEDIUMlib/hidapi/udev_impl.py74 """This function is a no-op, and exists only to match the native hidapiSTRING