New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Merge all dev updates into main #1117
Conversation
Fix merging of dividends/splits with prices
Fix merging pre-market events with min/hour prices
Fix weekly/monthly prices across 2 rows
Improve timezone cache
Various fixes to price data
Add error check for 'period' ; simplify err-msg handling ; new arg 'raise_errors' to control print-vs-Exception
Improve error message handling
Improve performance of fetching Ticker timezone
Fix price repair ; Improve repair test
Fix cache error on read only system #1108
Note that there are still known issues (like #1114) in the code, and comments on the PR. On a general note, it's a bit of a problem that there is no real versioning scheme for the project. My reasoning is that there are probably more users like me that have automated jobs that just uses yfinance as a convenient way to download ticker data, and for me upgrading to the recent patch release has caused more issues than they have solved. |
Agree with jumping to 0.2, that was my intention. The initial timezone update should probably have done this, but that was before I was on project so Ran just pushed out in a patch. At that time the versioning system was simply incremental patching. Improving the code governance is a work-in-progress, alongside fixing issues in price data (I use it too for trading). E.g. the dev branch and unit tests are my additions. dev branch has diverged too far from last release to allow cherry-picking price data fixes, but this shouldn't prevent fixes being applied/back-ported to old releases. I expect just branch off corresponding main commit instead of dev, e.g. branch "0.1" or "0.1.*" |
Thanks for the information, |
BTW, might need to increase the default HTTP timeout from 10 seconds to a bit more (like 20s), seems yahoo does some throttling after the first couple of hundred tickers. |
Good point on tz fetch triggering spam, I suppose I never noticed because I gradually built up my cache. I can quickly address this with a built-in table. Then see if timeout still a problem. |
I think just using the new function |
I understand now. See branch release/0.1 - contains the fix and serves as place for future 0.1.* patches. Approve of approach? |
Yes, that seems to be a good approach, a v0.1 patch branch. |
You're right, I forgot I did that during backport. Fixed. |
omg, you are fast, did you really have time to test the code before release to pypi ;)
|
Seems like a thread issue with the old cache implementation. Works if I do not use threads, |
I'll add a mutex, but keep the csv-based cache - sqlite is only slightly faster (download() 50 tickers), and first time I ran it backported it triggered Exception (but not second time). Won't remove cache entirely because I get a 1.5x speedup. |
Ok seems like last version 0.1.84 works for me now with threads, thanks. |
Big update - bug fixes and new features.
Timezone cache performance massively improved. All thanks go to @fredrik-corneliusson. #1113 #1112 #1109 #1105 #1099
Price repair feature for when Yahoo rarely returns random price data 100x actual.
Ticker.history(..., repair=True)
Most common with LSE tickers. #1110Fix merging of dividends/splits with price data, particularly with weekly/monthly data. #1069 #1086 #1102
Fix Yahoo returning weekly/monthly data with today on second row. #1070
Add argument to raise errors as exceptions:
history(..., raise_errors=True)
#1104Add proper unit tests. #1069