nav submodule
This commit is contained in:
52
docforge/nav/resolver.pyi
Normal file
52
docforge/nav/resolver.pyi
Normal file
@@ -0,0 +1,52 @@
|
||||
from pathlib import Path
|
||||
from typing import Dict, List, Iterable, Optional
|
||||
|
||||
from docforge.nav.spec import NavSpec
|
||||
|
||||
|
||||
class ResolvedNav:
|
||||
"""
|
||||
Fully-resolved navigation tree.
|
||||
|
||||
- `home` is a semantic, docs-root–relative path (string)
|
||||
- `groups` contain resolved filesystem Paths
|
||||
- Order is preserved
|
||||
"""
|
||||
|
||||
home: Optional[str]
|
||||
groups: Dict[str, List[Path]]
|
||||
|
||||
def __init__(
|
||||
self,
|
||||
home: str | None,
|
||||
groups: Dict[str, List[Path]],
|
||||
docs_root: Path | None = None,
|
||||
) -> None:
|
||||
self._docs_root = None
|
||||
...
|
||||
|
||||
def all_files(self) -> Iterable[Path]:
|
||||
"""
|
||||
Return all resolved documentation files in nav order.
|
||||
|
||||
Includes the home file (resolved against docs_root)
|
||||
followed by all group files.
|
||||
"""
|
||||
...
|
||||
|
||||
|
||||
def resolve_nav(
|
||||
spec: NavSpec,
|
||||
docs_root: Path,
|
||||
) -> ResolvedNav:
|
||||
"""
|
||||
Resolve a NavSpec against a docs directory.
|
||||
|
||||
Expands wildcards, validates existence, and
|
||||
resolves filesystem paths relative to docs_root.
|
||||
|
||||
Raises:
|
||||
FileNotFoundError: if any referenced file is missing
|
||||
ValueError: if resolution fails
|
||||
"""
|
||||
...
|
||||
Reference in New Issue
Block a user