From 90ed7c90079db75bf229d0a2af3852826dca8312 Mon Sep 17 00:00:00 2001 From: Thomas Li <47963215+lithomas1@users.noreply.github.com> Date: Thu, 7 Mar 2024 18:48:35 -0500 Subject: [PATCH 1/5] COMPAT: Adapt to Numpy 2.0 dtype changes --- pandas/_libs/src/vendored/numpy/datetime/np_datetime.c | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/pandas/_libs/src/vendored/numpy/datetime/np_datetime.c b/pandas/_libs/src/vendored/numpy/datetime/np_datetime.c index 277d01807f2f3..49106dab39454 100644 --- a/pandas/_libs/src/vendored/numpy/datetime/np_datetime.c +++ b/pandas/_libs/src/vendored/numpy/datetime/np_datetime.c @@ -1070,5 +1070,10 @@ void pandas_timedelta_to_timedeltastruct(npy_timedelta td, */ PyArray_DatetimeMetaData get_datetime_metadata_from_dtype(PyArray_Descr *dtype) { +#if NPY_ABI_VERSION >= 0x02000000 + // we're compiling with numpy > 2.0 + return PyDataType_C_METADATA(dtype)->meta; +#else return (((PyArray_DatetimeDTypeMetaData *)dtype->c_metadata)->meta); +#endif } From 3c8a660f4c5fef93e83b2a44d23d67b8b67ef862 Mon Sep 17 00:00:00 2001 From: Thomas Li <47963215+lithomas1@users.noreply.github.com> Date: Thu, 7 Mar 2024 19:28:27 -0500 Subject: [PATCH 2/5] changes --- pandas/_libs/src/vendored/numpy/datetime/np_datetime.c | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/pandas/_libs/src/vendored/numpy/datetime/np_datetime.c b/pandas/_libs/src/vendored/numpy/datetime/np_datetime.c index 49106dab39454..22ea5f72ee521 100644 --- a/pandas/_libs/src/vendored/numpy/datetime/np_datetime.c +++ b/pandas/_libs/src/vendored/numpy/datetime/np_datetime.c @@ -1072,7 +1072,8 @@ PyArray_DatetimeMetaData get_datetime_metadata_from_dtype(PyArray_Descr *dtype) { #if NPY_ABI_VERSION >= 0x02000000 // we're compiling with numpy > 2.0 - return PyDataType_C_METADATA(dtype)->meta; + _PyArray_LegacyDescr *ldtype = (_PyArray_LegacyDescr *)dtype; + return (((PyArray_DatetimeDTypeMetaData *)ldtype->c_metadata)->meta); #else return (((PyArray_DatetimeDTypeMetaData *)dtype->c_metadata)->meta); #endif From 283d9d30a4e8eaa61bb7c80b21e25d343e313497 Mon Sep 17 00:00:00 2001 From: Thomas Li <47963215+lithomas1@users.noreply.github.com> Date: Fri, 8 Mar 2024 09:45:47 -0500 Subject: [PATCH 3/5] suggestion --- .../_libs/src/vendored/numpy/datetime/np_datetime.c | 11 ++++------- 1 file changed, 4 insertions(+), 7 deletions(-) diff --git a/pandas/_libs/src/vendored/numpy/datetime/np_datetime.c b/pandas/_libs/src/vendored/numpy/datetime/np_datetime.c index 22ea5f72ee521..37d9de7e23e0f 100644 --- a/pandas/_libs/src/vendored/numpy/datetime/np_datetime.c +++ b/pandas/_libs/src/vendored/numpy/datetime/np_datetime.c @@ -1070,11 +1070,8 @@ void pandas_timedelta_to_timedeltastruct(npy_timedelta td, */ PyArray_DatetimeMetaData get_datetime_metadata_from_dtype(PyArray_Descr *dtype) { -#if NPY_ABI_VERSION >= 0x02000000 - // we're compiling with numpy > 2.0 - _PyArray_LegacyDescr *ldtype = (_PyArray_LegacyDescr *)dtype; - return (((PyArray_DatetimeDTypeMetaData *)ldtype->c_metadata)->meta); -#else - return (((PyArray_DatetimeDTypeMetaData *)dtype->c_metadata)->meta); -#endif + #if NPY_ABI_VERSION < 0x02000000 + #define PyDataType_C_METADATA(descr) ((descr)->c_metadata) + #endif + return (PyDataType_C_METADATA(descr)->meta); } From 1967f2c4fe86e0da031b98f26299fd1c015c2cc2 Mon Sep 17 00:00:00 2001 From: Thomas Li <47963215+lithomas1@users.noreply.github.com> Date: Fri, 8 Mar 2024 10:21:12 -0500 Subject: [PATCH 4/5] Update pandas/_libs/src/vendored/numpy/datetime/np_datetime.c Co-authored-by: Sebastian Berg --- pandas/_libs/src/vendored/numpy/datetime/np_datetime.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/pandas/_libs/src/vendored/numpy/datetime/np_datetime.c b/pandas/_libs/src/vendored/numpy/datetime/np_datetime.c index 37d9de7e23e0f..05f8baf17973a 100644 --- a/pandas/_libs/src/vendored/numpy/datetime/np_datetime.c +++ b/pandas/_libs/src/vendored/numpy/datetime/np_datetime.c @@ -1071,7 +1071,7 @@ void pandas_timedelta_to_timedeltastruct(npy_timedelta td, PyArray_DatetimeMetaData get_datetime_metadata_from_dtype(PyArray_Descr *dtype) { #if NPY_ABI_VERSION < 0x02000000 - #define PyDataType_C_METADATA(descr) ((descr)->c_metadata) + #define PyDataType_C_METADATA(dtype) ((dtype)->c_metadata) #endif - return (PyDataType_C_METADATA(descr)->meta); + return (PyDataType_C_METADATA(dtype)->meta); } From ec2769663e18ed57b0b09a9cdc58794fdec4fa66 Mon Sep 17 00:00:00 2001 From: Joris Van den Bossche Date: Fri, 8 Mar 2024 17:01:24 +0100 Subject: [PATCH 5/5] Update pandas/_libs/src/vendored/numpy/datetime/np_datetime.c Co-authored-by: Sebastian Berg --- pandas/_libs/src/vendored/numpy/datetime/np_datetime.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/pandas/_libs/src/vendored/numpy/datetime/np_datetime.c b/pandas/_libs/src/vendored/numpy/datetime/np_datetime.c index 05f8baf17973a..955ce8a67976a 100644 --- a/pandas/_libs/src/vendored/numpy/datetime/np_datetime.c +++ b/pandas/_libs/src/vendored/numpy/datetime/np_datetime.c @@ -1073,5 +1073,5 @@ get_datetime_metadata_from_dtype(PyArray_Descr *dtype) { #if NPY_ABI_VERSION < 0x02000000 #define PyDataType_C_METADATA(dtype) ((dtype)->c_metadata) #endif - return (PyDataType_C_METADATA(dtype)->meta); + return ((PyArray_DatetimeDTypeMetaData *)PyDataType_C_METADATA(dtype))->meta; }