OP

Added __eq__ and __hash__ to Op Class and deleted them in function with props attribute.
Currently it don't work, as we only have the values. So it should be

return "%s{%s}" % (self.class.name, ", ".join(str(p) for p in self.props())