- 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
1 line
6.4 KiB
JSON
1 line
6.4 KiB
JSON
{"nodes": [{"id": "$graphify-root$_src_adapters_base_py", "label": "base.py", "file_type": "code", "source_file": "src/adapters/base.py", "source_location": "L1"}, {"id": "$graphify-root$_src_adapters_base_basenlpadapter", "label": "BaseNLPAdapter", "file_type": "code", "source_file": "src/adapters/base.py", "source_location": "L10", "_callable": true, "_callable_class": true}, {"id": "abc", "label": "ABC", "file_type": "code", "source_file": "", "source_location": "", "origin_file": "$graphify-root$/src/adapters/base.py"}, {"id": "$graphify-root$_src_adapters_base_basenlpadapter_is_available", "label": ".is_available()", "file_type": "code", "source_file": "src/adapters/base.py", "source_location": "L14", "_callable": true}, {"id": "$graphify-root$_src_adapters_base_basenlpadapter_evaluate_similarity", "label": ".evaluate_similarity()", "file_type": "code", "source_file": "src/adapters/base.py", "source_location": "L18", "_callable": true}, {"id": "$graphify-root$_src_adapters_base_basenlpadapter_disambiguate", "label": ".disambiguate()", "file_type": "code", "source_file": "src/adapters/base.py", "source_location": "L22", "_callable": true}, {"id": "ecpsnapshot", "label": "ECPSnapshot", "file_type": "code", "source_file": "", "source_location": "", "origin_file": "$graphify-root$/src/adapters/base.py"}, {"id": "classificationresult", "label": "ClassificationResult", "file_type": "code", "source_file": "", "source_location": "", "origin_file": "$graphify-root$/src/adapters/base.py"}, {"id": "$graphify-root$_src_adapters_base_rationale_1", "label": "Base abstract adapter interface for optional Tier 2 / Tier 3 NLP enhancers.", "file_type": "rationale", "source_file": "src/adapters/base.py", "source_location": "L1"}, {"id": "$graphify-root$_src_adapters_base_rationale_11", "label": "Abstract interface for pluggable NLP classification adapters.", "file_type": "rationale", "source_file": "src/adapters/base.py", "source_location": "L11"}, {"id": "$graphify-root$_src_adapters_base_rationale_15", "label": "Return True if the underlying provider or model is installed and configured.", "file_type": "rationale", "source_file": "src/adapters/base.py", "source_location": "L15"}, {"id": "$graphify-root$_src_adapters_base_rationale_19", "label": "Compute semantic similarity score between text and a set of candidate terms.", "file_type": "rationale", "source_file": "src/adapters/base.py", "source_location": "L19"}, {"id": "$graphify-root$_src_adapters_base_rationale_28", "label": "Optionally refine an ambiguous classification result.", "file_type": "rationale", "source_file": "src/adapters/base.py", "source_location": "L28"}], "edges": [{"source": "$graphify-root$_src_adapters_base_py", "target": "abc", "relation": "imports_from", "context": "import", "confidence": "EXTRACTED", "source_file": "src/adapters/base.py", "source_location": "L5", "weight": 1.0}, {"source": "$graphify-root$_src_adapters_base_py", "target": "src_models", "relation": "imports_from", "context": "import", "confidence": "EXTRACTED", "source_file": "src/adapters/base.py", "source_location": "L7", "weight": 1.0}, {"source": "$graphify-root$_src_adapters_base_py", "target": "$graphify-root$_src_adapters_base_basenlpadapter", "relation": "contains", "confidence": "EXTRACTED", "source_file": "src/adapters/base.py", "source_location": "L10", "weight": 1.0}, {"source": "$graphify-root$_src_adapters_base_basenlpadapter", "target": "abc", "relation": "inherits", "confidence": "EXTRACTED", "source_file": "src/adapters/base.py", "source_location": "L10", "weight": 1.0}, {"source": "$graphify-root$_src_adapters_base_basenlpadapter", "target": "$graphify-root$_src_adapters_base_basenlpadapter_is_available", "relation": "method", "confidence": "EXTRACTED", "source_file": "src/adapters/base.py", "source_location": "L14", "weight": 1.0}, {"source": "$graphify-root$_src_adapters_base_basenlpadapter", "target": "$graphify-root$_src_adapters_base_basenlpadapter_evaluate_similarity", "relation": "method", "confidence": "EXTRACTED", "source_file": "src/adapters/base.py", "source_location": "L18", "weight": 1.0}, {"source": "$graphify-root$_src_adapters_base_basenlpadapter", "target": "$graphify-root$_src_adapters_base_basenlpadapter_disambiguate", "relation": "method", "confidence": "EXTRACTED", "source_file": "src/adapters/base.py", "source_location": "L22", "weight": 1.0}, {"source": "$graphify-root$_src_adapters_base_basenlpadapter_disambiguate", "target": "ecpsnapshot", "relation": "references", "context": "parameter_type", "confidence": "EXTRACTED", "source_file": "src/adapters/base.py", "source_location": "L22", "weight": 1.0}, {"source": "$graphify-root$_src_adapters_base_basenlpadapter_disambiguate", "target": "classificationresult", "relation": "references", "context": "parameter_type", "confidence": "EXTRACTED", "source_file": "src/adapters/base.py", "source_location": "L22", "weight": 1.0}, {"source": "$graphify-root$_src_adapters_base_basenlpadapter_disambiguate", "target": "classificationresult", "relation": "references", "context": "return_type", "confidence": "EXTRACTED", "source_file": "src/adapters/base.py", "source_location": "L22", "weight": 1.0}, {"source": "$graphify-root$_src_adapters_base_rationale_1", "target": "$graphify-root$_src_adapters_base_py", "relation": "rationale_for", "confidence": "EXTRACTED", "source_file": "src/adapters/base.py", "source_location": "L1", "weight": 1.0}, {"source": "$graphify-root$_src_adapters_base_rationale_11", "target": "$graphify-root$_src_adapters_base_basenlpadapter", "relation": "rationale_for", "confidence": "EXTRACTED", "source_file": "src/adapters/base.py", "source_location": "L11", "weight": 1.0}, {"source": "$graphify-root$_src_adapters_base_rationale_15", "target": "$graphify-root$_src_adapters_base_basenlpadapter_is_available", "relation": "rationale_for", "confidence": "EXTRACTED", "source_file": "src/adapters/base.py", "source_location": "L15", "weight": 1.0}, {"source": "$graphify-root$_src_adapters_base_rationale_19", "target": "$graphify-root$_src_adapters_base_basenlpadapter_evaluate_similarity", "relation": "rationale_for", "confidence": "EXTRACTED", "source_file": "src/adapters/base.py", "source_location": "L19", "weight": 1.0}, {"source": "$graphify-root$_src_adapters_base_rationale_28", "target": "$graphify-root$_src_adapters_base_basenlpadapter_disambiguate", "relation": "rationale_for", "confidence": "EXTRACTED", "source_file": "src/adapters/base.py", "source_location": "L28", "weight": 1.0}], "raw_calls": []} |