diff --git a/doc/source/whatsnew/v0.20.0.txt b/doc/source/whatsnew/v0.20.0.txt index de33b7d4e3371..9df82b8ac7338 100644 --- a/doc/source/whatsnew/v0.20.0.txt +++ b/doc/source/whatsnew/v0.20.0.txt @@ -1344,6 +1344,7 @@ If indicated, a deprecation warning will be issued if you reference theses modul "pandas.index", "pandas._libs.index", "" "pandas.algos", "pandas._libs.algos", "" "pandas.hashtable", "pandas._libs.hashtable", "" + "pandas.indexes", "pandas.core.indexes", "" "pandas.json", "pandas.io.json.libjson", "X" "pandas.parser", "pandas.io.libparsers", "X" "pandas.formats", "pandas.io.formats", "" diff --git a/pandas/compat/pickle_compat.py b/pandas/compat/pickle_compat.py index e977fdc3a267d..f7d451ce7c92f 100644 --- a/pandas/compat/pickle_compat.py +++ b/pandas/compat/pickle_compat.py @@ -59,9 +59,9 @@ def load_reduce(self): # 15477 ('pandas.core.base', 'FrozenNDArray'): - ('pandas.indexes.frozen', 'FrozenNDArray'), + ('pandas.core.indexes.frozen', 'FrozenNDArray'), ('pandas.core.base', 'FrozenList'): - ('pandas.indexes.frozen', 'FrozenList'), + ('pandas.core.indexes.frozen', 'FrozenList'), # 10890 ('pandas.core.series', 'TimeSeries'): @@ -84,7 +84,17 @@ def load_reduce(self): ('pandas.sparse.series', 'SparseSeries'): ('pandas.core.sparse.series', 'SparseSeries'), ('pandas.sparse.frame', 'SparseDataFrame'): - ('pandas.core.sparse.frame', 'SparseDataFrame') + ('pandas.core.sparse.frame', 'SparseDataFrame'), + ('pandas.indexes.base', '_new_Index'): + ('pandas.core.indexes.base', '_new_Index'), + ('pandas.indexes.base', 'Index'): + ('pandas.core.indexes.base', 'Index'), + ('pandas.indexes.numeric', 'Int64Index'): + ('pandas.core.indexes.numeric', 'Int64Index'), + ('pandas.indexes.range', 'RangeIndex'): + ('pandas.core.indexes.range', 'RangeIndex'), + ('pandas.indexes.multi', 'MultiIndex'): + ('pandas.core.indexes.multi', 'MultiIndex') } diff --git a/pandas/core/api.py b/pandas/core/api.py index 3c739d85d0074..865fe367873d8 100644 --- a/pandas/core/api.py +++ b/pandas/core/api.py @@ -12,7 +12,7 @@ from pandas.core.index import (Index, CategoricalIndex, Int64Index, UInt64Index, RangeIndex, Float64Index, MultiIndex, IntervalIndex) -from pandas.indexes.interval import Interval, interval_range +from pandas.core.indexes.interval import Interval, interval_range from pandas.core.series import Series from pandas.core.frame import DataFrame diff --git a/pandas/core/categorical.py b/pandas/core/categorical.py index 50181486d8cf7..a12cec33fb350 100644 --- a/pandas/core/categorical.py +++ b/pandas/core/categorical.py @@ -2128,7 +2128,7 @@ def _factorize_from_iterable(values): If `values` has a categorical dtype, then `categories` is a CategoricalIndex keeping the categories and order of `values`. """ - from pandas.indexes.category import CategoricalIndex + from pandas.core.indexes.category import CategoricalIndex if not is_list_like(values): raise TypeError("Input must be list-like") diff --git a/pandas/core/index.py b/pandas/core/index.py index 05f98d59a1f56..2d1c22f5623a1 100644 --- a/pandas/core/index.py +++ b/pandas/core/index.py @@ -1,3 +1,3 @@ # flake8: noqa -from pandas.indexes.api import * -from pandas.indexes.multi import _sparsify +from pandas.core.indexes.api import * +from pandas.core.indexes.multi import _sparsify diff --git a/pandas/indexes/__init__.py b/pandas/core/indexes/__init__.py similarity index 100% rename from pandas/indexes/__init__.py rename to pandas/core/indexes/__init__.py diff --git a/pandas/indexes/api.py b/pandas/core/indexes/api.py similarity index 90% rename from pandas/indexes/api.py rename to pandas/core/indexes/api.py index db076b60ab34e..d40f6da4c4ee5 100644 --- a/pandas/indexes/api.py +++ b/pandas/core/indexes/api.py @@ -1,12 +1,12 @@ -from pandas.indexes.base import (Index, _new_Index, # noqa +from pandas.core.indexes.base import (Index, _new_Index, # noqa _ensure_index, _get_na_value, InvalidIndexError) -from pandas.indexes.category import CategoricalIndex # noqa -from pandas.indexes.multi import MultiIndex # noqa -from pandas.indexes.interval import IntervalIndex # noqa -from pandas.indexes.numeric import (NumericIndex, Float64Index, # noqa +from pandas.core.indexes.category import CategoricalIndex # noqa +from pandas.core.indexes.multi import MultiIndex # noqa +from pandas.core.indexes.interval import IntervalIndex # noqa +from pandas.core.indexes.numeric import (NumericIndex, Float64Index, # noqa Int64Index, UInt64Index) -from pandas.indexes.range import RangeIndex # noqa +from pandas.core.indexes.range import RangeIndex # noqa import pandas.core.common as com import pandas._libs.lib as lib diff --git a/pandas/indexes/base.py b/pandas/core/indexes/base.py similarity index 99% rename from pandas/indexes/base.py rename to pandas/core/indexes/base.py index d88e54dcc9521..5149d45514e2e 100644 --- a/pandas/indexes/base.py +++ b/pandas/core/indexes/base.py @@ -43,7 +43,7 @@ import pandas.core.base as base from pandas.util.decorators import (Appender, Substitution, cache_readonly, deprecate, deprecate_kwarg) -from pandas.indexes.frozen import FrozenList +from pandas.core.indexes.frozen import FrozenList import pandas.core.common as com import pandas.core.dtypes.concat as _concat import pandas.core.missing as missing @@ -1675,7 +1675,7 @@ def append(self, other): if self.is_categorical(): # if calling index is category, don't check dtype of others - from pandas.indexes.category import CategoricalIndex + from pandas.core.indexes.category import CategoricalIndex return CategoricalIndex._append_same_dtype(self, to_concat, name) typs = _concat.get_dtype_kinds(to_concat) diff --git a/pandas/indexes/category.py b/pandas/core/indexes/category.py similarity index 99% rename from pandas/indexes/category.py rename to pandas/core/indexes/category.py index 5f9d106189767..257ca86947f2b 100644 --- a/pandas/indexes/category.py +++ b/pandas/core/indexes/category.py @@ -16,10 +16,10 @@ from pandas.util.decorators import Appender, cache_readonly from pandas.core.config import get_option -from pandas.indexes.base import Index, _index_shared_docs +from pandas.core.indexes.base import Index, _index_shared_docs import pandas.core.base as base import pandas.core.missing as missing -import pandas.indexes.base as ibase +import pandas.core.indexes.base as ibase _index_doc_kwargs = dict(ibase._index_doc_kwargs) _index_doc_kwargs.update(dict(target_klass='CategoricalIndex')) diff --git a/pandas/indexes/frozen.py b/pandas/core/indexes/frozen.py similarity index 100% rename from pandas/indexes/frozen.py rename to pandas/core/indexes/frozen.py diff --git a/pandas/indexes/interval.py b/pandas/core/indexes/interval.py similarity index 99% rename from pandas/indexes/interval.py rename to pandas/core/indexes/interval.py index 6f68e67d702fe..f14e7bf6bd183 100644 --- a/pandas/indexes/interval.py +++ b/pandas/core/indexes/interval.py @@ -16,20 +16,22 @@ is_interval_dtype, is_scalar, is_integer) -from pandas.indexes.base import (Index, _ensure_index, - default_pprint, _index_shared_docs) +from pandas.core.indexes.base import ( + Index, _ensure_index, + default_pprint, _index_shared_docs) from pandas._libs import Timestamp, Timedelta -from pandas._libs.interval import (Interval, IntervalMixin, IntervalTree, - intervals_to_interval_bounds) +from pandas._libs.interval import ( + Interval, IntervalMixin, IntervalTree, + intervals_to_interval_bounds) -from pandas.indexes.multi import MultiIndex +from pandas.core.indexes.multi import MultiIndex from pandas.compat.numpy import function as nv from pandas.core import common as com from pandas.util.decorators import cache_readonly, Appender from pandas.core.config import get_option -import pandas.indexes.base as ibase +import pandas.core.indexes.base as ibase _index_doc_kwargs = dict(ibase._index_doc_kwargs) _index_doc_kwargs.update( dict(klass='IntervalIndex', diff --git a/pandas/indexes/multi.py b/pandas/core/indexes/multi.py similarity index 99% rename from pandas/indexes/multi.py rename to pandas/core/indexes/multi.py index b341bfe7b5215..40e7118ca0f6a 100644 --- a/pandas/indexes/multi.py +++ b/pandas/core/indexes/multi.py @@ -35,11 +35,13 @@ from pandas.core.config import get_option -from pandas.indexes.base import (Index, _ensure_index, - _get_na_value, InvalidIndexError, - _index_shared_docs) -from pandas.indexes.frozen import FrozenNDArray, FrozenList, _ensure_frozen -import pandas.indexes.base as ibase +from pandas.core.indexes.base import ( + Index, _ensure_index, + _get_na_value, InvalidIndexError, + _index_shared_docs) +from pandas.core.indexes.frozen import ( + FrozenNDArray, FrozenList, _ensure_frozen) +import pandas.core.indexes.base as ibase _index_doc_kwargs = dict(ibase._index_doc_kwargs) _index_doc_kwargs.update( dict(klass='MultiIndex', diff --git a/pandas/indexes/numeric.py b/pandas/core/indexes/numeric.py similarity index 99% rename from pandas/indexes/numeric.py rename to pandas/core/indexes/numeric.py index 6b9999239cd88..21ba2a386d96a 100644 --- a/pandas/indexes/numeric.py +++ b/pandas/core/indexes/numeric.py @@ -9,9 +9,10 @@ from pandas import compat from pandas.core import algorithms -from pandas.indexes.base import Index, InvalidIndexError, _index_shared_docs +from pandas.core.indexes.base import ( + Index, InvalidIndexError, _index_shared_docs) from pandas.util.decorators import Appender, cache_readonly -import pandas.indexes.base as ibase +import pandas.core.indexes.base as ibase _num_index_shared_docs = dict() diff --git a/pandas/indexes/range.py b/pandas/core/indexes/range.py similarity index 99% rename from pandas/indexes/range.py rename to pandas/core/indexes/range.py index 1eedfcc619aec..acd040693af2e 100644 --- a/pandas/indexes/range.py +++ b/pandas/core/indexes/range.py @@ -12,11 +12,11 @@ from pandas import compat from pandas.compat import lrange, range from pandas.compat.numpy import function as nv -from pandas.indexes.base import Index, _index_shared_docs +from pandas.core.indexes.base import Index, _index_shared_docs from pandas.util.decorators import Appender, cache_readonly -import pandas.indexes.base as ibase +import pandas.core.indexes.base as ibase -from pandas.indexes.numeric import Int64Index +from pandas.core.indexes.numeric import Int64Index class RangeIndex(Int64Index): diff --git a/pandas/core/sparse/array.py b/pandas/core/sparse/array.py index d3fdfe5533a03..ef3600266c037 100644 --- a/pandas/core/sparse/array.py +++ b/pandas/core/sparse/array.py @@ -36,7 +36,7 @@ import pandas.core.ops as ops import pandas.io.formats.printing as printing from pandas.util.decorators import Appender -from pandas.indexes.base import _index_shared_docs +from pandas.core.indexes.base import _index_shared_docs _sparray_doc_kwargs = dict(klass='SparseArray') diff --git a/pandas/tests/api/test_api.py b/pandas/tests/api/test_api.py index ec9e6039c6ee4..13e6d065382a6 100644 --- a/pandas/tests/api/test_api.py +++ b/pandas/tests/api/test_api.py @@ -30,8 +30,7 @@ class TestPDApi(Base, tm.TestCase): ignored = ['tests', 'locale', 'conftest'] # top-level sub-packages - lib = ['api', 'compat', 'core', - 'indexes', 'errors', 'pandas', + lib = ['api', 'compat', 'core', 'errors', 'pandas', 'plotting', 'test', 'testing', 'tools', 'tseries', 'util', 'options', 'io'] diff --git a/pandas/tests/indexes/common.py b/pandas/tests/indexes/common.py index bec55083829b6..9003a3707e417 100644 --- a/pandas/tests/indexes/common.py +++ b/pandas/tests/indexes/common.py @@ -419,7 +419,7 @@ def test_numpy_argsort(self): # pandas compatibility input validation - the # rest already perform separate (or no) such # validation via their 'values' attribute as - # defined in pandas.indexes/base.py - they + # defined in pandas.core.indexes/base.py - they # cannot be changed at the moment due to # backwards compatibility concerns if isinstance(type(ind), (CategoricalIndex, RangeIndex)): diff --git a/pandas/tests/indexes/test_base.py b/pandas/tests/indexes/test_base.py index 165ad91086d0a..de15abe89712a 100644 --- a/pandas/tests/indexes/test_base.py +++ b/pandas/tests/indexes/test_base.py @@ -3,7 +3,7 @@ from datetime import datetime, timedelta import pandas.util.testing as tm -from pandas.indexes.api import Index, MultiIndex +from pandas.core.indexes.api import Index, MultiIndex from pandas.tests.indexes.common import Base from pandas.compat import (range, lrange, lzip, u, diff --git a/pandas/tests/indexes/test_category.py b/pandas/tests/indexes/test_category.py index e714bbd4f9d44..6e869890bfcd6 100644 --- a/pandas/tests/indexes/test_category.py +++ b/pandas/tests/indexes/test_category.py @@ -1,7 +1,7 @@ # -*- coding: utf-8 -*- import pandas.util.testing as tm -from pandas.indexes.api import Index, CategoricalIndex +from pandas.core.indexes.api import Index, CategoricalIndex from .common import Base from pandas.compat import range, PY3 diff --git a/pandas/tests/indexes/test_frozen.py b/pandas/tests/indexes/test_frozen.py index cb90beb6a5bfb..ed2e3d94aa4a4 100644 --- a/pandas/tests/indexes/test_frozen.py +++ b/pandas/tests/indexes/test_frozen.py @@ -1,7 +1,7 @@ import numpy as np from pandas.util import testing as tm from pandas.tests.test_base import CheckImmutable, CheckStringMixin -from pandas.indexes.frozen import FrozenList, FrozenNDArray +from pandas.core.indexes.frozen import FrozenList, FrozenNDArray from pandas.compat import u diff --git a/pandas/tests/indexes/test_multi.py b/pandas/tests/indexes/test_multi.py index f907741950b01..d45182d8d82c5 100644 --- a/pandas/tests/indexes/test_multi.py +++ b/pandas/tests/indexes/test_multi.py @@ -16,7 +16,7 @@ compat, date_range, period_range) from pandas.compat import PY3, long, lrange, lzip, range, u from pandas.errors import PerformanceWarning, UnsortedIndexError -from pandas.indexes.base import InvalidIndexError +from pandas.core.indexes.base import InvalidIndexError from pandas._libs import lib from pandas._libs.lib import Timestamp diff --git a/pandas/tseries/base.py b/pandas/tseries/base.py index b419aae709683..3daa88fe396f6 100644 --- a/pandas/tseries/base.py +++ b/pandas/tseries/base.py @@ -28,12 +28,12 @@ from pandas._libs.period import Period from pandas.core.index import Index -from pandas.indexes.base import _index_shared_docs +from pandas.core.indexes.base import _index_shared_docs from pandas.util.decorators import Appender, cache_readonly import pandas.core.dtypes.concat as _concat import pandas.tseries.frequencies as frequencies -import pandas.indexes.base as ibase +import pandas.core.indexes.base as ibase _index_doc_kwargs = dict(ibase._index_doc_kwargs) diff --git a/pandas/tseries/index.py b/pandas/tseries/index.py index a964b6d9e09d3..d9aa72fe065ab 100644 --- a/pandas/tseries/index.py +++ b/pandas/tseries/index.py @@ -30,7 +30,7 @@ from pandas.core.common import _values_from_object, _maybe_box from pandas.core.index import Index, Int64Index, Float64Index -from pandas.indexes.base import _index_shared_docs +from pandas.core.indexes.base import _index_shared_docs import pandas.compat as compat from pandas.tseries.frequencies import ( to_offset, get_period_alias, diff --git a/pandas/tseries/period.py b/pandas/tseries/period.py index 66275925ff355..b19e086b818f0 100644 --- a/pandas/tseries/period.py +++ b/pandas/tseries/period.py @@ -37,14 +37,14 @@ _quarter_to_myear) from pandas.core.base import _shared_docs -from pandas.indexes.base import _index_shared_docs, _ensure_index +from pandas.core.indexes.base import _index_shared_docs, _ensure_index from pandas import compat from pandas.util.decorators import (Appender, Substitution, cache_readonly, deprecate_kwarg) from pandas.compat import zip, u -import pandas.indexes.base as ibase +import pandas.core.indexes.base as ibase _index_doc_kwargs = dict(ibase._index_doc_kwargs) _index_doc_kwargs.update( dict(target_klass='PeriodIndex or list of Periods')) diff --git a/pandas/tseries/tdi.py b/pandas/tseries/tdi.py index 020b7328238b7..7768b4a340775 100644 --- a/pandas/tseries/tdi.py +++ b/pandas/tseries/tdi.py @@ -23,7 +23,7 @@ from pandas.tseries.frequencies import to_offset from pandas.core.algorithms import checked_add_with_arr from pandas.core.base import _shared_docs -from pandas.indexes.base import _index_shared_docs +from pandas.core.indexes.base import _index_shared_docs import pandas.core.common as com import pandas.core.dtypes.concat as _concat from pandas.util.decorators import Appender, Substitution, deprecate_kwarg diff --git a/setup.py b/setup.py index a1ec567a20ee2..6fc66e2355c0f 100755 --- a/setup.py +++ b/setup.py @@ -640,9 +640,9 @@ def pxd(name): 'pandas.compat.numpy', 'pandas.core', 'pandas.core.dtypes', + 'pandas.core.indexes', 'pandas.core.computation', 'pandas.core.sparse', - 'pandas.indexes', 'pandas.errors', 'pandas.io', 'pandas.io.json',