aboutsummaryrefslogtreecommitdiffstats
path: root/python/analytics/index.py
diff options
context:
space:
mode:
Diffstat (limited to 'python/analytics/index.py')
-rw-r--r--python/analytics/index.py9
1 files changed, 8 insertions, 1 deletions
diff --git a/python/analytics/index.py b/python/analytics/index.py
index ab32fa89..8e3e9684 100644
--- a/python/analytics/index.py
+++ b/python/analytics/index.py
@@ -11,6 +11,7 @@ try:
from bbg_helpers import BBG_IP, retrieve_data, init_bbg_session
except ModuleNotFoundError:
pass
+from itertools import chain
from pandas.tseries.offsets import BDay
from pyisda.curve import SpreadCurve
from pyisda.date import previous_twentieth
@@ -386,7 +387,13 @@ class ForwardIndex:
self.index.ref = val
def __hash__(self):
- return hash(tuple(getattr(self, k) for k in ForwardIndex.__slots__[:-1]))
+ return hash(
+ tuple(
+ getattr(self, k)
+ for k in chain.from_iterable(c.__slots__ for c in type(self).mro()[:-1])
+ if not k.startswith("__")
+ )
+ )
def _update(self, *args):
self.df = self.index._yc.discount_factor(self.exercise_date_settle)