No project description provided
Project description
FMP-PY
Empower Your Financial Insights with Seamless FMP API Integration
Developed with the software and tools below.
Table of Contents
Overview
The fmp-py project offers a comprehensive Python interface for interacting with financial market data, integrating the Financial Modeling Prep (FMP) API to retrieve and analyze diverse financial datasets. It supports functionalities like accessing company information, historical stock prices, financial statements, stock lists, and upgrades/downgrades. The package provides tools for enhanced financial analysis, including data models for price targets and valuations. Its modular structure ensures seamless data retrieval and processing, making it a valuable resource for financial analysts, researchers, and developers aiming to perform in-depth market analysis and informed investment decisions.
Features
Feature | Description | |
---|---|---|
โ๏ธ | Architecture | The project is structured as a Python package for financial data analysis. It integrates with the Financial Modeling Prep API, providing modules for various financial data aspects. |
๐ฉ | Code Quality | The project uses automated tools like pre-commit and ruff for code style and quality enforcement, ensuring consistency and high standards. |
๐ | Documentation | Documentation is enhanced using sphinx , myst-parser , and sphinx-autoapi , indicating a focus on comprehensive and user-friendly documentation. |
๐ | Integrations | Key integration is with the Financial Modeling Prep API, enabling comprehensive access to various financial data points. |
๐งฉ | Modularity | Codebase is highly modular, with distinct modules for different data aspects like company information, historical data, financial statements, etc., ensuring reusability. |
๐งช | Testing | Uses requests-mock for API testing and GitHub Actions for CI/CD, ensuring robust testing and continuous integration. |
โก๏ธ | Performance | Efficient handling and processing of financial data with modules returning results in pandas DataFrame format for speed and usability in analysis. |
๐ก๏ธ | Security | Uses python-dotenv for managing sensitive data, emphasizing secure data handling practices. |
๐ฆ | Dependencies | Utilizes key libraries like pandas for data manipulation, requests for HTTP requests, and pendulum for date handling, among others. |
๐ | Scalability | Designed for efficiency in data retrieval and processing, though specifics on load handling are not detailed, the modular design suggests good scalability potential. |
Repository Structure
โโโ fmp-py/
โโโ .github
โ โโโ ISSUE_TEMPLATE
โ โ โโโ bug_report.md
โ โ โโโ custom.md
โ โ โโโ feature_request.md
โ โโโ workflows
โ โโโ test-package.yaml
โโโ CODE_OF_CONDUCT.md
โโโ LICENSE
โโโ README.md
โโโ SECURITY.md
โโโ docs
โ โโโ Makefile
โ โโโ make.bat
โ โโโ rtd_requirements.txt
โ โโโ source
โ โโโ conf.py
โ โโโ index.md
โ โโโ notebooks
โ โโโ usage.ipynb
โโโ poetry.lock
โโโ pyproject.toml
โโโ pytest.ini
โโโ src
โ โโโ fmp_py
โ โโโ __init__.py
โ โโโ fmp_base.py
โ โโโ fmp_charts.py
โ โโโ fmp_company_information.py
โ โโโ fmp_company_search.py
โ โโโ fmp_financial_statements.py
โ โโโ fmp_historical_data.py
โ โโโ fmp_price_targets.py
โ โโโ fmp_quote.py
โ โโโ fmp_statement_analysis.py
โ โโโ fmp_stock_list.py
โ โโโ fmp_upgrades_downgrades.py
โ โโโ fmp_valuation.py
โ โโโ models
โ โโโ company_information.py
โ โโโ price_targets.py
โ โโโ quote.py
โ โโโ statement_analysis.py
โ โโโ upgrades_downgrades.py
โ โโโ valuation.py
โโโ tests
โโโ __init__.py
โโโ test_fmp_company_information.py
โโโ test_fmp_company_search.py
โโโ test_fmp_financial_statements.py
โโโ test_fmp_historical_data.py
โโโ test_fmp_price_targets.py
โโโ test_fmp_quote.py
โโโ test_fmp_statement_analysis.py
โโโ test_fmp_stock_list.py
โโโ test_fmp_upgrades_downgrades.py
โโโ test_fmp_valuation.py
Modules
.
File | Summary |
---|---|
pyproject.toml | Define the projects metadata and dependencies, streamline the build and packaging processes, and set up configuration standards for development and testing. Enhance code quality and documentation through automated tools and enforce consistent coding styles and practices across the repository. |
src.fmp_py
File | Summary |
---|---|
fmp_upgrades_downgrades.py | Retrieve and process stock upgrade and downgrade data from the Financial Modeling Prep API. Provide methods to access consensus data, company-specific gradings, and RSS feed updates, returning results in pandas DataFrame format for easy analysis. Enhance the repositorys capability to handle financial data comprehensively. |
fmp_financial_statements.py | The code file fmp_company_information.py under the fmp-py repository plays a crucial role in managing and retrieving company information. It is designed to interface with external APIs or databases to fetch detailed corporate data such as governance structures, fundamental descriptions, and key financial metrics. This functionality is critical within the broader architecture of the repository, which focuses on providing comprehensive financial market data through various modules. The fmp_company_information.py integrates seamlessly with other components like financial statements and historical data, ensuring users have access to a holistic suite of financial information. |
fmp_company_search.py | Facilitate company search functionality on Financial Modeling Prep (FMP) based on various identifiers like ISIN, CUSIP, CIK, ticker, and company name. Offer diverse search capabilities to retrieve detailed company information, ensuring comprehensive and precise data access aligned with the parent repositorys architectural design. |
fmp_historical_data.py | Retrieve historical stock price data, including daily and intraday data, for specified symbols and date ranges. Provide essential financial metrics and calculations, such as VWAP, to support investment analysis. Integrate efficiently with the Financial Modeling Prep API and ensure data is appropriately formatted and rounded for end-user consumption. |
fmp_quote.py | This code file is part of the fmp_py repository, a Python package structured for financial data analysis and manipulation. The repository encapsulates various modules focused on different aspects of financial market data. The primary purpose of the repository is to provide a comprehensive toolkit for interacting with financial market data, facilitating tasks such as fetching company information, historical data, financial statements, stock lists, and more.The critical features of the code file include:-Accessing and managing financial market data from multiple perspectives, including company information, historical data, and financial statements.-Supporting data analysis and visualization through various modules that cater to different data types and user needs.-Enabling seamless integration and usage within other projects through a well-defined API, enhancing reproducibility and consistency in financial data handling.Overall, this code file contributes significantly to the broader architecture of the fmp_py repository by offering specialized functionality to handle diverse financial datasets. |
fmp_statement_analysis.py | Src/fmp_py/fmp_financial_statements.pyThe fmp_financial_statements.pyfile serves as a critical component within the fmp_pydirectory of the repository. It is responsible for handling the retrieval and processing of financial statement data, providing a structured way to access various financial reports such as income statements, balance sheets, and cash flow statements. This functionality is integral to the repository's broader goal of offering comprehensive financial data handling and analysis tools. By enabling efficient access to financial statements, this file supports advanced financial analytics and decision-making processes within the overall architecture.#### Parent Repository: fmp-pyThe fmp-py` repository is designed to provide a Python-based interface for interacting with financial market data. It is structured to facilitate comprehensive data retrieval, processing, and analysis through robust and modular code components. This serves the end goal of allowing users to perform in-depth financial analysis leveraging various data points and insights offered by the repository. The architecture is further supported by thorough documentation, testing workflows, and a focus on community-driven enhancements as indicated by the presence of issue templates and a code of conduct. |
fmp_company_information.py | Summary of fmp_company_information.py The fmp_company_information.py module within the fmp-py repository provides functionalities for retrieving detailed company information. It serves as a crucial component of the parent architecture by enabling users to access comprehensive data about different companies, which includes general information, business summaries, and profiles. This aids in forming a holistic view of the companies being queried, thereby enhancing the repositorys capability to serve as a robust financial data retrieval and analysis tool. This module complements other files in the src/fmp_py directory by focusing specifically on company-centric data and integrating seamlessly with broader financial data functionalities. |
fmp_valuation.py | The file fmp_company_information.py within the fmp-py repository is primarily responsible for retrieving and managing company-specific data, such as profiles, key metrics, and other relevant details. This functionality is crucial within the broader architecture of the fmp-py project, as it allows users to access and manipulate company information seamlessly. The module integrates with other components like financial statements and historical data modules, facilitating comprehensive financial analysis and research workflows. |
fmp_base.py | Serve as the foundational API client for interacting with the Financial Modeling Prep service, managing authentication and GET requests. Provide utility for type-safe data cleaning and ensure efficient handling of API sessions. |
fmp_stock_list.py | Interact with the Financial Modeling Prep API to retrieve various stock lists and related financial data, including available indexes, exchange symbols, symbol changes, and more. The FmpStockList class aggregates these functionalities, providing seamless data access and processing for financial applications within the repositorys architecture. |
fmp_charts.py | Fmp_stock_list.pyThe fmp_stock_list.pyfile is part of the fmp-pyrepository, which aims to provide a comprehensive Python package for interacting with financial market data. This specific file focuses on retrieving and managing lists of stocks, leveraging the functionalities of the parent repository to facilitate users in accessing up-to-date stock information. It integrates seamlessly with other modules in the src/fmp_py` directory, enabling users to fetch stock lists based on various criteria, which can be crucial for tasks like portfolio management, market analysis, and financial research. The file plays an essential role in enhancing the repositorys capability to deliver diverse financial datasets to end-users efficiently. |
fmp_price_targets.py | Provide comprehensive methods to retrieve price target data from the Financial Modeling Prep API, including consensus, summary, and detailed price targets for a given stock symbol, thereby enhancing investment decision-making capabilities within the fmp-py repositorys financial data analysis framework. |
src.fmp_py.models
File | Summary |
---|---|
price_targets.py | Define data structures for representing price target consensus and summary information, facilitating organized and efficient handling of financial data within the repositorys broader architecture for financial market analysis. |
statement_analysis.py | Defines data structures essential for financial statement analysis within the parent repository. These structures encapsulate various financial scores, ratios, and key metrics, supporting comprehensive financial evaluations and data manipulation across multiple modules, enhancing the repositorys capability to offer detailed and structured financial insights. |
company_information.py | Define various data models related to company information, including stock peers, core details, market cap, executive compensation, and overall company profile, which provide structured data representations within the repositorys financial data processing architecture. |
quote.py | Define multiple data models central for representing various types of financial market quotes, facilitating the retrieval and manipulation of real-time and historical data related to stocks, forex, crypto, and after-market trading within the fmp-py repository architecture. These models underpin the data structure consistency and integrity across the application. |
upgrades_downgrades.py | Defines an UpgradesDowngrades data model incorporating key attributes related to stock recommendations, such as symbol, buy/sell ratings, and consensus. Functions as a crucial component for organizing and retrieving rating data within the broader architecture of the financial market data repository. |
valuation.py | Define data structures for managing discounted cash flow and company rating information, essential for valuation analysis within the repositorys financial modeling capabilities. Offer comprehensive attributes for each structure, facilitating detailed and accurate financial assessments and recommendations. |
.github.workflows
File | Summary |
---|---|
test-package.yaml | Facilitate automated testing by configuring the CI/CD pipeline to run tests on the repository. Ensures the codebase remains robust and error-free by triggering test suites whenever changes are pushed, thereby maintaining code integrity and reliability throughout the development lifecycle. |
Contributing
Contributions are welcome! Here are several ways you can contribute:
- Report Issues: Submit bugs found or log feature requests for the
fmp-py
project. - Submit Pull Requests: Review open PRs, and submit your own PRs.
- Join the Discussions: Share your insights, provide feedback, or ask questions.
Contributing Guidelines
- Fork the Repository: Start by forking the project repository to your github account.
- Clone Locally: Clone the forked repository to your local machine using a git client.
git clone https://github.com/TexasCoding/fmp-py
- Create a New Branch: Always work on a new branch, giving it a descriptive name.
git checkout -b new-feature-x
- Make Your Changes: Develop and test your changes locally.
- Commit Your Changes: Commit with a clear message describing your updates.
git commit -m 'Implemented new feature x.'
- Push to github: Push the changes to your forked repository.
git push origin new-feature-x
- Submit a Pull Request: Create a PR against the original project repository. Clearly describe the changes and their motivations.
- Review: Once your PR is reviewed and approved, it will be merged into the main branch. Congratulations on your contribution!
License
This project is protected under the MIT License. For more details, refer to the LICENSE file.
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Hashes for fmp_py-0.0.13.1-py3-none-any.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 280a8421b6928a24f71a4b66a30bad0c703475d027b3f0bc3b7c8b8c2fe1fad9 |
|
MD5 | 566f5dd0bfebe7c372a65f524256750b |
|
BLAKE2b-256 | 8785532140baec859fbae3ce6ba32ced6b100fb9a964b8a6f2474a18b9a26c03 |