dataclasses makes it easy to just add your own `__eq__` method, if the default doesn't suit you. You just define it! Nothing else is required.
So I wouldn't be so quick to abandon dataclasses in such a case.
So I wouldn't be so quick to abandon dataclasses in such a case.
That's completely besides the point, and lots of non-data objects should not be equatable at all, if they even can technically be.
This was in reply to this objection:
> eq is a property of the domain itself; two objects are only equal if it makes sense in the domain logic for them to be equal, and in many cases that equality is more or less complicated than attribute equality.