diff options
Diffstat (limited to 'python')
| -rw-r--r-- | python/risk/bonds.py | 17 |
1 files changed, 6 insertions, 11 deletions
diff --git a/python/risk/bonds.py b/python/risk/bonds.py index 8b5d2801..da86cfa6 100644 --- a/python/risk/bonds.py +++ b/python/risk/bonds.py @@ -221,16 +221,11 @@ def get_portfolio(date, conn, asset_class: AssetClass, fund="SERCGMAST"): conn, params=(date, asset_class.name, fund), ) - if asset_class is AssetClass.CLO: - with conn.cursor() as c: - c.execute( - "SELECT cusip, identifier FROM securities WHERE asset_class = 'CLO'" - ) - cusip_map = {identifier: cusip for cusip, identifier in c.fetchall()} - df["cusip"] = df["identifier"].replace(cusip_map) - else: # only CLOs used ISIN for now - df["cusip"] = df.identifier.str.slice(0, 9) - return df.set_index("cusip") + with conn.cursor() as c: + c.execute("SELECT identifier, figi FROM securities WHERE asset_class = 'CLO'") + figi_map = {identifier: figi for identifier, figi in c.fetchall()} + df["figi"] = df["identifier"].replace(figi_map) + return df.set_index("figi") def crt_risk(date, dawn_conn, crt_engine, fund="SERCGMAST"): @@ -302,7 +297,7 @@ def clo_risk(date, dawn_conn, et_conn, fund="SERCGMAST"): if df.empty: return None placeholders = ",".join(["%s"] * df.shape[0]) - sql_string = f"SELECT * FROM historical_cusip_risk(%s, {placeholders})" + sql_string = f"SELECT * FROM historical_tranche_risk(%s, {placeholders})" model = pd.read_sql_query( sql_string, et_conn, parse_dates=["pricingdate"], params=(date, *df.index) ) |
