The yfinance
project is an open-source Python library for accessing financial data from Yahoo! Finance. It is maintained by a community of contributors and is actively developed. The project is currently stable but faces challenges related to API changes and data accuracy.
0.2.45
.Timespan | Opened | Closed | Comments | Labeled | Milestones |
---|---|---|---|---|---|
7 Days | 2 | 2 | 11 | 2 | 1 |
30 Days | 10 | 9 | 25 | 10 | 1 |
90 Days | 41 | 24 | 115 | 41 | 1 |
1 Year | 180 | 112 | 552 | 180 | 1 |
All Time | 1343 | 1192 | - | - | - |
Like all software activity quantification, these numbers are imperfect but sometimes useful. Comments, Labels, and Milestones refer to those issues opened in the timespan in question.
Developer | Avatar | Branches | PRs | Commits | Files | Changes |
---|---|---|---|---|---|---|
ValueRaider | 2 | 4/3/0 | 5 | 5 | 152 | |
Eric Pien | 1 | 0/1/0 | 1 | 1 | 74 | |
Yuhong Chen | 1 | 1/1/0 | 1 | 1 | 4 | |
Ran Aroussi | 1 | 0/0/0 | 1 | 1 | 1 | |
Andrii Shkabrii (shkabrii) | 0 | 1/0/1 | 0 | 0 | 0 | |
Ikko Eltociear Ashimine (eltociear) | 0 | 1/0/0 | 0 | 0 | 0 | |
Sai Roopesh (Sai-Roopesh) | 0 | 1/0/1 | 0 | 0 | 0 | |
Nikola Milosevic (nikolamilosevic86) | 0 | 1/0/0 | 0 | 0 | 0 |
PRs: created by that dev and opened/merged/closed-unmerged during the period
Risk | Level (1-5) | Rationale |
---|---|---|
Delivery | 3 | The project faces a moderate delivery risk due to unresolved critical issues like #2093, which affects Python 3.10 users. The backlog of unresolved issues and the lack of milestones further contribute to this risk. However, the team's structured approach to prioritizing high-priority issues and recent improvements in issue handling suggest some mitigation. |
Velocity | 3 | Velocity is moderate, with concentrated contributions from key members like ValueRaider. The closure rate of issues remains around 62%, indicating a backlog. The disparity in contribution levels among team members and unresolved draft PRs like #1984 suggest potential bottlenecks. |
Dependency | 4 | Dependency risks are significant due to reliance on external data sources and APIs, as highlighted by issues like #1982 and #1940. Rate limits and HTTP errors (#602) further underscore these risks, which could affect software reliability if not managed effectively. |
Team | 3 | Team dynamics show potential risks with concentrated contributions from a few individuals and contributor disagreements noted in PR #2085. This could impact velocity and delivery if key contributors face bottlenecks or conflicts arise. |
Code Quality | 2 | Code quality is generally good, with efforts to enhance clarity through type annotations and attention to documentation. However, some PRs lack thorough documentation and testing, which could impact maintainability. |
Technical Debt | 3 | Technical debt is moderate, with ongoing efforts to improve code quality and reduce redundancy. However, unresolved PRs and lack of comprehensive tests in some areas indicate challenges in managing technical debt effectively. |
Test Coverage | 3 | Test coverage appears moderate, with implied testing through structured code but lacking explicit references to test cases or frameworks. This uncertainty could lead to undetected bugs or regressions. |
Error Handling | 3 | Error handling is robust in some areas, with specific exceptions and logging mechanisms. However, the lack of tests or documentation for error handling improvements in PRs like #2088 may hinder effectiveness. |
The yfinance
project has seen a range of issues related to data accuracy, API changes, and feature requests. Notable anomalies include frequent errors with specific tickers, inconsistencies in data retrieval, and issues with the handling of certain financial metrics. A recurring theme is the challenge of adapting to changes in Yahoo's API and ensuring data consistency across different environments.
#2093: Syntax error with f-string in Python 3.10.
#2086: IndexError when retrieving NASDAQ Composite data.
#2084: Inability to retrieve PE Ratios.
#2046: IndexError due to incorrect timeseries dates.
#1940: Error parsing holders JSON data.
#1909: Help function not working for yf.download
.
These issues reflect ongoing efforts to maintain compatibility with Yahoo's API and address user-reported bugs and feature requests. The community remains active in reporting problems and suggesting enhancements, contributing to the project's continuous development.
yfinance
db.connect()
auto_adjust
.isin
search to support new queries.Ticker.news
.0.2.45
Unmerged Open PRs with Long Duration:
Contributor Friction and Guidance Needed:
Draft PRs Remaining Stagnant:
Documentation and Testing Gaps:
Feature Integration Considerations:
Overall, while the project shows active development with significant feature additions, attention to unresolved PRs, contributor collaboration, and comprehensive testing will enhance stability and community engagement.
Screener
class for querying Yahoo Finance data using predefined or custom query bodies.Screener
class using Python's unittest
framework.unittest.mock
) to simulate external dependencies like network requests enhances test reliability.setUpClass
ensures efficient initialization across tests.Overall, the codebase demonstrates good practices in terms of organization, error handling, and testing. Active development is evident from frequent updates in the changelog. The use of modern Python features like type hints and f-strings enhances code readability and maintainability.
yfinance/screener/screener.py
.0.2.45
.README.md
.README.md
.Overall, the development team is engaged in continuous improvement of the project, addressing both technical debt and expanding functionality.