diff --git a/openbb_terminal/fixedincome/fixedincome_controller.py b/openbb_terminal/fixedincome/fixedincome_controller.py index 38581fe692d..0868744b444 100644 --- a/openbb_terminal/fixedincome/fixedincome_controller.py +++ b/openbb_terminal/fixedincome/fixedincome_controller.py @@ -543,7 +543,7 @@ class FixedIncomeController(BaseController): ) if ns_parser: fred_view.plot_dwpcr( - 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 03dc420301c..a2c24d48d2e 100644 --- a/openbb_terminal/fixedincome/fred_model.py +++ b/openbb_terminal/fixedincome/fred_model.py @@ -809,3 +809,28 @@ def get_fed( return get_series_data( series_id=series_id, start_date=start_date, end_date=end_date ) + +def get_iorb( start_date: Optional[str] = None, + end_date: Optional[str] = None,)->pd.DataFrame: + + return get_series_data(series_id="IORB", start_date=start_date, end_date=end_date) + + +def get_projection(long_run: bool = False): + data_series = {} + + for projection, values in NAME_TO_ID_PROJECTION.items(): + data_series[projection] = get_series_data(series_id=values[long_run]) + + + data_series_df = pd.DataFrame.from_dict(data_series).dropna() + data_series_df.index = pd.to_datetime(data_series_df.index).date + + return data_series_df + +def get_dwpcr(parameter:str="daily_excl_weekend", + start_date: Optional[str] = None, + end_date: Optional[str] = None,)->pd.DataFrame: + + series_id = DWPCR_PARAMETER_TO_FRED_ID[parameter] + return get_series_data(series_id=series_id, start_date=start_date, end_date=end_date) diff --git a/openbb_terminal/fixedincome/fred_view.py b/openbb_terminal/fixedincome/fred_view.py index bed61a4ddcb..47f445c83d3 100644 --- a/openbb_terminal/fixedincome/fred_view.py +++ b/openbb_terminal/fixedincome/fred_view.py @@ -1087,8 +1087,7 @@ def plot_iorb( external_axes: Optional[List[plt.Axes]] External axes (1 axis is expected in the list) """ - df = fred_model.get_series_data( - series_id="IORB", start_date=start_date, end_date=end_date + df = fred_model.get_iorb(start_date=start_date, end_date=end_date ) # This plot has 1 axis @@ -1145,10 +1144,7 @@ def plot_projection( external_axes: Optional[List[plt.Axes]] External axes (1 axis is expected in the list) """ - data_series = {} - - for projection, values in NAME_TO_ID_PROJECTION.items(): - data_series[projection] = fred_model.get_series_data(series_id=values[long_run]) + data_series_df = fred_model.get_projection(long_run=long_run) # This plot has 1 axis if not external_axes: @@ -1158,9 +1154,6 @@ def plot_projection( else: return - data_series_df = pd.DataFrame.from_dict(data_series).dropna() - data_series_df.index = pd.to_datetime(data_series_df.index).date - for legend, df in data_series_df.items(): ax.plot( df.index, @@ -1202,7 +1195,7 @@ def plot_projection( @log_start_end(log=logger) @check_api_key(["API_FRED_KEY"]) def plot_dwpcr( - series_id: str = "DPCREDIT", + parameter: str = "DPCREDIT", start_date: Optional[str] = None, end_date: Optional[str] = None, export: str = "", @@ -1228,11 +1221,10 @@ def plot_dwpcr( external_axes: Optional[List[plt.Axes]] External axes (1 axis is expected in the list) """ - if series_id in DWPCR_PARAMETER_TO_FRED_ID: - series_id = DWPCR_PARAMETER_TO_FRED_ID[series_id] + series_id = fred_model.DWPCR_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_dwpcr( + parameter=parameter, start_date=start_date, end_date=end_date ) # This plot has 1 axis