Fix a bizarre typo in the helper class ComparableException: the __getattr__() method, which clearly (like the other methods) was intended to pass the __getattr__() call on to the self.err object, mistakenly returned getattr(self, self.err) rather than getattr(self.err, attr).  Since self.err is not a string, this always raises a TypeError.  Apparently that doesn't bother for the one attribute for which __getattr__() is actually called ('__coerce__'), but it broke the rich comparisons stuff that I'm trying to get into shape, so I'm fixing this now.  (I could also simply remove the __getattr__() method, but fixing it seems more in the spirit of what the ComparableException class is trying to do.)
Fix a bizarre typo in the helper class ComparableException: the
__getattr__() method, which clearly (like the other methods) was
intended to pass the __getattr__() call on to the self.err object,
mistakenly returned getattr(self, self.err) rather than
getattr(self.err, attr).  Since self.err is not a string, this always
raises a TypeError.  Apparently that doesn't bother for the one
attribute for which __getattr__() is actually called ('__coerce__'),
but it broke the rich comparisons stuff that I'm trying to get into
shape, so I'm fixing this now.  (I could also simply remove the
__getattr__() method, but fixing it seems more in the spirit of what
the ComparableException class is trying to do.)

sk-/python2.7-type-annotator,sk-/python2.7-type-annotator,sk-/python2.7-type-annotator