diff options
Diffstat (limited to 'python/analytics/index.py')
| -rw-r--r-- | python/analytics/index.py | 9 |
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) |
