Repository Analysis

metabrainz/picard

Picard is a cross-platform music tagger powered by the MusicBrainz database

21.5 Moderate AI signal View on GitHub

Analysis Overview

This report presents the forensic synthetic code analysis of metabrainz/picard, a Python project with 5,090 GitHub stars. SynthScan v2.0 examined 252,358 lines of code across 853 source files, recording 4675 pattern matches distributed across 22 syntactic categories. The overall adjusted score of 21.5 places this repository in the Moderate 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).

21.5
Adjusted Score
21.5
Raw Score
100%
Time Factor
2026-08-13
Last Push
5.1K
Stars
Python
Language
252.4K
Lines of Code
853
Files
4.7K
Pattern Hits
2026-08-13
Scan Date
0.06
HC Hit Rate

What These Metrics Mean

Adjusted Score
Primary synthetic code indicator. Raw score normalised per 1,000 lines of code and multiplied by the temporal discount factor. This is the definitive comparative metric — use it to rank repositories by AI authorship density.
Raw Score
The unmodified sum of all severity-weighted, context-multiplied pattern match scores before temporal discounting. Reflects the absolute signal strength independent of when the repository was last active.
Time Factor
The temporal discount multiplier (0–100%) applied to the raw score. Repositories last updated before ChatGPT's launch (Nov 2022) receive a 5% factor. Full signal is only assigned to repositories active in the post-adoption era (Jan 2024+).
Pattern Hits
Total count of individual pattern matches across all files and categories. A high hit count with a low score may indicate a very large codebase with isolated AI snippets; a low count with a high score indicates dense, concentrated AI signatures.
HC Hit Rate
High+Critical pattern hits per file, averaged across the repository. This orthogonal signal catches repositories where a few files are densely packed with high-severity AI tells — a strong indicator even when the normalised score appears moderate due to codebase size.
Lines of Code / Files
Total lines and files analysed. The scanner examines 94 file extensions. These denominators are used to normalise the score, enabling fair comparison between repositories of vastly different sizes.

Score History

Longitudinal tracking requires multiple scan runs. Once this repository is re-scanned after new commits land, this chart will visualise how the synthetic code signal evolves over time — enabling you to detect whether AI authorship is growing, stabilising, or being actively corrected by human engineers.

No multi-scan history yet — run the scanner again to build trend data.

Severity Breakdown

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.

CRITICAL 1HIGH 53MEDIUM 203LOW 4418

Directory Score Breakdown

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.

Pattern Findings

The scanner identified 4675 distinct pattern matches across 22 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.

Hyper-Verbose Identifiers2907 hits · 3002 pts
SeverityFileLineSnippetContext
LOWsetup.py212def py_from_ui_with_defaultdir(uifile):CODE
LOWpicard/options.py446def make_default_toolbar_layout():CODE
LOWpicard/config_upgrade_hooks.py417def convert_preserved_tags_to_list(config):CODE
LOWpicard/config_upgrade_hooks.py427def rename_whitelist_ca_provider(settings):CODE
LOWpicard/config_upgrade_hooks.py437def reset_main_splitter_states(config):CODE
LOWpicard/config_upgrade_hooks.py633def reset_options_dialog_splitters(config):CODE
LOWpicard/config_upgrade_hooks.py639def rename_toolbar_multiselect(settings):CODE
LOWpicard/config_upgrade_hooks.py645def reset_locked_header_states(config):CODE
LOWpicard/config_upgrade_hooks.py654def sanitize_replace_dir_separator(settings):CODE
LOWpicard/config_upgrade_hooks.py140 def remove_va_file_naming_format(merge=True):CODE
LOWpicard/config_upgrade_hooks.py206def rename_windows_compatible_filenames(settings):CODE
LOWpicard/config_upgrade_hooks.py212def convert_preserved_tags_separator(config):CODE
LOWpicard/config_upgrade_hooks.py240def convert_release_type_scores(config):CODE
LOWpicard/config_upgrade_hooks.py276def convert_ca_providers_to_tuples(config):CODE
LOWpicard/config_upgrade_hooks.py319def convert_tagger_scripts_to_list(config):CODE
LOWpicard/config_upgrade_hooks.py345def rename_save_only_front_images_to_tags(settings):CODE
LOWpicard/config_upgrade_hooks.py386def convert_ignore_genres_to_filter(config):CODE
LOWpicard/config_upgrade_hooks.py468def restructure_splitter_persist(config):CODE
LOWpicard/config_upgrade_hooks.py471 def upgrade_persisted_splitter(new_persist_key, key_map):CODE
LOWpicard/config_upgrade_hooks.py511def convert_naming_scripts_to_dict(config):CODE
LOWpicard/config_upgrade_hooks.py544def convert_script_exception_to_list(config):CODE
LOWpicard/config_upgrade_hooks.py558def convert_script_exceptions_with_weighting(config):CODE
LOWpicard/config_upgrade_hooks.py573def remove_acousticbrainz_from_toolbar(settings):CODE
LOWpicard/config_upgrade_hooks.py587def add_preset_naming_scripts(config):CODE
LOWpicard/config_upgrade_hooks.py667def copy_standardize_instruments_to_vocals(settings):CODE
LOWpicard/config_upgrade_hooks.py675def change_theme_system_to_default(settings):CODE
LOWpicard/config_upgrade_hooks.py693def remove_old_plugin_options(config):CODE
LOWpicard/config_upgrade_hooks.py705def lowercase_cover_art_formats(settings):CODE
LOWpicard/config_upgrade_hooks.py716def fix_matchedtracks_in_scripts(settings):CODE
LOWpicard/config_upgrade_hooks.py737def remove_persisted_column_config(config):CODE
LOWpicard/config_upgrade_hooks.py750def remove_similarity_thresholds(settings):CODE
LOWpicard/config_upgrade_hooks.py762def rename_selected_file_naming_script_id(settings):CODE
LOWpicard/config_upgrade_hooks.py782def convert_standardize_artists(settings):CODE
LOWpicard/config_upgrade_hooks.py802def convert_release_type_scores_to_lists(settings):CODE
LOWpicard/config_upgrade_hooks.py827def clamp_browser_integration_port(settings):CODE
LOWpicard/releasegroup.py73def prepare_releases_for_versions(releases):CODE
LOWpicard/config.py373 def _get_all_profile_settings(self):CODE
LOWpicard/config.py383 def _is_settings_override_active(self) -> bool:CODE
LOWpicard/config.py448 def _save_all_profile_settings(self, all_settings: dict):CODE
LOWpicard/config.py679 def _versioned_config_filename(self, version=None):CODE
LOWpicard/metadata.py568def run_album_metadata_processors(album_object: 'Album', metadata: Metadata, release_node: dict):CODE
LOWpicard/metadata.py572def run_track_metadata_processors(CODE
LOWpicard/audit.py58def list_from_prefixes_string(prefixes_string: str) -> Iterator[tuple[str, ...]]:CODE
LOWpicard/audit.py75def prefixes_candidates_for_length(CODE
LOWpicard/track.py392 def _convert_folksonomy_tags_to_genre(self):CODE
LOWpicard/track.py434 def _add_folksonomy_tags_variable(self):CODE
LOWpicard/track.py505 def _recording_request_finished(self, recording, http, error):CODE
LOWpicard/profile.py81def profile_groups_add_setting(CODE
LOWpicard/profile.py107def profile_groups_all_settings() -> set[str]:CODE
LOWpicard/profile.py111def profile_groups_update_highlights(section: str, option_name: str, highlights: Iterable[str]) -> None:CODE
LOWpicard/profile.py135def profile_groups_group_from_page(page: 'OptionsPage') -> dict | None:CODE
LOWpicard/profile.py158def profile_groups_remove_group(group: str) -> None:CODE
LOWpicard/__init__.py215 def _global_exception_handler(exctype, value, traceback):CODE
LOWpicard/album.py303 def _warn_deprecated_requests(self, operation):CODE
LOWpicard/album.py333 def iter_correctly_matched_tracks(self):CODE
LOWpicard/album.py443 def _run_album_metadata_processors(self):CODE
LOWpicard/album.py490 def _setup_release_artist_nodes(self, release_node):CODE
LOWpicard/album.py517 def _release_metadata_customization(self, metadata, release_node):CODE
LOWpicard/album.py531 def _needs_track_relationships(self, release_node):CODE
LOWpicard/album.py545 def _release_request_finished(self, document, http, error):CODE
2847 more matches not shown…
Over-Commented Block658 hits · 630 pts
SeverityFileLineSnippetContext
LOWsetup.py1#!/usr/bin/env python3COMMENT
LOWsetup.py21# Copyright (C) 2018 Kartik OhriCOMMENT
LOWrequirements-dev.txt1141 # viaCOMMENT
LOWpicard/options.py1# -*- coding: utf-8 -*-COMMENT
LOWpicard/options.py81COMMENT
LOWpicard/config_upgrade_hooks.py1# -*- coding: utf-8 -*-COMMENT
LOWpicard/config_upgrade_hooks.py81# Use one of two decorators:COMMENT
LOWpicard/config_upgrade_hooks.py101#COMMENT
LOWpicard/config_upgrade_hooks.py121# Read old option, write new option, remove old (type change / one→many):COMMENT
LOWpicard/debug_opts.py1# -*- coding: utf-8 -*-COMMENT
LOWpicard/releasegroup.py1# -*- coding: utf-8 -*-COMMENT
LOWpicard/config.py1# -*- coding: utf-8 -*-COMMENT
LOWpicard/metadata.py1# -*- coding: utf-8 -*-COMMENT
LOWpicard/metadata.py21# Copyright (C) 2022 Bob SwiftCOMMENT
LOWpicard/version.py1# -*- coding: utf-8 -*-COMMENT
LOWpicard/audit.py1# -*- coding: utf-8 -*-COMMENT
LOWpicard/similarity.py1# -*- coding: utf-8 -*-COMMENT
LOWpicard/log.py1# -*- coding: utf-8 -*-COMMENT
LOWpicard/track.py1# -*- coding: utf-8 -*-COMMENT
LOWpicard/track.py21# Copyright (C) 2018 Vishal ChoudharyCOMMENT
LOWpicard/profile.py1# -*- coding: utf-8 -*-COMMENT
LOWpicard/__init__.py1# -*- coding: utf-8 -*-COMMENT
LOWpicard/__init__.py21# modify it under the terms of the GNU General Public LicenseCOMMENT
LOWpicard/album_requests.py1# -*- coding: utf-8 -*-COMMENT
LOWpicard/album.py1# -*- coding: utf-8 -*-COMMENT
LOWpicard/album.py21# Copyright (C) 2018 Vishal ChoudharyCOMMENT
LOWpicard/matching.py1# -*- coding: utf-8 -*-COMMENT
LOWpicard/matching.py21# Copyright (C) 2022 Bob SwiftCOMMENT
LOWpicard/mbjson.py1# -*- coding: utf-8 -*-COMMENT
LOWpicard/file.py1# -*- coding: utf-8 -*-COMMENT
LOWpicard/file.py21# Copyright (C) 2016 Rahul RaturiCOMMENT
LOWpicard/tagger.py1# -*- coding: utf-8 -*-COMMENT
LOWpicard/tagger.py21# Copyright (C) 2016 Simon LegnerCOMMENT
LOWpicard/tagger.py521 if cmd == 'QUIT':COMMENT
LOWpicard/cluster.py1# -*- coding: utf-8 -*-COMMENT
LOWpicard/cluster.py21# Copyright (C) 2021 Petit MinionCOMMENT
LOWpicard/collection.py1# -*- coding: utf-8 -*-COMMENT
LOWpicard/plugin.py1# -*- coding: utf-8 -*-COMMENT
LOWpicard/plugin.py21#COMMENT
LOWpicard/config_upgrade.py1# -*- coding: utf-8 -*-COMMENT
LOWpicard/config_upgrade.py61# See config_upgrade_hooks.pyCOMMENT
LOWpicard/isrcsubmit.py1# -*- coding: utf-8 -*-COMMENT
LOWpicard/item.py1# -*- coding: utf-8 -*-COMMENT
LOWpicard/oauth.py1# -*- coding: utf-8 -*-COMMENT
LOWpicard/ui/moveable_list_view.py1# -*- coding: utf-8 -*-COMMENT
LOWpicard/ui/enums.py1# -*- coding: utf-8 -*-COMMENT
LOWpicard/ui/enums.py21# Copyright (C) 2016 Simon LegnerCOMMENT
LOWpicard/ui/playground.py1# -*- coding: utf-8 -*-COMMENT
LOWpicard/ui/theme.py1# -*- coding: utf-8 -*-COMMENT
LOWpicard/ui/tutorial.py1# -*- coding: utf-8 -*-COMMENT
LOWpicard/ui/match_icons.py1# -*- coding: utf-8 -*-COMMENT
LOWpicard/ui/util.py1# -*- coding: utf-8 -*-COMMENT
LOWpicard/ui/passworddialog.py1# -*- coding: utf-8 -*-COMMENT
LOWpicard/ui/theme_detect.py1# -*- coding: utf-8 -*-COMMENT
LOWpicard/ui/__init__.py1# -*- coding: utf-8 -*-COMMENT
LOWpicard/ui/theme_detect_qtdbus.py1# -*- coding: utf-8 -*-COMMENT
LOWpicard/ui/caa_types_selector.py1# -*- coding: utf-8 -*-COMMENT
LOWpicard/ui/cdlookup.py1# -*- coding: utf-8 -*-COMMENT
LOWpicard/ui/aboutdialog.py1# -*- coding: utf-8 -*-COMMENT
LOWpicard/ui/columns.py1# -*- coding: utf-8 -*-COMMENT
598 more matches not shown…
Decorative Section Separators105 hits · 346 pts
SeverityFileLineSnippetContext
MEDIUMpicard/config_upgrade_hooks.py79# ----------------------COMMENT
MEDIUMpicard/config_upgrade_hooks.py110# ---------------COMMENT
MEDIUMpicard/tagger.py1475 # =======================================================================COMMENT
MEDIUMpicard/tagger.py1477 # =======================================================================COMMENT
MEDIUMpicard/tagger.py1484 # =======================================================================COMMENT
MEDIUMpicard/tagger.py1486 # =======================================================================COMMENT
MEDIUMpicard/tagger.py593 # ==============================COMMENT
MEDIUMpicard/tagger.py595 # ==============================COMMENT
MEDIUMpicard/tagger.py1538 # =======================================================================COMMENT
MEDIUMpicard/tagger.py1540 # =======================================================================COMMENT
MEDIUMpicard/config_upgrade.py64# ---------------------------------------------------------------------------COMMENT
MEDIUMpicard/config_upgrade.py66# ---------------------------------------------------------------------------COMMENT
MEDIUMpicard/config_upgrade.py73# ---------------------------------------------------------------------------COMMENT
MEDIUMpicard/config_upgrade.py158# ---------------------------------------------------------------------------COMMENT
MEDIUMpicard/config_upgrade.py160# ---------------------------------------------------------------------------COMMENT
MEDIUMpicard/ui/match_icons.py45# ---------------------------------------------------------------------------COMMENT
MEDIUMpicard/ui/match_icons.py47# ---------------------------------------------------------------------------COMMENT
MEDIUMpicard/ui/match_icons.py64# ---------------------------------------------------------------------------COMMENT
MEDIUMpicard/ui/match_icons.py66# ---------------------------------------------------------------------------COMMENT
MEDIUMpicard/webservice/ratecontrol.py36# ============================================================================COMMENT
MEDIUMpicard/webservice/ratecontrol.py38# ============================================================================COMMENT
MEDIUMtest/test_match_icons.py32# ---------------------------------------------------------------------------COMMENT
MEDIUMtest/test_match_icons.py34# ---------------------------------------------------------------------------COMMENT
MEDIUMtest/session/conftest.py51# =============================================================================COMMENT
MEDIUMtest/session/conftest.py53# =============================================================================COMMENT
MEDIUMtest/session/conftest.py102# =============================================================================COMMENT
MEDIUMtest/session/conftest.py104# =============================================================================COMMENT
MEDIUMtest/session/conftest.py142# =============================================================================COMMENT
MEDIUMtest/session/conftest.py144# =============================================================================COMMENT
MEDIUMtest/session/conftest.py221# =============================================================================COMMENT
MEDIUMtest/session/conftest.py223# =============================================================================COMMENT
MEDIUMtest/session/conftest.py252# =============================================================================COMMENT
MEDIUMtest/session/conftest.py254# =============================================================================COMMENT
MEDIUMtest/session/conftest.py309# =============================================================================COMMENT
MEDIUMtest/session/conftest.py311# =============================================================================COMMENT
MEDIUMtest/session/conftest.py414# =============================================================================COMMENT
MEDIUMtest/session/conftest.py416# =============================================================================COMMENT
MEDIUMtest/session/conftest.py431# =============================================================================COMMENT
MEDIUMtest/session/conftest.py433# =============================================================================COMMENT
MEDIUMtest/session/test_data.py86# =============================================================================COMMENT
MEDIUMtest/session/test_data.py88# =============================================================================COMMENT
MEDIUMtest/session/test_data.py113# =============================================================================COMMENT
MEDIUMtest/session/test_data.py115# =============================================================================COMMENT
MEDIUMtest/session/test_data.py144# =============================================================================COMMENT
MEDIUMtest/session/test_data.py146# =============================================================================COMMENT
MEDIUMtest/session/test_data.py172# =============================================================================COMMENT
MEDIUMtest/session/test_data.py174# =============================================================================COMMENT
MEDIUMtest/session/test_data.py201# =============================================================================COMMENT
MEDIUMtest/session/test_data.py203# =============================================================================COMMENT
MEDIUMtest/session/test_data.py217# =============================================================================COMMENT
MEDIUMtest/session/test_data.py219# =============================================================================COMMENT
MEDIUMtest/session/test_data.py232# =============================================================================COMMENT
MEDIUMtest/session/test_data.py234# =============================================================================COMMENT
MEDIUMtest/session/test_data.py40# =============================================================================COMMENT
MEDIUMtest/session/test_data.py42# =============================================================================COMMENT
MEDIUMscripts/test_plugin_redirects.sh33# =============================================================================COMMENT
MEDIUMscripts/test_plugin_redirects.sh35# =============================================================================COMMENT
MEDIUMscripts/test_plugin_redirects.sh68# =============================================================================COMMENT
MEDIUMscripts/test_plugin_redirects.sh70# =============================================================================COMMENT
MEDIUMscripts/test_plugin_redirects.sh103# =============================================================================COMMENT
45 more matches not shown…
Self-Referential Comments78 hits · 272 pts
SeverityFileLineSnippetContext
MEDIUMpicard/tagger.py278 # Initialize these variables early as they are needed for a cleanCOMMENT
MEDIUMpicard/ui/formattedtextdelegate.py96 # Create a QTextDocument to render the formatted textCOMMENT
MEDIUMpicard/ui/formattedtextdelegate.py128 # Create a QTextDocument to render the formatted textCOMMENT
MEDIUMpicard/ui/mainwindow/__init__.py1955 # Create a temporary file list which allows changing cover art for all selected filesCOMMENT
MEDIUMpicard/ui/itemviews/__init__.py119 # Create a layout for each view to include the filter boxCOMMENT
MEDIUMpicard/ui/itemviews/custom_columns/manager_dialog.py458 # Create a placeholder specification with blank expressionCOMMENT
MEDIUMpicard/ui/itemviews/custom_columns/storage.py269 # Create a mapping of class name strings to actual classesCOMMENT
MEDIUMpicard/ui/statusindicator/unity.py73 # Create the signal message manually.COMMENT
MEDIUMpicard/ui/widgets/scripttextedit.py419 # Initialize dynamic variables from current (possibly empty) script content.COMMENT
MEDIUMpicard/ui/widgets/scripttextedit.py507 # Create a new data object, as modifying the existing one does notCOMMENT
MEDIUMpicard/util/textencoding.py64# This module provides utility functions to enable simplification of latin and punctuation unicode:COMMENT
MEDIUMpicard/profiles/importer.py129 # Create a new profileCOMMENT
MEDIUMpicard/plugin3/categories.py90 # Create a list of (key, translated_title) tuplesCOMMENT
MEDIUMpicard/git/backends/pygit2.py454 # Create a new HEAD that points directly to the commitCOMMENT
MEDIUMpicard/session/session_loader.py729 # The following block of methods are retained for scheduling and lifecycle.COMMENT
MEDIUMtest/test_textencoding.py297 # The following code set blocks are taken from:COMMENT
MEDIUMtest/test_profile_import.py290 # Create an existing profile with the same titleSTRING
MEDIUMtest/test_git.py206 # Create a local git repository with tagsCOMMENT
MEDIUMtest/test_profiles.py479 # Create an option without in_profileCOMMENT
MEDIUMtest/test_custom_columns.py286 # Create an object that will fail obj.column but have metadataCOMMENT
MEDIUMtest/test_itemviews_match_quality.py757 # Create a mock delegate columnCOMMENT
MEDIUMtest/test_itemviews_match_quality.py761 # Create a mock itemCOMMENT
MEDIUMtest/plugins3/test_registry.py325 # Create a fake local plugin directory with .gitCOMMENT
MEDIUMtest/plugins3/test_plugin.py162 # Create a test git repoCOMMENT
MEDIUMtest/plugins3/test_plugin.py185 # Create a test git repo with a tagCOMMENT
MEDIUMtest/plugins3/test_plugin.py190 # Create a tagCOMMENT
MEDIUMtest/plugins3/test_git.py117 # Create a tagCOMMENT
MEDIUMtest/plugins3/test_git.py126 # Create a dev branch with different contentCOMMENT
MEDIUMtest/plugins3/test_git.py150 # Create a lightweight tag (just a reference, no tag object)COMMENT
MEDIUMtest/plugins3/test_git.py280 # Create a dev branch in sourceCOMMENT
MEDIUMtest/plugins3/test_git.py305 # Create a tag in sourceCOMMENT
MEDIUMtest/plugins3/test_git.py441 # Create a v1.0.0 tagCOMMENT
MEDIUMtest/plugins3/test_local_non_git_plugin.py169 # Create a fake .git directoryCOMMENT
MEDIUMtest/plugins3/test_update.py646 # Create a new commit on mainCOMMENT
MEDIUMtest/plugins3/test_api.py283 # Create a temporary config fileCOMMENT
MEDIUMtest/plugins3/test_api.py288 # Create a real QSettings instanceCOMMENT
MEDIUMtest/plugins3/test_api.py477 # Create a temporary config fileCOMMENT
MEDIUMtest/plugins3/test_api.py482 # Create a real QSettings instanceCOMMENT
MEDIUMtest/plugins3/test_api.py245 # Create a real handler that captures messagesCOMMENT
MEDIUMtest/plugins3/test_api.py308 # Create a new settings instance to verify persistenceCOMMENT
MEDIUMtest/plugins3/test_manager.py458 # Create a mock manifestCOMMENT
MEDIUMtest/plugins3/test_manager.py975 # Create a plugin that will fail to loadCOMMENT
MEDIUMtest/plugins3/test_manager.py133 # Create a file in temp1 to ensure recursive cleanupCOMMENT
MEDIUMtest/plugins3/test_manager.py835 # Create a nested structure with a read-only file, similar to .git pack filesCOMMENT
MEDIUMtest/plugins3/test_manager.py873 # Create a mock plugin with UUIDCOMMENT
MEDIUMtest/plugins3/test_cli.py194 # Create a temporary git repositoryCOMMENT
MEDIUMtest/plugins3/test_cli.py294 # Create a real temporary configCOMMENT
MEDIUMtest/plugins3/test_install.py323 # Create a temporary plugin directory and config fileCOMMENT
MEDIUMtest/plugins3/test_install.py330 # Create a real temporary configCOMMENT
MEDIUMtest/plugins3/test_install.py248 # Create a fake existing plugin directory with UUID-based nameCOMMENT
MEDIUMtest/plugins3/test_install.py286 # Create a fake existing plugin directory with UUID-based nameCOMMENT
MEDIUMtest/formats/test_registry.py370 # Create a temp file with MOCK headerCOMMENT
MEDIUMtest/formats/test_registry.py388 # Create a temp file without MOCK headerCOMMENT
MEDIUMtest/formats/test_registry.py404 # Create a temp file with MOCK headerCOMMENT
MEDIUMtest/formats/test_vorbis.py164 # Create a test file that contains only disctotal / tracktotal,COMMENT
MEDIUMtest/formats/test_id3.py308 # Create a COMM frame with iTunes_CDDB_1 descriptorCOMMENT
MEDIUMtest/script_text_edit/test_script_completer.py223 # Create a custom mock class that handles __bool__ properlyCOMMENT
MEDIUMtest/script_text_edit/test_script_completer.py499 # Create a large script with many $set statementsCOMMENT
MEDIUMtest/script_text_edit/test_script_completer.py549 # Create a mock function with invalid structureCOMMENT
MEDIUMtest/script_text_edit/test_variable_extractor.py278 # Create a long script with many variablesSTRING
18 more matches not shown…
Deep Nesting259 hits · 226 pts
SeverityFileLineSnippetContext
LOWsetup.py230CODE
LOWpicard/config_upgrade_hooks.py136CODE
LOWpicard/releasegroup.py123CODE
LOWpicard/config.py298CODE
LOWpicard/config.py610CODE
LOWpicard/metadata.py126CODE
LOWpicard/metadata.py163CODE
LOWpicard/track.py414CODE
LOWpicard/profile.py158CODE
LOWpicard/album.py277CODE
LOWpicard/album.py545CODE
LOWpicard/album.py767CODE
LOWpicard/album.py833CODE
LOWpicard/album.py989CODE
LOWpicard/album.py1106CODE
LOWpicard/matching.py212CODE
LOWpicard/matching.py530CODE
LOWpicard/matching.py598CODE
LOWpicard/matching.py654CODE
LOWpicard/mbjson.py222CODE
LOWpicard/mbjson.py794CODE
LOWpicard/mbjson.py810CODE
LOWpicard/mbjson.py885CODE
LOWpicard/mbjson.py906CODE
LOWpicard/mbjson.py951CODE
LOWpicard/file.py797CODE
LOWpicard/file.py931CODE
LOWpicard/file.py1087CODE
LOWpicard/tagger.py514CODE
LOWpicard/tagger.py903CODE
LOWpicard/tagger.py985CODE
LOWpicard/tagger.py1052CODE
LOWpicard/tagger.py1263CODE
LOWpicard/cluster.py279CODE
LOWpicard/cluster.py352CODE
LOWpicard/config_upgrade.py206CODE
LOWpicard/isrcsubmit.py257CODE
LOWpicard/ui/playground.py160CODE
LOWpicard/ui/util.py291CODE
LOWpicard/ui/util.py135CODE
LOWpicard/ui/theme_detect.py73CODE
LOWpicard/ui/theme_detect.py114CODE
LOWpicard/ui/tagsfromfilenames.py52CODE
LOWpicard/ui/scriptsmenu.py75CODE
LOWpicard/ui/isrcsubmitdialog.py37CODE
LOWpicard/ui/options/plugins.py188CODE
LOWpicard/ui/options/dialog.py208CODE
LOWpicard/ui/options/dialog.py540CODE
LOWpicard/ui/options/dialog.py592CODE
LOWpicard/ui/options/dialog.py700CODE
LOWpicard/ui/options/dialog.py1113CODE
LOWpicard/ui/options/interface_quick_menu.py78CODE
LOWpicard/ui/options/interface_quick_menu.py134CODE
LOWpicard/ui/options/profiles.py256CODE
LOWpicard/ui/options/profiles.py496CODE
LOWpicard/ui/options/profiles.py664CODE
LOWpicard/ui/options/profiles.py858CODE
LOWpicard/ui/options/interface_toolbar.py230CODE
LOWpicard/ui/mainwindow/__init__.py734CODE
LOWpicard/ui/mainwindow/__init__.py1434CODE
199 more matches not shown…
Excessive Try-Catch Wrapping188 hits · 198 pts
SeverityFileLineSnippetContext
LOWpicard/config.py290 except Exception as why:CODE
LOWpicard/track.py513 except Exception:CODE
LOWpicard/album.py582 except Exception:CODE
MEDIUMpicard/file.py211def _fast_hash(self):CODE
LOWpicard/file.py198 except Exception as e:CODE
LOWpicard/file.py203 except Exception as e:CODE
LOWpicard/file.py218 except Exception as e:CODE
LOWpicard/tagger.py1370 except Exception:CODE
LOWpicard/tagger.py1432 except Exception as e:CODE
LOWpicard/oauth.py199 except Exception as e:CODE
LOWpicard/oauth.py328 except Exception as e:CODE
LOWpicard/oauth.py368 except Exception as e:CODE
LOWpicard/oauth.py396 except Exception as e:CODE
LOWpicard/ui/theme_detect_qtdbus.py57 except Exception: # noqa: BLE001CODE
LOWpicard/ui/options/plugins.py222 except Exception as e:CODE
LOWpicard/ui/options/plugins.py260 except Exception as e:CODE
LOWpicard/ui/options/plugins.py375 except Exception as e:CODE
MEDIUMpicard/ui/options/plugins.py232def on_registry_refreshed(success, error):CODE
LOWpicard/ui/options/dialog.py684 except Exception as e:CODE
LOWpicard/ui/options/dialog.py488 except Exception:CODE
LOWpicard/ui/options/dialog.py871 except Exception as e:CODE
LOWpicard/ui/options/dialog.py881 except Exception as e:CODE
LOWpicard/ui/options/dialog.py897 except Exception as e:CODE
LOWpicard/ui/options/dialog.py940 except Exception as e:CODE
LOWpicard/ui/options/scripting.py280 except Exception as e:CODE
LOWpicard/ui/mainwindow/__init__.py2382 except Exception as ex:CODE
LOWpicard/ui/itemviews/basetreeview.py373 except Exception:CODE
LOWpicard/ui/itemviews/custom_columns/registry.py130 except Exception:CODE
LOWpicard/ui/itemviews/custom_columns/registry.py173 except Exception:CODE
LOWpicard/ui/searchdialog/album.py328 except Exception as e:CODE
LOWpicard/ui/scripteditor/__init__.py1000 except Exception as e:CODE
LOWpicard/ui/metadatabox/__init__.py507 except Exception as e:CODE
LOWpicard/ui/metadatabox/__init__.py647 except Exception:CODE
LOWpicard/ui/metadatabox/__init__.py654 except Exception:CODE
MEDIUMpicard/ui/metadatabox/__init__.py539def _paste_from_json(self, mimedata):CODE
LOWpicard/ui/statusindicator/__init__.py85 except Exception as err:CODE
LOWpicard/ui/statusindicator/__init__.py94 except Exception as err:CODE
LOWpicard/ui/statusindicator/windows.py54 except Exception as err:CODE
LOWpicard/ui/dialogs/installconfirm.py174 except Exception:CODE
LOWpicard/ui/dialogs/installconfirm.py191 except Exception:CODE
LOWpicard/ui/dialogs/installplugin.py346 except Exception as e:CODE
LOWpicard/ui/dialogs/installplugin.py439 except Exception as e:CODE
LOWpicard/ui/dialogs/installplugin.py508 except Exception as e:CODE
LOWpicard/ui/dialogs/installplugin.py544 except Exception as e:CODE
LOWpicard/ui/dialogs/plugininfo.py240 except Exception:CODE
LOWpicard/ui/widgets/pluginlistwidget.py293 except Exception:CODE
LOWpicard/ui/widgets/pluginlistwidget.py336 except Exception:CODE
LOWpicard/ui/widgets/pluginlistwidget.py511 except Exception as e:CODE
LOWpicard/ui/widgets/pluginlistwidget.py697 except Exception as e:CODE
LOWpicard/ui/widgets/pluginlistwidget.py808 except Exception:CODE
LOWpicard/ui/widgets/pluginlistwidget.py820 except Exception as e:CODE
LOWpicard/ui/widgets/pluginlistwidget.py1033 except Exception as e:CODE
LOWpicard/ui/widgets/plugindetailswidget.py158 except Exception:CODE
LOWpicard/ui/widgets/plugindetailswidget.py278 except Exception:CODE
LOWpicard/ui/widgets/plugindetailswidget.py365 except Exception as e:CODE
LOWpicard/ui/player/__init__.py101 except Exception as err:CODE
LOWpicard/formats/registry.py127 except Exception as e:CODE
LOWpicard/formats/registry.py163 except Exception as e:CODE
LOWpicard/util/thread.py180 except Exception:CODE
MEDIUMpicard/util/thread.py112def run(self):CODE
128 more matches not shown…
Unused Imports230 hits · 195 pts
SeverityFileLineSnippetContext
LOWpicard/metadata.py60CODE
LOWpicard/metadata.py61CODE
LOWpicard/metadata.py62CODE
LOWpicard/track.py96CODE
LOWpicard/profile.py40CODE
LOWpicard/matching.py64CODE
LOWpicard/mbjson.py31CODE
LOWpicard/mbjson.py65CODE
LOWpicard/mbjson.py66CODE
LOWpicard/mbjson.py68CODE
LOWpicard/mbjson.py69CODE
LOWpicard/file.py126CODE
LOWpicard/file.py128CODE
LOWpicard/file.py129CODE
LOWpicard/tagger.py196CODE
LOWpicard/cluster.py76CODE
LOWpicard/config_upgrade.py329CODE
LOWpicard/config_upgrade.py403CODE
LOWpicard/item.py54CODE
LOWpicard/item.py56CODE
LOWpicard/ui/options/dialog.py81CODE
LOWpicard/ui/options/dialog.py81CODE
LOWpicard/ui/options/dialog.py81CODE
LOWpicard/ui/options/dialog.py81CODE
LOWpicard/ui/options/dialog.py81CODE
LOWpicard/ui/options/dialog.py81CODE
LOWpicard/ui/options/dialog.py81CODE
LOWpicard/ui/options/dialog.py81CODE
LOWpicard/ui/options/dialog.py81CODE
LOWpicard/ui/options/dialog.py81CODE
LOWpicard/ui/options/dialog.py81CODE
LOWpicard/ui/options/dialog.py81CODE
LOWpicard/ui/options/dialog.py81CODE
LOWpicard/ui/options/dialog.py81CODE
LOWpicard/ui/options/dialog.py81CODE
LOWpicard/ui/options/dialog.py81CODE
LOWpicard/ui/options/dialog.py81CODE
LOWpicard/ui/options/dialog.py81CODE
LOWpicard/ui/options/dialog.py81CODE
LOWpicard/ui/options/dialog.py81CODE
LOWpicard/ui/options/dialog.py81CODE
LOWpicard/ui/options/dialog.py81CODE
LOWpicard/ui/options/dialog.py81CODE
LOWpicard/ui/options/dialog.py81CODE
LOWpicard/ui/options/dialog.py81CODE
LOWpicard/ui/options/dialog.py81CODE
LOWpicard/ui/options/dialog.py81CODE
LOWpicard/ui/options/dialog.py81CODE
LOWpicard/ui/options/dialog.py81CODE
LOWpicard/ui/options/dialog.py81CODE
LOWpicard/ui/options/dialog.py81CODE
LOWpicard/ui/options/dialog.py81CODE
LOWpicard/ui/options/dialog.py81CODE
LOWpicard/ui/options/dialog.py121CODE
LOWpicard/ui/itemviews/custom_columns/resolve.py27CODE
LOWpicard/ui/itemviews/custom_columns/__init__.py23CODE
LOWpicard/ui/itemviews/custom_columns/__init__.py23CODE
LOWpicard/ui/itemviews/custom_columns/__init__.py23CODE
LOWpicard/ui/itemviews/custom_columns/__init__.py28CODE
LOWpicard/ui/itemviews/custom_columns/__init__.py28CODE
170 more matches not shown…
Cross-Language Confusion26 hits · 150 pts
SeverityFileLineSnippetContext
HIGHpicard/ui/coverartbox/coverartthumbnail.py148 log.debug("Dropped %s url (with %d bytes of data)", url.toString(), len(dropped_data or ''))CODE
HIGHpicard/ui/coverartbox/__init__.py310 log.debug('Fetched remote image with MIME-Type %s from %s', mime, url.toString())CODE
HIGHpicard/ui/coverartbox/__init__.py325 log.debug('Possible Google images result, trying to fetch imgurl=%s', url.toString())CODE
HIGHpicard/ui/coverartbox/__init__.py330 log.debug('Possible Bing images result, trying to fetch imgurl=%s', url.toString())CODE
HIGHpicard/ui/coverartbox/__init__.py354 log.debug("Trying URL parsed from HTML: %s", url.toString())CODE
HIGHpicard/ui/coverartbox/__init__.py365 coverartimage = CoverArtImage(url=url.toString(), types=['front'], data=data)CODE
HIGHpicard/coverart/image.py265 return "%s: %s" % (self.sourceprefix, self.url.toString())CODE
HIGHpicard/coverart/image.py305 yield "url=%r" % self.url.toString()CODE
HIGHpicard/coverart/image.py320 yield "from %s" % self.url.toString()CODE
HIGHpicard/util/__init__.py543 run_executable('xdg-open', url.toString())CODE
HIGHpicard/util/mbserver.py75 return url.toString()CODE
HIGHpicard/webservice/__init__.py890 log.debug("Retrying without authentication: %s", url.toString())CODE
HIGHpicard/webservice/__init__.py893 log.debug("Cannot retry without authentication: %s", url.toString())CODE
HIGHpicard/plugin3/cli.py2091 commit_cmd = 'git add -A && git commit -m "Initial plugin scaffold"'CODE
HIGHtest/test_coverart_image.py529 self.assertEqual(image.url.toString(), 'file://' + path)CODE
HIGHtest/test_log.py80 self.item_queue.push(MockLogItem(i))CODE
HIGHtest/test_log.py89 self.item_queue.push(MockLogItem(i))CODE
HIGHtest/test_log.py98 self.item_queue.push(MockLogItem(i))CODE
HIGHtest/test_log.py104 self.item_queue.push(MockLogItem(10))CODE
HIGHtest/test_log.py124 self.item_queue.push(MockLogItem(4))CODE
HIGHtest/test_log.py125 self.item_queue.push(MockLogItem(5))CODE
HIGHtest/test_log.py126 self.item_queue.push(MockLogItem(11))CODE
HIGHtest/test_webservice_api_helpers_musicbrainz.py59 self.assertTrue(url.toString().startswith("https://mb.org/"))CODE
HIGHtest/plugins3/test_registry.py554 url_str = url.toString()CODE
HIGHtest/plugins3/test_registry.py586 calls.append(url.toString())CODE
HIGHtest/plugins3/test_registry.py613 calls.append(url.toString())CODE
Redundant / Tautological Comments80 hits · 116 pts
SeverityFileLineSnippetContext
LOWpicard/config.py584 # Check if there is a config file specifically for this versionCOMMENT
LOWpicard/isrcsubmit.py273 # Check if the ISRC is already assigned to another track on this releaseCOMMENT
LOWpicard/ui/filter.py136 # Check if selected filters were removed and re-apply the filterCOMMENT
LOWpicard/ui/options/plugins.py201 # Check if the update is still valid (current commit == old_commit from update info)COMMENT
LOWpicard/ui/options/dialog.py212 # Check if this is a plugin option page and if the plugin is enabledCOMMENT
LOWpicard/ui/options/dialog.py623 # Check if value actually differs from baseCOMMENT
LOWpicard/ui/options/dialog.py1104 # Check if any other enabled profile has itCOMMENT
LOWpicard/ui/options/profiles.py683 # Check if the file contains a profile UUID that already exists in the dialogCOMMENT
LOWpicard/ui/mainwindow/__init__.py2380 action.setParent(self.plugin_tools_menu) # Set parent to keep action aliveCODE
LOWpicard/ui/itemviews/basetreeview.py371 action.setParent(action_menu) # Set parent to keep action aliveCODE
LOWpicard/ui/itemviews/custom_columns/registry.py149 # Check if this widget uses our target columnsCOMMENT
LOWpicard/ui/itemviews/custom_columns/validation.py211 # Check if key already exists in contextCOMMENT
LOWpicard/ui/infodialog/dialog.py172 # Check if this object contains the tribute trackCOMMENT
LOWpicard/ui/infodialog/dialog.py373 # Check if this function isn't triggered by cell in Type columnCOMMENT
LOWpicard/ui/widgets/context_detector.py130 # Check if there's a complete variable before the %%COMMENT
LOWpicard/ui/widgets/context_detector.py158 # Check if we're in the first argument (no comma yet) and not closedCOMMENT
LOWpicard/ui/widgets/context_detector.py219 # Check if it's a valid partial function name (alphanumeric/underscore characters)COMMENT
LOWpicard/ui/widgets/context_detector.py235 # Check if it's a valid partial variable name (alphanumeric/underscore characters)COMMENT
LOWpicard/ui/widgets/pluginlistwidget.py342 # Check if user has previously unchecked this pluginCOMMENT
LOWpicard/ui/widgets/scripttextedit.py255 # Check if user scripts have changed and rescan if neededCOMMENT
LOWpicard/ui/widgets/scripttextedit.py571 # Check if this is a tag-name functionCOMMENT
LOWpicard/ui/widgets/scripttextedit.py695 # Check if we should show the popup based on current contextCOMMENT
LOWpicard/ui/widgets/plugindetailswidget.py304 # Check if plugin is in do_not_update list and ask for confirmationCOMMENT
LOWpicard/ui/widgets/plugindetailswidget.py344 # Check if parent has a plugin_list attributeCOMMENT
LOWpicard/formats/registry.py152 # Read file header for format detectionCOMMENT
LOWpicard/util/checkupdate.py131 # Display results to user.COMMENT
LOWpicard/extension_points/__init__.py125 # Check if any enabled UUID maps to this module nameCOMMENT
LOWpicard/webservice/__init__.py539 # Check if task was aborted before startingCOMMENT
LOWpicard/plugin3/plugin_metadata.py369 # Check if current commit matches a tag (prefer tag over branch)COMMENT
LOWpicard/plugin3/cli.py844 # Check if already installed first (unless reinstalling)COMMENT
LOWpicard/plugin3/cli.py846 # Check if any loaded plugin has this URLCOMMENT
LOWpicard/plugin3/cli.py428 # Check if local non-git pluginCOMMENT
LOWpicard/plugin3/cli.py623 # Check if this is a local non-git pluginCOMMENT
LOWpicard/plugin3/cli.py773 # Check if it's a plugin ID (no slashes, no protocol)COMMENT
LOWpicard/plugin3/cli.py827 # Check if this URL is in the registry (possibly via redirect_from)COMMENT
LOWpicard/plugin3/cli.py940 # Check if installing from dirty local git repositoryCOMMENT
LOWpicard/plugin3/cli.py998 # Check if this is a failed plugin (no manifest)COMMENT
LOWpicard/plugin3/cli.py1331 # Check if plugin config existsCOMMENT
LOWpicard/plugin3/cli.py1385 # Check if it's a failed plugin directory nameCOMMENT
LOWpicard/plugin3/cli.py1402 # Check if url is a local directoryCOMMENT
LOWpicard/plugin3/cli.py2104 # Check if it's an installed pluginCOMMENT
LOWpicard/plugin3/cli.py2114 # Check if it's a local directoryCOMMENT
LOWpicard/plugin3/plugin.py265 # Check if it's a repository-level 404/not found error (not branch-level)COMMENT
LOWpicard/plugin3/plugin.py407 # Check if currently on a tagCOMMENT
LOWpicard/plugin3/plugin.py442 # Set resolved_ref_type to indicate this is a tagCOMMENT
LOWpicard/plugin3/plugin.py720 # Check if there's an existing API instance (from UI components)COMMENT
LOWpicard/plugin3/manager/update.py182 # Check if plugin is blacklisted (by current or redirected URL/UUID)COMMENT
LOWpicard/plugin3/manager/update.py187 # Check if plugin has versioning_scheme and current ref is a version tagCOMMENT
LOWpicard/plugin3/manager/__init__.py273 # Check if we have an installed plugin for this URL to reuse its repositoryCOMMENT
LOWpicard/plugin3/manager/lifecycle.py338 # Check if plugin is from registry (has known git URL)COMMENT
LOWpicard/plugin3/manager/install.py92 # Check if url is a local directory (git or plain)COMMENT
LOWpicard/plugin3/manager/install.py231 # Check if already installed from this pathCOMMENT
LOWpicard/git/ops.py157 # Check if ref exists in remoteCOMMENT
LOWpicard/git/ops.py341 # Check if we're switching to a remote branchCOMMENT
LOWpicard/git/utils.py45 # Check if it's a local path (not a remote protocol)COMMENT
LOWpicard/git/backends/pygit2.py208 # Check if there's a ^{} versionCOMMENT
LOWpicard/git/backends/pygit2.py263 # Check if it's an annotated tag and dereference to commitCOMMENT
LOWpicard/git/backends/pygit2.py472 # Check if we can use an existing repositoryCOMMENT
LOWpicard/session/session_exporter.py312 # Check if this album has any files matched to itCOMMENT
LOWtest/test_theme.py402 # Set config to SYSTEMCOMMENT
20 more matches not shown…
Docstring Block Structure14 hits · 70 pts
SeverityFileLineSnippetContext
HIGHpicard/config.py305Register an option in this config section. The option type is determined by the type of the default value. STRING
HIGHpicard/config.py457Register an option in this config section. Extends the base class method with profile support. Args: STRING
HIGHpicard/log.py281Log a debug message only if the specified debug option is enabled. Can also be used as a guard that returns a callaSTRING
HIGHpicard/util/emptydir.py50 Checks if a directory is considered empty. Args: path: Path to directory to check. ignored_filSTRING
HIGHpicard/util/checkupdate.py58Checks if an update is available. Compares the version number of the currently running instance of Picard STRING
HIGHpicard/util/__init__.py1106Parses a string and interprets it as a matching pattern. - If pattern is of the form /pattern/flags it is interpretSTRING
HIGHpicard/util/__init__.py1353Converts text to title case following word boundary rules. Capitalizes the first character of each word in the inpuSTRING
HIGHpicard/profiles/importer.py78Import a profile from a TOML string. Args: config: The application Config object. toml_string: The STRING
HIGHpicard/plugin3/api_impl.py224Log a debug message only if the specified debug option is enabled. Can also be used as a guard that returns a cSTRING
HIGHpicard/plugin3/validation.py48Read MANIFEST.toml from path and validate it. Args: path: Directory path containing MANIFEST.toml STRING
HIGHpicard/plugin3/validation.py76Get plugin UUID, raising PluginNoUUIDError if not available. Args: plugin: Plugin object RSTRING
HIGHpicard/git/ops.py61Check if git working directory has uncommitted changes. Args: path: Path to git repository STRING
HIGHpicard/git/ops.py108Validate that a ref exists in the repository. Args: url: Git repository URL ref: Git reSTRING
HIGHpicard/git/ops.py214Switch plugin to a different git ref (branch/tag/commit). Args: plugin: Plugin to switch STRING
Cross-File Repetition13 hits · 65 pts
SeverityFileLineSnippetContext
HIGHpicard/formats/apev2.py0remove the tags from the file that were deleted in the uiSTRING
HIGHpicard/formats/vorbis.py0remove the tags from the file that were deleted in the uiSTRING
HIGHpicard/formats/mp4.py0remove the tags from the file that were deleted in the uiSTRING
HIGHpicard/formats/asf.py0remove the tags from the file that were deleted in the uiSTRING
HIGHtest/script_text_edit/test_script_completer.py0$set(_leading_underscore, "value") $set(trailing_underscore_, "value") $set(_both_underscores_, "value") $set(multiple__STRING
HIGHtest/script_text_edit/test_regex_fallback.py0$set(_leading_underscore, "value") $set(trailing_underscore_, "value") $set(_both_underscores_, "value") $set(multiple__STRING
HIGHtest/script_text_edit/test_ast_parsing.py0$set(_leading_underscore, "value") $set(trailing_underscore_, "value") $set(_both_underscores_, "value") $set(multiple__STRING
HIGHtest/script_text_edit/test_script_completer.py0test regex behavior with %variable% syntax in $set statements.STRING
HIGHtest/script_text_edit/test_ast_parsing.py0test regex behavior with %variable% syntax in $set statements.STRING
HIGHtest/script_text_edit/test_regex_fallback.py0test regex behavior with %variable% syntax in $set statements.STRING
HIGHtest/script_text_edit/test_script_completer.py0$set(%variable%, "value") $set(%artist%, "value") $set(regular_var, "value")STRING
HIGHtest/script_text_edit/test_regex_fallback.py0$set(%variable%, "value") $set(%artist%, "value") $set(regular_var, "value")STRING
HIGHtest/script_text_edit/test_ast_parsing.py0$set(%variable%, "value") $set(%artist%, "value") $set(regular_var, "value")STRING
Modern Structural Boilerplate39 hits · 38 pts
SeverityFileLineSnippetContext
LOWpicard/log.py79def set_verbosity(level: int) -> None:CODE
LOWpicard/isrcsubmit.py109 def _update_entry(self, file, recording_id: str, new_isrcs: set[NormalizedISRC]) -> None:CODE
LOWpicard/ui/playground.py89 def set_description(self, description: str, match_meaning: str, skip_meaning: str) -> None:CODE
LOWpicard/ui/playground.py113 def set_error(self, message: str) -> None:CODE
LOWpicard/ui/theme.py148def set_color_scheme(color_scheme: QtCore.Qt.ColorScheme) -> None:CODE
LOWpicard/ui/__init__.py291 def set_window_title(self, title: str) -> None:CODE
LOWpicard/ui/setupwizard.py105 def set_checked(self, checked: bool) -> None:STRING
LOWpicard/ui/setupwizard.py242 def _update_move_to_state(self, checked: bool) -> None:CODE
LOWpicard/ui/options/dialog.py1181 def _update_profile_markers(self, pkey: str) -> None:CODE
LOWpicard/ui/mainwindow/__init__.py2343 def _set_profile_enabled(self, profile_id: str, enabled: bool) -> None:CODE
LOWpicard/ui/itemviews/custom_columns/view_selector.py69 def set_selected(self, view_ids: set[str]) -> None:CODE
LOWpicard/ui/itemviews/custom_columns/manager_dialog.py631 def _update_apply(self) -> None:CODE
LOWpicard/ui/itemviews/custom_columns/manager_dialog.py642 def _update_form_actions(self) -> None:CODE
LOWpicard/ui/itemviews/custom_columns/spec_list_model.py110 def set_specs(self, specs: list[CustomColumnSpec]) -> None:CODE
LOWpicard/ui/itemviews/custom_columns/spec_list_model.py140 def update_spec(self, row: int, spec: CustomColumnSpec) -> None:CODE
LOWpicard/ui/itemviews/custom_columns/__init__.py59__all__ = [CODE
LOW…ard/ui/itemviews/custom_columns/column_form_handler.py85 def set_enabled(self, enabled: bool) -> None:CODE
LOWpicard/ui/itemviews/custom_columns/column.py224 def set_header_icon_size(self, width: int, height: int, border: int) -> None:CODE
LOWpicard/ui/widgets/preferencelistwidget.py65 def _setup_ui(self) -> None:CODE
LOWpicard/ui/widgets/preferencelistwidget.py118 def set_available_items(self, items: dict[str, str]) -> None:CODE
LOWpicard/ui/widgets/preferencelistwidget.py123 def set_selected_keys(self, keys: list[str]) -> None:CODE
LOWpicard/ui/widgets/preferencelistwidget.py149 def set_excluded_keys(self, keys: set[str]) -> None:CODE
LOWpicard/ui/widgets/preferencelistwidget.py241 def _update_buttons(self) -> None:CODE
LOWpicard/ui/widgets/scripttextedit.py728 def _update_completion_context(self, text_cursor: QTextCursor) -> None:CODE
LOWpicard/formats/__init__.py63__all__ = [CODE
LOWpicard/coverart/image.py373 def set_data(self, data: bytes) -> None:CODE
LOWpicard/coverart/image.py397 def set_external_file_data(self, data: bytes) -> None:CODE
LOWpicard/extension_points/__init__.py140def set_plugin_uuid(uuid: str, module_name: str) -> None:CODE
LOWpicard/webservice/api_helpers/__init__.py30__all__ = [CODE
LOWpicard/i18n/__init__.py44__all__ = [CODE
LOWpicard/plugin3/__init__.py29__all__ = [CODE
LOWpicard/plugin3/api.py46__all__ = [CODE
LOWpicard/plugin3/asyncops/__init__.py41__all__ = [CODE
LOWpicard/git/__init__.py44__all__ = [CODE
LOWpicard/session/session_loader.py357 def set_expansions() -> None:CODE
LOWtest/test_coverart_details_option.py110 def update_display(self, force: bool = False) -> None:CODE
LOWtest/test_coverartbox_info.py118 def update_display(self, force: bool = False) -> None:CODE
LOWtest/script_text_edit/test_scripttextedit_highlight.py80 def set_items(self, items: Iterable[str]) -> None:CODE
LOWtest/script_text_edit/test_scripttextedit_highlight.py147 def set_highlighted(self, text: str) -> None:CODE
Structural Annotation Overuse20 hits · 36 pts
SeverityFileLineSnippetContext
LOWtest/script_text_edit/test_context_aware_completion.py551 # Step 1: Function name contextCOMMENT
LOWtest/script_text_edit/test_context_aware_completion.py556 # Step 2: Tag name argument contextCOMMENT
LOWtest/script_text_edit/test_context_aware_completion.py568 # Step 1: Variable contextCOMMENT
LOWtest/script_text_edit/test_context_aware_completion.py574 # Step 2: Partial variable contextCOMMENT
LOWtest/script_text_edit/test_context_detector.py342 # Step 1: Function name contextCOMMENT
LOWtest/script_text_edit/test_context_detector.py345 # Step 2: Tag name argument contextCOMMENT
LOWtest/script_text_edit/test_context_detector.py350 # Step 1: Variable contextCOMMENT
LOWtest/script_text_edit/test_context_detector.py353 # Step 2: Partial variable contextCOMMENT
LOWdocs/PLUGINSV3/MIGRATION.md120### Step 1: Run Migration ToolCOMMENT
LOWdocs/PLUGINSV3/MIGRATION.md144### Step 2: Create MANIFEST.tomlCOMMENT
LOWdocs/PLUGINSV3/MIGRATION.md185### Step 2: Review Generated CodeCOMMENT
LOWdocs/PLUGINSV3/MIGRATION.md195### Step 3: Create Git RepositoryCOMMENT
LOWdocs/PLUGINSV3/MIGRATION.md345### Step 1: Create MANIFEST.tomlCOMMENT
LOWdocs/PLUGINSV3/MIGRATION.md357### Step 5: Update Qt ImportsCOMMENT
LOWdocs/PLUGINSV3/MIGRATION.md378### Step 6: Add Translations (Work in Progress)COMMENT
LOWdocs/PLUGINSV3/MIGRATION.md382### Step 7: Update ConfigurationCOMMENT
LOWscripts/eval_matching/SYNTHETIC_SCENARIOS.md51### Step 1: Define the releasesCOMMENT
LOWscripts/eval_matching/SYNTHETIC_SCENARIOS.md97### Step 2: Define the recordings (candidates)COMMENT
LOWscripts/eval_matching/SYNTHETIC_SCENARIOS.md143### Step 3: Define the scenarios (test cases)COMMENT
LOWscripts/eval_matching/SYNTHETIC_SCENARIOS.md173### Step 4: Run and verifyCOMMENT
Verbosity Indicators11 hits · 22 pts
SeverityFileLineSnippetContext
LOWpicard/ui/tablebaseddialog.py124 # We need to check if the visual index is valid before convertingCOMMENT
LOWpicard/ui/widgets/context_detector.py124 # If it ends with %%, we need to check if it's a literal %% or a new variableCOMMENT
LOWpicard/util/filenaming.py86 # before returning, we need to check if we didn't cut in the middleCOMMENT
LOWtest/script_text_edit/test_context_aware_completion.py551 # Step 1: Function name contextCOMMENT
LOWtest/script_text_edit/test_context_aware_completion.py556 # Step 2: Tag name argument contextCOMMENT
LOWtest/script_text_edit/test_context_aware_completion.py568 # Step 1: Variable contextCOMMENT
LOWtest/script_text_edit/test_context_aware_completion.py574 # Step 2: Partial variable contextCOMMENT
LOWtest/script_text_edit/test_context_detector.py342 # Step 1: Function name contextCOMMENT
LOWtest/script_text_edit/test_context_detector.py345 # Step 2: Tag name argument contextCOMMENT
LOWtest/script_text_edit/test_context_detector.py350 # Step 1: Variable contextCOMMENT
LOWtest/script_text_edit/test_context_detector.py353 # Step 2: Partial variable contextCOMMENT
Fake / Example Data19 hits · 20 pts
SeverityFileLineSnippetContext
LOWpicard/ui/metadatabox/__init__.py104DiffColors = namedtuple('DiffColors', ('text', 'placeholder', 'removed_bg', 'added_bg'))CODE
LOWpicard/plugin3/init_templates.py323 author: Author string, e.g. "Jane Doe" or "Jane Doe <jane@example.com>"STRING
LOWtest/plugins3/test_cli.py1220 MockPluginManager(), verb='init', name='Test', target_dir=str(target), author='Jane Doe'CODE
LOWtest/plugins3/test_cli.py1224 self.assertIn('authors = ["Jane Doe"]', manifest)CODE
LOWtest/plugins3/test_cli.py1234 self.assertIn('authors = ["Jane Doe"]', manifest)CODE
LOWtest/plugins3/test_cli.py1618 MockPluginManager(), verb='init', name='Test', target_dir=str(target), author='Jane Doe'CODE
LOWtest/plugins3/test_cli.py1624 self.assertEqual(author_name, 'Jane Doe')CODE
LOWtest/formats/test_id3_load.py191 frame.email = 'user@example.com'CODE
LOWtest/formats/test_id3_load.py194 config_params = {'rating_user_email': 'user@example.com', 'rating_steps': 5}CODE
LOWtest/formats/test_id3_load.py201 config_params = {'rating_user_email': 'user@example.com', 'rating_steps': 10}CODE
LOWtest/data/testplugins3/registry.toml90 "John Doe",CODE
LOWtest/data/testplugins3/registry.toml109 "Jane Doe",CODE
LOWdocs/PLUGINSV3/CLI.md1148picard-cli plugins init "My Cool Plugin" --author "Jane Doe" --category metadataSTRING
LOWdocs/PLUGINSV3/MIGRATION.md149PLUGIN_AUTHOR = "John Doe"CODE
LOWdocs/PLUGINSV3/MIGRATION.md163authors = ["John Doe"]CODE
LOWdocs/PLUGINSV3/MIGRATION.md421PLUGIN_AUTHOR = "John Doe"CODE
LOWdocs/PLUGINSV3/MIGRATION.md479authors = ["John Doe"]CODE
LOWdocs/PLUGINSV3/MANIFEST.md81| `authors` | array | Plugin author/contributor names | `["John Doe", "Jane Smith"]` |CODE
LOWdocs/PLUGINSV3/MANIFEST.md82| `maintainers` | array | Plugin maintainer names | `["John Doe"]` |CODE
AI Slop Vocabulary9 hits · 17 pts
SeverityFileLineSnippetContext
LOWpicard/tagger.py884 # We should just return True here, except that seems toCOMMENT
LOWpicard/ui/itemviews/__init__.py428 # Delegate columns are handled by delegate, just set size hintCOMMENT
MEDIUMpicard/ui/itemviews/match_quality_column.py86 """Get comprehensive match statistics for the given object.STRING
MEDIUMpicard/ui/widgets/plugindetailswidget.py209 # Always enable description button since PluginInfoDialog shows comprehensive infoCOMMENT
MEDIUMpicard/util/textencoding.py62# These are non-trivial, and the software to do these is far from comprehensive.COMMENT
MEDIUMpicard/plugin3/plugin.py199 """Check if current ref is a tag using robust type detection."""STRING
MEDIUMpicard/plugin3/plugin.py411 # Use robust reference type detectionCOMMENT
MEDIUMpicard/git/ref_utils.py21"""Git reference utilities for robust reference type detection."""STRING
LOWtest/plugins3/test_registry.py660 # Should not raise, just return False (not blacklisted)COMMENT
AI Structural Patterns11 hits · 10 pts
SeverityFileLineSnippetContext
LOWpicard/ui/itemviews/custom_columns/factory.py273CODE
LOWpicard/ui/itemviews/custom_columns/column.py112CODE
LOWpicard/coverart/image.py593CODE
LOWpicard/script/serializer.py447CODE
LOWpicard/tags/tagvar.py87CODE
LOWpicard/webservice/__init__.py154CODE
LOWpicard/browser/addrelease.py208CODE
LOWpicard/plugin3/init_templates.py70CODE
LOWpicard/plugin3/manager/__init__.py324CODE
LOWtest/plugins3/test_cli.py1427CODE
LOWtest/plugins3/helpers.py356CODE
Hallucination Indicators1 hit · 10 pts
SeverityFileLineSnippetContext
CRITICALpicard/remotecommands/handlers.py306 for x in self.tagger.window.log_dialog.log_tail.contents():CODE
Slop Phrases3 hits · 3 pts
SeverityFileLineSnippetContext
LOWpicard/config_upgrade_hooks.py625 # We need to make sure to load all keys in the config file, not justCOMMENT
LOWpicard/util/filenaming.py289 # and don't forget to cacheSTRING
LOWpicard/util/filenaming.py289 # and don't forget to cacheSTRING
Overly Generic Function Names2 hits · 2 pts
SeverityFileLineSnippetContext
LOWpicard/util/thread.py126def run_task(CODE
LOWtest/plugins3/test_migration.py155def my_function():CODE
Dead Code1 hit · 2 pts
SeverityFileLineSnippetContext
MEDIUMpicard/profiles/exporter.py232CODE
Example Usage Blocks1 hit · 2 pts
SeverityFileLineSnippetContext
LOWscripts/tools/generate_match_icons.py10# Usage:COMMENT