diff options
Diffstat (limited to 'python/analytics')
| -rw-r--r-- | python/analytics/basket_index.py | 10 | ||||
| -rw-r--r-- | python/analytics/index_data.py | 4 |
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 |
