aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--python/position.py33
1 files changed, 19 insertions, 14 deletions
diff --git a/python/position.py b/python/position.py
index 5b3157bf..6be0f477 100644
--- a/python/position.py
+++ b/python/position.py
@@ -1,19 +1,16 @@
-from bbg_helpers import init_bbg_session, retrieve_data, BBG_IP
+from serenitas.analytics.bbg_helpers import init_bbg_session, retrieve_data, BBG_IP
import datetime
import numpy as np
import pandas as pd
-from pandas.tseries.offsets import BDay
from pandas import bdate_range
-from sqlalchemy import create_engine
import re
import os
import logging
-import sys
def get_list(
engine,
- workdate: datetime.datetime = None,
+ workdate: datetime.date = None,
asset_class=None,
include_unsettled: bool = True,
fund="SERCGMAST",
@@ -22,7 +19,7 @@ def get_list(
positions = pd.read_sql_query(
"SELECT identifier, bbg_type FROM " "list_positions(%s, %s, %s, %s)",
engine,
- params=(workdate.date(), asset_class, include_unsettled, fund),
+ params=(workdate, asset_class, include_unsettled, fund),
)
positions.loc[
positions.identifier.str.len() <= 11, "cusip"
@@ -100,7 +97,9 @@ def update_securities(engine, session, workdate):
["PREV_CPN_DT", "START_ACC_DT", "CUR_CPN", "CPN_ASOF_DT"],
)
data = pd.DataFrame.from_dict(data, orient="index")
- data = data[data.CPN_ASOF_DT.isnull() | (data.CPN_ASOF_DT <= workdate)]
+ data = data[
+ data.CPN_ASOF_DT.isnull() | (data.CPN_ASOF_DT <= pd.Timestamp(workdate))
+ ]
m = securities.merge(data, left_index=True, right_index=True)
conn = engine.raw_connection()
@@ -371,18 +370,24 @@ def populate_cashflow_history(engine, session, workdate=None, fund="SERCGMAST"):
if __name__ == "__main__":
- from utils.db import serenitas_pool, dawn_engine
+ from serenitas.utils.db import serenitas_pool, dawn_engine
+ import argparse
+
+ parser = argparse.ArgumentParser()
+ parser.add_argument(
+ "workdate",
+ nargs="?",
+ type=datetime.date.fromisoformat,
+ default=datetime.date.today(),
+ )
+ args = parser.parse_args()
dawn_conn = dawn_engine.raw_connection()
serenitas_conn = serenitas_pool.getconn()
- if len(sys.argv) > 1:
- workdate = pd.Timestamp(sys.argv[1])
- else:
- workdate = pd.Timestamp.now().normalize()
with init_bbg_session(BBG_IP) as session:
- update_securities(dawn_engine, session, workdate)
+ update_securities(dawn_engine, session, args.workdate)
for fund in ("SERCGMAST", "BRINKER", "BOWDST"):
- populate_cashflow_history(dawn_engine, session, workdate, fund)
+ populate_cashflow_history(dawn_engine, session, args.workdate, fund)
update_fx(dawn_conn, session, ["EURUSD", "CADUSD"])
update_swap_rates(serenitas_conn, session)
update_cash_rates(serenitas_conn, session)