Skip to main content

No project description provided

Project description

project-logo

FMP-PY

Empower Your Financial Insights with Precision Data

GitHub Actions Workflow Status license last-commit repo-top-language repo-language-count

Developed with the software and tools below.

precommit Poetry Python GitHub%20Actions pandas


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:

Contributing Guidelines
  1. Fork the Repository: Start by forking the project repository to your github account.
  2. Clone Locally: Clone the forked repository to your local machine using a git client.
    git clone https://github.com/TexasCoding/fmp-py
    
  3. Create a New Branch: Always work on a new branch, giving it a descriptive name.
    git checkout -b new-feature-x
    
  4. Make Your Changes: Develop and test your changes locally.
  5. Commit Your Changes: Commit with a clear message describing your updates.
    git commit -m 'Implemented new feature x.'
    
  6. Push to github: Push the changes to your forked repository.
    git push origin new-feature-x
    
  7. Submit a Pull Request: Create a PR against the original project repository. Clearly describe the changes and their motivations.
  8. Review: Once your PR is reviewed and approved, it will be merged into the main branch. Congratulations on your contribution!
Contributor Graph


License

This project is protected under the MIT License. For more details, refer to the LICENSE file.

Return


Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

fmp_py-0.0.11.3.tar.gz (44.0 kB view hashes)

Uploaded Source

Built Distribution

fmp_py-0.0.11.3-py3-none-any.whl (44.9 kB view hashes)

Uploaded Python 3

Supported by

AWS AWS Cloud computing and Security Sponsor Datadog Datadog Monitoring Fastly Fastly CDN Google Google Download Analytics Microsoft Microsoft PSF Sponsor Pingdom Pingdom Monitoring Sentry Sentry Error logging StatusPage StatusPage Status page