{"nodes": [{"id": "$graphify-root$_tests_test_select_article_extractor_py", "label": "test_select_article_extractor.py", "file_type": "code", "source_file": "tests/test_select_article_extractor.py", "source_location": "L1"}, {"id": "$graphify-root$_tests_test_select_article_extractor_test_normalize_text_empty_and_invalid", "label": "test_normalize_text_empty_and_invalid()", "file_type": "code", "source_file": "tests/test_select_article_extractor.py", "source_location": "L40", "_callable": true}, {"id": "$graphify-root$_tests_test_select_article_extractor_test_normalize_text_html_entities_and_tags", "label": "test_normalize_text_html_entities_and_tags()", "file_type": "code", "source_file": "tests/test_select_article_extractor.py", "source_location": "L47", "_callable": true}, {"id": "$graphify-root$_tests_test_select_article_extractor_test_normalize_text_markdown_links", "label": "test_normalize_text_markdown_links()", "file_type": "code", "source_file": "tests/test_select_article_extractor.py", "source_location": "L53", "_callable": true}, {"id": "$graphify-root$_tests_test_select_article_extractor_test_normalize_text_markdown_images_stripped_while_links_preserved", "label": "test_normalize_text_markdown_images_stripped_while_links_preserved()", "file_type": "code", "source_file": "tests/test_select_article_extractor.py", "source_location": "L59", "_callable": true}, {"id": "$graphify-root$_tests_test_select_article_extractor_test_normalize_text_nfkc_unicode_and_punctuation", "label": "test_normalize_text_nfkc_unicode_and_punctuation()", "file_type": "code", "source_file": "tests/test_select_article_extractor.py", "source_location": "L78", "_callable": true}, {"id": "$graphify-root$_tests_test_select_article_extractor_test_generate_shingles_sliding_window", "label": "test_generate_shingles_sliding_window()", "file_type": "code", "source_file": "tests/test_select_article_extractor.py", "source_location": "L90", "_callable": true}, {"id": "$graphify-root$_tests_test_select_article_extractor_test_generate_shingles_short_text", "label": "test_generate_shingles_short_text()", "file_type": "code", "source_file": "tests/test_select_article_extractor.py", "source_location": "L98", "_callable": true}, {"id": "$graphify-root$_tests_test_select_article_extractor_test_generate_shingles_empty", "label": "test_generate_shingles_empty()", "file_type": "code", "source_file": "tests/test_select_article_extractor.py", "source_location": "L106", "_callable": true}, {"id": "$graphify-root$_tests_test_select_article_extractor_test_ct_001_three_candidates_clear_winner", "label": "test_ct_001_three_candidates_clear_winner()", "file_type": "code", "source_file": "tests/test_select_article_extractor.py", "source_location": "L115", "_callable": true}, {"id": "$graphify-root$_tests_test_select_article_extractor_test_ct_002_technical_tie_smallest_shingles", "label": "test_ct_002_technical_tie_smallest_shingles()", "file_type": "code", "source_file": "tests/test_select_article_extractor.py", "source_location": "L128", "_callable": true}, {"id": "$graphify-root$_tests_test_select_article_extractor_test_ct_003_technical_tie_priority_fallback", "label": "test_ct_003_technical_tie_priority_fallback()", "file_type": "code", "source_file": "tests/test_select_article_extractor.py", "source_location": "L140", "_callable": true}, {"id": "$graphify-root$_tests_test_select_article_extractor_test_ct_004_three_candidates_no_consensus", "label": "test_ct_004_three_candidates_no_consensus()", "file_type": "code", "source_file": "tests/test_select_article_extractor.py", "source_location": "L161", "_callable": true}, {"id": "$graphify-root$_tests_test_select_article_extractor_test_ct_005_two_candidates_no_consensus", "label": "test_ct_005_two_candidates_no_consensus()", "file_type": "code", "source_file": "tests/test_select_article_extractor.py", "source_location": "L176", "_callable": true}, {"id": "$graphify-root$_tests_test_select_article_extractor_test_ct_006_single_usable_candidate", "label": "test_ct_006_single_usable_candidate()", "file_type": "code", "source_file": "tests/test_select_article_extractor.py", "source_location": "L190", "_callable": true}, {"id": "$graphify-root$_tests_test_select_article_extractor_test_ct_007_degraded_candidates_only", "label": "test_ct_007_degraded_candidates_only()", "file_type": "code", "source_file": "tests/test_select_article_extractor.py", "source_location": "L202", "_callable": true}, {"id": "$graphify-root$_tests_test_select_article_extractor_test_ct_008_all_candidates_unavailable", "label": "test_ct_008_all_candidates_unavailable()", "file_type": "code", "source_file": "tests/test_select_article_extractor.py", "source_location": "L214", "_callable": true}, {"id": "$graphify-root$_tests_test_select_article_extractor_test_ct_009_small_fragment_loses_due_to_low_coverage", "label": "test_ct_009_small_fragment_loses_due_to_low_coverage()", "file_type": "code", "source_file": "tests/test_select_article_extractor.py", "source_location": "L226", "_callable": true}, {"id": "$graphify-root$_tests_test_select_article_extractor_test_ct_010_excessive_boilerplate_loses_due_to_low_support", "label": "test_ct_010_excessive_boilerplate_loses_due_to_low_support()", "file_type": "code", "source_file": "tests/test_select_article_extractor.py", "source_location": "L243", "_callable": true}, {"id": "$graphify-root$_tests_test_select_article_extractor_test_ct_011_partial_content_loses_due_to_low_coverage", "label": "test_ct_011_partial_content_loses_due_to_low_coverage()", "file_type": "code", "source_file": "tests/test_select_article_extractor.py", "source_location": "L259", "_callable": true}, {"id": "$graphify-root$_tests_test_select_article_extractor_test_ct_012_recalculate_existing_selected_extractor", "label": "test_ct_012_recalculate_existing_selected_extractor()", "file_type": "code", "source_file": "tests/test_select_article_extractor.py", "source_location": "L272", "_callable": true}, {"id": "path", "label": "Path", "file_type": "code", "source_file": "", "source_location": "", "origin_file": "$graphify-root$/tests/test_select_article_extractor.py"}, {"id": "$graphify-root$_tests_test_select_article_extractor_test_ct_013_empty_articles_list", "label": "test_ct_013_empty_articles_list()", "file_type": "code", "source_file": "tests/test_select_article_extractor.py", "source_location": "L298", "_callable": true}, {"id": "$graphify-root$_tests_test_select_article_extractor_test_ct_014_invalid_json_fails_atomically", "label": "test_ct_014_invalid_json_fails_atomically()", "file_type": "code", "source_file": "tests/test_select_article_extractor.py", "source_location": "L317", "_callable": true}, {"id": "$graphify-root$_tests_test_select_article_extractor_test_integration_reference_file", "label": "test_integration_reference_file()", "file_type": "code", "source_file": "tests/test_select_article_extractor.py", "source_location": "L334", "_callable": true}, {"id": "$graphify-root$_tests_test_select_article_extractor_test_article_1_regression_technical_tie_markdown_images", "label": "test_article_1_regression_technical_tie_markdown_images()", "file_type": "code", "source_file": "tests/test_select_article_extractor.py", "source_location": "L363", "_callable": true}, {"id": "$graphify-root$_tests_test_select_article_extractor_test_integration_large_batch_determinism", "label": "test_integration_large_batch_determinism()", "file_type": "code", "source_file": "tests/test_select_article_extractor.py", "source_location": "L397", "_callable": true}, {"id": "$graphify-root$_tests_test_select_article_extractor_test_integration_pipeline_downstream_consumer", "label": "test_integration_pipeline_downstream_consumer()", "file_type": "code", "source_file": "tests/test_select_article_extractor.py", "source_location": "L446", "_callable": true}, {"id": "$graphify-root$_tests_test_select_article_extractor_test_e2e_cli_subprocess_real_execution", "label": "test_e2e_cli_subprocess_real_execution()", "file_type": "code", "source_file": "tests/test_select_article_extractor.py", "source_location": "L483", "_callable": true}, {"id": "$graphify-root$_tests_test_select_article_extractor_test_e2e_cli_subprocess_default_naming", "label": "test_e2e_cli_subprocess_default_naming()", "file_type": "code", "source_file": "tests/test_select_article_extractor.py", "source_location": "L520", "_callable": true}, {"id": "$graphify-root$_tests_test_select_article_extractor_test_e2e_cli_subprocess_invalid_input", "label": "test_e2e_cli_subprocess_invalid_input()", "file_type": "code", "source_file": "tests/test_select_article_extractor.py", "source_location": "L548", "_callable": true}, {"id": "$graphify-root$_tests_test_select_article_extractor_test_e2e_cli_subprocess_missing_file", "label": "test_e2e_cli_subprocess_missing_file()", "file_type": "code", "source_file": "tests/test_select_article_extractor.py", "source_location": "L561", "_callable": true}, {"id": "$graphify-root$_tests_test_select_article_extractor_rationale_1", "label": "Su\u00edte de Testes Automatizados para o Seletor Determin\u00edstico de Extrator. Cobre\u2026", "file_type": "rationale", "source_file": "tests/test_select_article_extractor.py", "source_location": "L1"}, {"id": "$graphify-root$_tests_test_select_article_extractor_rationale_60", "label": "Garante que marca\u00e7\u00e3o de imagem Markdown ![alt](url) seja descartada e link\u2026", "file_type": "rationale", "source_file": "tests/test_select_article_extractor.py", "source_location": "L60"}, {"id": "$graphify-root$_tests_test_select_article_extractor_rationale_116", "label": "CT-001: Tr\u00eas candidatos com consenso e um vencedor claro -> Selecionar o maior\u2026", "file_type": "rationale", "source_file": "tests/test_select_article_extractor.py", "source_location": "L116"}, {"id": "$graphify-root$_tests_test_select_article_extractor_rationale_129", "label": "CT-002: Dois ou mais candidatos dentro de 0,03 do maior score -> Selecionar o\u2026", "file_type": "rationale", "source_file": "tests/test_select_article_extractor.py", "source_location": "L129"}, {"id": "$graphify-root$_tests_test_select_article_extractor_rationale_141", "label": "CT-003: Empate t\u00e9cnico e mesma quantidade de shingles -> Aplicar prioridade\u2026", "file_type": "rationale", "source_file": "tests/test_select_article_extractor.py", "source_location": "L141"}, {"id": "$graphify-root$_tests_test_select_article_extractor_rationale_162", "label": "CT-004: Tr\u00eas candidatos sem consenso -> Selecionar a quantidade mediana de\u2026", "file_type": "rationale", "source_file": "tests/test_select_article_extractor.py", "source_location": "L162"}, {"id": "$graphify-root$_tests_test_select_article_extractor_rationale_177", "label": "CT-005: Dois candidatos sem consenso -> Selecionar a maior quantidade de\u2026", "file_type": "rationale", "source_file": "tests/test_select_article_extractor.py", "source_location": "L177"}, {"id": "$graphify-root$_tests_test_select_article_extractor_rationale_191", "label": "CT-006: Somente um candidato utiliz\u00e1vel -> Selecionar esse candidato.", "file_type": "rationale", "source_file": "tests/test_select_article_extractor.py", "source_location": "L191"}, {"id": "$graphify-root$_tests_test_select_article_extractor_rationale_203", "label": "CT-007: Nenhum utiliz\u00e1vel, mas existe candidato degradado -> Executar o\u2026", "file_type": "rationale", "source_file": "tests/test_select_article_extractor.py", "source_location": "L203"}, {"id": "$graphify-root$_tests_test_select_article_extractor_rationale_215", "label": "CT-008: Todos os candidatos indispon\u00edveis -> Selecionar newspaper4k.", "file_type": "rationale", "source_file": "tests/test_select_article_extractor.py", "source_location": "L215"}, {"id": "$graphify-root$_tests_test_select_article_extractor_rationale_227", "label": "CT-009: Readability retorna apenas um fragmento pequeno enquanto os outros\u2026", "file_type": "rationale", "source_file": "tests/test_select_article_extractor.py", "source_location": "L227"}, {"id": "$graphify-root$_tests_test_select_article_extractor_rationale_244", "label": "CT-010: Um candidato cont\u00e9m o conte\u00fado comum e muito conte\u00fado excedente ->\u2026", "file_type": "rationale", "source_file": "tests/test_select_article_extractor.py", "source_location": "L244"}, {"id": "$graphify-root$_tests_test_select_article_extractor_rationale_260", "label": "CT-011: Um candidato cont\u00e9m somente parte do conte\u00fado comum -> Perde cobertura\u2026", "file_type": "rationale", "source_file": "tests/test_select_article_extractor.py", "source_location": "L260"}, {"id": "$graphify-root$_tests_test_select_article_extractor_rationale_273", "label": "CT-012: A entrada j\u00e1 cont\u00e9m selected_extractor -> Recalcular e substituir\u2026", "file_type": "rationale", "source_file": "tests/test_select_article_extractor.py", "source_location": "L273"}, {"id": "$graphify-root$_tests_test_select_article_extractor_rationale_299", "label": "CT-013: articles est\u00e1 vazio -> Gerar sa\u00edda v\u00e1lida com articles vazio.", "file_type": "rationale", "source_file": "tests/test_select_article_extractor.py", "source_location": "L299"}, {"id": "$graphify-root$_tests_test_select_article_extractor_rationale_318", "label": "CT-014: JSON inv\u00e1lido -> N\u00e3o gerar sa\u00edda.", "file_type": "rationale", "source_file": "tests/test_select_article_extractor.py", "source_location": "L318"}, {"id": "$graphify-root$_tests_test_select_article_extractor_rationale_335", "label": "Testa o processamento em lote completo sobre o arquivo real\u2026", "file_type": "rationale", "source_file": "tests/test_select_article_extractor.py", "source_location": "L335"}, {"id": "$graphify-root$_tests_test_select_article_extractor_rationale_364", "label": "Teste de regress\u00e3o para o Artigo 1 (Los puntajes de River vs. Independiente\u2026", "file_type": "rationale", "source_file": "tests/test_select_article_extractor.py", "source_location": "L364"}, {"id": "$graphify-root$_tests_test_select_article_extractor_rationale_398", "label": "Gera um lote de 100 artigos sint\u00e9ticos e verifica 100% de repetibilidade\u2026", "file_type": "rationale", "source_file": "tests/test_select_article_extractor.py", "source_location": "L398"}, {"id": "$graphify-root$_tests_test_select_article_extractor_rationale_447", "label": "Testa a integra\u00e7\u00e3o end-to-end do pipeline downstream: L\u00ea o JSON enriquecido com\u2026", "file_type": "rationale", "source_file": "tests/test_select_article_extractor.py", "source_location": "L447"}, {"id": "$graphify-root$_tests_test_select_article_extractor_rationale_484", "label": "E2E: Executa scripts/select_article_extractor.py como subprocesso real na linha\u2026", "file_type": "rationale", "source_file": "tests/test_select_article_extractor.py", "source_location": "L484"}, {"id": "$graphify-root$_tests_test_select_article_extractor_rationale_521", "label": "E2E: Executa CLI sem a flag -o e valida cria\u00e7\u00e3o autom\u00e1tica de\u2026", "file_type": "rationale", "source_file": "tests/test_select_article_extractor.py", "source_location": "L521"}, {"id": "$graphify-root$_tests_test_select_article_extractor_rationale_549", "label": "E2E: Executa CLI com JSON inv\u00e1lido e valida c\u00f3digo de sa\u00edda e erro no stderr.", "file_type": "rationale", "source_file": "tests/test_select_article_extractor.py", "source_location": "L549"}, {"id": "$graphify-root$_tests_test_select_article_extractor_rationale_562", "label": "E2E: Executa CLI com arquivo inexistente e valida c\u00f3digo 1 e mensagem no stderr.", "file_type": "rationale", "source_file": "tests/test_select_article_extractor.py", "source_location": "L562"}], "edges": [{"source": "$graphify-root$_tests_test_select_article_extractor_py", "target": "json", "relation": "imports", "context": "import", "confidence": "EXTRACTED", "source_file": "tests/test_select_article_extractor.py", "source_location": "L10", "weight": 1.0}, {"source": "$graphify-root$_tests_test_select_article_extractor_py", "target": "os", "relation": "imports", "context": "import", "confidence": "EXTRACTED", "source_file": "tests/test_select_article_extractor.py", "source_location": "L11", "weight": 1.0}, {"source": "$graphify-root$_tests_test_select_article_extractor_py", "target": "subprocess", "relation": "imports", "context": "import", "confidence": "EXTRACTED", "source_file": "tests/test_select_article_extractor.py", "source_location": "L12", "weight": 1.0}, {"source": "$graphify-root$_tests_test_select_article_extractor_py", "target": "sys", "relation": "imports", "context": "import", "confidence": "EXTRACTED", "source_file": "tests/test_select_article_extractor.py", "source_location": "L13", "weight": 1.0}, {"source": "$graphify-root$_tests_test_select_article_extractor_py", "target": "tempfile", "relation": "imports", "context": "import", "confidence": "EXTRACTED", "source_file": "tests/test_select_article_extractor.py", "source_location": "L14", "weight": 1.0}, {"source": "$graphify-root$_tests_test_select_article_extractor_py", "target": "pathlib", "relation": "imports_from", "context": "import", "confidence": "EXTRACTED", "source_file": "tests/test_select_article_extractor.py", "source_location": "L15", "weight": 1.0}, {"source": "$graphify-root$_tests_test_select_article_extractor_py", "target": "typing", "relation": "imports_from", "context": "import", "confidence": "EXTRACTED", "source_file": "tests/test_select_article_extractor.py", "source_location": "L16", "weight": 1.0}, {"source": "$graphify-root$_tests_test_select_article_extractor_py", "target": "pytest", "relation": "imports", "context": "import", "confidence": "EXTRACTED", "source_file": "tests/test_select_article_extractor.py", "source_location": "L18", "weight": 1.0}, {"source": "$graphify-root$_tests_test_select_article_extractor_py", "target": "scripts_select_article_extractor", "relation": "imports_from", "context": "import", "confidence": "EXTRACTED", "source_file": "tests/test_select_article_extractor.py", "source_location": "L20", "weight": 1.0}, {"source": "$graphify-root$_tests_test_select_article_extractor_py", "target": "$graphify-root$_tests_test_select_article_extractor_test_normalize_text_empty_and_invalid", "relation": "contains", "confidence": "EXTRACTED", "source_file": "tests/test_select_article_extractor.py", "source_location": "L40", "weight": 1.0}, {"source": "$graphify-root$_tests_test_select_article_extractor_py", "target": "$graphify-root$_tests_test_select_article_extractor_test_normalize_text_html_entities_and_tags", "relation": "contains", "confidence": "EXTRACTED", "source_file": "tests/test_select_article_extractor.py", "source_location": "L47", "weight": 1.0}, {"source": "$graphify-root$_tests_test_select_article_extractor_py", "target": "$graphify-root$_tests_test_select_article_extractor_test_normalize_text_markdown_links", "relation": "contains", "confidence": "EXTRACTED", "source_file": "tests/test_select_article_extractor.py", "source_location": "L53", "weight": 1.0}, {"source": "$graphify-root$_tests_test_select_article_extractor_py", "target": "$graphify-root$_tests_test_select_article_extractor_test_normalize_text_markdown_images_stripped_while_links_preserved", "relation": "contains", "confidence": "EXTRACTED", "source_file": "tests/test_select_article_extractor.py", "source_location": "L59", "weight": 1.0}, {"source": "$graphify-root$_tests_test_select_article_extractor_py", "target": "$graphify-root$_tests_test_select_article_extractor_test_normalize_text_nfkc_unicode_and_punctuation", "relation": "contains", "confidence": "EXTRACTED", "source_file": "tests/test_select_article_extractor.py", "source_location": "L78", "weight": 1.0}, {"source": "$graphify-root$_tests_test_select_article_extractor_py", "target": "$graphify-root$_tests_test_select_article_extractor_test_generate_shingles_sliding_window", "relation": "contains", "confidence": "EXTRACTED", "source_file": "tests/test_select_article_extractor.py", "source_location": "L90", "weight": 1.0}, {"source": "$graphify-root$_tests_test_select_article_extractor_py", "target": "$graphify-root$_tests_test_select_article_extractor_test_generate_shingles_short_text", "relation": "contains", "confidence": "EXTRACTED", "source_file": "tests/test_select_article_extractor.py", "source_location": "L98", "weight": 1.0}, {"source": "$graphify-root$_tests_test_select_article_extractor_py", "target": "$graphify-root$_tests_test_select_article_extractor_test_generate_shingles_empty", "relation": "contains", "confidence": "EXTRACTED", "source_file": "tests/test_select_article_extractor.py", "source_location": "L106", "weight": 1.0}, {"source": "$graphify-root$_tests_test_select_article_extractor_py", "target": "$graphify-root$_tests_test_select_article_extractor_test_ct_001_three_candidates_clear_winner", "relation": "contains", "confidence": "EXTRACTED", "source_file": "tests/test_select_article_extractor.py", "source_location": "L115", "weight": 1.0}, {"source": "$graphify-root$_tests_test_select_article_extractor_py", "target": "$graphify-root$_tests_test_select_article_extractor_test_ct_002_technical_tie_smallest_shingles", "relation": "contains", "confidence": "EXTRACTED", "source_file": "tests/test_select_article_extractor.py", "source_location": "L128", "weight": 1.0}, {"source": "$graphify-root$_tests_test_select_article_extractor_py", "target": "$graphify-root$_tests_test_select_article_extractor_test_ct_003_technical_tie_priority_fallback", "relation": "contains", "confidence": "EXTRACTED", "source_file": "tests/test_select_article_extractor.py", "source_location": "L140", "weight": 1.0}, {"source": "$graphify-root$_tests_test_select_article_extractor_py", "target": "$graphify-root$_tests_test_select_article_extractor_test_ct_004_three_candidates_no_consensus", "relation": "contains", "confidence": "EXTRACTED", "source_file": "tests/test_select_article_extractor.py", "source_location": "L161", "weight": 1.0}, {"source": "$graphify-root$_tests_test_select_article_extractor_py", "target": "$graphify-root$_tests_test_select_article_extractor_test_ct_005_two_candidates_no_consensus", "relation": "contains", "confidence": "EXTRACTED", "source_file": "tests/test_select_article_extractor.py", "source_location": "L176", "weight": 1.0}, {"source": "$graphify-root$_tests_test_select_article_extractor_py", "target": "$graphify-root$_tests_test_select_article_extractor_test_ct_006_single_usable_candidate", "relation": "contains", "confidence": "EXTRACTED", "source_file": "tests/test_select_article_extractor.py", "source_location": "L190", "weight": 1.0}, {"source": "$graphify-root$_tests_test_select_article_extractor_py", "target": "$graphify-root$_tests_test_select_article_extractor_test_ct_007_degraded_candidates_only", "relation": "contains", "confidence": "EXTRACTED", "source_file": "tests/test_select_article_extractor.py", "source_location": "L202", "weight": 1.0}, {"source": "$graphify-root$_tests_test_select_article_extractor_py", "target": "$graphify-root$_tests_test_select_article_extractor_test_ct_008_all_candidates_unavailable", "relation": "contains", "confidence": "EXTRACTED", "source_file": "tests/test_select_article_extractor.py", "source_location": "L214", "weight": 1.0}, {"source": "$graphify-root$_tests_test_select_article_extractor_py", "target": "$graphify-root$_tests_test_select_article_extractor_test_ct_009_small_fragment_loses_due_to_low_coverage", "relation": "contains", "confidence": "EXTRACTED", "source_file": "tests/test_select_article_extractor.py", "source_location": "L226", "weight": 1.0}, {"source": "$graphify-root$_tests_test_select_article_extractor_py", "target": "$graphify-root$_tests_test_select_article_extractor_test_ct_010_excessive_boilerplate_loses_due_to_low_support", "relation": "contains", "confidence": "EXTRACTED", "source_file": "tests/test_select_article_extractor.py", "source_location": "L243", "weight": 1.0}, {"source": "$graphify-root$_tests_test_select_article_extractor_py", "target": "$graphify-root$_tests_test_select_article_extractor_test_ct_011_partial_content_loses_due_to_low_coverage", "relation": "contains", "confidence": "EXTRACTED", "source_file": "tests/test_select_article_extractor.py", "source_location": "L259", "weight": 1.0}, {"source": "$graphify-root$_tests_test_select_article_extractor_py", "target": "$graphify-root$_tests_test_select_article_extractor_test_ct_012_recalculate_existing_selected_extractor", "relation": "contains", "confidence": "EXTRACTED", "source_file": "tests/test_select_article_extractor.py", "source_location": "L272", "weight": 1.0}, {"source": "$graphify-root$_tests_test_select_article_extractor_test_ct_012_recalculate_existing_selected_extractor", "target": "path", "relation": "references", "context": "parameter_type", "confidence": "EXTRACTED", "source_file": "tests/test_select_article_extractor.py", "source_location": "L272", "weight": 1.0}, {"source": "$graphify-root$_tests_test_select_article_extractor_py", "target": "$graphify-root$_tests_test_select_article_extractor_test_ct_013_empty_articles_list", "relation": "contains", "confidence": "EXTRACTED", "source_file": "tests/test_select_article_extractor.py", "source_location": "L298", "weight": 1.0}, {"source": "$graphify-root$_tests_test_select_article_extractor_test_ct_013_empty_articles_list", "target": "path", "relation": "references", "context": "parameter_type", "confidence": "EXTRACTED", "source_file": "tests/test_select_article_extractor.py", "source_location": "L298", "weight": 1.0}, {"source": "$graphify-root$_tests_test_select_article_extractor_py", "target": "$graphify-root$_tests_test_select_article_extractor_test_ct_014_invalid_json_fails_atomically", "relation": "contains", "confidence": "EXTRACTED", "source_file": "tests/test_select_article_extractor.py", "source_location": "L317", "weight": 1.0}, {"source": "$graphify-root$_tests_test_select_article_extractor_test_ct_014_invalid_json_fails_atomically", "target": "path", "relation": "references", "context": "parameter_type", "confidence": "EXTRACTED", "source_file": "tests/test_select_article_extractor.py", "source_location": "L317", "weight": 1.0}, {"source": "$graphify-root$_tests_test_select_article_extractor_py", "target": "$graphify-root$_tests_test_select_article_extractor_test_integration_reference_file", "relation": "contains", "confidence": "EXTRACTED", "source_file": "tests/test_select_article_extractor.py", "source_location": "L334", "weight": 1.0}, {"source": "$graphify-root$_tests_test_select_article_extractor_test_integration_reference_file", "target": "path", "relation": "references", "context": "parameter_type", "confidence": "EXTRACTED", "source_file": "tests/test_select_article_extractor.py", "source_location": "L334", "weight": 1.0}, {"source": "$graphify-root$_tests_test_select_article_extractor_py", "target": "$graphify-root$_tests_test_select_article_extractor_test_article_1_regression_technical_tie_markdown_images", "relation": "contains", "confidence": "EXTRACTED", "source_file": "tests/test_select_article_extractor.py", "source_location": "L363", "weight": 1.0}, {"source": "$graphify-root$_tests_test_select_article_extractor_py", "target": "$graphify-root$_tests_test_select_article_extractor_test_integration_large_batch_determinism", "relation": "contains", "confidence": "EXTRACTED", "source_file": "tests/test_select_article_extractor.py", "source_location": "L397", "weight": 1.0}, {"source": "$graphify-root$_tests_test_select_article_extractor_test_integration_large_batch_determinism", "target": "path", "relation": "references", "context": "parameter_type", "confidence": "EXTRACTED", "source_file": "tests/test_select_article_extractor.py", "source_location": "L397", "weight": 1.0}, {"source": "$graphify-root$_tests_test_select_article_extractor_py", "target": "$graphify-root$_tests_test_select_article_extractor_test_integration_pipeline_downstream_consumer", "relation": "contains", "confidence": "EXTRACTED", "source_file": "tests/test_select_article_extractor.py", "source_location": "L446", "weight": 1.0}, {"source": "$graphify-root$_tests_test_select_article_extractor_test_integration_pipeline_downstream_consumer", "target": "path", "relation": "references", "context": "parameter_type", "confidence": "EXTRACTED", "source_file": "tests/test_select_article_extractor.py", "source_location": "L446", "weight": 1.0}, {"source": "$graphify-root$_tests_test_select_article_extractor_py", "target": "$graphify-root$_tests_test_select_article_extractor_test_e2e_cli_subprocess_real_execution", "relation": "contains", "confidence": "EXTRACTED", "source_file": "tests/test_select_article_extractor.py", "source_location": "L483", "weight": 1.0}, {"source": "$graphify-root$_tests_test_select_article_extractor_test_e2e_cli_subprocess_real_execution", "target": "path", "relation": "references", "context": "parameter_type", "confidence": "EXTRACTED", "source_file": "tests/test_select_article_extractor.py", "source_location": "L483", "weight": 1.0}, {"source": "$graphify-root$_tests_test_select_article_extractor_py", "target": "$graphify-root$_tests_test_select_article_extractor_test_e2e_cli_subprocess_default_naming", "relation": "contains", "confidence": "EXTRACTED", "source_file": "tests/test_select_article_extractor.py", "source_location": "L520", "weight": 1.0}, {"source": "$graphify-root$_tests_test_select_article_extractor_test_e2e_cli_subprocess_default_naming", "target": "path", "relation": "references", "context": "parameter_type", "confidence": "EXTRACTED", "source_file": "tests/test_select_article_extractor.py", "source_location": "L520", "weight": 1.0}, {"source": "$graphify-root$_tests_test_select_article_extractor_py", "target": "$graphify-root$_tests_test_select_article_extractor_test_e2e_cli_subprocess_invalid_input", "relation": "contains", "confidence": "EXTRACTED", "source_file": "tests/test_select_article_extractor.py", "source_location": "L548", "weight": 1.0}, {"source": "$graphify-root$_tests_test_select_article_extractor_test_e2e_cli_subprocess_invalid_input", "target": "path", "relation": "references", "context": "parameter_type", "confidence": "EXTRACTED", "source_file": "tests/test_select_article_extractor.py", "source_location": "L548", "weight": 1.0}, {"source": "$graphify-root$_tests_test_select_article_extractor_py", "target": "$graphify-root$_tests_test_select_article_extractor_test_e2e_cli_subprocess_missing_file", "relation": "contains", "confidence": "EXTRACTED", "source_file": "tests/test_select_article_extractor.py", "source_location": "L561", "weight": 1.0}, {"source": "$graphify-root$_tests_test_select_article_extractor_test_ct_012_recalculate_existing_selected_extractor", "target": "path", "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "tests/test_select_article_extractor.py", "source_location": "L289", "weight": 1.0}, {"source": "$graphify-root$_tests_test_select_article_extractor_test_ct_013_empty_articles_list", "target": "path", "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "tests/test_select_article_extractor.py", "source_location": "L305", "weight": 1.0}, {"source": "$graphify-root$_tests_test_select_article_extractor_test_integration_reference_file", "target": "path", "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "tests/test_select_article_extractor.py", "source_location": "L336", "weight": 1.0}, {"source": "$graphify-root$_tests_test_select_article_extractor_test_article_1_regression_technical_tie_markdown_images", "target": "path", "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "tests/test_select_article_extractor.py", "source_location": "L370", "weight": 1.0}, {"source": "$graphify-root$_tests_test_select_article_extractor_test_integration_pipeline_downstream_consumer", "target": "path", "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "tests/test_select_article_extractor.py", "source_location": "L452", "weight": 1.0}, {"source": "$graphify-root$_tests_test_select_article_extractor_test_e2e_cli_subprocess_real_execution", "target": "path", "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "tests/test_select_article_extractor.py", "source_location": "L485", "weight": 1.0}, {"source": "$graphify-root$_tests_test_select_article_extractor_test_e2e_cli_subprocess_default_naming", "target": "path", "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "tests/test_select_article_extractor.py", "source_location": "L536", "weight": 1.0}, {"source": "$graphify-root$_tests_test_select_article_extractor_test_e2e_cli_subprocess_invalid_input", "target": "path", "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "tests/test_select_article_extractor.py", "source_location": "L553", "weight": 1.0}, {"source": "$graphify-root$_tests_test_select_article_extractor_test_e2e_cli_subprocess_missing_file", "target": "path", "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "tests/test_select_article_extractor.py", "source_location": "L563", "weight": 1.0}, {"source": "$graphify-root$_tests_test_select_article_extractor_rationale_1", "target": "$graphify-root$_tests_test_select_article_extractor_py", "relation": "rationale_for", "confidence": "EXTRACTED", "source_file": "tests/test_select_article_extractor.py", "source_location": "L1", "weight": 1.0}, {"source": "$graphify-root$_tests_test_select_article_extractor_rationale_60", "target": "$graphify-root$_tests_test_select_article_extractor_test_normalize_text_markdown_images_stripped_while_links_preserved", "relation": "rationale_for", "confidence": "EXTRACTED", "source_file": "tests/test_select_article_extractor.py", "source_location": "L60", "weight": 1.0}, {"source": "$graphify-root$_tests_test_select_article_extractor_rationale_116", "target": "$graphify-root$_tests_test_select_article_extractor_test_ct_001_three_candidates_clear_winner", "relation": "rationale_for", "confidence": "EXTRACTED", "source_file": "tests/test_select_article_extractor.py", "source_location": "L116", "weight": 1.0}, {"source": "$graphify-root$_tests_test_select_article_extractor_rationale_129", "target": "$graphify-root$_tests_test_select_article_extractor_test_ct_002_technical_tie_smallest_shingles", "relation": "rationale_for", "confidence": "EXTRACTED", "source_file": "tests/test_select_article_extractor.py", "source_location": "L129", "weight": 1.0}, {"source": "$graphify-root$_tests_test_select_article_extractor_rationale_141", "target": "$graphify-root$_tests_test_select_article_extractor_test_ct_003_technical_tie_priority_fallback", "relation": "rationale_for", "confidence": "EXTRACTED", "source_file": "tests/test_select_article_extractor.py", "source_location": "L141", "weight": 1.0}, {"source": "$graphify-root$_tests_test_select_article_extractor_rationale_162", "target": "$graphify-root$_tests_test_select_article_extractor_test_ct_004_three_candidates_no_consensus", "relation": "rationale_for", "confidence": "EXTRACTED", "source_file": "tests/test_select_article_extractor.py", "source_location": "L162", "weight": 1.0}, {"source": "$graphify-root$_tests_test_select_article_extractor_rationale_177", "target": "$graphify-root$_tests_test_select_article_extractor_test_ct_005_two_candidates_no_consensus", "relation": "rationale_for", "confidence": "EXTRACTED", "source_file": "tests/test_select_article_extractor.py", "source_location": "L177", "weight": 1.0}, {"source": "$graphify-root$_tests_test_select_article_extractor_rationale_191", "target": "$graphify-root$_tests_test_select_article_extractor_test_ct_006_single_usable_candidate", "relation": "rationale_for", "confidence": "EXTRACTED", "source_file": "tests/test_select_article_extractor.py", "source_location": "L191", "weight": 1.0}, {"source": "$graphify-root$_tests_test_select_article_extractor_rationale_203", "target": "$graphify-root$_tests_test_select_article_extractor_test_ct_007_degraded_candidates_only", "relation": "rationale_for", "confidence": "EXTRACTED", "source_file": "tests/test_select_article_extractor.py", "source_location": "L203", "weight": 1.0}, {"source": "$graphify-root$_tests_test_select_article_extractor_rationale_215", "target": "$graphify-root$_tests_test_select_article_extractor_test_ct_008_all_candidates_unavailable", "relation": "rationale_for", "confidence": "EXTRACTED", "source_file": "tests/test_select_article_extractor.py", "source_location": "L215", "weight": 1.0}, {"source": "$graphify-root$_tests_test_select_article_extractor_rationale_227", "target": "$graphify-root$_tests_test_select_article_extractor_test_ct_009_small_fragment_loses_due_to_low_coverage", "relation": "rationale_for", "confidence": "EXTRACTED", "source_file": "tests/test_select_article_extractor.py", "source_location": "L227", "weight": 1.0}, {"source": "$graphify-root$_tests_test_select_article_extractor_rationale_244", "target": "$graphify-root$_tests_test_select_article_extractor_test_ct_010_excessive_boilerplate_loses_due_to_low_support", "relation": "rationale_for", "confidence": "EXTRACTED", "source_file": "tests/test_select_article_extractor.py", "source_location": "L244", "weight": 1.0}, {"source": "$graphify-root$_tests_test_select_article_extractor_rationale_260", "target": "$graphify-root$_tests_test_select_article_extractor_test_ct_011_partial_content_loses_due_to_low_coverage", "relation": "rationale_for", "confidence": "EXTRACTED", "source_file": "tests/test_select_article_extractor.py", "source_location": "L260", "weight": 1.0}, {"source": "$graphify-root$_tests_test_select_article_extractor_rationale_273", "target": "$graphify-root$_tests_test_select_article_extractor_test_ct_012_recalculate_existing_selected_extractor", "relation": "rationale_for", "confidence": "EXTRACTED", "source_file": "tests/test_select_article_extractor.py", "source_location": "L273", "weight": 1.0}, {"source": "$graphify-root$_tests_test_select_article_extractor_rationale_299", "target": "$graphify-root$_tests_test_select_article_extractor_test_ct_013_empty_articles_list", "relation": "rationale_for", "confidence": "EXTRACTED", "source_file": "tests/test_select_article_extractor.py", "source_location": "L299", "weight": 1.0}, {"source": "$graphify-root$_tests_test_select_article_extractor_rationale_318", "target": "$graphify-root$_tests_test_select_article_extractor_test_ct_014_invalid_json_fails_atomically", "relation": "rationale_for", "confidence": "EXTRACTED", "source_file": "tests/test_select_article_extractor.py", "source_location": "L318", "weight": 1.0}, {"source": "$graphify-root$_tests_test_select_article_extractor_rationale_335", "target": "$graphify-root$_tests_test_select_article_extractor_test_integration_reference_file", "relation": "rationale_for", "confidence": "EXTRACTED", "source_file": "tests/test_select_article_extractor.py", "source_location": "L335", "weight": 1.0}, {"source": "$graphify-root$_tests_test_select_article_extractor_rationale_364", "target": "$graphify-root$_tests_test_select_article_extractor_test_article_1_regression_technical_tie_markdown_images", "relation": "rationale_for", "confidence": "EXTRACTED", "source_file": "tests/test_select_article_extractor.py", "source_location": "L364", "weight": 1.0}, {"source": "$graphify-root$_tests_test_select_article_extractor_rationale_398", "target": "$graphify-root$_tests_test_select_article_extractor_test_integration_large_batch_determinism", "relation": "rationale_for", "confidence": "EXTRACTED", "source_file": "tests/test_select_article_extractor.py", "source_location": "L398", "weight": 1.0}, {"source": "$graphify-root$_tests_test_select_article_extractor_rationale_447", "target": "$graphify-root$_tests_test_select_article_extractor_test_integration_pipeline_downstream_consumer", "relation": "rationale_for", "confidence": "EXTRACTED", "source_file": "tests/test_select_article_extractor.py", "source_location": "L447", "weight": 1.0}, {"source": "$graphify-root$_tests_test_select_article_extractor_rationale_484", "target": "$graphify-root$_tests_test_select_article_extractor_test_e2e_cli_subprocess_real_execution", "relation": "rationale_for", "confidence": "EXTRACTED", "source_file": "tests/test_select_article_extractor.py", "source_location": "L484", "weight": 1.0}, {"source": "$graphify-root$_tests_test_select_article_extractor_rationale_521", "target": "$graphify-root$_tests_test_select_article_extractor_test_e2e_cli_subprocess_default_naming", "relation": "rationale_for", "confidence": "EXTRACTED", "source_file": "tests/test_select_article_extractor.py", "source_location": "L521", "weight": 1.0}, {"source": "$graphify-root$_tests_test_select_article_extractor_rationale_549", "target": "$graphify-root$_tests_test_select_article_extractor_test_e2e_cli_subprocess_invalid_input", "relation": "rationale_for", "confidence": "EXTRACTED", "source_file": "tests/test_select_article_extractor.py", "source_location": "L549", "weight": 1.0}, {"source": "$graphify-root$_tests_test_select_article_extractor_rationale_562", "target": "$graphify-root$_tests_test_select_article_extractor_test_e2e_cli_subprocess_missing_file", "relation": "rationale_for", "confidence": "EXTRACTED", "source_file": "tests/test_select_article_extractor.py", "source_location": "L562", "weight": 1.0}], "raw_calls": [{"caller_nid": "$graphify-root$_tests_test_select_article_extractor_test_normalize_text_empty_and_invalid", "callee": "normalize_text", "is_member_call": false, "source_file": "tests/test_select_article_extractor.py", "source_location": "L41", "receiver": null}, {"caller_nid": "$graphify-root$_tests_test_select_article_extractor_test_normalize_text_empty_and_invalid", "callee": "normalize_text", "is_member_call": false, "source_file": "tests/test_select_article_extractor.py", "source_location": "L42", "receiver": null}, {"caller_nid": "$graphify-root$_tests_test_select_article_extractor_test_normalize_text_empty_and_invalid", "callee": "normalize_text", "is_member_call": false, "source_file": "tests/test_select_article_extractor.py", "source_location": "L43", "receiver": null}, {"caller_nid": "$graphify-root$_tests_test_select_article_extractor_test_normalize_text_empty_and_invalid", "callee": "normalize_text", "is_member_call": false, "source_file": "tests/test_select_article_extractor.py", "source_location": "L44", "receiver": null}, {"caller_nid": "$graphify-root$_tests_test_select_article_extractor_test_normalize_text_html_entities_and_tags", "callee": "normalize_text", "is_member_call": false, "source_file": "tests/test_select_article_extractor.py", "source_location": "L49", "receiver": null}, {"caller_nid": "$graphify-root$_tests_test_select_article_extractor_test_normalize_text_markdown_links", "callee": "normalize_text", "is_member_call": false, "source_file": "tests/test_select_article_extractor.py", "source_location": "L55", "receiver": null}, {"caller_nid": "$graphify-root$_tests_test_select_article_extractor_test_normalize_text_markdown_images_stripped_while_links_preserved", "callee": "normalize_text", "is_member_call": false, "source_file": "tests/test_select_article_extractor.py", "source_location": "L67", "receiver": null}, {"caller_nid": "$graphify-root$_tests_test_select_article_extractor_test_normalize_text_nfkc_unicode_and_punctuation", "callee": "normalize_text", "is_member_call": false, "source_file": "tests/test_select_article_extractor.py", "source_location": "L81", "receiver": null}, {"caller_nid": "$graphify-root$_tests_test_select_article_extractor_test_generate_shingles_sliding_window", "callee": "generate_shingles", "is_member_call": false, "source_file": "tests/test_select_article_extractor.py", "source_location": "L92", "receiver": null}, {"caller_nid": "$graphify-root$_tests_test_select_article_extractor_test_generate_shingles_short_text", "callee": "generate_shingles", "is_member_call": false, "source_file": "tests/test_select_article_extractor.py", "source_location": "L101", "receiver": null}, {"caller_nid": "$graphify-root$_tests_test_select_article_extractor_test_generate_shingles_empty", "callee": "generate_shingles", "is_member_call": false, "source_file": "tests/test_select_article_extractor.py", "source_location": "L107", "receiver": null}, {"caller_nid": "$graphify-root$_tests_test_select_article_extractor_test_ct_001_three_candidates_clear_winner", "callee": "select_article_extractor", "is_member_call": false, "source_file": "tests/test_select_article_extractor.py", "source_location": "L123", "receiver": null}, {"caller_nid": "$graphify-root$_tests_test_select_article_extractor_test_ct_002_technical_tie_smallest_shingles", "callee": "select_article_extractor", "is_member_call": false, "source_file": "tests/test_select_article_extractor.py", "source_location": "L136", "receiver": null}, {"caller_nid": "$graphify-root$_tests_test_select_article_extractor_test_ct_003_technical_tie_priority_fallback", "callee": "select_article_extractor", "is_member_call": false, "source_file": "tests/test_select_article_extractor.py", "source_location": "L148", "receiver": null}, {"caller_nid": "$graphify-root$_tests_test_select_article_extractor_test_ct_003_technical_tie_priority_fallback", "callee": "select_article_extractor", "is_member_call": false, "source_file": "tests/test_select_article_extractor.py", "source_location": "L157", "receiver": null}, {"caller_nid": "$graphify-root$_tests_test_select_article_extractor_test_ct_004_three_candidates_no_consensus", "callee": "select_article_extractor", "is_member_call": false, "source_file": "tests/test_select_article_extractor.py", "source_location": "L171", "receiver": null}, {"caller_nid": "$graphify-root$_tests_test_select_article_extractor_test_ct_005_two_candidates_no_consensus", "callee": "select_article_extractor", "is_member_call": false, "source_file": "tests/test_select_article_extractor.py", "source_location": "L185", "receiver": null}, {"caller_nid": "$graphify-root$_tests_test_select_article_extractor_test_ct_006_single_usable_candidate", "callee": "select_article_extractor", "is_member_call": false, "source_file": "tests/test_select_article_extractor.py", "source_location": "L197", "receiver": null}, {"caller_nid": "$graphify-root$_tests_test_select_article_extractor_test_ct_007_degraded_candidates_only", "callee": "select_article_extractor", "is_member_call": false, "source_file": "tests/test_select_article_extractor.py", "source_location": "L210", "receiver": null}, {"caller_nid": "$graphify-root$_tests_test_select_article_extractor_test_ct_008_all_candidates_unavailable", "callee": "select_article_extractor", "is_member_call": false, "source_file": "tests/test_select_article_extractor.py", "source_location": "L221", "receiver": null}, {"caller_nid": "$graphify-root$_tests_test_select_article_extractor_test_ct_009_small_fragment_loses_due_to_low_coverage", "callee": "select_article_extractor", "is_member_call": false, "source_file": "tests/test_select_article_extractor.py", "source_location": "L238", "receiver": null}, {"caller_nid": "$graphify-root$_tests_test_select_article_extractor_test_ct_010_excessive_boilerplate_loses_due_to_low_support", "callee": "select_article_extractor", "is_member_call": false, "source_file": "tests/test_select_article_extractor.py", "source_location": "L255", "receiver": null}, {"caller_nid": "$graphify-root$_tests_test_select_article_extractor_test_ct_011_partial_content_loses_due_to_low_coverage", "callee": "select_article_extractor", "is_member_call": false, "source_file": "tests/test_select_article_extractor.py", "source_location": "L268", "receiver": null}, {"caller_nid": "$graphify-root$_tests_test_select_article_extractor_test_ct_012_recalculate_existing_selected_extractor", "callee": "write_text", "is_member_call": true, "source_file": "tests/test_select_article_extractor.py", "source_location": "L286", "receiver": "in_file"}, {"caller_nid": "$graphify-root$_tests_test_select_article_extractor_test_ct_012_recalculate_existing_selected_extractor", "callee": "dumps", "is_member_call": true, "source_file": "tests/test_select_article_extractor.py", "source_location": "L286", "receiver": "json"}, {"caller_nid": "$graphify-root$_tests_test_select_article_extractor_test_ct_012_recalculate_existing_selected_extractor", "callee": "process_batch", "is_member_call": false, "source_file": "tests/test_select_article_extractor.py", "source_location": "L288", "receiver": null}, {"caller_nid": "$graphify-root$_tests_test_select_article_extractor_test_ct_012_recalculate_existing_selected_extractor", "callee": "exists", "is_member_call": true, "source_file": "tests/test_select_article_extractor.py", "source_location": "L290", "receiver": "out_file"}, {"caller_nid": "$graphify-root$_tests_test_select_article_extractor_test_ct_012_recalculate_existing_selected_extractor", "callee": "load", "is_member_call": true, "source_file": "tests/test_select_article_extractor.py", "source_location": "L293", "receiver": "json"}, {"caller_nid": "$graphify-root$_tests_test_select_article_extractor_test_ct_012_recalculate_existing_selected_extractor", "callee": "f", "is_member_call": false, "indirect": true, "context": "argument", "source_file": "tests/test_select_article_extractor.py", "source_location": "L293"}, {"caller_nid": "$graphify-root$_tests_test_select_article_extractor_test_ct_013_empty_articles_list", "callee": "write_text", "is_member_call": true, "source_file": "tests/test_select_article_extractor.py", "source_location": "L302", "receiver": "in_file"}, {"caller_nid": "$graphify-root$_tests_test_select_article_extractor_test_ct_013_empty_articles_list", "callee": "dumps", "is_member_call": true, "source_file": "tests/test_select_article_extractor.py", "source_location": "L302", "receiver": "json"}, {"caller_nid": "$graphify-root$_tests_test_select_article_extractor_test_ct_013_empty_articles_list", "callee": "process_batch", "is_member_call": false, "source_file": "tests/test_select_article_extractor.py", "source_location": "L304", "receiver": null}, {"caller_nid": "$graphify-root$_tests_test_select_article_extractor_test_ct_013_empty_articles_list", "callee": "exists", "is_member_call": true, "source_file": "tests/test_select_article_extractor.py", "source_location": "L306", "receiver": "out_file"}, {"caller_nid": "$graphify-root$_tests_test_select_article_extractor_test_ct_013_empty_articles_list", "callee": "load", "is_member_call": true, "source_file": "tests/test_select_article_extractor.py", "source_location": "L309", "receiver": "json"}, {"caller_nid": "$graphify-root$_tests_test_select_article_extractor_test_ct_013_empty_articles_list", "callee": "f", "is_member_call": false, "indirect": true, "context": "argument", "source_file": "tests/test_select_article_extractor.py", "source_location": "L309"}, {"caller_nid": "$graphify-root$_tests_test_select_article_extractor_test_ct_014_invalid_json_fails_atomically", "callee": "write_text", "is_member_call": true, "source_file": "tests/test_select_article_extractor.py", "source_location": "L320", "receiver": "in_file"}, {"caller_nid": "$graphify-root$_tests_test_select_article_extractor_test_ct_014_invalid_json_fails_atomically", "callee": "raises", "is_member_call": true, "source_file": "tests/test_select_article_extractor.py", "source_location": "L323", "receiver": "pytest"}, {"caller_nid": "$graphify-root$_tests_test_select_article_extractor_test_ct_014_invalid_json_fails_atomically", "callee": "ValueError", "is_member_call": false, "indirect": true, "context": "argument", "source_file": "tests/test_select_article_extractor.py", "source_location": "L323"}, {"caller_nid": "$graphify-root$_tests_test_select_article_extractor_test_ct_014_invalid_json_fails_atomically", "callee": "process_batch", "is_member_call": false, "source_file": "tests/test_select_article_extractor.py", "source_location": "L324", "receiver": null}, {"caller_nid": "$graphify-root$_tests_test_select_article_extractor_test_ct_014_invalid_json_fails_atomically", "callee": "exists", "is_member_call": true, "source_file": "tests/test_select_article_extractor.py", "source_location": "L326", "receiver": "expected_out"}, {"caller_nid": "$graphify-root$_tests_test_select_article_extractor_test_integration_reference_file", "callee": "exists", "is_member_call": true, "source_file": "tests/test_select_article_extractor.py", "source_location": "L337", "receiver": "ref_file"}, {"caller_nid": "$graphify-root$_tests_test_select_article_extractor_test_integration_reference_file", "callee": "skip", "is_member_call": true, "source_file": "tests/test_select_article_extractor.py", "source_location": "L338", "receiver": "pytest"}, {"caller_nid": "$graphify-root$_tests_test_select_article_extractor_test_integration_reference_file", "callee": "process_batch", "is_member_call": false, "source_file": "tests/test_select_article_extractor.py", "source_location": "L341", "receiver": null}, {"caller_nid": "$graphify-root$_tests_test_select_article_extractor_test_integration_reference_file", "callee": "exists", "is_member_call": true, "source_file": "tests/test_select_article_extractor.py", "source_location": "L345", "receiver": "out_file"}, {"caller_nid": "$graphify-root$_tests_test_select_article_extractor_test_integration_reference_file", "callee": "load", "is_member_call": true, "source_file": "tests/test_select_article_extractor.py", "source_location": "L348", "receiver": "json"}, {"caller_nid": "$graphify-root$_tests_test_select_article_extractor_test_integration_reference_file", "callee": "f", "is_member_call": false, "indirect": true, "context": "argument", "source_file": "tests/test_select_article_extractor.py", "source_location": "L348"}, {"caller_nid": "$graphify-root$_tests_test_select_article_extractor_test_article_1_regression_technical_tie_markdown_images", "callee": "exists", "is_member_call": true, "source_file": "tests/test_select_article_extractor.py", "source_location": "L371", "receiver": "ref_file"}, {"caller_nid": "$graphify-root$_tests_test_select_article_extractor_test_article_1_regression_technical_tie_markdown_images", "callee": "skip", "is_member_call": true, "source_file": "tests/test_select_article_extractor.py", "source_location": "L372", "receiver": "pytest"}, {"caller_nid": "$graphify-root$_tests_test_select_article_extractor_test_article_1_regression_technical_tie_markdown_images", "callee": "load", "is_member_call": true, "source_file": "tests/test_select_article_extractor.py", "source_location": "L375", "receiver": "json"}, {"caller_nid": "$graphify-root$_tests_test_select_article_extractor_test_article_1_regression_technical_tie_markdown_images", "callee": "f", "is_member_call": false, "indirect": true, "context": "argument", "source_file": "tests/test_select_article_extractor.py", "source_location": "L375"}, {"caller_nid": "$graphify-root$_tests_test_select_article_extractor_test_article_1_regression_technical_tie_markdown_images", "callee": "select_article_extractor", "is_member_call": false, "source_file": "tests/test_select_article_extractor.py", "source_location": "L378", "receiver": null}, {"caller_nid": "$graphify-root$_tests_test_select_article_extractor_test_integration_large_batch_determinism", "callee": "append", "is_member_call": true, "source_file": "tests/test_select_article_extractor.py", "source_location": "L425", "receiver": "articles"}, {"caller_nid": "$graphify-root$_tests_test_select_article_extractor_test_integration_large_batch_determinism", "callee": "write_text", "is_member_call": true, "source_file": "tests/test_select_article_extractor.py", "source_location": "L429", "receiver": "in_file"}, {"caller_nid": "$graphify-root$_tests_test_select_article_extractor_test_integration_large_batch_determinism", "callee": "dumps", "is_member_call": true, "source_file": "tests/test_select_article_extractor.py", "source_location": "L429", "receiver": "json"}, {"caller_nid": "$graphify-root$_tests_test_select_article_extractor_test_integration_large_batch_determinism", "callee": "process_batch", "is_member_call": false, "source_file": "tests/test_select_article_extractor.py", "source_location": "L434", "receiver": null}, {"caller_nid": "$graphify-root$_tests_test_select_article_extractor_test_integration_large_batch_determinism", "callee": "process_batch", "is_member_call": false, "source_file": "tests/test_select_article_extractor.py", "source_location": "L435", "receiver": null}, {"caller_nid": "$graphify-root$_tests_test_select_article_extractor_test_integration_pipeline_downstream_consumer", "callee": "exists", "is_member_call": true, "source_file": "tests/test_select_article_extractor.py", "source_location": "L453", "receiver": "ref_file"}, {"caller_nid": "$graphify-root$_tests_test_select_article_extractor_test_integration_pipeline_downstream_consumer", "callee": "skip", "is_member_call": true, "source_file": "tests/test_select_article_extractor.py", "source_location": "L454", "receiver": "pytest"}, {"caller_nid": "$graphify-root$_tests_test_select_article_extractor_test_integration_pipeline_downstream_consumer", "callee": "process_batch", "is_member_call": false, "source_file": "tests/test_select_article_extractor.py", "source_location": "L457", "receiver": null}, {"caller_nid": "$graphify-root$_tests_test_select_article_extractor_test_integration_pipeline_downstream_consumer", "callee": "load", "is_member_call": true, "source_file": "tests/test_select_article_extractor.py", "source_location": "L460", "receiver": "json"}, {"caller_nid": "$graphify-root$_tests_test_select_article_extractor_test_integration_pipeline_downstream_consumer", "callee": "f", "is_member_call": false, "indirect": true, "context": "argument", "source_file": "tests/test_select_article_extractor.py", "source_location": "L460"}, {"caller_nid": "$graphify-root$_tests_test_select_article_extractor_test_integration_pipeline_downstream_consumer", "callee": "str", "is_member_call": false, "indirect": true, "context": "argument", "source_file": "tests/test_select_article_extractor.py", "source_location": "L474"}, {"caller_nid": "$graphify-root$_tests_test_select_article_extractor_test_integration_pipeline_downstream_consumer", "callee": "strip", "is_member_call": true, "source_file": "tests/test_select_article_extractor.py", "source_location": "L475", "receiver": "chosen_text"}, {"caller_nid": "$graphify-root$_tests_test_select_article_extractor_test_e2e_cli_subprocess_real_execution", "callee": "exists", "is_member_call": true, "source_file": "tests/test_select_article_extractor.py", "source_location": "L486", "receiver": "ref_file"}, {"caller_nid": "$graphify-root$_tests_test_select_article_extractor_test_e2e_cli_subprocess_real_execution", "callee": "skip", "is_member_call": true, "source_file": "tests/test_select_article_extractor.py", "source_location": "L487", "receiver": "pytest"}, {"caller_nid": "$graphify-root$_tests_test_select_article_extractor_test_e2e_cli_subprocess_real_execution", "callee": "resolve", "is_member_call": true, "source_file": "tests/test_select_article_extractor.py", "source_location": "L490", "receiver": null}, {"caller_nid": "$graphify-root$_tests_test_select_article_extractor_test_e2e_cli_subprocess_real_execution", "callee": "resolve", "is_member_call": true, "source_file": "tests/test_select_article_extractor.py", "source_location": "L495", "receiver": "ref_file"}, {"caller_nid": "$graphify-root$_tests_test_select_article_extractor_test_e2e_cli_subprocess_real_execution", "callee": "run", "is_member_call": true, "source_file": "tests/test_select_article_extractor.py", "source_location": "L503", "receiver": "subprocess"}, {"caller_nid": "$graphify-root$_tests_test_select_article_extractor_test_e2e_cli_subprocess_real_execution", "callee": "exists", "is_member_call": true, "source_file": "tests/test_select_article_extractor.py", "source_location": "L506", "receiver": "out_file"}, {"caller_nid": "$graphify-root$_tests_test_select_article_extractor_test_e2e_cli_subprocess_real_execution", "callee": "loads", "is_member_call": true, "source_file": "tests/test_select_article_extractor.py", "source_location": "L509", "receiver": "json"}, {"caller_nid": "$graphify-root$_tests_test_select_article_extractor_test_e2e_cli_subprocess_default_naming", "callee": "write_text", "is_member_call": true, "source_file": "tests/test_select_article_extractor.py", "source_location": "L533", "receiver": "in_file"}, {"caller_nid": "$graphify-root$_tests_test_select_article_extractor_test_e2e_cli_subprocess_default_naming", "callee": "dumps", "is_member_call": true, "source_file": "tests/test_select_article_extractor.py", "source_location": "L533", "receiver": "json"}, {"caller_nid": "$graphify-root$_tests_test_select_article_extractor_test_e2e_cli_subprocess_default_naming", "callee": "resolve", "is_member_call": true, "source_file": "tests/test_select_article_extractor.py", "source_location": "L536", "receiver": null}, {"caller_nid": "$graphify-root$_tests_test_select_article_extractor_test_e2e_cli_subprocess_default_naming", "callee": "run", "is_member_call": true, "source_file": "tests/test_select_article_extractor.py", "source_location": "L539", "receiver": "subprocess"}, {"caller_nid": "$graphify-root$_tests_test_select_article_extractor_test_e2e_cli_subprocess_default_naming", "callee": "exists", "is_member_call": true, "source_file": "tests/test_select_article_extractor.py", "source_location": "L541", "receiver": "expected_out"}, {"caller_nid": "$graphify-root$_tests_test_select_article_extractor_test_e2e_cli_subprocess_default_naming", "callee": "load", "is_member_call": true, "source_file": "tests/test_select_article_extractor.py", "source_location": "L544", "receiver": "json"}, {"caller_nid": "$graphify-root$_tests_test_select_article_extractor_test_e2e_cli_subprocess_default_naming", "callee": "f", "is_member_call": false, "indirect": true, "context": "argument", "source_file": "tests/test_select_article_extractor.py", "source_location": "L544"}, {"caller_nid": "$graphify-root$_tests_test_select_article_extractor_test_e2e_cli_subprocess_invalid_input", "callee": "write_text", "is_member_call": true, "source_file": "tests/test_select_article_extractor.py", "source_location": "L551", "receiver": "invalid_file"}, {"caller_nid": "$graphify-root$_tests_test_select_article_extractor_test_e2e_cli_subprocess_invalid_input", "callee": "resolve", "is_member_call": true, "source_file": "tests/test_select_article_extractor.py", "source_location": "L553", "receiver": null}, {"caller_nid": "$graphify-root$_tests_test_select_article_extractor_test_e2e_cli_subprocess_invalid_input", "callee": "run", "is_member_call": true, "source_file": "tests/test_select_article_extractor.py", "source_location": "L556", "receiver": "subprocess"}, {"caller_nid": "$graphify-root$_tests_test_select_article_extractor_test_e2e_cli_subprocess_missing_file", "callee": "resolve", "is_member_call": true, "source_file": "tests/test_select_article_extractor.py", "source_location": "L563", "receiver": null}, {"caller_nid": "$graphify-root$_tests_test_select_article_extractor_test_e2e_cli_subprocess_missing_file", "callee": "run", "is_member_call": true, "source_file": "tests/test_select_article_extractor.py", "source_location": "L566", "receiver": "subprocess"}]}