OP

Added __eq__ and __hash__ to Op Class and deleted them in function with props attribute.
We want to put the prop in the string:
return "%s{%s}" % (self.__class__.__name__, ", ".join("%s=%s" % (k, v) for k, v in self.props())