Include `math.sign`

Take a look at my comment over here:

It just isn’t well defined to try to duck-type these things. There are many different numeric and non-numeric types in Python that implement operators like < and == in many different ways returning varying types and having varying semantics.

If you want well-defined predictable behaviour then you need a well-defined and predictable way of getting the inputs to known numeric types and __float__ is the math module’s way of doing that.