Coverage for /builds/svesch/cikit/src/cikit/timeline/__main__.py: 0%
17 statements
« prev ^ index » next coverage.py v7.14.1, created at 2026-10-09 14:17 +0000
« prev ^ index » next coverage.py v7.14.1, created at 2026-10-09 14:17 +0000
1# SPDX-License-Identifier: GPL-3.0-or-later
2"""Generate deterministic development charts for all timeline presets.
4The standalone command renders one four-series chart for every available
5preset without requiring a cikit run environment or remote timeline data. It
6is intended for visual inspection while developing styles and presets.
8Author:
9 Sven Schlender
10Date:
11 2026-09-13
12"""
14import argparse
15import sys
16from pathlib import Path
18from cikit.errors import CiToolsError
20from .preview import render_preview_charts
23def parse_args() -> argparse.Namespace: # pragma: no cover
24 """Build and parse command line arguments for development rendering.
26 Returns:
27 Parsed command line arguments.
28 """
29 parser = argparse.ArgumentParser(description="Generate four-series previews for all cikit "
30 "timeline presets.")
32 parser.add_argument("--output-dir", type=Path, default=Path("timeline_test"),
33 help="Directory receiving generated SVG files.")
35 return parser.parse_args()
38def main_unsafe(args: argparse.Namespace):
39 """Generate one development chart for every timeline preset.
41 Args:
42 args: Parsed command line arguments.
43 """
44 for output_file in render_preview_charts(args.output_dir).values():
45 print(output_file)
48# pylint: disable=duplicate-code
49def main():
50 """Run the timeline development command line interface."""
51 args = parse_args()
53 try:
54 main_unsafe(args)
55 except CiToolsError as exp:
56 print(f"Error: {exp}", file=sys.stderr)
57 sys.exit(1)
60if __name__ == "__main__":
61 main()
62# pylint: enable=duplicate-code