OP

Added __eq__ and __hash__ to Op Class and deleted them in function with props attribute.
"c_headers"?  That's a case of bad copy-paste.

Also, I don't think that __hash__ can handle the MethodNotDefined exception.  I would defer to super().__hash__() instead.