@@ -81,6 +81,7 @@ typedef struct
8181typedef struct
8282{
8383 _PyDateTime_TIMEHEAD
84+ unsigned char fold ;
8485 PyObject * tzinfo ;
8586} PyDateTime_Time ; /* hastzinfo true */
8687
@@ -108,6 +109,7 @@ typedef struct
108109typedef struct
109110{
110111 _PyDateTime_DATETIMEHEAD
112+ unsigned char fold ;
111113 PyObject * tzinfo ;
112114} PyDateTime_DateTime ; /* hastzinfo true */
113115
@@ -125,6 +127,7 @@ typedef struct
125127 ((((PyDateTime_DateTime*)o)->data[7] << 16) | \
126128 (((PyDateTime_DateTime*)o)->data[8] << 8) | \
127129 ((PyDateTime_DateTime*)o)->data[9])
130+ #define PyDateTime_DATE_GET_FOLD (o ) (((PyDateTime_DateTime*)o)->fold)
128131
129132/* Apply for time instances. */
130133#define PyDateTime_TIME_GET_HOUR (o ) (((PyDateTime_Time*)o)->data[0])
@@ -134,6 +137,7 @@ typedef struct
134137 ((((PyDateTime_Time*)o)->data[3] << 16) | \
135138 (((PyDateTime_Time*)o)->data[4] << 8) | \
136139 ((PyDateTime_Time*)o)->data[5])
140+ #define PyDateTime_TIME_GET_FOLD (o ) (((PyDateTime_Time*)o)->fold)
137141
138142/* Apply for time delta instances */
139143#define PyDateTime_DELTA_GET_DAYS (o ) (((PyDateTime_Delta*)o)->days)
@@ -162,6 +166,11 @@ typedef struct {
162166 PyObject * (* DateTime_FromTimestamp )(PyObject * , PyObject * , PyObject * );
163167 PyObject * (* Date_FromTimestamp )(PyObject * , PyObject * );
164168
169+ /* PEP 495 constructors */
170+ PyObject * (* DateTime_FromDateAndTimeAndFold )(int , int , int , int , int , int , int ,
171+ PyObject * , int , PyTypeObject * );
172+ PyObject * (* Time_FromTimeAndFold )(int , int , int , int , PyObject * , int , PyTypeObject * );
173+
165174} PyDateTime_CAPI ;
166175
167176#define PyDateTime_CAPSULE_NAME "datetime.datetime_CAPI"
@@ -217,10 +226,18 @@ static PyDateTime_CAPI *PyDateTimeAPI = NULL;
217226 PyDateTimeAPI->DateTime_FromDateAndTime(year, month, day, hour, \
218227 min, sec, usec, Py_None, PyDateTimeAPI->DateTimeType)
219228
229+ #define PyDateTime_FromDateAndTimeAndFold (year , month , day , hour , min , sec , usec , fold ) \
230+ PyDateTimeAPI->DateTime_FromDateAndTimeAndFold(year, month, day, hour, \
231+ min, sec, usec, Py_None, fold, PyDateTimeAPI->DateTimeType)
232+
220233#define PyTime_FromTime (hour , minute , second , usecond ) \
221234 PyDateTimeAPI->Time_FromTime(hour, minute, second, usecond, \
222235 Py_None, PyDateTimeAPI->TimeType)
223236
237+ #define PyTime_FromTimeAndFold (hour , minute , second , usecond , fold ) \
238+ PyDateTimeAPI->Time_FromTimeAndFold(hour, minute, second, usecond, \
239+ Py_None, fold, PyDateTimeAPI->TimeType)
240+
224241#define PyDelta_FromDSU (days , seconds , useconds ) \
225242 PyDateTimeAPI->Delta_FromDelta(days, seconds, useconds, 1, \
226243 PyDateTimeAPI->DeltaType)
0 commit comments