diff options
author | Yury Selivanov <yselivanov@sprymix.com> | 2015-05-14 22:33:14 (GMT) |
---|---|---|
committer | Yury Selivanov <yselivanov@sprymix.com> | 2015-05-14 22:33:14 (GMT) |
commit | 6b4046f062760a26d7668b0f56ae34adf6cfcf2d (patch) | |
tree | a123f127e2ddb92559ba8ea786ed2f2d30e6c45c | |
parent | 4cfd4eac7d082b507a55535f90a7067f372c5e2d (diff) | |
parent | 692b340092c603e21f43d4116b2cc24d14fc8b04 (diff) | |
download | cpython-6b4046f062760a26d7668b0f56ae34adf6cfcf2d.zip cpython-6b4046f062760a26d7668b0f56ae34adf6cfcf2d.tar.gz cpython-6b4046f062760a26d7668b0f56ae34adf6cfcf2d.tar.bz2 |
Merge
-rw-r--r-- | Lib/inspect.py | 32 |
1 files changed, 22 insertions, 10 deletions
diff --git a/Lib/inspect.py b/Lib/inspect.py index 9f4d005..ef2407c 100644 --- a/Lib/inspect.py +++ b/Lib/inspect.py @@ -2353,11 +2353,15 @@ class Parameter: return hash((self.name, self.kind, self.annotation, self.default)) def __eq__(self, other): - return (issubclass(other.__class__, Parameter) and - self._name == other._name and - self._kind == other._kind and - self._default == other._default and - self._annotation == other._annotation) + return (self is other or + (issubclass(other.__class__, Parameter) and + self._name == other._name and + self._kind == other._kind and + self._default == other._default and + self._annotation == other._annotation)) + + def __ne__(self, other): + return not self.__eq__(other) class BoundArguments: @@ -2441,9 +2445,13 @@ class BoundArguments: return kwargs def __eq__(self, other): - return (issubclass(other.__class__, BoundArguments) and - self.signature == other.signature and - self.arguments == other.arguments) + return (self is other or + (issubclass(other.__class__, BoundArguments) and + self.signature == other.signature and + self.arguments == other.arguments)) + + def __ne__(self, other): + return not self.__eq__(other) def __setstate__(self, state): self._signature = state['_signature'] @@ -2663,8 +2671,12 @@ class Signature: return hash((params, kwo_params, return_annotation)) def __eq__(self, other): - return (isinstance(other, Signature) and - self._hash_basis() == other._hash_basis()) + return (self is other or + (isinstance(other, Signature) and + self._hash_basis() == other._hash_basis())) + + def __ne__(self, other): + return not self.__eq__(other) def _bind(self, args, kwargs, *, partial=False): """Private method. Don't use directly.""" |