refactor through central banks

This commit is contained in:
james
2023-02-22 15:37:58 -05:00
parent 9d21b61960
commit 8abfcac2b9
3 changed files with 32 additions and 15 deletions

View File

@@ -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,

View File

@@ -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)

View File

@@ -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