diff options
| -rw-r--r-- | python/new_index_series.py | 21 |
1 files changed, 12 insertions, 9 deletions
diff --git a/python/new_index_series.py b/python/new_index_series.py index 879228fe..7c2aea0d 100644 --- a/python/new_index_series.py +++ b/python/new_index_series.py @@ -1,6 +1,5 @@ from serenitas.analytics.bbg_helpers import init_bbg_session, retrieve_data from serenitas.analytics.dates import roll_date -from psycopg2.extras import execute_values import datetime import pandas as pd @@ -37,20 +36,24 @@ def new_basket_id( name = bbg_name(index_type, series, version=version) data = retrieve_data(session, [name], ["CDS_RED_PAIR_CODE"]) red = data[name]["CDS_RED_PAIR_CODE"] - sql_str = ( - "INSERT INTO index_version(index, series, version, redindexcode) " - "VALUES(%s, %s, %s, %s) RETURNING basketid" + sql_series = ( + "INSERT INTO index_series(index, series) VALUES(%s, %s) RETURNING index_id" + ) + sql_version = ( + "INSERT INTO index_factors(index_id, version, redindexcode) " + "VALUES(%s, %s, %s) RETURNING basketid" ) with conn.cursor() as c: - c.execute(sql_str, (index_type, series, version, red)) + c.execute(sql_series, (index_type, series)) + (index_id,) = c.fetchone() + c.execute(sql_version, (index_id, version, red)) (basket_id,) = c.fetchone() maturities = [mat_5yr.replace(year=mat_5yr.year + off) for off in [-2, 0, 2, 5]] with conn.cursor() as c: - execute_values( - c, - "INSERT INTO index_maturity VALUES %s", + c.executemany( + "INSERT INTO index_maturities(index_id, tenor, maturity, coupon) VALUES (%s, %s, %s, %s)", [ - (index_type, series, t, m, coupon) + (index_id, t, m, coupon) for t, m in zip(["3yr", "5yr", "7yr", "10yr"], maturities) ], ) |
