diff --git a/pandas/_libs/index.pyx b/pandas/_libs/index.pyx index 03596d7d091e0..fa2e1271f4649 100644 --- a/pandas/_libs/index.pyx +++ b/pandas/_libs/index.pyx @@ -17,7 +17,8 @@ from tslibs.conversion cimport maybe_datetimelike_to_i8 from hashtable cimport HashTable -from pandas._libs import algos, period as periodlib, hashtable as _hash +from pandas._libs import algos, hashtable as _hash +from pandas._libs.tslibs import period as periodlib from pandas._libs.tslib import Timestamp, Timedelta from datetime import datetime, timedelta, date diff --git a/pandas/_libs/period.pyx b/pandas/_libs/tslibs/period.pyx similarity index 98% rename from pandas/_libs/period.pyx rename to pandas/_libs/tslibs/period.pyx index b95632b5b0eff..cf73257caf227 100644 --- a/pandas/_libs/period.pyx +++ b/pandas/_libs/tslibs/period.pyx @@ -21,26 +21,23 @@ from cpython.datetime cimport PyDateTime_Check, PyDateTime_IMPORT # import datetime C API PyDateTime_IMPORT -from tslibs.np_datetime cimport (pandas_datetimestruct, - dtstruct_to_dt64, dt64_to_dtstruct, - is_leapyear) - +from np_datetime cimport (pandas_datetimestruct, dtstruct_to_dt64, + dt64_to_dtstruct, is_leapyear) cimport util from util cimport is_period_object, is_string_object, INT32_MIN -from missing cimport is_null_datetimelike -from pandas._libs.tslib import Timestamp -from tslibs.timezones cimport ( - is_utc, is_tzlocal, get_utcoffset, get_dst_info) -from tslibs.timedeltas cimport delta_to_nanoseconds - -from tslibs.parsing import (parse_time_string, NAT_SENTINEL, - _get_rule_month, _MONTH_NUMBERS) -from tslibs.frequencies cimport get_freq_code -from tslibs.resolution import resolution, Resolution -from tslibs.nattype import nat_strings, NaT, iNaT -from tslibs.nattype cimport _nat_scalar_rules, NPY_NAT +from pandas._libs.missing cimport is_null_datetimelike +from timestamps import Timestamp +from timezones cimport is_utc, is_tzlocal, get_utcoffset, get_dst_info +from timedeltas cimport delta_to_nanoseconds + +from parsing import (parse_time_string, NAT_SENTINEL, + _get_rule_month, _MONTH_NUMBERS) +from frequencies cimport get_freq_code +from resolution import resolution, Resolution +from nattype import nat_strings, NaT, iNaT +from nattype cimport _nat_scalar_rules, NPY_NAT from pandas.tseries import offsets from pandas.tseries import frequencies diff --git a/pandas/compat/pickle_compat.py b/pandas/compat/pickle_compat.py index 8015642919611..07b34961ce25d 100644 --- a/pandas/compat/pickle_compat.py +++ b/pandas/compat/pickle_compat.py @@ -74,7 +74,11 @@ def load_reduce(self): ('pandas._libs.sparse', 'BlockIndex'), ('pandas.tslib', 'Timestamp'): ('pandas._libs.tslib', 'Timestamp'), - ('pandas._period', 'Period'): ('pandas._libs.period', 'Period'), + + # 18543 moving period + ('pandas._period', 'Period'): ('pandas._libs.tslibs.period', 'Period'), + ('pandas._libs.period', 'Period'): + ('pandas._libs.tslibs.period', 'Period'), # 18014 moved __nat_unpickle from _libs.tslib-->_libs.tslibs.nattype ('pandas.tslib', '__nat_unpickle'): diff --git a/pandas/core/indexes/accessors.py b/pandas/core/indexes/accessors.py index 2176338574304..27e1006c23174 100644 --- a/pandas/core/indexes/accessors.py +++ b/pandas/core/indexes/accessors.py @@ -14,7 +14,7 @@ from pandas.core.accessor import PandasDelegate from pandas.core.base import NoNewAttributesMixin, PandasObject from pandas.core.indexes.datetimes import DatetimeIndex -from pandas._libs.period import IncompatibleFrequency # noqa +from pandas._libs.tslibs.period import IncompatibleFrequency # noqa from pandas.core.indexes.period import PeriodIndex from pandas.core.indexes.timedeltas import TimedeltaIndex from pandas.core.algorithms import take_1d diff --git a/pandas/core/indexes/datetimelike.py b/pandas/core/indexes/datetimelike.py index 5f543ab6e510d..c2fc983c983a6 100644 --- a/pandas/core/indexes/datetimelike.py +++ b/pandas/core/indexes/datetimelike.py @@ -25,7 +25,7 @@ import pandas.io.formats.printing as printing from pandas._libs import lib, iNaT, NaT -from pandas._libs.period import Period +from pandas._libs.tslibs.period import Period from pandas._libs.tslibs.timedeltas import delta_to_nanoseconds from pandas.core.indexes.base import Index, _index_shared_docs diff --git a/pandas/core/indexes/datetimes.py b/pandas/core/indexes/datetimes.py index ee6263a9f0aad..1578ae924c9bb 100644 --- a/pandas/core/indexes/datetimes.py +++ b/pandas/core/indexes/datetimes.py @@ -54,8 +54,9 @@ from pandas._libs import (lib, index as libindex, tslib as libts, algos as libalgos, join as libjoin, - Timestamp, period as libperiod) -from pandas._libs.tslibs import timezones, conversion, fields + Timestamp) +from pandas._libs.tslibs import (timezones, conversion, fields, + period as libperiod) # -------- some conversion wrapper functions diff --git a/pandas/core/indexes/period.py b/pandas/core/indexes/period.py index 6535eee386e8b..ac9b511606066 100644 --- a/pandas/core/indexes/period.py +++ b/pandas/core/indexes/period.py @@ -31,12 +31,12 @@ import pandas.tseries.offsets as offsets from pandas._libs.lib import infer_dtype -from pandas._libs import tslib, period, index as libindex -from pandas._libs.period import (Period, IncompatibleFrequency, - get_period_field_arr, _validate_end_alias, - _quarter_to_myear) +from pandas._libs import tslib, index as libindex +from pandas._libs.tslibs.period import (Period, IncompatibleFrequency, + get_period_field_arr, + _validate_end_alias, _quarter_to_myear) from pandas._libs.tslibs.fields import isleapyear_arr -from pandas._libs.tslibs import resolution +from pandas._libs.tslibs import resolution, period from pandas._libs.tslibs.timedeltas import delta_to_nanoseconds from pandas.core.base import _shared_docs diff --git a/pandas/core/resample.py b/pandas/core/resample.py index bd441a8248841..9f5439b68558b 100644 --- a/pandas/core/resample.py +++ b/pandas/core/resample.py @@ -24,7 +24,7 @@ from pandas._libs import lib, tslib from pandas._libs.lib import Timestamp -from pandas._libs.period import IncompatibleFrequency +from pandas._libs.tslibs.period import IncompatibleFrequency from pandas.util._decorators import Appender from pandas.core.generic import _shared_docs diff --git a/pandas/tests/indexes/period/test_indexing.py b/pandas/tests/indexes/period/test_indexing.py index d20ed66c06ce9..6cb4226dffc5a 100644 --- a/pandas/tests/indexes/period/test_indexing.py +++ b/pandas/tests/indexes/period/test_indexing.py @@ -9,7 +9,7 @@ from pandas._libs import tslib, tslibs from pandas import (PeriodIndex, Series, DatetimeIndex, period_range, Period) -from pandas._libs import period as libperiod +from pandas._libs.tslibs import period as libperiod class TestGetItem(object): diff --git a/pandas/tests/indexes/period/test_tools.py b/pandas/tests/indexes/period/test_tools.py index 074678164e6f9..3774111f44fb2 100644 --- a/pandas/tests/indexes/period/test_tools.py +++ b/pandas/tests/indexes/period/test_tools.py @@ -6,7 +6,7 @@ import pandas.core.indexes.period as period from pandas.compat import lrange from pandas.tseries.frequencies import get_freq, MONTHS -from pandas._libs.period import period_ordinal, period_asfreq +from pandas._libs.tslibs.period import period_ordinal, period_asfreq from pandas import (PeriodIndex, Period, DatetimeIndex, Timestamp, Series, date_range, to_datetime, period_range) diff --git a/pandas/tests/scalar/test_period.py b/pandas/tests/scalar/test_period.py index 3bd4a28b7767d..eb6363689cca0 100644 --- a/pandas/tests/scalar/test_period.py +++ b/pandas/tests/scalar/test_period.py @@ -10,7 +10,8 @@ from pandas.compat import text_type, iteritems from pandas.compat.numpy import np_datetime64_compat -from pandas._libs import tslib, period as libperiod +from pandas._libs import tslib +from pandas._libs.tslibs import period as libperiod from pandas._libs.tslibs.parsing import DateParseError from pandas import Period, Timestamp, offsets from pandas._libs.tslibs.resolution import DAYS, _MONTHS as MONTHS diff --git a/pandas/tests/scalar/test_timestamp.py b/pandas/tests/scalar/test_timestamp.py index 992f211229441..9d97057569580 100644 --- a/pandas/tests/scalar/test_timestamp.py +++ b/pandas/tests/scalar/test_timestamp.py @@ -16,9 +16,8 @@ import pandas.util.testing as tm from pandas.tseries import offsets, frequencies -from pandas._libs import period from pandas._libs.tslibs.timezones import get_timezone -from pandas._libs.tslibs import conversion +from pandas._libs.tslibs import conversion, period from pandas.compat import long, PY3 from pandas.util.testing import assert_series_equal diff --git a/pandas/tests/test_resample.py b/pandas/tests/test_resample.py index b0154f6db7022..1ebe59047b998 100644 --- a/pandas/tests/test_resample.py +++ b/pandas/tests/test_resample.py @@ -33,7 +33,7 @@ from pandas.core.indexes.timedeltas import timedelta_range, TimedeltaIndex from pandas.util.testing import (assert_series_equal, assert_almost_equal, assert_frame_equal, assert_index_equal) -from pandas._libs.period import IncompatibleFrequency +from pandas._libs.tslibs.period import IncompatibleFrequency bday = BDay() diff --git a/setup.py b/setup.py index 68e1319458a33..d43f8ec12b18a 100755 --- a/setup.py +++ b/setup.py @@ -331,7 +331,6 @@ class CheckSDist(sdist_class): _pyxfiles = ['pandas/_libs/lib.pyx', 'pandas/_libs/hashtable.pyx', 'pandas/_libs/tslib.pyx', - 'pandas/_libs/period.pyx', 'pandas/_libs/index.pyx', 'pandas/_libs/algos.pyx', 'pandas/_libs/join.pyx', @@ -344,6 +343,7 @@ class CheckSDist(sdist_class): 'pandas/_libs/skiplist.pyx', 'pandas/_libs/sparse.pyx', 'pandas/_libs/parsers.pyx', + 'pandas/_libs/tslibs/period.pyx', 'pandas/_libs/tslibs/strptime.pyx', 'pandas/_libs/tslibs/np_datetime.pyx', 'pandas/_libs/tslibs/timedeltas.pyx', @@ -530,8 +530,8 @@ def pxd(name): 'pandas/_libs/src/numpy_helper.h'], 'sources': ['pandas/_libs/src/parser/tokenizer.c', 'pandas/_libs/src/parser/io.c']}, - '_libs.period': { - 'pyxfile': '_libs/period', + '_libs.tslibs.period': { + 'pyxfile': '_libs/tslibs/period', 'pxdfiles': ['_libs/src/util', '_libs/lib', '_libs/tslibs/timedeltas',