@@ -81,6 +81,7 @@ typedef struct
81
81
typedef struct
82
82
{
83
83
_PyDateTime_TIMEHEAD
84
+ unsigned char fold ;
84
85
PyObject * tzinfo ;
85
86
} PyDateTime_Time ; /* hastzinfo true */
86
87
@@ -108,6 +109,7 @@ typedef struct
108
109
typedef struct
109
110
{
110
111
_PyDateTime_DATETIMEHEAD
112
+ unsigned char fold ;
111
113
PyObject * tzinfo ;
112
114
} PyDateTime_DateTime ; /* hastzinfo true */
113
115
@@ -125,6 +127,7 @@ typedef struct
125
127
((((PyDateTime_DateTime*)o)->data[7] << 16) | \
126
128
(((PyDateTime_DateTime*)o)->data[8] << 8) | \
127
129
((PyDateTime_DateTime*)o)->data[9])
130
+ #define PyDateTime_DATE_GET_FOLD (o ) (((PyDateTime_DateTime*)o)->fold)
128
131
129
132
/* Apply for time instances. */
130
133
#define PyDateTime_TIME_GET_HOUR (o ) (((PyDateTime_Time*)o)->data[0])
@@ -134,6 +137,7 @@ typedef struct
134
137
((((PyDateTime_Time*)o)->data[3] << 16) | \
135
138
(((PyDateTime_Time*)o)->data[4] << 8) | \
136
139
((PyDateTime_Time*)o)->data[5])
140
+ #define PyDateTime_TIME_GET_FOLD (o ) (((PyDateTime_Time*)o)->fold)
137
141
138
142
/* Apply for time delta instances */
139
143
#define PyDateTime_DELTA_GET_DAYS (o ) (((PyDateTime_Delta*)o)->days)
@@ -162,6 +166,11 @@ typedef struct {
162
166
PyObject * (* DateTime_FromTimestamp )(PyObject * , PyObject * , PyObject * );
163
167
PyObject * (* Date_FromTimestamp )(PyObject * , PyObject * );
164
168
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
+
165
174
} PyDateTime_CAPI ;
166
175
167
176
#define PyDateTime_CAPSULE_NAME "datetime.datetime_CAPI"
@@ -217,10 +226,18 @@ static PyDateTime_CAPI *PyDateTimeAPI = NULL;
217
226
PyDateTimeAPI->DateTime_FromDateAndTime(year, month, day, hour, \
218
227
min, sec, usec, Py_None, PyDateTimeAPI->DateTimeType)
219
228
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
+
220
233
#define PyTime_FromTime (hour , minute , second , usecond ) \
221
234
PyDateTimeAPI->Time_FromTime(hour, minute, second, usecond, \
222
235
Py_None, PyDateTimeAPI->TimeType)
223
236
237
+ #define PyTime_FromTimeAndFold (hour , minute , second , usecond , fold ) \
238
+ PyDateTimeAPI->Time_FromTimeAndFold(hour, minute, second, usecond, \
239
+ Py_None, fold, PyDateTimeAPI->TimeType)
240
+
224
241
#define PyDelta_FromDSU (days , seconds , useconds ) \
225
242
PyDateTimeAPI->Delta_FromDelta(days, seconds, useconds, 1, \
226
243
PyDateTimeAPI->DeltaType)
0 commit comments