| 126 | } |
| 127 | |
| 128 | def cast_for_truediv( |
| 129 | arrow_array: pa.ChunkedArray, pa_object: pa.Array | pa.Scalar |
| 130 | ) -> tuple[pa.ChunkedArray, pa.Array | pa.Scalar]: |
| 131 | # Ensure int / int -> float mirroring Python/Numpy behavior |
| 132 | # as pc.divide_checked(int, int) -> int |
| 133 | if pa.types.is_integer(arrow_array.type) and pa.types.is_integer( |
| 134 | pa_object.type |
| 135 | ): |
| 136 | # GH: 56645. |
| 137 | # https://github.com/apache/arrow/issues/35563 |
| 138 | return pc.cast(arrow_array, pa.float64(), safe=False), pc.cast( |
| 139 | pa_object, pa.float64(), safe=False |
| 140 | ) |
| 141 | |
| 142 | return arrow_array, pa_object |
| 143 | |
| 144 | def floordiv_compat( |
| 145 | left: pa.ChunkedArray | pa.Array | pa.Scalar, |