diff --git a/openbb_terminal/fixedincome/ecb_view.py b/openbb_terminal/fixedincome/ecb_view.py index 9840ad3ea4c..e4d72aede65 100644 --- a/openbb_terminal/fixedincome/ecb_view.py +++ b/openbb_terminal/fixedincome/ecb_view.py @@ -48,7 +48,7 @@ ESTR_PARAMETER_TO_ECB_ID = { @log_start_end(log=logger) def plot_estr( - series_id: str = "EST.B.EU000A2X2A25.WT", + parameter: str = "EST.B.EU000A2X2A25.WT", start_date: Optional[str] = None, end_date: Optional[str] = None, export: str = "", @@ -72,7 +72,7 @@ def plot_estr( external_axes: Optional[List[plt.Axes]] External axes (1 axis is expected in the list) """ - series_id = ESTR_PARAMETER_TO_ECB_ID.get(series_id, "") + series_id = ESTR_PARAMETER_TO_ECB_ID.get(parameter, "") df = ecb_model.get_series_data( series_id, start_date if start_date else "", end_date if end_date else "" diff --git a/openbb_terminal/fixedincome/fixedincome_controller.py b/openbb_terminal/fixedincome/fixedincome_controller.py index 0868744b444..89178bffcb3 100644 --- a/openbb_terminal/fixedincome/fixedincome_controller.py +++ b/openbb_terminal/fixedincome/fixedincome_controller.py @@ -182,7 +182,7 @@ class FixedIncomeController(BaseController): ) elif ns_parser.source == "ECB": ecb_view.plot_estr( - series_id=ns_parser.parameter, + parameter=ns_parser.parameter, start_date=ns_parser.start_date, end_date=ns_parser.end_date, export=ns_parser.export, @@ -729,7 +729,7 @@ class FixedIncomeController(BaseController): ) if ns_parser: fred_view.plot_tmc( - series_id=ns_parser.parameter, + parameter=ns_parser.parameter, start_date=ns_parser.start_date, end_date=ns_parser.end_date, export=ns_parser.export, @@ -758,7 +758,7 @@ class FixedIncomeController(BaseController): type=str, help="Selected Treasury Constant Maturity", default="10_year", - choices=fred_view.FFRMC_PARAMETER_TO_FRED_ID.keys(), + choices=fred_model.FFRMC_PARAMETER_TO_FRED_ID.keys(), ) parser.add_argument( "-s", @@ -781,7 +781,7 @@ class FixedIncomeController(BaseController): ) if ns_parser: fred_view.plot_ffrmc( - series_id=ns_parser.parameter, + parameter=ns_parser.parameter, start_date=ns_parser.start_date, end_date=ns_parser.end_date, export=ns_parser.export, @@ -1530,7 +1530,7 @@ class FixedIncomeController(BaseController): ) if ns_parser: fred_view.plot_tbffr( - series_id=ns_parser.parameter, + parameter=ns_parser.parameter, start_date=ns_parser.start_date, end_date=ns_parser.end_date, export=ns_parser.export, diff --git a/openbb_terminal/fixedincome/fred_model.py b/openbb_terminal/fixedincome/fred_model.py index 64527d8598b..e1d3bf64521 100644 --- a/openbb_terminal/fixedincome/fred_model.py +++ b/openbb_terminal/fixedincome/fred_model.py @@ -5,7 +5,7 @@ import logging import os import pathlib from datetime import datetime, timedelta -from typing import Dict, Optional, Tuple, List +from typing import Dict, List, Optional, Tuple import certifi import pandas as pd @@ -1023,3 +1023,39 @@ def get_hqm( console.print(f"[red]Yield data not found at {date_of_yield}.[/red]\n") return df, date_of_yield + + +def get_tbffr( + parameter: str = "3_month", + start_date: Optional[str] = None, + end_date: Optional[str] = None, +) -> pd.DataFrame: + series_id = TBFFR_PARAMETER_TO_FRED_ID[parameter] + + return get_series_data(series_id, start_date, end_date) + + +def get_icespread( + category: str = "all", + area: str = "us", + grade: str = "non_sovereign", +) -> pd.DataFrame: + return get_icebofa(data_type="spread", category=category, area=area, grade=grade) + + +def get_ffrmc( + parameter: str = "10_year", + start_date: Optional[str] = None, + end_date: Optional[str] = None, +) -> pd.DataFrame: + series_id = FFRMC_PARAMETER_TO_FRED_ID[parameter] + return get_series_data(series_id, start_date, end_date) + + +def get_tmc( + parameter: str = "10_year", + start_date: Optional[str] = None, + end_date: Optional[str] = None, +) -> pd.DataFrame: + series_id = TMC_PARAMETER_TO_FRED_ID[parameter] + return get_series_data(series_id, start_date, end_date) diff --git a/openbb_terminal/fixedincome/fred_view.py b/openbb_terminal/fixedincome/fred_view.py index d068671e4ae..86e4a209218 100644 --- a/openbb_terminal/fixedincome/fred_view.py +++ b/openbb_terminal/fixedincome/fred_view.py @@ -1470,7 +1470,7 @@ def plot_ecbmrofr( @log_start_end(log=logger) @check_api_key(["API_FRED_KEY"]) def plot_tmc( - series_id: str = "T10Y3M", + parameter: str = "3_month", start_date: Optional[str] = None, end_date: Optional[str] = None, export: str = "", @@ -1496,11 +1496,10 @@ def plot_tmc( external_axes: Optional[List[plt.Axes]] External axes (1 axis is expected in the list) """ - if series_id in TMC_PARAMETER_TO_FRED_ID: - series_id = TMC_PARAMETER_TO_FRED_ID[series_id] + series_id = fred_model.TMC_PARAMETER_TO_FRED_ID[parameter] - df = fred_model.get_series_data( - series_id=series_id, start_date=start_date, end_date=end_date + df = fred_model.get_tmc( + parameter=parameter, start_date=start_date, end_date=end_date ) # This plot has 1 axis @@ -1542,7 +1541,7 @@ def plot_tmc( @log_start_end(log=logger) @check_api_key(["API_FRED_KEY"]) def plot_ffrmc( - series_id: str = "T10YFF", + parameter: str = "10_year", start_date: Optional[str] = None, end_date: Optional[str] = None, export: str = "", @@ -1568,12 +1567,9 @@ def plot_ffrmc( external_axes: Optional[List[plt.Axes]] External axes (1 axis is expected in the list) """ - if series_id in FFRMC_PARAMETER_TO_FRED_ID: - series_id = FFRMC_PARAMETER_TO_FRED_ID[series_id] + series_id = fred_model.FFRMC_PARAMETER_TO_FRED_ID[parameter] - df = fred_model.get_series_data( - series_id=series_id, start_date=start_date, end_date=end_date - ) + df = fred_model.get_ffrmc(parameter, start_date, end_date) # This plot has 1 axis if not external_axes: @@ -1788,7 +1784,7 @@ def plot_usrates( @log_start_end(log=logger) @check_api_key(["API_FRED_KEY"]) def plot_tbffr( - series_id: str = "TB3SMFFM", + parameter: str = "TB3SMFFM", start_date: Optional[str] = None, end_date: Optional[str] = None, export: str = "", @@ -1810,11 +1806,10 @@ def plot_tbffr( external_axes: Optional[List[plt.Axes]] External axes (1 axis is expected in the list) """ - if series_id in TBFFR_PARAMETER_TO_FRED_ID: - series_id = TBFFR_PARAMETER_TO_FRED_ID[series_id] + series_id = fred_model.TBFFR_PARAMETER_TO_FRED_ID[parameter] - df = fred_model.get_series_data( - series_id=series_id, start_date=start_date, end_date=end_date + df = fred_model.get_tbffr( + parameter=parameter, start_date=start_date, end_date=end_date ) # This plot has 1 axis diff --git a/tests/openbb_terminal/fixedincome/test_fixedincome_controller.py b/tests/openbb_terminal/fixedincome/test_fixedincome_controller.py index a65229045c1..8d9c5b8b027 100644 --- a/tests/openbb_terminal/fixedincome/test_fixedincome_controller.py +++ b/tests/openbb_terminal/fixedincome/test_fixedincome_controller.py @@ -212,7 +212,7 @@ def test_call_func_expect_queue(expected_queue, func, queue): "fred_view.plot_estr", [], dict( - series_id="total_volume", + parameter="total_volume", start_date=MOCK_START, end_date=MOCK_END, export="csv", @@ -231,7 +231,7 @@ def test_call_func_expect_queue(expected_queue, func, queue): "ecb_view.plot_estr", [], dict( - series_id="total_volume", + parameter="total_volume", start_date=MOCK_START, end_date=MOCK_END, export="csv", @@ -249,7 +249,7 @@ def test_call_func_expect_queue(expected_queue, func, queue): "fred_view.plot_sofr", [], dict( - series_id="180_day_average", + parameter="180_day_average", start_date=MOCK_START, end_date=MOCK_END, export="csv", @@ -267,7 +267,7 @@ def test_call_func_expect_queue(expected_queue, func, queue): "fred_view.plot_sonia", [], dict( - series_id="index", + parameter="index", start_date=MOCK_START, end_date=MOCK_END, export="csv", @@ -285,7 +285,7 @@ def test_call_func_expect_queue(expected_queue, func, queue): "fred_view.plot_ameribor", [], dict( - series_id="2_year_term_structure", + parameter="2_year_term_structure", start_date=MOCK_START, end_date=MOCK_END, export="csv", @@ -304,7 +304,7 @@ def test_call_func_expect_queue(expected_queue, func, queue): "fred_view.plot_fed", [], dict( - series_id="monthly", + parameter="monthly", start_date=MOCK_START, end_date=MOCK_END, export="csv", @@ -342,7 +342,7 @@ def test_call_func_expect_queue(expected_queue, func, queue): "fred_view.plot_dwpcr", [], dict( - series_id="annual", + parameter="annual", start_date=MOCK_START, end_date=MOCK_END, export="csv", @@ -450,7 +450,7 @@ def test_call_func_expect_queue(expected_queue, func, queue): "fred_view.plot_tmc", [], dict( - series_id="3_month", + parameter="3_month", start_date=MOCK_START, end_date=MOCK_END, sheet_name=None, @@ -466,7 +466,7 @@ def test_call_func_expect_queue(expected_queue, func, queue): "fred_view.plot_ffrmc", [], dict( - series_id="10_year", + parameter="10_year", start_date=MOCK_START, end_date=MOCK_END, sheet_name=None, @@ -482,7 +482,7 @@ def test_call_func_expect_queue(expected_queue, func, queue): "fred_view.plot_tbffr", [], dict( - series_id="3_month", + parameter="3_month", start_date=MOCK_START, end_date=MOCK_END, sheet_name=None,