Skip to content
This repository was archived by the owner on Jul 29, 2026. It is now read-only.
Merged
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
26 changes: 18 additions & 8 deletions .agents/skills/msdmd/parsers/universal.py
Original file line number Diff line number Diff line change
Expand Up @@ -12,7 +12,7 @@

parse_text(text, block_name, marker="#") -> list[dict]
parse_file(path, block_name) -> list[dict]
walk_tree(root, block_name, *, skip=None) -> tuple[annotated, untested]
walk_tree(root, block_name, *, skip=None, extensions=None) -> tuple[annotated, untested]

This module has zero non-stdlib dependencies and is safe to copy
verbatim into any project that wants msdmd support.
Expand Down Expand Up @@ -118,15 +118,25 @@ def walk_tree(
if extensions is not None
else set(_MARKERS.keys())
)

def iter_source_files(path: Path) -> Iterable[Path]:
if path.name in skip_set:
return
try:
children = sorted(path.iterdir())
except OSError:
return
for child in children:
if child.is_dir():
if child.name in skip_set:
continue
yield from iter_source_files(child)
elif child.is_file() and child.suffix.lower() in ext_set:
yield child

annotated: list[tuple[Path, list[dict]]] = []
untested: list[Path] = []
for path in sorted(root.rglob("*")):
if not path.is_file():
continue
if any(part in skip_set for part in path.parts):
continue
if path.suffix.lower() not in ext_set:
continue
for path in iter_source_files(root):
entries = parse_file(path, block_name)
if entries:
annotated.append((path, entries))
Expand Down
Loading