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")