Spaces:
Runtime error
Runtime error
| #!/usr/bin/env python | |
| """Extract lesson metadata and notebook lists into a JSON file.""" | |
| import argparse | |
| import json | |
| import re | |
| from pathlib import Path | |
| import frontmatter | |
| NOTEBOOK_PATTERN = re.compile(r"^\d{2}_.*\.py$") | |
| def extract_lessons(root: Path) -> dict: | |
| lessons = {} | |
| for readme_file in sorted(root.glob("*/README.md")): | |
| lesson_dir = readme_file.parent | |
| post = frontmatter.load(readme_file) | |
| notebooks = sorted( | |
| p.name | |
| for p in lesson_dir.glob("*.py") | |
| if NOTEBOOK_PATTERN.match(p.name) | |
| ) | |
| lessons[lesson_dir.name] = { | |
| **post.metadata, | |
| "notebooks": notebooks, | |
| } | |
| return lessons | |
| def main(): | |
| parser = argparse.ArgumentParser(description="Extract lesson metadata to JSON") | |
| parser.add_argument("--root", required=True, help="Project root directory") | |
| parser.add_argument("--data", required=True, help="Output JSON file") | |
| args = parser.parse_args() | |
| root = Path(args.root) | |
| data = Path(args.data) | |
| data.parent.mkdir(parents=True, exist_ok=True) | |
| lessons = extract_lessons(root) | |
| data.write_text(json.dumps(lessons, indent=2)) | |
| if __name__ == "__main__": | |
| main() | |