| 123 | |
| 124 | template <int TYPE> |
| 125 | Status Visit(PyArrayObject* arr) { |
| 126 | typedef internal::npy_traits<TYPE> traits; |
| 127 | |
| 128 | const bool null_sentinels_possible = |
| 129 | // Always treat Numpy's NaT as null |
| 130 | TYPE == NPY_DATETIME || TYPE == NPY_TIMEDELTA || |
| 131 | // Observing pandas's null sentinels |
| 132 | (from_pandas_ && traits::supports_nulls); |
| 133 | |
| 134 | if (null_sentinels_possible) { |
| 135 | RETURN_NOT_OK(AllocateNullBitmap(pool_, PyArray_SIZE(arr), &null_bitmap_)); |
| 136 | null_count_ = ValuesToBitmap<TYPE>(arr, null_bitmap_->mutable_data()); |
| 137 | } |
| 138 | return Status::OK(); |
| 139 | } |
| 140 | |
| 141 | protected: |
| 142 | NumPyNullsConverter(MemoryPool* pool, PyArrayObject* arr, bool from_pandas) |
nothing calls this directly
no test coverage detected