def add(self, left: IndexOpsLike, right: Any) -> SeriesOrIndex: _sanitize_list_like(right) if not is_valid_operand_for_numeric_arithmetic(right): raise TypeError( "Addition can not be applied to %s and the given type." % self.pretty_name ) if isinstance(right, bool): return left.__or__(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.__or__(right) else: left = transform_boolean_operand_to_numeric(left, spark_type=right.spark.data_type) return left + right
def radd(self, left: IndexOpsLike, right: Any) -> SeriesOrIndex: if isinstance(right, bool): return left.__or__(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( "Addition can not be applied to %s and the given type." % self.pretty_name)
def radd(self, left: IndexOpsLike, right: Any) -> SeriesOrIndex: if isinstance(right, bool): return left.__or__(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( "Addition can not be applied to %s and the given type." % self.pretty_name)
def ror(self, left: IndexOpsLike, right: Any) -> SeriesOrIndex: _sanitize_list_like(right) return left.__or__(right)
def ror(self, left: IndexOpsLike, right: Any) -> SeriesOrIndex: return left.__or__(right)