← ClaudeAtlas

lib-yfinancelisted

The default free Yahoo Finance downloader, whose yf.download() now returns pre-adjusted OHLC with no Adj Close column at all. TRIGGER - import yfinance as yf, pip install yfinance, yf.download, yf.Ticker, Ticker.history, auto_adjust, multi_level_index, ignore_tz, repair=True, get_shares_full, yf.Search, yf.Lookup, yf.WebSocket, yfinance-cache; errors "KeyError: 'Adj Close'", YFRateLimitError, "Too Many Requests. Rate limited", YFTickerMissingError, "possibly delisted", curl_cffi pin conflicts, one ticker returning MultiIndex columns. Memory is stale here: auto_adjust flipped at 0.2.51 and hardened at 1.0, intraday timezones changed at 1.4.0, the proxy= constructor kwarg is gone, and 1.7.0 shipped 2026-08-26. SKIP for choosing between data vendors (market-data-sourcing) and for A-share data (china-ashare-data). SKIP when the question is WHICH library to choose, or names no library at all - both belong to the domain skill.
howard-lynn-ye/fin-skills · ★ 1 · AI & Automation · score 77
Install: claude install-skill howard-lynn-ye/fin-skills
# yfinance The default free source, the best-maintained one, and the one whose defaults have changed most. Roughly **40% of its changelog is "fix Yahoo changed X"** — treat schema drift as normal operation. | | | |---|---| | pip / import | `pip install yfinance` · `import yfinance as yf` | | Version | **1.7.0 (2026-08-26)** · 150 releases · cadence 1.4.0 (05-23) → 1.7.0 (08-26) | | Licence | **Apache-2.0** (verified via PyPI `info.license`, classifier, and `LICENSE.txt`) | | Status | ✅ 25,158★ `ranaroussi/yfinance`, pushed 2026-08-27. Classifier still says **Beta** | ## The trap that costs you money 🚨 **`auto_adjust=True` is now the hard default in `yf.download()`, and there is no `Adj Close` column.** OHLC come back already adjusted; `df['Adj Close']` raises `KeyError` on ≥1.0. Code written before 2025 does not error — **it returns different numbers.** | yfinance | `yf.download()` default | Released | |---|---|---| | ≤ 0.2.50 | `auto_adjust=False` | 2024-11-19 | | **0.2.51** | **`auto_adjust=True`** ← the flip | **2024-12-19** | | 0.2.53 – 0.2.66 | `auto_adjust=None` sentinel (warns, behaves as True) | 2025-02-15 → 2025-09-17 | | **1.0 → 1.7.0** | **`auto_adjust=True`** (hard, warning removed) | 2025-12-22 → now | `Ticker.history(auto_adjust=True)` has defaulted True **since 0.1.26** — only `download()` differed. Always pass `auto_adjust` explicitly so the number does not depend on the installed version. ## Signature traps in `download()` - **`end` is EXCLUSIVE.** V