Repository Analysis

music-assistant/server

Music Assistant is a free, opensource Media library manager that connects to your streaming services and a wide range of connected speakers. The server is the beating heart, the core of Music Assistant and must run on an always-on device like a Raspberry Pi, a NAS or an Intel NUC or alike.

30.4 Strong AI signal View on GitHub

Analysis Overview

This report presents the forensic synthetic code analysis of music-assistant/server, a Python project with 2,873 GitHub stars. SynthScan v2.0 examined 450,041 lines of code across 1586 source files, recording 9613 pattern matches distributed across 24 syntactic categories. The overall adjusted score of 30.4 places this repository in the Strong AI signal band.

The scanner applied 160+ deterministic lexical heuristics, multi-line block detectors, abstract syntax tree depth profilers, and a cross-file Jaccard similarity matrix to construct a statistically normalised synthetic code estimate. All matches are individually weighted by severity coefficient and contextual multiplier before summation, and the resulting headline score is temporally discounted to account for the repository's development history relative to the commercial emergence of large language model coding tooling (November 2022 onward).

30.4
Adjusted Score
30.4
Raw Score
100%
Time Factor
2026-07-14
Last Push
2.9K
Stars
Python
Language
450.0K
Lines of Code
1.6K
Files
9.6K
Pattern Hits
2026-07-14
Scan Date
0.36
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 53HIGH 515MEDIUM 721LOW 8324

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 9613 distinct pattern matches across 24 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 Identifiers5874 hits · 5489 pts
SeverityFileLineSnippetContext
LOWtests/conftest.py22def isolate_models_global_cache() -> Generator[None]:CODE
LOWtests/test_library_sync.py821async def test_set_provider_mappings_upsert_preserves_null_in_library(CODE
LOWtests/test_library_sync.py91async def test_add_item_to_library_sets_in_library_true() -> None:CODE
LOWtests/test_library_sync.py125async def test_add_item_to_library_sets_in_library_even_when_sync_back_disabled() -> None:CODE
LOWtests/test_library_sync.py159async def test_add_item_to_library_sets_in_library_even_when_edit_not_supported() -> None:CODE
LOWtests/test_library_sync.py191async def test_add_album_imports_tracks_when_enabled() -> None:CODE
LOWtests/test_library_sync.py230async def test_add_album_does_not_import_tracks_when_disabled() -> None:CODE
LOWtests/test_library_sync.py262async def test_add_album_only_imports_tracks_for_added_instance() -> None:CODE
LOWtests/test_library_sync.py313async def test_refresh_item_preserves_in_library_state() -> None:CODE
LOWtests/test_library_sync.py357async def test_refresh_item_preserves_in_library_false() -> None:CODE
LOWtests/test_library_sync.py399async def test_refresh_item_respects_provider_set_in_library() -> None:CODE
LOWtests/test_library_sync.py443async def test_refresh_item_non_library_item_skips_update() -> None:CODE
LOWtests/test_library_sync.py477async def test_sync_library_marks_removed_item_in_library_false() -> None:CODE
LOWtests/test_library_sync.py528async def test_sync_library_deletions_disabled_keeps_item() -> None:CODE
LOWtests/test_library_sync.py572async def test_sync_library_deletion_unmarks_favorite_when_no_other_providers() -> None:CODE
LOWtests/test_library_sync.py602async def test_sync_library_deletion_keeps_favorite_when_other_provider_has_it() -> None:CODE
LOWtests/test_library_sync.py643async def test_sync_library_always_stores_cache_regardless_of_deletion_setting() -> None:CODE
LOWtests/test_library_sync.py675def _create_controller_for_filter_tests() -> Mock:CODE
LOWtests/test_library_sync.py684async def test_apply_filters_in_library_only_without_provider_filter() -> None:CODE
LOWtests/test_library_sync.py711async def test_apply_filters_in_library_only_with_provider_filter() -> None:CODE
LOWtests/test_library_sync.py739async def test_apply_filters_no_in_library_filter_by_default() -> None:CODE
LOWtests/test_library_sync.py763async def test_apply_filters_provider_filter_without_in_library() -> None:CODE
LOWtests/test_library_sync.py805async def test_set_provider_mappings_overwrite_deletes_and_reinserts(CODE
LOWtests/test_library_sync.py842async def test_set_provider_mappings_upsert_writes_explicit_in_library(CODE
LOWtests/test_library_sync.py865async def test_library_items_default_filters_in_library_only() -> None:CODE
LOWtests/test_library_sync.py879async def test_library_items_defaults_to_summary() -> None:CODE
LOWtests/test_library_sync.py892def test_ensure_provider_filter_keeps_plugin_provider_mappings() -> None:CODE
LOWtests/test_library_sync.py913def test_ensure_provider_filter_rejects_unallowed_music_provider() -> None:CODE
LOWtests/test_library_sync.py933def test_ensure_provider_filter_allows_explicit_non_music_provider() -> None:CODE
LOWtests/test_library_sync.py952def test_ensure_provider_filter_does_not_auto_allow_other_non_music_providers() -> None:CODE
LOWtests/test_library_sync.py975def test_select_provider_id_prefers_allowed_music_over_plugin() -> None:CODE
LOWtests/test_library_sync.py1012def test_select_provider_id_falls_back_to_plugin_when_no_allowed_music() -> None:CODE
LOWtests/test_library_sync.py1049async def test_get_library_item_does_not_filter_in_library() -> None:CODE
LOWtests/test_library_sync.py1069async def test_update_item_in_library_skips_non_music_providers() -> None:CODE
LOWtests/test_library_sync.py1110def _create_event_capture_controller(CODE
LOWtests/test_library_sync.py1129async def test_add_and_update_item_emit_events_outside_sync() -> None:CODE
LOWtests/test_library_sync.py1149async def test_provider_sync_suppresses_per_item_events() -> None:CODE
LOWtests/test_generate_release_notes.py117def test_linear_release_filters_prs_merged_before_previous_tag(CODE
LOWtests/test_generate_release_notes.py142def test_minor_release_with_diverged_previous_tag(CODE
LOWtests/test_dynamic_playlist_framework.py49async def test_update_playlist_metadata_processes_dynamic_playlists() -> None:CODE
LOWtests/test_dynamic_playlist_framework.py83async def test_refresh_playlist_metadata_batch_query_excludes_dynamic_playlists() -> None:CODE
LOWtests/test_dynamic_playlist_framework.py173async def test_sync_overwrites_name_for_noneditable_dynamic_playlist() -> None:CODE
LOWtests/test_dynamic_playlist_framework.py188async def test_sync_overwrites_images_for_noneditable_dynamic_playlist() -> None:CODE
LOWtests/test_dynamic_playlist_framework.py203async def test_sync_does_not_overwrite_editable_playlist_on_name_change() -> None:CODE
LOWtests/test_dynamic_playlist_framework.py218async def test_sync_does_not_overwrite_noneditable_static_playlist_on_name_change() -> None:CODE
LOWtests/test_dynamic_playlist_framework.py239async def test_sync_skips_update_when_noneditable_playlist_unchanged() -> None:CODE
LOWtests/common.py69def suppress_auto_loaded_providers() -> Iterator[None]:CODE
LOWtests/common.py89async def _create_builtin_provider_config_hermetic(CODE
LOWtests/test_webserver_auth.py98async def test_auth_manager_initialization(auth_manager: AuthenticationManager) -> None:CODE
LOWtests/test_webserver_auth.py110async def test_has_users_initially_empty(auth_manager: AuthenticationManager) -> None:CODE
LOWtests/test_webserver_auth.py165async def test_create_user_with_builtin_provider(auth_manager: AuthenticationManager) -> None:CODE
LOWtests/test_webserver_auth.py185async def test_authenticate_with_password(auth_manager: AuthenticationManager) -> None:CODE
LOWtests/test_webserver_auth.py245async def test_authenticate_with_token(auth_manager: AuthenticationManager) -> None:CODE
LOWtests/test_webserver_auth.py434async def test_cannot_disable_own_account(auth_manager: AuthenticationManager) -> None:CODE
LOWtests/test_webserver_auth.py464async def test_link_user_to_provider(auth_manager: AuthenticationManager) -> None:CODE
LOWtests/test_webserver_auth.py494async def test_homeassistant_system_user(auth_manager: AuthenticationManager) -> None:CODE
LOWtests/test_webserver_auth.py513async def test_homeassistant_system_user_token_stable_across_restarts(CODE
LOWtests/test_webserver_auth.py537async def test_homeassistant_system_user_token_reissued_when_invalid(CODE
LOWtests/test_webserver_auth.py557async def test_homeassistant_system_user_token_rotated_before_absolute_max(CODE
LOWtests/test_webserver_auth.py597async def test_homeassistant_system_user_token_cleans_up_expired_rows(CODE
5814 more matches not shown…
Cross-File Repetition487 hits · 2435 pts
SeverityFileLineSnippetContext
HIGHtests/providers/sendspin/test_bridge_manager.py0return whether the bridge is registered with sendspin.STRING
HIGH…sic_assistant/providers/local_audio/sendspin_bridge.py0return whether the bridge is registered with sendspin.STRING
HIGHmusic_assistant/providers/chromecast/sendspin_bridge.py0return whether the bridge is registered with sendspin.STRING
HIGHmusic_assistant/providers/airplay/sendspin_bridge.py0return whether the bridge is registered with sendspin.STRING
HIGHmusic_assistant/providers/sendspin/bridge_manager.py0return whether the bridge is registered with sendspin.STRING
HIGHtests/controllers/music/test_artist_play_credit.py0create a single library provider mapping with a unique provider item id.STRING
HIGH…s/controllers/music/test_playback_speed_persistence.py0create a single library provider mapping with a unique provider item id.STRING
HIGH…ntrollers/player_queues/test_artist_track_selection.py0create a single library provider mapping with a unique provider item id.STRING
HIGHtests/controllers/music/test_music_migrations.py0create table if not exists {db_table_playlog}( [id] integer primary key autoincrement, [item_id] text not null, [provideSTRING
HIGHmusic_assistant/controllers/music/migrations.py0create table if not exists {db_table_playlog}( [id] integer primary key autoincrement, [item_id] text not null, [provideSTRING
HIGHmusic_assistant/controllers/music/database.py0create table if not exists {db_table_playlog}( [id] integer primary key autoincrement, [item_id] text not null, [provideSTRING
HIGHtests/controllers/players/test_player_controller.py0return appropriate defaults for player config values.STRING
HIGHtests/controllers/players/test_protocol_linking.py0return appropriate defaults for player config values.STRING
HIGHtests/controllers/players/test_player_grouping.py0return appropriate defaults for player config values.STRING
HIGHmusic_assistant/providers/neteasecloudmusic/__init__.py0initialize provider instance with given configuration.STRING
HIGHmusic_assistant/providers/sonic_similarity/__init__.py0initialize provider instance with given configuration.STRING
HIGHmusic_assistant/providers/fastmcp_server/__init__.py0initialize provider instance with given configuration.STRING
HIGHmusic_assistant/providers/sonic_analysis/__init__.py0initialize provider instance with given configuration.STRING
HIGHmusic_assistant/providers/mpd/__init__.py0initialize provider instance with given configuration.STRING
HIGHmusic_assistant/providers/pandora/__init__.py0initialize provider instance with given configuration.STRING
HIGHmusic_assistant/providers/internet_archive/__init__.py0initialize provider instance with given configuration.STRING
HIGHmusic_assistant/providers/wiim/__init__.py0initialize provider(instance) with given configuration.STRING
HIGHmusic_assistant/providers/ambient_sounds/__init__.py0initialize provider(instance) with given configuration.STRING
HIGHmusic_assistant/providers/hass_players/__init__.py0initialize provider(instance) with given configuration.STRING
HIGHmusic_assistant/providers/local_audio/__init__.py0initialize provider(instance) with given configuration.STRING
HIGHmusic_assistant/providers/fully_kiosk/__init__.py0initialize provider(instance) with given configuration.STRING
HIGHmusic_assistant/providers/ytmusic/__init__.py0initialize provider(instance) with given configuration.STRING
HIGHmusic_assistant/providers/nts/__init__.py0initialize provider(instance) with given configuration.STRING
HIGHmusic_assistant/providers/vban_receiver/__init__.py0initialize provider(instance) with given configuration.STRING
HIGH…c_assistant/providers/_demo_music_provider/__init__.py0initialize provider(instance) with given configuration.STRING
HIGHmusic_assistant/providers/bandcamp/__init__.py0initialize provider(instance) with given configuration.STRING
HIGHmusic_assistant/providers/sync_group/__init__.py0initialize provider(instance) with given configuration.STRING
HIGHmusic_assistant/providers/audiobookshelf/__init__.py0initialize provider(instance) with given configuration.STRING
HIGHmusic_assistant/providers/apple_music/__init__.py0initialize provider(instance) with given configuration.STRING
HIGHmusic_assistant/providers/theaudiodb/__init__.py0initialize provider(instance) with given configuration.STRING
HIGHmusic_assistant/providers/yandex_smarthome/__init__.py0initialize provider(instance) with given configuration.STRING
HIGHmusic_assistant/providers/bose_soundtouch/__init__.py0initialize provider(instance) with given configuration.STRING
HIGHmusic_assistant/providers/somafm/__init__.py0initialize provider(instance) with given configuration.STRING
HIGHmusic_assistant/providers/lrclib/__init__.py0initialize provider(instance) with given configuration.STRING
HIGHmusic_assistant/providers/airplay_receiver/__init__.py0initialize provider(instance) with given configuration.STRING
HIGHmusic_assistant/providers/wikipedia/__init__.py0initialize provider(instance) with given configuration.STRING
HIGHmusic_assistant/providers/zvuk_music/__init__.py0initialize provider(instance) with given configuration.STRING
HIGHmusic_assistant/providers/rain_mood/__init__.py0initialize provider(instance) with given configuration.STRING
HIGHmusic_assistant/providers/jellyfin/__init__.py0initialize provider(instance) with given configuration.STRING
HIGHmusic_assistant/providers/test/__init__.py0initialize provider(instance) with given configuration.STRING
HIGHmusic_assistant/providers/hass/__init__.py0initialize provider(instance) with given configuration.STRING
HIGH…_assistant/providers/listenbrainz_scrobble/__init__.py0initialize provider(instance) with given configuration.STRING
HIGHmusic_assistant/providers/pocketcasts/__init__.py0initialize provider(instance) with given configuration.STRING
HIGHmusic_assistant/providers/phishin/__init__.py0initialize provider(instance) with given configuration.STRING
HIGHmusic_assistant/providers/party/__init__.py0initialize provider(instance) with given configuration.STRING
HIGHmusic_assistant/providers/genius_lyrics/__init__.py0initialize provider(instance) with given configuration.STRING
HIGHmusic_assistant/providers/musiccast/__init__.py0initialize provider(instance) with given configuration.STRING
HIGHmusic_assistant/providers/radioparadise/__init__.py0initialize provider(instance) with given configuration.STRING
HIGHmusic_assistant/providers/alexa/__init__.py0initialize provider(instance) with given configuration.STRING
HIGHmusic_assistant/providers/yousee/__init__.py0initialize provider(instance) with given configuration.STRING
HIGH…ssistant/providers/filesystem_google_drive/__init__.py0initialize provider(instance) with given configuration.STRING
HIGHmusic_assistant/providers/tunein/__init__.py0initialize provider(instance) with given configuration.STRING
HIGHmusic_assistant/providers/fanarttv/__init__.py0initialize provider(instance) with given configuration.STRING
HIGHmusic_assistant/providers/motherearthradio/__init__.py0initialize provider(instance) with given configuration.STRING
HIGHmusic_assistant/providers/spotify/__init__.py0initialize provider(instance) with given configuration.STRING
427 more matches not shown…
Decorative Section Separators640 hits · 2275 pts
SeverityFileLineSnippetContext
MEDIUMtests/providers/apple_music/test_api_client.py76# ---------------------------------------------------------------------------COMMENT
MEDIUMtests/providers/apple_music/test_api_client.py78# ---------------------------------------------------------------------------COMMENT
MEDIUMtests/providers/apple_music/test_api_client.py143# ---------------------------------------------------------------------------COMMENT
MEDIUMtests/providers/apple_music/test_api_client.py145# ---------------------------------------------------------------------------COMMENT
MEDIUMtests/providers/apple_music/test_api_client.py176# ---------------------------------------------------------------------------COMMENT
MEDIUMtests/providers/apple_music/test_api_client.py178# ---------------------------------------------------------------------------COMMENT
MEDIUMtests/providers/yandex_smarthome/test_notifier.py109# ---------------------------------------------------------------------------COMMENT
MEDIUMtests/providers/yandex_smarthome/test_notifier.py111# ---------------------------------------------------------------------------COMMENT
MEDIUMtests/providers/yandex_smarthome/test_handlers.py67# ---------------------------------------------------------------------------COMMENT
MEDIUMtests/providers/yandex_smarthome/test_handlers.py69# ---------------------------------------------------------------------------COMMENT
MEDIUMtests/providers/yandex_smarthome/test_handlers.py135# ---------------------------------------------------------------------------COMMENT
MEDIUMtests/providers/yandex_smarthome/test_handlers.py137# ---------------------------------------------------------------------------COMMENT
MEDIUMtests/providers/yandex_smarthome/test_handlers.py168# ---------------------------------------------------------------------------COMMENT
MEDIUMtests/providers/yandex_smarthome/test_handlers.py170# ---------------------------------------------------------------------------COMMENT
MEDIUMtests/providers/yandex_smarthome/test_handlers.py228# ---------------------------------------------------------------------------COMMENT
MEDIUMtests/providers/yandex_smarthome/test_handlers.py230# ---------------------------------------------------------------------------COMMENT
MEDIUMtests/providers/yandex_smarthome/test_handlers.py243# ---------------------------------------------------------------------------COMMENT
MEDIUMtests/providers/yandex_smarthome/test_handlers.py245# ---------------------------------------------------------------------------COMMENT
MEDIUMtests/providers/yandex_smarthome/test_handlers.py378# ---------------------------------------------------------------------------COMMENT
MEDIUMtests/providers/yandex_smarthome/test_handlers.py380# ---------------------------------------------------------------------------COMMENT
MEDIUMtests/providers/yandex_smarthome/test_direct.py123# ---------------------------------------------------------------------------COMMENT
MEDIUMtests/providers/yandex_smarthome/test_direct.py125# ---------------------------------------------------------------------------COMMENT
MEDIUMtests/providers/yandex_smarthome/test_direct.py230# ---------------------------------------------------------------------------COMMENT
MEDIUMtests/providers/yandex_smarthome/test_direct.py232# ---------------------------------------------------------------------------COMMENT
MEDIUMtests/providers/yandex_smarthome/test_direct.py252# ---------------------------------------------------------------------------COMMENT
MEDIUMtests/providers/yandex_smarthome/test_direct.py254# ---------------------------------------------------------------------------COMMENT
MEDIUMtests/providers/yandex_smarthome/test_direct.py410# ---------------------------------------------------------------------------COMMENT
MEDIUMtests/providers/yandex_smarthome/test_direct.py412# ---------------------------------------------------------------------------COMMENT
MEDIUMtests/providers/yandex_smarthome/test_direct.py513# ---------------------------------------------------------------------------COMMENT
MEDIUMtests/providers/yandex_smarthome/test_direct.py515# ---------------------------------------------------------------------------COMMENT
MEDIUMtests/providers/yandex_smarthome/test_direct.py34# ---------------------------------------------------------------------------COMMENT
MEDIUMtests/providers/yandex_smarthome/test_direct.py36# ---------------------------------------------------------------------------COMMENT
MEDIUMtests/providers/yandex_smarthome/test_direct.py154# ---------------------------------------------------------------------------COMMENT
MEDIUMtests/providers/yandex_smarthome/test_direct.py156# ---------------------------------------------------------------------------COMMENT
MEDIUMtests/providers/yandex_smarthome/test_direct.py195# ---------------------------------------------------------------------------COMMENT
MEDIUMtests/providers/yandex_smarthome/test_direct.py197# ---------------------------------------------------------------------------COMMENT
MEDIUMtests/providers/yandex_smarthome/test_direct.py289# ---------------------------------------------------------------------------COMMENT
MEDIUMtests/providers/yandex_smarthome/test_direct.py291# ---------------------------------------------------------------------------COMMENT
MEDIUMtests/providers/yandex_smarthome/test_direct.py752# ---------------------------------------------------------------------------COMMENT
MEDIUMtests/providers/yandex_smarthome/test_direct.py754# ---------------------------------------------------------------------------COMMENT
MEDIUMtests/providers/yandex_smarthome/test_auto_skill.py91# ---------------------------------------------------------------------------COMMENT
MEDIUMtests/providers/yandex_smarthome/test_auto_skill.py93# ---------------------------------------------------------------------------COMMENT
MEDIUMtests/providers/yandex_smarthome/test_auto_skill.py152# ---------------------------------------------------------------------------COMMENT
MEDIUMtests/providers/yandex_smarthome/test_auto_skill.py154# ---------------------------------------------------------------------------COMMENT
MEDIUMtests/providers/yandex_smarthome/test_auto_skill.py235# ---------------------------------------------------------------------------COMMENT
MEDIUMtests/providers/yandex_smarthome/test_auto_skill.py237# ---------------------------------------------------------------------------COMMENT
MEDIUMtests/providers/yandex_smarthome/test_auto_skill.py377# ---------------------------------------------------------------------------COMMENT
MEDIUMtests/providers/yandex_smarthome/test_auto_skill.py379# ---------------------------------------------------------------------------COMMENT
MEDIUMtests/providers/yandex_smarthome/test_auto_skill.py456# ---------------------------------------------------------------------------COMMENT
MEDIUMtests/providers/yandex_smarthome/test_auto_skill.py458# ---------------------------------------------------------------------------COMMENT
MEDIUMtests/providers/yandex_smarthome/test_auto_skill.py42# ---------------------------------------------------------------------------COMMENT
MEDIUMtests/providers/yandex_smarthome/test_auto_skill.py44# ---------------------------------------------------------------------------COMMENT
MEDIUMtests/providers/yandex_smarthome/test_auto_skill.py285# ---------------------------------------------------------------------------COMMENT
MEDIUMtests/providers/yandex_smarthome/test_auto_skill.py287# ---------------------------------------------------------------------------COMMENT
MEDIUMtests/providers/yandex_smarthome/test_auto_skill.py312# ---------------------------------------------------------------------------COMMENT
MEDIUMtests/providers/yandex_smarthome/test_auto_skill.py314# ---------------------------------------------------------------------------COMMENT
MEDIUMtests/providers/yandex_smarthome/test_auto_skill.py351# ---------------------------------------------------------------------------COMMENT
MEDIUMtests/providers/yandex_smarthome/test_auto_skill.py353# ---------------------------------------------------------------------------COMMENT
MEDIUMtests/providers/yandex_smarthome/test_auto_skill.py413# ---------------------------------------------------------------------------COMMENT
MEDIUMtests/providers/yandex_smarthome/test_auto_skill.py415# ---------------------------------------------------------------------------COMMENT
580 more matches not shown…
Unused Imports978 hits · 940 pts
SeverityFileLineSnippetContext
LOWtests/test_library_sync.py3CODE
LOWtests/test_generate_release_notes.py3CODE
LOWtests/test_dynamic_playlist_framework.py3CODE
LOWtests/test_cross_type_features.py3CODE
LOWtests/test_websocket_client.py3CODE
LOWtests/core/test_diagnostics.py3CODE
LOWtests/core/test_provider_unload.py3CODE
LOWtests/core/test_audio_analysis_failures.py3CODE
LOWtests/core/test_ci_test_scope.py3CODE
LOWtests/integration/test_library_summary_items.py12CODE
LOWtests/integration/test_background_scan_streaming.py3CODE
LOWtests/integration/test_dynamic_mode_e2e.py11CODE
LOWtests/integration/test_dynamic_mode_e2e.py23CODE
LOWtests/integration/test_dynamic_mode_e2e.py29CODE
LOWtests/integration/test_dynamic_mode_e2e.py29CODE
LOWtests/integration/conftest.py10CODE
LOWtests/integration/conftest.py23CODE
LOWtests/integration/test_demo_group_e2e.py9CODE
LOWtests/integration/test_no_change_resync.py10CODE
LOWtests/integration/test_smart_shuffle_e2e.py10CODE
LOWtests/integration/test_smart_shuffle_e2e.py26CODE
LOWtests/integration/test_smart_shuffle_e2e.py31CODE
LOWtests/integration/test_smart_shuffle_e2e.py31CODE
LOWtests/integration/test_radio_playlist_e2e.py9CODE
LOWtests/integration/test_radio_playlist_e2e.py18CODE
LOWtests/integration/test_radio_playlist_e2e.py21CODE
LOWtests/integration/test_managed_pool_e2e.py10CODE
LOWtests/integration/test_managed_pool_e2e.py27CODE
LOWtests/integration/test_managed_pool_e2e.py33CODE
LOWtests/integration/test_managed_pool_e2e.py33CODE
LOWtests/providers/neteasecloudmusic/test_image_urls.py3CODE
LOWtests/providers/sync_group/test_sync_group.py3CODE
LOWtests/providers/smart_fades/test_dbn_postprocessor.py3CODE
LOWtests/providers/smart_fades/test_provider.py3CODE
LOWtests/providers/smart_fades/test_helpers.py3CODE
LOWtests/providers/yandex_smarthome/test_basic.py3CODE
LOWtests/providers/yandex_smarthome/test_notifier.py3CODE
LOWtests/providers/yandex_smarthome/test_handlers.py3CODE
LOWtests/providers/yandex_smarthome/test_direct.py3CODE
LOWtests/providers/yandex_smarthome/test_auto_skill.py3CODE
LOWtests/providers/yandex_smarthome/test_auto_skill_ui.py3CODE
LOWtests/providers/yandex_smarthome/test_config_actions.py10CODE
LOWtests/providers/yandex_smarthome/test_schema.py3CODE
LOW…ts/providers/yandex_smarthome/test_auto_skill_state.py3CODE
LOWtests/providers/yandex_smarthome/test_cloud.py3CODE
LOWtests/providers/yandex_smarthome/test_device.py3CODE
LOWtests/providers/bose_soundtouch/test_client.py3CODE
LOWtests/providers/zvuk_music/test_api_client.py3CODE
LOWtests/providers/zvuk_music/test_provider_browse.py3CODE
LOWtests/providers/zvuk_music/test_library.py3CODE
LOWtests/providers/zvuk_music/test_parsers.py3CODE
LOWtests/providers/zvuk_music/test_stream_details.py3CODE
LOWtests/providers/zvuk_music/test_stream_details.py5CODE
LOWtests/providers/zvuk_music/test_lyrics.py3CODE
LOWtests/providers/playlist_metadata/test_provider.py3CODE
LOWtests/providers/hass/test_provider.py3CODE
LOWtests/providers/party/test_party_plugin.py3CODE
LOW…sts/providers/filesystem_google_drive/test_provider.py3CODE
LOWtests/providers/spotify/test_setup.py3CODE
LOWtests/providers/spotify/test_auth.py11CODE
918 more matches not shown…
Hallucination Indicators53 hits · 630 pts
SeverityFileLineSnippetContext
CRITICALtests/test_library_sync.py817 mock_controller.mass.music.database.delete.assert_called_once()CODE
CRITICALtests/test_library_sync.py818 mock_controller.mass.music.database.upsert_many.assert_called_once()CODE
CRITICALtests/providers/filesystem/test_sound_effects.py78 provider.mass.music.database.get_rows_from_query.assert_not_called() # type: ignore[attr-defined]CODE
CRITICALtests/providers/filesystem/test_sound_effects.py150 provider.mass.music.tracks.get_library_item_by_prov_id.assert_not_called() # type: ignore[attr-defined]CODE
CRITICALtests/providers/filesystem/test_sound_effects.py175 provider.mass.music.tracks.get_library_item_by_prov_id.assert_awaited_once_with(CODE
CRITICALtests/providers/filesystem/test_sync_config.py95 provider.mass.music.database.get_rows_from_query.assert_not_called() # type: ignore[attr-defined]CODE
CRITICALtests/providers/filesystem/test_sync_config.py102 provider.mass.music.database.get_rows_from_query.assert_not_called() # type: ignore[attr-defined]CODE
CRITICALtests/providers/filesystem/test_sync_config.py109 provider.mass.music.database.get_rows_from_query.assert_not_called() # type: ignore[attr-defined]CODE
CRITICALtests/providers/filesystem/test_sync_config.py126 provider.mass.music.tracks.add_item_to_library.assert_not_called() # type: ignore[attr-defined]CODE
CRITICALtests/providers/filesystem/test_sync_config.py149 provider.mass.music.tracks.add_item_to_library.assert_called_once()CODE
CRITICALtests/providers/filesystem/test_sync_config.py162 provider.mass.music.playlists.add_item_to_library.assert_not_called() # type: ignore[attr-defined]CODE
CRITICALtests/providers/filesystem/test_sync_config.py180 provider.mass.music.playlists.add_item_to_library.assert_called_once()CODE
CRITICALtests/providers/filesystem/test_sync_config.py203 provider.mass.music.audiobooks.add_item_to_library.assert_called_once()CODE
CRITICALtests/providers/filesystem/test_sync_config.py227 provider.mass.music.podcasts.add_item_to_library.assert_called_once()CODE
CRITICALtests/providers/plex/test_provider_methods.py802 provider.mass.music.database.get_rows_from_query.assert_not_awaited()CODE
CRITICALtests/providers/plex/test_provider_methods.py830 provider.mass.music.database.get_rows_from_query.assert_not_awaited()CODE
CRITICALtests/providers/builtin/test_infinite_mix.py94 provider.mass.music.tracks.library_items.assert_called_once_with(CODE
CRITICALtests/providers/builtin/test_infinite_mix.py111 provider.mass.music.tracks.library_items.assert_called_once_with(CODE
CRITICALtests/providers/builtin/test_infinite_mix.py161 provider.mass.music.tracks.library_items.assert_called_once_with(CODE
CRITICALtests/providers/tidal/test_streaming.py592 provider_mock.mass.music.tracks.update_provider_mapping.assert_awaited_once()CODE
CRITICALtests/providers/tidal/test_streaming.py593 provider_mock.mass.music.tracks.update_provider_mapping.assert_awaited_with(CODE
CRITICALtests/providers/tidal/test_streaming.py522 provider_mock.mass.music.tracks.update_provider_mapping.assert_not_called()CODE
CRITICALtests/providers/tidal/test_streaming.py542 provider_mock.mass.music.tracks.update_provider_mapping.assert_not_called()CODE
CRITICALtests/providers/tidal/test_streaming.py566 provider_mock.mass.music.tracks.update_provider_mapping.assert_not_called()CODE
CRITICAL…/controllers/streams/test_audio_analysis_controller.py616 provider.mass.streams.audio_analysis.get_audio_analysis_version.assert_awaited_once_with(CODE
CRITICALtests/controllers/player_queues/test_autoplay.py128 queues.mass.music.tracks.library_items.assert_awaited_once()CODE
CRITICALtests/controllers/metadata/test_enrichment.py62 enrichment.mass.music.albums.update_item_in_library.assert_awaited_once()CODE
CRITICAL…rollers/metadata/test_playlist_metadata_integration.py225 enrichment.mass.music.playlists.update_item_in_library.assert_called_once()CODE
CRITICALmusic_assistant/providers/apple_music/api_client.py218 locale = self.provider.mass.metadata.locale.replace("_", "-")CODE
CRITICALmusic_assistant/providers/msx_bridge/http_server.py593 self.provider.mass.music.tracks.library_items(CODE
CRITICALmusic_assistant/providers/msx_bridge/http_server.py812 albums = await self.provider.mass.music.artists.albums(item_id, "library")CODE
CRITICALmusic_assistant/providers/msx_bridge/http_server.py839 t async for t in self.provider.mass.music.playlists.tracks(item_id, "library")CODE
CRITICALmusic_assistant/providers/msx_bridge/http_server.py880 await self.provider.mass.music.albums.tracks(item_id, provider_name)CODE
CRITICALmusic_assistant/providers/msx_bridge/http_server.py903 t async for t in self.provider.mass.music.playlists.tracks(item_id, "library")CODE
CRITICALmusic_assistant/providers/msx_bridge/http_server.py464 self.provider.mass.music.albums.library_items(CODE
CRITICALmusic_assistant/providers/msx_bridge/http_server.py495 self.provider.mass.music.artists.library_items(CODE
CRITICALmusic_assistant/providers/msx_bridge/http_server.py524 self.provider.mass.music.playlists.library_items(CODE
CRITICALmusic_assistant/providers/msx_bridge/http_server.py553 self.provider.mass.music.tracks.library_items(CODE
CRITICALmusic_assistant/providers/msx_bridge/http_server.py776 await self.provider.mass.music.albums.tracks(item_id, provider)CODE
CRITICALmusic_assistant/providers/msx_bridge/http_server.py925 tracks = await self.provider.mass.music.tracks.library_items(CODE
CRITICALmusic_assistant/providers/msx_bridge/http_server.py943 tracks = await self.provider.mass.music.tracks.library_items(CODE
CRITICALmusic_assistant/providers/msx_bridge/http_server.py1807 albums = await self.provider.mass.music.albums.library_items(CODE
CRITICALmusic_assistant/providers/msx_bridge/http_server.py1829 tracks = await self.provider.mass.music.albums.tracks(item_id, "library")CODE
CRITICALmusic_assistant/providers/msx_bridge/http_server.py1840 artists = await self.provider.mass.music.artists.library_items(CODE
CRITICALmusic_assistant/providers/msx_bridge/http_server.py1861 albums = await self.provider.mass.music.artists.albums(item_id, "library")CODE
CRITICALmusic_assistant/providers/msx_bridge/http_server.py1881 playlists = await self.provider.mass.music.playlists.library_items(CODE
CRITICALmusic_assistant/providers/msx_bridge/http_server.py1902 tracks = [t async for t in self.provider.mass.music.playlists.tracks(item_id, "library")]CODE
CRITICALmusic_assistant/providers/msx_bridge/http_server.py1913 tracks = await self.provider.mass.music.tracks.library_items(CODE
CRITICALmusic_assistant/providers/msx_bridge/http_server.py1967 tracks = await self.provider.mass.music.tracks.library_items(CODE
CRITICAL…ic_assistant/providers/snapcast/snapweb/snapcontrol.js562 let serverVersion = snapcontrol.server.server.snapserver.version.split('.');CODE
CRITICALmusic_assistant/providers/chromecast/sendspin_bridge.py544 self.cast_player.cc.socket_client.receiver_controller.launch_app(CODE
CRITICALmusic_assistant/providers/sendspin/playback.py1234 self.player.mass.streams.audio.get_player_filter_params(CODE
CRITICAL…t/providers/samsung_wam/features/state_sync/handler.py171 group_children = self.player.prov.groups.states.get(self.player.player_id, set())CODE
Excessive Try-Catch Wrapping607 hits · 610 pts
SeverityFileLineSnippetContext
LOWtests/core/test_diagnostics.py164 except Exception:CODE
LOWtests/providers/nicovideo/test_converters.py127 except Exception as e:CODE
LOWtests/providers/nicovideo/test_converters.py149 except Exception as e:CODE
LOWmusic_assistant/mass.py756 except Exception as exc:CODE
LOWmusic_assistant/mass.py823 except Exception as exc:CODE
LOWmusic_assistant/mass.py875 except Exception as err:CODE
LOWmusic_assistant/mass.py1193 except Exception as exc:CODE
LOWmusic_assistant/providers/wiim/provider.py171 except Exception:CODE
LOWmusic_assistant/providers/wiim/provider.py187 except Exception:CODE
LOWmusic_assistant/providers/wiim/player.py120 except Exception:CODE
LOWmusic_assistant/providers/hass_players/helpers.py86 except Exception as exc:CODE
LOW…sic_assistant/providers/local_audio/sendspin_bridge.py806 except Exception as err:CODE
LOWmusic_assistant/providers/ytmusic/__init__.py782 except Exception as err:CODE
LOWmusic_assistant/providers/vban_receiver/provider.py161 except Exception as err:CODE
LOWmusic_assistant/providers/sync_group/player.py1111 except Exception as err:CODE
LOWmusic_assistant/providers/apple_music/library.py363 except Exception as err:CODE
LOWmusic_assistant/providers/apple_music/__init__.py153 except Exception as error:STRING
LOWmusic_assistant/providers/yandex_smarthome/cloud.py69 except Exception:CODE
LOWmusic_assistant/providers/yandex_smarthome/cloud.py134 except Exception:CODE
LOWmusic_assistant/providers/yandex_smarthome/cloud.py143 except Exception:CODE
LOWmusic_assistant/providers/yandex_smarthome/device.py465 except Exception:CODE
LOWmusic_assistant/providers/yandex_smarthome/notifier.py177 except Exception:CODE
LOWmusic_assistant/providers/yandex_smarthome/notifier.py205 except Exception:CODE
LOWmusic_assistant/providers/yandex_smarthome/notifier.py228 except Exception:CODE
LOWmusic_assistant/providers/yandex_smarthome/notifier.py259 except Exception:CODE
LOWmusic_assistant/providers/yandex_smarthome/handlers.py69 except Exception:CODE
LOWmusic_assistant/providers/yandex_smarthome/handlers.py97 except Exception:CODE
LOWmusic_assistant/providers/yandex_smarthome/__init__.py157 except Exception:CODE
LOWmusic_assistant/providers/yandex_smarthome/__init__.py172 except Exception:CODE
LOWmusic_assistant/providers/yandex_smarthome/__init__.py233 except Exception as exc: # defensive — never crash the config formCODE
LOWmusic_assistant/providers/yandex_smarthome/__init__.py293 except Exception: # noqa: S110CODE
LOW…sic_assistant/providers/yandex_smarthome/auto_skill.py698 except Exception as exc:CODE
LOW…sic_assistant/providers/yandex_smarthome/auto_skill.py974 except Exception:CODE
LOW…sic_assistant/providers/yandex_smarthome/auto_skill.py1096 except Exception as exc:CODE
LOW…sic_assistant/providers/yandex_smarthome/auto_skill.py1298 except Exception:CODE
LOWmusic_assistant/providers/yandex_smarthome/plugin.py288 except Exception:CODE
LOWmusic_assistant/providers/yandex_smarthome/direct.py175 except Exception:CODE
LOWmusic_assistant/providers/yandex_smarthome/direct.py227 except Exception:CODE
LOWmusic_assistant/providers/yandex_smarthome/direct.py239 except Exception:CODE
LOWmusic_assistant/providers/yandex_smarthome/direct.py255 except Exception:CODE
LOWmusic_assistant/providers/yandex_smarthome/direct.py267 except Exception:CODE
LOWmusic_assistant/providers/yandex_smarthome/direct.py276 except Exception:CODE
LOWmusic_assistant/providers/yandex_smarthome/direct.py289 except Exception:CODE
LOWmusic_assistant/providers/yandex_smarthome/direct.py356 except Exception:CODE
LOWmusic_assistant/providers/bose_soundtouch/provider.py73 except Exception:CODE
LOWmusic_assistant/providers/airplay_receiver/metadata.py106 except Exception as err:CODE
LOWmusic_assistant/providers/airplay_receiver/metadata.py164 except Exception as err:CODE
LOWmusic_assistant/providers/airplay_receiver/metadata.py212 except Exception as err:CODE
LOWmusic_assistant/providers/airplay_receiver/metadata.py226 except Exception as err:CODE
LOWmusic_assistant/providers/airplay_receiver/__init__.py304 except Exception as err:CODE
LOWmusic_assistant/providers/airplay_receiver/__init__.py453 except Exception as err:CODE
LOWmusic_assistant/providers/zvuk_music/provider.py568 except Exception as err:CODE
LOWmusic_assistant/providers/jellyfin/__init__.py165 except Exception as err:CODE
LOWmusic_assistant/providers/playlist_metadata/__init__.py431 except Exception as err:CODE
LOWmusic_assistant/providers/playlist_metadata/__init__.py455 except Exception as err:CODE
LOWmusic_assistant/providers/playlist_metadata/__init__.py471 except Exception as err:CODE
LOWmusic_assistant/providers/playlist_metadata/__init__.py479 except Exception as err:CODE
LOWmusic_assistant/providers/playlist_metadata/__init__.py495 except Exception as err:CODE
LOWmusic_assistant/providers/playlist_metadata/__init__.py631 except Exception as err:CODE
LOWmusic_assistant/providers/playlist_metadata/__init__.py671 except Exception as err:CODE
547 more matches not shown…
Deep Nesting290 hits · 259 pts
SeverityFileLineSnippetContext
LOWtests/test_library_sync.py477CODE
LOWtests/test_library_sync.py528CODE
LOWtests/integration/test_library_summary_items.py159CODE
LOWtests/providers/fastmcp_server/test_origin.py321CODE
LOWtests/providers/fastmcp_server/test_config_security.py49CODE
LOWtests/providers/fastmcp_server/test_config_security.py76CODE
LOWtests/providers/music_quiz/test_plugin.py2188CODE
LOWtests/providers/music_quiz/test_plugin.py2531CODE
LOWtests/providers/music_quiz/test_models.py330CODE
LOWmusic_assistant/providers/wiim/player.py260CODE
LOWmusic_assistant/providers/wiim/player.py363CODE
LOWmusic_assistant/providers/hass_players/provider.py97CODE
LOWmusic_assistant/providers/hass_players/player.py401CODE
LOWmusic_assistant/providers/local_audio/provider.py25CODE
LOW…sic_assistant/providers/local_audio/sendspin_bridge.py642CODE
LOW…sic_assistant/providers/local_audio/sendspin_bridge.py747CODE
LOW…sic_assistant/providers/local_audio/sendspin_bridge.py876CODE
LOWmusic_assistant/providers/ytmusic/__init__.py235CODE
LOWmusic_assistant/providers/ytmusic/__init__.py431CODE
LOWmusic_assistant/providers/ytmusic/__init__.py530CODE
LOWmusic_assistant/providers/ytmusic/__init__.py551CODE
LOWmusic_assistant/providers/ytmusic/__init__.py635CODE
LOWmusic_assistant/providers/ytmusic/__init__.py687CODE
LOWmusic_assistant/providers/ytmusic/__init__.py845CODE
LOWmusic_assistant/providers/ytmusic/__init__.py691CODE
LOWmusic_assistant/providers/ytmusic/helpers.py325CODE
LOWmusic_assistant/providers/ytmusic/helpers.py330CODE
LOWmusic_assistant/providers/vban_receiver/provider.py197CODE
LOWmusic_assistant/providers/bandcamp/converters.py54CODE
LOWmusic_assistant/providers/sync_group/player.py111CODE
LOWmusic_assistant/providers/audiobookshelf/__init__.py259CODE
LOWmusic_assistant/providers/audiobookshelf/__init__.py435CODE
LOWmusic_assistant/providers/audiobookshelf/__init__.py525CODE
LOWmusic_assistant/providers/audiobookshelf/__init__.py1184CODE
LOWmusic_assistant/providers/audiobookshelf/__init__.py1797CODE
LOWmusic_assistant/providers/apple_music/library.py231CODE
LOWmusic_assistant/providers/apple_music/library.py302CODE
LOWmusic_assistant/providers/apple_music/helpers/browse.py70CODE
LOWmusic_assistant/providers/smart_fades/helpers.py123CODE
LOWmusic_assistant/providers/theaudiodb/__init__.py186CODE
LOWmusic_assistant/providers/theaudiodb/__init__.py216CODE
LOWmusic_assistant/providers/yandex_smarthome/__init__.py248CODE
LOWmusic_assistant/providers/bose_soundtouch/player.py258CODE
LOWmusic_assistant/providers/airplay_receiver/metadata.py61CODE
LOWmusic_assistant/providers/airplay_receiver/metadata.py114CODE
LOWmusic_assistant/providers/airplay_receiver/metadata.py170CODE
LOWmusic_assistant/providers/airplay_receiver/metadata.py276CODE
LOWmusic_assistant/providers/airplay_receiver/metadata.py313CODE
LOWmusic_assistant/providers/airplay_receiver/__init__.py573CODE
LOWmusic_assistant/providers/zvuk_music/parsers.py132CODE
LOWmusic_assistant/providers/playlist_metadata/__init__.py1110CODE
LOWmusic_assistant/providers/playlist_metadata/__init__.py193CODE
LOWmusic_assistant/providers/playlist_metadata/__init__.py503CODE
LOWmusic_assistant/providers/playlist_metadata/__init__.py1157CODE
LOWmusic_assistant/providers/test/__init__.py160CODE
LOWmusic_assistant/providers/hass/__init__.py419CODE
LOWmusic_assistant/providers/hass/__init__.py562CODE
LOWmusic_assistant/providers/bbc_sounds/__init__.py510CODE
LOWmusic_assistant/providers/bbc_sounds/__init__.py663CODE
LOWmusic_assistant/providers/bbc_sounds/__init__.py683CODE
230 more matches not shown…
Modern Structural Boilerplate253 hits · 256 pts
SeverityFileLineSnippetContext
LOWtests/providers/musicbrainz/test_recommendations.py81def _set_library(provider_mock: Mock, artists: list[Artist]) -> None:CODE
LOWtests/providers/fastmcp_server/test_e2e_hotswap.py62def _set_config_values(cfg: MagicMock, **overrides: Any) -> None:CODE
LOWtests/providers/snapcast/conftest.py22 def set_callback(self, cb: Any) -> None:CODE
LOWtests/providers/yandex_ynison/test_ynison_client.py451 def _setup_ws(self, client: YnisonClient) -> None:CODE
LOWtests/providers/yandex_ynison/test_ynison_client.py748 def _setup_ws(self, client: YnisonClient) -> None:CODE
LOWtests/providers/yandex_ynison/test_ynison_client.py1393 async def set_stop(*_args: Any, **_kwargs: Any) -> None:CODE
LOWtests/providers/airplay/test_player.py157def _set_discovery_info(player: AirPlayPlayer, *, raop: bool, airplay: bool) -> None:CODE
LOWtests/controllers/music/test_genres.py1569async def _set_track_genres(mass: MusicAssistant, track_id: int, genres: list[str]) -> None:CODE
LOWtests/controllers/music/test_genres.py136async def _set_podcast_genres(mass: MusicAssistant, podcast_id: int, genres: list[str]) -> None:CODE
LOWtests/controllers/music/test_genres.py1580async def _set_album_genres(mass: MusicAssistant, album_id: int, genres: list[str]) -> None:CODE
LOWtests/controllers/players/test_player_controller.py464def _set_play_media_override(mock_mass: MagicMock, value: bool) -> None:CODE
LOWtests/helpers/test_scrobbler.py31 async def _update_now_playing(self, report: MediaItemPlaybackProgressReport) -> None:CODE
LOWtests/helpers/test_scrobbler.py195 async def _update_now_playing(self, report: MediaItemPlaybackProgressReport) -> None:CODE
LOWtests/helpers/test_throttle_retry.py38 def set_side_effects(self, effects: Sequence[Exception | str]) -> None:CODE
LOWmusic_assistant/mass.py1214 async def _update_available_providers_cache(self) -> None:CODE
LOWmusic_assistant/mass.py1238 async def _setup_storage(self) -> None:CODE
LOWmusic_assistant/mass.py1245 def _set_state(self, new_state: CoreState) -> None:CODE
LOWmusic_assistant/__main__.py269 def _set_stop() -> None:CODE
LOWmusic_assistant/providers/wiim/player.py363 def _update_ma_state_from_sdk_cache(self) -> None:CODE
LOWmusic_assistant/providers/hass_players/provider.py157 def update_player_from_state_msg(entity_id: str, state: CompressedState) -> None:CODE
LOWmusic_assistant/providers/hass_players/player.py365 def update_from_compressed_state(self, state: CompressedState) -> None:CODE
LOWmusic_assistant/providers/hass_players/player.py376 def _update_hass_features(self, hass_supported_features: MediaPlayerEntityFeature) -> None:CODE
LOWmusic_assistant/providers/hass_players/player.py401 def _update_attributes(self, attributes: dict[str, Any]) -> None:CODE
LOWmusic_assistant/providers/sync_group/player.py908 def _update_attributes(self) -> None:CODE
LOWmusic_assistant/providers/audiobookshelf/__init__.py1984 async def _set_playlog_from_user(self, user: User) -> None:CODE
LOWmusic_assistant/providers/audiobookshelf/__init__.py1997 async def _set_playlog_from_user_sync(self, progresses: list[MediaProgress]) -> None:CODE
LOWmusic_assistant/providers/audiobookshelf/__init__.py2061 async def _update_playlog_book(self, progress: MediaProgress) -> None:CODE
LOWmusic_assistant/providers/audiobookshelf/__init__.py2083 async def _update_playlog_episode(self, progress: MediaProgress) -> None:CODE
LOWmusic_assistant/providers/audiobookshelf/__init__.py2104 async def _update_book_narrators(self, library_id: str) -> None:CODE
LOWmusic_assistant/providers/apple_music/library.py218 async def set_favorite(self, prov_item_id: str, media_type: MediaType, favorite: bool) -> None:CODE
LOWmusic_assistant/providers/apple_music/provider.py211 async def set_favorite(self, prov_item_id: str, media_type: MediaType, favorite: bool) -> None:CODE
LOWmusic_assistant/providers/apple_music/__init__.py40__all__ = ["AppleMusicProvider", "get_config_entries", "setup"]CODE
LOW…ic_assistant/providers/apple_music/helpers/__init__.py6__all__ = [CODE
LOW…_assistant/providers/yandex_smarthome/auto_skill_ui.py55__all__ = [CODE
LOW…sistant/providers/yandex_smarthome/auto_skill_state.py19__all__ = [CODE
LOW…sic_assistant/providers/yandex_smarthome/auto_skill.py317 async def update_draft(self, csrf: str, skill_id: str, payload: Mapping[str, Any]) -> None:CODE
LOW…sic_assistant/providers/yandex_smarthome/auto_skill.py64__all__ = [CODE
LOWmusic_assistant/providers/yandex_smarthome/_compat.py32__all__ = ["SecretStr"]CODE
LOWmusic_assistant/providers/bose_soundtouch/client.py102 async def set_volume(self, level: int) -> None:CODE
LOWmusic_assistant/providers/bose_soundtouch/client.py137 async def set_zone(self, master_id: str, members: list[tuple[str, str]]) -> None:CODE
LOWmusic_assistant/providers/bose_soundtouch/player.py247 def update_ip_address(self, ip_address: str) -> None:CODE
LOWmusic_assistant/providers/bose_soundtouch/player.py378 def _update_state_from_now_playing(self, now_playing: SoundTouchNowPlaying) -> None:CODE
LOWmusic_assistant/providers/airplay_receiver/__init__.py514 async def _setup_pipes_and_config(self) -> None:CODE
LOWmusic_assistant/providers/airplay_receiver/__init__.py634 def _setup_shairport_daemon(self) -> None:CODE
LOWmusic_assistant/providers/airplay_receiver/__init__.py749 def _update_source_metadata(self, metadata: dict[str, Any]) -> None:CODE
LOWmusic_assistant/providers/airplay_receiver/__init__.py773 def _update_cover_art(self, metadata: dict[str, Any]) -> None:CODE
LOWmusic_assistant/providers/hass/__init__.py675 def _update_control_from_state_msg(self, entity_id: str, state: CompressedState) -> None:CODE
LOW…_assistant/providers/listenbrainz_scrobble/__init__.py136 async def _update_now_playing(self, report: MediaItemPlaybackProgressReport) -> None:CODE
LOWmusic_assistant/providers/musiccast/player.py163 async def set_static_attributes(self) -> None:CODE
LOWmusic_assistant/providers/musiccast/player.py250 async def set_dynamic_attributes(self, update_state: bool = True) -> None:CODE
LOWmusic_assistant/providers/musiccast/player.py695 async def _set_player_unavailable(self) -> None:CODE
LOWmusic_assistant/providers/musiccast/player.py718 async def _set_player_available(self) -> None:CODE
LOWmusic_assistant/providers/musiccast/player.py861 async def set_option(self, option_key: str, option_value: PlayerOptionValueType) -> None:CODE
LOWmusic_assistant/providers/spotify/provider.py1055 async def _setup_librespot_auth(self, access_token: str) -> None:CODE
LOWmusic_assistant/providers/spotify/provider.py1240 async def _set_playlist_requires_global_token(self, prov_playlist_id: str) -> None:CODE
LOWmusic_assistant/providers/deezer/gw_client.py54 async def _set_cookie(self) -> None:CODE
LOWmusic_assistant/providers/deezer/gw_client.py62 async def _update_user_data(self) -> None:CODE
LOWmusic_assistant/providers/deezer/__init__.py21__all__ = ["DeezerProvider"]CODE
LOWmusic_assistant/providers/dlna/player.py104 def set_available(self, available: bool) -> None:CODE
LOWmusic_assistant/providers/dlna/player.py128 def set_static_attributes(self) -> None:CODE
193 more matches not shown…
Redundant / Tautological Comments130 hits · 193 pts
SeverityFileLineSnippetContext
LOWmusic_assistant/providers/vban_receiver/provider.py265 # Check if the stream_id has changed underneath us while waitingCOMMENT
LOWmusic_assistant/providers/airplay_receiver/metadata.py118 # Check if we have a complete line before any XMLCOMMENT
LOWmusic_assistant/providers/airplay_receiver/__init__.py590 # Check if process started successfullyCOMMENT
LOW…stant/providers/airplay_receiver/bin/build_binaries.sh85 # Check if Homebrew is installedCOMMENT
LOWmusic_assistant/providers/zvuk_music/__init__.py72 # Check if user is authenticatedCOMMENT
LOWmusic_assistant/providers/party/__init__.py621 # Check if guest access is enabledCOMMENT
LOWmusic_assistant/providers/party/__init__.py914 # Check if guest access and skip are enabledCOMMENT
LOWmusic_assistant/providers/spotify/provider.py123 # Check if user has a custom client ID with valid dev tokenCOMMENT
LOWmusic_assistant/providers/spotify/__init__.py99 # Check if audiobooks are supported by existing provider instanceCOMMENT
LOWmusic_assistant/providers/audible/__init__.py265 # Check if we have signing auth (preferred, stable - not affected by API changes)COMMENT
LOWmusic_assistant/providers/msx_bridge/http_server.py1231 # Check if we need to create a new shared stream (leader creates it)COMMENT
LOWmusic_assistant/providers/bluesound/provider.py78 # Check if the IP address has changedCOMMENT
LOW…_assistant/providers/nicovideo/provider_mixins/core.py56 # Check if login credentials are providedCOMMENT
LOWmusic_assistant/providers/nicovideo/services/video.py156 # Check if this is already a media playlist (has #EXTINF)COMMENT
LOW…providers/sonic_analysis/vendored_clap/clap_wrapper.py57 # Check if version is supportedCOMMENT
LOWmusic_assistant/providers/yandex_music/provider.py2384 # Check if we've already reached the limitCOMMENT
LOWmusic_assistant/providers/yandex_music/__init__.py305 # Check if user is authenticatedCOMMENT
LOWmusic_assistant/providers/yandex_music/api_client.py1237 # Check if it's LRC format (synced lyrics have timestamps like [00:12.34])COMMENT
LOWmusic_assistant/providers/universal_player/provider.py89 # Check if player already existsCOMMENT
LOWmusic_assistant/providers/universal_player/provider.py207 # Check if universal player already existsCOMMENT
LOWmusic_assistant/providers/universal_player/provider.py534 # Check if this separate universal player already existsCOMMENT
LOWmusic_assistant/providers/soundcloud/__init__.py396 # Check if we have a valid response with tracks collectionCOMMENT
LOWmusic_assistant/providers/yandex_ynison/provider.py1267 # Check if manual player switching is allowedCOMMENT
LOWmusic_assistant/providers/airplay/provider.py202 # Check if this is a local address (loopback or matches our server's IP)COMMENT
LOWmusic_assistant/providers/pandora/provider.py375 # Check if already cached in sessionCOMMENT
LOWmusic_assistant/providers/internet_archive/provider.py198 # Check if we have enough results across all typesCOMMENT
LOWmusic_assistant/providers/internet_archive/provider.py315 # Check if this is audiobook content using improved detectionCOMMENT
LOWmusic_assistant/providers/internet_archive/provider.py324 # Check if this is podcast contentCOMMENT
LOWmusic_assistant/providers/internet_archive/provider.py583 # Check if this is the same as album artist to avoid duplicates (case-insensitive)COMMENT
LOWmusic_assistant/providers/plex/__init__.py1108 # Check if this is a collection (collections have the format "collection:<key>")COMMENT
LOWmusic_assistant/providers/plex/__init__.py1125 # Check if this is a collection (collections have the format "collection:<key>")COMMENT
LOWmusic_assistant/providers/plex/__init__.py1546 # Check if album rating meets the configured threshold for favoritesCOMMENT
LOWmusic_assistant/providers/plex/__init__.py1693 # Check if track rating meets the configured threshold for favoritesCOMMENT
LOWmusic_assistant/providers/plex_connect/gdm.py179 # Check if this is a discovery request (M-SEARCH) not our own HELLOCOMMENT
LOWmusic_assistant/providers/webdav/provider.py252 # Check if this is an audio file with embedded imageCOMMENT
LOWmusic_assistant/providers/webdav/helpers.py124 # Check if it's a directoryCOMMENT
LOWmusic_assistant/providers/kion_music/provider.py1710 # Check if we've already reached the limitCOMMENT
LOWmusic_assistant/providers/kion_music/__init__.py78 # Check if user is authenticatedCOMMENT
LOWmusic_assistant/providers/kion_music/api_client.py571 # Check if it's LRC format (synced lyrics have timestamps like [00:12.34])COMMENT
LOWmusic_assistant/providers/sendspin/provider.py563 # Check if client still exists (may have disconnected while waiting)COMMENT
LOWmusic_assistant/providers/podcastfeed/__init__.py208 # Check if we got actual image contentCOMMENT
LOWmusic_assistant/providers/tidal/tidal_page_parser.py128 # Check if item appears to be a mixCOMMENT
LOWmusic_assistant/providers/tidal/auth_manager.py127 # Check if token is expiredCOMMENT
LOWmusic_assistant/models/player.py1421 # Check if the protocol player is actually availableCOMMENT
LOWmusic_assistant/models/player.py2777 # Check if member_id is a provider instance IDCOMMENT
LOWmusic_assistant/controllers/music/controller.py353 # Check if the search query is a streaming provider public shareable URLCOMMENT
LOWmusic_assistant/controllers/music/media/playlists.py383 # Check if any existing mapping's item_id has been modified for non-streaming providersCOMMENT
LOWmusic_assistant/controllers/music/media/genres.py1991 # Check if a non-excluded genre in this taxonomy exists with this name as its ownCOMMENT
LOWmusic_assistant/controllers/music/media/genres.py2041 # Check if this name was deliberately excluded in this taxonomy before creatingCOMMENT
LOWmusic_assistant/controllers/players/controller.py2965 # Check if parent config still existsCOMMENT
LOWmusic_assistant/controllers/players/controller.py3153 # Check if new source is external (not MA-managed)COMMENT
LOWmusic_assistant/controllers/players/controller.py3212 # Check if it's a known queue IDCOMMENT
LOWmusic_assistant/controllers/players/controller.py3791 # Check if player has mute lock (set when individually muted in a group)COMMENT
LOWmusic_assistant/controllers/players/protocol_linking.py562 # Check if this universal player should now be merged with anotherCOMMENT
LOWmusic_assistant/controllers/players/protocol_linking.py578 # Check if universal player has generic device info (from restore)COMMENT
LOWmusic_assistant/controllers/players/protocol_linking.py195 # Check if this universal player should now be merged with anotherCOMMENT
LOWmusic_assistant/controllers/players/protocol_linking.py236 # Check if linking actually succeeded (may be refused forCOMMENT
LOWmusic_assistant/controllers/players/protocol_linking.py252 # Check if this universal player should now be merged with anotherCOMMENT
LOWmusic_assistant/controllers/players/protocol_linking.py401 # Check if this protocol player has a cached parent (was previously linked)COMMENT
LOWmusic_assistant/controllers/players/protocol_linking.py460 # Check if there's an existing universal player we should joinCOMMENT
70 more matches not shown…
Cross-Language Confusion22 hits · 145 pts
SeverityFileLineSnippetContext
HIGHtests/controllers/music/test_music_migrations.py294 1: ("smart_fades", '{"spectral_centroid": [1.5, null, 2.5, null], "bpm": 120}'),CODE
HIGHtests/controllers/music/test_music_migrations.py297 3: ("other_domain", '{"spectral_centroid": [null], "bpm": 100}'),CODE
HIGHmusic_assistant/providers/yousee/media.py247 tracks(first: $first, after: null, orderBy: POPULARITY) {CODE
HIGH…sic_assistant/providers/fastmcp_server/connect/page.py175 info: null,CODE
HIGH…sic_assistant/providers/fastmcp_server/connect/page.py176 sessionToken: null,CODE
HIGH…sic_assistant/providers/fastmcp_server/connect/page.py177 selectedClientId: null,CODE
HIGH…sic_assistant/providers/fastmcp_server/connect/page.py187 if (cachedTokens && typeof cachedTokens === "object") state.tokens = cachedTokens;CODE
HIGH…sic_assistant/providers/fastmcp_server/connect/page.py202 let data = null;CODE
HIGH…sic_assistant/providers/fastmcp_server/connect/page.py302 state.sessionToken = null;CODE
HIGH…sic_assistant/providers/fastmcp_server/connect/page.py310 showMsg((data && data.error) || ("HTTP " + res.status), "bad");CODE
HIGH…sic_assistant/providers/fastmcp_server/connect/page.py320 if (navigator.clipboard && navigator.clipboard.writeText) {CODE
HIGH…sic_assistant/providers/fastmcp_server/connect/page.py334 if (!c || !state.lastSnippet) return null;CODE
HIGH…sic_assistant/providers/fastmcp_server/connect/page.py336 try { parsed = JSON.parse(state.lastSnippet); } catch (_) { return null; }CODE
HIGH…sic_assistant/providers/fastmcp_server/connect/page.py337 const inner = (parsed.mcpServers && parsed.mcpServers.ma) || null;CODE
HIGH…sic_assistant/providers/fastmcp_server/connect/page.py337 const inner = (parsed.mcpServers && parsed.mcpServers.ma) || null;CODE
HIGH…sic_assistant/providers/fastmcp_server/connect/page.py338 if (!inner) return null;CODE
HIGH…sic_assistant/providers/fastmcp_server/connect/page.py411 showMsg((data && data.error) || "Sign-in failed.", "bad");CODE
HIGH…sic_assistant/providers/fastmcp_server/connect/page.py422 showMsg("Signed in as " + (data.user && data.user.username || "user") + ".", "good");CODE
HIGHmusic_assistant/providers/sendspin/playback.py568 await processor.push(chunk)CODE
HIGHmusic_assistant/providers/sendspin/playback.py1348 await processor.push(chunk)CODE
HIGHmusic_assistant/controllers/streams/audio_analysis.py425 # non-finite floats serialize to JSON null, which corrupts the stored row;COMMENT
HIGHmusic_assistant/controllers/webserver/api_docs.py1012 # Filter out None/null types (None, NoneType, null all mean JSON null)COMMENT
Self-Referential Comments37 hits · 108 pts
SeverityFileLineSnippetContext
MEDIUMtests/test_webserver_auth.py150 # Create a user firstCOMMENT
MEDIUMtests/test_remote_access.py264 # Create a session firstCOMMENT
MEDIUMtests/providers/bandcamp/test_converters.py20 # Create a mock SearchResultTrackCOMMENT
MEDIUMtests/providers/bandcamp/test_converters.py39 # Create a mock SearchResultAlbumCOMMENT
MEDIUMtests/providers/bandcamp/test_converters.py58 # Create a mock SearchResultArtistCOMMENT
MEDIUMtests/providers/apple_music/test_library.py483 # Create an ItemMapping instead of a TrackCOMMENT
MEDIUMtests/providers/msx_bridge/test_player.py422 # Create a member whose play_media calls back into leader's propagationCOMMENT
MEDIUMtests/providers/smart_playlist/test_smart_playlist.py1738 # Create a library track without genresCOMMENT
MEDIUMtests/providers/yandex_ynison/test_ynison_client.py527 # Create a real task that we can cancelCOMMENT
MEDIUMtests/providers/tidal/test_api_client.py45 # Create a mock that acts as an async context managerCOMMENT
MEDIUMtests/providers/tidal/test_streaming.py636 # Create a mapping that triggers the update pathCOMMENT
MEDIUMtests/controllers/players/test_protocol_linking.py39 # Create a mock manifestCOMMENT
MEDIUMtests/helpers/test_throttle_retry.py329 # Create a date 60 seconds in the futureCOMMENT
MEDIUMmusic_assistant/providers/vban_receiver/vban.py44 # Create a socket and set the optionsCOMMENT
MEDIUM…c_assistant/providers/_demo_music_provider/__init__.py452 # Create a new playlist on the provider.COMMENT
MEDIUMmusic_assistant/providers/airplay_receiver/metadata.py71 # Create an asyncio.Event to signal when data is availableCOMMENT
MEDIUMmusic_assistant/providers/party/__init__.py817 # Create a QueueItem from the media itemCOMMENT
MEDIUMmusic_assistant/providers/spotify/parsers.py292 # Create a minimal podcast reference if none availableCOMMENT
MEDIUMmusic_assistant/providers/deezer/parsers.py772 # Create a full Artist object so MA doesn't try to resolve it.COMMENT
MEDIUMmusic_assistant/providers/deezer/parsers.py800 # Create a full Album object so MA doesn't try to resolve it.COMMENT
MEDIUM…istant/providers/nicovideo/provider_mixins/playlist.py120 # Create a new mylist using niconico.pyCOMMENT
MEDIUM…assistant/providers/digitally_incorporated/__init__.py784 # Create a mapping of filter ID to genre nameCOMMENT
MEDIUMmusic_assistant/providers/snapcast/socket_server.py77 # Create the socket serverCOMMENT
MEDIUMmusic_assistant/providers/universal_player/provider.py133 # Create the player instanceCOMMENT
MEDIUMmusic_assistant/providers/plex/__init__.py1248 # Create a recommendation folder for each hubCOMMENT
MEDIUM…ic_assistant/providers/_demo_player_provider/player.py40 # This method is optional and should be implemented if you need to handleCOMMENT
MEDIUM…ic_assistant/providers/_demo_player_provider/player.py243 # This method is mandatory and should be implemented.COMMENT
MEDIUM…ic_assistant/providers/_demo_player_provider/player.py283 # This method is optional and should be implemented if you want to supportCOMMENT
MEDIUM…ic_assistant/providers/_demo_player_provider/player.py295 # This method is optional and should be implemented if the player supportsCOMMENT
MEDIUM…ic_assistant/providers/_demo_player_provider/player.py306 # This method is optional and should be implemented if the player supportsCOMMENT
MEDIUM…ic_assistant/providers/_demo_player_provider/player.py314 # This method is optional and should be implemented if the player supportsCOMMENT
MEDIUM…ic_assistant/providers/_demo_player_provider/player.py326 # This method is optional and should be implemented if the player supportsCOMMENT
MEDIUMmusic_assistant/controllers/webserver/auth.py1052 # Create a long-lived token (only long-lived tokens can be created via this command)COMMENT
MEDIUMmusic_assistant/controllers/webserver/api_docs.py196 # Create a schema reference for this typeCOMMENT
MEDIUMmusic_assistant/controllers/webserver/api_docs.py289 # Create a detailed enum definition with descriptionsCOMMENT
MEDIUM…istant/controllers/webserver/helpers/auth_providers.py438 # Create the userCOMMENT
MEDIUMmusic_assistant/controllers/metadata/radio.py468 # Create a minimal Album object to pass the MusicBrainz release group IDCOMMENT
AI Slop Vocabulary44 hits · 92 pts
SeverityFileLineSnippetContext
MEDIUMtests/providers/sync_group/test_sync_group.py427 # (that path is only for the seamless handoff). Instead, dissolve+reformCOMMENT
MEDIUMtests/providers/sync_group/test_sync_group.py311 """When the new leader IS in the live session, seamless protocol-level handoff is used."""STRING
MEDIUMmusic_assistant/providers/ambient_sounds/__init__.py91 # 0.1 Hz swell = 3 full cycles per 30s loop, keeping the loop seamlessCOMMENT
MEDIUMmusic_assistant/providers/ambient_sounds/__init__.py216 """Build the ffmpeg filter graph that renders the preset as a seamless loop."""STRING
MEDIUMmusic_assistant/providers/ambient_sounds/__init__.py218 # seamless loop: generate CROSSFADE_DURATION extra seconds, trim that amountCOMMENT
MEDIUM…sic_assistant/providers/local_audio/sendspin_bridge.py975 # child (is_remap=False) — this is more robust than matchingCOMMENT
LOW…c_assistant/providers/_demo_music_provider/__init__.py350 # Note that (local) file based providers will simply return all artist tracks here.COMMENT
MEDIUMmusic_assistant/providers/sync_group/constants.py45# group can do a seamless leader handoff; otherwise it must dissolve andCOMMENT
MEDIUMmusic_assistant/providers/sync_group/player.py1159 # protocol so the session continuation is seamless.COMMENT
MEDIUMmusic_assistant/providers/sync_group/player.py1178 # A seamless handoff requires the new leader to already be aCOMMENT
MEDIUMmusic_assistant/providers/phishin/provider.py100 # Replace with comprehensive song_slug resultsCOMMENT
MEDIUM…nt/providers/snapcast/snapweb/assets/index-BYMjFABP.js33 */var R3=J,ao=N3;function Ve(t){for(var r="https://reactjs.org/docs/error-decoder.html?invariant="+t,s=1;s<arguments.leCOMMENT
MEDIUM…nt/providers/snapcast/snapweb/assets/index-BYMjFABP.js33 */var R3=J,ao=N3;function Ve(t){for(var r="https://reactjs.org/docs/error-decoder.html?invariant="+t,s=1;s<arguments.leCOMMENT
MEDIUM…nt/providers/snapcast/snapweb/assets/index-BYMjFABP.js40`+d.stack}return{value:t,source:r,stack:p,digest:null}}function b2(t,r,s){return{value:t,source:null,stack:s??null,digesCODE
MEDIUM…nt/providers/snapcast/snapweb/assets/index-BYMjFABP.js40`+d.stack}return{value:t,source:r,stack:p,digest:null}}function b2(t,r,s){return{value:t,source:null,stack:s??null,digesCODE
MEDIUMmusic_assistant/providers/opensubsonic/parsers.py44# the list of episodes in a channel, to facilitate, we will use both the episode id and theCOMMENT
MEDIUMmusic_assistant/providers/squeezelite/provider.py112 # If any ports are occupied, raise a comprehensive error messageCOMMENT
MEDIUM…ic_assistant/providers/_demo_player_provider/player.py58 # used in conjunction with the needs_poll property.COMMENT
LOW…ic_assistant/providers/_demo_player_provider/player.py122 # In this demo implementation we just set the power state to ONCOMMENT
LOW…ic_assistant/providers/_demo_player_provider/player.py129 # In this demo implementation we just set the power state to OFFCOMMENT
LOW…ic_assistant/providers/_demo_player_provider/player.py143 # In this demo implementation we just set the volume levelCOMMENT
LOW…ic_assistant/providers/_demo_player_provider/player.py176 # In this demo implementation we just set the playback state to PLAYINGCOMMENT
LOW…ic_assistant/providers/_demo_player_provider/player.py193 # In this demo implementation we just set the playback state to IDLECOMMENT
LOW…ic_assistant/providers/_demo_player_provider/player.py209 # In this demo implementation we just set the playback state to PAUSEDCOMMENT
LOW…ic_assistant/providers/_demo_player_provider/player.py253 # the queue controller will simply call this play_media method forCOMMENT
LOWmusic_assistant/providers/sonos/provider.py199 # we just return the previous, current and next item in the queue.COMMENT
LOWmusic_assistant/providers/filesystem_local/__init__.py327 # for audiobooks and podcasts we just return all library itemsCOMMENT
LOWmusic_assistant/models/provider.py171 # default implementation - simply use the instance number/indexCOMMENT
LOWmusic_assistant/models/music_provider.py1573 # just return False here to trigger that logicCOMMENT
LOWmusic_assistant/models/player.py964 # default implementation will simply call set_membersCOMMENT
LOWmusic_assistant/models/player.py946 # default implementation will simply call set_membersCOMMENT
LOWmusic_assistant/models/player.py2615 # Scenario 1: Player is a protocol player - just return the (expanded) resultCOMMENT
LOWmusic_assistant/controllers/music/controller.py2796 # simply return the first item because search is already sorted by best matchCOMMENT
LOWmusic_assistant/controllers/music/media/playlists.py695 # simply sort by quality and just add the first available versionCOMMENT
LOWmusic_assistant/controllers/music/media/base.py816 # simply return the fallback itemCOMMENT
LOWmusic_assistant/controllers/players/controller.py1489 # else: any other media item, just add it to the favorites directlyCOMMENT
LOWmusic_assistant/controllers/streams/controller.py688 # just set an insane high content length to make sure the player keeps playingCOMMENT
LOWmusic_assistant/controllers/streams/controller.py943 # just set an insane high content length to make sure the player keeps playingCOMMENT
LOWmusic_assistant/controllers/webserver/api_docs.py982 # Remove the ellipsis and just use the typeCOMMENT
LOW…ssistant/controllers/player_queues/playback_tracker.py359 # so we just return the queue index and the elapsed timeCOMMENT
LOWmusic_assistant/helpers/api.py346 # we can just use the bound type for documentation purposesCOMMENT
LOWmusic_assistant/helpers/audio.py755 # simply return the preferenceCOMMENT
MEDIUMscripts/perf/perf_server.py191 # skip the harness' own frames - they are measurement scaffoldingCOMMENT
LOW.github/workflows/release.yml307 # Stable release - just use the versionCOMMENT
Over-Commented Block73 hits · 68 pts
SeverityFileLineSnippetContext
LOWtests/providers/fastmcp_server/conftest.py1"""COMMENT
LOWtests/controllers/streams/test_audio_sources.py381 """Queue preload must not claim the source and block a later handoff."""COMMENT
LOWmusic_assistant/constants.py861COMMENT
LOWmusic_assistant/providers/local_audio/constants.py41# y = a * e^(b*x) gives constant dB-per-slider-step ("audio taper" /COMMENT
LOW…sic_assistant/providers/local_audio/sendspin_bridge.py141COMMENT
LOW…sic_assistant/providers/local_audio/sendspin_bridge.py301 # Remap sink: apply the restored volume/mute to PA sink hardwareCOMMENT
LOW…c_assistant/providers/_demo_music_provider/__init__.py121 """COMMENT
LOW…c_assistant/providers/_demo_music_provider/__init__.py221 # It allows retrieving the library/favorite artists from your provider.COMMENT
LOW…c_assistant/providers/_demo_music_provider/__init__.py261 # It allows retrieving the library/favorite albums from your provider.COMMENT
LOW…c_assistant/providers/_demo_music_provider/__init__.py281 # You are free to implement caching in your provider, as long as you return all itemsCOMMENT
LOW…c_assistant/providers/_demo_music_provider/__init__.py301 # the 'sync_library' method.COMMENT
LOW…c_assistant/providers/_demo_music_provider/__init__.py321 # If you need more fine grained control over the sync process, you can overrideCOMMENT
LOW…c_assistant/providers/_demo_music_provider/__init__.py341 # to easily apply caching to this method.COMMENT
LOW…c_assistant/providers/_demo_music_provider/__init__.py361 # Get full details of a single Album.COMMENT
LOW…c_assistant/providers/_demo_music_provider/__init__.py381 # NOTE: Because this is often static data, it is advised to apply caching hereCOMMENT
LOW…c_assistant/providers/_demo_music_provider/__init__.py401 # Mandatory only if you reported ARTIST_ALBUMS in the supported_features.COMMENT
LOW…c_assistant/providers/_demo_music_provider/__init__.py481 Returns a boolean with the fully_played statusCOMMENT
LOWmusic_assistant/providers/sync_group/player.py101 else:COMMENT
LOWmusic_assistant/providers/sync_group/player.py801COMMENT
LOWmusic_assistant/providers/msx_bridge/static/input.js1/******************************************************************************/COMMENT
LOWmusic_assistant/providers/amplipi/constants.py61 "bluetooth": "Bluetooth",COMMENT
LOWmusic_assistant/providers/siriusxm/__init__.py241 """Get streamdetails for a track/radio."""COMMENT
LOW…_assistant/providers/fastmcp_server/connect/_revoke.py41# loaded (frontend / chardet / torch are not installed), so fall back toCOMMENT
LOW…t/providers/fastmcp_server/debug/inspect_serializer.py41# — walking them drags every other provider, queue, player, cache andCOMMENT
LOW…sic_assistant/providers/sonic_analysis/clap_prompts.py101# Calibration provenanceCOMMENT
LOWmusic_assistant/providers/yandex_music/constants.py81BROWSE_INITIAL_TRACKS: Final[int] = 15COMMENT
LOWmusic_assistant/providers/yandex_music/constants.py101# Per-kind request budgets (requests per second). Tuned by endpoint cost:COMMENT
LOWmusic_assistant/providers/yandex_music/constants.py121# this value. Sized one below Yandex's observed datacenter-IP captchaCOMMENT
LOWmusic_assistant/providers/yandex_music/constants.py181# a specific preset (diversity/moodEnergy/language) on top of the base My Wave station.COMMENT
LOWmusic_assistant/providers/yandex_music/api_client.py141 ] = OrderedDict()COMMENT
LOWmusic_assistant/providers/hue_entertainment/analyzer.py41_PALETTE_DIM_FACTOR = 0.45COMMENT
LOWmusic_assistant/providers/hue_entertainment/analyzer.py101 color_gradient_spread: floatCOMMENT
LOWmusic_assistant/providers/hue_entertainment/analyzer.py181COMMENT
LOWmusic_assistant/providers/hue_entertainment/analyzer.py201# Transient scaling, beat animation fraction, pulse peak and color gradientCOMMENT
LOW…sic_assistant/providers/snapcast/snapweb/snapstream.js381 // rate = 1.0 - Math.min(rate, 0.0005);COMMENT
LOWmusic_assistant/providers/yandex_ynison/provider.py261 self._in_use_by_queue: str | None = NoneCOMMENT
LOWmusic_assistant/providers/yandex_ynison/provider.py421 # updates _active_session_id but not _in_use_by_queue) is treated as aCOMMENT
LOWmusic_assistant/providers/yandex_ynison/__init__.py81 selected = ym_instances[0][0] if len(ym_instances) == 1 else YM_INSTANCE_OWNCOMMENT
LOW…sic_assistant/providers/yandex_ynison/ynison_client.py721COMMENT
LOWmusic_assistant/providers/ariacast_receiver/__init__.py101 self._default_player_id = str(config.get_value(CONF_MASS_PLAYER_ID))COMMENT
LOWmusic_assistant/providers/ariacast_receiver/__init__.py321 player_id: str,COMMENT
LOW…_assistant/providers/_demo_plugin_provider/__init__.py141 In most cases its not needed to override any of the builtin methods and you onlyCOMMENT
LOW…_assistant/providers/_demo_plugin_provider/__init__.py181 # this is an optional method that you can implement ifCOMMENT
LOW…_assistant/providers/_demo_plugin_provider/__init__.py241 # Return a StreamDetails with stream_type=CUSTOM when audio comes fromCOMMENT
LOW…_assistant/providers/_demo_plugin_provider/__init__.py281 # by streamdetails.audio_format. Release any per-stream resources in aCOMMENT
LOW…_assistant/providers/_demo_plugin_provider/__init__.py321 raise NotImplementedErrorCOMMENT
LOW…_assistant/providers/_demo_plugin_provider/__init__.py341 # Plugins MUST store stream_session_id so the matchingCOMMENT
LOW…_assistant/providers/_demo_plugin_provider/__init__.py361 # OPTIONAL — fires in the queue-item stream handler's finally block, soCOMMENT
LOW…_assistant/providers/_demo_plugin_provider/__init__.py401 """Retrieve a list of recommendation folders from this plugin."""COMMENT
LOW…_assistant/providers/_demo_plugin_provider/__init__.py441 # Implement when surfacing playlists. Tracks SHOULD carryCOMMENT
LOW…_assistant/providers/_demo_player_provider/provider.py121 # the player has become unavailableCOMMENT
LOW…ic_assistant/providers/_demo_player_provider/player.py221 # this method should send a next track command to the given player.COMMENT
LOW…ic_assistant/providers/_demo_player_provider/player.py241 """Play media command."""COMMENT
LOW…ic_assistant/providers/_demo_player_provider/player.py281 """Handle enqueuing of the next (queue) item on the player."""COMMENT
LOW…ic_assistant/providers/_demo_player_provider/player.py301 # will take care of setting the volume level for the announcement and resuming etc.COMMENT
LOW…ic_assistant/providers/_demo_player_provider/player.py341 # refresh affected members so their derived synced_to / can_group_with recomputeCOMMENT
LOW…ic_assistant/providers/_demo_player_provider/player.py361 #COMMENT
LOWmusic_assistant/providers/spotify_connect/__init__.py201 # from queue preload, where claiming would block a later cross-queueCOMMENT
LOWmusic_assistant/models/player.py361 self._extra_attributes: dict[str, Any] = {}COMMENT
LOWmusic_assistant/controllers/music/constants.py21# max time to wait for a single provider's search results beforeCOMMENT
13 more matches not shown…
Verbosity Indicators32 hits · 45 pts
SeverityFileLineSnippetContext
LOWtests/controllers/music/test_genres.py2375 # Step 2: album gains its own genre metadata.COMMENT
LOWtests/controllers/music/test_genres.py2378 # Step 3: incremental scan must replace the derived mapping with a direct one,COMMENT
LOWtests/controllers/music/test_genres.py2352 # Step 1: album has no genres yet → propagation creates a derived mapping.COMMENT
LOWtests/controllers/players/test_protocol_linking.py3946 # Step 1: Mock config - AirPlay has cached parent, Sendspin does notCOMMENT
LOWtests/controllers/players/test_protocol_linking.py3993 # Step 2: AirPlay reconnects first - links via cached parent_idCOMMENT
LOWtests/controllers/players/test_protocol_linking.py4002 # Step 3: Sendspin registers next - should match Universal Player by MACCOMMENT
LOWmusic_assistant/providers/hass_players/provider.py115 # if the player is an ESPHome player, we need to check if it is a V2 playerCOMMENT
LOW…sic_assistant/providers/yandex_smarthome/auto_skill.py160 # Step 1: CSRF token extractionCOMMENT
LOW…sic_assistant/providers/yandex_smarthome/auto_skill.py214 # Step 2: list existing skills (for duplicate-name detection)COMMENT
LOW…sic_assistant/providers/yandex_smarthome/auto_skill.py235 # Step 3: create the skill appCOMMENT
LOW…sic_assistant/providers/yandex_smarthome/auto_skill.py270 # Step 4: upload logoCOMMENT
LOW…sic_assistant/providers/yandex_smarthome/auto_skill.py314 # Step 5: update draft settingsCOMMENT
LOW…sic_assistant/providers/yandex_smarthome/auto_skill.py323 # Step 6: create OAuth app (account-linking)COMMENT
LOW…sic_assistant/providers/yandex_smarthome/auto_skill.py370 # Step 7: bind OAuth app to the skillCOMMENT
LOW…sic_assistant/providers/yandex_smarthome/auto_skill.py380 # Step 8: publish (send for moderation)COMMENT
LOW…sic_assistant/providers/yandex_ynison/ynison_client.py246 # Step 1: Get redirect ticketCOMMENT
LOW…sic_assistant/providers/yandex_ynison/ynison_client.py249 # Step 2: Connect to state serviceCOMMENT
LOWmusic_assistant/providers/airplay/pairing.py724 # Step 1: Send device ID and methodSTRING
LOWmusic_assistant/providers/airplay/pairing.py746 # Step 2: SRP authenticationSTRING
LOWmusic_assistant/providers/airplay/pairing.py776 # Step 3: Encrypt and send auth public key using AES-GCMSTRING
LOWmusic_assistant/helpers/tags.py225 # Step 1: Always split on featuring splittersCOMMENT
LOWmusic_assistant/helpers/tags.py232 # Step 2: If no expected_count or already at/above target, we're doneCOMMENT
LOWmusic_assistant/helpers/tags.py236 # Step 3: Need more artists - split on extra splitters to reach expected_countCOMMENT
LOWmusic_assistant/helpers/resources/api_docs.html462<span class="comment"># Step 1: Authenticate (REQUIRED as first command)</span>CODE
LOWmusic_assistant/helpers/resources/api_docs.html480<span class="comment"># Step 2: Send commands (message_id is REQUIRED)</span>CODE
LOW.github/workflows/dependency-security.yml58 # Step 1: Verify requirements_all.txt is in syncCOMMENT
LOW.github/workflows/dependency-security.yml84 # Step 2: Run pip-audit for known vulnerabilitiesCOMMENT
LOW.github/workflows/dependency-security.yml103 # Step 2: Detect new or changed dependenciesCOMMENT
LOW.github/workflows/dependency-security.yml151 # Step 3: Check manifest.json changesCOMMENT
LOW.github/workflows/dependency-security.yml199 # Step 4: Run package safety check on new dependenciesCOMMENT
LOW.github/workflows/dependency-security.yml258 # Step 5: Persist analysis results for the reporting workflow.COMMENT
LOW.github/workflows/dependency-security.yml277 # Step 6: Hand off report fragments and results to the reporting workflowCOMMENT
Structural Annotation Overuse31 hits · 44 pts
SeverityFileLineSnippetContext
LOWtests/controllers/music/test_genres.py2375 # Step 2: album gains its own genre metadata.COMMENT
LOWtests/controllers/music/test_genres.py2378 # Step 3: incremental scan must replace the derived mapping with a direct one,COMMENT
LOWtests/controllers/music/test_genres.py2352 # Step 1: album has no genres yet → propagation creates a derived mapping.COMMENT
LOWtests/controllers/players/test_protocol_linking.py3946 # Step 1: Mock config - AirPlay has cached parent, Sendspin does notCOMMENT
LOWtests/controllers/players/test_protocol_linking.py3993 # Step 2: AirPlay reconnects first - links via cached parent_idCOMMENT
LOWtests/controllers/players/test_protocol_linking.py4002 # Step 3: Sendspin registers next - should match Universal Player by MACCOMMENT
LOW…sic_assistant/providers/yandex_smarthome/auto_skill.py160 # Step 1: CSRF token extractionCOMMENT
LOW…sic_assistant/providers/yandex_smarthome/auto_skill.py214 # Step 2: list existing skills (for duplicate-name detection)COMMENT
LOW…sic_assistant/providers/yandex_smarthome/auto_skill.py235 # Step 3: create the skill appCOMMENT
LOW…sic_assistant/providers/yandex_smarthome/auto_skill.py270 # Step 4: upload logoCOMMENT
LOW…sic_assistant/providers/yandex_smarthome/auto_skill.py314 # Step 5: update draft settingsCOMMENT
LOW…sic_assistant/providers/yandex_smarthome/auto_skill.py323 # Step 6: create OAuth app (account-linking)COMMENT
LOW…sic_assistant/providers/yandex_smarthome/auto_skill.py370 # Step 7: bind OAuth app to the skillCOMMENT
LOW…sic_assistant/providers/yandex_smarthome/auto_skill.py380 # Step 8: publish (send for moderation)COMMENT
LOW…sic_assistant/providers/yandex_ynison/ynison_client.py246 # Step 1: Get redirect ticketCOMMENT
LOW…sic_assistant/providers/yandex_ynison/ynison_client.py249 # Step 2: Connect to state serviceCOMMENT
LOWmusic_assistant/providers/airplay/pairing.py724 # Step 1: Send device ID and methodSTRING
LOWmusic_assistant/providers/airplay/pairing.py746 # Step 2: SRP authenticationSTRING
LOWmusic_assistant/providers/airplay/pairing.py776 # Step 3: Encrypt and send auth public key using AES-GCMSTRING
LOWmusic_assistant/helpers/tags.py225 # Step 1: Always split on featuring splittersCOMMENT
LOWmusic_assistant/helpers/tags.py232 # Step 2: If no expected_count or already at/above target, we're doneCOMMENT
LOWmusic_assistant/helpers/tags.py236 # Step 3: Need more artists - split on extra splitters to reach expected_countCOMMENT
LOWmusic_assistant/helpers/resources/api_docs.html462<span class="comment"># Step 1: Authenticate (REQUIRED as first command)</span>CODE
LOWmusic_assistant/helpers/resources/api_docs.html480<span class="comment"># Step 2: Send commands (message_id is REQUIRED)</span>CODE
LOW.github/workflows/dependency-security.yml58 # Step 1: Verify requirements_all.txt is in syncCOMMENT
LOW.github/workflows/dependency-security.yml84 # Step 2: Run pip-audit for known vulnerabilitiesCOMMENT
LOW.github/workflows/dependency-security.yml103 # Step 2: Detect new or changed dependenciesCOMMENT
LOW.github/workflows/dependency-security.yml151 # Step 3: Check manifest.json changesCOMMENT
LOW.github/workflows/dependency-security.yml199 # Step 4: Run package safety check on new dependenciesCOMMENT
LOW.github/workflows/dependency-security.yml258 # Step 5: Persist analysis results for the reporting workflow.COMMENT
LOW.github/workflows/dependency-security.yml277 # Step 6: Hand off report fragments and results to the reporting workflowCOMMENT
Slop Phrases14 hits · 26 pts
SeverityFileLineSnippetContext
MEDIUM…c_assistant/providers/_demo_music_provider/__init__.py138 # and a callback url that you can use to redirect the user back to the Music Assistant UI.COMMENT
MEDIUM…c_assistant/providers/_demo_music_provider/__init__.py511 # for most providers this will be HTTP but you can also use CUSTOMCOMMENT
LOWmusic_assistant/providers/theaudiodb/__init__.py200 # make sure to include the version in the album nameCOMMENT
LOWmusic_assistant/providers/theaudiodb/__init__.py228 # make sure to include the version in the album nameCOMMENT
LOWmusic_assistant/providers/spotify/__init__.py125 label_text = "Authenticated to Spotify. Don't forget to save to complete setup."CODE
LOWmusic_assistant/providers/spotify/__init__.py131 dev_label_text = "Developer session authenticated. Don't forget to save to complete setup."CODE
LOWmusic_assistant/providers/yandex_ynison/__init__.py131 label_text = f"Authenticated to Yandex Music{who}. Don't forget to save to complete setup."CODE
LOWmusic_assistant/providers/lastfm_scrobble/__init__.py136 self.logger.info("No session key available, don't forget to authenticate!")CODE
LOWmusic_assistant/providers/lastfm_scrobble/strings.json26 "label": "Successfully logged in as {0}, don't forget to hit save to complete the setup"CODE
MEDIUM…_assistant/providers/_demo_plugin_provider/__init__.py161 # you can use this for instance to trigger custom (non-mdns) discovery of pluginsCOMMENT
MEDIUM…_assistant/providers/_demo_player_provider/provider.py42 # you can use this to do any async initialization of the provider,COMMENT
MEDIUM…_assistant/providers/_demo_player_provider/provider.py128 # note that you can use this point to update the player connection infoCOMMENT
LOWmusic_assistant/controllers/music/controller.py184 # make sure to finish any removal jobsCOMMENT
LOWmusic_assistant/translations/en.json1379 "provider.lastfm_scrobble.config_entries.save_reminder.label": "Successfully logged in as {0}, don't forget to hit savCODE
AI Structural Patterns25 hits · 22 pts
SeverityFileLineSnippetContext
LOWtests/providers/zvuk_music/test_parsers.py72CODE
LOWtests/providers/zvuk_music/test_parsers.py137CODE
LOWtests/providers/music_quiz/test_plugin.py103CODE
LOWtests/providers/smart_playlist/test_smart_playlist.py363CODE
LOWtests/providers/airplay/dacp/conftest.py75CODE
LOWtests/providers/plex/test_provider_methods.py67CODE
LOWtests/controllers/music/test_library_listing_queries.py233CODE
LOW…c_assistant/providers/smart_fades/feature_extractor.py40CODE
LOW…c_assistant/providers/smart_fades/dbn_postprocessor.py29CODE
LOW…s/sonic_analysis/vendored_clap/models/pytorch_utils.py30CODE
LOW…providers/sonic_analysis/vendored_clap/models/htsat.py61CODE
LOW…providers/sonic_analysis/vendored_clap/models/htsat.py384CODE
LOW…providers/sonic_analysis/vendored_clap/models/htsat.py588CODE
LOW…providers/sonic_analysis/vendored_clap/models/htsat.py686CODE
LOWmusic_assistant/providers/music_quiz/__init__.py337CODE
LOWmusic_assistant/providers/squeezelite/player.py774CODE
LOWmusic_assistant/controllers/music/media/tracks.py235CODE
LOWmusic_assistant/controllers/music/media/podcasts.py77CODE
LOWmusic_assistant/controllers/music/media/audiobooks.py151CODE
LOWmusic_assistant/controllers/music/media/artists.py131CODE
LOWmusic_assistant/controllers/music/media/base.py363CODE
LOWmusic_assistant/controllers/music/media/base.py1113CODE
LOWmusic_assistant/controllers/music/media/albums.py130CODE
LOWmusic_assistant/controllers/tasks/controller.py239CODE
LOWmusic_assistant/controllers/cache/helpers.py44CODE
Docstring Block Structure4 hits · 20 pts
SeverityFileLineSnippetContext
HIGH…sic_assistant/providers/nicovideo/converters/stream.py57 Convert StreamConversionData into StreamDetails. Args: conversion_data: Data containing viSTRING
HIGHmusic_assistant/providers/airplay/helpers.py165 Find the correct raop/airplay binary belonging to the platform. Args: protocol: The streaming protocolSTRING
HIGHmusic_assistant/providers/pandora/helpers.py57 Get CSRF token from Pandora website. Attempts to retrieve CSRF token from Pandora cookies. Args: STRING
HIGHmusic_assistant/providers/internet_archive/provider.py740 Get streamdetails for a track or audiobook. Delegates to the streaming handler for proper multi-file sSTRING
Synthetic Comment Markers2 hits · 19 pts
SeverityFileLineSnippetContext
HIGHtests/providers/smart_playlist/test_smart_playlist.py1837# AI-generated description testsCOMMENT
HIGHmusic_assistant/providers/zvuk_music/constants.py32# These AI-generated playlists are identified by low fixed IDs, stable per account.COMMENT
Dead Code6 hits · 11 pts
SeverityFileLineSnippetContext
MEDIUMtests/providers/msx_bridge/conftest.py21CODE
MEDIUMtests/providers/yandex_ynison/test_ynison_client.py1298CODE
MEDIUMtests/providers/airplay/test_protocol_crash.py55CODE
MEDIUMtests/providers/kion_music/test_streaming.py265CODE
MEDIUMtests/controllers/streams/test_audio_buffer.py234CODE
MEDIUMmusic_assistant/models/plugin.py118CODE
Modern AI Meta-Vocabulary2 hits · 6 pts
SeverityFileLineSnippetContext
MEDIUMtests/providers/smart_fades/test_provider.py20# Clip ends 0.2s after the last beat to avoid end-of-track hallucination.COMMENT
MEDIUMscripts/perf/perf_server.py191 # skip the harness' own frames - they are measurement scaffoldingCOMMENT
Fake / Example Data5 hits · 6 pts
SeverityFileLineSnippetContext
LOWtests/providers/yandex_music/test_api_client.py1556 client = YandexMusicClient(token=SecretStr("fake_token"))CODE
LOWtests/providers/yandex_music/test_api_client.py48 client = YandexMusicClient(token=SecretStr("fake_token"))CODE
LOWtests/providers/kion_music/test_api_client.py21 return KionMusicClient("fake_token", base_url=DEFAULT_BASE_URL)CODE
LOWtests/providers/kion_music/test_api_client.py35 mock_cls.assert_called_once_with("fake_token", base_url=DEFAULT_BASE_URL)CODE
LOW…nt/providers/snapcast/snapweb/assets/index-BYMjFABP.js129`&&(Q.value+=" ");const U=B.boxSizing,ee=Bu(B.paddingBottom)+Bu(B.paddingTop),q=Bu(B.borderBottomWidth)+Bu(B.borderTopWiCODE
Overly Generic Function Names3 hits · 3 pts
SeverityFileLineSnippetContext
LOWtests/providers/audible/test_audible.py34def helper(mass_mock: AsyncMock, audible_client_mock: AsyncMock) -> AudibleHelper:CODE
LOWmusic_assistant/providers/nicovideo/converters/base.py29 def helper(self) -> NicovideoConverterHelper:CODE
LOWmusic_assistant/controllers/tasks/controller.py135 def run_task(self, task_id: str) -> BackgroundTask:CODE
TODO Padding1 hit · 1 pts
SeverityFileLineSnippetContext
LOWmusic_assistant/providers/filesystem_local/__init__.py1171 track.favorite = False # TODO: implement favorite status based on rating ?CODE