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

10 statements  

« prev     ^ index     » next       coverage.py v7.13.5, created at 2026-05-07 15:52 +0000

1"""jQuantStats: Portfolio analytics for quants. 

2 

3Two entry points 

4---------------- 

5**Entry point 1 — prices + positions (recommended for active portfolios):** 

6 

7Use `Portfolio` when you have price series and 

8position sizes. Portfolio compiles the NAV curve from raw inputs and exposes 

9the full analytics suite via ``.stats``, ``.plots``, and ``.report``. 

10 

11```python 

12from jquantstats import Portfolio 

13import polars as pl 

14 

15pf = Portfolio.from_cash_position( 

16 prices=prices_df, 

17 cash_position=positions_df, 

18 aum=1_000_000, 

19) 

20pf.stats.sharpe() 

21pf.plots.snapshot() 

22``` 

23 

24**Entry point 2 — returns series (for arbitrary return streams):** 

25 

26Use `Data` when you already have a returns series 

27(e.g. downloaded from a data vendor) and want benchmark comparison or 

28factor analytics. 

29 

30```python 

31from jquantstats import Data 

32import polars as pl 

33 

34data = Data.from_returns(returns=returns_df, benchmark=bench_df) 

35data.stats.sharpe() 

36data.plots.snapshot(title="Performance") 

37``` 

38 

39The two APIs are layered: ``portfolio.data`` returns a `Data` 

40object so you can always drop into the returns-series API from a Portfolio. 

41 

42For more information, visit the `jQuantStats Documentation <https://jebel-quant.github.io/jquantstats/book>`_. 

43""" 

44 

45import importlib.metadata 

46 

47from ._cost_model import CostModel as CostModel 

48from ._types import NativeFrame as NativeFrame 

49from ._types import NativeFrameOrScalar as NativeFrameOrScalar 

50from .data import Data as Data 

51from .data import interpolate as interpolate 

52from .portfolio import Portfolio as Portfolio 

53from .result import Result as Result 

54 

55__version__ = importlib.metadata.version("jquantstats") 

56 

57__all__ = [ 

58 "CostModel", 

59 "Data", 

60 "NativeFrame", 

61 "NativeFrameOrScalar", 

62 "Portfolio", 

63 "Result", 

64 "interpolate", 

65]