aboutsummaryrefslogtreecommitdiffstats
path: root/python/analytics
diff options
context:
space:
mode:
Diffstat (limited to 'python/analytics')
-rw-r--r--python/analytics/basket_index.py10
-rw-r--r--python/analytics/index_data.py4
2 files changed, 8 insertions, 6 deletions
diff --git a/python/analytics/basket_index.py b/python/analytics/basket_index.py
index cf40dda9..cf865033 100644
--- a/python/analytics/basket_index.py
+++ b/python/analytics/basket_index.py
@@ -78,12 +78,12 @@ class BasketIndex(CreditIndex):
(index_type, series),
)
self._index_version = list(c)
- serenitas_pool.putconn(conn)
self._update_factor(value_date)
self.tenors = {t: m for t, m, _ in self.index_desc}
self.coupons = [r[2] for r in self.index_desc]
maturities = [r[1] for r in self.index_desc]
- curves = get_singlenames_curves_prebuilt(index_type, series, value_date)
+ curves = get_singlenames_curves_prebuilt(conn, index_type, series, value_date)
+ serenitas_pool.putconn(conn)
self.currency = "EUR" if index_type in ["XO", "EU"] else "USD"
self.yc = get_curve(value_date, self.currency)
@@ -160,7 +160,11 @@ class BasketIndex(CreditIndex):
@value_date.setter
def value_date(self, d: pd.Timestamp):
- self.curves = get_singlenames_curves_prebuilt(self.index_type, self.series, d)
+ conn = serenitas_pool.getconn()
+ self.curves = get_singlenames_curves_prebuilt(
+ conn, self.index_type, self.series, d
+ )
+ serenitas_pool.putconn(conn)
self.yc = get_curve(d, self.currency)
self._fx = get_fx(d, self.currency)
self.step_in_date = d + Day()
diff --git a/python/analytics/index_data.py b/python/analytics/index_data.py
index a31b65cd..17967f6e 100644
--- a/python/analytics/index_data.py
+++ b/python/analytics/index_data.py
@@ -252,19 +252,17 @@ def get_singlenames_curves(
return fun(index_type, series, min(datetime.date.today(), trade_date), tenors)
-def get_singlenames_curves_prebuilt(index_type, series, trade_date):
+def get_singlenames_curves_prebuilt(conn, index_type, series, trade_date):
""" load cds curves directly from cds_curves table """
if isinstance(trade_date, datetime.datetime):
trade_date = trade_date.date()
trade_date = adjust_prev_business_day(trade_date)
- conn = serenitas_pool.getconn()
with conn.cursor() as c:
c.execute(
"SELECT * FROM index_curves(%s, %s)", (f"{index_type}{series}", trade_date)
)
r = [(w, SpreadCurve.from_bytes(b, True)) for w, b in c]
- serenitas_pool.putconn(conn)
return r