Exemple #1
0
    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
Exemple #2
0
 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)
Exemple #3
0
 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)
Exemple #4
0
 def ror(self, left: IndexOpsLike, right: Any) -> SeriesOrIndex:
     _sanitize_list_like(right)
     return left.__or__(right)
Exemple #5
0
 def ror(self, left: IndexOpsLike, right: Any) -> SeriesOrIndex:
     return left.__or__(right)