No project description provided
Project description
FMP-PY
Empower Your Financial Insights with Precision Data
Developed with the software and tools below.
Table of Contents
This project is under development, please check back later for updates.
Overview
The fmp-py project is a comprehensive Python library designed for seamless interaction with the Financial Modeling Prep (FMP) API, enabling users to retrieve and analyze a wide range of financial data. Its core functionalities include company searches, fetching historical and real-time stock data, and conducting financial statement analysis. By providing structured data representations and facilitating data retrieval through a robust API integration, fmp-py empowers financial analysts, developers, and researchers to access reliable and detailed market insights efficiently, making it an invaluable tool for financial data analysis and decision-making.
Features
Feature | Description | |
---|---|---|
โ๏ธ | Architecture | The project follows a modular architecture with separate components for different financial data functionalities, including company search, historical data, and quotes. It leverages Python's object-oriented principles for structured data interaction. |
๐ฉ | Code Quality | The codebase adheres to standard Python coding conventions and best practices, with a focus on readability and maintainability. Tools like pre-commit and ruff are used to ensure code quality. |
๐ | Documentation | The project includes comprehensive documentation generated using sphinx and sphinx-rtd-theme , covering API usage, installation, and examples. However, some modules could benefit from more detailed docstrings. |
๐ | Integrations | Key integrations include the Financial Modeling Prep (FMP) API for financial data retrieval. The project also integrates with pandas for data handling and requests for HTTP requests. |
๐งฉ | Modularity | The codebase is highly modular with discrete files for different functionalities like company search, historical data, and quotes. Each module can be reused independently or integrated into larger workflows. |
๐งช | Testing | The project uses pytest for testing, with test automation handled through GitHub Actions (.github/workflows/test-package.yaml ). It includes mock testing of API requests using requests-mock . |
โก๏ธ | Performance | The performance is optimized for efficiency in data retrieval and processing. The use of pandas ensures fast data manipulation, while caching mechanisms could be implemented for further improvements. |
๐ก๏ธ | Security | Security measures include API key management via environment variables using python-dotenv . There are no explicit details on data encryption or access control within the provided information. |
๐ฆ | Dependencies | Key dependencies include pandas , requests , python-dotenv , pendulum , and documentation tools like sphinx , myst-parser , and nbsphinx . Dependency management is handled via pyproject.toml with Poetry. |
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
โโโ poetry.lock
โโโ pyproject.toml
โโโ pytest.ini
โโโ src
โ โโโ fmp_py
โ โโโ __init__.py
โ โโโ fmp_base.py
โ โโโ fmp_company_information.py
โ โโโ fmp_company_search.py
โ โโโ fmp_historical_data.py
โ โโโ fmp_quote.py
โ โโโ fmp_statement_analysis.py
โ โโโ fmp_stock_list.py
โ โโโ models
โ โโโ company_information.py
โ โโโ quote.py
โ โโโ statement_analysis.py
โโโ tests
โโโ __init__.py
โโโ test_fmp_company_information.py
โโโ test_fmp_company_search.py
โโโ test_fmp_historical_data.py
โโโ test_fmp_quote.py
โโโ test_fmp_statement_analysis.py
โโโ test_fmp_stock_list.py
Modules
.
File | Summary |
---|---|
pyproject.toml | Defines the project metadata, dependencies, and configuration settings for packaging and managing the repository using Poetry. Facilitates streamlined dependency management, testing, and documentation generation within the project architecture, ensuring consistent development and build processes. |
src.fmp_py
File | Summary |
---|---|
fmp_company_search.py | Facilitates searching for companies on Financial Modeling Prep (FMP) through various identifiers like ISIN, CUSIP, CIK, and ticker symbols. Provides multiple search methods to retrieve detailed information about companies, ensuring compatibility with various stock exchanges and delivering results in a structured data format. |
fmp_historical_data.py | Retrieve and process historical and intraday price data for financial assets, leveraging the Financial Modeling Prep API. Provide functionalities to clean, calculate VWAP, and format the data, ensuring accurate and usable historical financial data within the fmp-py librarys architecture. |
fmp_quote.py | Facilitating requests to external financial data APIs to fetch historical data.-Parsing and structuring the acquired data into a usable format for further analysis or visualization.-Ensuring consistency and reliability in the data retrieval process, contributing to the overall robustness of the fmp-py package.In the context of the repository, fmp_historical_data.py plays a vital role in offering comprehensive financial insights, complementing other modules that focus on company information, stock lists, and financial statements. |
fmp_statement_analysis.py | Fmp_py/fmp_quote.py SummaryMain Purpose: The fmp_quote.py file within the fmp-py repository is designed to provide functionalities for fetching and handling real-time stock quotes. It serves as a crucial component in accessing up-to-date financial market data.Critical Features:-Fetch Real-Time Quotes: Retrieves current stock prices and related information.-Data Processing: Handles the formatting and basic processing of stock quote data.-Integration: Seamlessly integrates with other modules like fmp_company_information and fmp_historical_data to provide a comprehensive financial data toolkit.In the context of the parent repository's architecture, fmp_quote.py is essential for enabling real-time financial data access, which is fundamental for users needing up-to-date market insights.---This summary highlights the main purpose and features of fmp_quote.py without diving into technical implementation details. |
fmp_company_information.py | Sure, please provide the code file for which the summary should be generated. |
fmp_base.py | Facilitates interaction with the Financial Modeling Prep API by handling API key management, session establishment, and GET requests, ensuring seamless data retrieval and response parsing across various endpoints in the repository. Functions as the foundational class for API communication within the broader architecture of the project. |
fmp_stock_list.py | Provides a comprehensive interface for retrieving various stock and financial data from the Financial Modeling Prep API, including stock lists, exchange-traded funds, financial statement symbols, and stock symbols for specific exchanges. Ensures data is organized and returned as pandas DataFrames for seamless integration. |
src.fmp_py.models
File | Summary |
---|---|
statement_analysis.py | Provide a structured representation of financial data, including financial scores, ratios, and key metrics, essential for performing in-depth company financial analysis within the broader functionality of the repository. |
company_information.py | Define essential data structures for company information, encompassing core details, market capitalization, executive compensation, company profile, and stock peers. Facilitate organized and comprehensive representation of company-related data within the repositorys architecture for efficient data manipulation and retrieval. |
quote.py | Define data structures for various types of financial quotes, including stocks, forex, cryptocurrencies, and aftermarket trades, facilitating consistent data representation across the repositorys architecture. These models support type checking and serialization, ensuring robust and efficient data handling within the broader financial market data processing framework. |
.github.workflows
File | Summary |
---|---|
test-package.yaml | Establishes continuous integration by automating tests for the repository using GitHub Actions, ensuring code quality and functionality with each update. |
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.