Course management system
Project description
JTL Syllabus
The syl CLI compiles structured YAML syllabus files from a directory tree
of lesson files (Python, Jupyter notebooks, Markdown), in support of
The LEAGUE of Amazing Programmers coding
curriculum.
Installation
pip install jtl-syllabus
This installs the syl command.
Usage
All commands operate on a lesson directory (defaults to ./lessons).
Use -l to specify a different path.
Compile a syllabus
syl compile
syl compile -l path/to/lessons
syl compile -f output.yaml # custom output path
syl compile -ngm -i100 # regroup, renumber (increment 100), metafy, then compile
Check directory structure
syl check
Validates that the lesson directory follows the expected structure: ranked module directories at the top level, no loose files.
Renumber lessons
syl renumber # renumber with increment 1
syl renumber -i 100 # renumber with increment 100
syl renumber -d # dry run (show changes without renaming)
Regroup lessons
syl regroup # group files with same basename into directories
syl regroup -d # dry run
Groups files that share the same rank and base name (e.g., 20_Loops.py
and 20_Loops.md) into a single lesson directory.
Add metadata
syl meta # add UIDs and names to all lesson files
syl meta -d # dry run
Ensures every module, lesson set, and lesson has a uid and name in
its metadata (README frontmatter, Python comments, or notebook metadata).
Global options
-v, -vv Increase verbosity (info / debug)
-e Raise exceptions on errors
-d PATH Set working directory
-l PATH Set lesson directory (default: ./lessons)
Lesson directory structure
lessons/
README.md # Course-level metadata
10_Module_Name/ # Module (ranked directory)
README.md # Module metadata
10_Lesson.py # Lesson file
20_Lesson.ipynb # Lesson file
30_Grouped_Lesson/ # Lesson directory (multiple files)
Grouped_Lesson.py
README.md
01_Lesson_Set/ # Lesson set (nested group)
10_Sub_Lesson.py
20_Sub_Lesson.ipynb
20_Another_Module/
...
See docs/course_structure.md for the full hierarchy and docs/metadata.md for metadata formats.
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file jtl_syllabus-1.20260312.4.tar.gz.
File metadata
- Download URL: jtl_syllabus-1.20260312.4.tar.gz
- Upload date:
- Size: 446.2 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: uv/0.8.14
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
68e0ee03330d5e18769653bf17bab4055e99a48de9c60ca81f7fb2312b1fa744
|
|
| MD5 |
a619ba39dfee67df6522adf691c356bf
|
|
| BLAKE2b-256 |
b8a27c83ad7511c9848297c766ae118ed3464a816709ffd8c4231a5792ad3d02
|
File details
Details for the file jtl_syllabus-1.20260312.4-py3-none-any.whl.
File metadata
- Download URL: jtl_syllabus-1.20260312.4-py3-none-any.whl
- Upload date:
- Size: 14.2 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: uv/0.8.14
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
850a319b3bc70133d515460432aa4809da8ca67e29cd1864500ff11ca3ae06f3
|
|
| MD5 |
5c646d55387fa55ece86bf78bc84de13
|
|
| BLAKE2b-256 |
04e28ac7c0470d9c1ba74c054c2880b76c1c1a8f220fd843723d96d5cc49663b
|