comparison mercurial/context.py @ 19547:0537c0cfd87c

basectx: move __eq__ from changectx We also add type checking for extra protection.
author Sean Farley <sean.michael.farley@gmail.com>
date Mon, 05 Aug 2013 17:00:09 -0500
parents a45cf68dd9a2
children 730fdcaa791d
comparison
equal deleted inserted replaced
19546:a45cf68dd9a2 19547:0537c0cfd87c
41 def __int__(self): 41 def __int__(self):
42 return self.rev() 42 return self.rev()
43 43
44 def __repr__(self): 44 def __repr__(self):
45 return "<%s %s>" % (type(self).__name__, str(self)) 45 return "<%s %s>" % (type(self).__name__, str(self))
46
47 def __eq__(self, other):
48 try:
49 return type(self) == type(other) and self._rev == other._rev
50 except AttributeError:
51 return False
46 52
47 def rev(self): 53 def rev(self):
48 return self._rev 54 return self._rev
49 def node(self): 55 def node(self):
50 return self._node 56 return self._node
159 def __hash__(self): 165 def __hash__(self):
160 try: 166 try:
161 return hash(self._rev) 167 return hash(self._rev)
162 except AttributeError: 168 except AttributeError:
163 return id(self) 169 return id(self)
164
165 def __eq__(self, other):
166 try:
167 return self._rev == other._rev
168 except AttributeError:
169 return False
170 170
171 def __ne__(self, other): 171 def __ne__(self, other):
172 return not (self == other) 172 return not (self == other)
173 173
174 def __nonzero__(self): 174 def __nonzero__(self):