Check semantic extraction cache for a list of absolute file paths. Returns (cached_nodes, cached_edges, uncached_files). Uncached files need Claude extraction; cached files are merged directly.
(
files: list[str],
root: Path = Path("."),
)
| 63 | |
| 64 | |
| 65 | def check_semantic_cache( |
| 66 | files: list[str], |
| 67 | root: Path = Path("."), |
| 68 | ) -> tuple[list[dict], list[dict], list[str]]: |
| 69 | """Check semantic extraction cache for a list of absolute file paths. |
| 70 | |
| 71 | Returns (cached_nodes, cached_edges, uncached_files). |
| 72 | Uncached files need Claude extraction; cached files are merged directly. |
| 73 | """ |
| 74 | cached_nodes: list[dict] = [] |
| 75 | cached_edges: list[dict] = [] |
| 76 | uncached: list[str] = [] |
| 77 | |
| 78 | for fpath in files: |
| 79 | result = load_cached(Path(fpath), root) |
| 80 | if result is not None: |
| 81 | cached_nodes.extend(result.get("nodes", [])) |
| 82 | cached_edges.extend(result.get("edges", [])) |
| 83 | else: |
| 84 | uncached.append(fpath) |
| 85 | |
| 86 | return cached_nodes, cached_edges, uncached |
| 87 | |
| 88 | |
| 89 | def save_semantic_cache( |
nothing calls this directly
no test coverage detected