Coverage for src/jointview/__init__.py: 100%

5 statements  

« prev     ^ index     » next       coverage.py v7.15.4, created at 2026-10-01 04:48 +0000

1"""Compare two price or NAV series of a Polars DataFrame side by side.""" 

2 

3from jointview.columns import ( 

4 PERIOD, 

5 WINDOW_ALL, 

6 WINDOWS, 

7 aligned, 

8 date_column, 

9 default_pair, 

10 series_columns, 

11 windowed, 

12) 

13from jointview.data import demo_frame, load_frame 

14from jointview.plot import drawn_points, line_chart, line_frame 

15from jointview.stats import drawdown, metrics, returns, summary, summary_markdown 

16 

17__all__ = [ 

18 # The name `aligned` writes the x-axis under and the statistics read it back out 

19 # of. Exported because `aligned` is: a caller who has the frame but not the name 

20 # has to spell "period" by hand, which is the literal `columns` exists to hold. 

21 "PERIOD", 

22 # The windows the app offers over the plot, and the key that means "no cut". A caller 

23 # cutting a frame the way the app does needs the same names the picker shows, and the 

24 # one that stands for the whole sample is worth not spelling twice. 

25 "WINDOWS", 

26 "WINDOW_ALL", 

27 "aligned", 

28 "date_column", 

29 "default_pair", 

30 "demo_frame", 

31 "drawdown", 

32 # What the chart actually draws, which past MAX_POINTS is not what it was given. 

33 # Exported for the same reason PERIOD is: the caption beside the plot has to say 

34 # which of the two numbers it is quoting, and so does anyone else drawing this frame. 

35 "drawn_points", 

36 "line_chart", 

37 "line_frame", 

38 "load_frame", 

39 "metrics", 

40 "returns", 

41 "series_columns", 

42 "summary", 

43 "summary_markdown", 

44 "windowed", 

45]