{"nodes": [{"id": "users_senko_work_mcma_compose_mcma_backend_tests_test_youtube_source_py", "label": "test_youtube_source.py", "file_type": "code", "source_file": "tests/test_youtube_source.py", "source_location": "L1"}, {"id": "users_senko_work_mcma_compose_mcma_backend_tests_test_youtube_source_song_row", "label": "_song_row()", "file_type": "code", "source_file": "tests/test_youtube_source.py", "source_location": "L15", "_callable": true}, {"id": "any", "label": "Any", "file_type": "code", "source_file": "", "source_location": "", "origin_file": "/Users/senko/Work/mcma-compose/mcma-backend/tests/test_youtube_source.py"}, {"id": "users_senko_work_mcma_compose_mcma_backend_tests_test_youtube_source_settings", "label": "_settings()", "file_type": "code", "source_file": "tests/test_youtube_source.py", "source_location": "L31", "_callable": true}, {"id": "users_senko_work_mcma_compose_mcma_backend_tests_test_youtube_source_test_search_maps_ytmusic_rows", "label": "test_search_maps_ytmusic_rows()", "file_type": "code", "source_file": "tests/test_youtube_source.py", "source_location": "L35", "_callable": true}, {"id": "users_senko_work_mcma_compose_mcma_backend_tests_test_youtube_source_test_search_joins_multiple_artists_and_tolerates_missing_fields", "label": "test_search_joins_multiple_artists_and_tolerates_missing_fields()", "file_type": "code", "source_file": "tests/test_youtube_source.py", "source_location": "L48", "_callable": true}, {"id": "users_senko_work_mcma_compose_mcma_backend_tests_test_youtube_source_test_search_drops_rows_without_video_id", "label": "test_search_drops_rows_without_video_id()", "file_type": "code", "source_file": "tests/test_youtube_source.py", "source_location": "L64", "_callable": true}, {"id": "users_senko_work_mcma_compose_mcma_backend_tests_test_youtube_source_test_search_empty_query_short_circuits", "label": "test_search_empty_query_short_circuits()", "file_type": "code", "source_file": "tests/test_youtube_source.py", "source_location": "L71", "_callable": true}, {"id": "users_senko_work_mcma_compose_mcma_backend_tests_test_youtube_source_test_search_degrades_to_empty_on_error", "label": "test_search_degrades_to_empty_on_error()", "file_type": "code", "source_file": "tests/test_youtube_source.py", "source_location": "L84", "_callable": true}, {"id": "users_senko_work_mcma_compose_mcma_backend_tests_test_youtube_source_test_fetch_maps_download_result", "label": "test_fetch_maps_download_result()", "file_type": "code", "source_file": "tests/test_youtube_source.py", "source_location": "L92", "_callable": true}, {"id": "path", "label": "Path", "file_type": "code", "source_file": "", "source_location": "", "origin_file": "/Users/senko/Work/mcma-compose/mcma-backend/tests/test_youtube_source.py"}, {"id": "users_senko_work_mcma_compose_mcma_backend_tests_test_youtube_source_test_info_and_availability_with_injected_fn", "label": "test_info_and_availability_with_injected_fn()", "file_type": "code", "source_file": "tests/test_youtube_source.py", "source_location": "L115", "_callable": true}, {"id": "users_senko_work_mcma_compose_mcma_backend_tests_test_youtube_source_test_registry_registers_youtube_when_enabled", "label": "test_registry_registers_youtube_when_enabled()", "file_type": "code", "source_file": "tests/test_youtube_source.py", "source_location": "L123", "_callable": true}, {"id": "users_senko_work_mcma_compose_mcma_backend_tests_test_youtube_source_test_registry_omits_youtube_when_disabled", "label": "test_registry_omits_youtube_when_disabled()", "file_type": "code", "source_file": "tests/test_youtube_source.py", "source_location": "L132", "_callable": true}, {"id": "users_senko_work_mcma_compose_mcma_backend_tests_test_youtube_source_rationale_1", "label": "Unit tests for YouTubeMusicSource + registry (no network, injected libs).", "file_type": "rationale", "source_file": "tests/test_youtube_source.py", "source_location": "L1"}], "edges": [{"source": "users_senko_work_mcma_compose_mcma_backend_tests_test_youtube_source_py", "target": "pathlib", "relation": "imports_from", "context": "import", "confidence": "EXTRACTED", "source_file": "tests/test_youtube_source.py", "source_location": "L3", "weight": 1.0}, {"source": "users_senko_work_mcma_compose_mcma_backend_tests_test_youtube_source_py", "target": "typing", "relation": "imports_from", "context": "import", "confidence": "EXTRACTED", "source_file": "tests/test_youtube_source.py", "source_location": "L4", "weight": 1.0}, {"source": "users_senko_work_mcma_compose_mcma_backend_tests_test_youtube_source_py", "target": "pytest", "relation": "imports", "context": "import", "confidence": "EXTRACTED", "source_file": "tests/test_youtube_source.py", "source_location": "L6", "weight": 1.0}, {"source": "users_senko_work_mcma_compose_mcma_backend_tests_test_youtube_source_py", "target": "app_core_config", "relation": "imports_from", "context": "import", "confidence": "EXTRACTED", "source_file": "tests/test_youtube_source.py", "source_location": "L7", "weight": 1.0}, {"source": "users_senko_work_mcma_compose_mcma_backend_tests_test_youtube_source_py", "target": "app_domain_sources", "relation": "imports_from", "context": "import", "confidence": "EXTRACTED", "source_file": "tests/test_youtube_source.py", "source_location": "L8", "weight": 1.0}, {"source": "users_senko_work_mcma_compose_mcma_backend_tests_test_youtube_source_py", "target": "app_infrastructure_sources_registry", "relation": "imports_from", "context": "import", "confidence": "EXTRACTED", "source_file": "tests/test_youtube_source.py", "source_location": "L9", "weight": 1.0}, {"source": "users_senko_work_mcma_compose_mcma_backend_tests_test_youtube_source_py", "target": "app_infrastructure_sources_youtube", "relation": "imports_from", "context": "import", "confidence": "EXTRACTED", "source_file": "tests/test_youtube_source.py", "source_location": "L10", "weight": 1.0}, {"source": "users_senko_work_mcma_compose_mcma_backend_tests_test_youtube_source_py", "target": "users_senko_work_mcma_compose_mcma_backend_tests_test_youtube_source_song_row", "relation": "contains", "confidence": "EXTRACTED", "source_file": "tests/test_youtube_source.py", "source_location": "L15", "weight": 1.0}, {"source": "users_senko_work_mcma_compose_mcma_backend_tests_test_youtube_source_song_row", "target": "any", "relation": "references", "context": "parameter_type", "confidence": "EXTRACTED", "source_file": "tests/test_youtube_source.py", "source_location": "L15", "weight": 1.0}, {"source": "users_senko_work_mcma_compose_mcma_backend_tests_test_youtube_source_song_row", "target": "any", "relation": "references", "context": "generic_arg", "confidence": "EXTRACTED", "source_file": "tests/test_youtube_source.py", "source_location": "L15", "weight": 1.0}, {"source": "users_senko_work_mcma_compose_mcma_backend_tests_test_youtube_source_py", "target": "users_senko_work_mcma_compose_mcma_backend_tests_test_youtube_source_settings", "relation": "contains", "confidence": "EXTRACTED", "source_file": "tests/test_youtube_source.py", "source_location": "L31", "weight": 1.0}, {"source": "users_senko_work_mcma_compose_mcma_backend_tests_test_youtube_source_py", "target": "users_senko_work_mcma_compose_mcma_backend_tests_test_youtube_source_test_search_maps_ytmusic_rows", "relation": "contains", "confidence": "EXTRACTED", "source_file": "tests/test_youtube_source.py", "source_location": "L35", "weight": 1.0}, {"source": "users_senko_work_mcma_compose_mcma_backend_tests_test_youtube_source_py", "target": "users_senko_work_mcma_compose_mcma_backend_tests_test_youtube_source_test_search_joins_multiple_artists_and_tolerates_missing_fields", "relation": "contains", "confidence": "EXTRACTED", "source_file": "tests/test_youtube_source.py", "source_location": "L48", "weight": 1.0}, {"source": "users_senko_work_mcma_compose_mcma_backend_tests_test_youtube_source_py", "target": "users_senko_work_mcma_compose_mcma_backend_tests_test_youtube_source_test_search_drops_rows_without_video_id", "relation": "contains", "confidence": "EXTRACTED", "source_file": "tests/test_youtube_source.py", "source_location": "L64", "weight": 1.0}, {"source": "users_senko_work_mcma_compose_mcma_backend_tests_test_youtube_source_py", "target": "users_senko_work_mcma_compose_mcma_backend_tests_test_youtube_source_test_search_empty_query_short_circuits", "relation": "contains", "confidence": "EXTRACTED", "source_file": "tests/test_youtube_source.py", "source_location": "L71", "weight": 1.0}, {"source": "users_senko_work_mcma_compose_mcma_backend_tests_test_youtube_source_py", "target": "users_senko_work_mcma_compose_mcma_backend_tests_test_youtube_source_test_search_degrades_to_empty_on_error", "relation": "contains", "confidence": "EXTRACTED", "source_file": "tests/test_youtube_source.py", "source_location": "L84", "weight": 1.0}, {"source": "users_senko_work_mcma_compose_mcma_backend_tests_test_youtube_source_py", "target": "users_senko_work_mcma_compose_mcma_backend_tests_test_youtube_source_test_fetch_maps_download_result", "relation": "contains", "confidence": "EXTRACTED", "source_file": "tests/test_youtube_source.py", "source_location": "L92", "weight": 1.0}, {"source": "users_senko_work_mcma_compose_mcma_backend_tests_test_youtube_source_test_fetch_maps_download_result", "target": "path", "relation": "references", "context": "parameter_type", "confidence": "EXTRACTED", "source_file": "tests/test_youtube_source.py", "source_location": "L92", "weight": 1.0}, {"source": "users_senko_work_mcma_compose_mcma_backend_tests_test_youtube_source_py", "target": "users_senko_work_mcma_compose_mcma_backend_tests_test_youtube_source_test_info_and_availability_with_injected_fn", "relation": "contains", "confidence": "EXTRACTED", "source_file": "tests/test_youtube_source.py", "source_location": "L115", "weight": 1.0}, {"source": "users_senko_work_mcma_compose_mcma_backend_tests_test_youtube_source_py", "target": "users_senko_work_mcma_compose_mcma_backend_tests_test_youtube_source_test_registry_registers_youtube_when_enabled", "relation": "contains", "confidence": "EXTRACTED", "source_file": "tests/test_youtube_source.py", "source_location": "L123", "weight": 1.0}, {"source": "users_senko_work_mcma_compose_mcma_backend_tests_test_youtube_source_py", "target": "users_senko_work_mcma_compose_mcma_backend_tests_test_youtube_source_test_registry_omits_youtube_when_disabled", "relation": "contains", "confidence": "EXTRACTED", "source_file": "tests/test_youtube_source.py", "source_location": "L132", "weight": 1.0}, {"source": "users_senko_work_mcma_compose_mcma_backend_tests_test_youtube_source_test_search_maps_ytmusic_rows", "target": "users_senko_work_mcma_compose_mcma_backend_tests_test_youtube_source_song_row", "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "tests/test_youtube_source.py", "source_location": "L36", "weight": 1.0}, {"source": "users_senko_work_mcma_compose_mcma_backend_tests_test_youtube_source_test_search_joins_multiple_artists_and_tolerates_missing_fields", "target": "users_senko_work_mcma_compose_mcma_backend_tests_test_youtube_source_song_row", "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "tests/test_youtube_source.py", "source_location": "L49", "weight": 1.0}, {"source": "users_senko_work_mcma_compose_mcma_backend_tests_test_youtube_source_test_search_drops_rows_without_video_id", "target": "users_senko_work_mcma_compose_mcma_backend_tests_test_youtube_source_song_row", "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "tests/test_youtube_source.py", "source_location": "L65", "weight": 1.0}, {"source": "users_senko_work_mcma_compose_mcma_backend_tests_test_youtube_source_test_registry_registers_youtube_when_enabled", "target": "users_senko_work_mcma_compose_mcma_backend_tests_test_youtube_source_settings", "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "tests/test_youtube_source.py", "source_location": "L124", "weight": 1.0}, {"source": "users_senko_work_mcma_compose_mcma_backend_tests_test_youtube_source_test_registry_omits_youtube_when_disabled", "target": "users_senko_work_mcma_compose_mcma_backend_tests_test_youtube_source_settings", "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "tests/test_youtube_source.py", "source_location": "L133", "weight": 1.0}, {"source": "users_senko_work_mcma_compose_mcma_backend_tests_test_youtube_source_rationale_1", "target": "users_senko_work_mcma_compose_mcma_backend_tests_test_youtube_source_py", "relation": "rationale_for", "confidence": "EXTRACTED", "source_file": "tests/test_youtube_source.py", "source_location": "L1", "weight": 1.0}], "raw_calls": [{"caller_nid": "users_senko_work_mcma_compose_mcma_backend_tests_test_youtube_source_song_row", "callee": "update", "is_member_call": true, "source_file": "tests/test_youtube_source.py", "source_location": "L27", "receiver": "row"}, {"caller_nid": "users_senko_work_mcma_compose_mcma_backend_tests_test_youtube_source_song_row", "callee": "overrides", "is_member_call": false, "indirect": true, "context": "argument", "source_file": "tests/test_youtube_source.py", "source_location": "L27"}, {"caller_nid": "users_senko_work_mcma_compose_mcma_backend_tests_test_youtube_source_settings", "callee": "Settings", "is_member_call": false, "source_file": "tests/test_youtube_source.py", "source_location": "L32", "receiver": null}, {"caller_nid": "users_senko_work_mcma_compose_mcma_backend_tests_test_youtube_source_test_search_maps_ytmusic_rows", "callee": "YouTubeMusicSource", "is_member_call": false, "source_file": "tests/test_youtube_source.py", "source_location": "L36", "receiver": null}, {"caller_nid": "users_senko_work_mcma_compose_mcma_backend_tests_test_youtube_source_test_search_maps_ytmusic_rows", "callee": "search", "is_member_call": true, "source_file": "tests/test_youtube_source.py", "source_location": "L37", "receiver": "source"}, {"caller_nid": "users_senko_work_mcma_compose_mcma_backend_tests_test_youtube_source_test_search_joins_multiple_artists_and_tolerates_missing_fields", "callee": "YouTubeMusicSource", "is_member_call": false, "source_file": "tests/test_youtube_source.py", "source_location": "L55", "receiver": null}, {"caller_nid": "users_senko_work_mcma_compose_mcma_backend_tests_test_youtube_source_test_search_joins_multiple_artists_and_tolerates_missing_fields", "callee": "search", "is_member_call": true, "source_file": "tests/test_youtube_source.py", "source_location": "L56", "receiver": "source"}, {"caller_nid": "users_senko_work_mcma_compose_mcma_backend_tests_test_youtube_source_test_search_drops_rows_without_video_id", "callee": "YouTubeMusicSource", "is_member_call": false, "source_file": "tests/test_youtube_source.py", "source_location": "L66", "receiver": null}, {"caller_nid": "users_senko_work_mcma_compose_mcma_backend_tests_test_youtube_source_test_search_drops_rows_without_video_id", "callee": "search", "is_member_call": true, "source_file": "tests/test_youtube_source.py", "source_location": "L67", "receiver": "source"}, {"caller_nid": "users_senko_work_mcma_compose_mcma_backend_tests_test_youtube_source_test_search_empty_query_short_circuits", "callee": "YouTubeMusicSource", "is_member_call": false, "source_file": "tests/test_youtube_source.py", "source_location": "L79", "receiver": null}, {"caller_nid": "users_senko_work_mcma_compose_mcma_backend_tests_test_youtube_source_test_search_empty_query_short_circuits", "callee": "_search", "is_member_call": false, "indirect": true, "context": "argument", "source_file": "tests/test_youtube_source.py", "source_location": "L79"}, {"caller_nid": "users_senko_work_mcma_compose_mcma_backend_tests_test_youtube_source_test_search_empty_query_short_circuits", "callee": "search", "is_member_call": true, "source_file": "tests/test_youtube_source.py", "source_location": "L80", "receiver": "source"}, {"caller_nid": "users_senko_work_mcma_compose_mcma_backend_tests_test_youtube_source_test_search_degrades_to_empty_on_error", "callee": "YouTubeMusicSource", "is_member_call": false, "source_file": "tests/test_youtube_source.py", "source_location": "L88", "receiver": null}, {"caller_nid": "users_senko_work_mcma_compose_mcma_backend_tests_test_youtube_source_test_search_degrades_to_empty_on_error", "callee": "_boom", "is_member_call": false, "indirect": true, "context": "argument", "source_file": "tests/test_youtube_source.py", "source_location": "L88"}, {"caller_nid": "users_senko_work_mcma_compose_mcma_backend_tests_test_youtube_source_test_search_degrades_to_empty_on_error", "callee": "search", "is_member_call": true, "source_file": "tests/test_youtube_source.py", "source_location": "L89", "receiver": "source"}, {"caller_nid": "users_senko_work_mcma_compose_mcma_backend_tests_test_youtube_source_test_fetch_maps_download_result", "callee": "write_bytes", "is_member_call": true, "source_file": "tests/test_youtube_source.py", "source_location": "L94", "receiver": "audio"}, {"caller_nid": "users_senko_work_mcma_compose_mcma_backend_tests_test_youtube_source_test_fetch_maps_download_result", "callee": "YouTubeMusicSource", "is_member_call": false, "source_file": "tests/test_youtube_source.py", "source_location": "L104", "receiver": null}, {"caller_nid": "users_senko_work_mcma_compose_mcma_backend_tests_test_youtube_source_test_fetch_maps_download_result", "callee": "_download", "is_member_call": false, "indirect": true, "context": "argument", "source_file": "tests/test_youtube_source.py", "source_location": "L104"}, {"caller_nid": "users_senko_work_mcma_compose_mcma_backend_tests_test_youtube_source_test_fetch_maps_download_result", "callee": "fetch", "is_member_call": true, "source_file": "tests/test_youtube_source.py", "source_location": "L105", "receiver": "source"}, {"caller_nid": "users_senko_work_mcma_compose_mcma_backend_tests_test_youtube_source_test_info_and_availability_with_injected_fn", "callee": "YouTubeMusicSource", "is_member_call": false, "source_file": "tests/test_youtube_source.py", "source_location": "L116", "receiver": null}, {"caller_nid": "users_senko_work_mcma_compose_mcma_backend_tests_test_youtube_source_test_info_and_availability_with_injected_fn", "callee": "info", "is_member_call": true, "source_file": "tests/test_youtube_source.py", "source_location": "L117", "receiver": "source"}, {"caller_nid": "users_senko_work_mcma_compose_mcma_backend_tests_test_youtube_source_test_registry_registers_youtube_when_enabled", "callee": "build_source_registry", "is_member_call": false, "source_file": "tests/test_youtube_source.py", "source_location": "L124", "receiver": null}, {"caller_nid": "users_senko_work_mcma_compose_mcma_backend_tests_test_youtube_source_test_registry_registers_youtube_when_enabled", "callee": "infos", "is_member_call": true, "source_file": "tests/test_youtube_source.py", "source_location": "L125", "receiver": "registry"}, {"caller_nid": "users_senko_work_mcma_compose_mcma_backend_tests_test_youtube_source_test_registry_registers_youtube_when_enabled", "callee": "searchable", "is_member_call": true, "source_file": "tests/test_youtube_source.py", "source_location": "L128", "receiver": "registry"}, {"caller_nid": "users_senko_work_mcma_compose_mcma_backend_tests_test_youtube_source_test_registry_registers_youtube_when_enabled", "callee": "fetchable", "is_member_call": true, "source_file": "tests/test_youtube_source.py", "source_location": "L129", "receiver": "registry"}, {"caller_nid": "users_senko_work_mcma_compose_mcma_backend_tests_test_youtube_source_test_registry_omits_youtube_when_disabled", "callee": "build_source_registry", "is_member_call": false, "source_file": "tests/test_youtube_source.py", "source_location": "L133", "receiver": null}, {"caller_nid": "users_senko_work_mcma_compose_mcma_backend_tests_test_youtube_source_test_registry_omits_youtube_when_disabled", "callee": "infos", "is_member_call": true, "source_file": "tests/test_youtube_source.py", "source_location": "L134", "receiver": "registry"}]}