diff --git a/src/metrology_apis/__init__.py b/src/metrology_apis/__init__.py index be4d38e..ae99bcc 100644 --- a/src/metrology_apis/__init__.py +++ b/src/metrology_apis/__init__.py @@ -36,5 +36,27 @@ def value(self) -> V: ... def unit(self) -> U: ... ### Dunder Methods - def __eq__[B](self: "Quantity[V, U]", other: "Quantity[op.CanEq[V, B], U]", /) -> B: ... + def __ne__[B](self: "Quantity[V, U]", other: "Quantity[op.CanEq[V, B], U]", /) -> B: ... + def __lt__[B](self: "Quantity[V, U]", other: "Quantity[op.CanOrd[V, B], U]", /) -> B: ... + def __le__[B](self: "Quantity[V, U]", other: "Quantity[op.CanOrd[V, B], U]", /) -> B: ... + def __gt__[B](self: "Quantity[V, U]", other: "Quantity[op.CanOrd[V, B], U]", /) -> B: ... + def __ge__[B](self: "Quantity[V, U]", other: "Quantity[op.CanOrd[V, B], U]", /) -> B: ... + + def __pos__[R](self: "Quantity[op.CanPos[R], U]") -> "Quantity[R, U]": ... + def __neg__[R](self: "Quantity[op.CanNeg[R], U]") -> "Quantity[R, U]": ... + def __abs__[R](self: "Quantity[op.CanAbs[R], U]") -> "Quantity[R, U]": ... + + def __add__[R](self: "Quantity[V, U]", other: "Quantity[op.CanRAdd[V, R], U", /) -> "Quantity[R, U]": ... + def __radd__[R](self: "Quantity[V, U]", other: "Quantity[op.CanAdd[V, R], U]", /) -> "Quantity[R, U]": ... + def __sub__[R](self: "Quantity[V, U]", other: "Quantity[op.CanRSub[V, R], U]", /) -> "Quantity[R, U]": ... + def __rsub__[R](self: "Quantity[V, U]", other: "Quantity[op.CanSub[V, R], U]", /) -> "Quantity[R, U]": ... + + def __mul__[R](self: "Quantity[V, U]", other: "Quantity[op.CanRMul[V, R], U]", /) -> "Quantity[R, U]": ... + def __rmul__[R](self: "Quantity[V, U]", other: "Quantity[op.CanMul[V, R], U]", /) -> "Quantity[R, U]": ... + def __truediv__[R](self: "Quantity[V, U]", other: "Quantity[op.CanRTruediv[V, R], U]", /) -> "Quantity[R, U]": ... + def __rtruediv__[R](self: "Quantity[V, U]", other: "Quantity[op.CanTruediv[V, R], U]", /) -> "Quantity[R, U]": ... + + def __pow__[R](self: "Quantity[op.CanPow2[int | float, R], U]", other: int | float, /) -> "Quantity[R, U]": ... + def __rpow__[R](self: "Quantity[op.CanRPow2[int | float, R], U]", other: int | float, /) -> "Quantity[R, U]": ... +