from operator import ne as _uncast_ne
from operator import neg as _uncast_neg
from operator import or_ as _uncast_or_
+from operator import pow as _uncast_pow
from operator import rshift as _uncast_rshift
from operator import sub as _uncast_sub
from operator import truediv as _uncast_truediv
ne = cast(OperatorType, _uncast_ne)
neg = cast(OperatorType, _uncast_neg)
or_ = cast(OperatorType, _uncast_or_)
+pow = cast(OperatorType, _uncast_pow)
rshift = cast(OperatorType, _uncast_rshift)
sub = cast(OperatorType, _uncast_sub)
truediv = cast(OperatorType, _uncast_truediv)
"""
return self.reverse_operate(floordiv, other)
+ def __pow__(self, other) -> ColumnOperators:
+ """Implement the ``**`` operator.
+
+ In a column context, produces the clause ``pow(a, b)``
+ """
+ return self.operate(pow, other)
+
+ def __rpow__(self, other) -> ColumnOperators:
+ """Implement the ``**`` operator in reverse.
+
+ See :meth:`.ColumnOperators.__pow__`.
+
+ """
+
_commutative: Set[Any] = {eq, ne, add, mul}
_comparison: Set[Any] = {eq, ne, lt, gt, ge, le}