Files
TextNLPClassifierApp/graphify-out/cache/ast/v0.9.47-s2/93b93b8fe832e887faa7acf1dcd7f8121e7492213ffb20398af13ae520acb58d.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": "L44", "_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": "L50", "_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": "L66", "_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": "L72", "_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": "L85", "_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": "L96", "_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": "L109", "_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": "L115", "_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": "L127", "_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": "L135", "_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": "L144", "_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": "L167", "_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": "L187", "_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": "L197", "_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": "L227", "_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": "L239", "_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": "L256", "_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": "L276", "_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": "L298", "_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": "L318", "_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": "L332", "_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": "L371", "_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": "L406", "_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": "L421", "_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": "L439", "_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": "L456", "_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": "L478", "_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": "L511", "_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": "L528", "_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": "L552", "_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": "L586", "_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": "L601", "_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": "L645", "_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": "L672", "_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": "L701", "_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": "L719", "_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_45", "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": "L45"}, {"id": "$graphify-root$_tests_test_convert_article_to_markdown_rationale_51", "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": "L51"}, {"id": "$graphify-root$_tests_test_convert_article_to_markdown_rationale_67", "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": "L67"}, {"id": "$graphify-root$_tests_test_convert_article_to_markdown_rationale_73", "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": "L73"}, {"id": "$graphify-root$_tests_test_convert_article_to_markdown_rationale_86", "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": "L86"}, {"id": "$graphify-root$_tests_test_convert_article_to_markdown_rationale_97", "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": "L97"}, {"id": "$graphify-root$_tests_test_convert_article_to_markdown_rationale_110", "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": "L110"}, {"id": "$graphify-root$_tests_test_convert_article_to_markdown_rationale_116", "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": "L116"}, {"id": "$graphify-root$_tests_test_convert_article_to_markdown_rationale_128", "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": "L128"}, {"id": "$graphify-root$_tests_test_convert_article_to_markdown_rationale_136", "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": "L136"}, {"id": "$graphify-root$_tests_test_convert_article_to_markdown_rationale_145", "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": "L145"}, {"id": "$graphify-root$_tests_test_convert_article_to_markdown_rationale_168", "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": "L168"}, {"id": "$graphify-root$_tests_test_convert_article_to_markdown_rationale_188", "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": "L188"}, {"id": "$graphify-root$_tests_test_convert_article_to_markdown_rationale_198", "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": "L198"}, {"id": "$graphify-root$_tests_test_convert_article_to_markdown_rationale_228", "label": "Testa convers\u00e3o de HTML vazio retornando string vazia.", "file_type": "rationale", "source_file": "tests/test_convert_article_to_markdown.py", "source_location": "L228"}, {"id": "$graphify-root$_tests_test_convert_article_to_markdown_rationale_240", "label": "Testa prioridade trafilatura.markdown sobre trafilatura.text.", "file_type": "rationale", "source_file": "tests/test_convert_article_to_markdown.py", "source_location": "L240"}, {"id": "$graphify-root$_tests_test_convert_article_to_markdown_rationale_257", "label": "Testa prioridade newspaper4k.article_html sobre newspaper4k.text.", "file_type": "rationale", "source_file": "tests/test_convert_article_to_markdown.py", "source_location": "L257"}, {"id": "$graphify-root$_tests_test_convert_article_to_markdown_rationale_277", "label": "Testa prioridade readability.cleaned_html sobre readability.cleaned_text.", "file_type": "rationale", "source_file": "tests/test_convert_article_to_markdown.py", "source_location": "L277"}, {"id": "$graphify-root$_tests_test_convert_article_to_markdown_rationale_299", "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": "L299"}, {"id": "$graphify-root$_tests_test_convert_article_to_markdown_rationale_319", "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": "L319"}, {"id": "$graphify-root$_tests_test_convert_article_to_markdown_rationale_333", "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": "L333"}, {"id": "$graphify-root$_tests_test_convert_article_to_markdown_rationale_372", "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": "L372"}, {"id": "$graphify-root$_tests_test_convert_article_to_markdown_rationale_407", "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": "L407"}, {"id": "$graphify-root$_tests_test_convert_article_to_markdown_rationale_422", "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": "L422"}, {"id": "$graphify-root$_tests_test_convert_article_to_markdown_rationale_440", "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": "L440"}, {"id": "$graphify-root$_tests_test_convert_article_to_markdown_rationale_457", "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": "L457"}, {"id": "$graphify-root$_tests_test_convert_article_to_markdown_rationale_479", "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": "L479"}, {"id": "$graphify-root$_tests_test_convert_article_to_markdown_rationale_512", "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": "L512"}, {"id": "$graphify-root$_tests_test_convert_article_to_markdown_rationale_529", "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": "L529"}, {"id": "$graphify-root$_tests_test_convert_article_to_markdown_rationale_553", "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": "L553"}, {"id": "$graphify-root$_tests_test_convert_article_to_markdown_rationale_587", "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": "L587"}, {"id": "$graphify-root$_tests_test_convert_article_to_markdown_rationale_602", "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": "L602"}, {"id": "$graphify-root$_tests_test_convert_article_to_markdown_rationale_646", "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": "L646"}, {"id": "$graphify-root$_tests_test_convert_article_to_markdown_rationale_673", "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": "L673"}, {"id": "$graphify-root$_tests_test_convert_article_to_markdown_rationale_702", "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": "L702"}, {"id": "$graphify-root$_tests_test_convert_article_to_markdown_rationale_720", "label": "Testa a chamada direta do parse_arguments.", "file_type": "rationale", "source_file": "tests/test_convert_article_to_markdown.py", "source_location": "L720"}], "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": "pytest", "relation": "imports", "context": "import", "confidence": "EXTRACTED", "source_file": "tests/test_convert_article_to_markdown.py", "source_location": "L18", "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": "L20", "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": "L44", "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": "L50", "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": "L55", "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": "L66", "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": "L72", "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": "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_list_author_url_filtering", "relation": "contains", "confidence": "EXTRACTED", "source_file": "tests/test_convert_article_to_markdown.py", "source_location": "L96", "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": "L109", "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": "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_date_iso_8601_variants", "relation": "contains", "confidence": "EXTRACTED", "source_file": "tests/test_convert_article_to_markdown.py", "source_location": "L127", "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": "L135", "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": "L144", "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": "L158", "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": "L167", "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": "L172", "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": "L187", "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": "L197", "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": "L227", "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": "L239", "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": "L256", "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": "L276", "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": "L297", "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": "L298", "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": "L318", "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": "L332", "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": "L371", "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": "L406", "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": "L421", "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": "L439", "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": "L456", "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": "L478", "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": "L511", "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": "L528", "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": "L552", "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": "L586", "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": "L601", "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": "L645", "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": "L672", "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": "L701", "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": "L719", "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_45", "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": "L45", "weight": 1.0}, {"source": "$graphify-root$_tests_test_convert_article_to_markdown_rationale_51", "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": "L51", "weight": 1.0}, {"source": "$graphify-root$_tests_test_convert_article_to_markdown_rationale_67", "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": "L67", "weight": 1.0}, {"source": "$graphify-root$_tests_test_convert_article_to_markdown_rationale_73", "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": "L73", "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_list_semicolon_and_comma_split", "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_97", "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": "L97", "weight": 1.0}, {"source": "$graphify-root$_tests_test_convert_article_to_markdown_rationale_110", "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": "L110", "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_empty_and_invalid", "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_128", "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": "L128", "weight": 1.0}, {"source": "$graphify-root$_tests_test_convert_article_to_markdown_rationale_136", "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": "L136", "weight": 1.0}, {"source": "$graphify-root$_tests_test_convert_article_to_markdown_rationale_145", "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": "L145", "weight": 1.0}, {"source": "$graphify-root$_tests_test_convert_article_to_markdown_rationale_168", "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": "L168", "weight": 1.0}, {"source": "$graphify-root$_tests_test_convert_article_to_markdown_rationale_188", "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": "L188", "weight": 1.0}, {"source": "$graphify-root$_tests_test_convert_article_to_markdown_rationale_198", "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": "L198", "weight": 1.0}, {"source": "$graphify-root$_tests_test_convert_article_to_markdown_rationale_228", "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": "L228", "weight": 1.0}, {"source": "$graphify-root$_tests_test_convert_article_to_markdown_rationale_240", "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": "L240", "weight": 1.0}, {"source": "$graphify-root$_tests_test_convert_article_to_markdown_rationale_257", "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": "L257", "weight": 1.0}, {"source": "$graphify-root$_tests_test_convert_article_to_markdown_rationale_277", "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": "L277", "weight": 1.0}, {"source": "$graphify-root$_tests_test_convert_article_to_markdown_rationale_299", "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": "L299", "weight": 1.0}, {"source": "$graphify-root$_tests_test_convert_article_to_markdown_rationale_319", "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": "L319", "weight": 1.0}, {"source": "$graphify-root$_tests_test_convert_article_to_markdown_rationale_333", "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": "L333", "weight": 1.0}, {"source": "$graphify-root$_tests_test_convert_article_to_markdown_rationale_372", "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": "L372", "weight": 1.0}, {"source": "$graphify-root$_tests_test_convert_article_to_markdown_rationale_407", "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": "L407", "weight": 1.0}, {"source": "$graphify-root$_tests_test_convert_article_to_markdown_rationale_422", "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": "L422", "weight": 1.0}, {"source": "$graphify-root$_tests_test_convert_article_to_markdown_rationale_440", "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": "L440", "weight": 1.0}, {"source": "$graphify-root$_tests_test_convert_article_to_markdown_rationale_457", "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": "L457", "weight": 1.0}, {"source": "$graphify-root$_tests_test_convert_article_to_markdown_rationale_479", "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": "L479", "weight": 1.0}, {"source": "$graphify-root$_tests_test_convert_article_to_markdown_rationale_512", "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": "L512", "weight": 1.0}, {"source": "$graphify-root$_tests_test_convert_article_to_markdown_rationale_529", "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": "L529", "weight": 1.0}, {"source": "$graphify-root$_tests_test_convert_article_to_markdown_rationale_553", "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": "L553", "weight": 1.0}, {"source": "$graphify-root$_tests_test_convert_article_to_markdown_rationale_587", "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": "L587", "weight": 1.0}, {"source": "$graphify-root$_tests_test_convert_article_to_markdown_rationale_602", "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": "L602", "weight": 1.0}, {"source": "$graphify-root$_tests_test_convert_article_to_markdown_rationale_646", "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": "L646", "weight": 1.0}, {"source": "$graphify-root$_tests_test_convert_article_to_markdown_rationale_673", "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": "L673", "weight": 1.0}, {"source": "$graphify-root$_tests_test_convert_article_to_markdown_rationale_702", "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": "L702", "weight": 1.0}, {"source": "$graphify-root$_tests_test_convert_article_to_markdown_rationale_720", "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": "L720", "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": "L46", "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": "L47", "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": "L52", "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": "L68", "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": "L69", "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": "L74", "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": "L75", "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": "L76", "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": "L77", "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": "L89", "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": "L93", "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": "L105", "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": "L112", "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": "L117", "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": "L118", "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": "L119", "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": "L129", "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": "L130", "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": "L132", "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": "L137", "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": "L140", "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": "L146", "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": "L147", "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": "L148", "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": "L149", "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": "L150", "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": "L169", "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": "L189", "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": "L213", "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": "L229", "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": "L230", "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": "L231", "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": "L246", "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": "L253", "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": "L266", "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": "L273", "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": "L286", "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": "L294", "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": "L314", "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": "L314"}, {"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": "L315", "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": "L320", "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": "L320"}, {"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": "L321", "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": "L323", "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": "L323"}, {"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": "L324", "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": "L336", "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": "L344", "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": "L352", "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": "L360", "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": "L368", "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": "L380", "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": "L388", "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": "L395", "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": "L403", "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": "L416", "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": "L429", "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": "L445", "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": "L445", "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": "L449", "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": "L453", "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": "L465", "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": "L467", "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": "L494", "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": "L496", "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": "L502", "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": "L503", "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": "L515", "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": "L518", "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": "L519"}, {"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": "L524", "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": "L535", "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": "L536"}, {"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": "L541", "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": "L542", "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": "L542", "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": "L542", "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": "L555", "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": "L555"}, {"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": "L559", "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": "L560"}, {"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": "L565", "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": "L568", "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": "L569"}, {"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": "L574", "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": "L577", "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": "L578"}, {"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": "L583", "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": "L590", "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": "L590", "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": "L592", "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": "L593"}, {"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": "L598", "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": "L598", "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": "L604", "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": "L607", "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": "L610"}, {"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": "L624", "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": "L627"}, {"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": "L638", "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": "L641", "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": "L648", "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": "L649", "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": "L656", "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": "L657"}, {"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": "L663", "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": "L664", "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": "L674", "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": "L674"}, {"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": "L675", "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": "L676", "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": "L678", "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": "L678", "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": "L683", "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": "L683", "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": "L686", "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": "L687"}, {"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": "L692", "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": "L694", "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": "L695", "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": "L698", "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": "L704", "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": "L705", "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": "L713", "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": "L715", "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": "L716", "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": "L721", "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": "L722", "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": "L723", "receiver": null}]}