-
-
Notifications
You must be signed in to change notification settings - Fork 18.4k
Implement numpy_helper functions directly in cython #18059
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Changes from all commits
c8f7158
ea4bef0
0b87865
387bb44
13b85d8
File filter
Filter by extension
Conversations
Jump to
Diff view
Diff view
There are no files selected for viewing
Original file line number | Diff line number | Diff line change |
---|---|---|
|
@@ -14,27 +14,7 @@ PyDateTime_IMPORT | |
|
||
from numpy cimport int64_t | ||
|
||
cdef extern from "numpy/ndarrayobject.h": | ||
ctypedef int64_t npy_timedelta | ||
ctypedef int64_t npy_datetime | ||
|
||
cdef extern from "../src/datetime/np_datetime.h": | ||
ctypedef enum PANDAS_DATETIMEUNIT: | ||
PANDAS_FR_Y | ||
PANDAS_FR_M | ||
PANDAS_FR_W | ||
PANDAS_FR_D | ||
PANDAS_FR_B | ||
PANDAS_FR_h | ||
PANDAS_FR_m | ||
PANDAS_FR_s | ||
PANDAS_FR_ms | ||
PANDAS_FR_us | ||
PANDAS_FR_ns | ||
PANDAS_FR_ps | ||
PANDAS_FR_fs | ||
PANDAS_FR_as | ||
|
||
int cmp_pandas_datetimestruct(pandas_datetimestruct *a, | ||
pandas_datetimestruct *b) | ||
|
||
|
@@ -48,6 +28,32 @@ cdef extern from "../src/datetime/np_datetime.h": | |
|
||
pandas_datetimestruct _NS_MIN_DTS, _NS_MAX_DTS | ||
|
||
# ---------------------------------------------------------------------- | ||
# numpy object inspection | ||
|
||
cdef inline npy_datetime get_datetime64_value(object obj) nogil: | ||
""" | ||
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. Can you make the docstrings more descriptive? Something like There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. Good idea, will change. |
||
returns the int64 value underlying scalar numpy datetime64 object | ||
|
||
Note that to interpret this as a datetime, the corresponding unit is | ||
also needed. That can be found using `get_datetime64_unit`. | ||
""" | ||
return (<PyDatetimeScalarObject*>obj).obval | ||
|
||
|
||
cdef inline npy_timedelta get_timedelta64_value(object obj) nogil: | ||
""" | ||
returns the int64 value underlying scalar numpy timedelta64 object | ||
""" | ||
return (<PyTimedeltaScalarObject*>obj).obval | ||
|
||
|
||
cdef inline PANDAS_DATETIMEUNIT get_datetime64_unit(object obj) nogil: | ||
""" | ||
returns the unit part of the dtype for a numpy datetime64 object. | ||
""" | ||
return <PANDAS_DATETIMEUNIT>(<PyDatetimeScalarObject*>obj).obmeta.base | ||
|
||
# ---------------------------------------------------------------------- | ||
# Comparison | ||
|
||
|
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
so this now makes lib depend on np_datetime.pxd, which is ok as tseries_depends now lists this.