Skip to content

CLN: Cython Py2/3 Compatible Imports #23940

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 18 commits into from
Dec 26, 2018
Merged
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
2 changes: 1 addition & 1 deletion pandas/_libs/algos.pxd
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
from util cimport numeric
from pandas._libs.util cimport numeric


cdef inline Py_ssize_t swap(numeric *a, numeric *b) nogil:
13 changes: 6 additions & 7 deletions pandas/_libs/algos.pyx
Original file line number Diff line number Diff line change
@@ -19,15 +19,14 @@ from numpy cimport (ndarray,
cnp.import_array()


cimport util
from util cimport numeric, get_nat
cimport pandas._libs.util as util
from pandas._libs.util cimport numeric, get_nat

from khash cimport (khiter_t,
kh_destroy_int64, kh_put_int64,
kh_init_int64, kh_int64_t,
kh_resize_int64, kh_get_int64)
from pandas._libs.khash cimport (
khiter_t, kh_destroy_int64, kh_put_int64, kh_init_int64, kh_int64_t,
kh_resize_int64, kh_get_int64)

import missing
import pandas._libs.missing as missing

cdef float64_t FP_ERR = 1e-13

10 changes: 6 additions & 4 deletions pandas/_libs/groupby.pyx
Original file line number Diff line number Diff line change
@@ -13,11 +13,13 @@ from numpy cimport (ndarray,
cnp.import_array()


from util cimport numeric, get_nat
from pandas._libs.util cimport numeric, get_nat

from algos cimport (swap, TiebreakEnumType, TIEBREAK_AVERAGE, TIEBREAK_MIN,
TIEBREAK_MAX, TIEBREAK_FIRST, TIEBREAK_DENSE)
from algos import take_2d_axis1_float64_float64, groupsort_indexer, tiebreakers
from pandas._libs.algos cimport (swap, TiebreakEnumType, TIEBREAK_AVERAGE,
TIEBREAK_MIN, TIEBREAK_MAX, TIEBREAK_FIRST,
TIEBREAK_DENSE)
from pandas._libs.algos import (take_2d_axis1_float64_float64,
groupsort_indexer, tiebreakers)

cdef int64_t NPY_NAT = get_nat()

2 changes: 1 addition & 1 deletion pandas/_libs/hashing.pyx
Original file line number Diff line number Diff line change
@@ -9,7 +9,7 @@ import numpy as np
from numpy cimport uint8_t, uint32_t, uint64_t, import_array
import_array()

from util cimport is_nan
from pandas._libs.util cimport is_nan

DEF cROUNDS = 2
DEF dROUNDS = 4
5 changes: 3 additions & 2 deletions pandas/_libs/hashtable.pxd
Original file line number Diff line number Diff line change
@@ -1,5 +1,6 @@
from khash cimport (kh_int64_t, kh_uint64_t, kh_float64_t, kh_pymap_t,
kh_str_t, uint64_t, int64_t, float64_t)
from pandas._libs.khash cimport (
kh_int64_t, kh_uint64_t, kh_float64_t, kh_pymap_t, kh_str_t, uint64_t,
int64_t, float64_t)
from numpy cimport ndarray

# prototypes for sharing
6 changes: 3 additions & 3 deletions pandas/_libs/hashtable.pyx
Original file line number Diff line number Diff line change
@@ -16,7 +16,7 @@ cdef extern from "numpy/npy_math.h":
float64_t NAN "NPY_NAN"


from khash cimport (
from pandas._libs.khash cimport (
khiter_t,

kh_str_t, kh_init_str, kh_put_str, kh_exist_str,
@@ -37,9 +37,9 @@ from khash cimport (
kh_put_pymap, kh_resize_pymap)


cimport util
cimport pandas._libs.util as util

from missing cimport checknull
from pandas._libs.missing cimport checknull


cdef int64_t NPY_NAT = util.get_nat()
6 changes: 3 additions & 3 deletions pandas/_libs/index.pyx
Original file line number Diff line number Diff line change
@@ -15,11 +15,11 @@ from numpy cimport (ndarray, intp_t,
cnp.import_array()


cimport util
cimport pandas._libs.util as util

from tslibs.conversion cimport maybe_datetimelike_to_i8
from pandas._libs.tslibs.conversion cimport maybe_datetimelike_to_i8

from hashtable cimport HashTable
from pandas._libs.hashtable cimport HashTable

from pandas._libs import algos, hashtable as _hash
from pandas._libs.tslibs import Timestamp, Timedelta, period as periodlib
2 changes: 1 addition & 1 deletion pandas/_libs/internals.pyx
Original file line number Diff line number Diff line change
@@ -18,7 +18,7 @@ cdef extern from "compat_helper.h":
Py_ssize_t *slicelength) except -1


from algos import ensure_int64
from pandas._libs.algos import ensure_int64


cdef class BlockPlacement:
8 changes: 4 additions & 4 deletions pandas/_libs/interval.pyx
Original file line number Diff line number Diff line change
@@ -17,13 +17,13 @@ from numpy cimport (
cnp.import_array()


cimport util
cimport pandas._libs.util as util
util.import_array()

from hashtable cimport Int64Vector, Int64VectorData
from pandas._libs.hashtable cimport Int64Vector, Int64VectorData

from tslibs import Timestamp
from tslibs.timezones cimport tz_compare
from pandas._libs.tslibs import Timestamp
from pandas._libs.tslibs.timezones cimport tz_compare


_VALID_CLOSED = frozenset(['left', 'right', 'both', 'neither'])
2 changes: 1 addition & 1 deletion pandas/_libs/join.pyx
Original file line number Diff line number Diff line change
@@ -656,7 +656,7 @@ outer_join_indexer_uint64 = outer_join_indexer["uint64_t"]
# asof_join_by
# ----------------------------------------------------------------------

from hashtable cimport (
from pandas._libs.hashtable cimport (
HashTable, PyObjectHashTable, UInt64HashTable, Int64HashTable)

ctypedef fused asof_t:
25 changes: 13 additions & 12 deletions pandas/_libs/lib.pyx
Original file line number Diff line number Diff line change
@@ -49,18 +49,19 @@ cdef extern from "numpy/arrayobject.h":
cdef extern from "src/parse_helper.h":
int floatify(object, float64_t *result, int *maybe_int) except -1

cimport util
from util cimport is_nan, UINT64_MAX, INT64_MAX, INT64_MIN

from tslib import array_to_datetime
from tslibs.nattype cimport NPY_NAT
from tslibs.nattype import NaT
from tslibs.conversion cimport convert_to_tsobject
from tslibs.timedeltas cimport convert_to_timedelta64
from tslibs.timezones cimport get_timezone, tz_compare

from missing cimport (checknull, isnaobj,
is_null_datetime64, is_null_timedelta64, is_null_period)
cimport pandas._libs.util as util
from pandas._libs.util cimport is_nan, UINT64_MAX, INT64_MAX, INT64_MIN

from pandas._libs.tslib import array_to_datetime
from pandas._libs.tslibs.nattype cimport NPY_NAT
from pandas._libs.tslibs.nattype import NaT
from pandas._libs.tslibs.conversion cimport convert_to_tsobject
from pandas._libs.tslibs.timedeltas cimport convert_to_timedelta64
from pandas._libs.tslibs.timezones cimport get_timezone, tz_compare

from pandas._libs.missing cimport (
checknull, isnaobj, is_null_datetime64, is_null_timedelta64, is_null_period
)


# constants that will be compared to potentially arbitrarily large
9 changes: 5 additions & 4 deletions pandas/_libs/missing.pyx
Original file line number Diff line number Diff line change
@@ -8,11 +8,12 @@ cimport numpy as cnp
from numpy cimport ndarray, int64_t, uint8_t, float64_t
cnp.import_array()

cimport util
cimport pandas._libs.util as util

from tslibs.np_datetime cimport get_timedelta64_value, get_datetime64_value
from tslibs.nattype cimport checknull_with_nat
from tslibs.nattype import NaT
from pandas._libs.tslibs.np_datetime cimport (
get_timedelta64_value, get_datetime64_value)
from pandas._libs.tslibs.nattype cimport checknull_with_nat
from pandas._libs.tslibs.nattype import NaT

cdef float64_t INF = <float64_t>np.inf
cdef float64_t NEGINF = -INF
4 changes: 2 additions & 2 deletions pandas/_libs/ops.pyx
Original file line number Diff line number Diff line change
@@ -12,9 +12,9 @@ from numpy cimport ndarray, uint8_t, import_array
import_array()


from util cimport UINT8_MAX, is_nan
from pandas._libs.util cimport UINT8_MAX, is_nan

from missing cimport checknull
from pandas._libs.missing cimport checknull


@cython.wraparound(False)
6 changes: 3 additions & 3 deletions pandas/_libs/parsers.pyx
Original file line number Diff line number Diff line change
@@ -32,10 +32,10 @@ cimport numpy as cnp
from numpy cimport ndarray, uint8_t, uint64_t, int64_t, float64_t
cnp.import_array()

from util cimport UINT64_MAX, INT64_MAX, INT64_MIN
import lib
from pandas._libs.util cimport UINT64_MAX, INT64_MAX, INT64_MIN
import pandas._libs.lib as lib

from khash cimport (
from pandas._libs.khash cimport (
khiter_t,
kh_str_t, kh_init_str, kh_put_str, kh_exist_str,
kh_get_str, kh_destroy_str,
4 changes: 2 additions & 2 deletions pandas/_libs/reduction.pyx
Original file line number Diff line number Diff line change
@@ -15,8 +15,8 @@ from numpy cimport (ndarray,
flatiter)
cnp.import_array()

cimport util
from lib import maybe_convert_objects
cimport pandas._libs.util as util
from pandas._libs.lib import maybe_convert_objects


cdef _get_result_array(object obj, Py_ssize_t size, Py_ssize_t cnt):
41 changes: 19 additions & 22 deletions pandas/_libs/tslib.pyx
Original file line number Diff line number Diff line change
@@ -16,36 +16,33 @@ cnp.import_array()

import pytz

from util cimport (is_integer_object, is_float_object, is_string_object,
is_datetime64_object)
from pandas._libs.util cimport (
is_integer_object, is_float_object, is_string_object, is_datetime64_object)


from tslibs.np_datetime cimport (check_dts_bounds,
npy_datetimestruct,
_string_to_dts,
dt64_to_dtstruct, dtstruct_to_dt64,
pydatetime_to_dt64, pydate_to_dt64,
get_datetime64_value)
from tslibs.np_datetime import OutOfBoundsDatetime
from pandas._libs.tslibs.np_datetime cimport (
check_dts_bounds, npy_datetimestruct, _string_to_dts, dt64_to_dtstruct,
dtstruct_to_dt64, pydatetime_to_dt64, pydate_to_dt64, get_datetime64_value)
from pandas._libs.tslibs.np_datetime import OutOfBoundsDatetime

from tslibs.parsing import parse_datetime_string
from pandas._libs.tslibs.parsing import parse_datetime_string

from tslibs.timedeltas cimport cast_from_unit
from tslibs.timezones cimport is_utc, is_tzlocal, get_dst_info
from tslibs.timezones import UTC
from tslibs.conversion cimport (tz_convert_single, _TSObject,
convert_datetime_to_tsobject,
get_datetime64_nanos,
tz_convert_utc_to_tzlocal)
from pandas._libs.tslibs.timedeltas cimport cast_from_unit
from pandas._libs.tslibs.timezones cimport is_utc, is_tzlocal, get_dst_info
from pandas._libs.tslibs.timezones import UTC
from pandas._libs.tslibs.conversion cimport (
tz_convert_single, _TSObject, convert_datetime_to_tsobject,
get_datetime64_nanos, tz_convert_utc_to_tzlocal)

# many modules still look for NaT and iNaT here despite them not being needed
from tslibs.nattype import nat_strings, iNaT # noqa:F821
from tslibs.nattype cimport checknull_with_nat, NPY_NAT, c_NaT as NaT
from pandas._libs.tslibs.nattype import nat_strings, iNaT # noqa:F821
from pandas._libs.tslibs.nattype cimport (
checknull_with_nat, NPY_NAT, c_NaT as NaT)

from tslibs.offsets cimport to_offset
from pandas._libs.tslibs.offsets cimport to_offset

from tslibs.timestamps cimport create_timestamp_from_ts
from tslibs.timestamps import Timestamp
from pandas._libs.tslibs.timestamps cimport create_timestamp_from_ts
from pandas._libs.tslibs.timestamps import Timestamp


cdef bint PY2 = str == bytes
2 changes: 1 addition & 1 deletion pandas/_libs/tslibs/ccalendar.pyx
Original file line number Diff line number Diff line change
@@ -9,7 +9,7 @@ import cython
from numpy cimport int64_t, int32_t

from locale import LC_TIME
from strptime import LocaleTime
from pandas._libs.tslibs.strptime import LocaleTime

# ----------------------------------------------------------------------
# Constants
2 changes: 1 addition & 1 deletion pandas/_libs/tslibs/conversion.pxd
Original file line number Diff line number Diff line change
@@ -4,7 +4,7 @@ from cpython.datetime cimport datetime, tzinfo

from numpy cimport int64_t, int32_t

from np_datetime cimport npy_datetimestruct
from pandas._libs.tslibs.np_datetime cimport npy_datetimestruct


cdef class _TSObject:
48 changes: 23 additions & 25 deletions pandas/_libs/tslibs/conversion.pyx
Original file line number Diff line number Diff line change
@@ -16,30 +16,28 @@ from cpython.datetime cimport (datetime, tzinfo,
PyDateTime_CheckExact, PyDateTime_IMPORT)
PyDateTime_IMPORT

from ccalendar import DAY_SECONDS, HOUR_SECONDS

from np_datetime cimport (check_dts_bounds,
npy_datetimestruct,
pandas_datetime_to_datetimestruct, _string_to_dts,
npy_datetime,
dt64_to_dtstruct, dtstruct_to_dt64,
get_datetime64_unit, get_datetime64_value,
pydatetime_to_dt64, NPY_DATETIMEUNIT, NPY_FR_ns)
from np_datetime import OutOfBoundsDatetime

from util cimport (is_string_object,
is_datetime64_object,
is_integer_object, is_float_object)

from timedeltas cimport cast_from_unit
from timezones cimport (is_utc, is_tzlocal, is_fixed_offset,
get_utcoffset, get_dst_info,
get_timezone, maybe_get_tz, tz_compare)
from timezones import UTC
from parsing import parse_datetime_string

from nattype import nat_strings
from nattype cimport NPY_NAT, checknull_with_nat, c_NaT as NaT
from pandas._libs.tslibs.ccalendar import DAY_SECONDS, HOUR_SECONDS

from pandas._libs.tslibs.np_datetime cimport (
check_dts_bounds, npy_datetimestruct, pandas_datetime_to_datetimestruct,
_string_to_dts, npy_datetime, dt64_to_dtstruct, dtstruct_to_dt64,
get_datetime64_unit, get_datetime64_value, pydatetime_to_dt64,
NPY_DATETIMEUNIT, NPY_FR_ns)
from pandas._libs.tslibs.np_datetime import OutOfBoundsDatetime

from pandas._libs.tslibs.util cimport (
is_string_object, is_datetime64_object, is_integer_object, is_float_object)

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
from pandas._libs.tslibs.parsing import parse_datetime_string

from pandas._libs.tslibs.nattype import nat_strings
from pandas._libs.tslibs.nattype cimport (
NPY_NAT, checknull_with_nat, c_NaT as NaT)

# ----------------------------------------------------------------------
# Constants
@@ -1090,7 +1088,7 @@ cdef inline Py_ssize_t bisect_right_i8(int64_t *data,

cdef inline str _render_tstamp(int64_t val):
""" Helper function to render exception messages"""
from timestamps import Timestamp
from pandas._libs.tslibs.timestamps import Timestamp
return str(Timestamp(val))


15 changes: 9 additions & 6 deletions pandas/_libs/tslibs/fields.pyx
Original file line number Diff line number Diff line change
@@ -12,12 +12,15 @@ cimport numpy as cnp
from numpy cimport ndarray, int64_t, int32_t, int8_t
cnp.import_array()

from ccalendar import get_locale_names, MONTHS_FULL, DAYS_FULL, DAY_SECONDS
from ccalendar cimport (get_days_in_month, is_leapyear, dayofweek,
get_week_of_year, get_day_of_year)
from np_datetime cimport (npy_datetimestruct, pandas_timedeltastruct,
dt64_to_dtstruct, td64_to_tdstruct)
from nattype cimport NPY_NAT
from pandas._libs.tslibs.ccalendar import (
get_locale_names, MONTHS_FULL, DAYS_FULL, DAY_SECONDS)
from pandas._libs.tslibs.ccalendar cimport (
get_days_in_month, is_leapyear, dayofweek, get_week_of_year,
get_day_of_year)
from pandas._libs.tslibs.np_datetime cimport (
npy_datetimestruct, pandas_timedeltastruct, dt64_to_dtstruct,
td64_to_tdstruct)
from pandas._libs.tslibs.nattype cimport NPY_NAT


def get_time_micros(ndarray[int64_t] dtindex):
4 changes: 2 additions & 2 deletions pandas/_libs/tslibs/frequencies.pyx
Original file line number Diff line number Diff line change
@@ -4,9 +4,9 @@ import re
cimport numpy as cnp
cnp.import_array()

from util cimport is_integer_object, is_string_object
from pandas._libs.tslibs.util cimport is_integer_object, is_string_object

from ccalendar import MONTH_NUMBERS
from pandas._libs.tslibs.ccalendar import MONTH_NUMBERS

# ----------------------------------------------------------------------
# Constants
Loading