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, flat_layout: bool = True) -> 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.
-
flat_layout(bool, default:True) –When
True(default), use the multi-show flat layout:project.jsonis written toconfigs/{slug}/and per-show subdirectories are created inside the shared category dirs (daw/{slug}/,stems/{slug}/, etc.). Set toFalsefor a legacy single-show workspace where all dirs live at the root.
Source code in src/xil_pipeline/xil_init.py
416 417 418 419 420 421 422 423 424 425 426 427 428 429 430 431 432 433 434 435 436 437 438 439 440 441 442 443 444 445 446 447 448 449 450 451 452 453 454 455 456 457 458 459 460 461 462 463 464 465 466 467 468 469 470 471 472 473 474 475 476 477 478 479 480 481 482 483 484 485 486 487 488 489 490 491 492 493 494 495 496 497 498 499 500 501 502 503 504 505 506 507 508 509 | |
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.