OP

Added __eq__ and __hash__ to Op Class and deleted them in function with props attribute.
@abergeron 
I am sorry, but i don't know what should replace "c_headers"
as for the hash, are you suggesting i simply write:
else:
super().__hash__(
?