diff --git a/pandas/_libs/tslibs/c_timestamp.pyx b/pandas/_libs/tslibs/c_timestamp.pyx index 86979fa7946d9..1e48f5445c1f6 100644 --- a/pandas/_libs/tslibs/c_timestamp.pyx +++ b/pandas/_libs/tslibs/c_timestamp.pyx @@ -37,8 +37,9 @@ from pandas._libs.tslibs.np_datetime import OutOfBoundsDatetime from pandas._libs.tslibs.np_datetime cimport ( reverse_ops, cmp_scalar) from pandas._libs.tslibs.timezones cimport ( - get_timezone, is_utc, tz_compare) -from pandas._libs.tslibs.timezones import UTC + get_timezone, is_utc, tz_compare, + utc_pytz as UTC, +) from pandas._libs.tslibs.tzconversion cimport tz_convert_single from pandas._libs.tslibs.offsets cimport is_tick_object diff --git a/pandas/_libs/tslibs/conversion.pyx b/pandas/_libs/tslibs/conversion.pyx index 6dd5b4b2fa798..84dd89364ba56 100644 --- a/pandas/_libs/tslibs/conversion.pyx +++ b/pandas/_libs/tslibs/conversion.pyx @@ -28,8 +28,9 @@ from pandas._libs.tslibs.util cimport ( from pandas._libs.tslibs.timedeltas cimport cast_from_unit from pandas._libs.tslibs.timezones cimport ( is_utc, is_tzlocal, is_fixed_offset, get_utcoffset, get_dst_info, - get_timezone, maybe_get_tz, tz_compare) -from pandas._libs.tslibs.timezones import UTC + get_timezone, maybe_get_tz, tz_compare, + utc_pytz as UTC, +) from pandas._libs.tslibs.parsing import parse_datetime_string from pandas._libs.tslibs.nattype import nat_strings diff --git a/pandas/_libs/tslibs/offsets.pyx b/pandas/_libs/tslibs/offsets.pyx index 6005905ad59fd..393db82ad20aa 100644 --- a/pandas/_libs/tslibs/offsets.pyx +++ b/pandas/_libs/tslibs/offsets.pyx @@ -30,7 +30,7 @@ from pandas._libs.tslibs.conversion cimport ( from pandas._libs.tslibs.nattype cimport NPY_NAT from pandas._libs.tslibs.np_datetime cimport ( npy_datetimestruct, dtstruct_to_dt64, dt64_to_dtstruct) -from pandas._libs.tslibs.timezones import UTC +from pandas._libs.tslibs.timezones cimport utc_pytz as UTC from pandas._libs.tslibs.tzconversion cimport tz_convert_single from pandas._libs.tslibs.c_timestamp cimport _Timestamp diff --git a/pandas/_libs/tslibs/timestamps.pyx b/pandas/_libs/tslibs/timestamps.pyx index 7858072407a35..f463491cf01c4 100644 --- a/pandas/_libs/tslibs/timestamps.pyx +++ b/pandas/_libs/tslibs/timestamps.pyx @@ -25,8 +25,8 @@ from pandas._libs.tslibs.np_datetime cimport ( from pandas._libs.tslibs.offsets cimport to_offset from pandas._libs.tslibs.timedeltas import Timedelta from pandas._libs.tslibs.timezones cimport ( - is_utc, maybe_get_tz, treat_tz_as_pytz) -from pandas._libs.tslibs.timezones import UTC + is_utc, maybe_get_tz, treat_tz_as_pytz, utc_pytz as UTC +) from pandas._libs.tslibs.tzconversion import ( tz_localize_to_utc, tz_convert_single) diff --git a/pandas/_libs/tslibs/timezones.pxd b/pandas/_libs/tslibs/timezones.pxd index 6d6ae8f8576ad..2f2a60fe6edf5 100644 --- a/pandas/_libs/tslibs/timezones.pxd +++ b/pandas/_libs/tslibs/timezones.pxd @@ -1,3 +1,7 @@ +from cpython.datetime cimport tzinfo + +cdef tzinfo utc_pytz + cpdef bint is_utc(object tz) cdef bint is_tzlocal(object tz) @@ -8,7 +12,7 @@ cpdef bint tz_compare(object start, object end) cpdef object get_timezone(object tz) cpdef object maybe_get_tz(object tz) -cdef get_utcoffset(tzinfo, obj) +cdef get_utcoffset(tzinfo tz, obj) cdef bint is_fixed_offset(object tz) cdef object get_dst_info(object tz) diff --git a/pandas/_libs/tslibs/timezones.pyx b/pandas/_libs/tslibs/timezones.pyx index 0ec3e2ad467e1..1edd5095b8749 100644 --- a/pandas/_libs/tslibs/timezones.pyx +++ b/pandas/_libs/tslibs/timezones.pyx @@ -1,3 +1,4 @@ +from cpython.datetime cimport tzinfo from datetime import timezone # dateutil compat @@ -24,12 +25,13 @@ cnp.import_array() from pandas._libs.tslibs.util cimport is_integer_object, get_nat cdef int64_t NPY_NAT = get_nat() -cdef object utc_stdlib = timezone.utc +cdef tzinfo utc_stdlib = timezone.utc +cdef tzinfo utc_pytz = UTC # ---------------------------------------------------------------------- cpdef inline bint is_utc(object tz): - return tz is UTC or tz is utc_stdlib or isinstance(tz, _dateutil_tzutc) + return tz is utc_pytz or tz is utc_stdlib or isinstance(tz, _dateutil_tzutc) cdef inline bint is_tzlocal(object tz): @@ -152,11 +154,11 @@ cdef inline object tz_cache_key(object tz): # UTC Offsets -cdef get_utcoffset(tzinfo, obj): +cdef get_utcoffset(tzinfo tz, obj): try: - return tzinfo._utcoffset + return tz._utcoffset except AttributeError: - return tzinfo.utcoffset(obj) + return tz.utcoffset(obj) cdef inline bint is_fixed_offset(object tz):