bpo-37685: Fixed __eq__, __lt__ etc implementations in some classes. (GH-14952)
They now return NotImplemented for unsupported type of the other operand.
diff --git a/Lib/distutils/version.py b/Lib/distutils/version.py
index af14cc1..c33beba 100644
--- a/Lib/distutils/version.py
+++ b/Lib/distutils/version.py
@@ -166,6 +166,8 @@
def _cmp (self, other):
if isinstance(other, str):
other = StrictVersion(other)
+ elif not isinstance(other, StrictVersion):
+ return NotImplemented
if self.version != other.version:
# numeric versions don't match
@@ -331,6 +333,8 @@
def _cmp (self, other):
if isinstance(other, str):
other = LooseVersion(other)
+ elif not isinstance(other, LooseVersion):
+ return NotImplemented
if self.version == other.version:
return 0