markowitz.data.providers¶
markowitz.data.providers
¶
Price providers.
The :class:PriceProvider protocol defines the minimal interface every
price source must implement. :class:YFinanceProvider is the default
implementation; :class:CachedProvider wraps any provider with the
on-disk Parquet cache; :class:FallbackProvider tries a list of
providers in order, falling back on rate-limit / unavailable errors.
CachedProvider(inner: PriceProvider, root: str | os.PathLike[str])
¶
FallbackProvider(providers: list[PriceProvider])
¶
Try each provider in order, advancing past rate-limit / unavailable.
Source code in src/markowitz/data/providers.py
PriceProvider
¶
Bases: Protocol
Protocol every price source must satisfy.
fetch(ticker: str, start: DateLike, end: DateLike, *, frequency: str = '1d') -> pd.DataFrame
¶
Return a frame indexed by tz-naive midnight, single close column.
YFinanceProvider()
¶
Provider backed by yfinance.download.