Files
OpenBB/openbb_terminal/stocks/discovery/fmp_view.py
James Maslek a1d49e7845 Revert deleted files (#4775)
* Revert deleted files

* move docuemnatation folder

* lint

* mypy lint

* Added manual trigger for GH pages

* Dont divide data by 100 in fred because it can't be overlayed on charts smh

* Switch Price -> Option Premium

* Switch Price -> Option Premium missed commit

* Undo workflow dispatch

---------

Co-authored-by: Luqman <luqazino@gmail.com>
Co-authored-by: teh_coderer <me@tehcoderer.com>
2023-04-14 21:13:35 +00:00

85 lines
2.5 KiB
Python

""" Financial Modeling Prep View """
__docformat__ = "numpy"
import datetime
import logging
import os
from typing import Optional
from openbb_terminal.decorators import check_api_key, log_start_end
from openbb_terminal.helper_funcs import export_data
from openbb_terminal.rich_config import console
from openbb_terminal.stocks.fundamental_analysis import fmp_model
logger = logging.getLogger(__name__)
@log_start_end(log=logger)
@check_api_key(["API_KEY_FINANCIALMODELINGPREP"])
def display_filings(
pages: int = 1,
limit: int = 5,
today: bool = False,
export: str = "",
sheet_name: Optional[str] = None,
) -> None:
"""Display recent forms submitted to the SEC
Parameters
----------
pages: int = 1
The range of most-rececnt pages to get entries from (1000 per page, max 30 pages)
limit: int = 5
Limit the number of entries to display (default: 5)
today: bool = False
Show all from today
export: str = ""
Export data as csv, json, or xlsx
Examples
--------
openbb.stocks.display_filings()
openbb.stocks.display_filings(today = True, export = "csv")
"""
filings = fmp_model.get_filings(pages)
if today is True:
now: str = datetime.datetime.now().strftime("%Y-%m-%d")
iso_today: int = datetime.datetime.today().isoweekday()
if iso_today < 6 and not filings.empty:
filings = filings.filter(like=now, axis=0)
limit = 1000
else:
console.print(
"[red]No filings today, displaying the most recent submissions instead[/red]"
)
if not filings.empty:
filings.reset_index(["Date"], inplace=True)
for _, row in filings.head(limit).iterrows():
console.print(
"Timestamp: ",
f"{row['Date']}",
" US/Eastern",
"\n",
"Ticker: ",
f"{row['Ticker']}",
"\n",
"CIK: " f"{row['CIK']}",
"\n",
"Form Type: ",
f"{row['Form Type']}",
"\n",
f"{row['Title']}",
"\n",
f"{row['URL']}\n",
sep="",
)
export_data(
export,
os.path.dirname(os.path.abspath(__file__)),
"filings",
filings,
sheet_name,
)
else:
logger.error("Could not get data")
console.print("[red]Could not get data[/red]\n")