diff options
Diffstat (limited to 'python')
| -rw-r--r-- | python/analytics/basket_index.py | 21 |
1 files changed, 10 insertions, 11 deletions
diff --git a/python/analytics/basket_index.py b/python/analytics/basket_index.py index f3addf9b..d595eef6 100644 --- a/python/analytics/basket_index.py +++ b/python/analytics/basket_index.py @@ -10,6 +10,13 @@ import datetime from scipy.optimize import brentq from pandas.tseries.offsets import BDay +def make_index(t, d, args): + instance = t.__new__(t) + for k, v in d.items(): + setattr(instance, k, v) + CreditIndex.__init__(instance, *args) + return instance + class BasketIndex(CreditIndex): index_type: str series: int @@ -51,18 +58,10 @@ class BasketIndex(CreditIndex): self.tweaks = [] super().__init__(self.issue_date, maturities, curves) - def __getstate__(self): + def __reduce__(self): _, args = CreditIndex.__reduce__(self) - return (self.__dict__.copy(), args) - - def __setstate__(self, state): - self.__dict__.update(state[0]) - print("I'm here") - print(state[1]) - CreditIndex.__init__(self, *state[1]) - - def __hash__(self): - return CreditIndex.__hash__(self) + d = vars(self) + return partial(make_index, self.__class__), (d, args) def _query_version(self, i): for lastdate, *data in self._version: |
