1 line
85 KiB
JSON
1 line
85 KiB
JSON
{"nodes": [{"id": "$graphify-root$_tests_test_convert_article_to_markdown_py", "label": "test_convert_article_to_markdown.py", "file_type": "code", "source_file": "tests/test_convert_article_to_markdown.py", "source_location": "L1"}, {"id": "$graphify-root$_tests_test_convert_article_to_markdown_test_normalize_scalar_complex_html_entities", "label": "test_normalize_scalar_complex_html_entities()", "file_type": "code", "source_file": "tests/test_convert_article_to_markdown.py", "source_location": "L45", "_callable": true}, {"id": "$graphify-root$_tests_test_convert_article_to_markdown_test_normalize_scalar_whitespace_collapsing", "label": "test_normalize_scalar_whitespace_collapsing()", "file_type": "code", "source_file": "tests/test_convert_article_to_markdown.py", "source_location": "L54", "_callable": true}, {"id": "parametrize", "label": "parametrize", "file_type": "code", "source_file": "", "source_location": "", "origin_file": "$graphify-root$/tests/test_convert_article_to_markdown.py"}, {"id": "$graphify-root$_tests_test_convert_article_to_markdown_test_normalize_scalar_placeholders_discarded", "label": "test_normalize_scalar_placeholders_discarded()", "file_type": "code", "source_file": "tests/test_convert_article_to_markdown.py", "source_location": "L85", "_callable": true}, {"id": "$graphify-root$_tests_test_convert_article_to_markdown_test_normalize_scalar_non_string_types", "label": "test_normalize_scalar_non_string_types()", "file_type": "code", "source_file": "tests/test_convert_article_to_markdown.py", "source_location": "L91", "_callable": true}, {"id": "$graphify-root$_tests_test_convert_article_to_markdown_test_normalize_list_semicolon_and_comma_split", "label": "test_normalize_list_semicolon_and_comma_split()", "file_type": "code", "source_file": "tests/test_convert_article_to_markdown.py", "source_location": "L104", "_callable": true}, {"id": "$graphify-root$_tests_test_convert_article_to_markdown_test_normalize_list_author_url_filtering", "label": "test_normalize_list_author_url_filtering()", "file_type": "code", "source_file": "tests/test_convert_article_to_markdown.py", "source_location": "L115", "_callable": true}, {"id": "$graphify-root$_tests_test_convert_article_to_markdown_test_normalize_list_deduplication_preserves_case_and_order", "label": "test_normalize_list_deduplication_preserves_case_and_order()", "file_type": "code", "source_file": "tests/test_convert_article_to_markdown.py", "source_location": "L128", "_callable": true}, {"id": "$graphify-root$_tests_test_convert_article_to_markdown_test_normalize_list_empty_and_invalid", "label": "test_normalize_list_empty_and_invalid()", "file_type": "code", "source_file": "tests/test_convert_article_to_markdown.py", "source_location": "L134", "_callable": true}, {"id": "$graphify-root$_tests_test_convert_article_to_markdown_test_normalize_date_iso_8601_variants", "label": "test_normalize_date_iso_8601_variants()", "file_type": "code", "source_file": "tests/test_convert_article_to_markdown.py", "source_location": "L146", "_callable": true}, {"id": "$graphify-root$_tests_test_convert_article_to_markdown_test_normalize_date_rfc_2822_variants", "label": "test_normalize_date_rfc_2822_variants()", "file_type": "code", "source_file": "tests/test_convert_article_to_markdown.py", "source_location": "L154", "_callable": true}, {"id": "$graphify-root$_tests_test_convert_article_to_markdown_test_normalize_date_invalid_and_placeholders", "label": "test_normalize_date_invalid_and_placeholders()", "file_type": "code", "source_file": "tests/test_convert_article_to_markdown.py", "source_location": "L163", "_callable": true}, {"id": "$graphify-root$_tests_test_convert_article_to_markdown_test_validate_url_valid_schemes", "label": "test_validate_url_valid_schemes()", "file_type": "code", "source_file": "tests/test_convert_article_to_markdown.py", "source_location": "L186", "_callable": true}, {"id": "$graphify-root$_tests_test_convert_article_to_markdown_test_validate_url_invalid_schemes", "label": "test_validate_url_invalid_schemes()", "file_type": "code", "source_file": "tests/test_convert_article_to_markdown.py", "source_location": "L206", "_callable": true}, {"id": "$graphify-root$_tests_test_convert_article_to_markdown_test_convert_html_to_markdown_rich_formatting", "label": "test_convert_html_to_markdown_rich_formatting()", "file_type": "code", "source_file": "tests/test_convert_article_to_markdown.py", "source_location": "L216", "_callable": true}, {"id": "$graphify-root$_tests_test_convert_article_to_markdown_test_convert_html_to_markdown_empty_or_whitespace", "label": "test_convert_html_to_markdown_empty_or_whitespace()", "file_type": "code", "source_file": "tests/test_convert_article_to_markdown.py", "source_location": "L246", "_callable": true}, {"id": "$graphify-root$_tests_test_convert_article_to_markdown_test_resolve_article_body_trafilatura_primary_and_fallback", "label": "test_resolve_article_body_trafilatura_primary_and_fallback()", "file_type": "code", "source_file": "tests/test_convert_article_to_markdown.py", "source_location": "L258", "_callable": true}, {"id": "$graphify-root$_tests_test_convert_article_to_markdown_test_resolve_article_body_newspaper4k_primary_and_fallback", "label": "test_resolve_article_body_newspaper4k_primary_and_fallback()", "file_type": "code", "source_file": "tests/test_convert_article_to_markdown.py", "source_location": "L275", "_callable": true}, {"id": "$graphify-root$_tests_test_convert_article_to_markdown_test_resolve_article_body_readability_primary_and_fallback", "label": "test_resolve_article_body_readability_primary_and_fallback()", "file_type": "code", "source_file": "tests/test_convert_article_to_markdown.py", "source_location": "L295", "_callable": true}, {"id": "$graphify-root$_tests_test_convert_article_to_markdown_test_resolve_article_body_strict_isolation_all_extractors", "label": "test_resolve_article_body_strict_isolation_all_extractors()", "file_type": "code", "source_file": "tests/test_convert_article_to_markdown.py", "source_location": "L317", "_callable": true}, {"id": "$graphify-root$_tests_test_convert_article_to_markdown_test_resolve_article_body_invalid_selected_extractor", "label": "test_resolve_article_body_invalid_selected_extractor()", "file_type": "code", "source_file": "tests/test_convert_article_to_markdown.py", "source_location": "L340", "_callable": true}, {"id": "$graphify-root$_tests_test_convert_article_to_markdown_test_metadata_priority_title_all_fallbacks", "label": "test_metadata_priority_title_all_fallbacks()", "file_type": "code", "source_file": "tests/test_convert_article_to_markdown.py", "source_location": "L354", "_callable": true}, {"id": "$graphify-root$_tests_test_convert_article_to_markdown_test_metadata_priority_original_url_all_fallbacks", "label": "test_metadata_priority_original_url_all_fallbacks()", "file_type": "code", "source_file": "tests/test_convert_article_to_markdown.py", "source_location": "L396", "_callable": true}, {"id": "$graphify-root$_tests_test_convert_article_to_markdown_test_metadata_priority_subtitle_omitted_when_equal_to_title", "label": "test_metadata_priority_subtitle_omitted_when_equal_to_title()", "file_type": "code", "source_file": "tests/test_convert_article_to_markdown.py", "source_location": "L436", "_callable": true}, {"id": "$graphify-root$_tests_test_convert_article_to_markdown_test_metadata_priority_first_valid_source_no_cross_merging", "label": "test_metadata_priority_first_valid_source_no_cross_merging()", "file_type": "code", "source_file": "tests/test_convert_article_to_markdown.py", "source_location": "L451", "_callable": true}, {"id": "$graphify-root$_tests_test_convert_article_to_markdown_test_remove_duplicate_initial_h1_exact_and_variations", "label": "test_remove_duplicate_initial_h1_exact_and_variations()", "file_type": "code", "source_file": "tests/test_convert_article_to_markdown.py", "source_location": "L469", "_callable": true}, {"id": "$graphify-root$_tests_test_convert_article_to_markdown_test_clean_body_images_removes_invalid_and_deduplicates", "label": "test_clean_body_images_removes_invalid_and_deduplicates()", "file_type": "code", "source_file": "tests/test_convert_article_to_markdown.py", "source_location": "L486", "_callable": true}, {"id": "$graphify-root$_tests_test_convert_article_to_markdown_test_assemble_markdown_document_full_and_minimal", "label": "test_assemble_markdown_document_full_and_minimal()", "file_type": "code", "source_file": "tests/test_convert_article_to_markdown.py", "source_location": "L508", "_callable": true}, {"id": "$graphify-root$_tests_test_convert_article_to_markdown_test_golden_fixtures_byte_level_precision", "label": "test_golden_fixtures_byte_level_precision()", "file_type": "code", "source_file": "tests/test_convert_article_to_markdown.py", "source_location": "L541", "_callable": true}, {"id": "$graphify-root$_tests_test_convert_article_to_markdown_test_conversion_determinism_sha256_repeatability", "label": "test_conversion_determinism_sha256_repeatability()", "file_type": "code", "source_file": "tests/test_convert_article_to_markdown.py", "source_location": "L558", "_callable": true}, {"id": "$graphify-root$_tests_test_convert_article_to_markdown_test_cli_exit_codes_and_error_handling", "label": "test_cli_exit_codes_and_error_handling()", "file_type": "code", "source_file": "tests/test_convert_article_to_markdown.py", "source_location": "L582", "_callable": true}, {"id": "$graphify-root$_tests_test_convert_article_to_markdown_test_cli_json_root_must_be_object", "label": "test_cli_json_root_must_be_object()", "file_type": "code", "source_file": "tests/test_convert_article_to_markdown.py", "source_location": "L616", "_callable": true}, {"id": "$graphify-root$_tests_test_convert_article_to_markdown_test_cli_no_stdout_pollution_and_atomic_preservation", "label": "test_cli_no_stdout_pollution_and_atomic_preservation()", "file_type": "code", "source_file": "tests/test_convert_article_to_markdown.py", "source_location": "L631", "_callable": true}, {"id": "$graphify-root$_tests_test_convert_article_to_markdown_test_cli_default_output_naming", "label": "test_cli_default_output_naming()", "file_type": "code", "source_file": "tests/test_convert_article_to_markdown.py", "source_location": "L675", "_callable": true}, {"id": "$graphify-root$_tests_test_convert_article_to_markdown_test_e2e_pipeline_with_real_extracted_selected_json", "label": "test_e2e_pipeline_with_real_extracted_selected_json()", "file_type": "code", "source_file": "tests/test_convert_article_to_markdown.py", "source_location": "L704", "_callable": true}, {"id": "$graphify-root$_tests_test_convert_article_to_markdown_test_convert_article_api_direct", "label": "test_convert_article_api_direct()", "file_type": "code", "source_file": "tests/test_convert_article_to_markdown.py", "source_location": "L735", "_callable": true}, {"id": "$graphify-root$_tests_test_convert_article_to_markdown_test_parse_arguments_api_direct", "label": "test_parse_arguments_api_direct()", "file_type": "code", "source_file": "tests/test_convert_article_to_markdown.py", "source_location": "L755", "_callable": true}, {"id": "$graphify-root$_tests_test_convert_article_to_markdown_rationale_1", "label": "Su\u00edte de Testes Automatizados para Convers\u00e3o de Artigo JSON para Markdown.\u2026", "file_type": "rationale", "source_file": "tests/test_convert_article_to_markdown.py", "source_location": "L1"}, {"id": "$graphify-root$_tests_test_convert_article_to_markdown_rationale_46", "label": "Valida decodifica\u00e7\u00e3o de entidades HTML nomeadas e num\u00e9ricas.", "file_type": "rationale", "source_file": "tests/test_convert_article_to_markdown.py", "source_location": "L46"}, {"id": "$graphify-root$_tests_test_convert_article_to_markdown_rationale_55", "label": "Valida colapso de tabs, quebras de linha e espa\u00e7os m\u00faltiplos em um \u00fanico espa\u00e7o.", "file_type": "rationale", "source_file": "tests/test_convert_article_to_markdown.py", "source_location": "L55"}, {"id": "$graphify-root$_tests_test_convert_article_to_markdown_rationale_86", "label": "Garante que todos os placeholders documentados no PRD sejam descartados\u2026", "file_type": "rationale", "source_file": "tests/test_convert_article_to_markdown.py", "source_location": "L86"}, {"id": "$graphify-root$_tests_test_convert_article_to_markdown_rationale_92", "label": "Valida que entradas n\u00e3o string retornem None de forma segura.", "file_type": "rationale", "source_file": "tests/test_convert_article_to_markdown.py", "source_location": "L92"}, {"id": "$graphify-root$_tests_test_convert_article_to_markdown_rationale_105", "label": "Testa divis\u00e3o por ponto e v\u00edrgula na string e v\u00edrgulas em elementos de lista\u2026", "file_type": "rationale", "source_file": "tests/test_convert_article_to_markdown.py", "source_location": "L105"}, {"id": "$graphify-root$_tests_test_convert_article_to_markdown_rationale_116", "label": "Garante que URLs em campos de autor sejam estritamente descartadas.", "file_type": "rationale", "source_file": "tests/test_convert_article_to_markdown.py", "source_location": "L116"}, {"id": "$graphify-root$_tests_test_convert_article_to_markdown_rationale_129", "label": "Testa deduplica\u00e7\u00e3o case-insensitive preservando a grafia e ordem da primeira\u2026", "file_type": "rationale", "source_file": "tests/test_convert_article_to_markdown.py", "source_location": "L129"}, {"id": "$graphify-root$_tests_test_convert_article_to_markdown_rationale_135", "label": "Testa comportamento com listas vazias, nulas ou contendo apenas placeholders.", "file_type": "rationale", "source_file": "tests/test_convert_article_to_markdown.py", "source_location": "L135"}, {"id": "$graphify-root$_tests_test_convert_article_to_markdown_rationale_147", "label": "Valida parsing de datas ISO 8601 em m\u00faltiplos formatos e fusos.", "file_type": "rationale", "source_file": "tests/test_convert_article_to_markdown.py", "source_location": "L147"}, {"id": "$graphify-root$_tests_test_convert_article_to_markdown_rationale_155", "label": "Valida parsing de datas no formato RFC 2822 (usado em feeds RSS e cabe\u00e7alhos\u2026", "file_type": "rationale", "source_file": "tests/test_convert_article_to_markdown.py", "source_location": "L155"}, {"id": "$graphify-root$_tests_test_convert_article_to_markdown_rationale_164", "label": "Garante que datas inv\u00e1lidas ou placeholders retornem None sem lan\u00e7ar exce\u00e7\u00e3o\u2026", "file_type": "rationale", "source_file": "tests/test_convert_article_to_markdown.py", "source_location": "L164"}, {"id": "$graphify-root$_tests_test_convert_article_to_markdown_rationale_187", "label": "Garante aceita\u00e7\u00e3o de URLs absolutas com esquema HTTP e HTTPS v\u00e1lidos.", "file_type": "rationale", "source_file": "tests/test_convert_article_to_markdown.py", "source_location": "L187"}, {"id": "$graphify-root$_tests_test_convert_article_to_markdown_rationale_207", "label": "Garante rejei\u00e7\u00e3o de esquemas n\u00e3o permitidos, URLs relativas e strings vazias.", "file_type": "rationale", "source_file": "tests/test_convert_article_to_markdown.py", "source_location": "L207"}, {"id": "$graphify-root$_tests_test_convert_article_to_markdown_rationale_217", "label": "Valida convers\u00e3o de elementos HTML estruturados para Markdown com t\u00edtulos ATX.", "file_type": "rationale", "source_file": "tests/test_convert_article_to_markdown.py", "source_location": "L217"}, {"id": "$graphify-root$_tests_test_convert_article_to_markdown_rationale_247", "label": "Testa convers\u00e3o de HTML vazio retornando string vazia.", "file_type": "rationale", "source_file": "tests/test_convert_article_to_markdown.py", "source_location": "L247"}, {"id": "$graphify-root$_tests_test_convert_article_to_markdown_rationale_259", "label": "Testa prioridade trafilatura.markdown sobre trafilatura.text.", "file_type": "rationale", "source_file": "tests/test_convert_article_to_markdown.py", "source_location": "L259"}, {"id": "$graphify-root$_tests_test_convert_article_to_markdown_rationale_276", "label": "Testa prioridade newspaper4k.article_html sobre newspaper4k.text.", "file_type": "rationale", "source_file": "tests/test_convert_article_to_markdown.py", "source_location": "L276"}, {"id": "$graphify-root$_tests_test_convert_article_to_markdown_rationale_296", "label": "Testa prioridade readability.cleaned_html sobre readability.cleaned_text.", "file_type": "rationale", "source_file": "tests/test_convert_article_to_markdown.py", "source_location": "L296"}, {"id": "$graphify-root$_tests_test_convert_article_to_markdown_rationale_318", "label": "Garante que a aus\u00eancia de corpo no extrator selecionado NUNCA fa\u00e7a fallback\u2026", "file_type": "rationale", "source_file": "tests/test_convert_article_to_markdown.py", "source_location": "L318"}, {"id": "$graphify-root$_tests_test_convert_article_to_markdown_rationale_341", "label": "Garante erro ao receber selected_extractor ausente ou n\u00e3o reconhecido.", "file_type": "rationale", "source_file": "tests/test_convert_article_to_markdown.py", "source_location": "L341"}, {"id": "$graphify-root$_tests_test_convert_article_to_markdown_rationale_355", "label": "Valida a cadeia de fallback completa para o campo T\u00cdTULO (6 n\u00edveis).", "file_type": "rationale", "source_file": "tests/test_convert_article_to_markdown.py", "source_location": "L355"}, {"id": "$graphify-root$_tests_test_convert_article_to_markdown_rationale_397", "label": "Valida a cadeia de fallback completa para a URL ORIGINAL (5 n\u00edveis).", "file_type": "rationale", "source_file": "tests/test_convert_article_to_markdown.py", "source_location": "L397"}, {"id": "$graphify-root$_tests_test_convert_article_to_markdown_rationale_437", "label": "Garante que subt\u00edtulo id\u00eantico ao t\u00edtulo seja automaticamente omitido (None).", "file_type": "rationale", "source_file": "tests/test_convert_article_to_markdown.py", "source_location": "L437"}, {"id": "$graphify-root$_tests_test_convert_article_to_markdown_rationale_452", "label": "Garante que listas de autores/tags usem apenas a primeira fonte v\u00e1lida, sem\u2026", "file_type": "rationale", "source_file": "tests/test_convert_article_to_markdown.py", "source_location": "L452"}, {"id": "$graphify-root$_tests_test_convert_article_to_markdown_rationale_470", "label": "Testa remo\u00e7\u00e3o de H1 inicial coincidente com t\u00edtulo com varia\u00e7\u00f5es de espa\u00e7os e\u2026", "file_type": "rationale", "source_file": "tests/test_convert_article_to_markdown.py", "source_location": "L470"}, {"id": "$graphify-root$_tests_test_convert_article_to_markdown_rationale_487", "label": "Valida descarte de data:, relativos e deduplica\u00e7\u00e3o mantendo a primeira\u2026", "file_type": "rationale", "source_file": "tests/test_convert_article_to_markdown.py", "source_location": "L487"}, {"id": "$graphify-root$_tests_test_convert_article_to_markdown_rationale_509", "label": "Testa montagem com todos os campos e apenas com campos obrigat\u00f3rios.", "file_type": "rationale", "source_file": "tests/test_convert_article_to_markdown.py", "source_location": "L509"}, {"id": "$graphify-root$_tests_test_convert_article_to_markdown_rationale_542", "label": "Garante correspond\u00eancia exata byte a byte para Trafilatura, Newspaper4k e\u2026", "file_type": "rationale", "source_file": "tests/test_convert_article_to_markdown.py", "source_location": "L542"}, {"id": "$graphify-root$_tests_test_convert_article_to_markdown_rationale_559", "label": "Garante que m\u00faltiplas execu\u00e7\u00f5es no mesmo arquivo produzam hashes SHA-256\u2026", "file_type": "rationale", "source_file": "tests/test_convert_article_to_markdown.py", "source_location": "L559"}, {"id": "$graphify-root$_tests_test_convert_article_to_markdown_rationale_583", "label": "Testa toda a matriz de c\u00f3digos de sa\u00edda da CLI (0, 1, 2).", "file_type": "rationale", "source_file": "tests/test_convert_article_to_markdown.py", "source_location": "L583"}, {"id": "$graphify-root$_tests_test_convert_article_to_markdown_rationale_617", "label": "Garante encerramento com c\u00f3digo 1 caso a raiz do JSON seja lista, n\u00famero ou\u2026", "file_type": "rationale", "source_file": "tests/test_convert_article_to_markdown.py", "source_location": "L617"}, {"id": "$graphify-root$_tests_test_convert_article_to_markdown_rationale_632", "label": "Garante que stdout permane\u00e7a limpo e grava\u00e7\u00e3o at\u00f4mica preserve arquivos\u2026", "file_type": "rationale", "source_file": "tests/test_convert_article_to_markdown.py", "source_location": "L632"}, {"id": "$graphify-root$_tests_test_convert_article_to_markdown_rationale_676", "label": "Garante gera\u00e7\u00e3o autom\u00e1tica de <input_stem>.md quando -o n\u00e3o \u00e9 informado.", "file_type": "rationale", "source_file": "tests/test_convert_article_to_markdown.py", "source_location": "L676"}, {"id": "$graphify-root$_tests_test_convert_article_to_markdown_rationale_705", "label": "Valida a convers\u00e3o E2E de um artigo real extra\u00eddo do arquivo\u2026", "file_type": "rationale", "source_file": "tests/test_convert_article_to_markdown.py", "source_location": "L705"}, {"id": "$graphify-root$_tests_test_convert_article_to_markdown_rationale_736", "label": "Testa a chamada direta da fun\u00e7\u00e3o convert_article em c\u00f3digo Python.", "file_type": "rationale", "source_file": "tests/test_convert_article_to_markdown.py", "source_location": "L736"}, {"id": "$graphify-root$_tests_test_convert_article_to_markdown_rationale_756", "label": "Testa a chamada direta do parse_arguments.", "file_type": "rationale", "source_file": "tests/test_convert_article_to_markdown.py", "source_location": "L756"}], "edges": [{"source": "$graphify-root$_tests_test_convert_article_to_markdown_py", "target": "hashlib", "relation": "imports", "context": "import", "confidence": "EXTRACTED", "source_file": "tests/test_convert_article_to_markdown.py", "source_location": "L12", "weight": 1.0}, {"source": "$graphify-root$_tests_test_convert_article_to_markdown_py", "target": "json", "relation": "imports", "context": "import", "confidence": "EXTRACTED", "source_file": "tests/test_convert_article_to_markdown.py", "source_location": "L13", "weight": 1.0}, {"source": "$graphify-root$_tests_test_convert_article_to_markdown_py", "target": "subprocess", "relation": "imports", "context": "import", "confidence": "EXTRACTED", "source_file": "tests/test_convert_article_to_markdown.py", "source_location": "L14", "weight": 1.0}, {"source": "$graphify-root$_tests_test_convert_article_to_markdown_py", "target": "sys", "relation": "imports", "context": "import", "confidence": "EXTRACTED", "source_file": "tests/test_convert_article_to_markdown.py", "source_location": "L15", "weight": 1.0}, {"source": "$graphify-root$_tests_test_convert_article_to_markdown_py", "target": "pathlib", "relation": "imports_from", "context": "import", "confidence": "EXTRACTED", "source_file": "tests/test_convert_article_to_markdown.py", "source_location": "L16", "weight": 1.0}, {"source": "$graphify-root$_tests_test_convert_article_to_markdown_py", "target": "typing", "relation": "imports_from", "context": "import", "confidence": "EXTRACTED", "source_file": "tests/test_convert_article_to_markdown.py", "source_location": "L17", "weight": 1.0}, {"source": "$graphify-root$_tests_test_convert_article_to_markdown_py", "target": "pytest", "relation": "imports", "context": "import", "confidence": "EXTRACTED", "source_file": "tests/test_convert_article_to_markdown.py", "source_location": "L19", "weight": 1.0}, {"source": "$graphify-root$_tests_test_convert_article_to_markdown_py", "target": "scripts_convert_article_to_markdown", "relation": "imports_from", "context": "import", "confidence": "EXTRACTED", "source_file": "tests/test_convert_article_to_markdown.py", "source_location": "L21", "weight": 1.0}, {"source": "$graphify-root$_tests_test_convert_article_to_markdown_py", "target": "$graphify-root$_tests_test_convert_article_to_markdown_test_normalize_scalar_complex_html_entities", "relation": "contains", "confidence": "EXTRACTED", "source_file": "tests/test_convert_article_to_markdown.py", "source_location": "L45", "weight": 1.0}, {"source": "$graphify-root$_tests_test_convert_article_to_markdown_py", "target": "$graphify-root$_tests_test_convert_article_to_markdown_test_normalize_scalar_whitespace_collapsing", "relation": "contains", "confidence": "EXTRACTED", "source_file": "tests/test_convert_article_to_markdown.py", "source_location": "L54", "weight": 1.0}, {"source": "$graphify-root$_tests_test_convert_article_to_markdown_test_normalize_scalar_placeholders_discarded", "target": "parametrize", "relation": "references", "confidence": "EXTRACTED", "source_file": "tests/test_convert_article_to_markdown.py", "source_location": "L62", "weight": 1.0, "context": "decorator"}, {"source": "$graphify-root$_tests_test_convert_article_to_markdown_py", "target": "$graphify-root$_tests_test_convert_article_to_markdown_test_normalize_scalar_placeholders_discarded", "relation": "contains", "confidence": "EXTRACTED", "source_file": "tests/test_convert_article_to_markdown.py", "source_location": "L85", "weight": 1.0}, {"source": "$graphify-root$_tests_test_convert_article_to_markdown_py", "target": "$graphify-root$_tests_test_convert_article_to_markdown_test_normalize_scalar_non_string_types", "relation": "contains", "confidence": "EXTRACTED", "source_file": "tests/test_convert_article_to_markdown.py", "source_location": "L91", "weight": 1.0}, {"source": "$graphify-root$_tests_test_convert_article_to_markdown_py", "target": "$graphify-root$_tests_test_convert_article_to_markdown_test_normalize_list_semicolon_and_comma_split", "relation": "contains", "confidence": "EXTRACTED", "source_file": "tests/test_convert_article_to_markdown.py", "source_location": "L104", "weight": 1.0}, {"source": "$graphify-root$_tests_test_convert_article_to_markdown_py", "target": "$graphify-root$_tests_test_convert_article_to_markdown_test_normalize_list_author_url_filtering", "relation": "contains", "confidence": "EXTRACTED", "source_file": "tests/test_convert_article_to_markdown.py", "source_location": "L115", "weight": 1.0}, {"source": "$graphify-root$_tests_test_convert_article_to_markdown_py", "target": "$graphify-root$_tests_test_convert_article_to_markdown_test_normalize_list_deduplication_preserves_case_and_order", "relation": "contains", "confidence": "EXTRACTED", "source_file": "tests/test_convert_article_to_markdown.py", "source_location": "L128", "weight": 1.0}, {"source": "$graphify-root$_tests_test_convert_article_to_markdown_py", "target": "$graphify-root$_tests_test_convert_article_to_markdown_test_normalize_list_empty_and_invalid", "relation": "contains", "confidence": "EXTRACTED", "source_file": "tests/test_convert_article_to_markdown.py", "source_location": "L134", "weight": 1.0}, {"source": "$graphify-root$_tests_test_convert_article_to_markdown_py", "target": "$graphify-root$_tests_test_convert_article_to_markdown_test_normalize_date_iso_8601_variants", "relation": "contains", "confidence": "EXTRACTED", "source_file": "tests/test_convert_article_to_markdown.py", "source_location": "L146", "weight": 1.0}, {"source": "$graphify-root$_tests_test_convert_article_to_markdown_py", "target": "$graphify-root$_tests_test_convert_article_to_markdown_test_normalize_date_rfc_2822_variants", "relation": "contains", "confidence": "EXTRACTED", "source_file": "tests/test_convert_article_to_markdown.py", "source_location": "L154", "weight": 1.0}, {"source": "$graphify-root$_tests_test_convert_article_to_markdown_py", "target": "$graphify-root$_tests_test_convert_article_to_markdown_test_normalize_date_invalid_and_placeholders", "relation": "contains", "confidence": "EXTRACTED", "source_file": "tests/test_convert_article_to_markdown.py", "source_location": "L163", "weight": 1.0}, {"source": "$graphify-root$_tests_test_convert_article_to_markdown_test_validate_url_valid_schemes", "target": "parametrize", "relation": "references", "confidence": "EXTRACTED", "source_file": "tests/test_convert_article_to_markdown.py", "source_location": "L177", "weight": 1.0, "context": "decorator"}, {"source": "$graphify-root$_tests_test_convert_article_to_markdown_py", "target": "$graphify-root$_tests_test_convert_article_to_markdown_test_validate_url_valid_schemes", "relation": "contains", "confidence": "EXTRACTED", "source_file": "tests/test_convert_article_to_markdown.py", "source_location": "L186", "weight": 1.0}, {"source": "$graphify-root$_tests_test_convert_article_to_markdown_test_validate_url_invalid_schemes", "target": "parametrize", "relation": "references", "confidence": "EXTRACTED", "source_file": "tests/test_convert_article_to_markdown.py", "source_location": "L191", "weight": 1.0, "context": "decorator"}, {"source": "$graphify-root$_tests_test_convert_article_to_markdown_py", "target": "$graphify-root$_tests_test_convert_article_to_markdown_test_validate_url_invalid_schemes", "relation": "contains", "confidence": "EXTRACTED", "source_file": "tests/test_convert_article_to_markdown.py", "source_location": "L206", "weight": 1.0}, {"source": "$graphify-root$_tests_test_convert_article_to_markdown_py", "target": "$graphify-root$_tests_test_convert_article_to_markdown_test_convert_html_to_markdown_rich_formatting", "relation": "contains", "confidence": "EXTRACTED", "source_file": "tests/test_convert_article_to_markdown.py", "source_location": "L216", "weight": 1.0}, {"source": "$graphify-root$_tests_test_convert_article_to_markdown_py", "target": "$graphify-root$_tests_test_convert_article_to_markdown_test_convert_html_to_markdown_empty_or_whitespace", "relation": "contains", "confidence": "EXTRACTED", "source_file": "tests/test_convert_article_to_markdown.py", "source_location": "L246", "weight": 1.0}, {"source": "$graphify-root$_tests_test_convert_article_to_markdown_py", "target": "$graphify-root$_tests_test_convert_article_to_markdown_test_resolve_article_body_trafilatura_primary_and_fallback", "relation": "contains", "confidence": "EXTRACTED", "source_file": "tests/test_convert_article_to_markdown.py", "source_location": "L258", "weight": 1.0}, {"source": "$graphify-root$_tests_test_convert_article_to_markdown_py", "target": "$graphify-root$_tests_test_convert_article_to_markdown_test_resolve_article_body_newspaper4k_primary_and_fallback", "relation": "contains", "confidence": "EXTRACTED", "source_file": "tests/test_convert_article_to_markdown.py", "source_location": "L275", "weight": 1.0}, {"source": "$graphify-root$_tests_test_convert_article_to_markdown_py", "target": "$graphify-root$_tests_test_convert_article_to_markdown_test_resolve_article_body_readability_primary_and_fallback", "relation": "contains", "confidence": "EXTRACTED", "source_file": "tests/test_convert_article_to_markdown.py", "source_location": "L295", "weight": 1.0}, {"source": "$graphify-root$_tests_test_convert_article_to_markdown_test_resolve_article_body_strict_isolation_all_extractors", "target": "parametrize", "relation": "references", "confidence": "EXTRACTED", "source_file": "tests/test_convert_article_to_markdown.py", "source_location": "L316", "weight": 1.0, "context": "decorator"}, {"source": "$graphify-root$_tests_test_convert_article_to_markdown_py", "target": "$graphify-root$_tests_test_convert_article_to_markdown_test_resolve_article_body_strict_isolation_all_extractors", "relation": "contains", "confidence": "EXTRACTED", "source_file": "tests/test_convert_article_to_markdown.py", "source_location": "L317", "weight": 1.0}, {"source": "$graphify-root$_tests_test_convert_article_to_markdown_py", "target": "$graphify-root$_tests_test_convert_article_to_markdown_test_resolve_article_body_invalid_selected_extractor", "relation": "contains", "confidence": "EXTRACTED", "source_file": "tests/test_convert_article_to_markdown.py", "source_location": "L340", "weight": 1.0}, {"source": "$graphify-root$_tests_test_convert_article_to_markdown_py", "target": "$graphify-root$_tests_test_convert_article_to_markdown_test_metadata_priority_title_all_fallbacks", "relation": "contains", "confidence": "EXTRACTED", "source_file": "tests/test_convert_article_to_markdown.py", "source_location": "L354", "weight": 1.0}, {"source": "$graphify-root$_tests_test_convert_article_to_markdown_py", "target": "$graphify-root$_tests_test_convert_article_to_markdown_test_metadata_priority_original_url_all_fallbacks", "relation": "contains", "confidence": "EXTRACTED", "source_file": "tests/test_convert_article_to_markdown.py", "source_location": "L396", "weight": 1.0}, {"source": "$graphify-root$_tests_test_convert_article_to_markdown_py", "target": "$graphify-root$_tests_test_convert_article_to_markdown_test_metadata_priority_subtitle_omitted_when_equal_to_title", "relation": "contains", "confidence": "EXTRACTED", "source_file": "tests/test_convert_article_to_markdown.py", "source_location": "L436", "weight": 1.0}, {"source": "$graphify-root$_tests_test_convert_article_to_markdown_py", "target": "$graphify-root$_tests_test_convert_article_to_markdown_test_metadata_priority_first_valid_source_no_cross_merging", "relation": "contains", "confidence": "EXTRACTED", "source_file": "tests/test_convert_article_to_markdown.py", "source_location": "L451", "weight": 1.0}, {"source": "$graphify-root$_tests_test_convert_article_to_markdown_py", "target": "$graphify-root$_tests_test_convert_article_to_markdown_test_remove_duplicate_initial_h1_exact_and_variations", "relation": "contains", "confidence": "EXTRACTED", "source_file": "tests/test_convert_article_to_markdown.py", "source_location": "L469", "weight": 1.0}, {"source": "$graphify-root$_tests_test_convert_article_to_markdown_py", "target": "$graphify-root$_tests_test_convert_article_to_markdown_test_clean_body_images_removes_invalid_and_deduplicates", "relation": "contains", "confidence": "EXTRACTED", "source_file": "tests/test_convert_article_to_markdown.py", "source_location": "L486", "weight": 1.0}, {"source": "$graphify-root$_tests_test_convert_article_to_markdown_py", "target": "$graphify-root$_tests_test_convert_article_to_markdown_test_assemble_markdown_document_full_and_minimal", "relation": "contains", "confidence": "EXTRACTED", "source_file": "tests/test_convert_article_to_markdown.py", "source_location": "L508", "weight": 1.0}, {"source": "$graphify-root$_tests_test_convert_article_to_markdown_py", "target": "$graphify-root$_tests_test_convert_article_to_markdown_test_golden_fixtures_byte_level_precision", "relation": "contains", "confidence": "EXTRACTED", "source_file": "tests/test_convert_article_to_markdown.py", "source_location": "L541", "weight": 1.0}, {"source": "$graphify-root$_tests_test_convert_article_to_markdown_py", "target": "$graphify-root$_tests_test_convert_article_to_markdown_test_conversion_determinism_sha256_repeatability", "relation": "contains", "confidence": "EXTRACTED", "source_file": "tests/test_convert_article_to_markdown.py", "source_location": "L558", "weight": 1.0}, {"source": "$graphify-root$_tests_test_convert_article_to_markdown_py", "target": "$graphify-root$_tests_test_convert_article_to_markdown_test_cli_exit_codes_and_error_handling", "relation": "contains", "confidence": "EXTRACTED", "source_file": "tests/test_convert_article_to_markdown.py", "source_location": "L582", "weight": 1.0}, {"source": "$graphify-root$_tests_test_convert_article_to_markdown_py", "target": "$graphify-root$_tests_test_convert_article_to_markdown_test_cli_json_root_must_be_object", "relation": "contains", "confidence": "EXTRACTED", "source_file": "tests/test_convert_article_to_markdown.py", "source_location": "L616", "weight": 1.0}, {"source": "$graphify-root$_tests_test_convert_article_to_markdown_py", "target": "$graphify-root$_tests_test_convert_article_to_markdown_test_cli_no_stdout_pollution_and_atomic_preservation", "relation": "contains", "confidence": "EXTRACTED", "source_file": "tests/test_convert_article_to_markdown.py", "source_location": "L631", "weight": 1.0}, {"source": "$graphify-root$_tests_test_convert_article_to_markdown_py", "target": "$graphify-root$_tests_test_convert_article_to_markdown_test_cli_default_output_naming", "relation": "contains", "confidence": "EXTRACTED", "source_file": "tests/test_convert_article_to_markdown.py", "source_location": "L675", "weight": 1.0}, {"source": "$graphify-root$_tests_test_convert_article_to_markdown_py", "target": "$graphify-root$_tests_test_convert_article_to_markdown_test_e2e_pipeline_with_real_extracted_selected_json", "relation": "contains", "confidence": "EXTRACTED", "source_file": "tests/test_convert_article_to_markdown.py", "source_location": "L704", "weight": 1.0}, {"source": "$graphify-root$_tests_test_convert_article_to_markdown_py", "target": "$graphify-root$_tests_test_convert_article_to_markdown_test_convert_article_api_direct", "relation": "contains", "confidence": "EXTRACTED", "source_file": "tests/test_convert_article_to_markdown.py", "source_location": "L735", "weight": 1.0}, {"source": "$graphify-root$_tests_test_convert_article_to_markdown_py", "target": "$graphify-root$_tests_test_convert_article_to_markdown_test_parse_arguments_api_direct", "relation": "contains", "confidence": "EXTRACTED", "source_file": "tests/test_convert_article_to_markdown.py", "source_location": "L755", "weight": 1.0}, {"source": "$graphify-root$_tests_test_convert_article_to_markdown_rationale_1", "target": "$graphify-root$_tests_test_convert_article_to_markdown_py", "relation": "rationale_for", "confidence": "EXTRACTED", "source_file": "tests/test_convert_article_to_markdown.py", "source_location": "L1", "weight": 1.0}, {"source": "$graphify-root$_tests_test_convert_article_to_markdown_rationale_46", "target": "$graphify-root$_tests_test_convert_article_to_markdown_test_normalize_scalar_complex_html_entities", "relation": "rationale_for", "confidence": "EXTRACTED", "source_file": "tests/test_convert_article_to_markdown.py", "source_location": "L46", "weight": 1.0}, {"source": "$graphify-root$_tests_test_convert_article_to_markdown_rationale_55", "target": "$graphify-root$_tests_test_convert_article_to_markdown_test_normalize_scalar_whitespace_collapsing", "relation": "rationale_for", "confidence": "EXTRACTED", "source_file": "tests/test_convert_article_to_markdown.py", "source_location": "L55", "weight": 1.0}, {"source": "$graphify-root$_tests_test_convert_article_to_markdown_rationale_86", "target": "$graphify-root$_tests_test_convert_article_to_markdown_test_normalize_scalar_placeholders_discarded", "relation": "rationale_for", "confidence": "EXTRACTED", "source_file": "tests/test_convert_article_to_markdown.py", "source_location": "L86", "weight": 1.0}, {"source": "$graphify-root$_tests_test_convert_article_to_markdown_rationale_92", "target": "$graphify-root$_tests_test_convert_article_to_markdown_test_normalize_scalar_non_string_types", "relation": "rationale_for", "confidence": "EXTRACTED", "source_file": "tests/test_convert_article_to_markdown.py", "source_location": "L92", "weight": 1.0}, {"source": "$graphify-root$_tests_test_convert_article_to_markdown_rationale_105", "target": "$graphify-root$_tests_test_convert_article_to_markdown_test_normalize_list_semicolon_and_comma_split", "relation": "rationale_for", "confidence": "EXTRACTED", "source_file": "tests/test_convert_article_to_markdown.py", "source_location": "L105", "weight": 1.0}, {"source": "$graphify-root$_tests_test_convert_article_to_markdown_rationale_116", "target": "$graphify-root$_tests_test_convert_article_to_markdown_test_normalize_list_author_url_filtering", "relation": "rationale_for", "confidence": "EXTRACTED", "source_file": "tests/test_convert_article_to_markdown.py", "source_location": "L116", "weight": 1.0}, {"source": "$graphify-root$_tests_test_convert_article_to_markdown_rationale_129", "target": "$graphify-root$_tests_test_convert_article_to_markdown_test_normalize_list_deduplication_preserves_case_and_order", "relation": "rationale_for", "confidence": "EXTRACTED", "source_file": "tests/test_convert_article_to_markdown.py", "source_location": "L129", "weight": 1.0}, {"source": "$graphify-root$_tests_test_convert_article_to_markdown_rationale_135", "target": "$graphify-root$_tests_test_convert_article_to_markdown_test_normalize_list_empty_and_invalid", "relation": "rationale_for", "confidence": "EXTRACTED", "source_file": "tests/test_convert_article_to_markdown.py", "source_location": "L135", "weight": 1.0}, {"source": "$graphify-root$_tests_test_convert_article_to_markdown_rationale_147", "target": "$graphify-root$_tests_test_convert_article_to_markdown_test_normalize_date_iso_8601_variants", "relation": "rationale_for", "confidence": "EXTRACTED", "source_file": "tests/test_convert_article_to_markdown.py", "source_location": "L147", "weight": 1.0}, {"source": "$graphify-root$_tests_test_convert_article_to_markdown_rationale_155", "target": "$graphify-root$_tests_test_convert_article_to_markdown_test_normalize_date_rfc_2822_variants", "relation": "rationale_for", "confidence": "EXTRACTED", "source_file": "tests/test_convert_article_to_markdown.py", "source_location": "L155", "weight": 1.0}, {"source": "$graphify-root$_tests_test_convert_article_to_markdown_rationale_164", "target": "$graphify-root$_tests_test_convert_article_to_markdown_test_normalize_date_invalid_and_placeholders", "relation": "rationale_for", "confidence": "EXTRACTED", "source_file": "tests/test_convert_article_to_markdown.py", "source_location": "L164", "weight": 1.0}, {"source": "$graphify-root$_tests_test_convert_article_to_markdown_rationale_187", "target": "$graphify-root$_tests_test_convert_article_to_markdown_test_validate_url_valid_schemes", "relation": "rationale_for", "confidence": "EXTRACTED", "source_file": "tests/test_convert_article_to_markdown.py", "source_location": "L187", "weight": 1.0}, {"source": "$graphify-root$_tests_test_convert_article_to_markdown_rationale_207", "target": "$graphify-root$_tests_test_convert_article_to_markdown_test_validate_url_invalid_schemes", "relation": "rationale_for", "confidence": "EXTRACTED", "source_file": "tests/test_convert_article_to_markdown.py", "source_location": "L207", "weight": 1.0}, {"source": "$graphify-root$_tests_test_convert_article_to_markdown_rationale_217", "target": "$graphify-root$_tests_test_convert_article_to_markdown_test_convert_html_to_markdown_rich_formatting", "relation": "rationale_for", "confidence": "EXTRACTED", "source_file": "tests/test_convert_article_to_markdown.py", "source_location": "L217", "weight": 1.0}, {"source": "$graphify-root$_tests_test_convert_article_to_markdown_rationale_247", "target": "$graphify-root$_tests_test_convert_article_to_markdown_test_convert_html_to_markdown_empty_or_whitespace", "relation": "rationale_for", "confidence": "EXTRACTED", "source_file": "tests/test_convert_article_to_markdown.py", "source_location": "L247", "weight": 1.0}, {"source": "$graphify-root$_tests_test_convert_article_to_markdown_rationale_259", "target": "$graphify-root$_tests_test_convert_article_to_markdown_test_resolve_article_body_trafilatura_primary_and_fallback", "relation": "rationale_for", "confidence": "EXTRACTED", "source_file": "tests/test_convert_article_to_markdown.py", "source_location": "L259", "weight": 1.0}, {"source": "$graphify-root$_tests_test_convert_article_to_markdown_rationale_276", "target": "$graphify-root$_tests_test_convert_article_to_markdown_test_resolve_article_body_newspaper4k_primary_and_fallback", "relation": "rationale_for", "confidence": "EXTRACTED", "source_file": "tests/test_convert_article_to_markdown.py", "source_location": "L276", "weight": 1.0}, {"source": "$graphify-root$_tests_test_convert_article_to_markdown_rationale_296", "target": "$graphify-root$_tests_test_convert_article_to_markdown_test_resolve_article_body_readability_primary_and_fallback", "relation": "rationale_for", "confidence": "EXTRACTED", "source_file": "tests/test_convert_article_to_markdown.py", "source_location": "L296", "weight": 1.0}, {"source": "$graphify-root$_tests_test_convert_article_to_markdown_rationale_318", "target": "$graphify-root$_tests_test_convert_article_to_markdown_test_resolve_article_body_strict_isolation_all_extractors", "relation": "rationale_for", "confidence": "EXTRACTED", "source_file": "tests/test_convert_article_to_markdown.py", "source_location": "L318", "weight": 1.0}, {"source": "$graphify-root$_tests_test_convert_article_to_markdown_rationale_341", "target": "$graphify-root$_tests_test_convert_article_to_markdown_test_resolve_article_body_invalid_selected_extractor", "relation": "rationale_for", "confidence": "EXTRACTED", "source_file": "tests/test_convert_article_to_markdown.py", "source_location": "L341", "weight": 1.0}, {"source": "$graphify-root$_tests_test_convert_article_to_markdown_rationale_355", "target": "$graphify-root$_tests_test_convert_article_to_markdown_test_metadata_priority_title_all_fallbacks", "relation": "rationale_for", "confidence": "EXTRACTED", "source_file": "tests/test_convert_article_to_markdown.py", "source_location": "L355", "weight": 1.0}, {"source": "$graphify-root$_tests_test_convert_article_to_markdown_rationale_397", "target": "$graphify-root$_tests_test_convert_article_to_markdown_test_metadata_priority_original_url_all_fallbacks", "relation": "rationale_for", "confidence": "EXTRACTED", "source_file": "tests/test_convert_article_to_markdown.py", "source_location": "L397", "weight": 1.0}, {"source": "$graphify-root$_tests_test_convert_article_to_markdown_rationale_437", "target": "$graphify-root$_tests_test_convert_article_to_markdown_test_metadata_priority_subtitle_omitted_when_equal_to_title", "relation": "rationale_for", "confidence": "EXTRACTED", "source_file": "tests/test_convert_article_to_markdown.py", "source_location": "L437", "weight": 1.0}, {"source": "$graphify-root$_tests_test_convert_article_to_markdown_rationale_452", "target": "$graphify-root$_tests_test_convert_article_to_markdown_test_metadata_priority_first_valid_source_no_cross_merging", "relation": "rationale_for", "confidence": "EXTRACTED", "source_file": "tests/test_convert_article_to_markdown.py", "source_location": "L452", "weight": 1.0}, {"source": "$graphify-root$_tests_test_convert_article_to_markdown_rationale_470", "target": "$graphify-root$_tests_test_convert_article_to_markdown_test_remove_duplicate_initial_h1_exact_and_variations", "relation": "rationale_for", "confidence": "EXTRACTED", "source_file": "tests/test_convert_article_to_markdown.py", "source_location": "L470", "weight": 1.0}, {"source": "$graphify-root$_tests_test_convert_article_to_markdown_rationale_487", "target": "$graphify-root$_tests_test_convert_article_to_markdown_test_clean_body_images_removes_invalid_and_deduplicates", "relation": "rationale_for", "confidence": "EXTRACTED", "source_file": "tests/test_convert_article_to_markdown.py", "source_location": "L487", "weight": 1.0}, {"source": "$graphify-root$_tests_test_convert_article_to_markdown_rationale_509", "target": "$graphify-root$_tests_test_convert_article_to_markdown_test_assemble_markdown_document_full_and_minimal", "relation": "rationale_for", "confidence": "EXTRACTED", "source_file": "tests/test_convert_article_to_markdown.py", "source_location": "L509", "weight": 1.0}, {"source": "$graphify-root$_tests_test_convert_article_to_markdown_rationale_542", "target": "$graphify-root$_tests_test_convert_article_to_markdown_test_golden_fixtures_byte_level_precision", "relation": "rationale_for", "confidence": "EXTRACTED", "source_file": "tests/test_convert_article_to_markdown.py", "source_location": "L542", "weight": 1.0}, {"source": "$graphify-root$_tests_test_convert_article_to_markdown_rationale_559", "target": "$graphify-root$_tests_test_convert_article_to_markdown_test_conversion_determinism_sha256_repeatability", "relation": "rationale_for", "confidence": "EXTRACTED", "source_file": "tests/test_convert_article_to_markdown.py", "source_location": "L559", "weight": 1.0}, {"source": "$graphify-root$_tests_test_convert_article_to_markdown_rationale_583", "target": "$graphify-root$_tests_test_convert_article_to_markdown_test_cli_exit_codes_and_error_handling", "relation": "rationale_for", "confidence": "EXTRACTED", "source_file": "tests/test_convert_article_to_markdown.py", "source_location": "L583", "weight": 1.0}, {"source": "$graphify-root$_tests_test_convert_article_to_markdown_rationale_617", "target": "$graphify-root$_tests_test_convert_article_to_markdown_test_cli_json_root_must_be_object", "relation": "rationale_for", "confidence": "EXTRACTED", "source_file": "tests/test_convert_article_to_markdown.py", "source_location": "L617", "weight": 1.0}, {"source": "$graphify-root$_tests_test_convert_article_to_markdown_rationale_632", "target": "$graphify-root$_tests_test_convert_article_to_markdown_test_cli_no_stdout_pollution_and_atomic_preservation", "relation": "rationale_for", "confidence": "EXTRACTED", "source_file": "tests/test_convert_article_to_markdown.py", "source_location": "L632", "weight": 1.0}, {"source": "$graphify-root$_tests_test_convert_article_to_markdown_rationale_676", "target": "$graphify-root$_tests_test_convert_article_to_markdown_test_cli_default_output_naming", "relation": "rationale_for", "confidence": "EXTRACTED", "source_file": "tests/test_convert_article_to_markdown.py", "source_location": "L676", "weight": 1.0}, {"source": "$graphify-root$_tests_test_convert_article_to_markdown_rationale_705", "target": "$graphify-root$_tests_test_convert_article_to_markdown_test_e2e_pipeline_with_real_extracted_selected_json", "relation": "rationale_for", "confidence": "EXTRACTED", "source_file": "tests/test_convert_article_to_markdown.py", "source_location": "L705", "weight": 1.0}, {"source": "$graphify-root$_tests_test_convert_article_to_markdown_rationale_736", "target": "$graphify-root$_tests_test_convert_article_to_markdown_test_convert_article_api_direct", "relation": "rationale_for", "confidence": "EXTRACTED", "source_file": "tests/test_convert_article_to_markdown.py", "source_location": "L736", "weight": 1.0}, {"source": "$graphify-root$_tests_test_convert_article_to_markdown_rationale_756", "target": "$graphify-root$_tests_test_convert_article_to_markdown_test_parse_arguments_api_direct", "relation": "rationale_for", "confidence": "EXTRACTED", "source_file": "tests/test_convert_article_to_markdown.py", "source_location": "L756", "weight": 1.0}], "raw_calls": [{"caller_nid": "$graphify-root$_tests_test_convert_article_to_markdown_test_normalize_scalar_complex_html_entities", "callee": "normalize_scalar", "is_member_call": false, "source_file": "tests/test_convert_article_to_markdown.py", "source_location": "L48", "receiver": null}, {"caller_nid": "$graphify-root$_tests_test_convert_article_to_markdown_test_normalize_scalar_complex_html_entities", "callee": "normalize_scalar", "is_member_call": false, "source_file": "tests/test_convert_article_to_markdown.py", "source_location": "L51", "receiver": null}, {"caller_nid": "$graphify-root$_tests_test_convert_article_to_markdown_test_normalize_scalar_whitespace_collapsing", "callee": "normalize_scalar", "is_member_call": false, "source_file": "tests/test_convert_article_to_markdown.py", "source_location": "L57", "receiver": null}, {"caller_nid": "$graphify-root$_tests_test_convert_article_to_markdown_test_normalize_scalar_placeholders_discarded", "callee": "normalize_scalar", "is_member_call": false, "source_file": "tests/test_convert_article_to_markdown.py", "source_location": "L87", "receiver": null}, {"caller_nid": "$graphify-root$_tests_test_convert_article_to_markdown_test_normalize_scalar_placeholders_discarded", "callee": "normalize_scalar", "is_member_call": false, "source_file": "tests/test_convert_article_to_markdown.py", "source_location": "L88", "receiver": null}, {"caller_nid": "$graphify-root$_tests_test_convert_article_to_markdown_test_normalize_scalar_non_string_types", "callee": "normalize_scalar", "is_member_call": false, "source_file": "tests/test_convert_article_to_markdown.py", "source_location": "L93", "receiver": null}, {"caller_nid": "$graphify-root$_tests_test_convert_article_to_markdown_test_normalize_scalar_non_string_types", "callee": "normalize_scalar", "is_member_call": false, "source_file": "tests/test_convert_article_to_markdown.py", "source_location": "L94", "receiver": null}, {"caller_nid": "$graphify-root$_tests_test_convert_article_to_markdown_test_normalize_scalar_non_string_types", "callee": "normalize_scalar", "is_member_call": false, "source_file": "tests/test_convert_article_to_markdown.py", "source_location": "L95", "receiver": null}, {"caller_nid": "$graphify-root$_tests_test_convert_article_to_markdown_test_normalize_scalar_non_string_types", "callee": "normalize_scalar", "is_member_call": false, "source_file": "tests/test_convert_article_to_markdown.py", "source_location": "L96", "receiver": null}, {"caller_nid": "$graphify-root$_tests_test_convert_article_to_markdown_test_normalize_list_semicolon_and_comma_split", "callee": "normalize_list", "is_member_call": false, "source_file": "tests/test_convert_article_to_markdown.py", "source_location": "L108", "receiver": null}, {"caller_nid": "$graphify-root$_tests_test_convert_article_to_markdown_test_normalize_list_semicolon_and_comma_split", "callee": "normalize_list", "is_member_call": false, "source_file": "tests/test_convert_article_to_markdown.py", "source_location": "L112", "receiver": null}, {"caller_nid": "$graphify-root$_tests_test_convert_article_to_markdown_test_normalize_list_author_url_filtering", "callee": "normalize_list", "is_member_call": false, "source_file": "tests/test_convert_article_to_markdown.py", "source_location": "L124", "receiver": null}, {"caller_nid": "$graphify-root$_tests_test_convert_article_to_markdown_test_normalize_list_deduplication_preserves_case_and_order", "callee": "normalize_list", "is_member_call": false, "source_file": "tests/test_convert_article_to_markdown.py", "source_location": "L131", "receiver": null}, {"caller_nid": "$graphify-root$_tests_test_convert_article_to_markdown_test_normalize_list_empty_and_invalid", "callee": "normalize_list", "is_member_call": false, "source_file": "tests/test_convert_article_to_markdown.py", "source_location": "L136", "receiver": null}, {"caller_nid": "$graphify-root$_tests_test_convert_article_to_markdown_test_normalize_list_empty_and_invalid", "callee": "normalize_list", "is_member_call": false, "source_file": "tests/test_convert_article_to_markdown.py", "source_location": "L137", "receiver": null}, {"caller_nid": "$graphify-root$_tests_test_convert_article_to_markdown_test_normalize_list_empty_and_invalid", "callee": "normalize_list", "is_member_call": false, "source_file": "tests/test_convert_article_to_markdown.py", "source_location": "L138", "receiver": null}, {"caller_nid": "$graphify-root$_tests_test_convert_article_to_markdown_test_normalize_date_iso_8601_variants", "callee": "normalize_date", "is_member_call": false, "source_file": "tests/test_convert_article_to_markdown.py", "source_location": "L148", "receiver": null}, {"caller_nid": "$graphify-root$_tests_test_convert_article_to_markdown_test_normalize_date_iso_8601_variants", "callee": "normalize_date", "is_member_call": false, "source_file": "tests/test_convert_article_to_markdown.py", "source_location": "L149", "receiver": null}, {"caller_nid": "$graphify-root$_tests_test_convert_article_to_markdown_test_normalize_date_iso_8601_variants", "callee": "normalize_date", "is_member_call": false, "source_file": "tests/test_convert_article_to_markdown.py", "source_location": "L151", "receiver": null}, {"caller_nid": "$graphify-root$_tests_test_convert_article_to_markdown_test_normalize_date_rfc_2822_variants", "callee": "normalize_date", "is_member_call": false, "source_file": "tests/test_convert_article_to_markdown.py", "source_location": "L156", "receiver": null}, {"caller_nid": "$graphify-root$_tests_test_convert_article_to_markdown_test_normalize_date_rfc_2822_variants", "callee": "normalize_date", "is_member_call": false, "source_file": "tests/test_convert_article_to_markdown.py", "source_location": "L159", "receiver": null}, {"caller_nid": "$graphify-root$_tests_test_convert_article_to_markdown_test_normalize_date_invalid_and_placeholders", "callee": "normalize_date", "is_member_call": false, "source_file": "tests/test_convert_article_to_markdown.py", "source_location": "L165", "receiver": null}, {"caller_nid": "$graphify-root$_tests_test_convert_article_to_markdown_test_normalize_date_invalid_and_placeholders", "callee": "normalize_date", "is_member_call": false, "source_file": "tests/test_convert_article_to_markdown.py", "source_location": "L166", "receiver": null}, {"caller_nid": "$graphify-root$_tests_test_convert_article_to_markdown_test_normalize_date_invalid_and_placeholders", "callee": "normalize_date", "is_member_call": false, "source_file": "tests/test_convert_article_to_markdown.py", "source_location": "L167", "receiver": null}, {"caller_nid": "$graphify-root$_tests_test_convert_article_to_markdown_test_normalize_date_invalid_and_placeholders", "callee": "normalize_date", "is_member_call": false, "source_file": "tests/test_convert_article_to_markdown.py", "source_location": "L168", "receiver": null}, {"caller_nid": "$graphify-root$_tests_test_convert_article_to_markdown_test_normalize_date_invalid_and_placeholders", "callee": "normalize_date", "is_member_call": false, "source_file": "tests/test_convert_article_to_markdown.py", "source_location": "L169", "receiver": null}, {"caller_nid": "$graphify-root$_tests_test_convert_article_to_markdown_test_validate_url_valid_schemes", "callee": "validate_url", "is_member_call": false, "source_file": "tests/test_convert_article_to_markdown.py", "source_location": "L188", "receiver": null}, {"caller_nid": "$graphify-root$_tests_test_convert_article_to_markdown_test_validate_url_invalid_schemes", "callee": "validate_url", "is_member_call": false, "source_file": "tests/test_convert_article_to_markdown.py", "source_location": "L208", "receiver": null}, {"caller_nid": "$graphify-root$_tests_test_convert_article_to_markdown_test_convert_html_to_markdown_rich_formatting", "callee": "convert_html_to_markdown", "is_member_call": false, "source_file": "tests/test_convert_article_to_markdown.py", "source_location": "L232", "receiver": null}, {"caller_nid": "$graphify-root$_tests_test_convert_article_to_markdown_test_convert_html_to_markdown_empty_or_whitespace", "callee": "convert_html_to_markdown", "is_member_call": false, "source_file": "tests/test_convert_article_to_markdown.py", "source_location": "L248", "receiver": null}, {"caller_nid": "$graphify-root$_tests_test_convert_article_to_markdown_test_convert_html_to_markdown_empty_or_whitespace", "callee": "convert_html_to_markdown", "is_member_call": false, "source_file": "tests/test_convert_article_to_markdown.py", "source_location": "L249", "receiver": null}, {"caller_nid": "$graphify-root$_tests_test_convert_article_to_markdown_test_convert_html_to_markdown_empty_or_whitespace", "callee": "convert_html_to_markdown", "is_member_call": false, "source_file": "tests/test_convert_article_to_markdown.py", "source_location": "L250", "receiver": null}, {"caller_nid": "$graphify-root$_tests_test_convert_article_to_markdown_test_resolve_article_body_trafilatura_primary_and_fallback", "callee": "resolve_article_body", "is_member_call": false, "source_file": "tests/test_convert_article_to_markdown.py", "source_location": "L265", "receiver": null}, {"caller_nid": "$graphify-root$_tests_test_convert_article_to_markdown_test_resolve_article_body_trafilatura_primary_and_fallback", "callee": "resolve_article_body", "is_member_call": false, "source_file": "tests/test_convert_article_to_markdown.py", "source_location": "L272", "receiver": null}, {"caller_nid": "$graphify-root$_tests_test_convert_article_to_markdown_test_resolve_article_body_newspaper4k_primary_and_fallback", "callee": "resolve_article_body", "is_member_call": false, "source_file": "tests/test_convert_article_to_markdown.py", "source_location": "L285", "receiver": null}, {"caller_nid": "$graphify-root$_tests_test_convert_article_to_markdown_test_resolve_article_body_newspaper4k_primary_and_fallback", "callee": "resolve_article_body", "is_member_call": false, "source_file": "tests/test_convert_article_to_markdown.py", "source_location": "L292", "receiver": null}, {"caller_nid": "$graphify-root$_tests_test_convert_article_to_markdown_test_resolve_article_body_readability_primary_and_fallback", "callee": "resolve_article_body", "is_member_call": false, "source_file": "tests/test_convert_article_to_markdown.py", "source_location": "L305", "receiver": null}, {"caller_nid": "$graphify-root$_tests_test_convert_article_to_markdown_test_resolve_article_body_readability_primary_and_fallback", "callee": "resolve_article_body", "is_member_call": false, "source_file": "tests/test_convert_article_to_markdown.py", "source_location": "L313", "receiver": null}, {"caller_nid": "$graphify-root$_tests_test_convert_article_to_markdown_test_resolve_article_body_strict_isolation_all_extractors", "callee": "raises", "is_member_call": true, "source_file": "tests/test_convert_article_to_markdown.py", "source_location": "L336", "receiver": "pytest"}, {"caller_nid": "$graphify-root$_tests_test_convert_article_to_markdown_test_resolve_article_body_strict_isolation_all_extractors", "callee": "ValueError", "is_member_call": false, "indirect": true, "context": "argument", "source_file": "tests/test_convert_article_to_markdown.py", "source_location": "L336"}, {"caller_nid": "$graphify-root$_tests_test_convert_article_to_markdown_test_resolve_article_body_strict_isolation_all_extractors", "callee": "resolve_article_body", "is_member_call": false, "source_file": "tests/test_convert_article_to_markdown.py", "source_location": "L337", "receiver": null}, {"caller_nid": "$graphify-root$_tests_test_convert_article_to_markdown_test_resolve_article_body_invalid_selected_extractor", "callee": "raises", "is_member_call": true, "source_file": "tests/test_convert_article_to_markdown.py", "source_location": "L342", "receiver": "pytest"}, {"caller_nid": "$graphify-root$_tests_test_convert_article_to_markdown_test_resolve_article_body_invalid_selected_extractor", "callee": "ValueError", "is_member_call": false, "indirect": true, "context": "argument", "source_file": "tests/test_convert_article_to_markdown.py", "source_location": "L342"}, {"caller_nid": "$graphify-root$_tests_test_convert_article_to_markdown_test_resolve_article_body_invalid_selected_extractor", "callee": "resolve_article_body", "is_member_call": false, "source_file": "tests/test_convert_article_to_markdown.py", "source_location": "L343", "receiver": null}, {"caller_nid": "$graphify-root$_tests_test_convert_article_to_markdown_test_resolve_article_body_invalid_selected_extractor", "callee": "raises", "is_member_call": true, "source_file": "tests/test_convert_article_to_markdown.py", "source_location": "L345", "receiver": "pytest"}, {"caller_nid": "$graphify-root$_tests_test_convert_article_to_markdown_test_resolve_article_body_invalid_selected_extractor", "callee": "ValueError", "is_member_call": false, "indirect": true, "context": "argument", "source_file": "tests/test_convert_article_to_markdown.py", "source_location": "L345"}, {"caller_nid": "$graphify-root$_tests_test_convert_article_to_markdown_test_resolve_article_body_invalid_selected_extractor", "callee": "resolve_article_body", "is_member_call": false, "source_file": "tests/test_convert_article_to_markdown.py", "source_location": "L346", "receiver": null}, {"caller_nid": "$graphify-root$_tests_test_convert_article_to_markdown_test_metadata_priority_title_all_fallbacks", "callee": "resolve_article_metadata", "is_member_call": false, "source_file": "tests/test_convert_article_to_markdown.py", "source_location": "L359", "receiver": null}, {"caller_nid": "$graphify-root$_tests_test_convert_article_to_markdown_test_metadata_priority_title_all_fallbacks", "callee": "resolve_article_metadata", "is_member_call": false, "source_file": "tests/test_convert_article_to_markdown.py", "source_location": "L369", "receiver": null}, {"caller_nid": "$graphify-root$_tests_test_convert_article_to_markdown_test_metadata_priority_title_all_fallbacks", "callee": "resolve_article_metadata", "is_member_call": false, "source_file": "tests/test_convert_article_to_markdown.py", "source_location": "L377", "receiver": null}, {"caller_nid": "$graphify-root$_tests_test_convert_article_to_markdown_test_metadata_priority_title_all_fallbacks", "callee": "resolve_article_metadata", "is_member_call": false, "source_file": "tests/test_convert_article_to_markdown.py", "source_location": "L385", "receiver": null}, {"caller_nid": "$graphify-root$_tests_test_convert_article_to_markdown_test_metadata_priority_title_all_fallbacks", "callee": "resolve_article_metadata", "is_member_call": false, "source_file": "tests/test_convert_article_to_markdown.py", "source_location": "L393", "receiver": null}, {"caller_nid": "$graphify-root$_tests_test_convert_article_to_markdown_test_metadata_priority_original_url_all_fallbacks", "callee": "resolve_article_metadata", "is_member_call": false, "source_file": "tests/test_convert_article_to_markdown.py", "source_location": "L405", "receiver": null}, {"caller_nid": "$graphify-root$_tests_test_convert_article_to_markdown_test_metadata_priority_original_url_all_fallbacks", "callee": "resolve_article_metadata", "is_member_call": false, "source_file": "tests/test_convert_article_to_markdown.py", "source_location": "L413", "receiver": null}, {"caller_nid": "$graphify-root$_tests_test_convert_article_to_markdown_test_metadata_priority_original_url_all_fallbacks", "callee": "resolve_article_metadata", "is_member_call": false, "source_file": "tests/test_convert_article_to_markdown.py", "source_location": "L421", "receiver": null}, {"caller_nid": "$graphify-root$_tests_test_convert_article_to_markdown_test_metadata_priority_original_url_all_fallbacks", "callee": "resolve_article_metadata", "is_member_call": false, "source_file": "tests/test_convert_article_to_markdown.py", "source_location": "L432", "receiver": null}, {"caller_nid": "$graphify-root$_tests_test_convert_article_to_markdown_test_metadata_priority_subtitle_omitted_when_equal_to_title", "callee": "resolve_article_metadata", "is_member_call": false, "source_file": "tests/test_convert_article_to_markdown.py", "source_location": "L446", "receiver": null}, {"caller_nid": "$graphify-root$_tests_test_convert_article_to_markdown_test_metadata_priority_first_valid_source_no_cross_merging", "callee": "resolve_article_metadata", "is_member_call": false, "source_file": "tests/test_convert_article_to_markdown.py", "source_location": "L459", "receiver": null}, {"caller_nid": "$graphify-root$_tests_test_convert_article_to_markdown_test_remove_duplicate_initial_h1_exact_and_variations", "callee": "strip", "is_member_call": true, "source_file": "tests/test_convert_article_to_markdown.py", "source_location": "L475", "receiver": null}, {"caller_nid": "$graphify-root$_tests_test_convert_article_to_markdown_test_remove_duplicate_initial_h1_exact_and_variations", "callee": "remove_duplicate_initial_h1", "is_member_call": false, "source_file": "tests/test_convert_article_to_markdown.py", "source_location": "L475", "receiver": null}, {"caller_nid": "$graphify-root$_tests_test_convert_article_to_markdown_test_remove_duplicate_initial_h1_exact_and_variations", "callee": "remove_duplicate_initial_h1", "is_member_call": false, "source_file": "tests/test_convert_article_to_markdown.py", "source_location": "L479", "receiver": null}, {"caller_nid": "$graphify-root$_tests_test_convert_article_to_markdown_test_remove_duplicate_initial_h1_exact_and_variations", "callee": "remove_duplicate_initial_h1", "is_member_call": false, "source_file": "tests/test_convert_article_to_markdown.py", "source_location": "L483", "receiver": null}, {"caller_nid": "$graphify-root$_tests_test_convert_article_to_markdown_test_clean_body_images_removes_invalid_and_deduplicates", "callee": "clean_body_images", "is_member_call": false, "source_file": "tests/test_convert_article_to_markdown.py", "source_location": "L495", "receiver": null}, {"caller_nid": "$graphify-root$_tests_test_convert_article_to_markdown_test_clean_body_images_removes_invalid_and_deduplicates", "callee": "count", "is_member_call": true, "source_file": "tests/test_convert_article_to_markdown.py", "source_location": "L497", "receiver": "cleaned"}, {"caller_nid": "$graphify-root$_tests_test_convert_article_to_markdown_test_assemble_markdown_document_full_and_minimal", "callee": "assemble_markdown_document", "is_member_call": false, "source_file": "tests/test_convert_article_to_markdown.py", "source_location": "L524", "receiver": null}, {"caller_nid": "$graphify-root$_tests_test_convert_article_to_markdown_test_assemble_markdown_document_full_and_minimal", "callee": "startswith", "is_member_call": true, "source_file": "tests/test_convert_article_to_markdown.py", "source_location": "L526", "receiver": "doc_min"}, {"caller_nid": "$graphify-root$_tests_test_convert_article_to_markdown_test_assemble_markdown_document_full_and_minimal", "callee": "endswith", "is_member_call": true, "source_file": "tests/test_convert_article_to_markdown.py", "source_location": "L532", "receiver": "doc_min"}, {"caller_nid": "$graphify-root$_tests_test_convert_article_to_markdown_test_assemble_markdown_document_full_and_minimal", "callee": "endswith", "is_member_call": true, "source_file": "tests/test_convert_article_to_markdown.py", "source_location": "L533", "receiver": "doc_min"}, {"caller_nid": "$graphify-root$_tests_test_convert_article_to_markdown_test_golden_fixtures_byte_level_precision", "callee": "read_text", "is_member_call": true, "source_file": "tests/test_convert_article_to_markdown.py", "source_location": "L545", "receiver": null}, {"caller_nid": "$graphify-root$_tests_test_convert_article_to_markdown_test_golden_fixtures_byte_level_precision", "callee": "run", "is_member_call": true, "source_file": "tests/test_convert_article_to_markdown.py", "source_location": "L548", "receiver": "subprocess"}, {"caller_nid": "$graphify-root$_tests_test_convert_article_to_markdown_test_golden_fixtures_byte_level_precision", "callee": "SCRIPT_PATH", "is_member_call": false, "indirect": true, "context": "argument", "source_file": "tests/test_convert_article_to_markdown.py", "source_location": "L549"}, {"caller_nid": "$graphify-root$_tests_test_convert_article_to_markdown_test_golden_fixtures_byte_level_precision", "callee": "read_text", "is_member_call": true, "source_file": "tests/test_convert_article_to_markdown.py", "source_location": "L554", "receiver": "output_md"}, {"caller_nid": "$graphify-root$_tests_test_convert_article_to_markdown_test_conversion_determinism_sha256_repeatability", "callee": "run", "is_member_call": true, "source_file": "tests/test_convert_article_to_markdown.py", "source_location": "L565", "receiver": "subprocess"}, {"caller_nid": "$graphify-root$_tests_test_convert_article_to_markdown_test_conversion_determinism_sha256_repeatability", "callee": "SCRIPT_PATH", "is_member_call": false, "indirect": true, "context": "argument", "source_file": "tests/test_convert_article_to_markdown.py", "source_location": "L566"}, {"caller_nid": "$graphify-root$_tests_test_convert_article_to_markdown_test_conversion_determinism_sha256_repeatability", "callee": "read_bytes", "is_member_call": true, "source_file": "tests/test_convert_article_to_markdown.py", "source_location": "L571", "receiver": "out_md"}, {"caller_nid": "$graphify-root$_tests_test_convert_article_to_markdown_test_conversion_determinism_sha256_repeatability", "callee": "add", "is_member_call": true, "source_file": "tests/test_convert_article_to_markdown.py", "source_location": "L572", "receiver": "hashes"}, {"caller_nid": "$graphify-root$_tests_test_convert_article_to_markdown_test_conversion_determinism_sha256_repeatability", "callee": "hexdigest", "is_member_call": true, "source_file": "tests/test_convert_article_to_markdown.py", "source_location": "L572", "receiver": null}, {"caller_nid": "$graphify-root$_tests_test_convert_article_to_markdown_test_conversion_determinism_sha256_repeatability", "callee": "sha256", "is_member_call": true, "source_file": "tests/test_convert_article_to_markdown.py", "source_location": "L572", "receiver": "hashlib"}, {"caller_nid": "$graphify-root$_tests_test_convert_article_to_markdown_test_cli_exit_codes_and_error_handling", "callee": "run", "is_member_call": true, "source_file": "tests/test_convert_article_to_markdown.py", "source_location": "L585", "receiver": "subprocess"}, {"caller_nid": "$graphify-root$_tests_test_convert_article_to_markdown_test_cli_exit_codes_and_error_handling", "callee": "SCRIPT_PATH", "is_member_call": false, "indirect": true, "context": "argument", "source_file": "tests/test_convert_article_to_markdown.py", "source_location": "L585"}, {"caller_nid": "$graphify-root$_tests_test_convert_article_to_markdown_test_cli_exit_codes_and_error_handling", "callee": "run", "is_member_call": true, "source_file": "tests/test_convert_article_to_markdown.py", "source_location": "L589", "receiver": "subprocess"}, {"caller_nid": "$graphify-root$_tests_test_convert_article_to_markdown_test_cli_exit_codes_and_error_handling", "callee": "SCRIPT_PATH", "is_member_call": false, "indirect": true, "context": "argument", "source_file": "tests/test_convert_article_to_markdown.py", "source_location": "L590"}, {"caller_nid": "$graphify-root$_tests_test_convert_article_to_markdown_test_cli_exit_codes_and_error_handling", "callee": "lower", "is_member_call": true, "source_file": "tests/test_convert_article_to_markdown.py", "source_location": "L595", "receiver": null}, {"caller_nid": "$graphify-root$_tests_test_convert_article_to_markdown_test_cli_exit_codes_and_error_handling", "callee": "run", "is_member_call": true, "source_file": "tests/test_convert_article_to_markdown.py", "source_location": "L598", "receiver": "subprocess"}, {"caller_nid": "$graphify-root$_tests_test_convert_article_to_markdown_test_cli_exit_codes_and_error_handling", "callee": "SCRIPT_PATH", "is_member_call": false, "indirect": true, "context": "argument", "source_file": "tests/test_convert_article_to_markdown.py", "source_location": "L599"}, {"caller_nid": "$graphify-root$_tests_test_convert_article_to_markdown_test_cli_exit_codes_and_error_handling", "callee": "lower", "is_member_call": true, "source_file": "tests/test_convert_article_to_markdown.py", "source_location": "L604", "receiver": null}, {"caller_nid": "$graphify-root$_tests_test_convert_article_to_markdown_test_cli_exit_codes_and_error_handling", "callee": "run", "is_member_call": true, "source_file": "tests/test_convert_article_to_markdown.py", "source_location": "L607", "receiver": "subprocess"}, {"caller_nid": "$graphify-root$_tests_test_convert_article_to_markdown_test_cli_exit_codes_and_error_handling", "callee": "SCRIPT_PATH", "is_member_call": false, "indirect": true, "context": "argument", "source_file": "tests/test_convert_article_to_markdown.py", "source_location": "L608"}, {"caller_nid": "$graphify-root$_tests_test_convert_article_to_markdown_test_cli_exit_codes_and_error_handling", "callee": "lower", "is_member_call": true, "source_file": "tests/test_convert_article_to_markdown.py", "source_location": "L613", "receiver": null}, {"caller_nid": "$graphify-root$_tests_test_convert_article_to_markdown_test_cli_json_root_must_be_object", "callee": "write_text", "is_member_call": true, "source_file": "tests/test_convert_article_to_markdown.py", "source_location": "L620", "receiver": "bad_json"}, {"caller_nid": "$graphify-root$_tests_test_convert_article_to_markdown_test_cli_json_root_must_be_object", "callee": "dumps", "is_member_call": true, "source_file": "tests/test_convert_article_to_markdown.py", "source_location": "L620", "receiver": "json"}, {"caller_nid": "$graphify-root$_tests_test_convert_article_to_markdown_test_cli_json_root_must_be_object", "callee": "run", "is_member_call": true, "source_file": "tests/test_convert_article_to_markdown.py", "source_location": "L622", "receiver": "subprocess"}, {"caller_nid": "$graphify-root$_tests_test_convert_article_to_markdown_test_cli_json_root_must_be_object", "callee": "SCRIPT_PATH", "is_member_call": false, "indirect": true, "context": "argument", "source_file": "tests/test_convert_article_to_markdown.py", "source_location": "L623"}, {"caller_nid": "$graphify-root$_tests_test_convert_article_to_markdown_test_cli_json_root_must_be_object", "callee": "lower", "is_member_call": true, "source_file": "tests/test_convert_article_to_markdown.py", "source_location": "L628", "receiver": null}, {"caller_nid": "$graphify-root$_tests_test_convert_article_to_markdown_test_cli_json_root_must_be_object", "callee": "lower", "is_member_call": true, "source_file": "tests/test_convert_article_to_markdown.py", "source_location": "L628", "receiver": null}, {"caller_nid": "$graphify-root$_tests_test_convert_article_to_markdown_test_cli_no_stdout_pollution_and_atomic_preservation", "callee": "write_text", "is_member_call": true, "source_file": "tests/test_convert_article_to_markdown.py", "source_location": "L634", "receiver": "target_md"}, {"caller_nid": "$graphify-root$_tests_test_convert_article_to_markdown_test_cli_no_stdout_pollution_and_atomic_preservation", "callee": "run", "is_member_call": true, "source_file": "tests/test_convert_article_to_markdown.py", "source_location": "L637", "receiver": "subprocess"}, {"caller_nid": "$graphify-root$_tests_test_convert_article_to_markdown_test_cli_no_stdout_pollution_and_atomic_preservation", "callee": "SCRIPT_PATH", "is_member_call": false, "indirect": true, "context": "argument", "source_file": "tests/test_convert_article_to_markdown.py", "source_location": "L640"}, {"caller_nid": "$graphify-root$_tests_test_convert_article_to_markdown_test_cli_no_stdout_pollution_and_atomic_preservation", "callee": "run", "is_member_call": true, "source_file": "tests/test_convert_article_to_markdown.py", "source_location": "L654", "receiver": "subprocess"}, {"caller_nid": "$graphify-root$_tests_test_convert_article_to_markdown_test_cli_no_stdout_pollution_and_atomic_preservation", "callee": "SCRIPT_PATH", "is_member_call": false, "indirect": true, "context": "argument", "source_file": "tests/test_convert_article_to_markdown.py", "source_location": "L657"}, {"caller_nid": "$graphify-root$_tests_test_convert_article_to_markdown_test_cli_no_stdout_pollution_and_atomic_preservation", "callee": "read_text", "is_member_call": true, "source_file": "tests/test_convert_article_to_markdown.py", "source_location": "L668", "receiver": "target_md"}, {"caller_nid": "$graphify-root$_tests_test_convert_article_to_markdown_test_cli_no_stdout_pollution_and_atomic_preservation", "callee": "glob", "is_member_call": true, "source_file": "tests/test_convert_article_to_markdown.py", "source_location": "L671", "receiver": "tmp_path"}, {"caller_nid": "$graphify-root$_tests_test_convert_article_to_markdown_test_cli_default_output_naming", "callee": "write_text", "is_member_call": true, "source_file": "tests/test_convert_article_to_markdown.py", "source_location": "L678", "receiver": "sample_file"}, {"caller_nid": "$graphify-root$_tests_test_convert_article_to_markdown_test_cli_default_output_naming", "callee": "dumps", "is_member_call": true, "source_file": "tests/test_convert_article_to_markdown.py", "source_location": "L679", "receiver": "json"}, {"caller_nid": "$graphify-root$_tests_test_convert_article_to_markdown_test_cli_default_output_naming", "callee": "run", "is_member_call": true, "source_file": "tests/test_convert_article_to_markdown.py", "source_location": "L688", "receiver": "subprocess"}, {"caller_nid": "$graphify-root$_tests_test_convert_article_to_markdown_test_cli_default_output_naming", "callee": "SCRIPT_PATH", "is_member_call": false, "indirect": true, "context": "argument", "source_file": "tests/test_convert_article_to_markdown.py", "source_location": "L689"}, {"caller_nid": "$graphify-root$_tests_test_convert_article_to_markdown_test_cli_default_output_naming", "callee": "exists", "is_member_call": true, "source_file": "tests/test_convert_article_to_markdown.py", "source_location": "L695", "receiver": "expected_md"}, {"caller_nid": "$graphify-root$_tests_test_convert_article_to_markdown_test_cli_default_output_naming", "callee": "read_text", "is_member_call": true, "source_file": "tests/test_convert_article_to_markdown.py", "source_location": "L696", "receiver": "expected_md"}, {"caller_nid": "$graphify-root$_tests_test_convert_article_to_markdown_test_e2e_pipeline_with_real_extracted_selected_json", "callee": "Path", "is_member_call": false, "source_file": "tests/test_convert_article_to_markdown.py", "source_location": "L706", "receiver": null}, {"caller_nid": "$graphify-root$_tests_test_convert_article_to_markdown_test_e2e_pipeline_with_real_extracted_selected_json", "callee": "__file__", "is_member_call": false, "indirect": true, "context": "argument", "source_file": "tests/test_convert_article_to_markdown.py", "source_location": "L706"}, {"caller_nid": "$graphify-root$_tests_test_convert_article_to_markdown_test_e2e_pipeline_with_real_extracted_selected_json", "callee": "exists", "is_member_call": true, "source_file": "tests/test_convert_article_to_markdown.py", "source_location": "L707", "receiver": "sample_source"}, {"caller_nid": "$graphify-root$_tests_test_convert_article_to_markdown_test_e2e_pipeline_with_real_extracted_selected_json", "callee": "skip", "is_member_call": true, "source_file": "tests/test_convert_article_to_markdown.py", "source_location": "L708", "receiver": "pytest"}, {"caller_nid": "$graphify-root$_tests_test_convert_article_to_markdown_test_e2e_pipeline_with_real_extracted_selected_json", "callee": "loads", "is_member_call": true, "source_file": "tests/test_convert_article_to_markdown.py", "source_location": "L712", "receiver": "json"}, {"caller_nid": "$graphify-root$_tests_test_convert_article_to_markdown_test_e2e_pipeline_with_real_extracted_selected_json", "callee": "read_text", "is_member_call": true, "source_file": "tests/test_convert_article_to_markdown.py", "source_location": "L712", "receiver": "sample_source"}, {"caller_nid": "$graphify-root$_tests_test_convert_article_to_markdown_test_e2e_pipeline_with_real_extracted_selected_json", "callee": "write_text", "is_member_call": true, "source_file": "tests/test_convert_article_to_markdown.py", "source_location": "L717", "receiver": "input_json"}, {"caller_nid": "$graphify-root$_tests_test_convert_article_to_markdown_test_e2e_pipeline_with_real_extracted_selected_json", "callee": "dumps", "is_member_call": true, "source_file": "tests/test_convert_article_to_markdown.py", "source_location": "L717", "receiver": "json"}, {"caller_nid": "$graphify-root$_tests_test_convert_article_to_markdown_test_e2e_pipeline_with_real_extracted_selected_json", "callee": "run", "is_member_call": true, "source_file": "tests/test_convert_article_to_markdown.py", "source_location": "L720", "receiver": "subprocess"}, {"caller_nid": "$graphify-root$_tests_test_convert_article_to_markdown_test_e2e_pipeline_with_real_extracted_selected_json", "callee": "SCRIPT_PATH", "is_member_call": false, "indirect": true, "context": "argument", "source_file": "tests/test_convert_article_to_markdown.py", "source_location": "L721"}, {"caller_nid": "$graphify-root$_tests_test_convert_article_to_markdown_test_e2e_pipeline_with_real_extracted_selected_json", "callee": "exists", "is_member_call": true, "source_file": "tests/test_convert_article_to_markdown.py", "source_location": "L726", "receiver": "output_md"}, {"caller_nid": "$graphify-root$_tests_test_convert_article_to_markdown_test_e2e_pipeline_with_real_extracted_selected_json", "callee": "read_text", "is_member_call": true, "source_file": "tests/test_convert_article_to_markdown.py", "source_location": "L728", "receiver": "output_md"}, {"caller_nid": "$graphify-root$_tests_test_convert_article_to_markdown_test_e2e_pipeline_with_real_extracted_selected_json", "callee": "startswith", "is_member_call": true, "source_file": "tests/test_convert_article_to_markdown.py", "source_location": "L729", "receiver": "md_content"}, {"caller_nid": "$graphify-root$_tests_test_convert_article_to_markdown_test_e2e_pipeline_with_real_extracted_selected_json", "callee": "splitlines", "is_member_call": true, "source_file": "tests/test_convert_article_to_markdown.py", "source_location": "L732", "receiver": "md_content"}, {"caller_nid": "$graphify-root$_tests_test_convert_article_to_markdown_test_convert_article_api_direct", "callee": "write_text", "is_member_call": true, "source_file": "tests/test_convert_article_to_markdown.py", "source_location": "L738", "receiver": "in_file"}, {"caller_nid": "$graphify-root$_tests_test_convert_article_to_markdown_test_convert_article_api_direct", "callee": "dumps", "is_member_call": true, "source_file": "tests/test_convert_article_to_markdown.py", "source_location": "L739", "receiver": "json"}, {"caller_nid": "$graphify-root$_tests_test_convert_article_to_markdown_test_convert_article_api_direct", "callee": "convert_article", "is_member_call": false, "source_file": "tests/test_convert_article_to_markdown.py", "source_location": "L749", "receiver": null}, {"caller_nid": "$graphify-root$_tests_test_convert_article_to_markdown_test_convert_article_api_direct", "callee": "exists", "is_member_call": true, "source_file": "tests/test_convert_article_to_markdown.py", "source_location": "L751", "receiver": "out_file"}, {"caller_nid": "$graphify-root$_tests_test_convert_article_to_markdown_test_convert_article_api_direct", "callee": "read_text", "is_member_call": true, "source_file": "tests/test_convert_article_to_markdown.py", "source_location": "L752", "receiver": "out_file"}, {"caller_nid": "$graphify-root$_tests_test_convert_article_to_markdown_test_parse_arguments_api_direct", "callee": "parse_arguments", "is_member_call": false, "source_file": "tests/test_convert_article_to_markdown.py", "source_location": "L757", "receiver": null}, {"caller_nid": "$graphify-root$_tests_test_convert_article_to_markdown_test_parse_arguments_api_direct", "callee": "Path", "is_member_call": false, "source_file": "tests/test_convert_article_to_markdown.py", "source_location": "L758", "receiver": null}, {"caller_nid": "$graphify-root$_tests_test_convert_article_to_markdown_test_parse_arguments_api_direct", "callee": "Path", "is_member_call": false, "source_file": "tests/test_convert_article_to_markdown.py", "source_location": "L759", "receiver": null}]} |