Issue #13727: Add 3 macros to access PyDateTime_Delta members:

PyDateTime_DELTA_GET_DAYS, PyDateTime_DELTA_GET_SECONDS,
PyDateTime_DELTA_GET_MICROSECONDS.

Please use them instead of directly accessing PyDateTime_Delta struct members.
This commit is contained in:
Amaury Forgeot d'Arc 2012-01-17 21:31:50 +01:00
parent 0174db50a5
commit 5e8260b09c
3 changed files with 35 additions and 0 deletions

View File

@ -170,6 +170,31 @@ and the type is not checked:
Return the microsecond, as an int from 0 through 999999.
Macros to extract fields from time delta objects. The argument must be an
instance of :c:data:`PyDateTime_Delta`, including subclasses. The argument must
not be *NULL*, and the type is not checked:
.. c:function:: int PyDateTime_DELTA_GET_DAYS(PyDateTime_Delta *o)
Return the number of days, as an int from -999999999 to 999999999.
.. versionadded:: 3.3
.. c:function:: int PyDateTime_DELTA_GET_SECONDS(PyDateTime_Delta *o)
Return the number of seconds, as an int from 0 through 86399.
.. versionadded:: 3.3
.. c:function:: int PyDateTime_DELTA_GET_MICROSECOND(PyDateTime_Delta *o)
Return the number of microseconds, as an int from 0 through 999999.
.. versionadded:: 3.3
Macros for the convenience of modules implementing the DB API:
.. c:function:: PyObject* PyDateTime_FromTimestamp(PyObject *args)

View File

@ -135,6 +135,12 @@ typedef struct
(((PyDateTime_Time*)o)->data[4] << 8) | \
((PyDateTime_Time*)o)->data[5])
/* Apply for time delta instances */
#define PyDateTime_DELTA_GET_DAYS(o) (((PyDateTime_Delta*)o)->days)
#define PyDateTime_DELTA_GET_SECONDS(o) (((PyDateTime_Delta*)o)->seconds)
#define PyDateTime_DELTA_GET_MICROSECONDS(o) \
(((PyDateTime_Delta*)o)->microseconds)
/* Define structure for C API. */
typedef struct {

View File

@ -2056,6 +2056,10 @@ Tests
C-API
-----
- Issue #13727: Add 3 macros to access PyDateTime_Delta members:
PyDateTime_DELTA_GET_DAYS, PyDateTime_DELTA_GET_SECONDS,
PyDateTime_DELTA_GET_MICROSECONDS.
- Issue #10542: Add 4 macros to work with surrogates: Py_UNICODE_IS_SURROGATE,
Py_UNICODE_IS_HIGH_SURROGATE, Py_UNICODE_IS_LOW_SURROGATE,
Py_UNICODE_JOIN_SURROGATES.