diff options
Diffstat (limited to 'lib/portage/dep/soname/SonameAtom.py')
-rw-r--r-- | lib/portage/dep/soname/SonameAtom.py | 15 |
1 files changed, 7 insertions, 8 deletions
diff --git a/lib/portage/dep/soname/SonameAtom.py b/lib/portage/dep/soname/SonameAtom.py index 2308b31fd..421ab3f5a 100644 --- a/lib/portage/dep/soname/SonameAtom.py +++ b/lib/portage/dep/soname/SonameAtom.py @@ -3,7 +3,6 @@ class SonameAtom: - __slots__ = ("multilib_category", "soname", "_hash_key", "_hash_value") # Distiguishes package atoms from other atom types @@ -21,11 +20,15 @@ class SonameAtom: ) def __getstate__(self): - return dict((k, getattr(self, k)) for k in self.__slots__) + state = {k: getattr(self, k) for k in self.__slots__} + # hash() results are not meaningfully picklable. + state["_hash_value"] = None + return state def __setstate__(self, state): for k, v in state.items(): object.__setattr__(self, k, v) + object.__setattr__(self, "_hash_value", hash(self._hash_key)) def __hash__(self): return self._hash_value @@ -43,14 +46,10 @@ class SonameAtom: return True def __repr__(self): - return "%s('%s', '%s')" % ( - self.__class__.__name__, - self.multilib_category, - self.soname, - ) + return f"{self.__class__.__name__}('{self.multilib_category}', '{self.soname}')" def __str__(self): - return "%s: %s" % (self.multilib_category, self.soname) + return f"{self.multilib_category}: {self.soname}" def match(self, pkg): """ |