Files
TextNLPClassifierApp/graphify-out/cache/ast/v0.9.47-s2/4333ac8911d1cd27964b0bacfa394ee8fe9e068bb2f25f3e0ff5e299564a7b4d.json
andreferraro 6a45368cb0 feat(extractor): implement multi-engine article content extractor
- Added scripts/extract_article_contents.py for batch scraping with stealth Foxcape and triple extraction (Trafilatura, Newspaper4k, Readability)
- Created unit, integration, and E2E test suite in tests/test_extract_article_contents.py (90/90 passing)
- Updated specs/003-article-content-extractor and README.md with usage documentation and CLI contracts
- Passed ruff linting/formatting and mypy type checking cleanly
2026-08-20 19:22:20 -03:00

1 line
37 KiB
JSON

{"nodes": [{"id": "$graphify-root$_tests_test_extract_article_contents_py", "label": "test_extract_article_contents.py", "file_type": "code", "source_file": "tests/test_extract_article_contents.py", "source_location": "L1"}, {"id": "fixture", "label": "fixture", "file_type": "code", "source_file": "", "source_location": "", "origin_file": "$graphify-root$/tests/test_extract_article_contents.py"}, {"id": "$graphify-root$_tests_test_extract_article_contents_sample_input_json", "label": "sample_input_json()", "file_type": "code", "source_file": "tests/test_extract_article_contents.py", "source_location": "L61", "_callable": true}, {"id": "path", "label": "Path", "file_type": "code", "source_file": "", "source_location": "", "origin_file": "$graphify-root$/tests/test_extract_article_contents.py"}, {"id": "$graphify-root$_tests_test_extract_article_contents_test_input_article_creation", "label": "test_input_article_creation()", "file_type": "code", "source_file": "tests/test_extract_article_contents.py", "source_location": "L94", "_callable": true}, {"id": "$graphify-root$_tests_test_extract_article_contents_test_load_search_json_valid", "label": "test_load_search_json_valid()", "file_type": "code", "source_file": "tests/test_extract_article_contents.py", "source_location": "L110", "_callable": true}, {"id": "$graphify-root$_tests_test_extract_article_contents_test_load_search_json_invalid_file", "label": "test_load_search_json_invalid_file()", "file_type": "code", "source_file": "tests/test_extract_article_contents.py", "source_location": "L118", "_callable": true}, {"id": "$graphify-root$_tests_test_extract_article_contents_test_save_extracted_json", "label": "test_save_extracted_json()", "file_type": "code", "source_file": "tests/test_extract_article_contents.py", "source_location": "L124", "_callable": true}, {"id": "$graphify-root$_tests_test_extract_article_contents_test_trafilatura_extractor", "label": "test_trafilatura_extractor()", "file_type": "code", "source_file": "tests/test_extract_article_contents.py", "source_location": "L186", "_callable": true}, {"id": "$graphify-root$_tests_test_extract_article_contents_test_newspaper_extractor", "label": "test_newspaper_extractor()", "file_type": "code", "source_file": "tests/test_extract_article_contents.py", "source_location": "L195", "_callable": true}, {"id": "$graphify-root$_tests_test_extract_article_contents_test_readability_extractor", "label": "test_readability_extractor()", "file_type": "code", "source_file": "tests/test_extract_article_contents.py", "source_location": "L205", "_callable": true}, {"id": "$graphify-root$_tests_test_extract_article_contents_test_extract_all_engines", "label": "test_extract_all_engines()", "file_type": "code", "source_file": "tests/test_extract_article_contents.py", "source_location": "L215", "_callable": true}, {"id": "$graphify-root$_tests_test_extract_article_contents_test_extractor_error_isolation_on_faulty_engine", "label": "test_extractor_error_isolation_on_faulty_engine()", "file_type": "code", "source_file": "tests/test_extract_article_contents.py", "source_location": "L229", "_callable": true}, {"id": "$graphify-root$_tests_test_extract_article_contents_test_crawler_error_isolation", "label": "test_crawler_error_isolation()", "file_type": "code", "source_file": "tests/test_extract_article_contents.py", "source_location": "L242", "_callable": true}, {"id": "$graphify-root$_tests_test_extract_article_contents_test_process_batch_with_limit", "label": "test_process_batch_with_limit()", "file_type": "code", "source_file": "tests/test_extract_article_contents.py", "source_location": "L271", "_callable": true}, {"id": "$graphify-root$_tests_test_extract_article_contents_test_cli_main_success", "label": "test_cli_main_success()", "file_type": "code", "source_file": "tests/test_extract_article_contents.py", "source_location": "L291", "_callable": true}, {"id": "$graphify-root$_tests_test_extract_article_contents_test_cli_main_missing_input_file", "label": "test_cli_main_missing_input_file()", "file_type": "code", "source_file": "tests/test_extract_article_contents.py", "source_location": "L305", "_callable": true}, {"id": "$graphify-root$_tests_test_extract_article_contents_test_e2e_live_article_extraction", "label": "test_e2e_live_article_extraction()", "file_type": "code", "source_file": "tests/test_extract_article_contents.py", "source_location": "L316", "_callable": true}, {"id": "$graphify-root$_tests_test_extract_article_contents_test_e2e_cli_live_execution", "label": "test_e2e_cli_live_execution()", "file_type": "code", "source_file": "tests/test_extract_article_contents.py", "source_location": "L360", "_callable": true}, {"id": "$graphify-root$_tests_test_extract_article_contents_rationale_317", "label": "Valida E2E a extra\u00e7\u00e3o real ao vivo com Foxcape e os 3 motores em lote.", "file_type": "rationale", "source_file": "tests/test_extract_article_contents.py", "source_location": "L317"}, {"id": "$graphify-root$_tests_test_extract_article_contents_rationale_361", "label": "Valida E2E a execu\u00e7\u00e3o do CLI real de ponta a ponta.", "file_type": "rationale", "source_file": "tests/test_extract_article_contents.py", "source_location": "L361"}], "edges": [{"source": "$graphify-root$_tests_test_extract_article_contents_py", "target": "json", "relation": "imports", "context": "import", "confidence": "EXTRACTED", "source_file": "tests/test_extract_article_contents.py", "source_location": "L10", "weight": 1.0}, {"source": "$graphify-root$_tests_test_extract_article_contents_py", "target": "pathlib", "relation": "imports_from", "context": "import", "confidence": "EXTRACTED", "source_file": "tests/test_extract_article_contents.py", "source_location": "L11", "weight": 1.0}, {"source": "$graphify-root$_tests_test_extract_article_contents_py", "target": "unittest_mock", "relation": "imports_from", "context": "import", "confidence": "EXTRACTED", "source_file": "tests/test_extract_article_contents.py", "source_location": "L12", "weight": 1.0}, {"source": "$graphify-root$_tests_test_extract_article_contents_py", "target": "pytest", "relation": "imports", "context": "import", "confidence": "EXTRACTED", "source_file": "tests/test_extract_article_contents.py", "source_location": "L14", "weight": 1.0}, {"source": "$graphify-root$_tests_test_extract_article_contents_py", "target": "scripts_extract_article_contents", "relation": "imports_from", "context": "import", "confidence": "EXTRACTED", "source_file": "tests/test_extract_article_contents.py", "source_location": "L16", "weight": 1.0}, {"source": "$graphify-root$_tests_test_extract_article_contents_sample_input_json", "target": "fixture", "relation": "references", "confidence": "EXTRACTED", "source_file": "tests/test_extract_article_contents.py", "source_location": "L60", "weight": 1.0, "context": "decorator"}, {"source": "$graphify-root$_tests_test_extract_article_contents_py", "target": "$graphify-root$_tests_test_extract_article_contents_sample_input_json", "relation": "contains", "confidence": "EXTRACTED", "source_file": "tests/test_extract_article_contents.py", "source_location": "L61", "weight": 1.0}, {"source": "$graphify-root$_tests_test_extract_article_contents_sample_input_json", "target": "path", "relation": "references", "context": "parameter_type", "confidence": "EXTRACTED", "source_file": "tests/test_extract_article_contents.py", "source_location": "L61", "weight": 1.0}, {"source": "$graphify-root$_tests_test_extract_article_contents_sample_input_json", "target": "path", "relation": "references", "context": "return_type", "confidence": "EXTRACTED", "source_file": "tests/test_extract_article_contents.py", "source_location": "L61", "weight": 1.0}, {"source": "$graphify-root$_tests_test_extract_article_contents_py", "target": "$graphify-root$_tests_test_extract_article_contents_test_input_article_creation", "relation": "contains", "confidence": "EXTRACTED", "source_file": "tests/test_extract_article_contents.py", "source_location": "L94", "weight": 1.0}, {"source": "$graphify-root$_tests_test_extract_article_contents_py", "target": "$graphify-root$_tests_test_extract_article_contents_test_load_search_json_valid", "relation": "contains", "confidence": "EXTRACTED", "source_file": "tests/test_extract_article_contents.py", "source_location": "L110", "weight": 1.0}, {"source": "$graphify-root$_tests_test_extract_article_contents_test_load_search_json_valid", "target": "path", "relation": "references", "context": "parameter_type", "confidence": "EXTRACTED", "source_file": "tests/test_extract_article_contents.py", "source_location": "L110", "weight": 1.0}, {"source": "$graphify-root$_tests_test_extract_article_contents_py", "target": "$graphify-root$_tests_test_extract_article_contents_test_load_search_json_invalid_file", "relation": "contains", "confidence": "EXTRACTED", "source_file": "tests/test_extract_article_contents.py", "source_location": "L118", "weight": 1.0}, {"source": "$graphify-root$_tests_test_extract_article_contents_test_load_search_json_invalid_file", "target": "path", "relation": "references", "context": "parameter_type", "confidence": "EXTRACTED", "source_file": "tests/test_extract_article_contents.py", "source_location": "L118", "weight": 1.0}, {"source": "$graphify-root$_tests_test_extract_article_contents_py", "target": "$graphify-root$_tests_test_extract_article_contents_test_save_extracted_json", "relation": "contains", "confidence": "EXTRACTED", "source_file": "tests/test_extract_article_contents.py", "source_location": "L124", "weight": 1.0}, {"source": "$graphify-root$_tests_test_extract_article_contents_test_save_extracted_json", "target": "path", "relation": "references", "context": "parameter_type", "confidence": "EXTRACTED", "source_file": "tests/test_extract_article_contents.py", "source_location": "L124", "weight": 1.0}, {"source": "$graphify-root$_tests_test_extract_article_contents_py", "target": "$graphify-root$_tests_test_extract_article_contents_test_trafilatura_extractor", "relation": "contains", "confidence": "EXTRACTED", "source_file": "tests/test_extract_article_contents.py", "source_location": "L186", "weight": 1.0}, {"source": "$graphify-root$_tests_test_extract_article_contents_py", "target": "$graphify-root$_tests_test_extract_article_contents_test_newspaper_extractor", "relation": "contains", "confidence": "EXTRACTED", "source_file": "tests/test_extract_article_contents.py", "source_location": "L195", "weight": 1.0}, {"source": "$graphify-root$_tests_test_extract_article_contents_py", "target": "$graphify-root$_tests_test_extract_article_contents_test_readability_extractor", "relation": "contains", "confidence": "EXTRACTED", "source_file": "tests/test_extract_article_contents.py", "source_location": "L205", "weight": 1.0}, {"source": "$graphify-root$_tests_test_extract_article_contents_py", "target": "$graphify-root$_tests_test_extract_article_contents_test_extract_all_engines", "relation": "contains", "confidence": "EXTRACTED", "source_file": "tests/test_extract_article_contents.py", "source_location": "L215", "weight": 1.0}, {"source": "$graphify-root$_tests_test_extract_article_contents_py", "target": "$graphify-root$_tests_test_extract_article_contents_test_extractor_error_isolation_on_faulty_engine", "relation": "contains", "confidence": "EXTRACTED", "source_file": "tests/test_extract_article_contents.py", "source_location": "L229", "weight": 1.0}, {"source": "$graphify-root$_tests_test_extract_article_contents_py", "target": "$graphify-root$_tests_test_extract_article_contents_test_crawler_error_isolation", "relation": "contains", "confidence": "EXTRACTED", "source_file": "tests/test_extract_article_contents.py", "source_location": "L242", "weight": 1.0}, {"source": "$graphify-root$_tests_test_extract_article_contents_test_crawler_error_isolation", "target": "path", "relation": "references", "context": "parameter_type", "confidence": "EXTRACTED", "source_file": "tests/test_extract_article_contents.py", "source_location": "L242", "weight": 1.0}, {"source": "$graphify-root$_tests_test_extract_article_contents_test_crawler_error_isolation", "target": "path", "relation": "references", "context": "parameter_type", "confidence": "EXTRACTED", "source_file": "tests/test_extract_article_contents.py", "source_location": "L242", "weight": 1.0}, {"source": "$graphify-root$_tests_test_extract_article_contents_py", "target": "$graphify-root$_tests_test_extract_article_contents_test_process_batch_with_limit", "relation": "contains", "confidence": "EXTRACTED", "source_file": "tests/test_extract_article_contents.py", "source_location": "L271", "weight": 1.0}, {"source": "$graphify-root$_tests_test_extract_article_contents_test_process_batch_with_limit", "target": "path", "relation": "references", "context": "parameter_type", "confidence": "EXTRACTED", "source_file": "tests/test_extract_article_contents.py", "source_location": "L271", "weight": 1.0}, {"source": "$graphify-root$_tests_test_extract_article_contents_test_process_batch_with_limit", "target": "path", "relation": "references", "context": "parameter_type", "confidence": "EXTRACTED", "source_file": "tests/test_extract_article_contents.py", "source_location": "L271", "weight": 1.0}, {"source": "$graphify-root$_tests_test_extract_article_contents_py", "target": "$graphify-root$_tests_test_extract_article_contents_test_cli_main_success", "relation": "contains", "confidence": "EXTRACTED", "source_file": "tests/test_extract_article_contents.py", "source_location": "L291", "weight": 1.0}, {"source": "$graphify-root$_tests_test_extract_article_contents_test_cli_main_success", "target": "path", "relation": "references", "context": "parameter_type", "confidence": "EXTRACTED", "source_file": "tests/test_extract_article_contents.py", "source_location": "L291", "weight": 1.0}, {"source": "$graphify-root$_tests_test_extract_article_contents_test_cli_main_success", "target": "path", "relation": "references", "context": "parameter_type", "confidence": "EXTRACTED", "source_file": "tests/test_extract_article_contents.py", "source_location": "L291", "weight": 1.0}, {"source": "$graphify-root$_tests_test_extract_article_contents_py", "target": "$graphify-root$_tests_test_extract_article_contents_test_cli_main_missing_input_file", "relation": "contains", "confidence": "EXTRACTED", "source_file": "tests/test_extract_article_contents.py", "source_location": "L305", "weight": 1.0}, {"source": "$graphify-root$_tests_test_extract_article_contents_test_cli_main_missing_input_file", "target": "path", "relation": "references", "context": "parameter_type", "confidence": "EXTRACTED", "source_file": "tests/test_extract_article_contents.py", "source_location": "L305", "weight": 1.0}, {"source": "$graphify-root$_tests_test_extract_article_contents_py", "target": "$graphify-root$_tests_test_extract_article_contents_test_e2e_live_article_extraction", "relation": "contains", "confidence": "EXTRACTED", "source_file": "tests/test_extract_article_contents.py", "source_location": "L316", "weight": 1.0}, {"source": "$graphify-root$_tests_test_extract_article_contents_test_e2e_live_article_extraction", "target": "path", "relation": "references", "context": "parameter_type", "confidence": "EXTRACTED", "source_file": "tests/test_extract_article_contents.py", "source_location": "L316", "weight": 1.0}, {"source": "$graphify-root$_tests_test_extract_article_contents_py", "target": "$graphify-root$_tests_test_extract_article_contents_test_e2e_cli_live_execution", "relation": "contains", "confidence": "EXTRACTED", "source_file": "tests/test_extract_article_contents.py", "source_location": "L360", "weight": 1.0}, {"source": "$graphify-root$_tests_test_extract_article_contents_test_e2e_cli_live_execution", "target": "path", "relation": "references", "context": "parameter_type", "confidence": "EXTRACTED", "source_file": "tests/test_extract_article_contents.py", "source_location": "L360", "weight": 1.0}, {"source": "$graphify-root$_tests_test_extract_article_contents_test_e2e_live_article_extraction", "target": "path", "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "tests/test_extract_article_contents.py", "source_location": "L318", "weight": 1.0}, {"source": "$graphify-root$_tests_test_extract_article_contents_test_e2e_cli_live_execution", "target": "path", "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "tests/test_extract_article_contents.py", "source_location": "L362", "weight": 1.0}, {"source": "$graphify-root$_tests_test_extract_article_contents_rationale_317", "target": "$graphify-root$_tests_test_extract_article_contents_test_e2e_live_article_extraction", "relation": "rationale_for", "confidence": "EXTRACTED", "source_file": "tests/test_extract_article_contents.py", "source_location": "L317", "weight": 1.0}, {"source": "$graphify-root$_tests_test_extract_article_contents_rationale_361", "target": "$graphify-root$_tests_test_extract_article_contents_test_e2e_cli_live_execution", "relation": "rationale_for", "confidence": "EXTRACTED", "source_file": "tests/test_extract_article_contents.py", "source_location": "L361", "weight": 1.0}], "raw_calls": [{"caller_nid": "$graphify-root$_tests_test_extract_article_contents_sample_input_json", "callee": "write_text", "is_member_call": true, "source_file": "tests/test_extract_article_contents.py", "source_location": "L85", "receiver": "input_file"}, {"caller_nid": "$graphify-root$_tests_test_extract_article_contents_sample_input_json", "callee": "dumps", "is_member_call": true, "source_file": "tests/test_extract_article_contents.py", "source_location": "L85", "receiver": "json"}, {"caller_nid": "$graphify-root$_tests_test_extract_article_contents_test_input_article_creation", "callee": "InputArticle", "is_member_call": false, "source_file": "tests/test_extract_article_contents.py", "source_location": "L95", "receiver": null}, {"caller_nid": "$graphify-root$_tests_test_extract_article_contents_test_input_article_creation", "callee": "to_dict", "is_member_call": true, "source_file": "tests/test_extract_article_contents.py", "source_location": "L105", "receiver": "article"}, {"caller_nid": "$graphify-root$_tests_test_extract_article_contents_test_load_search_json_valid", "callee": "load_search_json", "is_member_call": false, "source_file": "tests/test_extract_article_contents.py", "source_location": "L111", "receiver": null}, {"caller_nid": "$graphify-root$_tests_test_extract_article_contents_test_load_search_json_invalid_file", "callee": "raises", "is_member_call": true, "source_file": "tests/test_extract_article_contents.py", "source_location": "L120", "receiver": "pytest"}, {"caller_nid": "$graphify-root$_tests_test_extract_article_contents_test_load_search_json_invalid_file", "callee": "FileNotFoundError", "is_member_call": false, "indirect": true, "context": "argument", "source_file": "tests/test_extract_article_contents.py", "source_location": "L120"}, {"caller_nid": "$graphify-root$_tests_test_extract_article_contents_test_load_search_json_invalid_file", "callee": "load_search_json", "is_member_call": false, "source_file": "tests/test_extract_article_contents.py", "source_location": "L121", "receiver": null}, {"caller_nid": "$graphify-root$_tests_test_extract_article_contents_test_save_extracted_json", "callee": "ExtractionBatchReport", "is_member_call": false, "source_file": "tests/test_extract_article_contents.py", "source_location": "L125", "receiver": null}, {"caller_nid": "$graphify-root$_tests_test_extract_article_contents_test_save_extracted_json", "callee": "ExtractedArticle", "is_member_call": false, "source_file": "tests/test_extract_article_contents.py", "source_location": "L132", "receiver": null}, {"caller_nid": "$graphify-root$_tests_test_extract_article_contents_test_save_extracted_json", "callee": "InputArticle", "is_member_call": false, "source_file": "tests/test_extract_article_contents.py", "source_location": "L133", "receiver": null}, {"caller_nid": "$graphify-root$_tests_test_extract_article_contents_test_save_extracted_json", "callee": "TrafilaturaData", "is_member_call": false, "source_file": "tests/test_extract_article_contents.py", "source_location": "L139", "receiver": null}, {"caller_nid": "$graphify-root$_tests_test_extract_article_contents_test_save_extracted_json", "callee": "NewspaperData", "is_member_call": false, "source_file": "tests/test_extract_article_contents.py", "source_location": "L151", "receiver": null}, {"caller_nid": "$graphify-root$_tests_test_extract_article_contents_test_save_extracted_json", "callee": "ReadabilityData", "is_member_call": false, "source_file": "tests/test_extract_article_contents.py", "source_location": "L163", "receiver": null}, {"caller_nid": "$graphify-root$_tests_test_extract_article_contents_test_save_extracted_json", "callee": "save_extracted_json", "is_member_call": false, "source_file": "tests/test_extract_article_contents.py", "source_location": "L174", "receiver": null}, {"caller_nid": "$graphify-root$_tests_test_extract_article_contents_test_save_extracted_json", "callee": "exists", "is_member_call": true, "source_file": "tests/test_extract_article_contents.py", "source_location": "L175", "receiver": "out_file"}, {"caller_nid": "$graphify-root$_tests_test_extract_article_contents_test_save_extracted_json", "callee": "loads", "is_member_call": true, "source_file": "tests/test_extract_article_contents.py", "source_location": "L176", "receiver": "json"}, {"caller_nid": "$graphify-root$_tests_test_extract_article_contents_test_save_extracted_json", "callee": "read_text", "is_member_call": true, "source_file": "tests/test_extract_article_contents.py", "source_location": "L176", "receiver": "out_file"}, {"caller_nid": "$graphify-root$_tests_test_extract_article_contents_test_trafilatura_extractor", "callee": "TrafilaturaExtractor", "is_member_call": false, "source_file": "tests/test_extract_article_contents.py", "source_location": "L187", "receiver": null}, {"caller_nid": "$graphify-root$_tests_test_extract_article_contents_test_trafilatura_extractor", "callee": "extract", "is_member_call": true, "source_file": "tests/test_extract_article_contents.py", "source_location": "L188", "receiver": "extractor"}, {"caller_nid": "$graphify-root$_tests_test_extract_article_contents_test_trafilatura_extractor", "callee": "SAMPLE_HTML", "is_member_call": false, "indirect": true, "context": "argument", "source_file": "tests/test_extract_article_contents.py", "source_location": "L188"}, {"caller_nid": "$graphify-root$_tests_test_extract_article_contents_test_trafilatura_extractor", "callee": "TrafilaturaData", "is_member_call": false, "indirect": true, "context": "argument", "source_file": "tests/test_extract_article_contents.py", "source_location": "L189"}, {"caller_nid": "$graphify-root$_tests_test_extract_article_contents_test_newspaper_extractor", "callee": "NewspaperExtractor", "is_member_call": false, "source_file": "tests/test_extract_article_contents.py", "source_location": "L196", "receiver": null}, {"caller_nid": "$graphify-root$_tests_test_extract_article_contents_test_newspaper_extractor", "callee": "extract", "is_member_call": true, "source_file": "tests/test_extract_article_contents.py", "source_location": "L197", "receiver": "extractor"}, {"caller_nid": "$graphify-root$_tests_test_extract_article_contents_test_newspaper_extractor", "callee": "SAMPLE_HTML", "is_member_call": false, "indirect": true, "context": "argument", "source_file": "tests/test_extract_article_contents.py", "source_location": "L197"}, {"caller_nid": "$graphify-root$_tests_test_extract_article_contents_test_newspaper_extractor", "callee": "NewspaperData", "is_member_call": false, "indirect": true, "context": "argument", "source_file": "tests/test_extract_article_contents.py", "source_location": "L198"}, {"caller_nid": "$graphify-root$_tests_test_extract_article_contents_test_newspaper_extractor", "callee": "list", "is_member_call": false, "indirect": true, "context": "argument", "source_file": "tests/test_extract_article_contents.py", "source_location": "L201"}, {"caller_nid": "$graphify-root$_tests_test_extract_article_contents_test_readability_extractor", "callee": "ReadabilityExtractor", "is_member_call": false, "source_file": "tests/test_extract_article_contents.py", "source_location": "L206", "receiver": null}, {"caller_nid": "$graphify-root$_tests_test_extract_article_contents_test_readability_extractor", "callee": "extract", "is_member_call": true, "source_file": "tests/test_extract_article_contents.py", "source_location": "L207", "receiver": "extractor"}, {"caller_nid": "$graphify-root$_tests_test_extract_article_contents_test_readability_extractor", "callee": "SAMPLE_HTML", "is_member_call": false, "indirect": true, "context": "argument", "source_file": "tests/test_extract_article_contents.py", "source_location": "L207"}, {"caller_nid": "$graphify-root$_tests_test_extract_article_contents_test_readability_extractor", "callee": "ReadabilityData", "is_member_call": false, "indirect": true, "context": "argument", "source_file": "tests/test_extract_article_contents.py", "source_location": "L208"}, {"caller_nid": "$graphify-root$_tests_test_extract_article_contents_test_extract_all_engines", "callee": "extract_all_engines", "is_member_call": false, "source_file": "tests/test_extract_article_contents.py", "source_location": "L216", "receiver": null}, {"caller_nid": "$graphify-root$_tests_test_extract_article_contents_test_extract_all_engines", "callee": "SAMPLE_HTML", "is_member_call": false, "indirect": true, "context": "argument", "source_file": "tests/test_extract_article_contents.py", "source_location": "L217"}, {"caller_nid": "$graphify-root$_tests_test_extract_article_contents_test_extractor_error_isolation_on_faulty_engine", "callee": "patch", "is_member_call": false, "source_file": "tests/test_extract_article_contents.py", "source_location": "L230", "receiver": null}, {"caller_nid": "$graphify-root$_tests_test_extract_article_contents_test_extractor_error_isolation_on_faulty_engine", "callee": "RuntimeError", "is_member_call": false, "source_file": "tests/test_extract_article_contents.py", "source_location": "L232", "receiver": null}, {"caller_nid": "$graphify-root$_tests_test_extract_article_contents_test_extractor_error_isolation_on_faulty_engine", "callee": "extract_all_engines", "is_member_call": false, "source_file": "tests/test_extract_article_contents.py", "source_location": "L234", "receiver": null}, {"caller_nid": "$graphify-root$_tests_test_extract_article_contents_test_extractor_error_isolation_on_faulty_engine", "callee": "SAMPLE_HTML", "is_member_call": false, "indirect": true, "context": "argument", "source_file": "tests/test_extract_article_contents.py", "source_location": "L235"}, {"caller_nid": "$graphify-root$_tests_test_extract_article_contents_test_crawler_error_isolation", "callee": "object", "is_member_call": true, "source_file": "tests/test_extract_article_contents.py", "source_location": "L250", "receiver": "patch"}, {"caller_nid": "$graphify-root$_tests_test_extract_article_contents_test_crawler_error_isolation", "callee": "ArticleCrawler", "is_member_call": false, "indirect": true, "context": "argument", "source_file": "tests/test_extract_article_contents.py", "source_location": "L250"}, {"caller_nid": "$graphify-root$_tests_test_extract_article_contents_test_crawler_error_isolation", "callee": "mock_crawl", "is_member_call": false, "indirect": true, "context": "argument", "source_file": "tests/test_extract_article_contents.py", "source_location": "L250"}, {"caller_nid": "$graphify-root$_tests_test_extract_article_contents_test_crawler_error_isolation", "callee": "object", "is_member_call": true, "source_file": "tests/test_extract_article_contents.py", "source_location": "L251", "receiver": "patch"}, {"caller_nid": "$graphify-root$_tests_test_extract_article_contents_test_crawler_error_isolation", "callee": "ArticleCrawler", "is_member_call": false, "indirect": true, "context": "argument", "source_file": "tests/test_extract_article_contents.py", "source_location": "L251"}, {"caller_nid": "$graphify-root$_tests_test_extract_article_contents_test_crawler_error_isolation", "callee": "object", "is_member_call": true, "source_file": "tests/test_extract_article_contents.py", "source_location": "L251", "receiver": "patch"}, {"caller_nid": "$graphify-root$_tests_test_extract_article_contents_test_crawler_error_isolation", "callee": "ArticleCrawler", "is_member_call": false, "indirect": true, "context": "argument", "source_file": "tests/test_extract_article_contents.py", "source_location": "L251"}, {"caller_nid": "$graphify-root$_tests_test_extract_article_contents_test_crawler_error_isolation", "callee": "process_batch", "is_member_call": false, "source_file": "tests/test_extract_article_contents.py", "source_location": "L252", "receiver": null}, {"caller_nid": "$graphify-root$_tests_test_extract_article_contents_test_process_batch_with_limit", "callee": "object", "is_member_call": true, "source_file": "tests/test_extract_article_contents.py", "source_location": "L275", "receiver": "patch"}, {"caller_nid": "$graphify-root$_tests_test_extract_article_contents_test_process_batch_with_limit", "callee": "ArticleCrawler", "is_member_call": false, "indirect": true, "context": "argument", "source_file": "tests/test_extract_article_contents.py", "source_location": "L275"}, {"caller_nid": "$graphify-root$_tests_test_extract_article_contents_test_process_batch_with_limit", "callee": "SAMPLE_HTML", "is_member_call": false, "indirect": true, "context": "collection", "source_file": "tests/test_extract_article_contents.py", "source_location": "L275"}, {"caller_nid": "$graphify-root$_tests_test_extract_article_contents_test_process_batch_with_limit", "callee": "object", "is_member_call": true, "source_file": "tests/test_extract_article_contents.py", "source_location": "L276", "receiver": "patch"}, {"caller_nid": "$graphify-root$_tests_test_extract_article_contents_test_process_batch_with_limit", "callee": "ArticleCrawler", "is_member_call": false, "indirect": true, "context": "argument", "source_file": "tests/test_extract_article_contents.py", "source_location": "L276"}, {"caller_nid": "$graphify-root$_tests_test_extract_article_contents_test_process_batch_with_limit", "callee": "object", "is_member_call": true, "source_file": "tests/test_extract_article_contents.py", "source_location": "L277", "receiver": "patch"}, {"caller_nid": "$graphify-root$_tests_test_extract_article_contents_test_process_batch_with_limit", "callee": "ArticleCrawler", "is_member_call": false, "indirect": true, "context": "argument", "source_file": "tests/test_extract_article_contents.py", "source_location": "L277"}, {"caller_nid": "$graphify-root$_tests_test_extract_article_contents_test_process_batch_with_limit", "callee": "process_batch", "is_member_call": false, "source_file": "tests/test_extract_article_contents.py", "source_location": "L279", "receiver": null}, {"caller_nid": "$graphify-root$_tests_test_extract_article_contents_test_process_batch_with_limit", "callee": "exists", "is_member_call": true, "source_file": "tests/test_extract_article_contents.py", "source_location": "L288", "receiver": "out_file"}, {"caller_nid": "$graphify-root$_tests_test_extract_article_contents_test_cli_main_success", "callee": "object", "is_member_call": true, "source_file": "tests/test_extract_article_contents.py", "source_location": "L295", "receiver": "patch"}, {"caller_nid": "$graphify-root$_tests_test_extract_article_contents_test_cli_main_success", "callee": "ArticleCrawler", "is_member_call": false, "indirect": true, "context": "argument", "source_file": "tests/test_extract_article_contents.py", "source_location": "L295"}, {"caller_nid": "$graphify-root$_tests_test_extract_article_contents_test_cli_main_success", "callee": "SAMPLE_HTML", "is_member_call": false, "indirect": true, "context": "collection", "source_file": "tests/test_extract_article_contents.py", "source_location": "L295"}, {"caller_nid": "$graphify-root$_tests_test_extract_article_contents_test_cli_main_success", "callee": "object", "is_member_call": true, "source_file": "tests/test_extract_article_contents.py", "source_location": "L296", "receiver": "patch"}, {"caller_nid": "$graphify-root$_tests_test_extract_article_contents_test_cli_main_success", "callee": "ArticleCrawler", "is_member_call": false, "indirect": true, "context": "argument", "source_file": "tests/test_extract_article_contents.py", "source_location": "L296"}, {"caller_nid": "$graphify-root$_tests_test_extract_article_contents_test_cli_main_success", "callee": "object", "is_member_call": true, "source_file": "tests/test_extract_article_contents.py", "source_location": "L297", "receiver": "patch"}, {"caller_nid": "$graphify-root$_tests_test_extract_article_contents_test_cli_main_success", "callee": "ArticleCrawler", "is_member_call": false, "indirect": true, "context": "argument", "source_file": "tests/test_extract_article_contents.py", "source_location": "L297"}, {"caller_nid": "$graphify-root$_tests_test_extract_article_contents_test_cli_main_success", "callee": "main", "is_member_call": false, "source_file": "tests/test_extract_article_contents.py", "source_location": "L299", "receiver": null}, {"caller_nid": "$graphify-root$_tests_test_extract_article_contents_test_cli_main_success", "callee": "exists", "is_member_call": true, "source_file": "tests/test_extract_article_contents.py", "source_location": "L302", "receiver": "out_file"}, {"caller_nid": "$graphify-root$_tests_test_extract_article_contents_test_cli_main_missing_input_file", "callee": "main", "is_member_call": false, "source_file": "tests/test_extract_article_contents.py", "source_location": "L307", "receiver": null}, {"caller_nid": "$graphify-root$_tests_test_extract_article_contents_test_e2e_live_article_extraction", "callee": "exists", "is_member_call": true, "source_file": "tests/test_extract_article_contents.py", "source_location": "L319", "receiver": "live_input_file"}, {"caller_nid": "$graphify-root$_tests_test_extract_article_contents_test_e2e_live_article_extraction", "callee": "skip", "is_member_call": true, "source_file": "tests/test_extract_article_contents.py", "source_location": "L320", "receiver": "pytest"}, {"caller_nid": "$graphify-root$_tests_test_extract_article_contents_test_e2e_live_article_extraction", "callee": "process_batch", "is_member_call": false, "source_file": "tests/test_extract_article_contents.py", "source_location": "L325", "receiver": null}, {"caller_nid": "$graphify-root$_tests_test_extract_article_contents_test_e2e_live_article_extraction", "callee": "startswith", "is_member_call": true, "source_file": "tests/test_extract_article_contents.py", "source_location": "L339", "receiver": null}, {"caller_nid": "$graphify-root$_tests_test_extract_article_contents_test_e2e_live_article_extraction", "callee": "list", "is_member_call": false, "indirect": true, "context": "argument", "source_file": "tests/test_extract_article_contents.py", "source_location": "L347"}, {"caller_nid": "$graphify-root$_tests_test_extract_article_contents_test_e2e_live_article_extraction", "callee": "exists", "is_member_call": true, "source_file": "tests/test_extract_article_contents.py", "source_location": "L354", "receiver": "out_file"}, {"caller_nid": "$graphify-root$_tests_test_extract_article_contents_test_e2e_live_article_extraction", "callee": "loads", "is_member_call": true, "source_file": "tests/test_extract_article_contents.py", "source_location": "L355", "receiver": "json"}, {"caller_nid": "$graphify-root$_tests_test_extract_article_contents_test_e2e_live_article_extraction", "callee": "read_text", "is_member_call": true, "source_file": "tests/test_extract_article_contents.py", "source_location": "L355", "receiver": "out_file"}, {"caller_nid": "$graphify-root$_tests_test_extract_article_contents_test_e2e_cli_live_execution", "callee": "exists", "is_member_call": true, "source_file": "tests/test_extract_article_contents.py", "source_location": "L363", "receiver": "live_input_file"}, {"caller_nid": "$graphify-root$_tests_test_extract_article_contents_test_e2e_cli_live_execution", "callee": "skip", "is_member_call": true, "source_file": "tests/test_extract_article_contents.py", "source_location": "L364", "receiver": "pytest"}, {"caller_nid": "$graphify-root$_tests_test_extract_article_contents_test_e2e_cli_live_execution", "callee": "main", "is_member_call": false, "source_file": "tests/test_extract_article_contents.py", "source_location": "L367", "receiver": null}, {"caller_nid": "$graphify-root$_tests_test_extract_article_contents_test_e2e_cli_live_execution", "callee": "exists", "is_member_call": true, "source_file": "tests/test_extract_article_contents.py", "source_location": "L370", "receiver": "out_file"}, {"caller_nid": "$graphify-root$_tests_test_extract_article_contents_test_e2e_cli_live_execution", "callee": "loads", "is_member_call": true, "source_file": "tests/test_extract_article_contents.py", "source_location": "L371", "receiver": "json"}, {"caller_nid": "$graphify-root$_tests_test_extract_article_contents_test_e2e_cli_live_execution", "callee": "read_text", "is_member_call": true, "source_file": "tests/test_extract_article_contents.py", "source_location": "L371", "receiver": "out_file"}]}