Xil Init
src.xil_pipeline.xil_init
Scaffold a new xil-pipeline project workspace.
Creates the directory structure, project.json, speakers.json, and a type-specific sample production script so a first-time user can immediately run the pipeline stages in dry-run mode.
Usage:
xil-init # scaffold in current directory
xil-init my-show # scaffold in ./my-show/
xil-init --show "Night Owls" # custom show name
xil-init --type podcast # podcast (default)
xil-init --type audiobook # audiobook (V01C01 tags)
xil-init --type drama # drama short / audio drama
xil-init --type special # special / one-off
SAMPLE_SPEAKERS
module-attribute
SAMPLE_SPEAKERS: list[dict] = [{'display': 'HOST', 'key': 'host'}, {'display': 'CO-HOST', 'key': 'co_host'}, {'display': 'CALLER', 'key': 'caller'}, {'display': 'NARRATOR', 'key': 'narrator'}]
SPEAKERS_BY_TYPE
module-attribute
SPEAKERS_BY_TYPE: dict[str, list[dict]] = {'podcast': SAMPLE_SPEAKERS, 'audiobook': [{'display': 'NARRATOR', 'key': 'narrator'}], 'drama': [{'display': 'NARRATOR', 'key': 'narrator'}, {'display': 'ALICE', 'key': 'alice'}, {'display': 'BOB', 'key': 'bob'}, {'display': 'CHARLIE', 'key': 'charlie'}, {'display': 'DEZ', 'key': 'dez'}], 'special': [{'display': 'HOST', 'key': 'host'}, {'display': 'NARRATOR', 'key': 'narrator'}]}
SCRIPTS_BY_TYPE
module-attribute
SCRIPTS_BY_TYPE: dict[str, str] = {'podcast': _PODCAST_SCRIPT, 'audiobook': _AUDIOBOOK_SCRIPT, 'drama': _DRAMA_SCRIPT, 'special': _SPECIAL_SCRIPT}
SAMPLE_TAG_BY_TYPE
module-attribute
SAMPLE_TAG_BY_TYPE: dict[str, str] = {'podcast': 'S01E01', 'audiobook': 'V01C01', 'drama': 'S01E01', 'special': 'SP001'}
GETTING_STARTED_BY_TYPE
module-attribute
GETTING_STARTED_BY_TYPE: dict[str, str] = {'podcast': 'S01E01', 'audiobook': 'V01C01', 'drama': 'S01E01', 'special': 'SP001'}
scaffold
scaffold(directory: str, show_name: str, content_type: str = 'podcast', season: int | None = None, season_title: str | None = None) -> None
Create a new xil-pipeline workspace in directory.
Parameters:
-
directory(str) –Target directory (created if it doesn't exist).
-
show_name(str) –Human-readable show name for project.json.
-
content_type(str, default:'podcast') –Content type —
"podcast","audiobook","drama", or"special". -
season(int | None, default:None) –Optional season number for project.json and the sample script header.
-
season_title(str | None, default:None) –Optional season/arc title for project.json.
Source code in src/xil_pipeline/xil_init.py
print_getting_started
Print a getting-started guide after scaffolding.
Source code in src/xil_pipeline/xil_init.py
get_parser
Source code in src/xil_pipeline/xil_init.py
main
CLI entry point for project scaffolding.