diff options
author | Anton Samokhvalov <pg83@yandex.ru> | 2022-02-10 16:45:15 +0300 |
---|---|---|
committer | Daniil Cherednik <dcherednik@yandex-team.ru> | 2022-02-10 16:45:15 +0300 |
commit | 72cb13b4aff9bc9cf22e49251bc8fd143f82538f (patch) | |
tree | da2c34829458c7d4e74bdfbdf85dff449e9e7fb8 /contrib/tools/cython/Cython/Includes/cpython/datetime.pxd | |
parent | 778e51ba091dc39e7b7fcab2b9cf4dbedfb6f2b5 (diff) | |
download | ydb-72cb13b4aff9bc9cf22e49251bc8fd143f82538f.tar.gz |
Restoring authorship annotation for Anton Samokhvalov <pg83@yandex.ru>. Commit 1 of 2.
Diffstat (limited to 'contrib/tools/cython/Cython/Includes/cpython/datetime.pxd')
-rw-r--r-- | contrib/tools/cython/Cython/Includes/cpython/datetime.pxd | 410 |
1 files changed, 205 insertions, 205 deletions
diff --git a/contrib/tools/cython/Cython/Includes/cpython/datetime.pxd b/contrib/tools/cython/Cython/Includes/cpython/datetime.pxd index cd0f90719b..7fef60633b 100644 --- a/contrib/tools/cython/Cython/Includes/cpython/datetime.pxd +++ b/contrib/tools/cython/Cython/Includes/cpython/datetime.pxd @@ -1,212 +1,212 @@ from cpython.object cimport PyObject - -cdef extern from "Python.h": - ctypedef struct PyTypeObject: - pass - -cdef extern from "datetime.h": - - ctypedef extern class datetime.date[object PyDateTime_Date]: - pass - - ctypedef extern class datetime.time[object PyDateTime_Time]: - pass - - ctypedef extern class datetime.datetime[object PyDateTime_DateTime]: - pass - - ctypedef extern class datetime.timedelta[object PyDateTime_Delta]: - pass - - ctypedef extern class datetime.tzinfo[object PyDateTime_TZInfo]: - pass - - ctypedef struct PyDateTime_Date: - pass - - ctypedef struct PyDateTime_Time: - char hastzinfo - PyObject *tzinfo - - ctypedef struct PyDateTime_DateTime: - char hastzinfo - PyObject *tzinfo - - ctypedef struct PyDateTime_Delta: - int days - int seconds - int microseconds - - # Define structure for C API. - ctypedef struct PyDateTime_CAPI: + +cdef extern from "Python.h": + ctypedef struct PyTypeObject: + pass + +cdef extern from "datetime.h": + + ctypedef extern class datetime.date[object PyDateTime_Date]: + pass + + ctypedef extern class datetime.time[object PyDateTime_Time]: + pass + + ctypedef extern class datetime.datetime[object PyDateTime_DateTime]: + pass + + ctypedef extern class datetime.timedelta[object PyDateTime_Delta]: + pass + + ctypedef extern class datetime.tzinfo[object PyDateTime_TZInfo]: + pass + + ctypedef struct PyDateTime_Date: + pass + + ctypedef struct PyDateTime_Time: + char hastzinfo + PyObject *tzinfo + + ctypedef struct PyDateTime_DateTime: + char hastzinfo + PyObject *tzinfo + + ctypedef struct PyDateTime_Delta: + int days + int seconds + int microseconds + + # Define structure for C API. + ctypedef struct PyDateTime_CAPI: # type objects - PyTypeObject *DateType - PyTypeObject *DateTimeType - PyTypeObject *TimeType - PyTypeObject *DeltaType - PyTypeObject *TZInfoType - - # constructors - object (*Date_FromDate)(int, int, int, PyTypeObject*) - object (*DateTime_FromDateAndTime)(int, int, int, int, int, int, int, object, PyTypeObject*) - object (*Time_FromTime)(int, int, int, int, object, PyTypeObject*) - object (*Delta_FromDelta)(int, int, int, int, PyTypeObject*) - - # constructors for the DB API - object (*DateTime_FromTimestamp)(object, object, object) - object (*Date_FromTimestamp)(object, object) - - # Check type of the object. - bint PyDate_Check(object op) - bint PyDate_CheckExact(object op) - - bint PyDateTime_Check(object op) - bint PyDateTime_CheckExact(object op) - - bint PyTime_Check(object op) - bint PyTime_CheckExact(object op) - - bint PyDelta_Check(object op) - bint PyDelta_CheckExact(object op) - - bint PyTZInfo_Check(object op) - bint PyTZInfo_CheckExact(object op) - - # Getters for date and datetime (C macros). - int PyDateTime_GET_YEAR(object o) - int PyDateTime_GET_MONTH(object o) - int PyDateTime_GET_DAY(object o) - - # Getters for datetime (C macros). - int PyDateTime_DATE_GET_HOUR(object o) - int PyDateTime_DATE_GET_MINUTE(object o) - int PyDateTime_DATE_GET_SECOND(object o) - int PyDateTime_DATE_GET_MICROSECOND(object o) - - # Getters for time (C macros). - int PyDateTime_TIME_GET_HOUR(object o) - int PyDateTime_TIME_GET_MINUTE(object o) - int PyDateTime_TIME_GET_SECOND(object o) - int PyDateTime_TIME_GET_MICROSECOND(object o) - - # Getters for timedelta (C macros). + PyTypeObject *DateType + PyTypeObject *DateTimeType + PyTypeObject *TimeType + PyTypeObject *DeltaType + PyTypeObject *TZInfoType + + # constructors + object (*Date_FromDate)(int, int, int, PyTypeObject*) + object (*DateTime_FromDateAndTime)(int, int, int, int, int, int, int, object, PyTypeObject*) + object (*Time_FromTime)(int, int, int, int, object, PyTypeObject*) + object (*Delta_FromDelta)(int, int, int, int, PyTypeObject*) + + # constructors for the DB API + object (*DateTime_FromTimestamp)(object, object, object) + object (*Date_FromTimestamp)(object, object) + + # Check type of the object. + bint PyDate_Check(object op) + bint PyDate_CheckExact(object op) + + bint PyDateTime_Check(object op) + bint PyDateTime_CheckExact(object op) + + bint PyTime_Check(object op) + bint PyTime_CheckExact(object op) + + bint PyDelta_Check(object op) + bint PyDelta_CheckExact(object op) + + bint PyTZInfo_Check(object op) + bint PyTZInfo_CheckExact(object op) + + # Getters for date and datetime (C macros). + int PyDateTime_GET_YEAR(object o) + int PyDateTime_GET_MONTH(object o) + int PyDateTime_GET_DAY(object o) + + # Getters for datetime (C macros). + int PyDateTime_DATE_GET_HOUR(object o) + int PyDateTime_DATE_GET_MINUTE(object o) + int PyDateTime_DATE_GET_SECOND(object o) + int PyDateTime_DATE_GET_MICROSECOND(object o) + + # Getters for time (C macros). + int PyDateTime_TIME_GET_HOUR(object o) + int PyDateTime_TIME_GET_MINUTE(object o) + int PyDateTime_TIME_GET_SECOND(object o) + int PyDateTime_TIME_GET_MICROSECOND(object o) + + # Getters for timedelta (C macros). int PyDateTime_DELTA_GET_DAYS(object o) int PyDateTime_DELTA_GET_SECONDS(object o) int PyDateTime_DELTA_GET_MICROSECONDS(object o) - - # PyDateTime CAPI object. - PyDateTime_CAPI *PyDateTimeAPI - - void PyDateTime_IMPORT() - -# Datetime C API initialization function. -# You have to call it before any usage of DateTime CAPI functions. -cdef inline void import_datetime(): - PyDateTime_IMPORT - -# Create date object using DateTime CAPI factory function. -# Note, there are no range checks for any of the arguments. -cdef inline object date_new(int year, int month, int day): - return PyDateTimeAPI.Date_FromDate(year, month, day, PyDateTimeAPI.DateType) - -# Create time object using DateTime CAPI factory function -# Note, there are no range checks for any of the arguments. -cdef inline object time_new(int hour, int minute, int second, int microsecond, object tz): - return PyDateTimeAPI.Time_FromTime(hour, minute, second, microsecond, tz, PyDateTimeAPI.TimeType) - -# Create datetime object using DateTime CAPI factory function. -# Note, there are no range checks for any of the arguments. -cdef inline object datetime_new(int year, int month, int day, int hour, int minute, int second, int microsecond, object tz): - return PyDateTimeAPI.DateTime_FromDateAndTime(year, month, day, hour, minute, second, microsecond, tz, PyDateTimeAPI.DateTimeType) - -# Create timedelta object using DateTime CAPI factory function. -# Note, there are no range checks for any of the arguments. -cdef inline object timedelta_new(int days, int seconds, int useconds): - return PyDateTimeAPI.Delta_FromDelta(days, seconds, useconds, 1, PyDateTimeAPI.DeltaType) - -# More recognizable getters for date/time/datetime/timedelta. -# There are no setters because datetime.h hasn't them. -# This is because of immutable nature of these objects by design. + + # PyDateTime CAPI object. + PyDateTime_CAPI *PyDateTimeAPI + + void PyDateTime_IMPORT() + +# Datetime C API initialization function. +# You have to call it before any usage of DateTime CAPI functions. +cdef inline void import_datetime(): + PyDateTime_IMPORT + +# Create date object using DateTime CAPI factory function. +# Note, there are no range checks for any of the arguments. +cdef inline object date_new(int year, int month, int day): + return PyDateTimeAPI.Date_FromDate(year, month, day, PyDateTimeAPI.DateType) + +# Create time object using DateTime CAPI factory function +# Note, there are no range checks for any of the arguments. +cdef inline object time_new(int hour, int minute, int second, int microsecond, object tz): + return PyDateTimeAPI.Time_FromTime(hour, minute, second, microsecond, tz, PyDateTimeAPI.TimeType) + +# Create datetime object using DateTime CAPI factory function. +# Note, there are no range checks for any of the arguments. +cdef inline object datetime_new(int year, int month, int day, int hour, int minute, int second, int microsecond, object tz): + return PyDateTimeAPI.DateTime_FromDateAndTime(year, month, day, hour, minute, second, microsecond, tz, PyDateTimeAPI.DateTimeType) + +# Create timedelta object using DateTime CAPI factory function. +# Note, there are no range checks for any of the arguments. +cdef inline object timedelta_new(int days, int seconds, int useconds): + return PyDateTimeAPI.Delta_FromDelta(days, seconds, useconds, 1, PyDateTimeAPI.DeltaType) + +# More recognizable getters for date/time/datetime/timedelta. +# There are no setters because datetime.h hasn't them. +# This is because of immutable nature of these objects by design. # If you would change time/date/datetime/timedelta object you need to recreate. - -# Get tzinfo of time -cdef inline object time_tzinfo(object o): - if (<PyDateTime_Time*>o).hastzinfo: - return <object>(<PyDateTime_Time*>o).tzinfo - else: - return None - + +# Get tzinfo of time +cdef inline object time_tzinfo(object o): + if (<PyDateTime_Time*>o).hastzinfo: + return <object>(<PyDateTime_Time*>o).tzinfo + else: + return None + # Get tzinfo of datetime -cdef inline object datetime_tzinfo(object o): - if (<PyDateTime_DateTime*>o).hastzinfo: - return <object>(<PyDateTime_DateTime*>o).tzinfo - else: - return None - -# Get year of date -cdef inline int date_year(object o): - return PyDateTime_GET_YEAR(o) - -# Get month of date -cdef inline int date_month(object o): - return PyDateTime_GET_MONTH(o) - -# Get day of date -cdef inline int date_day(object o): - return PyDateTime_GET_DAY(o) - -# Get year of datetime -cdef inline int datetime_year(object o): - return PyDateTime_GET_YEAR(o) - -# Get month of datetime -cdef inline int datetime_month(object o): - return PyDateTime_GET_MONTH(o) - -# Get day of datetime -cdef inline int datetime_day(object o): - return PyDateTime_GET_DAY(o) - -# Get hour of time -cdef inline int time_hour(object o): - return PyDateTime_TIME_GET_HOUR(o) - -# Get minute of time -cdef inline int time_minute(object o): - return PyDateTime_TIME_GET_MINUTE(o) - -# Get second of time -cdef inline int time_second(object o): - return PyDateTime_TIME_GET_SECOND(o) - -# Get microsecond of time -cdef inline int time_microsecond(object o): - return PyDateTime_TIME_GET_MICROSECOND(o) - -# Get hour of datetime -cdef inline int datetime_hour(object o): - return PyDateTime_DATE_GET_HOUR(o) - -# Get minute of datetime -cdef inline int datetime_minute(object o): - return PyDateTime_DATE_GET_MINUTE(o) - -# Get second of datetime -cdef inline int datetime_second(object o): - return PyDateTime_DATE_GET_SECOND(o) - -# Get microsecond of datetime -cdef inline int datetime_microsecond(object o): - return PyDateTime_DATE_GET_MICROSECOND(o) - -# Get days of timedelta -cdef inline int timedelta_days(object o): - return (<PyDateTime_Delta*>o).days - -# Get seconds of timedelta -cdef inline int timedelta_seconds(object o): - return (<PyDateTime_Delta*>o).seconds - -# Get microseconds of timedelta -cdef inline int timedelta_microseconds(object o): - return (<PyDateTime_Delta*>o).microseconds +cdef inline object datetime_tzinfo(object o): + if (<PyDateTime_DateTime*>o).hastzinfo: + return <object>(<PyDateTime_DateTime*>o).tzinfo + else: + return None + +# Get year of date +cdef inline int date_year(object o): + return PyDateTime_GET_YEAR(o) + +# Get month of date +cdef inline int date_month(object o): + return PyDateTime_GET_MONTH(o) + +# Get day of date +cdef inline int date_day(object o): + return PyDateTime_GET_DAY(o) + +# Get year of datetime +cdef inline int datetime_year(object o): + return PyDateTime_GET_YEAR(o) + +# Get month of datetime +cdef inline int datetime_month(object o): + return PyDateTime_GET_MONTH(o) + +# Get day of datetime +cdef inline int datetime_day(object o): + return PyDateTime_GET_DAY(o) + +# Get hour of time +cdef inline int time_hour(object o): + return PyDateTime_TIME_GET_HOUR(o) + +# Get minute of time +cdef inline int time_minute(object o): + return PyDateTime_TIME_GET_MINUTE(o) + +# Get second of time +cdef inline int time_second(object o): + return PyDateTime_TIME_GET_SECOND(o) + +# Get microsecond of time +cdef inline int time_microsecond(object o): + return PyDateTime_TIME_GET_MICROSECOND(o) + +# Get hour of datetime +cdef inline int datetime_hour(object o): + return PyDateTime_DATE_GET_HOUR(o) + +# Get minute of datetime +cdef inline int datetime_minute(object o): + return PyDateTime_DATE_GET_MINUTE(o) + +# Get second of datetime +cdef inline int datetime_second(object o): + return PyDateTime_DATE_GET_SECOND(o) + +# Get microsecond of datetime +cdef inline int datetime_microsecond(object o): + return PyDateTime_DATE_GET_MICROSECOND(o) + +# Get days of timedelta +cdef inline int timedelta_days(object o): + return (<PyDateTime_Delta*>o).days + +# Get seconds of timedelta +cdef inline int timedelta_seconds(object o): + return (<PyDateTime_Delta*>o).seconds + +# Get microseconds of timedelta +cdef inline int timedelta_microseconds(object o): + return (<PyDateTime_Delta*>o).microseconds |