diff --git a/src/metrology_apis/__init__.py b/src/metrology_apis/__init__.py index 2fa8280..9deff66 100644 --- a/src/metrology_apis/__init__.py +++ b/src/metrology_apis/__init__.py @@ -44,3 +44,62 @@ def unit(self) -> U: ... def __eq__[B]( # type: ignore[override] # pyright: ignore[reportIncompatibleMethodOverride] self: "Quantity[V, U]", other: "Quantity[op.CanEq[V, B], U]", / ) -> B: ... + + @override + def __ne__[B]( # type: ignore[override] # pyright: ignore[reportIncompatibleMethodOverride] + self: "Quantity[V, U]", other: "Quantity[op.CanEq[V, B], U]", / + ) -> B: ... + + def __lt__[B]( + self: "Quantity[V, U]", other: "Quantity[op.CanLt[V, B], U]", / + ) -> B: ... + def __le__[B]( + self: "Quantity[V, U]", other: "Quantity[op.CanLe[V, B], U]", / + ) -> B: ... + def __gt__[B]( + self: "Quantity[V, U]", other: "Quantity[op.CanGt[V, B], U]", / + ) -> B: ... + def __ge__[B]( + self: "Quantity[V, U]", other: "Quantity[op.CanGe[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[op.JustInt | op.JustFloat, R], U]", + other: op.JustInt | op.JustFloat, + /, + ) -> "Quantity[R, U]": ... + def __rpow__[R]( + self: "Quantity[op.CanRPow[op.JustInt | op.JustFloat, R], U]", + other: op.JustInt | op.JustFloat, + /, + ) -> "Quantity[R, U]": ...