aboutsummaryrefslogtreecommitdiffstats
path: root/python/bespoke_utils.py
diff options
context:
space:
mode:
Diffstat (limited to 'python/bespoke_utils.py')
-rw-r--r--python/bespoke_utils.py24
1 files changed, 18 insertions, 6 deletions
diff --git a/python/bespoke_utils.py b/python/bespoke_utils.py
index 19ac4919..2ff93e59 100644
--- a/python/bespoke_utils.py
+++ b/python/bespoke_utils.py
@@ -54,7 +54,7 @@ def insert_bbg_markit_mapping(conn: connection, d: Dict[str, Tuple[str, str]], d
mkit_tier, 100, seniority))
conn.commit()
-def backpopulate_short_codes(conn):
+def backpopulate_short_codes(conn: connection):
with conn.cursor() as c:
c.execute("SELECT cds_curve[6] from bbg_issuers")
securities = [f"{t} Corp" for t, in c]
@@ -74,7 +74,7 @@ def backpopulate_short_codes(conn):
conn.commit()
def get_bbg_ids(conn: connection, df: pd.DataFrame,
- date: datetime.date = datetime.date.today()):
+ date: datetime.date = datetime.date.today()) -> pd.DataFrame:
df_mapping = pd.read_sql_query("SELECT company_id, markit_ticker, markit_tier, "
"seniority FROM historical_cds_issuers(%s) "
"WHERE markit_ticker IS NOT NULL",
@@ -86,8 +86,19 @@ def get_bbg_ids(conn: connection, df: pd.DataFrame,
df.company_id = df.company_id.astype("Int64")
return df
-def add_basketid(conn: connection, basketid: int,
- df: pd.DataFrame = pd.read_clipboard(header=None)):
+def get_basketid(conn: connection, name: str) -> Tuple[int, int]:
+ with conn.cursor() as c:
+ c.execute("SELECT max(series)+1 FROM index_version where index='BS'")
+ serie, = c.fetchone()
+ c.execute("INSERT INTO index_version(index, series, version, redindexcode) "
+ "VALUES('BS', %s, 1, %s) RETURNING basketid",
+ (serie, name))
+ basket_id, = c.fetchone()
+ conn.commit()
+ return serie, basket_id
+
+def add_basket_constituents(conn: connection, basketid: int,
+ df: pd.DataFrame = pd.read_clipboard(header=None)):
df_bbg = get_bbg_ids(conn, df.iloc[:, :2])
df.columns = ["markit_ticker", "markit_tier", "weight"]
@@ -106,7 +117,8 @@ if __name__ == "__main__":
df = get_bbg_ids(conn, pd.read_clipboard(header=None))
#missing tickers
missing_tickers = df[df.company_id.isnull()]
- bbg_tickers = df[1].to_list()
+ df_mapping = pd.read_clipboard(header=None)
+ bbg_tickers = df_mapping[1].to_list()
d = insert_bbg_tickers(conn, bbg_tickers)
- insert_bbg_markit_mapping(conn, d)
+ insert_bbg_markit_mapping(conn, d, df_mapping)
serenitas_pool.putconn(conn)