Proper __hash__ and __eq__ for transforms.
[tabakrolletjie.git] / tabakrolletjie / transforms.py
index 70ff036160618b51c2c5cd3651310172a23f6a36..c5eb05f64e7d85739910eb2f89e1e4f428095070 100644 (file)
@@ -11,11 +11,22 @@ class Transform(object):
         for k in self.ARGS:
             setattr(self, k, kw.pop(k))
         assert not kw
-        self.hash = "%s: <%s>" % (
+        self._repr = "%s: <%s>" % (
             self.__class__.__name__,
             ", ".join("%s=%s" % (k, getattr(self, k)) for k in self.ARGS))
         return
 
+    def __repr__(self):
+        return self._repr
+
+    def __hash__(self):
+        return hash(self._repr)
+
+    def __eq__(self, other):
+        if not isinstance(other, Transform):
+            return NotImplemented
+        return self._repr == other._repr
+
     def apply(self, surface):
         raise NotImplementedError("Transforms should implement .apply")