67 lines
1.8 KiB
C
67 lines
1.8 KiB
C
/* Define structure for C API. */
|
|
typedef struct {
|
|
/* type objects */
|
|
PyTypeObject *DateType;
|
|
PyTypeObject *DateTimeType;
|
|
PyTypeObject *TimeType;
|
|
PyTypeObject *DeltaType;
|
|
PyTypeObject *TZInfoType;
|
|
|
|
/* singletons */
|
|
PyObject *TimeZone_UTC;
|
|
|
|
/* constructors */
|
|
PyObject *(*Date_FromDate)(int, int, int, PyTypeObject*);
|
|
PyObject *(*DateTime_FromDateAndTime)(int, int, int, int, int, int, int,
|
|
PyObject*, PyTypeObject*);
|
|
PyObject *(*Time_FromTime)(int, int, int, int, PyObject*, PyTypeObject*);
|
|
PyObject *(*Delta_FromDelta)(int, int, int, int, PyTypeObject*);
|
|
PyObject *(*TimeZone_FromTimeZone)(PyObject*, PyObject*);
|
|
|
|
/* constructors for the DB API */
|
|
PyObject *(*DateTime_FromTimestamp)(PyObject*, PyObject*, PyObject*);
|
|
PyObject *(*Date_FromTimestamp)(PyObject*, PyObject*);
|
|
|
|
/* PEP 495 constructors */
|
|
PyObject *(*DateTime_FromDateAndTimeAndFold)(int, int, int, int, int, int, int,
|
|
PyObject*, int, PyTypeObject*);
|
|
PyObject *(*Time_FromTimeAndFold)(int, int, int, int, PyObject*, int, PyTypeObject*);
|
|
|
|
} PyDateTime_CAPI;
|
|
|
|
typedef struct
|
|
{
|
|
PyObject_HEAD
|
|
int days; /* -MAX_DELTA_DAYS <= days <= MAX_DELTA_DAYS */
|
|
int seconds; /* 0 <= seconds < 24*3600 is invariant */
|
|
int microseconds; /* 0 <= microseconds < 1000000 is invariant */
|
|
} PyDateTime_Delta;
|
|
|
|
/* The datetime and time types have an optional tzinfo member,
|
|
* PyNone if hastzinfo is false.
|
|
*/
|
|
typedef struct
|
|
{
|
|
PyObject_HEAD
|
|
unsigned char hastzinfo;
|
|
PyObject *tzinfo;
|
|
} PyDateTime_Time;
|
|
|
|
typedef struct
|
|
{
|
|
PyObject_HEAD
|
|
unsigned char hastzinfo;
|
|
PyObject *tzinfo;
|
|
} PyDateTime_DateTime;
|
|
|
|
|
|
typedef struct {
|
|
PyObject_HEAD
|
|
} PyDateTime_Date;
|
|
|
|
|
|
typedef struct {
|
|
PyObject_HEAD
|
|
} PyDateTime_TZInfo;
|
|
|