def mul(self, left: IndexOpsLike, right: Any) -> SeriesOrIndex: _sanitize_list_like(right) if not is_valid_operand_for_numeric_arithmetic(right): raise TypeError( "Multiplication can not be applied to %s and the given type." % self.pretty_name ) if isinstance(right, bool): return left.__and__(right) elif isinstance(right, numbers.Number): left = transform_boolean_operand_to_numeric(left, spark_type=as_spark_type(type(right))) return left * right else: assert isinstance(right, IndexOpsMixin) if isinstance(right, IndexOpsMixin) and isinstance(right.spark.data_type, BooleanType): return left.__and__(right) else: left = transform_boolean_operand_to_numeric(left, spark_type=right.spark.data_type) return left * right
def rmul(self, left: IndexOpsLike, right: Any) -> SeriesOrIndex: if isinstance(right, bool): return left.__and__(right) elif isinstance(right, numbers.Number): left = left.spark.transform( lambda scol: scol.cast(as_spark_type(type(right)))) return right * left else: raise TypeError( "Multiplication can not be applied to %s and the given type." % self.pretty_name)
def rmul(self, left: IndexOpsLike, right: Any) -> SeriesOrIndex: if isinstance(right, bool): return left.__and__(right) elif isinstance(right, numbers.Number): left = transform_boolean_operand_to_numeric( left, spark_type=as_spark_type(type(right))) return right * left else: raise TypeError( "Multiplication can not be applied to %s and the given type." % self.pretty_name)
def rand(self, left: IndexOpsLike, right: Any) -> SeriesOrIndex: _sanitize_list_like(right) return left.__and__(right)
def rand(self, left: IndexOpsLike, right: Any) -> SeriesOrIndex: return left.__and__(right)