Files
yfinance-fork/CHANGELOG.rst
ValueRaider 125b12e058
Build and Deploy Sphinx Docs / build (push) Has been cancelled
zizmor / zizmor (push) Has been cancelled
Version 1.4.1
2026-05-28 21:01:28 +01:00

968 lines
22 KiB
ReStructuredText
Raw Permalink Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
Change Log
===========
1.4.1
-----
Fix
- Preserve Date/Datetime index name in yf.download() output #2832
1.4.0
-----
Features
- Add Auth class for Logging In #2761
- Allow region scoping for Sector and Industry (closes #2601) #2803
- Make curl_cffi optional with fallback to requests (closes #2692) #2802
Fixes
- Add 'repair' to get_history_metadata() #2777
- Adding try block for added protection to "meta" data #2778
- Fix: _dts_in_same_interval("1mo") ignored year #2780
- Fix TypeError when data['chart'] is None in history.py (#2670) #2794
- Fix dividends error on unlisted tickers #2797
- Fix #2784: validate Market region and stop returning misleading status #2801
- Make yf.download() reentrant by removing shared module globals #2805
- Allow lang and region scoping for Ticker (closes #2582) #2804
- Fix localized intraday download() always returning UTC #2825
Maintenance
- chore: fix typos (prividing -> providing, Reponse -> Response) #2779
- Fix Failing Tests #2792
- Simplify phantom-dividend repair branch + drive-by typo/lint fixes #2810
- Drop frozendict hard dependency in favour of an internal fallback #2821
1.3.0
-----
Features:
- Add Valuations Measures Table from Statistics Page #2742
- Add ETFQuery #2749
Fix type regresssion in Ticker.dividends
1.2.2
-----
Forgot to merge in #2695 and #2718 for release 1.2.1
Features:
- Add Currency to Analysis Data #2739
Fixes:
- Fix TypeError in history() when API returns None/malformed #2703
- Fix thread-safety in download() with mutex lock #2718
- Fix/fill devidends #2695
Maintenance:
- Refactor QueryBase to use typed Operator #2731
Docs:
- Fix/history period docstring #2709
- chore: minor doc fixes #2716
- docs: fix dev branch install command #2733
1.2.1
-----
Force curl_cffi>=0.15, because CVE #2743
Preserve currency in dividends #2695
Improve download() thread-safety #2718
1.2.0
-----
Features:
- update exchange maps for equities and mutual funds. #2685
Fixes:
- handle Pandas to_numpy() returning read-only #2697
1.1.0
-----
Features:
- New price repair: capital gains double-counting #2667
Fixes:
- Fix Saudi Arabia MIC Code #2665 @salsugair
- Add config to __all__ #2673 @kbluck
- Fix Python 3.9 compatibility regression in calendars.py #2674 @orionnelson
- Improve stock-split repair false-positives #2668
- Docs for capital-gains repair; Fix warnings in price-repair 27cb8aa
Already in main:
- Upgrade to Pandas 3.0 (Fixes #2679) #2683
1.0
---
yfinance been stable a long time now, time to grow up
No breaking changes, but some deprecation warnings.
Features:
- New config class yf.config / Improve exception handling #2524
- Feature: Earning Calendar (& other calendars) #2615 @ianmihura
- Add optional retry mechanism for transient network errors #2627 @axisrow
Fixes:
- 'Industry' column names #2613 @danchev
- Correct 30m interval alignment and filtering for NSE/early-open markets #2642 @biplavbarua
- Screener's sector industry mapping #2648 @ericpien
- Set period default to None in multi #2650 @evanreynolds9
- price-div-repair dropping NaN rows #2651
- Block curl_cffi version 0.14 #2653
0.2.66
------
Screener: add Swiss exchange and industry field
Support MIC #2579
Fixes:
- parse epoch dt #2573
- earnings_dates #2591
- merge intraday prices with divs/splits #2595
- exceptions missing detail #2599
0.2.65
------
Financials: ensure dtype float #2563
Prices: fix handling arguments start/end/period #2561 #2562
Price repair: when changing FX, update metadata #2558
0.2.64
------
Prices:
- handle dividends with FX, convert if repair=True #2549
- fix 'period' arg when start or end set #2550
earnings_dates: handle 'Event Type' properly #2555
0.2.63
------
Fix download(ISIN) # 2531
0.2.62
------
Fix prices 'period=max' sometimes failing # 2509
ISIN cache #2516
Proxy:
- fix false 'proxy deprecated' messages
- fix ISIN + proxy #2514
- replace print_once with warnings #2523
Error handling:
- detect rate-limit during crumb fetch #2491
- replace requests.HTTPError with curl_cffi
0.2.61
------
Fix ALL type hints in websocket #2493
0.2.60
------
Fix cookie reuse, and handle DNS blocking fc.yahoo.com #2483
Fixes for websocket:
- relax protobuf version #2485
- increase websockets version #2485
- fix type hints #2488
Fix predefined screen offset #2440
0.2.59
------
Fix the fix for rate-limit #2452
Feature: live price data websocket #2201
0.2.58
------
Fix false rate-limit problem #2430
Fix predefined screen size/count #2425
0.2.57
------
Fix proxy msg & pass-thru #2418
0.2.56
------
Features:
- Ticker lookups #2364
- Config #2391
Fixes:
- converting end epoch to localized dt #2378
- info IndexError #2382
- AttributeError: module 'requests.cookies' has no attribute 'update' #2388
- fix_Yahoo_returning_live_separate() #2389
0.2.55
------
Features
- TTM financials #2321
Fixes
- info IndexError #2354
- earnings dates TZ #2366
- price repair tweaks & fixes #2368
- history caching #2345
- backup fetch TZ from info #2369
Maintenance
- log user agent #2326
0.2.54
------
Hotfix user-agent #2277
0.2.53
------
Fixes:
- Fix: Failed to parse holders JSON data #2234
- Fix: Bad data in Holders #2244
- Stop CSRF-cookie-fetch fail killing yfinance #2249
- Fix Market Docs #2250
- Fix: Broken "See also" links in documentation #2253
- Fix: Interval check and error message formatting in multi.py #2256
Improve:
- Add pre- / post-stock prices (and other useful information) #2212
- Warn user when use download() without specifying auto_adjust #2230
- Refactor: Earnings Dates Switch to API Fetching #2247
- Improve prices div repair #2260
Maintenance:
- Add GitHub Actions workflow and fix failing tests #2233
0.2.52
------
Features:
- Improve Screener & docs #2207
- Add Market summary & status #2175
- Support custom period in Ticker.history() #2192
- raise YfRateLimitError if rate limited #2108
- add more options to Search #2191
Fixes:
- remove hardcoded keys in Analysis #2194
- handle Yahoo changed Search response #2202
Maintenance:
- add optional dependencies to requirements.txt #2199
0.2.51
------
Features:
- Screener tweaks #2168
- Search #2160
- get_news() expose count #2173
Fixes:
- earnings_dates #2169
0.2.50
------
Fixes:
- price repair #2111 #2139
- download() appearance 2109
- isin() error #2099
- growth_estimates #2127
Also new docs #2132
0.2.49
------
Fix prices-clean rarely discarding good data #2122
0.2.47 and 0.2.48
-----------------
Add yf.download(multi_level_index)
0.2.46
------
Fix regression in 0.2.45 #2094
0.2.45
------
Features:
- Screener #2066 @ericpien
Fixes
- Tickers keyerror #2068 @antoniouaa
- IndexError in some history() debug messages #2087
- improve dividend repair #2090
Maintenance
- fix unit tests contextual imports #2067
- fix typos #2072 @algonell
- add Pyright type checking #2059 @marco-carvalho
0.2.44
------
Features:
- fetch funds #2041
- fetch sector & industry #2058
Fixes:
- improve dividend repair #2062
0.2.43
------
Fix price-repair bug introduced in 0.2.42 #2036
0.2.42
------
Features:
- fetch SEC filings #2009
- fetch analysis #2023 @Fidasek009
- price repair extended to dividends & adjust #2031
Fixes:
- fix error on empty options chain #1995 @stevenbischoff
- use dict.get() to safely access key in Holders #2013 @ericpien
- fix datetime conversion with mixed timezones when ignore_tz is False #2016 @mreiche
- handle faulty response object when getting news. #2021 @ericpien
Maintenance:
- prices: improve exceptions and logging #2000
0.2.41
------
Improvements:
- add keys to financials #1965 #1985
- fetch Sustainability #1959
- improve price-repair-zeroes #1990
Fixes (prices):
- fetching when period='max' #1967
- metadata: Fix '1wk is invalid' & repeated calls #1970
- Pandas warnings #1955 #1981
- price repair syntax errors #1989
Maintenance:
- deprecate Ticker.earnings #1977
0.2.40
------
Fix typo in 0.2.39 c7af213
0.2.39
------
Fixes:
- Fix switching session from/to requests_cache #1930
Price repair:
- Fix potential for price repair to discard price=0 rows #1874
- Don't price-repair FX volume=0, is normal #1920
- Improve 'sudden change' repair for splits & currency #1931
Information:
- Fix help(yf.download) not showing the information about the function #1913 @vittoboa
- Add more specific error throwing based on PR 1918 #1928 @elibroftw @marcofognog
Maintenance:
- Replace dead 'appdirs' package with 'platformdirs' #1896
- Deprecate 'pandas_datareader', remove a deprecated argument #1897
- Fix: datetime.datetime.utcnow() is deprecated ... #1922
0.2.38
------
Fix holders & insiders #1908
0.2.37
------
Small fixes:
- Fix Pandas warnings #1838 #1844
- Fix price repair bug, typos, refactor #1866 #1865 #1849
- Stop disabling logging #1841
0.2.36
------
Small fixes:
- Update README.md for better copy-ability #1823
- Name download() column levels #1795
- Fix history(keepna=False) when repair=True #1824
- Replace empty list with empty pd.Series #1724
- Handle peewee with old sqlite #1827
- Fix JSON error handling #1830 #1833
0.2.35
------
Internal fixes for 0.2.34
0.2.34
------
Features:
- Add Recommendations Trend Summary #1754
- Add Recommendation upgrades & downgrades #1773
- Add Insider Roster & Transactions #1772
- Moved download() progress bar to STDERR #1776
- PIP optional dependencies #1771
- Set sensible min versions for optional 'nospam' reqs #1807
Fixes
- Fix download() DatetimeIndex on invalid symbols #1779
- Fix invalid date entering cache DB #1796
- Fix Ticker.calendar fetch #1790
- Fixed adding complementary to info #1774
- Ticker.earnings_dates: fix warning "Value 'NaN' has dtype incompatible with float64" #1810
- Minor fixes for price repair and related tests #1768
- Fix price repair div adjust #1798
- Fix 'raise_errors' argument ignored in Ticker.history() #1806
Maintenance
- Fix regression: _get_ticker_tz() args were being swapped. Improve its unit test #1793
- Refactor Ticker proxy #1711
- Add Ruff linter checks #1756
- Resolve Pandas FutureWarnings #1766
0.2.33
------
Cookie fixes:
- fix backup strategy #1759
- fix Ticker(ISIN) #1760
0.2.32
------
Add cookie & crumb to requests #1657
0.2.31
------
- Fix TZ cache exception blocking import #1705 #1709
- Fix merging pre-market events with intraday prices #1703
0.2.30
------
- Fix OperationalError #1698
0.2.29
------
- Fix pandas warning when retrieving quotes. #1672
- Replace sqlite3 with peewee for 100% thread-safety #1675
- Fix merging events with intraday prices #1684
- Fix error when calling enable_debug_mode twice #1687
- Price repair fixes #1688
0.2.28
------
- Fix TypeError: 'FastInfo' object is not callable #1636
- Improve & fix price repair #1633 #1660
- option_chain() also return underlying data #1606
0.2.27
------
Bug fixes:
- fix merging 1d-prices with out-of-range divs/splits #1635
- fix multithread error 'tz already in cache' #1648
0.2.26
------
Proxy improvements
- bug fixes #1371
- security fix #1625
0.2.25
------
Fix single ISIN as ticker #1611
Fix 'Only 100 years allowed' error #1576
0.2.24
------
Fix info[] missing values #1603
0.2.23
------
Fix 'Unauthorized' error #1595
0.2.22
------
Fix unhandled 'sqlite3.DatabaseError' #1574
0.2.21
------
Fix financials tables #1568
Price repair update: fix Yahoo messing up dividend and split adjustments #1543
Fix logging behaviour #1562
Fix merge future div/split into prices #1567
0.2.20
------
Switch to `logging` module #1493 #1522 #1541
Price history:
- optimise #1514
- fixes #1523
- fix TZ-cache corruption #1528
0.2.18
------
Fix 'fast_info' error '_np not found' #1496
Fix bug in timezone cache #1498
0.2.17
------
Fix prices error with Pandas 2.0 #1488
0.2.16
------
Fix 'fast_info deprecated' msg appearing at Ticker() init
0.2.15
------
Restore missing Ticker.info keys #1480
0.2.14
------
Fix Ticker.info dict by fetching from API #1461
0.2.13
------
Price bug fixes:
- fetch big-interval with Capital Gains #1455
- merging dividends & splits with prices #1452
0.2.12
------
Disable annoying 'backup decrypt' msg
0.2.11
------
Fix history_metadata accesses for unusual symbols #1411
0.2.10
------
General
- allow using sqlite3 < 3.8.2 #1380
- add another backup decrypt option #1379
Prices
- restore original download() timezone handling #1385
- fix & improve price repair #1289 2a2928b 86d6acc
- drop intraday intervals if in post-market but prepost=False #1311
Info
- fast_info improvements:
- add camelCase keys, add dict functions values() & items() #1368
- fix fast_info["previousClose"] #1383
- catch TypeError Exception #1397
0.2.9
-----
- Fix fast_info bugs #1362
0.2.7
-----
- Fix Yahoo decryption, smarter this time #1353
- Rename basic_info -> fast_info #1354
0.2.6
-----
- Fix Ticker.basic_info lazy-loading #1342
0.2.5
-----
- Fix Yahoo data decryption again #1336
- New: Ticker.basic_info - faster Ticker.info #1317
0.2.4
-----
- Fix Yahoo data decryption #1297
- New feature: 'Ticker.get_shares_full()' #1301
- Improve caching of financials data #1284
- Restore download() original alignment behaviour #1283
- Fix the database lock error in multithread download #1276
0.2.3
-----
- Make financials API '_' use consistent
0.2.2
-----
- Restore 'financials' attribute (map to 'income_stmt')
0.2.1
-----
Release!
0.2.0rc5
--------
- Improve financials error handling #1243
- Fix '100x price' repair #1244
0.2.0rc4
--------
- Access to old financials tables via `get_income_stmt(legacy=True)`
- Optimise scraping financials & fundamentals, 2x faster
- Add 'capital gains' alongside dividends & splits for ETFs, and metadata available via `history_metadata`, plus a bunch of price fixes
For full list of changes see #1238
0.2.0rc2
--------
Financials
- fix financials tables to match website #1128 #1157
- lru_cache to optimise web requests #1147
Prices
- improve price repair #1148
- fix merging dividends/splits with day/week/monthly prices #1161
- fix the Yahoo DST fixes #1143
- improve bad/delisted ticker handling #1140
Misc
- fix 'trailingPegRatio' #1138
- improve error handling #1118
0.2.0rc1
--------
Jumping to 0.2 for this big update. 0.1.* will continue to receive bug-fixes
- timezone cache performance massively improved. Thanks @fredrik-corneliusson #1113 #1112 #1109 #1105 #1099
- price repair feature #1110
- fix merging of dividends/splits with prices #1069 #1086 #1102
- fix Yahoo returning latest price interval across 2 rows #1070
- optional: raise errors as exceptions: raise_errors=True #1104
- add proper unit tests #1069
0.1.81
------
- Fix unhandled tz-cache exception #1107
0.1.80
------
- Fix `download(ignore_tz=True)` for single ticker #1097
- Fix rare case of error "Cannot infer DST time" #1100
0.1.79
------
- Fix when Yahoo returns price=NaNs on dividend day
0.1.78
------
- Fix download() when different timezones #1085
0.1.77
------
- Fix user experience bug #1078
0.1.75
------
- Fixed datetime-related issues: #1048
- Add 'keepna' argument #1032
- Speedup Ticker() creation #1042
- Improve a bugfix #1033
0.1.74
------
- Fixed bug introduced in 0.1.73 (sorry :/)
0.1.73
------
- Merged several PR that fixed misc issues
0.1.72
------
- Misc bugfixs
0.1.71
------
- Added Tickers(…).news()
- Return empty DF if YF missing earnings dates
- Fix EPS % to 0->1
- Fix timezone handling
- Fix handling of missing data
- Clean&format earnings_dates table
- Add ``.get_earnings_dates()`` to retrieve earnings calendar
- Added ``.get_earnings_history()`` to fetch earnings data
0.1.70
------
- Bug fixed - Closes #937
0.1.69
------
- Bug fixed - #920
0.1.68
------
- Upgraded requests dependency
- Removed Python 3.5 support
0.1.67
------
- Added legal disclaimers to make sure people are aware that this library is not affiliated, endorsed, or vetted by Yahoo, Inc.
0.1.66
------
- Merged PR to allow yfinance to be pickled
0.1.65
------
- Merged PRs to fix some bugs
- Added lookup by ISIN ``utils.get_all_by_isin(...)``, ``utils.get_ticker_by_isin(...)``, ``utils.get_info_by_isin(...)``, ``utils.get_news_by_isin(...)``
- ``yf.Ticker``, ``yf.Tickers``, and ``yf.download`` will auto-detect ISINs and convert them to tickers
- Propagating timeout parameter through code, setting request.get(timeout)
- Adds ``Ticker.analysis`` and ``Ticker.get_analysis(...)``
0.1.64
------
- Merged PRs to fix some bugs
- Added ``Ticker.stats()`` method
- Added ``Ticker.news`` property
- Providing topHoldings for ETFs
- Replaceed drop duplicate prices with indexes
- Added pre-market price to ``Ticker.info``
0.1.63
------
- Duplicates and missing rows cleanup
0.1.62
------
- Added UserAgent to all requests (via ```utils.user_agent_headers```)
0.1.61
------
- Switched to using ```query2.finance.yahoo.com```, which used HTTP/1.1
0.1.60
------
- Gracefully fail on misc operations (options, auto/back adjustments, etc)
- Added financial data to ```info()```
- Using session headers
- Get price even if open price not available
- Argument added for silencing error printing
- Merged PRs to fix some bugs
0.1.59
------
- Added custom requests session instance support in holders
0.1.58
------
- Allow specifying a custom requests session instance
0.1.57
------
- Added Conversion rate hint using 'financialCurrency' property in earnings
- Add important try+catch statements
- Fixed issue with 1 hour interval
- Merged PRs to fix some bugs
- Fixed issue with special characters in tickers
0.1.56
------
- Updated numpy version
- Merged PRs to fix some bugs
0.1.55
------
- Fixed institutional investors and mutual fund holders issue (#459)
- Fix for UTC timestamps in options chains (#429)
0.1.54
------
- ISIN lookup working with intl. tickers
0.1.53
------
- Added ``Ticker.isin`` + ``Ticker.get_isin(...)``. This is still experimental. Do not rely on it for production.
- Bug fixed: holders were always returning results for MSFT
0.1.52
------
- Improved JSON regex parsing
0.1.51
------
- Added holdings data (``Ticker.major_holders`` and ``Ticker.institutional_holders``)
- Added logo url to ``Ticker.info``
- Handling different date formats in fundamentals
- Faster JSON parsing using regex
- Trying to re-download JSON twice before giving up
- Using ujson instead of json if installed
- Fixed (more) ``ticker.info`` issues
- Misc bugfixes
0.1.50
------
- Fixed ``ticker.info`` issues
- Handle sustainability index error
- Added test script based on @GregoryMorse's pull request
0.1.49
------
- Fixed ``elementwise comparison`` warning
0.1.48
------
- Fixed issues related to non-publicly traded tickers (crypto, currency, etc)
0.1.47
------
- Fixed options-related bug that was caused by code refactoring
0.1.46
------
- Rerwote all fundamental-related methods, which now support quarterly financials, cashflow, balance sheets, and earnings, analysts recommendations, and earnings calendar data
- Code refactoring
0.1.45
------
- Added sustainability data/error handling for ETF/MF (by GregoryMorse)
- Avoid rounding the values retrieved from Yahoo by default (by aglebov)
- Added 'rename=True' for the namedtuple (raffieeey)
0.1.44
------
- Improved ``Tickers`` module (see https://github.com/ranaroussi/yfinance/issues/86)
- Misc bugfixes
0.1.43
------
- Bugfixes
0.1.42
------
- Fix data realignment when Yahoo returns with missing/malform data
0.1.41
------
- Added methods for downloading option chain
0.1.40
------
- Fixed issue related to threads when downloading many symbols
- Fix issue relared to missing data
0.1.39
------
- Added ``Ticker('XXX').financials``, ``Ticker('XXX').balance_sheet``, and ``Ticker('XXX').cashflow``
- Proxy can be used when downloading actions
0.1.38
------
- Making sure tickers are always uppercase
- Added Tickers to ``__all__``
- Updated readme to reflect current library structure
0.1.37
------
- Overriding old ``pandas_datareader.data.DataReader`` when calling ``pdr_override()``
- ``Tickers()`` returns a named tuple of ``Ticker()`` objects
0.1.36
------
- Package renamed to ``yfinance``
- Added option to specify proxy server
0.1.35
------
- Updated requirements
0.1.34
------
- Intercept yahoo "site down" message
- Better period handling
- Threading is True by default
0.1.33
------
- Better error handling
0.1.32
------
- Better error handling
- Updated min. versions for requirements
0.1.31
------
- Include ticker in error message if error is raised
0.1.30
------
- Fixed Yahoo!'s 30m bars being returned as 60m/15m
0.1.29
------
- Fixed issue with Pandas "DataFrame constructor not properly called!"
- If ``threads`` is set to True, it will default to number of tickers (max = @ of CPU cores)
0.1.28
------
- Threading defaults to ``False``
0.1.27
------
- Threading is back :)
0.1.26
------
- Fixed weird bug with Yahoo!, which is returning 60m interval when requesting for 30m interval, by requesting 15m interval and resampling the returned data
- ``Ticker.history()`` auto-adjusts data by default
0.1.21 - 0.1.25
------
- Bugfixs
0.1.2
------
- Round prices based on metadata decimals
0.1.1
------
- Setting Volume colume as np.int64 dtype to avoid integer overflow on Windows
0.1.0
-------
- Works with v8 API
- Introduced Ticker module
- Complete re-write of the entire code
- Skipped a bunch of version :)
0.0.22
-------
- Deprecated Panel support
0.0.21
-------
- Code cleanup
0.0.20
-------
- Fixed issue with progress bar (issue #42)
0.0.19
-------
- Misc bugfixes
0.0.18
-------
- Minor Bugfixes
- Added deprecation warning for future versions regarding auto-overriding pandas_datareader
0.0.17
-------
- Handles duplicate index
0.0.16
-------
- Progress bar bugfix
0.0.15
-------
- Bugfix (closing issue #11)
0.0.14
-------
- Added support for Python 2.7
- Confirming valid data returned before adding it to ``_DFS_``
0.0.13
-------
- Removed debugging code
0.0.12
-------
- Minor bug fix (closing #6)
0.0.11
-------
- Downloads ONLY dividend and stock splits data using ``actions='only'``)
0.0.10
-------
- Downloads dividend and stock splits data (use ``actions=True``)
0.0.9
-------
- Add ``threads`` parameter to ``download()`` (# of threads to use)
0.0.8
-------
- Removed 5 second wait for every failed fetch
- Reduced TTL for Yahoo!'s cookie
- Keeps track of failed downloads and tries to re-download all failed downloads one more time before giving up
- Added progress bar (can be turned off using ``progress=False``)
0.0.7
-------
- ``pandas_datareader`` is optional (can be called via ``download()`` or via ``pdr.get_data_yahoo()``)
- Tries to re-fetch Yahoo cookie in case of timeout/error
0.0.6
-------
- Forcing index to be of datetime type
0.0.5
-------
- Works using ``requests`` = no need for Selenium, PyVirtualDisplay, or Chrome Driver
0.0.4
-------
- Removed ALL debugging code :)
0.0.3
-------
- Removed debugging code
0.0.2
-------
- Option to explicitly specify the location of the Chrome driver
0.0.1
-------
- Initial release (alpha)