Repository Analysis

beetbox/beets

music library manager and MusicBrainz tagger

14.6 Low AI signal View on GitHub

Analysis Overview

This report presents the forensic synthetic code analysis of beetbox/beets, a Python project with 15,596 GitHub stars. SynthScan v2.0 examined 114,022 lines of code across 357 source files, recording 1521 pattern matches distributed across 16 syntactic categories. The overall adjusted score of 14.6 places this repository in the Low 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).

14.6
Adjusted Score
14.6
Raw Score
100%
Time Factor
2026-08-27
Last Push
15.6K
Stars
Python
Language
114.0K
Lines of Code
357
Files
1.5K
Pattern Hits
2026-08-29
Scan Date
0.03
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

This chart maps the temporal evolution of the adjusted synthetic code score across successive scan runs. An upward trajectory indicates ongoing incorporation of AI-generated code or expanding LLM-assisted scaffolding; a stable or declining trajectory may reflect active human refactoring, code removal, or the adoption of stricter authorship policies. The dashed secondary line (right axis) independently tracks total raw pattern hit count, which can diverge from the normalised score when codebase size changes significantly between scans.

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 0HIGH 12MEDIUM 35LOW 1474

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 1521 distinct pattern matches across 16 syntactic categories. Each entry below represents a discrete location in the source code where the engine recorded a statistically significant AI authorship indicator. Expand any category row to inspect the individual file paths, line numbers, code snippets, and the lexical context (CODE, COMMENT, or STRING) in which each match was detected.

Reading the findings table: The Severity column indicates the diagnostic confidence level (CRITICAL / HIGH / MEDIUM / LOW). The Context column identifies whether the match occurred inside executable code, an inline comment, or a string literal — comment-context matches receive a ×1.5 weight because LLMs systematically over-annotate. The ⚡ bolt icon marks clustered matches: three or more patterns within a 10-line window, each receiving an additional ×1.5 density multiplier as dense clusters constitute far stronger evidence of synthetic authorship than isolated hits.

Hyper-Verbose Identifiers1061 hits · 1090 pts
SeverityFileLineSnippetContext
LOWtest/test_library.py45 def test_load_restores_data_from_db(self, item_in_db):CODE
LOWtest/test_library.py51 def test_load_clears_dirty_flags(self, item_in_db):CODE
LOWtest/test_library.py59 def test_store_changes_database_value(self, item_in_db):CODE
LOWtest/test_library.py66 def test_store_only_writes_dirty_fields(self, item_in_db):CODE
LOWtest/test_library.py73 def test_store_clears_dirty_flags(self, item_in_db):CODE
LOWtest/test_library.py78 def test_store_album_cascades_flex_deletes(self):CODE
LOWtest/test_library.py187 def test_directory_works_with_trailing_slash(self, item_in_db):CODE
LOWtest/test_library.py192 def test_directory_works_without_trailing_slash(self, item_in_db):CODE
LOWtest/test_library.py197 def test_destination_substitutes_metadata_values(self, item_in_db):CODE
LOWtest/test_library.py205 def test_destination_preserves_extension(self, item_in_db):CODE
LOWtest/test_library.py211 def test_lower_case_extension(self, item_in_db):CODE
LOWtest/test_library.py217 def test_destination_pads_some_indices(self, item_in_db):CODE
LOWtest/test_library.py229 def test_destination_pads_date_values(self, item_in_db):CODE
LOWtest/test_library.py237 def test_destination_escapes_slashes(self, item_in_db):CODE
LOWtest/test_library.py245 def test_destination_escapes_leading_dot(self, item_in_db):CODE
LOWtest/test_library.py252 def test_destination_preserves_legitimate_slashes(self, item_in_db):CODE
LOWtest/test_library.py259 def test_destination_long_names_truncated(self, item_in_db):CODE
LOWtest/test_library.py265 def test_destination_long_names_keep_extension(self, item_in_db):CODE
LOWtest/test_library.py271 def test_distination_windows_removes_both_separators(self, item_in_db):CODE
LOWtest/test_library.py326 def test_multi_value_string_query_path(self, item_in_db):CODE
LOWtest/test_library.py335 def test_multi_value_match_query_path(self, item_in_db):CODE
LOWtest/test_library.py344 def test_multi_value_string_query_path_no_substring_match(self, item_in_db):CODE
LOWtest/test_library.py353 def test_albumtype_query_path(self, item_in_db):CODE
LOWtest/test_library.py377 def test_get_formatted_does_not_replace_separators(self, item_in_db):CODE
LOWtest/test_library.py384 def test_get_formatted_pads_with_zero(self, item_in_db):CODE
LOWtest/test_library.py390 def test_get_formatted_uses_kbps_bitrate(self, item_in_db):CODE
LOWtest/test_library.py396 def test_get_formatted_uses_khz_samplerate(self, item_in_db):CODE
LOWtest/test_library.py402 def test_get_formatted_datetime(self, item_in_db):CODE
LOWtest/test_library.py414 def test_artist_falls_back_to_albumartist(self, item_in_db):CODE
LOWtest/test_library.py421 def test_albumartist_falls_back_to_artist(self, item_in_db):CODE
LOWtest/test_library.py428 def test_artist_overrides_albumartist(self, item_in_db):CODE
LOWtest/test_library.py435 def test_albumartist_overrides_artist(self, item_in_db):CODE
LOWtest/test_library.py442 def test_unicode_extension_in_fragment(self, item_in_db):CODE
LOWtest/test_library.py449 def test_asciify_character_expanding_to_slash(self, item_in_db):CODE
LOWtest/test_library.py456 def test_destination_with_replacements(self, item_in_db):CODE
LOWtest/test_library.py465 def test_destination_with_empty_component(self, item_in_db):CODE
LOWtest/test_library.py494 def test_album_field_in_template(self, item_in_db):CODE
LOWtest/test_library.py504 def test_formatted_item_value(self, item_in_db):CODE
LOWtest/test_library.py513 def test_get_method_with_default(self, item_in_db):CODE
LOWtest/test_library.py517 def test_get_method_with_specified_default(self, item_in_db):CODE
LOWtest/test_library.py545 def test_artist_falls_back_to_albumartist(self, item_in_db):CODE
LOWtest/test_library.py550 def test_albumartist_falls_back_to_artist(self, item_in_db):CODE
LOWtest/test_library.py555 def test_both_artist_and_albumartist_empty(self, item_in_db):CODE
LOWtest/test_library.py646 def test_nonexistent_function(self, item):CODE
LOWtest/test_library.py650 def test_if_def_field_return_self(self, item):CODE
LOWtest/test_library.py655 def test_if_def_field_not_defined(self, item):CODE
LOWtest/test_library.py708 def test_unique_expands_to_disambiguating_year(self, items):CODE
LOWtest/test_library.py712 def test_unique_with_default_arguments_uses_albumtype(self, items):CODE
LOWtest/test_library.py720 def test_unique_expands_to_nothing_for_distinct_albums(self, items):CODE
LOWtest/test_library.py728 def test_use_fallback_numbers_when_identical(self, items):CODE
LOWtest/test_library.py737 def test_unique_falls_back_to_second_distinguishing_field(self, items):CODE
LOWtest/test_library.py803 def test_sunique_expands_to_disambiguating_year(self, items):CODE
LOWtest/test_library.py807 def test_sunique_with_default_arguments_uses_trackdisambig(self, items):CODE
LOWtest/test_library.py815 def test_sunique_expands_to_nothing_for_distinct_singletons(self, items):CODE
LOWtest/test_library.py822 def test_sunique_does_not_match_album(self, items):CODE
LOWtest/test_library.py827 def test_sunique_use_fallback_numbers_when_identical(self, items):CODE
LOWtest/test_library.py835 def test_sunique_falls_back_to_second_distinguishing_field(self, items):CODE
LOWtest/test_library.py905 def test_undefined_value_not_substituted(self, item):CODE
LOWtest/test_library.py908 def test_plugin_value_not_substituted(self, item):CODE
LOWtest/test_library.py912 def test_plugin_value_overrides_attribute(self, item):CODE
1001 more matches not shown…
Unused Imports225 hits · 222 pts
SeverityFileLineSnippetContext
LOWtest/test_library.py3CODE
LOWtest/conftest.py1CODE
LOWtest/test_importer.py3CODE
LOWtest/plugins/test_discogs.py3CODE
LOWtest/plugins/test_albumtypes.py3CODE
LOWtest/plugins/test_fetchart.py1CODE
LOWtest/plugins/conftest.py1CODE
LOWtest/plugins/test_musicbrainz.py3CODE
LOWtest/plugins/test_hook.py1CODE
LOWtest/plugins/test_convert.py1CODE
LOWtest/plugins/test_mbpseudo.py1CODE
LOWtest/plugins/test_tidal.py3CODE
LOWtest/plugins/test_embedart.py1CODE
LOWtest/plugins/lyrics_pages.py1CODE
LOWtest/plugins/test_aura.py1CODE
LOWtest/plugins/test_smartplaylist.py2CODE
LOWtest/plugins/test_ftintitle.py3CODE
LOWtest/plugins/test_lyrics.py3CODE
LOWtest/plugins/test_importadded.py3CODE
LOWtest/plugins/test_art.py3CODE
LOWbeetsplug/duplicates.py3CODE
LOWbeetsplug/replaygain.py1CODE
LOWbeetsplug/missing.py3CODE
LOWbeetsplug/titlecase.py5CODE
LOWbeetsplug/_typing.py1CODE
LOWbeetsplug/autobpm.py3CODE
LOWbeetsplug/advancedrewrite.py3CODE
LOWbeetsplug/acousticbrainz.py3CODE
LOWbeetsplug/fetchart.py3CODE
LOWbeetsplug/mbcollection.py1CODE
LOWbeetsplug/convert.py3CODE
LOWbeetsplug/plexupdate.py11CODE
LOWbeetsplug/musicbrainz.py3CODE
LOWbeetsplug/hook.py3CODE
LOWbeetsplug/lyrics.py3CODE
LOWbeetsplug/mbsync.py3CODE
LOWbeetsplug/ftintitle.py3CODE
LOWbeetsplug/bpm.py3CODE
LOWbeetsplug/importfeeds.py6CODE
LOWbeetsplug/edit.py3CODE
LOWbeetsplug/mpdstats.py1CODE
LOWbeetsplug/fromfilename.py5CODE
LOWbeetsplug/limit.py10CODE
LOWbeetsplug/export.py3CODE
LOWbeetsplug/zero.py3CODE
LOWbeetsplug/loadext.py3CODE
LOWbeetsplug/play.py3CODE
LOWbeetsplug/random.py1CODE
LOWbeetsplug/bench.py3CODE
LOWbeetsplug/mbsubmit.py10CODE
LOWbeetsplug/keyfinder.py3CODE
LOWbeetsplug/lastimport.py1CODE
LOWbeetsplug/bareasc.py7CODE
LOWbeetsplug/bpsync.py3CODE
LOWbeetsplug/kodiupdate.py12CODE
LOWbeetsplug/aura.py3CODE
LOWbeetsplug/deezer.py3CODE
LOWbeetsplug/listenbrainz.py3CODE
LOWbeetsplug/importadded.py7CODE
LOWbeetsplug/playlist.py1CODE
165 more matches not shown…
Deep Nesting91 hits · 90 pts
SeverityFileLineSnippetContext
LOWtest/util/test_functemplate.py8CODE
LOWtest/plugins/test_bpd.py124CODE
LOWtest/plugins/test_bpd.py331CODE
LOWtest/plugins/test_lastgenre.py865CODE
LOWbeetsplug/duplicates.py344CODE
LOWbeetsplug/replaygain.py947CODE
LOWbeetsplug/replaygain.py950CODE
LOWbeetsplug/titlecase.py172CODE
LOWbeetsplug/advancedrewrite.py97CODE
LOWbeetsplug/acousticbrainz.py164CODE
LOWbeetsplug/acousticbrainz.py265CODE
LOWbeetsplug/fetchart.py97CODE
LOWbeetsplug/fetchart.py258CODE
LOWbeetsplug/fetchart.py424CODE
LOWbeetsplug/fetchart.py525CODE
LOWbeetsplug/fetchart.py911CODE
LOWbeetsplug/fetchart.py1048CODE
LOWbeetsplug/fetchart.py1152CODE
LOWbeetsplug/fetchart.py1317CODE
LOWbeetsplug/fetchart.py1565CODE
LOWbeetsplug/fetchart.py1609CODE
LOWbeetsplug/fetchart.py536CODE
LOWbeetsplug/convert.py407CODE
LOWbeetsplug/convert.py575CODE
LOWbeetsplug/musicbrainz.py714CODE
LOWbeetsplug/lyrics.py1230CODE
LOWbeetsplug/mbsync.py97CODE
LOWbeetsplug/importfeeds.py94CODE
LOWbeetsplug/edit.py396CODE
LOWbeetsplug/edit.py429CODE
LOWbeetsplug/types.py16CODE
LOWbeetsplug/zero.py31CODE
LOWbeetsplug/zero.py96CODE
LOWbeetsplug/bpsync.py131CODE
LOWbeetsplug/aura.py248CODE
LOWbeetsplug/listenbrainz.py198CODE
LOWbeetsplug/playlist.py158CODE
LOWbeetsplug/subsonicplaylist.py26CODE
LOWbeetsplug/subsonicplaylist.py101CODE
LOWbeetsplug/subsonicplaylist.py102CODE
LOWbeetsplug/ipfs.py296CODE
LOWbeetsplug/badfiles.py199CODE
LOWbeetsplug/importsource.py68CODE
LOWbeetsplug/mbpseudo.py189CODE
LOWbeetsplug/chroma.py443CODE
LOWbeetsplug/embedart.py101CODE
LOWbeetsplug/embedart.py126CODE
LOWbeetsplug/spotify.py825CODE
LOWbeetsplug/the.py19CODE
LOWbeetsplug/bpd/gstplayer.py214CODE
LOWbeetsplug/bpd/__init__.py404CODE
LOWbeetsplug/bpd/__init__.py861CODE
LOWbeetsplug/bpd/__init__.py1409CODE
LOWbeetsplug/discogs/__init__.py466CODE
LOWbeetsplug/discogs/__init__.py556CODE
LOWbeets/ui/__init__.py212CODE
LOWbeets/ui/__init__.py397CODE
LOWbeets/ui/__init__.py522CODE
LOWbeets/ui/commands/update.py31CODE
LOWbeets/ui/commands/move.py72CODE
31 more matches not shown…
Self-Referential Comments24 hits · 68 pts
SeverityFileLineSnippetContext
MEDIUMtest/plugins/test_web.py308 # Create a temporary itemCOMMENT
MEDIUMtest/plugins/test_web.py333 # Create an item with a fileCOMMENT
MEDIUMtest/plugins/test_web.py361 # Create an item with a fileCOMMENT
MEDIUMtest/plugins/test_web.py388 # Create a temporary itemCOMMENT
MEDIUMtest/plugins/test_web.py425 # Create a temporary itemCOMMENT
MEDIUMtest/plugins/test_web.py452 # Create a temporary itemCOMMENT
MEDIUMtest/plugins/test_web.py479 # Create a temporary albumCOMMENT
MEDIUMtest/plugins/test_web.py504 # Create a temporary albumCOMMENT
MEDIUMtest/plugins/test_web.py541 # Create a temporary albumCOMMENT
MEDIUMtest/plugins/test_web.py568 # Create a temporary albumCOMMENT
MEDIUMtest/plugins/test_web.py599 # Create a temporary itemCOMMENT
MEDIUMtest/plugins/test_web.py641 # Create a temporary itemCOMMENT
MEDIUMtest/plugins/test_bpd.py342 # Create a config file:COMMENT
MEDIUMtest/plugins/test_lastgenre.py740 # Initialize plugin instance and itemCOMMENT
MEDIUMtest/plugins/test_spotify.py191 # Create a mock item with Japanese metadataCOMMENT
MEDIUMbeetsplug/convert.py723 # Create a temporary file for the conversion.COMMENT
MEDIUMbeetsplug/bareasc.py2# This module is adapted from Fuzzy in accordance to the licence ofCOMMENT
MEDIUMbeetsplug/kodiupdate.py33 # Create the payload. Id seems to be mandatory.COMMENT
MEDIUMbeets/ui/commands/__init__.py1"""This module provides the default commands for beets' command-lineSTRING
MEDIUMbeets/importer/stages.py192 # Create a new task for tagging the current itemsCOMMENT
MEDIUMbeets/util/color.py166 # Define a regular expression to match ANSI codes.COMMENT
MEDIUMbeets/util/functemplate.py1"""This module implements a string formatter based on the standard PEPSTRING
MEDIUMbeets/util/functemplate.py193 # Create a subexpression that joins the result components ofCOMMENT
MEDIUMbeets/library/library.py116 # Create the album structure using metadata from the first item.COMMENT
Cross-File Repetition10 hits · 50 pts
SeverityFileLineSnippetContext
HIGHtest/util/test_lyrics.py0[00:00.00] some synced lyrics / quelques paroles synchronisées [00:00.50] [00:01.00] some more synced lyrics / quelques STRING
HIGHtest/library/test_migrations.py0[00:00.00] some synced lyrics / quelques paroles synchronisées [00:00.50] [00:01.00] some more synced lyrics / quelques STRING
HIGHtest/plugins/test_lyrics.py0[00:00.00] some synced lyrics / quelques paroles synchronisées [00:00.50] [00:01.00] some more synced lyrics / quelques STRING
HIGHbeetsplug/plexupdate.py0listens for beets db change and register the update for the end.STRING
HIGHbeetsplug/kodiupdate.py0listens for beets db change and register the update for the end.STRING
HIGHbeetsplug/sonosupdate.py0listens for beets db change and register the update for the end.STRING
HIGHbeetsplug/embyupdate.py0listens for beets db change and register the update for the end.STRING
HIGHbeetsplug/beatport.py0get the path to the json file for storing the oauth token.STRING
HIGHbeetsplug/spotify.py0get the path to the json file for storing the oauth token.STRING
HIGHbeetsplug/discogs/__init__.py0get the path to the json file for storing the oauth token.STRING
Excessive Try-Catch Wrapping36 hits · 41 pts
SeverityFileLineSnippetContext
LOWtest/test_logging.py256 except Exception as e:CODE
LOWtest/test_logging.py266 except Exception as e:CODE
LOWtest/test_logging.py311 except Exception:CODE
MEDIUMtest/test_logging.py249def listener1(self):CODE
MEDIUMtest/test_logging.py259def listener2(self):CODE
LOWbeetsplug/duplicates.py239 except Exception:CODE
LOWbeetsplug/titlecase.py245 except Exception as e:CODE
LOWbeetsplug/autobpm.py105 except Exception as exc:CODE
LOWbeetsplug/autobpm.py112 except Exception as exc:CODE
LOWbeetsplug/deezer.py273 except Exception as e:CODE
LOWbeetsplug/scrub.py91 except Exception:CODE
LOWbeetsplug/subsonicupdate.py158 except Exception as error:CODE
LOWbeetsplug/beatport.py195 except Exception as e:CODE
LOWbeetsplug/embedart.py169 except Exception as e:CODE
LOWbeetsplug/thumbnails.py184 except Exception:CODE
LOWbeetsplug/inline.py103 except Exception as exc:CODE
LOWbeetsplug/inline.py115 except Exception as exc:CODE
LOWbeetsplug/replace.py113 except Exception as e:CODE
LOWbeetsplug/replace.py122 except Exception as e:CODE
MEDIUMbeetsplug/bpd/gstplayer.py105 print(f"Error: {err}")CODE
LOWbeetsplug/bpd/__init__.py957 except Exception:CODE
LOWbeetsplug/bpd/__init__.py1078 except Exception:CODE
LOWbeetsplug/lastgenre/client.py78 except Exception as exc:CODE
LOWbeetsplug/metasync/itunes.py72 except Exception:CODE
LOWbeetsplug/discogs/__init__.py472 except Exception as exc:CODE
LOWbeets/plugins.py521 except Exception as exc:CODE
LOWbeets/plugins.py539 except Exception:CODE
LOWbeets/metadata_plugins.py72 except Exception as e:CODE
LOWbeets/metadata_plugins.py427 except Exception as e:CODE
MEDIUMbeets/metadata_plugins.py193def data_source_mismatch_penalty(self) -> float:CODE
LOWbeets/importer/tasks.py1346 except Exception as exc:CODE
LOWbeets/importer/state.py80 except Exception as exc:CODE
MEDIUMbeets/importer/state.py73def _open(self) -> None:CODE
LOWbeets/util/__init__.py631 except Exception as exc:CODE
LOWbeets/util/functemplate.py175 except Exception as exc:CODE
LOWbeets/util/functemplate.py563 except Exception: # Handle any exceptions thrown by compiled version.CODE
Modern Structural Boilerplate23 hits · 23 pts
SeverityFileLineSnippetContext
LOWbeetsplug/importadded.py122 def update_album_times(self, lib: Library, album: Album) -> None:CODE
LOWbeetsplug/importadded.py147 def update_item_times(self, lib: Library, item: Item) -> None:CODE
LOWbeetsplug/importadded.py165 def update_after_write_time(self, item: Item, path: bytes) -> None:CODE
LOWbeetsplug/mpdupdate.py87 def update_mpd(self, host="localhost", port=6600, password=None) -> None:CODE
LOWbeetsplug/smartplaylist.py384 def update_playlists(self, lib: Library) -> None:CODE
LOWbeetsplug/_utils/__init__.py3__all__ = ["art", "vfs"]CODE
LOWbeets/logging.py45__all__ = [CODE
LOWbeets/logging.py196 def set_global_level(self, level: int) -> None:CODE
LOWbeets/context.py19def set_music_dir(value: bytes) -> None:CODE
LOWbeets/ui/commands/update.py168def update_func(lib: Library, opts: UpdateCLIOpts, args: list[str]) -> None:CODE
LOWbeets/ui/commands/version.py31__all__ = ["version_cmd"]CODE
LOWbeets/ui/commands/__init__.py60__all__ = ["default_commands"]CODE
LOWbeets/importer/tasks.py266 def set_choice(self, choice: Action | AlbumMatch | TrackMatch) -> None:CODE
LOWbeets/importer/tasks.py469 def set_fields(self, lib: library.Library) -> None:CODE
LOWbeets/importer/tasks.py978 def set_fields(self, lib: library.Library) -> None:CODE
LOWbeets/importer/tasks.py1031 def set_choice(self, choice: Action | AlbumMatch | TrackMatch) -> None:CODE
LOWbeets/importer/session.py91 def set_config(self, config: confuse.ConfigView) -> None:CODE
LOWbeets/importer/__init__.py16__all__ = [CODE
LOWbeets/library/models.py562 def set_art(self, path: bytes, copy: bool = True) -> None:CODE
LOWbeets/library/__init__.py21__all__ = [CODE
LOWbeets/autotag/__init__.py36__all__ = [CODE
LOWbeets/dbcore/db.py712 def set_parse(self, key: str, string: str) -> None:CODE
LOWbeets/dbcore/__init__.py21__all__ = [CODE
Redundant / Tautological Comments13 hits · 19 pts
SeverityFileLineSnippetContext
LOWtest/plugins/test_web.py742 # Check if any user data fields are using non-escaping <%= %>COMMENT
LOWtest/plugins/test_replaygain.py96 # Check if required plugins can be loaded by instantiating aCOMMENT
LOWbeetsplug/titlecase.py214 # Check if A-Z is all uppercase or all lowercaseCOMMENT
LOWbeetsplug/play.py175 # Check if the selection exceeds configured threshold. If True,COMMENT
LOWbeetsplug/ipfs.py172 # Check if query is a hashCOMMENT
LOWbeetsplug/absubmit.py172 # Close the file, so the extractor can overwrite it.COMMENT
LOWbeetsplug/spotify.py279 # Check if this is the audio features endpointCOMMENT
LOWbeetsplug/embyupdate.py177 # Check if at least a apikey or password is given.COMMENT
LOWbeets/importer/tasks.py1362 # Check if the file has an extension,COMMENT
LOWbeets/util/artresizer.py650 # Check if a local backend is available, and store an instance of theCOMMENT
LOWbeets/util/lyrics.py56 # Set seed to 0 for deterministic resultsCOMMENT
LOWbeets/library/models.py974 # Open the file.COMMENT
LOWbeets/autotag/match.py65 # Assign items to tracksCOMMENT
AI Slop Vocabulary10 hits · 18 pts
SeverityFileLineSnippetContext
MEDIUMbeetsplug/web/static/jquery.js9255// AMD modules. A named AMD is safest and most robust way to register.COMMENT
LOWbeetsplug/tidal/__init__.py141 # We just return early here as a lookup via isrc shouldCOMMENT
LOWbeetsplug/tidal/__init__.py164 # We just return early here as a lookup via isrc shouldCOMMENT
MEDIUMbeets/exceptions.py2 """UI exception. Commands should throw this in order to displaySTRING
MEDIUMbeets/ui/__init__.py76 # test harness, it doesn't have an `encoding` attribute. Just useCOMMENT
LOWbeets/importer/tasks.py1447 # and add the current directory. If so, just add the directoryCOMMENT
MEDIUMbeets/test/helper.py410# A test harness for all beets tests.COMMENT
LOWbeets/util/__init__.py1084 # Therefore, we just use `Any` here, which is not ideal, but works.COMMENT
LOWbeets/util/functemplate.py374 # Start of a group has no meaning hear; just passCOMMENT
MEDIUMbeets/util/pipeline.py1"""Simple but robust implementation of generator/coroutine-basedSTRING
Cross-Language Confusion2 hits · 12 pts
SeverityFileLineSnippetContext
HIGHbeetsplug/_typing.py21 # Both lyrics fields may be null, even when 'instrumental' is False.COMMENT
HIGHbeets/dbcore/db.py517 setattr(self, key, self._type(key).null)CODE
Over-Commented Block12 hits · 12 pts
SeverityFileLineSnippetContext
LOWtest/ui/test_ui.py181 # @unittest.skip('Difficult to implement with optparse')COMMENT
LOWbeetsplug/web/static/underscore.js1// Underscore.js 1.2.2COMMENT
LOWbeetsplug/web/static/backbone.js1// Backbone.js 0.5.3COMMENT
LOWbeetsplug/web/static/backbone.js41 return this;COMMENT
LOWbeetsplug/web/static/backbone.js61 //COMMENT
LOWbeetsplug/web/static/backbone.js941 // *{"event selector": "callback"}*COMMENT
LOWbeetsplug/web/static/backbone.js1021 // -------------COMMENT
LOWbeetsplug/web/static/jquery.js1381COMMENT
LOWbeetsplug/web/static/jquery.js9241COMMENT
LOWbeets/ui/commands/completion_base.sh1# Completion for the `beet` commandCOMMENT
LOWbeets/ui/commands/completion_base.sh21# ----COMMENT
LOWbeets/util/id_extractors.py21 # - plain integer, optionally wrapped in brackets and prefixed by anCOMMENT
Overly Generic Function Names8 hits · 8 pts
SeverityFileLineSnippetContext
LOWtest/plugins/test_aura.py13def helper(session_helper):CODE
LOWtest/plugins/test_lyrics.py34def helper(module_helper):CODE
LOWtest/plugins/test_random.py12def helper(class_helper):CODE
LOWtest/dbcore/test_sort.py23def helper(class_helper):CODE
LOWtest/dbcore/test_query.py40def helper(class_helper):CODE
LOWbeetsplug/lyrics.py226 def handle_request(self) -> Iterator[None]:CODE
LOWbeets/plugins.py443 def helper(func: TFunc[str]) -> TFunc[str]:CODE
LOWbeets/plugins.py457 def helper(func: TFunc[Item]) -> TFunc[Item]:CODE
Decorative Section Separators1 hit · 3 pts
SeverityFileLineSnippetContext
MEDIUMbeets/ui/commands/completion_base.sh2# =================================COMMENT
AI Structural Patterns3 hits · 3 pts
SeverityFileLineSnippetContext
LOWbeets/autotag/hooks.py158CODE
LOWbeets/autotag/hooks.py273CODE
LOWbeets/autotag/hooks.py393CODE
TODO Padding1 hit · 2 pts
SeverityFileLineSnippetContext
LOWbeetsplug/missing.py256 # TODO: Implement caching that without breaking other stuffCOMMENT
Fake / Example Data1 hit · 1 pts
SeverityFileLineSnippetContext
LOWtest/rsrc/lyrics/examplecom/beetssong.txt353cf_page_artist = 'John Doe';CODE