Skip to content

PERF: cdef UTC #34043

New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Merged
merged 1 commit into from
May 7, 2020
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
5 changes: 3 additions & 2 deletions pandas/_libs/tslibs/c_timestamp.pyx
Original file line number Diff line number Diff line change
Expand Up @@ -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

Expand Down
5 changes: 3 additions & 2 deletions pandas/_libs/tslibs/conversion.pyx
Original file line number Diff line number Diff line change
Expand Up @@ -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
Expand Down
2 changes: 1 addition & 1 deletion pandas/_libs/tslibs/offsets.pyx
Original file line number Diff line number Diff line change
Expand Up @@ -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

Expand Down
4 changes: 2 additions & 2 deletions pandas/_libs/tslibs/timestamps.pyx
Original file line number Diff line number Diff line change
Expand Up @@ -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)

Expand Down
6 changes: 5 additions & 1 deletion pandas/_libs/tslibs/timezones.pxd
Original file line number Diff line number Diff line change
@@ -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)

Expand All @@ -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)
12 changes: 7 additions & 5 deletions pandas/_libs/tslibs/timezones.pyx
Original file line number Diff line number Diff line change
@@ -1,3 +1,4 @@
from cpython.datetime cimport tzinfo
from datetime import timezone

# dateutil compat
Expand All @@ -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):
Expand Down Expand Up @@ -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):
Expand Down