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

1# SPDX-License-Identifier: GPL-3.0-or-later 

2"""Generate deterministic development charts for all timeline presets. 

3 

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. 

7 

8Author: 

9 Sven Schlender 

10Date: 

11 2026-09-13 

12""" 

13 

14import argparse 

15import sys 

16from pathlib import Path 

17 

18from cikit.errors import CiToolsError 

19 

20from .preview import render_preview_charts 

21 

22 

23def parse_args() -> argparse.Namespace: # pragma: no cover 

24 """Build and parse command line arguments for development rendering. 

25 

26 Returns: 

27 Parsed command line arguments. 

28 """ 

29 parser = argparse.ArgumentParser(description="Generate four-series previews for all cikit " 

30 "timeline presets.") 

31 

32 parser.add_argument("--output-dir", type=Path, default=Path("timeline_test"), 

33 help="Directory receiving generated SVG files.") 

34 

35 return parser.parse_args() 

36 

37 

38def main_unsafe(args: argparse.Namespace): 

39 """Generate one development chart for every timeline preset. 

40 

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) 

46 

47 

48# pylint: disable=duplicate-code 

49def main(): 

50 """Run the timeline development command line interface.""" 

51 args = parse_args() 

52 

53 try: 

54 main_unsafe(args) 

55 except CiToolsError as exp: 

56 print(f"Error: {exp}", file=sys.stderr) 

57 sys.exit(1) 

58 

59 

60if __name__ == "__main__": 

61 main() 

62# pylint: enable=duplicate-code