| 406 | } |
| 407 | |
| 408 | bool PandasObjectIsNull(PyObject* obj) { |
| 409 | if (!MayHaveNaN(obj)) { |
| 410 | return false; |
| 411 | } |
| 412 | if (obj == Py_None) { |
| 413 | return true; |
| 414 | } |
| 415 | if (PyFloat_IsNaN(obj) || (pandas_NA && obj == pandas_NA) || |
| 416 | (pandas_NaTType && PyObject_TypeCheck(obj, pandas_NaTType)) || |
| 417 | (internal::PyDecimal_Check(obj) && internal::PyDecimal_ISNAN(obj))) { |
| 418 | return true; |
| 419 | } |
| 420 | return false; |
| 421 | } |
| 422 | |
| 423 | bool IsPandasTimedelta(PyObject* obj) { |
| 424 | return pandas_Timedelta && PyObject_IsInstance(obj, pandas_Timedelta); |
no test coverage detected