From bbdb1ee914b21cbe5ec93d923d348341d0924935 Mon Sep 17 00:00:00 2001 From: Jeff Reback Date: Fri, 14 Apr 2017 12:50:49 -0400 Subject: [PATCH 01/11] CLN: move pandas.types -> pandas.core.typed xref #13634 --- asv_bench/benchmarks/categoricals.py | 2 +- doc/source/whatsnew/v0.20.0.txt | 10 ++- pandas/api/types/__init__.py | 2 +- pandas/compat/numpy/function.py | 2 +- pandas/computation/ops.py | 2 +- pandas/computation/pytables.py | 2 +- pandas/core/algorithms.py | 11 +-- pandas/core/api.py | 2 +- pandas/core/base.py | 8 +- pandas/core/categorical.py | 35 +++++---- pandas/core/common.py | 14 ++-- pandas/core/config_init.py | 2 +- pandas/core/frame.py | 66 +++++++++-------- pandas/core/generic.py | 33 +++++---- pandas/core/groupby.py | 43 +++++------ pandas/core/indexing.py | 23 +++--- pandas/core/internals.py | 74 ++++++++++--------- pandas/core/missing.py | 25 ++++--- pandas/core/nanops.py | 23 +++--- pandas/core/ops.py | 25 ++++--- pandas/core/panel.py | 12 +-- pandas/core/reshape.py | 13 ++-- pandas/core/series.py | 42 ++++++----- pandas/core/sorting.py | 9 ++- pandas/core/strings.py | 21 +++--- .../{tests/types => core/typed}/__init__.py | 0 pandas/{types => core/typed}/api.py | 0 pandas/{types => core/typed}/cast.py | 0 pandas/{types => core/typed}/common.py | 0 pandas/{types => core/typed}/concat.py | 5 +- pandas/{types => core/typed}/dtypes.py | 2 +- pandas/{types => core/typed}/generic.py | 0 pandas/{types => core/typed}/inference.py | 0 pandas/{types => core/typed}/missing.py | 0 pandas/core/window.py | 30 ++++---- pandas/formats/format.py | 29 ++++---- pandas/formats/printing.py | 2 +- pandas/formats/style.py | 2 +- pandas/indexes/base.py | 45 +++++------ pandas/indexes/category.py | 15 ++-- pandas/indexes/frozen.py | 2 +- pandas/indexes/interval.py | 27 +++---- pandas/indexes/multi.py | 15 ++-- pandas/indexes/numeric.py | 7 +- pandas/indexes/range.py | 7 +- pandas/io/common.py | 2 +- pandas/io/excel.py | 5 +- pandas/io/html.py | 2 +- pandas/io/json/json.py | 2 +- pandas/io/json/table_schema.py | 2 +- pandas/io/packers.py | 5 +- pandas/io/parsers.py | 15 ++-- pandas/io/parsers.pyx | 13 ++-- pandas/io/pickle.py | 2 +- pandas/io/pytables.py | 19 ++--- pandas/io/sql.py | 9 ++- pandas/io/stata.py | 5 +- pandas/sparse/array.py | 25 ++++--- pandas/sparse/frame.py | 6 +- pandas/sparse/list.py | 2 +- pandas/sparse/series.py | 4 +- pandas/stats/moments.py | 2 +- pandas/tests/api/test_api.py | 5 +- pandas/tests/api/test_types.py | 4 +- pandas/tests/computation/test_eval.py | 2 +- pandas/{types => tests/core}/__init__.py | 0 pandas/tests/core/typed/__init__.py | 0 .../tests/{types => core/typed}/test_cast.py | 21 +++--- .../{types => core/typed}/test_common.py | 10 ++- .../{types => core/typed}/test_concat.py | 2 +- .../{types => core/typed}/test_dtypes.py | 20 ++--- .../{types => core/typed}/test_generic.py | 2 +- .../{types => core/typed}/test_inference.py | 33 +++++---- pandas/tests/{types => core/typed}/test_io.py | 0 .../{types => core/typed}/test_missing.py | 7 +- pandas/tests/frame/test_alter_axes.py | 7 +- pandas/tests/frame/test_apply.py | 2 +- pandas/tests/frame/test_constructors.py | 2 +- pandas/tests/frame/test_dtypes.py | 2 +- pandas/tests/frame/test_indexing.py | 7 +- pandas/tests/groupby/test_bin_groupby.py | 2 +- pandas/tests/groupby/test_transform.py | 2 +- pandas/tests/indexes/common.py | 2 +- pandas/tests/indexes/datetimes/test_tools.py | 2 +- pandas/tests/indexing/common.py | 2 +- pandas/tests/indexing/test_indexing.py | 5 +- pandas/tests/indexing/test_ix.py | 2 +- .../tests/io/json/test_json_table_schema.py | 9 ++- pandas/tests/io/parser/dtypes.py | 2 +- pandas/tests/io/test_sql.py | 5 +- pandas/tests/io/test_stata.py | 2 +- pandas/tests/plotting/common.py | 2 +- pandas/tests/plotting/test_frame.py | 2 +- pandas/tests/series/test_constructors.py | 4 +- pandas/tests/series/test_datetime_values.py | 2 +- pandas/tests/series/test_indexing.py | 2 +- pandas/tests/series/test_quantile.py | 2 +- pandas/tests/sparse/test_frame.py | 9 ++- pandas/tests/test_base.py | 5 +- pandas/tests/test_categorical.py | 9 ++- pandas/tests/test_generic.py | 2 +- pandas/tests/test_multilevel.py | 2 +- pandas/tests/test_nanops.py | 2 +- pandas/tests/test_panel.py | 2 +- pandas/tests/test_panel4d.py | 2 +- pandas/tests/tools/test_merge.py | 4 +- pandas/tests/tools/test_union_categoricals.py | 2 +- pandas/tests/tseries/test_resample.py | 2 +- pandas/tests/tseries/test_timezones.py | 2 +- pandas/tools/concat.py | 2 +- pandas/tools/hashing.py | 11 ++- pandas/tools/merge.py | 37 +++++----- pandas/tools/pivot.py | 2 +- pandas/tools/tile.py | 15 ++-- pandas/tools/util.py | 19 ++--- pandas/tseries/base.py | 18 +++-- pandas/tseries/common.py | 11 +-- pandas/tseries/frequencies.py | 11 +-- pandas/tseries/index.py | 37 +++++----- pandas/tseries/offsets.py | 2 +- pandas/tseries/period.py | 31 ++++---- pandas/tseries/tdi.py | 27 +++---- pandas/tseries/timedeltas.py | 11 +-- pandas/tseries/tools.py | 28 +++---- pandas/tseries/util.py | 2 +- pandas/util/testing.py | 19 ++--- pandas/util/testing.pyx | 4 +- pandas/util/validators.py | 2 +- setup.py | 4 +- 129 files changed, 703 insertions(+), 617 deletions(-) rename pandas/{tests/types => core/typed}/__init__.py (100%) rename pandas/{types => core/typed}/api.py (100%) rename pandas/{types => core/typed}/cast.py (100%) rename pandas/{types => core/typed}/common.py (100%) rename pandas/{types => core/typed}/concat.py (99%) rename pandas/{types => core/typed}/dtypes.py (99%) rename pandas/{types => core/typed}/generic.py (100%) rename pandas/{types => core/typed}/inference.py (100%) rename pandas/{types => core/typed}/missing.py (100%) rename pandas/{types => tests/core}/__init__.py (100%) create mode 100644 pandas/tests/core/typed/__init__.py rename pandas/tests/{types => core/typed}/test_cast.py (95%) rename pandas/tests/{types => core/typed}/test_common.py (92%) rename pandas/tests/{types => core/typed}/test_concat.py (98%) rename pandas/tests/{types => core/typed}/test_dtypes.py (96%) rename pandas/tests/{types => core/typed}/test_generic.py (98%) rename pandas/tests/{types => core/typed}/test_inference.py (97%) rename pandas/tests/{types => core/typed}/test_io.py (100%) rename pandas/tests/{types => core/typed}/test_missing.py (98%) diff --git a/asv_bench/benchmarks/categoricals.py b/asv_bench/benchmarks/categoricals.py index 153107911ca2c..29ebc732f97f4 100644 --- a/asv_bench/benchmarks/categoricals.py +++ b/asv_bench/benchmarks/categoricals.py @@ -1,6 +1,6 @@ from .pandas_vb_common import * try: - from pandas.types.concat import union_categoricals + from pandas.core.typed.concat import union_categoricals except ImportError: pass diff --git a/doc/source/whatsnew/v0.20.0.txt b/doc/source/whatsnew/v0.20.0.txt index 914995244fe5f..b4e6ca44a83a6 100644 --- a/doc/source/whatsnew/v0.20.0.txt +++ b/doc/source/whatsnew/v0.20.0.txt @@ -1026,12 +1026,13 @@ New Behavior: In [11]: index.memory_usage(deep=True) Out[11]: 260 -.. _whatsnew_0200.api_breaking.extensions: +.. _whatsnew_0200.api_breaking.privacy: -Extension Modules Moved -^^^^^^^^^^^^^^^^^^^^^^^ +Modules Privacy Has Changed +^^^^^^^^^^^^^^^^^^^^^^^^^^^ -Some formerly public c/c++/cython extension modules have been moved and/or renamed. These are all removed from the public API. +Some formerly public python/c/c++/cython extension modules have been moved and/or renamed. These are all removed from the public API. +Further more, the ``pandas.core``, ``pandas.io``, and ``pandas.util`` top-level modules are now considered to be PRIVATE. If indicated, a deprecation warning will be issued if you reference that module. (:issue:`12588`) .. csv-table:: @@ -1048,6 +1049,7 @@ If indicated, a deprecation warning will be issued if you reference that module. "pandas.hashtable", "pandas._libs.hashtable", "" "pandas.json", "pandas.io.json.libjson", "X" "pandas.parser", "pandas.io.libparsers", "X" + "pandas.types", "pandas.core.typed", "" "pandas.io.sas.saslib", "pandas.io.sas.libsas", "" "pandas._testing", "pandas.util.libtesting", "" "pandas._sparse", "pandas.sparse.libsparse", "" diff --git a/pandas/api/types/__init__.py b/pandas/api/types/__init__.py index ee217543f0420..5d21e721a1ac6 100644 --- a/pandas/api/types/__init__.py +++ b/pandas/api/types/__init__.py @@ -1,4 +1,4 @@ """ public toolkit API """ -from pandas.types.api import * # noqa +from pandas.core.typed.api import * # noqa del np # noqa diff --git a/pandas/compat/numpy/function.py b/pandas/compat/numpy/function.py index 1dd22795533fc..a528f135319fe 100644 --- a/pandas/compat/numpy/function.py +++ b/pandas/compat/numpy/function.py @@ -22,7 +22,7 @@ from pandas.util.validators import (validate_args, validate_kwargs, validate_args_and_kwargs) from pandas.errors import UnsupportedFunctionCall -from pandas.types.common import is_integer, is_bool +from pandas.core.typed.common import is_integer, is_bool from pandas.compat import OrderedDict diff --git a/pandas/computation/ops.py b/pandas/computation/ops.py index 6ba2a21940d55..411b238afd606 100644 --- a/pandas/computation/ops.py +++ b/pandas/computation/ops.py @@ -7,7 +7,7 @@ import numpy as np -from pandas.types.common import is_list_like, is_scalar +from pandas.core.typed.common import is_list_like, is_scalar import pandas as pd from pandas.compat import PY3, string_types, text_type import pandas.core.common as com diff --git a/pandas/computation/pytables.py b/pandas/computation/pytables.py index 2a5056963fe8d..7505e65cbc6ed 100644 --- a/pandas/computation/pytables.py +++ b/pandas/computation/pytables.py @@ -5,7 +5,7 @@ import numpy as np import pandas as pd -from pandas.types.common import is_list_like +from pandas.core.typed.common import is_list_like import pandas.core.common as com from pandas.compat import u, string_types, DeepChainMap from pandas.core.base import StringMixin diff --git a/pandas/core/algorithms.py b/pandas/core/algorithms.py index 5d2db864dd48e..121ba8c12283c 100644 --- a/pandas/core/algorithms.py +++ b/pandas/core/algorithms.py @@ -7,10 +7,11 @@ import numpy as np from pandas import compat, _np_version_under1p8 -from pandas.types.cast import maybe_promote -from pandas.types.generic import (ABCSeries, ABCIndex, - ABCIndexClass, ABCCategorical) -from pandas.types.common import ( +from pandas.core.typed.cast import maybe_promote +from pandas.core.typed.generic import ( + ABCSeries, ABCIndex, + ABCIndexClass, ABCCategorical) +from pandas.core.typed.common import ( is_unsigned_integer_dtype, is_signed_integer_dtype, is_integer_dtype, is_complex_dtype, is_categorical_dtype, is_sparse, @@ -25,7 +26,7 @@ _ensure_float64, _ensure_uint64, _ensure_int64) from pandas.compat.numpy import _np_version_under1p10 -from pandas.types.missing import isnull +from pandas.core.typed.missing import isnull import pandas.core.common as com from pandas.compat import string_types diff --git a/pandas/core/api.py b/pandas/core/api.py index ea5be17ef3aaf..8b300529e204d 100644 --- a/pandas/core/api.py +++ b/pandas/core/api.py @@ -5,7 +5,7 @@ import numpy as np from pandas.core.algorithms import factorize, unique, value_counts -from pandas.types.missing import isnull, notnull +from pandas.core.typed.missing import isnull, notnull from pandas.core.categorical import Categorical from pandas.core.groupby import Grouper from pandas.formats.format import set_eng_float_format diff --git a/pandas/core/base.py b/pandas/core/base.py index 33c95197debdc..1c42c53c20378 100644 --- a/pandas/core/base.py +++ b/pandas/core/base.py @@ -6,9 +6,9 @@ from pandas.compat import builtins import numpy as np -from pandas.types.missing import isnull -from pandas.types.generic import ABCDataFrame, ABCSeries, ABCIndexClass -from pandas.types.common import is_object_dtype, is_list_like, is_scalar +from pandas.core.typed.missing import isnull +from pandas.core.typed.generic import ABCDataFrame, ABCSeries, ABCIndexClass +from pandas.core.typed.common import is_object_dtype, is_list_like, is_scalar from pandas.util.validators import validate_bool_kwarg from pandas.core import common as com @@ -725,7 +725,7 @@ def _aggregate_multiple_funcs(self, arg, _level, _axis): # we are concatting non-NDFrame objects, # e.g. a list of scalars - from pandas.types.cast import is_nested_object + from pandas.core.typed.cast import is_nested_object from pandas import Series result = Series(results, index=keys, name=self.name) if is_nested_object(result): diff --git a/pandas/core/categorical.py b/pandas/core/categorical.py index 906e8efafe4af..36a19e96ef292 100644 --- a/pandas/core/categorical.py +++ b/pandas/core/categorical.py @@ -8,21 +8,24 @@ from pandas.compat import u, lzip from pandas._libs import lib, algos as libalgos -from pandas.types.generic import ABCSeries, ABCIndexClass, ABCCategoricalIndex -from pandas.types.missing import isnull, notnull -from pandas.types.cast import (maybe_infer_to_datetimelike, - coerce_indexer_dtype) -from pandas.types.dtypes import CategoricalDtype -from pandas.types.common import (_ensure_int64, - _ensure_object, - _ensure_platform_int, - is_dtype_equal, - is_datetimelike, - is_categorical, - is_categorical_dtype, - is_integer_dtype, is_bool, - is_list_like, is_sequence, - is_scalar) +from pandas.core.typed.generic import ( + ABCSeries, ABCIndexClass, ABCCategoricalIndex) +from pandas.core.typed.missing import isnull, notnull +from pandas.core.typed.cast import ( + maybe_infer_to_datetimelike, + coerce_indexer_dtype) +from pandas.core.typed.dtypes import CategoricalDtype +from pandas.core.typed.common import ( + _ensure_int64, + _ensure_object, + _ensure_platform_int, + is_dtype_equal, + is_datetimelike, + is_categorical, + is_categorical_dtype, + is_integer_dtype, is_bool, + is_list_like, is_sequence, + is_scalar) from pandas.core.common import is_null_slice from pandas.core.algorithms import factorize, take_1d, unique1d @@ -1215,7 +1218,7 @@ def value_counts(self, dropna=True): """ from numpy import bincount - from pandas.types.missing import isnull + from pandas.core.typed.missing import isnull from pandas.core.series import Series from pandas.core.index import CategoricalIndex diff --git a/pandas/core/common.py b/pandas/core/common.py index bf4acf1fbf257..1d200ce117f94 100644 --- a/pandas/core/common.py +++ b/pandas/core/common.py @@ -13,12 +13,12 @@ from pandas import compat from pandas.compat import long, zip, iteritems from pandas.core.config import get_option -from pandas.types.generic import ABCSeries -from pandas.types.common import _NS_DTYPE -from pandas.types.inference import _iterable_not_string -from pandas.types.missing import isnull +from pandas.core.typed.generic import ABCSeries +from pandas.core.typed.common import _NS_DTYPE +from pandas.core.typed.inference import _iterable_not_string +from pandas.core.typed.missing import isnull from pandas.api import types -from pandas.types import common +from pandas.core.typed import common # compat from pandas.errors import ( # noqa @@ -60,7 +60,7 @@ def wrapper(*args, **kwargs): warnings.warn("pandas.core.common.{t} is deprecated. " "These are not longer public API functions, " "but can be imported from " - "pandas.types.common.{t} instead".format(t=t), + "pandas.core.typed.common.{t} instead".format(t=t), DeprecationWarning, stacklevel=3) return getattr(common, t)(*args, **kwargs) return wrapper @@ -73,7 +73,7 @@ def wrapper(*args, **kwargs): def array_equivalent(*args, **kwargs): warnings.warn("'pandas.core.common.array_equivalent' is deprecated and " "is no longer public API", DeprecationWarning, stacklevel=2) - from pandas.types import missing + from pandas.core.typed import missing return missing.array_equivalent(*args, **kwargs) diff --git a/pandas/core/config_init.py b/pandas/core/config_init.py index cf2a653638e90..855ce9fd83dae 100644 --- a/pandas/core/config_init.py +++ b/pandas/core/config_init.py @@ -415,7 +415,7 @@ def mpl_style_cb(key): def use_inf_as_null_cb(key): - from pandas.types.missing import _use_inf_as_null + from pandas.core.typed.missing import _use_inf_as_null _use_inf_as_null(key) diff --git a/pandas/core/frame.py b/pandas/core/frame.py index a5256868ce419..ec380dc34c852 100644 --- a/pandas/core/frame.py +++ b/pandas/core/frame.py @@ -23,38 +23,40 @@ import numpy as np import numpy.ma as ma -from pandas.types.cast import (maybe_upcast, infer_dtype_from_scalar, - maybe_cast_to_datetime, - maybe_infer_to_datetimelike, - maybe_convert_platform, - maybe_downcast_to_dtype, - invalidate_string_dtypes, - coerce_to_dtypes, - maybe_upcast_putmask, - find_common_type) -from pandas.types.common import (is_categorical_dtype, - is_object_dtype, - is_extension_type, - is_datetimetz, - is_datetime64_any_dtype, - is_datetime64tz_dtype, - is_bool_dtype, - is_integer_dtype, - is_float_dtype, - is_integer, - is_scalar, - is_dtype_equal, - needs_i8_conversion, - _get_dtype_from_object, - _ensure_float, - _ensure_float64, - _ensure_int64, - _ensure_platform_int, - is_list_like, - is_iterator, - is_sequence, - is_named_tuple) -from pandas.types.missing import isnull, notnull +from pandas.core.typed.cast import ( + maybe_upcast, infer_dtype_from_scalar, + maybe_cast_to_datetime, + maybe_infer_to_datetimelike, + maybe_convert_platform, + maybe_downcast_to_dtype, + invalidate_string_dtypes, + coerce_to_dtypes, + maybe_upcast_putmask, + find_common_type) +from pandas.core.typed.common import ( + is_categorical_dtype, + is_object_dtype, + is_extension_type, + is_datetimetz, + is_datetime64_any_dtype, + is_datetime64tz_dtype, + is_bool_dtype, + is_integer_dtype, + is_float_dtype, + is_integer, + is_scalar, + is_dtype_equal, + needs_i8_conversion, + _get_dtype_from_object, + _ensure_float, + _ensure_float64, + _ensure_int64, + _ensure_platform_int, + is_list_like, + is_iterator, + is_sequence, + is_named_tuple) +from pandas.core.typed.missing import isnull, notnull from pandas.core.common import (_try_sort, _default_index, diff --git a/pandas/core/generic.py b/pandas/core/generic.py index 316c9f5e2ccd8..ba5724246c5bf 100644 --- a/pandas/core/generic.py +++ b/pandas/core/generic.py @@ -10,22 +10,23 @@ import pandas as pd from pandas._libs import tslib, lib -from pandas.types.common import (_coerce_to_dtype, - _ensure_int64, - needs_i8_conversion, - is_scalar, - is_integer, is_bool, - is_bool_dtype, - is_numeric_dtype, - is_datetime64_dtype, - is_timedelta64_dtype, - is_datetime64tz_dtype, - is_list_like, - is_dict_like, - is_re_compilable) -from pandas.types.cast import maybe_promote, maybe_upcast_putmask -from pandas.types.missing import isnull, notnull -from pandas.types.generic import ABCSeries, ABCPanel +from pandas.core.typed.common import ( + _coerce_to_dtype, + _ensure_int64, + needs_i8_conversion, + is_scalar, + is_integer, is_bool, + is_bool_dtype, + is_numeric_dtype, + is_datetime64_dtype, + is_timedelta64_dtype, + is_datetime64tz_dtype, + is_list_like, + is_dict_like, + is_re_compilable) +from pandas.core.typed.cast import maybe_promote, maybe_upcast_putmask +from pandas.core.typed.missing import isnull, notnull +from pandas.core.typed.generic import ABCSeries, ABCPanel from pandas.core.common import (_values_from_object, _maybe_box_datetimelike, diff --git a/pandas/core/groupby.py b/pandas/core/groupby.py index 27e256a8eb572..17d8ea99211b3 100644 --- a/pandas/core/groupby.py +++ b/pandas/core/groupby.py @@ -15,26 +15,27 @@ from pandas.compat.numpy import function as nv, _np_version_under1p8 from pandas.compat import set_function_name -from pandas.types.common import (is_numeric_dtype, - is_timedelta64_dtype, is_datetime64_dtype, - is_categorical_dtype, - is_interval_dtype, - is_datetimelike, - is_datetime64_any_dtype, - is_bool, is_integer_dtype, - is_complex_dtype, - is_bool_dtype, - is_scalar, - is_list_like, - needs_i8_conversion, - _ensure_float64, - _ensure_platform_int, - _ensure_int64, - _ensure_object, - _ensure_categorical, - _ensure_float) -from pandas.types.cast import maybe_downcast_to_dtype -from pandas.types.missing import isnull, notnull, _maybe_fill +from pandas.core.typed.common import ( + is_numeric_dtype, + is_timedelta64_dtype, is_datetime64_dtype, + is_categorical_dtype, + is_interval_dtype, + is_datetimelike, + is_datetime64_any_dtype, + is_bool, is_integer_dtype, + is_complex_dtype, + is_bool_dtype, + is_scalar, + is_list_like, + needs_i8_conversion, + _ensure_float64, + _ensure_platform_int, + _ensure_int64, + _ensure_object, + _ensure_categorical, + _ensure_float) +from pandas.core.typed.cast import maybe_downcast_to_dtype +from pandas.core.typed.missing import isnull, notnull, _maybe_fill from pandas.core.common import (_values_from_object, AbstractMethodError, _default_index) @@ -4079,7 +4080,7 @@ def _apply_to_column_groupbys(self, func): def count(self): """ Compute count of group, excluding missing values """ from functools import partial - from pandas.types.missing import _isnull_ndarraylike as isnull + from pandas.core.typed.missing import _isnull_ndarraylike as isnull data, _ = self._get_data_to_aggregate() ids, _, ngroups = self.grouper.group_info diff --git a/pandas/core/indexing.py b/pandas/core/indexing.py index dd8fa2d3ddc81..edcbc57e761a8 100755 --- a/pandas/core/indexing.py +++ b/pandas/core/indexing.py @@ -4,17 +4,18 @@ import numpy as np from pandas.compat import range, zip import pandas.compat as compat -from pandas.types.generic import ABCDataFrame, ABCPanel, ABCSeries -from pandas.types.common import (is_integer_dtype, - is_integer, is_float, - is_list_like, - is_sequence, - is_iterator, - is_scalar, - is_sparse, - _is_unorderable_exception, - _ensure_platform_int) -from pandas.types.missing import isnull, _infer_fill_value +from pandas.core.typed.generic import ABCDataFrame, ABCPanel, ABCSeries +from pandas.core.typed.common import ( + is_integer_dtype, + is_integer, is_float, + is_list_like, + is_sequence, + is_iterator, + is_scalar, + is_sparse, + _is_unorderable_exception, + _ensure_platform_int) +from pandas.core.typed.missing import isnull, _infer_fill_value from pandas.core.index import Index, MultiIndex diff --git a/pandas/core/internals.py b/pandas/core/internals.py index 57361886eab8c..0e45f6baae471 100644 --- a/pandas/core/internals.py +++ b/pandas/core/internals.py @@ -9,41 +9,45 @@ from pandas.core.base import PandasObject -from pandas.types.dtypes import (ExtensionDtype, DatetimeTZDtype, - CategoricalDtype) -from pandas.types.common import (_TD_DTYPE, _NS_DTYPE, - _ensure_int64, _ensure_platform_int, - is_integer, - is_dtype_equal, - is_timedelta64_dtype, - is_datetime64_dtype, is_datetimetz, is_sparse, - is_categorical, is_categorical_dtype, - is_integer_dtype, - is_datetime64tz_dtype, - is_object_dtype, - is_datetimelike_v_numeric, - is_float_dtype, is_numeric_dtype, - is_numeric_v_string_like, is_extension_type, - is_list_like, - is_re, - is_re_compilable, - is_scalar, - _get_dtype) -from pandas.types.cast import (maybe_downcast_to_dtype, - maybe_convert_string_to_object, - maybe_upcast, - maybe_convert_scalar, maybe_promote, - infer_dtype_from_scalar, - soft_convert_objects, - maybe_convert_objects, - astype_nansafe, - find_common_type) -from pandas.types.missing import (isnull, array_equivalent, - _is_na_compat, - is_null_datelike_scalar) -import pandas.types.concat as _concat - -from pandas.types.generic import ABCSeries +from pandas.core.typed.dtypes import ( + ExtensionDtype, DatetimeTZDtype, + CategoricalDtype) +from pandas.core.typed.common import ( + _TD_DTYPE, _NS_DTYPE, + _ensure_int64, _ensure_platform_int, + is_integer, + is_dtype_equal, + is_timedelta64_dtype, + is_datetime64_dtype, is_datetimetz, is_sparse, + is_categorical, is_categorical_dtype, + is_integer_dtype, + is_datetime64tz_dtype, + is_object_dtype, + is_datetimelike_v_numeric, + is_float_dtype, is_numeric_dtype, + is_numeric_v_string_like, is_extension_type, + is_list_like, + is_re, + is_re_compilable, + is_scalar, + _get_dtype) +from pandas.core.typed.cast import ( + maybe_downcast_to_dtype, + maybe_convert_string_to_object, + maybe_upcast, + maybe_convert_scalar, maybe_promote, + infer_dtype_from_scalar, + soft_convert_objects, + maybe_convert_objects, + astype_nansafe, + find_common_type) +from pandas.core.typed.missing import ( + isnull, array_equivalent, + _is_na_compat, + is_null_datelike_scalar) +import pandas.core.typed.concat as _concat + +from pandas.core.typed.generic import ABCSeries from pandas.core.common import is_null_slice import pandas.core.algorithms as algos diff --git a/pandas/core/missing.py b/pandas/core/missing.py index 91039f3270af2..dfd9b3d529cf8 100644 --- a/pandas/core/missing.py +++ b/pandas/core/missing.py @@ -8,18 +8,19 @@ from pandas._libs import algos, lib from pandas.compat import range, string_types -from pandas.types.common import (is_numeric_v_string_like, - is_float_dtype, - is_datetime64_dtype, - is_datetime64tz_dtype, - is_integer_dtype, - is_scalar, - is_integer, - needs_i8_conversion, - _ensure_float64) - -from pandas.types.cast import infer_dtype_from_array -from pandas.types.missing import isnull +from pandas.core.typed.common import ( + is_numeric_v_string_like, + is_float_dtype, + is_datetime64_dtype, + is_datetime64tz_dtype, + is_integer_dtype, + is_scalar, + is_integer, + needs_i8_conversion, + _ensure_float64) + +from pandas.core.typed.cast import infer_dtype_from_array +from pandas.core.typed.missing import isnull def mask_missing(arr, values_to_mask): diff --git a/pandas/core/nanops.py b/pandas/core/nanops.py index 6ec94e69740a2..ef53b7dedd79c 100644 --- a/pandas/core/nanops.py +++ b/pandas/core/nanops.py @@ -11,17 +11,18 @@ from pandas import compat from pandas._libs import tslib, algos, lib -from pandas.types.common import (_get_dtype, - is_float, is_scalar, - is_integer, is_complex, is_float_dtype, - is_complex_dtype, is_integer_dtype, - is_bool_dtype, is_object_dtype, - is_numeric_dtype, - is_datetime64_dtype, is_timedelta64_dtype, - is_datetime_or_timedelta_dtype, - is_int_or_datetime_dtype, is_any_int_dtype) -from pandas.types.cast import _int64_max, maybe_upcast_putmask -from pandas.types.missing import isnull, notnull +from pandas.core.typed.common import ( + _get_dtype, + is_float, is_scalar, + is_integer, is_complex, is_float_dtype, + is_complex_dtype, is_integer_dtype, + is_bool_dtype, is_object_dtype, + is_numeric_dtype, + is_datetime64_dtype, is_timedelta64_dtype, + is_datetime_or_timedelta_dtype, + is_int_or_datetime_dtype, is_any_int_dtype) +from pandas.core.typed.cast import _int64_max, maybe_upcast_putmask +from pandas.core.typed.missing import isnull, notnull from pandas.core.common import _values_from_object diff --git a/pandas/core/ops.py b/pandas/core/ops.py index 9e777fd94de66..3feb944701b70 100644 --- a/pandas/core/ops.py +++ b/pandas/core/ops.py @@ -23,18 +23,19 @@ from pandas.errors import PerformanceWarning from pandas.core.common import _values_from_object, _maybe_match_name -from pandas.types.missing import notnull, isnull -from pandas.types.common import (needs_i8_conversion, - is_datetimelike_v_numeric, - is_integer_dtype, is_categorical_dtype, - is_object_dtype, is_timedelta64_dtype, - is_datetime64_dtype, is_datetime64tz_dtype, - is_bool_dtype, is_datetimetz, - is_list_like, - is_scalar, - _ensure_object) -from pandas.types.cast import maybe_upcast_putmask, find_common_type -from pandas.types.generic import ABCSeries, ABCIndex, ABCPeriodIndex +from pandas.core.typed.missing import notnull, isnull +from pandas.core.typed.common import ( + needs_i8_conversion, + is_datetimelike_v_numeric, + is_integer_dtype, is_categorical_dtype, + is_object_dtype, is_timedelta64_dtype, + is_datetime64_dtype, is_datetime64tz_dtype, + is_bool_dtype, is_datetimetz, + is_list_like, + is_scalar, + _ensure_object) +from pandas.core.typed.cast import maybe_upcast_putmask, find_common_type +from pandas.core.typed.generic import ABCSeries, ABCIndex, ABCPeriodIndex # ----------------------------------------------------------------------------- # Functions that add arithmetic methods to objects, given arithmetic factory diff --git a/pandas/core/panel.py b/pandas/core/panel.py index 24f4d219fb9ca..0fdc34e9e009e 100644 --- a/pandas/core/panel.py +++ b/pandas/core/panel.py @@ -6,11 +6,13 @@ import numpy as np import warnings -from pandas.types.cast import (infer_dtype_from_scalar, - maybe_cast_item) -from pandas.types.common import (is_integer, is_list_like, - is_string_like, is_scalar) -from pandas.types.missing import notnull +from pandas.core.typed.cast import ( + infer_dtype_from_scalar, + maybe_cast_item) +from pandas.core.typed.common import ( + is_integer, is_list_like, + is_string_like, is_scalar) +from pandas.core.typed.missing import notnull import pandas.computation.expressions as expressions import pandas.core.common as com diff --git a/pandas/core/reshape.py b/pandas/core/reshape.py index b03c3d77928c7..b5615d094b12e 100644 --- a/pandas/core/reshape.py +++ b/pandas/core/reshape.py @@ -7,12 +7,13 @@ import numpy as np -from pandas.types.common import (_ensure_platform_int, - is_list_like, is_bool_dtype, - needs_i8_conversion) -from pandas.types.cast import maybe_promote -from pandas.types.missing import notnull -import pandas.types.concat as _concat +from pandas.core.typed.common import ( + _ensure_platform_int, + is_list_like, is_bool_dtype, + needs_i8_conversion) +from pandas.core.typed.cast import maybe_promote +from pandas.core.typed.missing import notnull +import pandas.core.typed.concat as _concat from pandas.core.series import Series from pandas.core.frame import DataFrame diff --git a/pandas/core/series.py b/pandas/core/series.py index 1cf537cf3c315..fc7e5250d4cbf 100644 --- a/pandas/core/series.py +++ b/pandas/core/series.py @@ -13,26 +13,28 @@ import numpy as np import numpy.ma as ma -from pandas.types.common import (_coerce_to_dtype, is_categorical_dtype, - is_bool, - is_integer, is_integer_dtype, - is_float_dtype, - is_extension_type, is_datetimetz, - is_datetimelike, - is_datetime64tz_dtype, - is_timedelta64_dtype, - is_list_like, - is_hashable, - is_iterator, - is_dict_like, - is_scalar, - _is_unorderable_exception, - _ensure_platform_int) -from pandas.types.generic import ABCSparseArray, ABCDataFrame -from pandas.types.cast import (maybe_upcast, infer_dtype_from_scalar, - maybe_convert_platform, - maybe_cast_to_datetime, maybe_castable) -from pandas.types.missing import isnull, notnull +from pandas.core.typed.common import ( + _coerce_to_dtype, is_categorical_dtype, + is_bool, + is_integer, is_integer_dtype, + is_float_dtype, + is_extension_type, is_datetimetz, + is_datetimelike, + is_datetime64tz_dtype, + is_timedelta64_dtype, + is_list_like, + is_hashable, + is_iterator, + is_dict_like, + is_scalar, + _is_unorderable_exception, + _ensure_platform_int) +from pandas.core.typed.generic import ABCSparseArray, ABCDataFrame +from pandas.core.typed.cast import ( + maybe_upcast, infer_dtype_from_scalar, + maybe_convert_platform, + maybe_cast_to_datetime, maybe_castable) +from pandas.core.typed.missing import isnull, notnull from pandas.core.common import (is_bool_indexer, _default_index, diff --git a/pandas/core/sorting.py b/pandas/core/sorting.py index e56a4f50de134..906072ed64393 100644 --- a/pandas/core/sorting.py +++ b/pandas/core/sorting.py @@ -3,10 +3,11 @@ import numpy as np from pandas.compat import long from pandas.core.categorical import Categorical -from pandas.types.common import (_ensure_platform_int, - _ensure_int64, - is_categorical_dtype) -from pandas.types.missing import isnull +from pandas.core.typed.common import ( + _ensure_platform_int, + _ensure_int64, + is_categorical_dtype) +from pandas.core.typed.missing import isnull import pandas.core.algorithms as algorithms from pandas._libs import lib, algos, hashtable from pandas._libs.hashtable import unique_label_indices diff --git a/pandas/core/strings.py b/pandas/core/strings.py index 504d3dd47cc21..fc9a867e67d1d 100644 --- a/pandas/core/strings.py +++ b/pandas/core/strings.py @@ -1,16 +1,17 @@ import numpy as np from pandas.compat import zip -from pandas.types.generic import ABCSeries, ABCIndex -from pandas.types.missing import isnull, notnull -from pandas.types.common import (is_bool_dtype, - is_categorical_dtype, - is_object_dtype, - is_string_like, - is_list_like, - is_scalar, - is_integer, - is_re) +from pandas.core.typed.generic import ABCSeries, ABCIndex +from pandas.core.typed.missing import isnull, notnull +from pandas.core.typed.common import ( + is_bool_dtype, + is_categorical_dtype, + is_object_dtype, + is_string_like, + is_list_like, + is_scalar, + is_integer, + is_re) from pandas.core.common import _values_from_object from pandas.core.algorithms import take_1d diff --git a/pandas/tests/types/__init__.py b/pandas/core/typed/__init__.py similarity index 100% rename from pandas/tests/types/__init__.py rename to pandas/core/typed/__init__.py diff --git a/pandas/types/api.py b/pandas/core/typed/api.py similarity index 100% rename from pandas/types/api.py rename to pandas/core/typed/api.py diff --git a/pandas/types/cast.py b/pandas/core/typed/cast.py similarity index 100% rename from pandas/types/cast.py rename to pandas/core/typed/cast.py diff --git a/pandas/types/common.py b/pandas/core/typed/common.py similarity index 100% rename from pandas/types/common.py rename to pandas/core/typed/common.py diff --git a/pandas/types/concat.py b/pandas/core/typed/concat.py similarity index 99% rename from pandas/types/concat.py rename to pandas/core/typed/concat.py index b098bbb75d984..604663e327fd7 100644 --- a/pandas/types/concat.py +++ b/pandas/core/typed/concat.py @@ -17,8 +17,9 @@ is_dtype_equal, _NS_DTYPE, _TD_DTYPE) -from pandas.types.generic import (ABCDatetimeIndex, ABCTimedeltaIndex, - ABCPeriodIndex) +from pandas.core.typed.generic import ( + ABCDatetimeIndex, ABCTimedeltaIndex, + ABCPeriodIndex) def get_dtype_kinds(l): diff --git a/pandas/types/dtypes.py b/pandas/core/typed/dtypes.py similarity index 99% rename from pandas/types/dtypes.py rename to pandas/core/typed/dtypes.py index 7913950a597c9..d76979a98e5d2 100644 --- a/pandas/types/dtypes.py +++ b/pandas/core/typed/dtypes.py @@ -410,7 +410,7 @@ def __new__(cls, subtype=None): if m is not None: subtype = m.group('subtype') - from pandas.types.common import pandas_dtype + from pandas.core.typed.common import pandas_dtype try: subtype = pandas_dtype(subtype) except TypeError: diff --git a/pandas/types/generic.py b/pandas/core/typed/generic.py similarity index 100% rename from pandas/types/generic.py rename to pandas/core/typed/generic.py diff --git a/pandas/types/inference.py b/pandas/core/typed/inference.py similarity index 100% rename from pandas/types/inference.py rename to pandas/core/typed/inference.py diff --git a/pandas/types/missing.py b/pandas/core/typed/missing.py similarity index 100% rename from pandas/types/missing.py rename to pandas/core/typed/missing.py diff --git a/pandas/core/window.py b/pandas/core/window.py index 5b84b075ce81a..98641a537d220 100644 --- a/pandas/core/window.py +++ b/pandas/core/window.py @@ -12,20 +12,22 @@ from collections import defaultdict from datetime import timedelta -from pandas.types.generic import (ABCSeries, - ABCDataFrame, - ABCDatetimeIndex, - ABCTimedeltaIndex, - ABCPeriodIndex) -from pandas.types.common import (is_integer, - is_bool, - is_float_dtype, - is_integer_dtype, - needs_i8_conversion, - is_timedelta64_dtype, - is_list_like, - _ensure_float64, - is_scalar) +from pandas.core.typed.generic import ( + ABCSeries, + ABCDataFrame, + ABCDatetimeIndex, + ABCTimedeltaIndex, + ABCPeriodIndex) +from pandas.core.typed.common import ( + is_integer, + is_bool, + is_float_dtype, + is_integer_dtype, + needs_i8_conversion, + is_timedelta64_dtype, + is_list_like, + _ensure_float64, + is_scalar) import pandas as pd from pandas.core.base import (PandasObject, SelectionMixin, diff --git a/pandas/formats/format.py b/pandas/formats/format.py index 907198d98cf5b..3eb6b69ef451a 100644 --- a/pandas/formats/format.py +++ b/pandas/formats/format.py @@ -10,20 +10,21 @@ import sys -from pandas.types.missing import isnull, notnull -from pandas.types.common import (is_categorical_dtype, - is_float_dtype, - is_period_arraylike, - is_integer_dtype, - is_interval_dtype, - is_datetimetz, - is_integer, - is_float, - is_numeric_dtype, - is_datetime64_dtype, - is_timedelta64_dtype, - is_list_like) -from pandas.types.generic import ABCSparseArray +from pandas.core.typed.missing import isnull, notnull +from pandas.core.typed.common import ( + is_categorical_dtype, + is_float_dtype, + is_period_arraylike, + is_integer_dtype, + is_interval_dtype, + is_datetimetz, + is_integer, + is_float, + is_numeric_dtype, + is_datetime64_dtype, + is_timedelta64_dtype, + is_list_like) +from pandas.core.typed.generic import ABCSparseArray from pandas.core.base import PandasObject from pandas.core.index import Index, MultiIndex, _ensure_index from pandas import compat diff --git a/pandas/formats/printing.py b/pandas/formats/printing.py index 37bd4b63d6f7a..90cc7e17a656e 100644 --- a/pandas/formats/printing.py +++ b/pandas/formats/printing.py @@ -2,7 +2,7 @@ printing tools """ -from pandas.types.inference import is_sequence +from pandas.core.typed.inference import is_sequence from pandas import compat from pandas.compat import u from pandas.core.config import get_option diff --git a/pandas/formats/style.py b/pandas/formats/style.py index af02077bd5b41..8e4c7fa834b6f 100644 --- a/pandas/formats/style.py +++ b/pandas/formats/style.py @@ -19,7 +19,7 @@ "or `pip install Jinja2`" raise ImportError(msg) -from pandas.types.common import is_float, is_string_like +from pandas.core.typed.common import is_float, is_string_like import numpy as np import pandas as pd diff --git a/pandas/indexes/base.py b/pandas/indexes/base.py index 00ad4ca71cb9d..a01715ed12a3d 100644 --- a/pandas/indexes/base.py +++ b/pandas/indexes/base.py @@ -13,27 +13,28 @@ from pandas import compat -from pandas.types.generic import ABCSeries, ABCMultiIndex, ABCPeriodIndex -from pandas.types.missing import isnull, array_equivalent -from pandas.types.common import (_ensure_int64, - _ensure_object, - _ensure_categorical, - _ensure_platform_int, - is_integer, - is_float, - is_dtype_equal, - is_object_dtype, - is_categorical_dtype, - is_interval_dtype, - is_bool_dtype, - is_signed_integer_dtype, - is_unsigned_integer_dtype, - is_integer_dtype, is_float_dtype, - is_datetime64_any_dtype, - is_timedelta64_dtype, - needs_i8_conversion, - is_iterator, is_list_like, - is_scalar) +from pandas.core.typed.generic import ABCSeries, ABCMultiIndex, ABCPeriodIndex +from pandas.core.typed.missing import isnull, array_equivalent +from pandas.core.typed.common import ( + _ensure_int64, + _ensure_object, + _ensure_categorical, + _ensure_platform_int, + is_integer, + is_float, + is_dtype_equal, + is_object_dtype, + is_categorical_dtype, + is_interval_dtype, + is_bool_dtype, + is_signed_integer_dtype, + is_unsigned_integer_dtype, + is_integer_dtype, is_float_dtype, + is_datetime64_any_dtype, + is_timedelta64_dtype, + needs_i8_conversion, + is_iterator, is_list_like, + is_scalar) from pandas.core.common import (is_bool_indexer, _values_from_object, _asarray_tuplesafe) @@ -44,7 +45,7 @@ deprecate, deprecate_kwarg) from pandas.indexes.frozen import FrozenList import pandas.core.common as com -import pandas.types.concat as _concat +import pandas.core.typed.concat as _concat import pandas.core.missing as missing import pandas.core.algorithms as algos from pandas.formats.printing import pprint_thing diff --git a/pandas/indexes/category.py b/pandas/indexes/category.py index 6c57b2ed83705..f7ba9c788675e 100644 --- a/pandas/indexes/category.py +++ b/pandas/indexes/category.py @@ -3,14 +3,15 @@ from pandas import compat from pandas.compat.numpy import function as nv -from pandas.types.generic import ABCCategorical, ABCSeries -from pandas.types.common import (is_categorical_dtype, - _ensure_platform_int, - is_list_like, - is_interval_dtype, - is_scalar) +from pandas.core.typed.generic import ABCCategorical, ABCSeries +from pandas.core.typed.common import ( + is_categorical_dtype, + _ensure_platform_int, + is_list_like, + is_interval_dtype, + is_scalar) from pandas.core.common import _asarray_tuplesafe -from pandas.types.missing import array_equivalent +from pandas.core.typed.missing import array_equivalent from pandas.util.decorators import Appender, cache_readonly diff --git a/pandas/indexes/frozen.py b/pandas/indexes/frozen.py index ab1228c008ca8..621f3a65ca675 100644 --- a/pandas/indexes/frozen.py +++ b/pandas/indexes/frozen.py @@ -10,7 +10,7 @@ import numpy as np from pandas.core.base import PandasObject -from pandas.types.cast import coerce_indexer_dtype +from pandas.core.typed.cast import coerce_indexer_dtype from pandas.formats.printing import pprint_thing diff --git a/pandas/indexes/interval.py b/pandas/indexes/interval.py index 63315ef861d12..cadb22329d3d2 100644 --- a/pandas/indexes/interval.py +++ b/pandas/indexes/interval.py @@ -2,19 +2,20 @@ import numpy as np -from pandas.types.missing import notnull, isnull -from pandas.types.generic import ABCPeriodIndex -from pandas.types.dtypes import IntervalDtype -from pandas.types.common import (_ensure_platform_int, - is_list_like, - is_datetime_or_timedelta_dtype, - is_integer_dtype, - is_object_dtype, - is_categorical_dtype, - is_float_dtype, - is_interval_dtype, - is_scalar, - is_integer) +from pandas.core.typed.missing import notnull, isnull +from pandas.core.typed.generic import ABCPeriodIndex +from pandas.core.typed.dtypes import IntervalDtype +from pandas.core.typed.common import ( + _ensure_platform_int, + is_list_like, + is_datetime_or_timedelta_dtype, + is_integer_dtype, + is_object_dtype, + is_categorical_dtype, + is_float_dtype, + is_interval_dtype, + is_scalar, + is_integer) from pandas.indexes.base import (Index, _ensure_index, default_pprint, _index_shared_docs) diff --git a/pandas/indexes/multi.py b/pandas/indexes/multi.py index d1c8e0ba1cc4e..edd31a06e3ed2 100644 --- a/pandas/indexes/multi.py +++ b/pandas/indexes/multi.py @@ -12,13 +12,14 @@ from pandas.compat.numpy import function as nv from pandas import compat -from pandas.types.common import (_ensure_int64, - _ensure_platform_int, - is_object_dtype, - is_iterator, - is_list_like, - is_scalar) -from pandas.types.missing import isnull, array_equivalent +from pandas.core.typed.common import ( + _ensure_int64, + _ensure_platform_int, + is_object_dtype, + is_iterator, + is_list_like, + is_scalar) +from pandas.core.typed.missing import isnull, array_equivalent from pandas.errors import PerformanceWarning, UnsortedIndexError from pandas.core.common import (_values_from_object, is_bool_indexer, diff --git a/pandas/indexes/numeric.py b/pandas/indexes/numeric.py index 31258c785d9e8..c3bd5bcd9cbe3 100644 --- a/pandas/indexes/numeric.py +++ b/pandas/indexes/numeric.py @@ -1,9 +1,10 @@ import numpy as np from pandas._libs import (index as libindex, algos as libalgos, join as libjoin) -from pandas.types.common import (is_dtype_equal, pandas_dtype, - is_float_dtype, is_object_dtype, - is_integer_dtype, is_scalar) +from pandas.core.typed.common import ( + is_dtype_equal, pandas_dtype, + is_float_dtype, is_object_dtype, + is_integer_dtype, is_scalar) from pandas.core.common import _asarray_tuplesafe, _values_from_object from pandas import compat diff --git a/pandas/indexes/range.py b/pandas/indexes/range.py index be68c97fb7890..d8eb570cea639 100644 --- a/pandas/indexes/range.py +++ b/pandas/indexes/range.py @@ -4,9 +4,10 @@ import numpy as np from pandas._libs import index as libindex -from pandas.types.common import (is_integer, - is_scalar, - is_int64_dtype) +from pandas.core.typed.common import ( + is_integer, + is_scalar, + is_int64_dtype) from pandas import compat from pandas.compat import lrange, range diff --git a/pandas/io/common.py b/pandas/io/common.py index 8ee6ded67f790..f020f55c450a8 100644 --- a/pandas/io/common.py +++ b/pandas/io/common.py @@ -10,7 +10,7 @@ from pandas import compat from pandas.formats.printing import pprint_thing from pandas.core.common import AbstractMethodError -from pandas.types.common import is_number, is_file_like +from pandas.core.typed.common import is_number, is_file_like # compat from pandas.errors import (ParserError, DtypeWarning, # noqa diff --git a/pandas/io/excel.py b/pandas/io/excel.py index 7f2f0cf4943b8..8bc679d017b76 100644 --- a/pandas/io/excel.py +++ b/pandas/io/excel.py @@ -10,8 +10,9 @@ import abc import numpy as np -from pandas.types.common import (is_integer, is_float, - is_bool, is_list_like) +from pandas.core.typed.common import ( + is_integer, is_float, + is_bool, is_list_like) from pandas.core.frame import DataFrame from pandas.io.parsers import TextParser diff --git a/pandas/io/html.py b/pandas/io/html.py index 7b58e612de2df..de17ca4e67b24 100644 --- a/pandas/io/html.py +++ b/pandas/io/html.py @@ -12,7 +12,7 @@ import numpy as np -from pandas.types.common import is_list_like +from pandas.core.typed.common import is_list_like from pandas.errors import EmptyDataError from pandas.io.common import (_is_url, urlopen, parse_url, _validate_header_arg) diff --git a/pandas/io/json/json.py b/pandas/io/json/json.py index 114ec4bb2723e..dfb64002cba1d 100644 --- a/pandas/io/json/json.py +++ b/pandas/io/json/json.py @@ -12,7 +12,7 @@ from pandas.formats.printing import pprint_thing from .normalize import _convert_to_line_delimits from .table_schema import build_table_schema -from pandas.types.common import is_period_dtype +from pandas.core.typed.common import is_period_dtype loads = libjson.loads dumps = libjson.dumps diff --git a/pandas/io/json/table_schema.py b/pandas/io/json/table_schema.py index 48f92d28baf61..357f2171e5ae7 100644 --- a/pandas/io/json/table_schema.py +++ b/pandas/io/json/table_schema.py @@ -3,7 +3,7 @@ http://specs.frictionlessdata.io/json-table-schema/ """ -from pandas.types.common import ( +from pandas.core.typed.common import ( is_integer_dtype, is_timedelta64_dtype, is_numeric_dtype, is_bool_dtype, is_datetime64_dtype, is_datetime64tz_dtype, is_categorical_dtype, is_period_dtype, is_string_dtype diff --git a/pandas/io/packers.py b/pandas/io/packers.py index ca5a27ee5b68e..da1f6ea846404 100644 --- a/pandas/io/packers.py +++ b/pandas/io/packers.py @@ -48,8 +48,9 @@ from pandas import compat from pandas.compat import u, u_safe -from pandas.types.common import (is_categorical_dtype, is_object_dtype, - needs_i8_conversion, pandas_dtype) +from pandas.core.typed.common import ( + is_categorical_dtype, is_object_dtype, + needs_i8_conversion, pandas_dtype) from pandas import (Timestamp, Period, Series, DataFrame, # noqa Index, MultiIndex, Float64Index, Int64Index, diff --git a/pandas/io/parsers.py b/pandas/io/parsers.py index efbf6d64404c0..347453d8ea306 100755 --- a/pandas/io/parsers.py +++ b/pandas/io/parsers.py @@ -15,13 +15,14 @@ from pandas import compat from pandas.compat import (range, lrange, StringIO, lzip, zip, string_types, map, u) -from pandas.types.common import (is_integer, _ensure_object, - is_list_like, is_integer_dtype, - is_float, is_dtype_equal, - is_object_dtype, is_string_dtype, - is_scalar, is_categorical_dtype) -from pandas.types.missing import isnull -from pandas.types.cast import astype_nansafe +from pandas.core.typed.common import ( + is_integer, _ensure_object, + is_list_like, is_integer_dtype, + is_float, is_dtype_equal, + is_object_dtype, is_string_dtype, + is_scalar, is_categorical_dtype) +from pandas.core.typed.missing import isnull +from pandas.core.typed.cast import astype_nansafe from pandas.core.index import Index, MultiIndex, RangeIndex from pandas.core.series import Series from pandas.core.frame import DataFrame diff --git a/pandas/io/parsers.pyx b/pandas/io/parsers.pyx index 4053e726d0a04..4bc6223c7680c 100644 --- a/pandas/io/parsers.pyx +++ b/pandas/io/parsers.pyx @@ -39,14 +39,15 @@ cimport util import pandas._libs.lib as lib import pandas.compat as compat -from pandas.types.common import (is_categorical_dtype, CategoricalDtype, - is_integer_dtype, is_float_dtype, - is_bool_dtype, is_object_dtype, - is_string_dtype, is_datetime64_dtype, - pandas_dtype) +from pandas.core.typed.common import ( + is_categorical_dtype, CategoricalDtype, + is_integer_dtype, is_float_dtype, + is_bool_dtype, is_object_dtype, + is_string_dtype, is_datetime64_dtype, + pandas_dtype) from pandas.core.categorical import Categorical from pandas.core.algorithms import take_1d -from pandas.types.concat import union_categoricals +from pandas.core.typed.concat import union_categoricals from pandas import Index import time diff --git a/pandas/io/pickle.py b/pandas/io/pickle.py index 969a2a51cb15d..371efad370c7e 100644 --- a/pandas/io/pickle.py +++ b/pandas/io/pickle.py @@ -3,7 +3,7 @@ import numpy as np from numpy.lib.format import read_array, write_array from pandas.compat import BytesIO, cPickle as pkl, pickle_compat as pc, PY3 -from pandas.types.common import is_datetime64_dtype, _NS_DTYPE +from pandas.core.typed.common import is_datetime64_dtype, _NS_DTYPE from pandas.io.common import _get_handle, _infer_compression diff --git a/pandas/io/pytables.py b/pandas/io/pytables.py index 802f460ecba07..c98e6b835cb15 100644 --- a/pandas/io/pytables.py +++ b/pandas/io/pytables.py @@ -12,15 +12,16 @@ import warnings import os -from pandas.types.common import (is_list_like, - is_categorical_dtype, - is_timedelta64_dtype, - is_datetime64tz_dtype, - is_datetime64_dtype, - _ensure_object, - _ensure_int64, - _ensure_platform_int) -from pandas.types.missing import array_equivalent +from pandas.core.typed.common import ( + is_list_like, + is_categorical_dtype, + is_timedelta64_dtype, + is_datetime64tz_dtype, + is_datetime64_dtype, + _ensure_object, + _ensure_int64, + _ensure_platform_int) +from pandas.core.typed.missing import array_equivalent import numpy as np from pandas import (Series, DataFrame, Panel, Panel4D, Index, diff --git a/pandas/io/sql.py b/pandas/io/sql.py index b210baedaaf6d..201566ff0f2de 100644 --- a/pandas/io/sql.py +++ b/pandas/io/sql.py @@ -12,10 +12,11 @@ import numpy as np import pandas._libs.lib as lib -from pandas.types.missing import isnull -from pandas.types.dtypes import DatetimeTZDtype -from pandas.types.common import (is_list_like, is_dict_like, - is_datetime64tz_dtype) +from pandas.core.typed.missing import isnull +from pandas.core.typed.dtypes import DatetimeTZDtype +from pandas.core.typed.common import ( + is_list_like, is_dict_like, + is_datetime64tz_dtype) from pandas.compat import (map, zip, raise_with_traceback, string_types, text_type) diff --git a/pandas/io/stata.py b/pandas/io/stata.py index 1d2951da68086..914d8d1d8982d 100644 --- a/pandas/io/stata.py +++ b/pandas/io/stata.py @@ -15,8 +15,9 @@ import struct from dateutil.relativedelta import relativedelta -from pandas.types.common import (is_categorical_dtype, is_datetime64_dtype, - _ensure_object) +from pandas.core.typed.common import ( + is_categorical_dtype, is_datetime64_dtype, + _ensure_object) from pandas.core.base import StringMixin from pandas.core.categorical import Categorical diff --git a/pandas/sparse/array.py b/pandas/sparse/array.py index f149e724c19c3..49adc1d875d7e 100644 --- a/pandas/sparse/array.py +++ b/pandas/sparse/array.py @@ -14,17 +14,20 @@ from pandas.compat import range from pandas.compat.numpy import function as nv -from pandas.types.generic import ABCSparseArray, ABCSparseSeries -from pandas.types.common import (_ensure_platform_int, - is_float, is_integer, - is_integer_dtype, - is_bool_dtype, - is_list_like, - is_string_dtype, - is_scalar, is_dtype_equal) -from pandas.types.cast import (maybe_convert_platform, maybe_promote, - astype_nansafe, find_common_type) -from pandas.types.missing import isnull, notnull, na_value_for_dtype +from pandas.core.typed.generic import ( + ABCSparseArray, ABCSparseSeries) +from pandas.core.typed.common import ( + _ensure_platform_int, + is_float, is_integer, + is_integer_dtype, + is_bool_dtype, + is_list_like, + is_string_dtype, + is_scalar, is_dtype_equal) +from pandas.core.typed.cast import ( + maybe_convert_platform, maybe_promote, + astype_nansafe, find_common_type) +from pandas.core.typed.missing import isnull, notnull, na_value_for_dtype from pandas.sparse import libsparse as splib from pandas.sparse.libsparse import SparseIndex, BlockIndex, IntIndex diff --git a/pandas/sparse/frame.py b/pandas/sparse/frame.py index 455d120cca640..06c5860df4a72 100644 --- a/pandas/sparse/frame.py +++ b/pandas/sparse/frame.py @@ -10,9 +10,9 @@ from pandas import compat import numpy as np -from pandas.types.missing import isnull, notnull -from pandas.types.cast import maybe_upcast, find_common_type -from pandas.types.common import _ensure_platform_int, is_scipy_sparse +from pandas.core.typed.missing import isnull, notnull +from pandas.core.typed.cast import maybe_upcast, find_common_type +from pandas.core.typed.common import _ensure_platform_int, is_scipy_sparse from pandas.core.common import _try_sort from pandas.compat.numpy import function as nv diff --git a/pandas/sparse/list.py b/pandas/sparse/list.py index 54ebf5e51045d..d3bc07487a6ca 100644 --- a/pandas/sparse/list.py +++ b/pandas/sparse/list.py @@ -3,7 +3,7 @@ from pandas.core.base import PandasObject from pandas.formats.printing import pprint_thing -from pandas.types.common import is_scalar +from pandas.core.typed.common import is_scalar from pandas.sparse.array import SparseArray from pandas.util.validators import validate_bool_kwarg import pandas.sparse.libsparse as splib diff --git a/pandas/sparse/series.py b/pandas/sparse/series.py index 7ec42f02c3998..26d34aff589c8 100644 --- a/pandas/sparse/series.py +++ b/pandas/sparse/series.py @@ -8,8 +8,8 @@ import numpy as np import warnings -from pandas.types.missing import isnull, notnull -from pandas.types.common import is_scalar +from pandas.core.typed.missing import isnull, notnull +from pandas.core.typed.common import is_scalar from pandas.core.common import _values_from_object, _maybe_match_name from pandas.compat.numpy import function as nv diff --git a/pandas/stats/moments.py b/pandas/stats/moments.py index 914c4c08863a2..0ee84cfd86d20 100644 --- a/pandas/stats/moments.py +++ b/pandas/stats/moments.py @@ -6,7 +6,7 @@ import warnings import numpy as np -from pandas.types.common import is_scalar +from pandas.core.typed.common import is_scalar from pandas.core.api import DataFrame, Series from pandas.util.decorators import Substitution, Appender diff --git a/pandas/tests/api/test_api.py b/pandas/tests/api/test_api.py index 02734189ca340..4bf2e77fc01d6 100644 --- a/pandas/tests/api/test_api.py +++ b/pandas/tests/api/test_api.py @@ -33,12 +33,15 @@ class TestPDApi(Base, tm.TestCase): lib = ['api', 'compat', 'computation', 'core', 'indexes', 'formats', 'errors', 'pandas', 'plotting', 'test', 'tools', 'tseries', 'sparse', - 'types', 'util', 'options', 'io'] + 'util', 'options', 'io'] # these are already deprecated; awaiting removal deprecated_modules = ['stats', 'datetools', 'parser', 'json', 'lib', 'tslib'] + # to be deprecated + to_be_deprecated_moduels = ['types'] + # misc misc = ['IndexSlice', 'NaT'] diff --git a/pandas/tests/api/test_types.py b/pandas/tests/api/test_types.py index 1d05eda88e265..12d08ff0fd4fa 100644 --- a/pandas/tests/api/test_types.py +++ b/pandas/tests/api/test_types.py @@ -61,7 +61,7 @@ def test_deprecation_core_common_array_equivalent(self): def test_deprecation_core_common_moved(self): - # these are in pandas.types.common + # these are in pandas.core.typed.common l = ['is_datetime_arraylike', 'is_datetime_or_timedelta_dtype', 'is_datetimelike', @@ -73,7 +73,7 @@ def test_deprecation_core_common_moved(self): 'is_string_like', 'is_string_like_dtype'] - from pandas.types import common as c + from pandas.core.typed import common as c for t in l: self.check_deprecation(getattr(com, t), getattr(c, t)) diff --git a/pandas/tests/computation/test_eval.py b/pandas/tests/computation/test_eval.py index 78aad90cacf94..2e48788402012 100644 --- a/pandas/tests/computation/test_eval.py +++ b/pandas/tests/computation/test_eval.py @@ -8,7 +8,7 @@ from numpy.random import randn, rand, randint import numpy as np -from pandas.types.common import is_list_like, is_scalar +from pandas.core.typed.common import is_list_like, is_scalar import pandas as pd from pandas.core import common as com from pandas.errors import PerformanceWarning diff --git a/pandas/types/__init__.py b/pandas/tests/core/__init__.py similarity index 100% rename from pandas/types/__init__.py rename to pandas/tests/core/__init__.py diff --git a/pandas/tests/core/typed/__init__.py b/pandas/tests/core/typed/__init__.py new file mode 100644 index 0000000000000..e69de29bb2d1d diff --git a/pandas/tests/types/test_cast.py b/pandas/tests/core/typed/test_cast.py similarity index 95% rename from pandas/tests/types/test_cast.py rename to pandas/tests/core/typed/test_cast.py index de6ef7af9d7f9..c41d99ebbb1b0 100644 --- a/pandas/tests/types/test_cast.py +++ b/pandas/tests/core/typed/test_cast.py @@ -10,15 +10,18 @@ import numpy as np from pandas import Timedelta, Timestamp, DatetimeIndex -from pandas.types.cast import (maybe_downcast_to_dtype, - maybe_convert_objects, - infer_dtype_from_scalar, - infer_dtype_from_array, - maybe_convert_string_to_object, - maybe_convert_scalar, - find_common_type) -from pandas.types.dtypes import (CategoricalDtype, - DatetimeTZDtype, PeriodDtype) +from pandas.core.typed.cast import ( + maybe_downcast_to_dtype, + maybe_convert_objects, + infer_dtype_from_scalar, + infer_dtype_from_array, + maybe_convert_string_to_object, + maybe_convert_scalar, + find_common_type) +from pandas.core.typed.dtypes import ( + CategoricalDtype, + DatetimeTZDtype, + PeriodDtype) from pandas.util import testing as tm diff --git a/pandas/tests/types/test_common.py b/pandas/tests/core/typed/test_common.py similarity index 92% rename from pandas/tests/types/test_common.py rename to pandas/tests/core/typed/test_common.py index 21772bab44d01..ed49643838cb1 100644 --- a/pandas/tests/types/test_common.py +++ b/pandas/tests/core/typed/test_common.py @@ -3,8 +3,10 @@ import pytest import numpy as np -from pandas.types.dtypes import DatetimeTZDtype, PeriodDtype, CategoricalDtype -from pandas.types.common import pandas_dtype, is_dtype_equal +from pandas.core.typed.dtypes import ( + DatetimeTZDtype, PeriodDtype, CategoricalDtype) +from pandas.core.typed.common import ( + pandas_dtype, is_dtype_equal) import pandas.util.testing as tm @@ -87,11 +89,11 @@ def test_dtype_equal_strict(): def get_is_dtype_funcs(): """ - Get all functions in pandas.types.common that + Get all functions in pandas.core.typed.common that begin with 'is_' and end with 'dtype' """ - import pandas.types.common as com + import pandas.core.typed.common as com fnames = [f for f in dir(com) if (f.startswith('is_') and f.endswith('dtype'))] diff --git a/pandas/tests/types/test_concat.py b/pandas/tests/core/typed/test_concat.py similarity index 98% rename from pandas/tests/types/test_concat.py rename to pandas/tests/core/typed/test_concat.py index f4faab45f4ba2..9f682bbb1151d 100644 --- a/pandas/tests/types/test_concat.py +++ b/pandas/tests/core/typed/test_concat.py @@ -1,7 +1,7 @@ # -*- coding: utf-8 -*- import pandas as pd -import pandas.types.concat as _concat +import pandas.core.typed.concat as _concat import pandas.util.testing as tm diff --git a/pandas/tests/types/test_dtypes.py b/pandas/tests/core/typed/test_dtypes.py similarity index 96% rename from pandas/tests/types/test_dtypes.py rename to pandas/tests/core/typed/test_dtypes.py index 79d9fd84396e7..bde54f27c5934 100644 --- a/pandas/tests/types/test_dtypes.py +++ b/pandas/tests/core/typed/test_dtypes.py @@ -5,15 +5,17 @@ import pandas as pd from pandas import Series, Categorical, IntervalIndex, date_range -from pandas.types.dtypes import (DatetimeTZDtype, PeriodDtype, - IntervalDtype, CategoricalDtype) -from pandas.types.common import (is_categorical_dtype, is_categorical, - is_datetime64tz_dtype, is_datetimetz, - is_period_dtype, is_period, - is_dtype_equal, is_datetime64_ns_dtype, - is_datetime64_dtype, is_interval_dtype, - is_datetime64_any_dtype, is_string_dtype, - _coerce_to_dtype) +from pandas.core.typed.dtypes import ( + DatetimeTZDtype, PeriodDtype, + IntervalDtype, CategoricalDtype) +from pandas.core.typed.common import ( + is_categorical_dtype, is_categorical, + is_datetime64tz_dtype, is_datetimetz, + is_period_dtype, is_period, + is_dtype_equal, is_datetime64_ns_dtype, + is_datetime64_dtype, is_interval_dtype, + is_datetime64_any_dtype, is_string_dtype, + _coerce_to_dtype) import pandas.util.testing as tm diff --git a/pandas/tests/types/test_generic.py b/pandas/tests/core/typed/test_generic.py similarity index 98% rename from pandas/tests/types/test_generic.py rename to pandas/tests/core/typed/test_generic.py index 7994aa77bb220..a5fcca0544c68 100644 --- a/pandas/tests/types/test_generic.py +++ b/pandas/tests/core/typed/test_generic.py @@ -4,7 +4,7 @@ import numpy as np import pandas as pd import pandas.util.testing as tm -from pandas.types import generic as gt +from pandas.core.typed import generic as gt class TestABCClasses(tm.TestCase): diff --git a/pandas/tests/types/test_inference.py b/pandas/tests/core/typed/test_inference.py similarity index 97% rename from pandas/tests/types/test_inference.py rename to pandas/tests/core/typed/test_inference.py index ec61903d3f20c..cb1b63fea3ccd 100644 --- a/pandas/tests/types/test_inference.py +++ b/pandas/tests/core/typed/test_inference.py @@ -18,22 +18,23 @@ DatetimeIndex, TimedeltaIndex, Timestamp, Panel, Period, Categorical) from pandas.compat import u, PY2, PY3, StringIO, lrange -from pandas.types import inference -from pandas.types.common import (is_timedelta64_dtype, - is_timedelta64_ns_dtype, - is_datetime64_dtype, - is_datetime64_ns_dtype, - is_datetime64_any_dtype, - is_datetime64tz_dtype, - is_number, - is_integer, - is_float, - is_bool, - is_scalar, - is_scipy_sparse, - _ensure_int32, - _ensure_categorical) -from pandas.types.missing import isnull +from pandas.core.typed import inference +from pandas.core.typed.common import ( + is_timedelta64_dtype, + is_timedelta64_ns_dtype, + is_datetime64_dtype, + is_datetime64_ns_dtype, + is_datetime64_any_dtype, + is_datetime64tz_dtype, + is_number, + is_integer, + is_float, + is_bool, + is_scalar, + is_scipy_sparse, + _ensure_int32, + _ensure_categorical) +from pandas.core.typed.missing import isnull from pandas.util import testing as tm from pandas.tests.sparse.test_frame import spmatrix # noqa: F401 diff --git a/pandas/tests/types/test_io.py b/pandas/tests/core/typed/test_io.py similarity index 100% rename from pandas/tests/types/test_io.py rename to pandas/tests/core/typed/test_io.py diff --git a/pandas/tests/types/test_missing.py b/pandas/tests/core/typed/test_missing.py similarity index 98% rename from pandas/tests/types/test_missing.py rename to pandas/tests/core/typed/test_missing.py index 31bf2817c8bab..236b6b49a5b9e 100644 --- a/pandas/tests/types/test_missing.py +++ b/pandas/tests/core/typed/test_missing.py @@ -11,9 +11,10 @@ from pandas._libs.tslib import iNaT from pandas import (NaT, Float64Index, Series, DatetimeIndex, TimedeltaIndex, date_range) -from pandas.types.dtypes import DatetimeTZDtype -from pandas.types.missing import (array_equivalent, isnull, notnull, - na_value_for_dtype) +from pandas.core.typed.dtypes import DatetimeTZDtype +from pandas.core.typed.missing import ( + array_equivalent, isnull, notnull, + na_value_for_dtype) def test_notnull(): diff --git a/pandas/tests/frame/test_alter_axes.py b/pandas/tests/frame/test_alter_axes.py index f05b6fdd6bc23..ec306a5d0a564 100644 --- a/pandas/tests/frame/test_alter_axes.py +++ b/pandas/tests/frame/test_alter_axes.py @@ -9,9 +9,10 @@ from pandas.compat import lrange from pandas import (DataFrame, Series, Index, MultiIndex, RangeIndex, date_range, IntervalIndex) -from pandas.types.common import (is_object_dtype, - is_categorical_dtype, - is_interval_dtype) +from pandas.core.typed.common import ( + is_object_dtype, + is_categorical_dtype, + is_interval_dtype) import pandas as pd from pandas.util.testing import (assert_series_equal, diff --git a/pandas/tests/frame/test_apply.py b/pandas/tests/frame/test_apply.py index 157cd1cdf1b22..6dc6a4d4cc8f8 100644 --- a/pandas/tests/frame/test_apply.py +++ b/pandas/tests/frame/test_apply.py @@ -10,7 +10,7 @@ from pandas import (notnull, DataFrame, Series, MultiIndex, date_range, Timestamp, compat) import pandas as pd -from pandas.types.dtypes import CategoricalDtype +from pandas.core.typed.dtypes import CategoricalDtype from pandas.util.testing import (assert_series_equal, assert_frame_equal) import pandas.util.testing as tm diff --git a/pandas/tests/frame/test_constructors.py b/pandas/tests/frame/test_constructors.py index 6d28d3b4dfcd5..144ca7324012b 100644 --- a/pandas/tests/frame/test_constructors.py +++ b/pandas/tests/frame/test_constructors.py @@ -13,7 +13,7 @@ import numpy.ma as ma import numpy.ma.mrecords as mrecords -from pandas.types.common import is_integer_dtype +from pandas.core.typed.common import is_integer_dtype from pandas.compat import (lmap, long, zip, range, lrange, lzip, OrderedDict, is_platform_little_endian) from pandas import compat diff --git a/pandas/tests/frame/test_dtypes.py b/pandas/tests/frame/test_dtypes.py index f7d2c1a654cd5..48518e23753c1 100644 --- a/pandas/tests/frame/test_dtypes.py +++ b/pandas/tests/frame/test_dtypes.py @@ -7,7 +7,7 @@ from pandas import (DataFrame, Series, date_range, Timedelta, Timestamp, compat, concat, option_context) from pandas.compat import u -from pandas.types.dtypes import DatetimeTZDtype +from pandas.core.typed.dtypes import DatetimeTZDtype from pandas.tests.frame.common import TestData from pandas.util.testing import (assert_series_equal, assert_frame_equal, diff --git a/pandas/tests/frame/test_indexing.py b/pandas/tests/frame/test_indexing.py index f0dfc4553886b..6500ee15d917c 100644 --- a/pandas/tests/frame/test_indexing.py +++ b/pandas/tests/frame/test_indexing.py @@ -20,9 +20,10 @@ from pandas._libs.tslib import iNaT from pandas.tseries.offsets import BDay -from pandas.types.common import (is_float_dtype, - is_integer, - is_scalar) +from pandas.core.typed.common import ( + is_float_dtype, + is_integer, + is_scalar) from pandas.util.testing import (assert_almost_equal, assert_numpy_array_equal, assert_series_equal, diff --git a/pandas/tests/groupby/test_bin_groupby.py b/pandas/tests/groupby/test_bin_groupby.py index 02c7933e020ea..e745de973aeff 100644 --- a/pandas/tests/groupby/test_bin_groupby.py +++ b/pandas/tests/groupby/test_bin_groupby.py @@ -3,7 +3,7 @@ from numpy import nan import numpy as np -from pandas.types.common import _ensure_int64 +from pandas.core.typed.common import _ensure_int64 from pandas import Index, isnull from pandas.util.testing import assert_almost_equal import pandas.util.testing as tm diff --git a/pandas/tests/groupby/test_transform.py b/pandas/tests/groupby/test_transform.py index 3b85fadda6cfe..ad52be4242332 100644 --- a/pandas/tests/groupby/test_transform.py +++ b/pandas/tests/groupby/test_transform.py @@ -4,7 +4,7 @@ import pandas as pd from pandas.util import testing as tm from pandas import Series, DataFrame, Timestamp, MultiIndex, concat, date_range -from pandas.types.common import _ensure_platform_int, is_timedelta64_dtype +from pandas.core.typed.common import _ensure_platform_int, is_timedelta64_dtype from pandas.compat import StringIO from pandas._libs import groupby from .common import MixIn, assert_fp_equal diff --git a/pandas/tests/indexes/common.py b/pandas/tests/indexes/common.py index 54d47d02c5e8e..e7f83b74cf601 100644 --- a/pandas/tests/indexes/common.py +++ b/pandas/tests/indexes/common.py @@ -9,7 +9,7 @@ RangeIndex, MultiIndex, CategoricalIndex, DatetimeIndex, TimedeltaIndex, PeriodIndex, IntervalIndex, notnull, isnull) -from pandas.types.common import needs_i8_conversion +from pandas.core.typed.common import needs_i8_conversion from pandas.util.testing import assertRaisesRegexp from pandas._libs.tslib import iNaT diff --git a/pandas/tests/indexes/datetimes/test_tools.py b/pandas/tests/indexes/datetimes/test_tools.py index 1260ee4e5ab07..a008dc3d5c848 100644 --- a/pandas/tests/indexes/datetimes/test_tools.py +++ b/pandas/tests/indexes/datetimes/test_tools.py @@ -14,7 +14,7 @@ from pandas.tseries.tools import normalize_date from pandas.compat import lmap from pandas.compat.numpy import np_array_datetime64_compat -from pandas.types.common import is_datetime64_ns_dtype +from pandas.core.typed.common import is_datetime64_ns_dtype from pandas.util import testing as tm from pandas.util.testing import assert_series_equal, _skip_if_has_locale from pandas import (isnull, to_datetime, Timestamp, Series, DataFrame, diff --git a/pandas/tests/indexing/common.py b/pandas/tests/indexing/common.py index 0f8a9573a233b..d176510711847 100644 --- a/pandas/tests/indexing/common.py +++ b/pandas/tests/indexing/common.py @@ -5,7 +5,7 @@ import numpy as np from pandas.compat import lrange -from pandas.types.common import is_scalar +from pandas.core.typed.common import is_scalar from pandas import Series, DataFrame, Panel, date_range, UInt64Index from pandas.util import testing as tm from pandas.formats.printing import pprint_thing diff --git a/pandas/tests/indexing/test_indexing.py b/pandas/tests/indexing/test_indexing.py index 0d6ca383a1be1..796e8afa412ed 100644 --- a/pandas/tests/indexing/test_indexing.py +++ b/pandas/tests/indexing/test_indexing.py @@ -6,8 +6,9 @@ from warnings import catch_warnings from datetime import datetime -from pandas.types.common import (is_integer_dtype, - is_float_dtype) +from pandas.core.typed.common import ( + is_integer_dtype, + is_float_dtype) from pandas.compat import range, lrange, lzip, StringIO import numpy as np diff --git a/pandas/tests/indexing/test_ix.py b/pandas/tests/indexing/test_ix.py index b12d1eb97f88b..6e34286dd25fd 100644 --- a/pandas/tests/indexing/test_ix.py +++ b/pandas/tests/indexing/test_ix.py @@ -5,7 +5,7 @@ import numpy as np import pandas as pd -from pandas.types.common import is_scalar +from pandas.core.typed.common import is_scalar from pandas.compat import lrange from pandas import Series, DataFrame, option_context, MultiIndex from pandas.util import testing as tm diff --git a/pandas/tests/io/json/test_json_table_schema.py b/pandas/tests/io/json/test_json_table_schema.py index d1795f2816817..7a0fb509ec01d 100644 --- a/pandas/tests/io/json/test_json_table_schema.py +++ b/pandas/tests/io/json/test_json_table_schema.py @@ -7,11 +7,14 @@ import pytest from pandas import DataFrame -from pandas.types.dtypes import PeriodDtype, CategoricalDtype, DatetimeTZDtype +from pandas.core.typed.dtypes import ( + PeriodDtype, CategoricalDtype, DatetimeTZDtype) import pandas.util.testing as tm from pandas.io.json.table_schema import ( - as_json_table_type, build_table_schema, make_field, set_default_names -) + as_json_table_type, + build_table_schema, + make_field, + set_default_names) class TestBuildSchema(tm.TestCase): diff --git a/pandas/tests/io/parser/dtypes.py b/pandas/tests/io/parser/dtypes.py index 8066718363803..3d466ae657706 100644 --- a/pandas/tests/io/parser/dtypes.py +++ b/pandas/tests/io/parser/dtypes.py @@ -11,7 +11,7 @@ from pandas import DataFrame, Series, Index, MultiIndex, Categorical from pandas.compat import StringIO -from pandas.types.dtypes import CategoricalDtype +from pandas.core.typed.dtypes import CategoricalDtype from pandas.errors import ParserWarning diff --git a/pandas/tests/io/test_sql.py b/pandas/tests/io/test_sql.py index b4e8d6a3b972c..2fde7db591f62 100644 --- a/pandas/tests/io/test_sql.py +++ b/pandas/tests/io/test_sql.py @@ -31,8 +31,9 @@ from datetime import datetime, date, time -from pandas.types.common import (is_object_dtype, is_datetime64_dtype, - is_datetime64tz_dtype) +from pandas.core.typed.common import ( + is_object_dtype, is_datetime64_dtype, + is_datetime64tz_dtype) from pandas import DataFrame, Series, Index, MultiIndex, isnull, concat from pandas import date_range, to_datetime, to_timedelta, Timestamp import pandas.compat as compat diff --git a/pandas/tests/io/test_stata.py b/pandas/tests/io/test_stata.py index db594889c91ee..c754e05aa4381 100644 --- a/pandas/tests/io/test_stata.py +++ b/pandas/tests/io/test_stata.py @@ -20,7 +20,7 @@ from pandas.io.stata import (read_stata, StataReader, InvalidColumnName, PossiblePrecisionLoss, StataMissingValue) from pandas._libs.tslib import NaT -from pandas.types.common import is_categorical_dtype +from pandas.core.typed.common import is_categorical_dtype class TestStata(tm.TestCase): diff --git a/pandas/tests/plotting/common.py b/pandas/tests/plotting/common.py index d81f73e73ae69..94b27915fb0eb 100644 --- a/pandas/tests/plotting/common.py +++ b/pandas/tests/plotting/common.py @@ -8,7 +8,7 @@ from pandas import DataFrame, Series from pandas.compat import zip, iteritems from pandas.util.decorators import cache_readonly -from pandas.types.api import is_list_like +from pandas.core.typed.api import is_list_like import pandas.util.testing as tm from pandas.util.testing import (ensure_clean, assert_is_valid_plot_return_object) diff --git a/pandas/tests/plotting/test_frame.py b/pandas/tests/plotting/test_frame.py index 404752b567f63..f683998bcf9ef 100644 --- a/pandas/tests/plotting/test_frame.py +++ b/pandas/tests/plotting/test_frame.py @@ -11,7 +11,7 @@ import pandas as pd from pandas import (Series, DataFrame, MultiIndex, PeriodIndex, date_range, bdate_range) -from pandas.types.api import is_list_like +from pandas.core.typed.api import is_list_like from pandas.compat import range, lrange, lmap, lzip, u, zip, PY3 from pandas.formats.printing import pprint_thing import pandas.util.testing as tm diff --git a/pandas/tests/series/test_constructors.py b/pandas/tests/series/test_constructors.py index f4297208b2e26..c51fe68b6e547 100644 --- a/pandas/tests/series/test_constructors.py +++ b/pandas/tests/series/test_constructors.py @@ -8,7 +8,9 @@ import numpy.ma as ma import pandas as pd -from pandas.types.common import is_categorical_dtype, is_datetime64tz_dtype +from pandas.core.typed.common import ( + is_categorical_dtype, + is_datetime64tz_dtype) from pandas import (Index, Series, isnull, date_range, NaT, period_range, MultiIndex, IntervalIndex) from pandas.tseries.index import Timestamp, DatetimeIndex diff --git a/pandas/tests/series/test_datetime_values.py b/pandas/tests/series/test_datetime_values.py index 89f972a33a630..1c1782ccfbf51 100644 --- a/pandas/tests/series/test_datetime_values.py +++ b/pandas/tests/series/test_datetime_values.py @@ -6,7 +6,7 @@ import numpy as np import pandas as pd -from pandas.types.common import is_integer_dtype, is_list_like +from pandas.core.typed.common import is_integer_dtype, is_list_like from pandas import (Index, Series, DataFrame, bdate_range, date_range, period_range, timedelta_range, PeriodIndex, Timestamp, DatetimeIndex, TimedeltaIndex) diff --git a/pandas/tests/series/test_indexing.py b/pandas/tests/series/test_indexing.py index 48410c1c73479..c560539b3947a 100644 --- a/pandas/tests/series/test_indexing.py +++ b/pandas/tests/series/test_indexing.py @@ -8,7 +8,7 @@ import pandas as pd import pandas._libs.index as _index -from pandas.types.common import is_integer, is_scalar +from pandas.core.typed.common import is_integer, is_scalar from pandas import (Index, Series, DataFrame, isnull, date_range, NaT, MultiIndex, Timestamp, DatetimeIndex, Timedelta) diff --git a/pandas/tests/series/test_quantile.py b/pandas/tests/series/test_quantile.py index 5aca34fb86576..fe759bf577401 100644 --- a/pandas/tests/series/test_quantile.py +++ b/pandas/tests/series/test_quantile.py @@ -7,7 +7,7 @@ from pandas import (Index, Series, _np_version_under1p9) from pandas.tseries.index import Timestamp -from pandas.types.common import is_integer +from pandas.core.typed.common import is_integer import pandas.util.testing as tm from .common import TestData diff --git a/pandas/tests/sparse/test_frame.py b/pandas/tests/sparse/test_frame.py index 075d5efcefbe0..0f0b2e27aaf3d 100644 --- a/pandas/tests/sparse/test_frame.py +++ b/pandas/tests/sparse/test_frame.py @@ -9,10 +9,11 @@ import pandas as pd from pandas import Series, DataFrame, bdate_range, Panel -from pandas.types.common import (is_bool_dtype, - is_float_dtype, - is_object_dtype, - is_float) +from pandas.core.typed.common import ( + is_bool_dtype, + is_float_dtype, + is_object_dtype, + is_float) from pandas.tseries.index import DatetimeIndex from pandas.tseries.offsets import BDay import pandas.util.testing as tm diff --git a/pandas/tests/test_base.py b/pandas/tests/test_base.py index 4a1cf6314aaed..12b05ec1d85a7 100644 --- a/pandas/tests/test_base.py +++ b/pandas/tests/test_base.py @@ -9,8 +9,9 @@ import pandas as pd import pandas.compat as compat -from pandas.types.common import (is_object_dtype, is_datetimetz, - needs_i8_conversion) +from pandas.core.typed.common import ( + is_object_dtype, is_datetimetz, + needs_i8_conversion) import pandas.util.testing as tm from pandas import (Series, Index, DatetimeIndex, TimedeltaIndex, PeriodIndex, Timedelta, IntervalIndex, Interval) diff --git a/pandas/tests/test_categorical.py b/pandas/tests/test_categorical.py index dd370f0a20c2e..9593530fa9d50 100644 --- a/pandas/tests/test_categorical.py +++ b/pandas/tests/test_categorical.py @@ -9,10 +9,11 @@ import numpy as np -from pandas.types.dtypes import CategoricalDtype -from pandas.types.common import (is_categorical_dtype, - is_float_dtype, - is_integer_dtype) +from pandas.core.typed.dtypes import CategoricalDtype +from pandas.core.typed.common import ( + is_categorical_dtype, + is_float_dtype, + is_integer_dtype) import pandas as pd import pandas.compat as compat diff --git a/pandas/tests/test_generic.py b/pandas/tests/test_generic.py index 118039d1f354c..47c9b5379698c 100644 --- a/pandas/tests/test_generic.py +++ b/pandas/tests/test_generic.py @@ -11,7 +11,7 @@ import pandas as pd from distutils.version import LooseVersion -from pandas.types.common import is_scalar +from pandas.core.typed.common import is_scalar from pandas import (Index, Series, DataFrame, Panel, isnull, date_range, period_range, Panel4D) from pandas.core.index import MultiIndex diff --git a/pandas/tests/test_multilevel.py b/pandas/tests/test_multilevel.py index e3193cddbaaab..7f91a7fc269e4 100755 --- a/pandas/tests/test_multilevel.py +++ b/pandas/tests/test_multilevel.py @@ -12,7 +12,7 @@ from pandas import Panel, DataFrame, Series, notnull, isnull, Timestamp from pandas.core.common import UnsortedIndexError -from pandas.types.common import is_float_dtype, is_integer_dtype +from pandas.core.typed.common import is_float_dtype, is_integer_dtype import pandas.core.common as com import pandas.util.testing as tm from pandas.compat import (range, lrange, StringIO, lzip, u, product as diff --git a/pandas/tests/test_nanops.py b/pandas/tests/test_nanops.py index 54de8c1e34031..b6ef287d7d6f9 100644 --- a/pandas/tests/test_nanops.py +++ b/pandas/tests/test_nanops.py @@ -6,7 +6,7 @@ import warnings import numpy as np from pandas import Series, isnull, _np_version_under1p9 -from pandas.types.common import is_integer_dtype +from pandas.core.typed.common import is_integer_dtype import pandas.core.nanops as nanops import pandas.util.testing as tm diff --git a/pandas/tests/test_panel.py b/pandas/tests/test_panel.py index bc7bb8a4dfec1..ab9038f9237a0 100644 --- a/pandas/tests/test_panel.py +++ b/pandas/tests/test_panel.py @@ -9,7 +9,7 @@ import numpy as np import pandas as pd -from pandas.types.common import is_float_dtype +from pandas.core.typed.common import is_float_dtype from pandas import (Series, DataFrame, Index, date_range, isnull, notnull, pivot, MultiIndex) from pandas.core.nanops import nanall, nanany diff --git a/pandas/tests/test_panel4d.py b/pandas/tests/test_panel4d.py index c0511581cd299..e605c3cd3863f 100644 --- a/pandas/tests/test_panel4d.py +++ b/pandas/tests/test_panel4d.py @@ -6,7 +6,7 @@ from warnings import catch_warnings import numpy as np -from pandas.types.common import is_float_dtype +from pandas.core.typed.common import is_float_dtype from pandas import Series, Index, isnull, notnull from pandas.core.panel import Panel from pandas.core.panel4d import Panel4D diff --git a/pandas/tests/tools/test_merge.py b/pandas/tests/tools/test_merge.py index 8011bc4a1cfc2..7a2331d9c949a 100644 --- a/pandas/tests/tools/test_merge.py +++ b/pandas/tests/tools/test_merge.py @@ -12,8 +12,8 @@ from pandas.tools.concat import concat from pandas.tools.merge import merge, MergeError from pandas.util.testing import assert_frame_equal, assert_series_equal -from pandas.types.dtypes import CategoricalDtype -from pandas.types.common import is_categorical_dtype, is_object_dtype +from pandas.core.typed.dtypes import CategoricalDtype +from pandas.core.typed.common import is_categorical_dtype, is_object_dtype from pandas import DataFrame, Index, MultiIndex, Series, Categorical import pandas.util.testing as tm diff --git a/pandas/tests/tools/test_union_categoricals.py b/pandas/tests/tools/test_union_categoricals.py index 299b60f2a00b0..cac3faee3af1f 100644 --- a/pandas/tests/tools/test_union_categoricals.py +++ b/pandas/tests/tools/test_union_categoricals.py @@ -1,7 +1,7 @@ import numpy as np import pandas as pd from pandas import Categorical, Series, CategoricalIndex -from pandas.types.concat import union_categoricals +from pandas.core.typed.concat import union_categoricals from pandas.util import testing as tm diff --git a/pandas/tests/tseries/test_resample.py b/pandas/tests/tseries/test_resample.py index 98664c1ec118c..b60ede517d748 100755 --- a/pandas/tests/tseries/test_resample.py +++ b/pandas/tests/tseries/test_resample.py @@ -12,7 +12,7 @@ from pandas import (Series, DataFrame, Panel, Index, isnull, notnull, Timestamp) -from pandas.types.generic import ABCSeries, ABCDataFrame +from pandas.core.typed.generic import ABCSeries, ABCDataFrame from pandas.compat import range, lrange, zip, product, OrderedDict from pandas.core.base import SpecificationError from pandas.errors import UnsupportedFunctionCall diff --git a/pandas/tests/tseries/test_timezones.py b/pandas/tests/tseries/test_timezones.py index 3e1b29f4c282c..8c6b9ea2db78b 100644 --- a/pandas/tests/tseries/test_timezones.py +++ b/pandas/tests/tseries/test_timezones.py @@ -11,7 +11,7 @@ import pandas.tseries.offsets as offsets from pandas.compat import lrange, zip from pandas.tseries.index import bdate_range, date_range -from pandas.types.dtypes import DatetimeTZDtype +from pandas.core.typed.dtypes import DatetimeTZDtype from pandas._libs import tslib from pandas import (Index, Series, DataFrame, isnull, Timestamp, NaT, DatetimeIndex, to_datetime) diff --git a/pandas/tools/concat.py b/pandas/tools/concat.py index 5df9a5abb78b2..00a1b91800bc5 100644 --- a/pandas/tools/concat.py +++ b/pandas/tools/concat.py @@ -12,7 +12,7 @@ from pandas.core.internals import concatenate_block_managers from pandas.core import common as com from pandas.core.generic import NDFrame -import pandas.types.concat as _concat +import pandas.core.typed.concat as _concat # --------------------------------------------------------------------- # Concatenate DataFrame objects diff --git a/pandas/tools/hashing.py b/pandas/tools/hashing.py index 85ceb439435ee..a1f83b33ee88f 100644 --- a/pandas/tools/hashing.py +++ b/pandas/tools/hashing.py @@ -7,10 +7,13 @@ from pandas import Series, factorize, Categorical, Index, MultiIndex from pandas.tools import libhashing as _hash from pandas._libs.lib import is_bool_array -from pandas.types.generic import ABCIndexClass, ABCSeries, ABCDataFrame -from pandas.types.common import (is_categorical_dtype, is_numeric_dtype, - is_datetime64_dtype, is_timedelta64_dtype, - is_list_like) +from pandas.core.typed.generic import (ABCIndexClass, + ABCSeries, + ABCDataFrame) +from pandas.core.typed.common import ( + is_categorical_dtype, is_numeric_dtype, + is_datetime64_dtype, is_timedelta64_dtype, + is_list_like) # 16 byte long hashing key _default_hash_key = '0123456789123456' diff --git a/pandas/tools/merge.py b/pandas/tools/merge.py index 7de2549cadfc7..7fb90f1d286f3 100644 --- a/pandas/tools/merge.py +++ b/pandas/tools/merge.py @@ -14,24 +14,25 @@ from pandas import (Categorical, Series, DataFrame, Index, MultiIndex, Timedelta) from pandas.core.frame import _merge_doc -from pandas.types.common import (is_datetime64tz_dtype, - is_datetime64_dtype, - needs_i8_conversion, - is_int64_dtype, - is_categorical_dtype, - is_integer_dtype, - is_float_dtype, - is_numeric_dtype, - is_integer, - is_int_or_datetime_dtype, - is_dtype_equal, - is_bool, - is_list_like, - _ensure_int64, - _ensure_float64, - _ensure_object, - _get_dtype) -from pandas.types.missing import na_value_for_dtype +from pandas.core.typed.common import ( + is_datetime64tz_dtype, + is_datetime64_dtype, + needs_i8_conversion, + is_int64_dtype, + is_categorical_dtype, + is_integer_dtype, + is_float_dtype, + is_numeric_dtype, + is_integer, + is_int_or_datetime_dtype, + is_dtype_equal, + is_bool, + is_list_like, + _ensure_int64, + _ensure_float64, + _ensure_object, + _get_dtype) +from pandas.core.typed.missing import na_value_for_dtype from pandas.core.internals import (items_overlap_with_suffix, concatenate_block_managers) from pandas.util.decorators import Appender, Substitution diff --git a/pandas/tools/pivot.py b/pandas/tools/pivot.py index e23beb8332fd4..07d9874be21f8 100644 --- a/pandas/tools/pivot.py +++ b/pandas/tools/pivot.py @@ -1,7 +1,7 @@ # pylint: disable=E1103 -from pandas.types.common import is_list_like, is_scalar +from pandas.core.typed.common import is_list_like, is_scalar from pandas import Series, DataFrame, MultiIndex, Index, concat from pandas.core.groupby import Grouper from pandas.tools.util import cartesian_product diff --git a/pandas/tools/tile.py b/pandas/tools/tile.py index 2a258d4a7b7e5..2755a9abe0091 100644 --- a/pandas/tools/tile.py +++ b/pandas/tools/tile.py @@ -2,13 +2,14 @@ Quantilization functions and related stuff """ -from pandas.types.missing import isnull -from pandas.types.common import (is_integer, - is_scalar, - is_categorical_dtype, - is_datetime64_dtype, - is_timedelta64_dtype, - _ensure_int64) +from pandas.core.typed.missing import isnull +from pandas.core.typed.common import ( + is_integer, + is_scalar, + is_categorical_dtype, + is_datetime64_dtype, + is_timedelta64_dtype, + _ensure_int64) import pandas.core.algorithms as algos import pandas.core.nanops as nanops diff --git a/pandas/tools/util.py b/pandas/tools/util.py index 263d2f16a4216..3b2a7c512653b 100644 --- a/pandas/tools/util.py +++ b/pandas/tools/util.py @@ -1,15 +1,16 @@ import numpy as np import pandas._libs.lib as lib -from pandas.types.common import (is_number, - is_numeric_dtype, - is_datetime_or_timedelta_dtype, - is_list_like, - _ensure_object, - is_decimal, - is_scalar as isscalar) - -from pandas.types.cast import maybe_downcast_to_dtype +from pandas.core.typed.common import ( + is_number, + is_numeric_dtype, + is_datetime_or_timedelta_dtype, + is_list_like, + _ensure_object, + is_decimal, + is_scalar as isscalar) + +from pandas.core.typed.cast import maybe_downcast_to_dtype import pandas as pd from pandas.compat import reduce diff --git a/pandas/tseries/base.py b/pandas/tseries/base.py index 48d236177b474..8c7fdf62d16ba 100644 --- a/pandas/tseries/base.py +++ b/pandas/tseries/base.py @@ -9,13 +9,15 @@ from pandas.compat.numpy import function as nv import numpy as np -from pandas.types.common import (is_integer, is_float, - is_bool_dtype, _ensure_int64, - is_scalar, is_dtype_equal, - is_list_like) -from pandas.types.generic import (ABCIndex, ABCSeries, - ABCPeriodIndex, ABCIndexClass) -from pandas.types.missing import isnull +from pandas.core.typed.common import ( + is_integer, is_float, + is_bool_dtype, _ensure_int64, + is_scalar, is_dtype_equal, + is_list_like) +from pandas.core.typed.generic import ( + ABCIndex, ABCSeries, + ABCPeriodIndex, ABCIndexClass) +from pandas.core.typed.missing import isnull from pandas.core import common as com, algorithms from pandas.core.algorithms import checked_add_with_arr from pandas.core.common import AbstractMethodError @@ -28,7 +30,7 @@ from pandas.core.index import Index from pandas.indexes.base import _index_shared_docs from pandas.util.decorators import Appender, cache_readonly -import pandas.types.concat as _concat +import pandas.core.typed.concat as _concat import pandas.tseries.frequencies as frequencies import pandas.indexes.base as ibase diff --git a/pandas/tseries/common.py b/pandas/tseries/common.py index 955edce2591e6..41719587cdd21 100644 --- a/pandas/tseries/common.py +++ b/pandas/tseries/common.py @@ -4,11 +4,12 @@ import numpy as np -from pandas.types.common import (is_period_arraylike, - is_datetime_arraylike, is_integer_dtype, - is_datetime64_dtype, is_datetime64tz_dtype, - is_timedelta64_dtype, is_categorical_dtype, - is_list_like) +from pandas.core.typed.common import ( + is_period_arraylike, + is_datetime_arraylike, is_integer_dtype, + is_datetime64_dtype, is_datetime64tz_dtype, + is_timedelta64_dtype, is_categorical_dtype, + is_list_like) from pandas.core.base import PandasDelegate, NoNewAttributesMixin from pandas.tseries.index import DatetimeIndex diff --git a/pandas/tseries/frequencies.py b/pandas/tseries/frequencies.py index 8013947babc5a..3b87d54c7f1ce 100644 --- a/pandas/tseries/frequencies.py +++ b/pandas/tseries/frequencies.py @@ -6,11 +6,12 @@ import numpy as np -from pandas.types.generic import ABCSeries -from pandas.types.common import (is_integer, - is_period_arraylike, - is_timedelta64_dtype, - is_datetime64_dtype) +from pandas.core.typed.generic import ABCSeries +from pandas.core.typed.common import ( + is_integer, + is_period_arraylike, + is_timedelta64_dtype, + is_datetime64_dtype) import pandas.core.algorithms as algos from pandas.core.algorithms import unique diff --git a/pandas/tseries/index.py b/pandas/tseries/index.py index 2c14d4f8ea79e..dbf3b8f6b70f2 100644 --- a/pandas/tseries/index.py +++ b/pandas/tseries/index.py @@ -7,24 +7,25 @@ import numpy as np from pandas.core.base import _shared_docs -from pandas.types.common import (_NS_DTYPE, _INT64_DTYPE, - is_object_dtype, is_datetime64_dtype, - is_datetimetz, is_dtype_equal, - is_integer, is_float, - is_integer_dtype, - is_datetime64_ns_dtype, - is_period_dtype, - is_bool_dtype, - is_string_dtype, - is_list_like, - is_scalar, - pandas_dtype, - _ensure_int64) -from pandas.types.generic import ABCSeries -from pandas.types.dtypes import DatetimeTZDtype -from pandas.types.missing import isnull - -import pandas.types.concat as _concat +from pandas.core.typed.common import ( + _NS_DTYPE, _INT64_DTYPE, + is_object_dtype, is_datetime64_dtype, + is_datetimetz, is_dtype_equal, + is_integer, is_float, + is_integer_dtype, + is_datetime64_ns_dtype, + is_period_dtype, + is_bool_dtype, + is_string_dtype, + is_list_like, + is_scalar, + pandas_dtype, + _ensure_int64) +from pandas.core.typed.generic import ABCSeries +from pandas.core.typed.dtypes import DatetimeTZDtype +from pandas.core.typed.missing import isnull + +import pandas.core.typed.concat as _concat from pandas.errors import PerformanceWarning from pandas.core.common import _values_from_object, _maybe_box diff --git a/pandas/tseries/offsets.py b/pandas/tseries/offsets.py index 2b6a684fc39dd..2be788a577138 100644 --- a/pandas/tseries/offsets.py +++ b/pandas/tseries/offsets.py @@ -3,7 +3,7 @@ from pandas import compat import numpy as np -from pandas.types.generic import ABCSeries, ABCDatetimeIndex, ABCPeriod +from pandas.core.typed.generic import ABCSeries, ABCDatetimeIndex, ABCPeriod from pandas.tseries.tools import to_datetime, normalize_date from pandas.core.common import AbstractMethodError diff --git a/pandas/tseries/period.py b/pandas/tseries/period.py index 7f7b3286fd4f8..f48eb1c116321 100644 --- a/pandas/tseries/period.py +++ b/pandas/tseries/period.py @@ -5,21 +5,22 @@ from pandas.core import common as com -from pandas.types.common import (is_integer, - is_float, - is_object_dtype, - is_integer_dtype, - is_float_dtype, - is_scalar, - is_datetime64_dtype, - is_datetime64tz_dtype, - is_timedelta64_dtype, - is_period_dtype, - is_bool_dtype, - pandas_dtype, - _ensure_object) -from pandas.types.dtypes import PeriodDtype -from pandas.types.generic import ABCSeries +from pandas.core.typed.common import ( + is_integer, + is_float, + is_object_dtype, + is_integer_dtype, + is_float_dtype, + is_scalar, + is_datetime64_dtype, + is_datetime64tz_dtype, + is_timedelta64_dtype, + is_period_dtype, + is_bool_dtype, + pandas_dtype, + _ensure_object) +from pandas.core.typed.dtypes import PeriodDtype +from pandas.core.typed.generic import ABCSeries import pandas.tseries.frequencies as frequencies from pandas.tseries.frequencies import get_freq_code as _gfc diff --git a/pandas/tseries/tdi.py b/pandas/tseries/tdi.py index d0f373fcc5a45..8f16d1bc510d5 100644 --- a/pandas/tseries/tdi.py +++ b/pandas/tseries/tdi.py @@ -2,18 +2,19 @@ from datetime import timedelta import numpy as np -from pandas.types.common import (_TD_DTYPE, - is_integer, is_float, - is_bool_dtype, - is_list_like, - is_scalar, - is_integer_dtype, - is_object_dtype, - is_timedelta64_dtype, - is_timedelta64_ns_dtype, - _ensure_int64) -from pandas.types.missing import isnull -from pandas.types.generic import ABCSeries +from pandas.core.typed.common import ( + _TD_DTYPE, + is_integer, is_float, + is_bool_dtype, + is_list_like, + is_scalar, + is_integer_dtype, + is_object_dtype, + is_timedelta64_dtype, + is_timedelta64_ns_dtype, + _ensure_int64) +from pandas.core.typed.missing import isnull +from pandas.core.typed.generic import ABCSeries from pandas.core.common import _maybe_box, _values_from_object, is_bool_indexer from pandas.core.index import Index, Int64Index @@ -24,7 +25,7 @@ from pandas.core.base import _shared_docs from pandas.indexes.base import _index_shared_docs import pandas.core.common as com -import pandas.types.concat as _concat +import pandas.core.typed.concat as _concat from pandas.util.decorators import Appender, Substitution, deprecate_kwarg from pandas.tseries.base import TimelikeOps, DatetimeIndexOpsMixin from pandas.tseries.timedeltas import (to_timedelta, diff --git a/pandas/tseries/timedeltas.py b/pandas/tseries/timedeltas.py index ead602ee80e32..99bea1b1f038c 100644 --- a/pandas/tseries/timedeltas.py +++ b/pandas/tseries/timedeltas.py @@ -6,11 +6,12 @@ import pandas as pd import pandas._libs.tslib as tslib -from pandas.types.common import (_ensure_object, - is_integer_dtype, - is_timedelta64_dtype, - is_list_like) -from pandas.types.generic import ABCSeries, ABCIndexClass +from pandas.core.typed.common import ( + _ensure_object, + is_integer_dtype, + is_timedelta64_dtype, + is_list_like) +from pandas.core.typed.generic import ABCSeries, ABCIndexClass def to_timedelta(arg, unit='ns', box=True, errors='raise'): diff --git a/pandas/tseries/tools.py b/pandas/tseries/tools.py index 9d5821d859187..57265601fbb05 100644 --- a/pandas/tseries/tools.py +++ b/pandas/tseries/tools.py @@ -4,19 +4,21 @@ from pandas._libs import lib, tslib -from pandas.types.common import (_ensure_object, - is_datetime64_ns_dtype, - is_datetime64_dtype, - is_datetime64tz_dtype, - is_integer_dtype, - is_integer, - is_float, - is_list_like, - is_scalar, - is_numeric_dtype) -from pandas.types.generic import (ABCIndexClass, ABCSeries, - ABCDataFrame) -from pandas.types.missing import notnull +from pandas.core.typed.common import ( + _ensure_object, + is_datetime64_ns_dtype, + is_datetime64_dtype, + is_datetime64tz_dtype, + is_integer_dtype, + is_integer, + is_float, + is_list_like, + is_scalar, + is_numeric_dtype) +from pandas.core.typed.generic import ( + ABCIndexClass, ABCSeries, + ABCDataFrame) +from pandas.core.typed.missing import notnull from pandas.core import algorithms import pandas.compat as compat diff --git a/pandas/tseries/util.py b/pandas/tseries/util.py index da3bb075dd02c..69cfcde22217b 100644 --- a/pandas/tseries/util.py +++ b/pandas/tseries/util.py @@ -2,7 +2,7 @@ from pandas.compat import lrange import numpy as np -from pandas.types.common import _ensure_platform_int +from pandas.core.typed.common import _ensure_platform_int from pandas.core.frame import DataFrame import pandas.core.algorithms as algorithms diff --git a/pandas/util/testing.py b/pandas/util/testing.py index c73cca56f975a..6261f79f97c32 100644 --- a/pandas/util/testing.py +++ b/pandas/util/testing.py @@ -23,15 +23,16 @@ import numpy as np import pandas as pd -from pandas.types.missing import array_equivalent -from pandas.types.common import (is_datetimelike_v_numeric, - is_datetimelike_v_object, - is_number, is_bool, - needs_i8_conversion, - is_categorical_dtype, - is_interval_dtype, - is_sequence, - is_list_like) +from pandas.core.typed.missing import array_equivalent +from pandas.core.typed.common import ( + is_datetimelike_v_numeric, + is_datetimelike_v_object, + is_number, is_bool, + needs_i8_conversion, + is_categorical_dtype, + is_interval_dtype, + is_sequence, + is_list_like) from pandas.formats.printing import pprint_thing from pandas.core.algorithms import take_1d diff --git a/pandas/util/testing.pyx b/pandas/util/testing.pyx index cda21ba9c4ce1..3af865ce505a0 100644 --- a/pandas/util/testing.pyx +++ b/pandas/util/testing.pyx @@ -1,8 +1,8 @@ import numpy as np from pandas import compat -from pandas.types.missing import isnull, array_equivalent -from pandas.types.common import is_dtype_equal +from pandas.core.typed.missing import isnull, array_equivalent +from pandas.core.typed.common import is_dtype_equal cdef NUMERIC_TYPES = ( bool, diff --git a/pandas/util/validators.py b/pandas/util/validators.py index f22412a2bcd17..206ab4bc4b8f9 100644 --- a/pandas/util/validators.py +++ b/pandas/util/validators.py @@ -3,7 +3,7 @@ for validating data or function arguments """ -from pandas.types.common import is_bool +from pandas.core.typed.common import is_bool def _check_arg_length(fname, args, max_fname_arg_count, compat_args): diff --git a/setup.py b/setup.py index d76c6fa508008..ea7d5032f087d 100755 --- a/setup.py +++ b/setup.py @@ -641,6 +641,7 @@ def pxd(name): 'pandas.compat.numpy', 'pandas.computation', 'pandas.core', + 'pandas.core.typed', 'pandas.indexes', 'pandas.errors', 'pandas.io', @@ -656,6 +657,7 @@ def pxd(name): 'pandas.tests', 'pandas.tests.api', 'pandas.tests.computation', + 'pandas.tests.core.typed', 'pandas.tests.frame', 'pandas.tests.indexes', 'pandas.tests.indexes.datetimes', @@ -673,11 +675,9 @@ def pxd(name): 'pandas.tests.sparse', 'pandas.tests.tseries', 'pandas.tests.tools', - 'pandas.tests.types', 'pandas.tests.plotting', 'pandas.tools', 'pandas.tseries', - 'pandas.types', 'pandas.util.clipboard' ], package_data={'pandas.tests': ['data/*.csv'], From ba32641bb1d6755c3108579c3bf88a22f475b155 Mon Sep 17 00:00:00 2001 From: Jeff Reback Date: Fri, 14 Apr 2017 13:42:08 -0400 Subject: [PATCH 02/11] CLN: move pandas.computation -> pandas.core.computation --- asv_bench/benchmarks/binary_ops.py | 2 +- asv_bench/benchmarks/eval.py | 2 +- asv_bench/benchmarks/indexing.py | 2 +- doc/source/whatsnew/v0.20.0.txt | 1 + pandas/__init__.py | 2 +- pandas/{ => core}/computation/__init__.py | 0 pandas/{ => core}/computation/align.py | 2 +- pandas/{ => core}/computation/api.py | 4 ++-- pandas/{ => core}/computation/common.py | 0 pandas/{ => core}/computation/engines.py | 7 +++--- pandas/{ => core}/computation/eval.py | 8 +++---- pandas/{ => core}/computation/expr.py | 13 ++++++----- pandas/{ => core}/computation/expressions.py | 2 +- pandas/{ => core}/computation/ops.py | 4 ++-- pandas/{ => core}/computation/pytables.py | 8 +++---- pandas/{ => core}/computation/scope.py | 2 +- pandas/core/frame.py | 4 ++-- pandas/core/internals.py | 2 +- pandas/core/ops.py | 2 +- pandas/core/panel.py | 2 +- pandas/io/pytables.py | 2 +- pandas/tests/api/test_api.py | 8 +++---- .../tests/{ => core}/computation/__init__.py | 0 .../{ => core}/computation/test_compat.py | 8 +++---- .../tests/{ => core}/computation/test_eval.py | 22 ++++++++++--------- pandas/tests/frame/test_query_eval.py | 14 ++++++------ pandas/tests/test_expressions.py | 2 +- pandas/util/testing.py | 7 +++--- setup.py | 4 ++-- vb_suite/binary_ops.py | 12 +++++----- vb_suite/eval.py | 2 +- vb_suite/indexing.py | 4 ++-- 32 files changed, 80 insertions(+), 74 deletions(-) rename pandas/{ => core}/computation/__init__.py (100%) rename pandas/{ => core}/computation/align.py (98%) rename pandas/{ => core}/computation/api.py (74%) rename pandas/{ => core}/computation/common.py (100%) rename pandas/{ => core}/computation/engines.py (95%) rename pandas/{ => core}/computation/eval.py (97%) rename pandas/{ => core}/computation/expr.py (98%) rename pandas/{ => core}/computation/expressions.py (99%) rename pandas/{ => core}/computation/ops.py (99%) rename pandas/{ => core}/computation/pytables.py (98%) rename pandas/{ => core}/computation/scope.py (99%) rename pandas/tests/{ => core}/computation/__init__.py (100%) rename pandas/tests/{ => core}/computation/test_compat.py (84%) rename pandas/tests/{ => core}/computation/test_eval.py (99%) diff --git a/asv_bench/benchmarks/binary_ops.py b/asv_bench/benchmarks/binary_ops.py index 72700c3de282e..cc869996b49cd 100644 --- a/asv_bench/benchmarks/binary_ops.py +++ b/asv_bench/benchmarks/binary_ops.py @@ -1,5 +1,5 @@ from .pandas_vb_common import * -import pandas.computation.expressions as expr +import pandas.core.computation.expressions as expr class Ops(object): diff --git a/asv_bench/benchmarks/eval.py b/asv_bench/benchmarks/eval.py index a0819e33dc254..ee091e57c6403 100644 --- a/asv_bench/benchmarks/eval.py +++ b/asv_bench/benchmarks/eval.py @@ -1,6 +1,6 @@ from .pandas_vb_common import * import pandas as pd -import pandas.computation.expressions as expr +import pandas.core.computation.expressions as expr class Eval(object): diff --git a/asv_bench/benchmarks/indexing.py b/asv_bench/benchmarks/indexing.py index a32c9f25a0f09..79844414f2746 100644 --- a/asv_bench/benchmarks/indexing.py +++ b/asv_bench/benchmarks/indexing.py @@ -1,6 +1,6 @@ from .pandas_vb_common import * try: - import pandas.computation.expressions as expr + import pandas.core.computation.expressions as expr except: expr = None diff --git a/doc/source/whatsnew/v0.20.0.txt b/doc/source/whatsnew/v0.20.0.txt index b4e6ca44a83a6..1c7de8693d741 100644 --- a/doc/source/whatsnew/v0.20.0.txt +++ b/doc/source/whatsnew/v0.20.0.txt @@ -1043,6 +1043,7 @@ If indicated, a deprecation warning will be issued if you reference that module. "pandas.tslib", "pandas._libs.tslib", "X" "pandas._join", "pandas._libs.join", "" "pandas._period", "pandas._libs.period", "" + "pandas.computation", "pandas.core.computation", "" "pandas.msgpack", "pandas.io.msgpack", "" "pandas.index", "pandas._libs.index", "" "pandas.algos", "pandas._libs.algos", "" diff --git a/pandas/__init__.py b/pandas/__init__.py index bc38919f2c78c..13f3b9bf528c1 100644 --- a/pandas/__init__.py +++ b/pandas/__init__.py @@ -43,7 +43,7 @@ from pandas.sparse.api import * from pandas.stats.api import * from pandas.tseries.api import * -from pandas.computation.api import * +from pandas.core.computation.api import * from pandas.tools.concat import concat from pandas.tools.merge import (merge, ordered_merge, diff --git a/pandas/computation/__init__.py b/pandas/core/computation/__init__.py similarity index 100% rename from pandas/computation/__init__.py rename to pandas/core/computation/__init__.py diff --git a/pandas/computation/align.py b/pandas/core/computation/align.py similarity index 98% rename from pandas/computation/align.py rename to pandas/core/computation/align.py index b4c80f4d493af..1c75301082297 100644 --- a/pandas/computation/align.py +++ b/pandas/core/computation/align.py @@ -11,7 +11,7 @@ from pandas import compat from pandas.errors import PerformanceWarning from pandas.core.common import flatten -from pandas.computation.common import _result_type_many +from pandas.core.computation.common import _result_type_many def _align_core_single_unary_op(term): diff --git a/pandas/computation/api.py b/pandas/core/computation/api.py similarity index 74% rename from pandas/computation/api.py rename to pandas/core/computation/api.py index fe3dad015048e..a6fe5aae822df 100644 --- a/pandas/computation/api.py +++ b/pandas/core/computation/api.py @@ -1,6 +1,6 @@ # flake8: noqa -from pandas.computation.eval import eval +from pandas.core.computation.eval import eval # deprecation, xref #13790 @@ -10,5 +10,5 @@ def Expr(*args, **kwargs): warnings.warn("pd.Expr is deprecated as it is not " "applicable to user code", FutureWarning, stacklevel=2) - from pandas.computation.expr import Expr + from pandas.core.computation.expr import Expr return Expr(*args, **kwargs) diff --git a/pandas/computation/common.py b/pandas/core/computation/common.py similarity index 100% rename from pandas/computation/common.py rename to pandas/core/computation/common.py diff --git a/pandas/computation/engines.py b/pandas/core/computation/engines.py similarity index 95% rename from pandas/computation/engines.py rename to pandas/core/computation/engines.py index aebc5bb02d59d..675a3d5eca792 100644 --- a/pandas/computation/engines.py +++ b/pandas/core/computation/engines.py @@ -7,9 +7,10 @@ from pandas import compat from pandas.compat import map import pandas.formats.printing as printing -from pandas.computation.align import _align, _reconstruct_object -from pandas.computation.ops import (UndefinedVariableError, - _mathops, _reductions) +from pandas.core.computation.align import _align, _reconstruct_object +from pandas.core.computation.ops import ( + UndefinedVariableError, + _mathops, _reductions) _ne_builtins = frozenset(_mathops + _reductions) diff --git a/pandas/computation/eval.py b/pandas/core/computation/eval.py similarity index 97% rename from pandas/computation/eval.py rename to pandas/core/computation/eval.py index 5b21c753a71da..fc3986e317d13 100644 --- a/pandas/computation/eval.py +++ b/pandas/core/computation/eval.py @@ -6,11 +6,11 @@ import warnings import tokenize from pandas.formats.printing import pprint_thing -from pandas.computation import _NUMEXPR_INSTALLED -from pandas.computation.expr import Expr, _parsers, tokenize_string -from pandas.computation.scope import _ensure_scope +from pandas.core.computation import _NUMEXPR_INSTALLED +from pandas.core.computation.expr import Expr, _parsers, tokenize_string +from pandas.core.computation.scope import _ensure_scope from pandas.compat import string_types -from pandas.computation.engines import _engines +from pandas.core.computation.engines import _engines from pandas.util.validators import validate_bool_kwarg diff --git a/pandas/computation/expr.py b/pandas/core/computation/expr.py similarity index 98% rename from pandas/computation/expr.py rename to pandas/core/computation/expr.py index e78806b38c667..01c5d1f6f100c 100644 --- a/pandas/computation/expr.py +++ b/pandas/core/computation/expr.py @@ -14,12 +14,13 @@ from pandas.core import common as com import pandas.formats.printing as printing from pandas.tools.util import compose -from pandas.computation.ops import (_cmp_ops_syms, _bool_ops_syms, - _arith_ops_syms, _unary_ops_syms, is_term) -from pandas.computation.ops import _reductions, _mathops, _LOCAL_TAG -from pandas.computation.ops import Op, BinOp, UnaryOp, Term, Constant, Div -from pandas.computation.ops import UndefinedVariableError, FuncNode -from pandas.computation.scope import Scope +from pandas.core.computation.ops import ( + _cmp_ops_syms, _bool_ops_syms, + _arith_ops_syms, _unary_ops_syms, is_term) +from pandas.core.computation.ops import _reductions, _mathops, _LOCAL_TAG +from pandas.core.computation.ops import Op, BinOp, UnaryOp, Term, Constant, Div +from pandas.core.computation.ops import UndefinedVariableError, FuncNode +from pandas.core.computation.scope import Scope def tokenize_string(source): diff --git a/pandas/computation/expressions.py b/pandas/core/computation/expressions.py similarity index 99% rename from pandas/computation/expressions.py rename to pandas/core/computation/expressions.py index 8fd9ab3477b74..4eeefb183001e 100644 --- a/pandas/computation/expressions.py +++ b/pandas/core/computation/expressions.py @@ -9,7 +9,7 @@ import warnings import numpy as np from pandas.core.common import _values_from_object -from pandas.computation import _NUMEXPR_INSTALLED +from pandas.core.computation import _NUMEXPR_INSTALLED if _NUMEXPR_INSTALLED: import numexpr as ne diff --git a/pandas/computation/ops.py b/pandas/core/computation/ops.py similarity index 99% rename from pandas/computation/ops.py rename to pandas/core/computation/ops.py index 411b238afd606..2415791a85060 100644 --- a/pandas/computation/ops.py +++ b/pandas/core/computation/ops.py @@ -13,8 +13,8 @@ import pandas.core.common as com from pandas.formats.printing import pprint_thing, pprint_thing_encoded from pandas.core.base import StringMixin -from pandas.computation.common import _ensure_decoded, _result_type_many -from pandas.computation.scope import _DEFAULT_GLOBALS +from pandas.core.computation.common import _ensure_decoded, _result_type_many +from pandas.core.computation.scope import _DEFAULT_GLOBALS _reductions = 'sum', 'prod' diff --git a/pandas/computation/pytables.py b/pandas/core/computation/pytables.py similarity index 98% rename from pandas/computation/pytables.py rename to pandas/core/computation/pytables.py index 7505e65cbc6ed..49bd7a2291df8 100644 --- a/pandas/computation/pytables.py +++ b/pandas/core/computation/pytables.py @@ -10,10 +10,10 @@ from pandas.compat import u, string_types, DeepChainMap from pandas.core.base import StringMixin from pandas.formats.printing import pprint_thing, pprint_thing_encoded -from pandas.computation import expr, ops -from pandas.computation.ops import is_term, UndefinedVariableError -from pandas.computation.expr import BaseExprVisitor -from pandas.computation.common import _ensure_decoded +from pandas.core.computation import expr, ops +from pandas.core.computation.ops import is_term, UndefinedVariableError +from pandas.core.computation.expr import BaseExprVisitor +from pandas.core.computation.common import _ensure_decoded from pandas.tseries.timedeltas import _coerce_scalar_to_timedelta_type diff --git a/pandas/computation/scope.py b/pandas/core/computation/scope.py similarity index 99% rename from pandas/computation/scope.py rename to pandas/core/computation/scope.py index 9ade755e0ff12..5a589473f64b7 100644 --- a/pandas/computation/scope.py +++ b/pandas/core/computation/scope.py @@ -15,7 +15,7 @@ import pandas as pd # noqa from pandas.compat import DeepChainMap, map, StringIO from pandas.core.base import StringMixin -import pandas.computation as compu +import pandas.core.computation as compu def _ensure_scope(level, global_dict=None, local_dict=None, resolvers=(), diff --git a/pandas/core/frame.py b/pandas/core/frame.py index ec380dc34c852..f7ec81feed7ae 100644 --- a/pandas/core/frame.py +++ b/pandas/core/frame.py @@ -72,9 +72,9 @@ create_block_manager_from_blocks) from pandas.core.series import Series from pandas.core.categorical import Categorical -import pandas.computation.expressions as expressions +import pandas.core.computation.expressions as expressions import pandas.core.algorithms as algorithms -from pandas.computation.eval import eval as _eval +from pandas.core.computation.eval import eval as _eval from pandas.compat import (range, map, zip, lrange, lmap, lzip, StringIO, u, OrderedDict, raise_with_traceback) from pandas import compat diff --git a/pandas/core/internals.py b/pandas/core/internals.py index 0e45f6baae471..bca52971b1ec7 100644 --- a/pandas/core/internals.py +++ b/pandas/core/internals.py @@ -63,7 +63,7 @@ from pandas._libs.tslib import Timedelta from pandas._libs.lib import BlockPlacement -import pandas.computation.expressions as expressions +import pandas.core.computation.expressions as expressions from pandas.util.decorators import cache_readonly from pandas.util.validators import validate_bool_kwarg diff --git a/pandas/core/ops.py b/pandas/core/ops.py index 3feb944701b70..bc99ffa305786 100644 --- a/pandas/core/ops.py +++ b/pandas/core/ops.py @@ -16,7 +16,7 @@ from pandas import compat from pandas.util.decorators import Appender -import pandas.computation.expressions as expressions +import pandas.core.computation.expressions as expressions from pandas.compat import bind_method import pandas.core.missing as missing diff --git a/pandas/core/panel.py b/pandas/core/panel.py index 0fdc34e9e009e..1efbdc0d9d9de 100644 --- a/pandas/core/panel.py +++ b/pandas/core/panel.py @@ -14,7 +14,7 @@ is_string_like, is_scalar) from pandas.core.typed.missing import notnull -import pandas.computation.expressions as expressions +import pandas.core.computation.expressions as expressions import pandas.core.common as com import pandas.core.ops as ops import pandas.core.missing as missing diff --git a/pandas/io/pytables.py b/pandas/io/pytables.py index c98e6b835cb15..6c12765bb6cdb 100644 --- a/pandas/io/pytables.py +++ b/pandas/io/pytables.py @@ -44,7 +44,7 @@ from pandas import compat from pandas.compat import u_safe as u, PY3, range, lrange, string_types, filter from pandas.core.config import get_option -from pandas.computation.pytables import Expr, maybe_expression +from pandas.core.computation.pytables import Expr, maybe_expression from pandas._libs import tslib, algos, lib diff --git a/pandas/tests/api/test_api.py b/pandas/tests/api/test_api.py index 4bf2e77fc01d6..b95699fb25bcb 100644 --- a/pandas/tests/api/test_api.py +++ b/pandas/tests/api/test_api.py @@ -30,8 +30,8 @@ class TestPDApi(Base, tm.TestCase): ignored = ['tests', 'locale', 'conftest'] # top-level sub-packages - lib = ['api', 'compat', 'computation', 'core', - 'indexes', 'formats', 'errors', 'pandas', 'plotting', + lib = ['api', 'compat', 'core', + 'indexes', 'formats', 'errors', 'pandas', 'plotting' 'test', 'tools', 'tseries', 'sparse', 'util', 'options', 'io'] @@ -39,8 +39,8 @@ class TestPDApi(Base, tm.TestCase): deprecated_modules = ['stats', 'datetools', 'parser', 'json', 'lib', 'tslib'] - # to be deprecated - to_be_deprecated_moduels = ['types'] + # to be deprecated or removed + to_be_deprecated_moduels = ['computation', 'types'] # misc misc = ['IndexSlice', 'NaT'] diff --git a/pandas/tests/computation/__init__.py b/pandas/tests/core/computation/__init__.py similarity index 100% rename from pandas/tests/computation/__init__.py rename to pandas/tests/core/computation/__init__.py diff --git a/pandas/tests/computation/test_compat.py b/pandas/tests/core/computation/test_compat.py similarity index 84% rename from pandas/tests/computation/test_compat.py rename to pandas/tests/core/computation/test_compat.py index 56a7cab730f1f..7b6c0f9c4c9aa 100644 --- a/pandas/tests/computation/test_compat.py +++ b/pandas/tests/core/computation/test_compat.py @@ -4,15 +4,15 @@ import pandas as pd from pandas.util import testing as tm -from pandas.computation.engines import _engines -import pandas.computation.expr as expr -from pandas.computation import _MIN_NUMEXPR_VERSION +from pandas.core.computation.engines import _engines +import pandas.core.computation.expr as expr +from pandas.core.computation import _MIN_NUMEXPR_VERSION def test_compat(): # test we have compat with our version of nu - from pandas.computation import _NUMEXPR_INSTALLED + from pandas.core.computation import _NUMEXPR_INSTALLED try: import numexpr as ne ver = ne.__version__ diff --git a/pandas/tests/computation/test_eval.py b/pandas/tests/core/computation/test_eval.py similarity index 99% rename from pandas/tests/computation/test_eval.py rename to pandas/tests/core/computation/test_eval.py index 2e48788402012..e7bd2ae4e85fd 100644 --- a/pandas/tests/computation/test_eval.py +++ b/pandas/tests/core/computation/test_eval.py @@ -15,16 +15,18 @@ from pandas import DataFrame, Series, Panel, date_range from pandas.util.testing import makeCustomDataframe as mkdf -from pandas.computation import pytables -from pandas.computation.engines import _engines, NumExprClobberingError -from pandas.computation.expr import PythonExprVisitor, PandasExprVisitor -from pandas.computation.expressions import _USE_NUMEXPR, _NUMEXPR_INSTALLED -from pandas.computation.ops import (_binary_ops_dict, - _special_case_arith_ops_syms, - _arith_ops_syms, _bool_ops_syms, - _unary_math_ops, _binary_math_ops) - -import pandas.computation.expr as expr +from pandas.core.computation import pytables +from pandas.core.computation.engines import _engines, NumExprClobberingError +from pandas.core.computation.expr import PythonExprVisitor, PandasExprVisitor +from pandas.core.computation.expressions import ( + _USE_NUMEXPR, _NUMEXPR_INSTALLED) +from pandas.core.computation.ops import ( + _binary_ops_dict, + _special_case_arith_ops_syms, + _arith_ops_syms, _bool_ops_syms, + _unary_math_ops, _binary_math_ops) + +import pandas.core.computation.expr as expr import pandas.util.testing as tm from pandas.util.testing import (assert_frame_equal, randbool, assertRaisesRegexp, assert_numpy_array_equal, diff --git a/pandas/tests/frame/test_query_eval.py b/pandas/tests/frame/test_query_eval.py index f90b37b66d200..a531b86699e90 100644 --- a/pandas/tests/frame/test_query_eval.py +++ b/pandas/tests/frame/test_query_eval.py @@ -19,7 +19,7 @@ makeCustomDataframe as mkdf) import pandas.util.testing as tm -from pandas.computation import _NUMEXPR_INSTALLED +from pandas.core.computation import _NUMEXPR_INSTALLED from pandas.tests.frame.common import TestData @@ -511,7 +511,7 @@ def test_query_syntax_error(self): df.query('i - +', engine=engine, parser=parser) def test_query_scope(self): - from pandas.computation.ops import UndefinedVariableError + from pandas.core.computation.ops import UndefinedVariableError engine, parser = self.engine, self.parser skip_if_no_pandas_parser(parser) @@ -535,7 +535,7 @@ def test_query_scope(self): df.query('@a > b > c', engine=engine, parser=parser) def test_query_doesnt_pickup_local(self): - from pandas.computation.ops import UndefinedVariableError + from pandas.core.computation.ops import UndefinedVariableError engine, parser = self.engine, self.parser n = m = 10 @@ -546,7 +546,7 @@ def test_query_doesnt_pickup_local(self): df.query('sin > 5', engine=engine, parser=parser) def test_query_builtin(self): - from pandas.computation.engines import NumExprClobberingError + from pandas.core.computation.engines import NumExprClobberingError engine, parser = self.engine, self.parser n = m = 10 @@ -624,7 +624,7 @@ def test_nested_scope(self): assert_frame_equal(result, expected) def test_nested_raises_on_local_self_reference(self): - from pandas.computation.ops import UndefinedVariableError + from pandas.core.computation.ops import UndefinedVariableError df = DataFrame(np.random.randn(5, 3)) @@ -683,7 +683,7 @@ def test_at_inside_string(self): assert_frame_equal(result, expected) def test_query_undefined_local(self): - from pandas.computation.ops import UndefinedVariableError + from pandas.core.computation.ops import UndefinedVariableError engine, parser = self.engine, self.parser skip_if_no_pandas_parser(parser) df = DataFrame(np.random.rand(10, 2), columns=list('ab')) @@ -803,7 +803,7 @@ def test_date_index_query_with_NaT_duplicates(self): df.query('index < 20130101 < dates3', engine=engine, parser=parser) def test_nested_scope(self): - from pandas.computation.ops import UndefinedVariableError + from pandas.core.computation.ops import UndefinedVariableError engine = self.engine parser = self.parser # smoke test diff --git a/pandas/tests/test_expressions.py b/pandas/tests/test_expressions.py index dc4787176a0b5..b353f73f4004d 100644 --- a/pandas/tests/test_expressions.py +++ b/pandas/tests/test_expressions.py @@ -12,7 +12,7 @@ import numpy as np from pandas.core.api import DataFrame, Panel -from pandas.computation import expressions as expr +from pandas.core.computation import expressions as expr from pandas import compat, _np_version_under1p11 from pandas.util.testing import (assert_almost_equal, assert_series_equal, assert_frame_equal, assert_panel_equal, diff --git a/pandas/util/testing.py b/pandas/util/testing.py index 6261f79f97c32..b64128b3158b6 100644 --- a/pandas/util/testing.py +++ b/pandas/util/testing.py @@ -43,7 +43,7 @@ StringIO, PY3 ) -from pandas.computation import expressions as expr +from pandas.core.computation import expressions as expr from pandas import (bdate_range, CategoricalIndex, Categorical, IntervalIndex, DatetimeIndex, TimedeltaIndex, PeriodIndex, RangeIndex, @@ -402,8 +402,9 @@ def _incompat_bottleneck_version(method): def skip_if_no_ne(engine='numexpr'): - from pandas.computation.expressions import (_USE_NUMEXPR, - _NUMEXPR_INSTALLED) + from pandas.core.computation.expressions import ( + _USE_NUMEXPR, + _NUMEXPR_INSTALLED) if engine == 'numexpr': if not _USE_NUMEXPR: diff --git a/setup.py b/setup.py index ea7d5032f087d..cf89a9970435a 100755 --- a/setup.py +++ b/setup.py @@ -639,9 +639,9 @@ def pxd(name): 'pandas.api.lib', 'pandas.compat', 'pandas.compat.numpy', - 'pandas.computation', 'pandas.core', 'pandas.core.typed', + 'pandas.core.computation', 'pandas.indexes', 'pandas.errors', 'pandas.io', @@ -656,8 +656,8 @@ def pxd(name): 'pandas.util', 'pandas.tests', 'pandas.tests.api', - 'pandas.tests.computation', 'pandas.tests.core.typed', + 'pandas.tests.core.computation', 'pandas.tests.frame', 'pandas.tests.indexes', 'pandas.tests.indexes.datetimes', diff --git a/vb_suite/binary_ops.py b/vb_suite/binary_ops.py index 7c821374a83ab..edc29bf3eec37 100644 --- a/vb_suite/binary_ops.py +++ b/vb_suite/binary_ops.py @@ -21,7 +21,7 @@ start_date=datetime(2012, 1, 1)) setup = common_setup + """ -import pandas.computation.expressions as expr +import pandas.core.computation.expressions as expr df = DataFrame(np.random.randn(20000, 100)) df2 = DataFrame(np.random.randn(20000, 100)) expr.set_numexpr_threads(1) @@ -32,7 +32,7 @@ start_date=datetime(2013, 2, 26)) setup = common_setup + """ -import pandas.computation.expressions as expr +import pandas.core.computation.expressions as expr df = DataFrame(np.random.randn(20000, 100)) df2 = DataFrame(np.random.randn(20000, 100)) expr.set_use_numexpr(False) @@ -53,7 +53,7 @@ start_date=datetime(2012, 1, 1)) setup = common_setup + """ -import pandas.computation.expressions as expr +import pandas.core.computation.expressions as expr df = DataFrame(np.random.randn(20000, 100)) df2 = DataFrame(np.random.randn(20000, 100)) expr.set_numexpr_threads(1) @@ -63,7 +63,7 @@ start_date=datetime(2013, 2, 26)) setup = common_setup + """ -import pandas.computation.expressions as expr +import pandas.core.computation.expressions as expr df = DataFrame(np.random.randn(20000, 100)) df2 = DataFrame(np.random.randn(20000, 100)) expr.set_use_numexpr(False) @@ -129,7 +129,7 @@ start_date=datetime(2012, 1, 1)) setup = common_setup + """ -import pandas.computation.expressions as expr +import pandas.core.computation.expressions as expr df = DataFrame(np.random.randn(20000, 100)) df2 = DataFrame(np.random.randn(20000, 100)) expr.set_numexpr_threads(1) @@ -139,7 +139,7 @@ start_date=datetime(2013, 2, 26)) setup = common_setup + """ -import pandas.computation.expressions as expr +import pandas.core.computation.expressions as expr df = DataFrame(np.random.randn(20000, 100)) df2 = DataFrame(np.random.randn(20000, 100)) expr.set_use_numexpr(False) diff --git a/vb_suite/eval.py b/vb_suite/eval.py index bf80aad956184..011669256a9bc 100644 --- a/vb_suite/eval.py +++ b/vb_suite/eval.py @@ -10,7 +10,7 @@ """ setup = common_setup + """ -import pandas.computation.expressions as expr +import pandas.core.computation.expressions as expr expr.set_numexpr_threads(1) """ diff --git a/vb_suite/indexing.py b/vb_suite/indexing.py index 3d95d52dccd71..ff634bf2a8fc7 100644 --- a/vb_suite/indexing.py +++ b/vb_suite/indexing.py @@ -141,7 +141,7 @@ setup = common_setup + """ try: - import pandas.computation.expressions as expr + import pandas.core.computation.expressions as expr except: expr = None @@ -159,7 +159,7 @@ setup = common_setup + """ try: - import pandas.computation.expressions as expr + import pandas.core.computation.expressions as expr except: expr = None From 290315ef53413cc3324745caf93c44b3762dc383 Mon Sep 17 00:00:00 2001 From: Jeff Reback Date: Fri, 14 Apr 2017 15:48:29 -0400 Subject: [PATCH 03/11] move pandas.api.lib.infer_dtype -> pandas.api.types move union_categoricals to pandas.api.types make feather single test fix odd tz hashing issue remove circular import pandas.core.common warning message --- doc/source/categorical.rst | 2 +- doc/source/whatsnew/v0.20.0.txt | 4 ++- pandas/api/types/__init__.py | 1 + pandas/core/algorithms.py | 2 +- pandas/core/common.py | 2 +- pandas/core/series.py | 2 -- pandas/core/typed/concat.py | 28 +++++++++++-------- pandas/core/typed/dtypes.py | 9 +++++- pandas/tests/api/test_lib.py | 10 ------- pandas/tests/api/test_types.py | 11 +++++++- .../indexes/datetimes/test_construction.py | 15 ++++++++++ pandas/tests/io/test_feather.py | 2 ++ setup.py | 1 - 13 files changed, 58 insertions(+), 31 deletions(-) delete mode 100644 pandas/tests/api/test_lib.py diff --git a/doc/source/categorical.rst b/doc/source/categorical.rst index 411f973e9a71f..a508e84465107 100644 --- a/doc/source/categorical.rst +++ b/doc/source/categorical.rst @@ -673,7 +673,7 @@ will be the union of the categories being combined. .. ipython:: python - from pandas.types.concat import union_categoricals + from pandas.api.types import union_categoricals a = pd.Categorical(["b", "c"]) b = pd.Categorical(["a", "b"]) union_categoricals([a, b]) diff --git a/doc/source/whatsnew/v0.20.0.txt b/doc/source/whatsnew/v0.20.0.txt index 1c7de8693d741..98d349f28b700 100644 --- a/doc/source/whatsnew/v0.20.0.txt +++ b/doc/source/whatsnew/v0.20.0.txt @@ -489,7 +489,7 @@ Other Enhancements - ``TimedeltaIndex`` now has a custom datetick formatter specifically designed for nanosecond level precision (:issue:`8711`) -- ``pd.types.concat.union_categoricals`` gained the ``ignore_ordered`` argument to allow ignoring the ordered attribute of unioned categoricals (:issue:`13410`). See the :ref:`categorical union docs ` for more information. +- ``pd.api.types.union_categoricals`` gained the ``ignore_ordered`` argument to allow ignoring the ordered attribute of unioned categoricals (:issue:`13410`). See the :ref:`categorical union docs ` for more information. - ``DataFrame.to_latex()`` and ``DataFrame.to_string()`` now allow optional header aliases. (:issue:`15536`) - Re-enable the ``parse_dates`` keyword of ``pd.read_excel()`` to parse string columns as dates (:issue:`14326`) - Added ``.empty`` property to subclasses of ``Index``. (:issue:`15270`) @@ -1057,6 +1057,8 @@ If indicated, a deprecation warning will be issued if you reference that module. "pandas._hash", "pandas.tools.libhash", "" "pandas._window", "pandas.core.libwindow", "" +- The function :func:`~pandas.api.type.union_categoricals` is now importable from ``pandas.api.types``, formerly from ``pandas.types.concat`` (:issue:`15998`) + .. _whatsnew_0200.api_breaking.sort_index: DataFrame.sort_index changes diff --git a/pandas/api/types/__init__.py b/pandas/api/types/__init__.py index 5d21e721a1ac6..0b625ec3c422a 100644 --- a/pandas/api/types/__init__.py +++ b/pandas/api/types/__init__.py @@ -1,4 +1,5 @@ """ public toolkit API """ from pandas.core.typed.api import * # noqa +from pandas.core.typed.concat import union_categoricals # noqa del np # noqa diff --git a/pandas/core/algorithms.py b/pandas/core/algorithms.py index 121ba8c12283c..c06399e09cda5 100644 --- a/pandas/core/algorithms.py +++ b/pandas/core/algorithms.py @@ -28,7 +28,7 @@ from pandas.compat.numpy import _np_version_under1p10 from pandas.core.typed.missing import isnull -import pandas.core.common as com +from pandas.core import common as com from pandas.compat import string_types from pandas._libs import algos, lib, hashtable as htable from pandas._libs.tslib import iNaT diff --git a/pandas/core/common.py b/pandas/core/common.py index 1d200ce117f94..62d152c731bc1 100644 --- a/pandas/core/common.py +++ b/pandas/core/common.py @@ -60,7 +60,7 @@ def wrapper(*args, **kwargs): warnings.warn("pandas.core.common.{t} is deprecated. " "These are not longer public API functions, " "but can be imported from " - "pandas.core.typed.common.{t} instead".format(t=t), + "pandas.api.types.{t} instead".format(t=t), DeprecationWarning, stacklevel=3) return getattr(common, t)(*args, **kwargs) return wrapper diff --git a/pandas/core/series.py b/pandas/core/series.py index fc7e5250d4cbf..3b8d690122c22 100644 --- a/pandas/core/series.py +++ b/pandas/core/series.py @@ -2869,8 +2869,6 @@ def _sanitize_index(data, index, copy=False): data = data.asobject elif isinstance(data, DatetimeIndex): data = data._to_embed(keep_tz=True) - if copy: - data = data.copy() elif isinstance(data, np.ndarray): # coerce datetimelike types diff --git a/pandas/core/typed/concat.py b/pandas/core/typed/concat.py index 604663e327fd7..44920556b31d7 100644 --- a/pandas/core/typed/concat.py +++ b/pandas/core/typed/concat.py @@ -5,18 +5,18 @@ import numpy as np import pandas._libs.tslib as tslib from pandas import compat -from pandas.core.algorithms import take_1d -from .common import (is_categorical_dtype, - is_sparse, - is_datetimetz, - is_datetime64_dtype, - is_timedelta64_dtype, - is_period_dtype, - is_object_dtype, - is_bool_dtype, - is_dtype_equal, - _NS_DTYPE, - _TD_DTYPE) +from pandas.core.typed.common import ( + is_categorical_dtype, + is_sparse, + is_datetimetz, + is_datetime64_dtype, + is_timedelta64_dtype, + is_period_dtype, + is_object_dtype, + is_bool_dtype, + is_dtype_equal, + _NS_DTYPE, + _TD_DTYPE) from pandas.core.typed.generic import ( ABCDatetimeIndex, ABCTimedeltaIndex, ABCPeriodIndex) @@ -277,6 +277,8 @@ def _maybe_unwrap(x): if sort_categories and not categories.is_monotonic_increasing: categories = categories.sort_values() indexer = categories.get_indexer(first.categories) + + from pandas.core.algorithms import take_1d new_codes = take_1d(indexer, new_codes, fill_value=-1) elif ignore_order or all(not c.ordered for c in to_union): # different categories - union and recode @@ -289,6 +291,8 @@ def _maybe_unwrap(x): for c in to_union: if len(c.categories) > 0: indexer = categories.get_indexer(c.categories) + + from pandas.core.algorithms import take_1d new_codes.append(take_1d(indexer, c.codes, fill_value=-1)) else: # must be all NaN diff --git a/pandas/core/typed/dtypes.py b/pandas/core/typed/dtypes.py index d76979a98e5d2..306bbae53c9ae 100644 --- a/pandas/core/typed/dtypes.py +++ b/pandas/core/typed/dtypes.py @@ -209,8 +209,15 @@ def __new__(cls, unit=None, tz=None): raise ValueError("DatetimeTZDtype constructor must have a tz " "supplied") + # hash with the actual tz if we can + # some cannot be hashed, so stringfy + try: + key = (unit, tz) + hash(key) + except TypeError: + key = (unit, str(tz)) + # set/retrieve from cache - key = (unit, str(tz)) try: return cls._cache[key] except KeyError: diff --git a/pandas/tests/api/test_lib.py b/pandas/tests/api/test_lib.py deleted file mode 100644 index db2c68c6197d7..0000000000000 --- a/pandas/tests/api/test_lib.py +++ /dev/null @@ -1,10 +0,0 @@ -# -*- coding: utf-8 -*- - -from warnings import catch_warnings -import pandas # noqa - - -def test_moved_infer_dtype(): - with catch_warnings(record=True): - e = pandas.lib.infer_dtype('foo') - assert e is not None diff --git a/pandas/tests/api/test_types.py b/pandas/tests/api/test_types.py index 12d08ff0fd4fa..61b735a8e96e5 100644 --- a/pandas/tests/api/test_types.py +++ b/pandas/tests/api/test_types.py @@ -1,7 +1,9 @@ # -*- coding: utf-8 -*- +from warnings import catch_warnings import numpy as np +import pandas from pandas.core import common as com from pandas.api import types from pandas.util import testing as tm @@ -28,7 +30,7 @@ class TestTypes(Base, tm.TestCase): 'is_dict_like', 'is_iterator', 'is_file_like', 'is_list_like', 'is_hashable', 'is_named_tuple', 'is_sequence', - 'pandas_dtype'] + 'pandas_dtype', 'union_categoricals'] def test_types(self): @@ -82,3 +84,10 @@ def test_removed_from_core_common(self): for t in ['is_null_datelike_scalar', 'ensure_float']: self.assertRaises(AttributeError, lambda: getattr(com, t)) + + +def test_moved_infer_dtype(): + + with catch_warnings(record=True): + e = pandas.lib.infer_dtype('foo') + assert e is not None diff --git a/pandas/tests/indexes/datetimes/test_construction.py b/pandas/tests/indexes/datetimes/test_construction.py index 16881de6e8c39..d4e672d0584cf 100644 --- a/pandas/tests/indexes/datetimes/test_construction.py +++ b/pandas/tests/indexes/datetimes/test_construction.py @@ -12,21 +12,36 @@ class TestDatetimeIndex(tm.TestCase): + def test_construction_caching(self): + + df = pd.DataFrame({'dt': pd.date_range('20130101', periods=3), + 'dttz': pd.date_range('20130101', periods=3, + tz='US/Eastern'), + 'dt_with_null': [pd.Timestamp('20130101'), pd.NaT, + pd.Timestamp('20130103')], + 'dtns': pd.date_range('20130101', periods=3, + freq='ns')}) + assert df.dttz.dtype.tz.zone == 'US/Eastern' + def test_construction_with_alt(self): i = pd.date_range('20130101', periods=5, freq='H', tz='US/Eastern') i2 = DatetimeIndex(i, dtype=i.dtype) self.assert_index_equal(i, i2) + assert i.tz.zone == 'US/Eastern' i2 = DatetimeIndex(i.tz_localize(None).asi8, tz=i.dtype.tz) self.assert_index_equal(i, i2) + assert i.tz.zone == 'US/Eastern' i2 = DatetimeIndex(i.tz_localize(None).asi8, dtype=i.dtype) self.assert_index_equal(i, i2) + assert i.tz.zone == 'US/Eastern' i2 = DatetimeIndex( i.tz_localize(None).asi8, dtype=i.dtype, tz=i.dtype.tz) self.assert_index_equal(i, i2) + assert i.tz.zone == 'US/Eastern' # localize into the provided tz i2 = DatetimeIndex(i.tz_localize(None).asi8, tz='UTC') diff --git a/pandas/tests/io/test_feather.py b/pandas/tests/io/test_feather.py index 3fad2637ef057..232bb126d9d67 100644 --- a/pandas/tests/io/test_feather.py +++ b/pandas/tests/io/test_feather.py @@ -11,6 +11,7 @@ from pandas.util.testing import assert_frame_equal, ensure_clean +@pytest.mark.single class TestFeather(object): def check_error_on_write(self, df, exc): @@ -52,6 +53,7 @@ def test_basic(self): 'dtns': pd.date_range('20130101', periods=3, freq='ns')}) + assert df.dttz.dtype.tz.zone == 'US/Eastern' self.check_round_trip(df) def test_strided_data_issues(self): diff --git a/setup.py b/setup.py index cf89a9970435a..bc320f7942294 100755 --- a/setup.py +++ b/setup.py @@ -636,7 +636,6 @@ def pxd(name): packages=['pandas', 'pandas.api', 'pandas.api.types', - 'pandas.api.lib', 'pandas.compat', 'pandas.compat.numpy', 'pandas.core', From 221a7b5200885b370788d8537d65b6097f201590 Mon Sep 17 00:00:00 2001 From: Jeff Reback Date: Sat, 15 Apr 2017 10:15:53 -0400 Subject: [PATCH 04/11] rename .typed -> .dtypes --- asv_bench/benchmarks/categoricals.py | 2 +- pandas/api/types/__init__.py | 4 ++-- pandas/compat/numpy/function.py | 2 +- pandas/core/algorithms.py | 8 ++++---- pandas/core/api.py | 2 +- pandas/core/base.py | 8 ++++---- pandas/core/categorical.py | 12 ++++++------ pandas/core/common.py | 12 ++++++------ pandas/core/computation/ops.py | 2 +- pandas/core/computation/pytables.py | 2 +- pandas/core/config_init.py | 2 +- pandas/core/{typed => dtypes}/__init__.py | 0 pandas/core/{typed => dtypes}/api.py | 0 pandas/core/{typed => dtypes}/cast.py | 0 pandas/core/{typed => dtypes}/common.py | 0 pandas/core/{typed => dtypes}/concat.py | 4 ++-- pandas/core/{typed => dtypes}/dtypes.py | 2 +- pandas/core/{typed => dtypes}/generic.py | 0 pandas/core/{typed => dtypes}/inference.py | 0 pandas/core/{typed => dtypes}/missing.py | 0 pandas/core/frame.py | 6 +++--- pandas/core/generic.py | 8 ++++---- pandas/core/groupby.py | 8 ++++---- pandas/core/indexing.py | 6 +++--- pandas/core/internals.py | 12 ++++++------ pandas/core/missing.py | 6 +++--- pandas/core/nanops.py | 6 +++--- pandas/core/ops.py | 8 ++++---- pandas/core/panel.py | 6 +++--- pandas/core/reshape.py | 8 ++++---- pandas/core/series.py | 8 ++++---- pandas/core/sorting.py | 4 ++-- pandas/core/strings.py | 6 +++--- pandas/core/window.py | 4 ++-- pandas/formats/format.py | 6 +++--- pandas/formats/printing.py | 2 +- pandas/formats/style.py | 2 +- pandas/indexes/base.py | 8 ++++---- pandas/indexes/category.py | 6 +++--- pandas/indexes/frozen.py | 2 +- pandas/indexes/interval.py | 8 ++++---- pandas/indexes/multi.py | 4 ++-- pandas/indexes/numeric.py | 2 +- pandas/indexes/range.py | 2 +- pandas/io/common.py | 2 +- pandas/io/excel.py | 2 +- pandas/io/html.py | 2 +- pandas/io/json/json.py | 2 +- pandas/io/json/table_schema.py | 2 +- pandas/io/packers.py | 2 +- pandas/io/parsers.py | 6 +++--- pandas/io/parsers.pyx | 4 ++-- pandas/io/pickle.py | 2 +- pandas/io/pytables.py | 4 ++-- pandas/io/sql.py | 6 +++--- pandas/io/stata.py | 2 +- pandas/sparse/array.py | 8 ++++---- pandas/sparse/frame.py | 6 +++--- pandas/sparse/list.py | 2 +- pandas/sparse/series.py | 4 ++-- pandas/stats/moments.py | 2 +- pandas/tests/api/test_types.py | 4 ++-- pandas/tests/core/computation/test_eval.py | 2 +- pandas/tests/core/{typed => dtypes}/__init__.py | 0 pandas/tests/core/{typed => dtypes}/test_cast.py | 4 ++-- pandas/tests/core/{typed => dtypes}/test_common.py | 8 ++++---- pandas/tests/core/{typed => dtypes}/test_concat.py | 2 +- pandas/tests/core/{typed => dtypes}/test_dtypes.py | 4 ++-- pandas/tests/core/{typed => dtypes}/test_generic.py | 2 +- .../tests/core/{typed => dtypes}/test_inference.py | 6 +++--- pandas/tests/core/{typed => dtypes}/test_io.py | 0 pandas/tests/core/{typed => dtypes}/test_missing.py | 4 ++-- pandas/tests/frame/test_alter_axes.py | 2 +- pandas/tests/frame/test_apply.py | 2 +- pandas/tests/frame/test_constructors.py | 2 +- pandas/tests/frame/test_dtypes.py | 2 +- pandas/tests/frame/test_indexing.py | 2 +- pandas/tests/groupby/test_bin_groupby.py | 2 +- pandas/tests/groupby/test_transform.py | 3 ++- pandas/tests/indexes/common.py | 2 +- pandas/tests/indexes/datetimes/test_tools.py | 2 +- pandas/tests/indexing/common.py | 2 +- pandas/tests/indexing/test_indexing.py | 2 +- pandas/tests/indexing/test_ix.py | 2 +- pandas/tests/io/json/test_json_table_schema.py | 2 +- pandas/tests/io/parser/dtypes.py | 2 +- pandas/tests/io/test_sql.py | 2 +- pandas/tests/io/test_stata.py | 2 +- pandas/tests/plotting/common.py | 2 +- pandas/tests/plotting/test_frame.py | 2 +- pandas/tests/series/test_constructors.py | 2 +- pandas/tests/series/test_datetime_values.py | 2 +- pandas/tests/series/test_indexing.py | 2 +- pandas/tests/series/test_quantile.py | 2 +- pandas/tests/sparse/test_frame.py | 2 +- pandas/tests/test_base.py | 2 +- pandas/tests/test_categorical.py | 4 ++-- pandas/tests/test_generic.py | 2 +- pandas/tests/test_multilevel.py | 2 +- pandas/tests/test_nanops.py | 2 +- pandas/tests/test_panel.py | 2 +- pandas/tests/test_panel4d.py | 2 +- pandas/tests/tools/test_merge.py | 4 ++-- pandas/tests/tools/test_union_categoricals.py | 2 +- pandas/tests/tseries/test_resample.py | 2 +- pandas/tests/tseries/test_timezones.py | 2 +- pandas/tools/concat.py | 2 +- pandas/tools/hashing.py | 9 +++++---- pandas/tools/merge.py | 4 ++-- pandas/tools/pivot.py | 2 +- pandas/tools/tile.py | 4 ++-- pandas/tools/util.py | 4 ++-- pandas/tseries/base.py | 8 ++++---- pandas/tseries/common.py | 2 +- pandas/tseries/frequencies.py | 4 ++-- pandas/tseries/index.py | 10 +++++----- pandas/tseries/offsets.py | 2 +- pandas/tseries/period.py | 6 +++--- pandas/tseries/tdi.py | 8 ++++---- pandas/tseries/timedeltas.py | 4 ++-- pandas/tseries/tools.py | 6 +++--- pandas/tseries/util.py | 2 +- pandas/util/testing.py | 4 ++-- pandas/util/testing.pyx | 4 ++-- pandas/util/validators.py | 2 +- setup.py | 2 +- 126 files changed, 229 insertions(+), 227 deletions(-) rename pandas/core/{typed => dtypes}/__init__.py (100%) rename pandas/core/{typed => dtypes}/api.py (100%) rename pandas/core/{typed => dtypes}/cast.py (100%) rename pandas/core/{typed => dtypes}/common.py (100%) rename pandas/core/{typed => dtypes}/concat.py (99%) rename pandas/core/{typed => dtypes}/dtypes.py (99%) rename pandas/core/{typed => dtypes}/generic.py (100%) rename pandas/core/{typed => dtypes}/inference.py (100%) rename pandas/core/{typed => dtypes}/missing.py (100%) rename pandas/tests/core/{typed => dtypes}/__init__.py (100%) rename pandas/tests/core/{typed => dtypes}/test_cast.py (99%) rename pandas/tests/core/{typed => dtypes}/test_common.py (95%) rename pandas/tests/core/{typed => dtypes}/test_concat.py (98%) rename pandas/tests/core/{typed => dtypes}/test_dtypes.py (99%) rename pandas/tests/core/{typed => dtypes}/test_generic.py (97%) rename pandas/tests/core/{typed => dtypes}/test_inference.py (99%) rename pandas/tests/core/{typed => dtypes}/test_io.py (100%) rename pandas/tests/core/{typed => dtypes}/test_missing.py (99%) diff --git a/asv_bench/benchmarks/categoricals.py b/asv_bench/benchmarks/categoricals.py index 29ebc732f97f4..5b0dd126acdea 100644 --- a/asv_bench/benchmarks/categoricals.py +++ b/asv_bench/benchmarks/categoricals.py @@ -1,6 +1,6 @@ from .pandas_vb_common import * try: - from pandas.core.typed.concat import union_categoricals + from pandas.core.dtypes.concat import union_categoricals except ImportError: pass diff --git a/pandas/api/types/__init__.py b/pandas/api/types/__init__.py index 0b625ec3c422a..06fb5742ba067 100644 --- a/pandas/api/types/__init__.py +++ b/pandas/api/types/__init__.py @@ -1,5 +1,5 @@ """ public toolkit API """ -from pandas.core.typed.api import * # noqa -from pandas.core.typed.concat import union_categoricals # noqa +from pandas.core.dtypes.api import * # noqa +from pandas.core.dtypes.concat import union_categoricals # noqa del np # noqa diff --git a/pandas/compat/numpy/function.py b/pandas/compat/numpy/function.py index a528f135319fe..d707ac66c4eab 100644 --- a/pandas/compat/numpy/function.py +++ b/pandas/compat/numpy/function.py @@ -22,7 +22,7 @@ from pandas.util.validators import (validate_args, validate_kwargs, validate_args_and_kwargs) from pandas.errors import UnsupportedFunctionCall -from pandas.core.typed.common import is_integer, is_bool +from pandas.core.dtypes.common import is_integer, is_bool from pandas.compat import OrderedDict diff --git a/pandas/core/algorithms.py b/pandas/core/algorithms.py index c06399e09cda5..6df7fce631a3c 100644 --- a/pandas/core/algorithms.py +++ b/pandas/core/algorithms.py @@ -7,11 +7,11 @@ import numpy as np from pandas import compat, _np_version_under1p8 -from pandas.core.typed.cast import maybe_promote -from pandas.core.typed.generic import ( +from pandas.core.dtypes.cast import maybe_promote +from pandas.core.dtypes.generic import ( ABCSeries, ABCIndex, ABCIndexClass, ABCCategorical) -from pandas.core.typed.common import ( +from pandas.core.dtypes.common import ( is_unsigned_integer_dtype, is_signed_integer_dtype, is_integer_dtype, is_complex_dtype, is_categorical_dtype, is_sparse, @@ -26,7 +26,7 @@ _ensure_float64, _ensure_uint64, _ensure_int64) from pandas.compat.numpy import _np_version_under1p10 -from pandas.core.typed.missing import isnull +from pandas.core.dtypes.missing import isnull from pandas.core import common as com from pandas.compat import string_types diff --git a/pandas/core/api.py b/pandas/core/api.py index 8b300529e204d..8e8969e1f6b26 100644 --- a/pandas/core/api.py +++ b/pandas/core/api.py @@ -5,7 +5,7 @@ import numpy as np from pandas.core.algorithms import factorize, unique, value_counts -from pandas.core.typed.missing import isnull, notnull +from pandas.core.dtypes.missing import isnull, notnull from pandas.core.categorical import Categorical from pandas.core.groupby import Grouper from pandas.formats.format import set_eng_float_format diff --git a/pandas/core/base.py b/pandas/core/base.py index 1c42c53c20378..e30751a6582f9 100644 --- a/pandas/core/base.py +++ b/pandas/core/base.py @@ -6,9 +6,9 @@ from pandas.compat import builtins import numpy as np -from pandas.core.typed.missing import isnull -from pandas.core.typed.generic import ABCDataFrame, ABCSeries, ABCIndexClass -from pandas.core.typed.common import is_object_dtype, is_list_like, is_scalar +from pandas.core.dtypes.missing import isnull +from pandas.core.dtypes.generic import ABCDataFrame, ABCSeries, ABCIndexClass +from pandas.core.dtypes.common import is_object_dtype, is_list_like, is_scalar from pandas.util.validators import validate_bool_kwarg from pandas.core import common as com @@ -725,7 +725,7 @@ def _aggregate_multiple_funcs(self, arg, _level, _axis): # we are concatting non-NDFrame objects, # e.g. a list of scalars - from pandas.core.typed.cast import is_nested_object + from pandas.core.dtypes.cast import is_nested_object from pandas import Series result = Series(results, index=keys, name=self.name) if is_nested_object(result): diff --git a/pandas/core/categorical.py b/pandas/core/categorical.py index 36a19e96ef292..d1f060113cf1d 100644 --- a/pandas/core/categorical.py +++ b/pandas/core/categorical.py @@ -8,14 +8,14 @@ from pandas.compat import u, lzip from pandas._libs import lib, algos as libalgos -from pandas.core.typed.generic import ( +from pandas.core.dtypes.generic import ( ABCSeries, ABCIndexClass, ABCCategoricalIndex) -from pandas.core.typed.missing import isnull, notnull -from pandas.core.typed.cast import ( +from pandas.core.dtypes.missing import isnull, notnull +from pandas.core.dtypes.cast import ( maybe_infer_to_datetimelike, coerce_indexer_dtype) -from pandas.core.typed.dtypes import CategoricalDtype -from pandas.core.typed.common import ( +from pandas.core.dtypes.dtypes import CategoricalDtype +from pandas.core.dtypes.common import ( _ensure_int64, _ensure_object, _ensure_platform_int, @@ -1218,7 +1218,7 @@ def value_counts(self, dropna=True): """ from numpy import bincount - from pandas.core.typed.missing import isnull + from pandas.core.dtypes.missing import isnull from pandas.core.series import Series from pandas.core.index import CategoricalIndex diff --git a/pandas/core/common.py b/pandas/core/common.py index 62d152c731bc1..39a5da0aa6912 100644 --- a/pandas/core/common.py +++ b/pandas/core/common.py @@ -13,12 +13,12 @@ from pandas import compat from pandas.compat import long, zip, iteritems from pandas.core.config import get_option -from pandas.core.typed.generic import ABCSeries -from pandas.core.typed.common import _NS_DTYPE -from pandas.core.typed.inference import _iterable_not_string -from pandas.core.typed.missing import isnull +from pandas.core.dtypes.generic import ABCSeries +from pandas.core.dtypes.common import _NS_DTYPE +from pandas.core.dtypes.inference import _iterable_not_string +from pandas.core.dtypes.missing import isnull from pandas.api import types -from pandas.core.typed import common +from pandas.core.dtypes import common # compat from pandas.errors import ( # noqa @@ -73,7 +73,7 @@ def wrapper(*args, **kwargs): def array_equivalent(*args, **kwargs): warnings.warn("'pandas.core.common.array_equivalent' is deprecated and " "is no longer public API", DeprecationWarning, stacklevel=2) - from pandas.core.typed import missing + from pandas.core.dtypes import missing return missing.array_equivalent(*args, **kwargs) diff --git a/pandas/core/computation/ops.py b/pandas/core/computation/ops.py index 2415791a85060..91c414bbc0ec1 100644 --- a/pandas/core/computation/ops.py +++ b/pandas/core/computation/ops.py @@ -7,7 +7,7 @@ import numpy as np -from pandas.core.typed.common import is_list_like, is_scalar +from pandas.core.dtypes.common import is_list_like, is_scalar import pandas as pd from pandas.compat import PY3, string_types, text_type import pandas.core.common as com diff --git a/pandas/core/computation/pytables.py b/pandas/core/computation/pytables.py index 49bd7a2291df8..8d0f23e28c0a2 100644 --- a/pandas/core/computation/pytables.py +++ b/pandas/core/computation/pytables.py @@ -5,7 +5,7 @@ import numpy as np import pandas as pd -from pandas.core.typed.common import is_list_like +from pandas.core.dtypes.common import is_list_like import pandas.core.common as com from pandas.compat import u, string_types, DeepChainMap from pandas.core.base import StringMixin diff --git a/pandas/core/config_init.py b/pandas/core/config_init.py index 855ce9fd83dae..7307980c8312e 100644 --- a/pandas/core/config_init.py +++ b/pandas/core/config_init.py @@ -415,7 +415,7 @@ def mpl_style_cb(key): def use_inf_as_null_cb(key): - from pandas.core.typed.missing import _use_inf_as_null + from pandas.core.dtypes.missing import _use_inf_as_null _use_inf_as_null(key) diff --git a/pandas/core/typed/__init__.py b/pandas/core/dtypes/__init__.py similarity index 100% rename from pandas/core/typed/__init__.py rename to pandas/core/dtypes/__init__.py diff --git a/pandas/core/typed/api.py b/pandas/core/dtypes/api.py similarity index 100% rename from pandas/core/typed/api.py rename to pandas/core/dtypes/api.py diff --git a/pandas/core/typed/cast.py b/pandas/core/dtypes/cast.py similarity index 100% rename from pandas/core/typed/cast.py rename to pandas/core/dtypes/cast.py diff --git a/pandas/core/typed/common.py b/pandas/core/dtypes/common.py similarity index 100% rename from pandas/core/typed/common.py rename to pandas/core/dtypes/common.py diff --git a/pandas/core/typed/concat.py b/pandas/core/dtypes/concat.py similarity index 99% rename from pandas/core/typed/concat.py rename to pandas/core/dtypes/concat.py index 44920556b31d7..56d24e411325e 100644 --- a/pandas/core/typed/concat.py +++ b/pandas/core/dtypes/concat.py @@ -5,7 +5,7 @@ import numpy as np import pandas._libs.tslib as tslib from pandas import compat -from pandas.core.typed.common import ( +from pandas.core.dtypes.common import ( is_categorical_dtype, is_sparse, is_datetimetz, @@ -17,7 +17,7 @@ is_dtype_equal, _NS_DTYPE, _TD_DTYPE) -from pandas.core.typed.generic import ( +from pandas.core.dtypes.generic import ( ABCDatetimeIndex, ABCTimedeltaIndex, ABCPeriodIndex) diff --git a/pandas/core/typed/dtypes.py b/pandas/core/dtypes/dtypes.py similarity index 99% rename from pandas/core/typed/dtypes.py rename to pandas/core/dtypes/dtypes.py index 306bbae53c9ae..59c23addd418e 100644 --- a/pandas/core/typed/dtypes.py +++ b/pandas/core/dtypes/dtypes.py @@ -417,7 +417,7 @@ def __new__(cls, subtype=None): if m is not None: subtype = m.group('subtype') - from pandas.core.typed.common import pandas_dtype + from pandas.core.dtypes.common import pandas_dtype try: subtype = pandas_dtype(subtype) except TypeError: diff --git a/pandas/core/typed/generic.py b/pandas/core/dtypes/generic.py similarity index 100% rename from pandas/core/typed/generic.py rename to pandas/core/dtypes/generic.py diff --git a/pandas/core/typed/inference.py b/pandas/core/dtypes/inference.py similarity index 100% rename from pandas/core/typed/inference.py rename to pandas/core/dtypes/inference.py diff --git a/pandas/core/typed/missing.py b/pandas/core/dtypes/missing.py similarity index 100% rename from pandas/core/typed/missing.py rename to pandas/core/dtypes/missing.py diff --git a/pandas/core/frame.py b/pandas/core/frame.py index f7ec81feed7ae..4bcd706dfdd59 100644 --- a/pandas/core/frame.py +++ b/pandas/core/frame.py @@ -23,7 +23,7 @@ import numpy as np import numpy.ma as ma -from pandas.core.typed.cast import ( +from pandas.core.dtypes.cast import ( maybe_upcast, infer_dtype_from_scalar, maybe_cast_to_datetime, maybe_infer_to_datetimelike, @@ -33,7 +33,7 @@ coerce_to_dtypes, maybe_upcast_putmask, find_common_type) -from pandas.core.typed.common import ( +from pandas.core.dtypes.common import ( is_categorical_dtype, is_object_dtype, is_extension_type, @@ -56,7 +56,7 @@ is_iterator, is_sequence, is_named_tuple) -from pandas.core.typed.missing import isnull, notnull +from pandas.core.dtypes.missing import isnull, notnull from pandas.core.common import (_try_sort, _default_index, diff --git a/pandas/core/generic.py b/pandas/core/generic.py index ba5724246c5bf..167af8dfc0d8e 100644 --- a/pandas/core/generic.py +++ b/pandas/core/generic.py @@ -10,7 +10,7 @@ import pandas as pd from pandas._libs import tslib, lib -from pandas.core.typed.common import ( +from pandas.core.dtypes.common import ( _coerce_to_dtype, _ensure_int64, needs_i8_conversion, @@ -24,9 +24,9 @@ is_list_like, is_dict_like, is_re_compilable) -from pandas.core.typed.cast import maybe_promote, maybe_upcast_putmask -from pandas.core.typed.missing import isnull, notnull -from pandas.core.typed.generic import ABCSeries, ABCPanel +from pandas.core.dtypes.cast import maybe_promote, maybe_upcast_putmask +from pandas.core.dtypes.missing import isnull, notnull +from pandas.core.dtypes.generic import ABCSeries, ABCPanel from pandas.core.common import (_values_from_object, _maybe_box_datetimelike, diff --git a/pandas/core/groupby.py b/pandas/core/groupby.py index 17d8ea99211b3..2cbcb9ef6efec 100644 --- a/pandas/core/groupby.py +++ b/pandas/core/groupby.py @@ -15,7 +15,7 @@ from pandas.compat.numpy import function as nv, _np_version_under1p8 from pandas.compat import set_function_name -from pandas.core.typed.common import ( +from pandas.core.dtypes.common import ( is_numeric_dtype, is_timedelta64_dtype, is_datetime64_dtype, is_categorical_dtype, @@ -34,8 +34,8 @@ _ensure_object, _ensure_categorical, _ensure_float) -from pandas.core.typed.cast import maybe_downcast_to_dtype -from pandas.core.typed.missing import isnull, notnull, _maybe_fill +from pandas.core.dtypes.cast import maybe_downcast_to_dtype +from pandas.core.dtypes.missing import isnull, notnull, _maybe_fill from pandas.core.common import (_values_from_object, AbstractMethodError, _default_index) @@ -4080,7 +4080,7 @@ def _apply_to_column_groupbys(self, func): def count(self): """ Compute count of group, excluding missing values """ from functools import partial - from pandas.core.typed.missing import _isnull_ndarraylike as isnull + from pandas.core.dtypes.missing import _isnull_ndarraylike as isnull data, _ = self._get_data_to_aggregate() ids, _, ngroups = self.grouper.group_info diff --git a/pandas/core/indexing.py b/pandas/core/indexing.py index edcbc57e761a8..a01e3dc46dfe9 100755 --- a/pandas/core/indexing.py +++ b/pandas/core/indexing.py @@ -4,8 +4,8 @@ import numpy as np from pandas.compat import range, zip import pandas.compat as compat -from pandas.core.typed.generic import ABCDataFrame, ABCPanel, ABCSeries -from pandas.core.typed.common import ( +from pandas.core.dtypes.generic import ABCDataFrame, ABCPanel, ABCSeries +from pandas.core.dtypes.common import ( is_integer_dtype, is_integer, is_float, is_list_like, @@ -15,7 +15,7 @@ is_sparse, _is_unorderable_exception, _ensure_platform_int) -from pandas.core.typed.missing import isnull, _infer_fill_value +from pandas.core.dtypes.missing import isnull, _infer_fill_value from pandas.core.index import Index, MultiIndex diff --git a/pandas/core/internals.py b/pandas/core/internals.py index bca52971b1ec7..d3eb3516c53e7 100644 --- a/pandas/core/internals.py +++ b/pandas/core/internals.py @@ -9,10 +9,10 @@ from pandas.core.base import PandasObject -from pandas.core.typed.dtypes import ( +from pandas.core.dtypes.dtypes import ( ExtensionDtype, DatetimeTZDtype, CategoricalDtype) -from pandas.core.typed.common import ( +from pandas.core.dtypes.common import ( _TD_DTYPE, _NS_DTYPE, _ensure_int64, _ensure_platform_int, is_integer, @@ -31,7 +31,7 @@ is_re_compilable, is_scalar, _get_dtype) -from pandas.core.typed.cast import ( +from pandas.core.dtypes.cast import ( maybe_downcast_to_dtype, maybe_convert_string_to_object, maybe_upcast, @@ -41,13 +41,13 @@ maybe_convert_objects, astype_nansafe, find_common_type) -from pandas.core.typed.missing import ( +from pandas.core.dtypes.missing import ( isnull, array_equivalent, _is_na_compat, is_null_datelike_scalar) -import pandas.core.typed.concat as _concat +import pandas.core.dtypes.concat as _concat -from pandas.core.typed.generic import ABCSeries +from pandas.core.dtypes.generic import ABCSeries from pandas.core.common import is_null_slice import pandas.core.algorithms as algos diff --git a/pandas/core/missing.py b/pandas/core/missing.py index dfd9b3d529cf8..3010348423340 100644 --- a/pandas/core/missing.py +++ b/pandas/core/missing.py @@ -8,7 +8,7 @@ from pandas._libs import algos, lib from pandas.compat import range, string_types -from pandas.core.typed.common import ( +from pandas.core.dtypes.common import ( is_numeric_v_string_like, is_float_dtype, is_datetime64_dtype, @@ -19,8 +19,8 @@ needs_i8_conversion, _ensure_float64) -from pandas.core.typed.cast import infer_dtype_from_array -from pandas.core.typed.missing import isnull +from pandas.core.dtypes.cast import infer_dtype_from_array +from pandas.core.dtypes.missing import isnull def mask_missing(arr, values_to_mask): diff --git a/pandas/core/nanops.py b/pandas/core/nanops.py index ef53b7dedd79c..5ce302967de24 100644 --- a/pandas/core/nanops.py +++ b/pandas/core/nanops.py @@ -11,7 +11,7 @@ from pandas import compat from pandas._libs import tslib, algos, lib -from pandas.core.typed.common import ( +from pandas.core.dtypes.common import ( _get_dtype, is_float, is_scalar, is_integer, is_complex, is_float_dtype, @@ -21,8 +21,8 @@ is_datetime64_dtype, is_timedelta64_dtype, is_datetime_or_timedelta_dtype, is_int_or_datetime_dtype, is_any_int_dtype) -from pandas.core.typed.cast import _int64_max, maybe_upcast_putmask -from pandas.core.typed.missing import isnull, notnull +from pandas.core.dtypes.cast import _int64_max, maybe_upcast_putmask +from pandas.core.dtypes.missing import isnull, notnull from pandas.core.common import _values_from_object diff --git a/pandas/core/ops.py b/pandas/core/ops.py index bc99ffa305786..50815498f40df 100644 --- a/pandas/core/ops.py +++ b/pandas/core/ops.py @@ -23,8 +23,8 @@ from pandas.errors import PerformanceWarning from pandas.core.common import _values_from_object, _maybe_match_name -from pandas.core.typed.missing import notnull, isnull -from pandas.core.typed.common import ( +from pandas.core.dtypes.missing import notnull, isnull +from pandas.core.dtypes.common import ( needs_i8_conversion, is_datetimelike_v_numeric, is_integer_dtype, is_categorical_dtype, @@ -34,8 +34,8 @@ is_list_like, is_scalar, _ensure_object) -from pandas.core.typed.cast import maybe_upcast_putmask, find_common_type -from pandas.core.typed.generic import ABCSeries, ABCIndex, ABCPeriodIndex +from pandas.core.dtypes.cast import maybe_upcast_putmask, find_common_type +from pandas.core.dtypes.generic import ABCSeries, ABCIndex, ABCPeriodIndex # ----------------------------------------------------------------------------- # Functions that add arithmetic methods to objects, given arithmetic factory diff --git a/pandas/core/panel.py b/pandas/core/panel.py index 1efbdc0d9d9de..76053b3bdb83d 100644 --- a/pandas/core/panel.py +++ b/pandas/core/panel.py @@ -6,13 +6,13 @@ import numpy as np import warnings -from pandas.core.typed.cast import ( +from pandas.core.dtypes.cast import ( infer_dtype_from_scalar, maybe_cast_item) -from pandas.core.typed.common import ( +from pandas.core.dtypes.common import ( is_integer, is_list_like, is_string_like, is_scalar) -from pandas.core.typed.missing import notnull +from pandas.core.dtypes.missing import notnull import pandas.core.computation.expressions as expressions import pandas.core.common as com diff --git a/pandas/core/reshape.py b/pandas/core/reshape.py index b5615d094b12e..6c1abac8fbff5 100644 --- a/pandas/core/reshape.py +++ b/pandas/core/reshape.py @@ -7,13 +7,13 @@ import numpy as np -from pandas.core.typed.common import ( +from pandas.core.dtypes.common import ( _ensure_platform_int, is_list_like, is_bool_dtype, needs_i8_conversion) -from pandas.core.typed.cast import maybe_promote -from pandas.core.typed.missing import notnull -import pandas.core.typed.concat as _concat +from pandas.core.dtypes.cast import maybe_promote +from pandas.core.dtypes.missing import notnull +import pandas.core.dtypes.concat as _concat from pandas.core.series import Series from pandas.core.frame import DataFrame diff --git a/pandas/core/series.py b/pandas/core/series.py index 3b8d690122c22..d90abcb07a3b0 100644 --- a/pandas/core/series.py +++ b/pandas/core/series.py @@ -13,7 +13,7 @@ import numpy as np import numpy.ma as ma -from pandas.core.typed.common import ( +from pandas.core.dtypes.common import ( _coerce_to_dtype, is_categorical_dtype, is_bool, is_integer, is_integer_dtype, @@ -29,12 +29,12 @@ is_scalar, _is_unorderable_exception, _ensure_platform_int) -from pandas.core.typed.generic import ABCSparseArray, ABCDataFrame -from pandas.core.typed.cast import ( +from pandas.core.dtypes.generic import ABCSparseArray, ABCDataFrame +from pandas.core.dtypes.cast import ( maybe_upcast, infer_dtype_from_scalar, maybe_convert_platform, maybe_cast_to_datetime, maybe_castable) -from pandas.core.typed.missing import isnull, notnull +from pandas.core.dtypes.missing import isnull, notnull from pandas.core.common import (is_bool_indexer, _default_index, diff --git a/pandas/core/sorting.py b/pandas/core/sorting.py index 906072ed64393..69b427df981b7 100644 --- a/pandas/core/sorting.py +++ b/pandas/core/sorting.py @@ -3,11 +3,11 @@ import numpy as np from pandas.compat import long from pandas.core.categorical import Categorical -from pandas.core.typed.common import ( +from pandas.core.dtypes.common import ( _ensure_platform_int, _ensure_int64, is_categorical_dtype) -from pandas.core.typed.missing import isnull +from pandas.core.dtypes.missing import isnull import pandas.core.algorithms as algorithms from pandas._libs import lib, algos, hashtable from pandas._libs.hashtable import unique_label_indices diff --git a/pandas/core/strings.py b/pandas/core/strings.py index fc9a867e67d1d..5082ac7f80fbf 100644 --- a/pandas/core/strings.py +++ b/pandas/core/strings.py @@ -1,9 +1,9 @@ import numpy as np from pandas.compat import zip -from pandas.core.typed.generic import ABCSeries, ABCIndex -from pandas.core.typed.missing import isnull, notnull -from pandas.core.typed.common import ( +from pandas.core.dtypes.generic import ABCSeries, ABCIndex +from pandas.core.dtypes.missing import isnull, notnull +from pandas.core.dtypes.common import ( is_bool_dtype, is_categorical_dtype, is_object_dtype, diff --git a/pandas/core/window.py b/pandas/core/window.py index 98641a537d220..6fdc05a13b773 100644 --- a/pandas/core/window.py +++ b/pandas/core/window.py @@ -12,13 +12,13 @@ from collections import defaultdict from datetime import timedelta -from pandas.core.typed.generic import ( +from pandas.core.dtypes.generic import ( ABCSeries, ABCDataFrame, ABCDatetimeIndex, ABCTimedeltaIndex, ABCPeriodIndex) -from pandas.core.typed.common import ( +from pandas.core.dtypes.common import ( is_integer, is_bool, is_float_dtype, diff --git a/pandas/formats/format.py b/pandas/formats/format.py index 3eb6b69ef451a..aad6c182416f6 100644 --- a/pandas/formats/format.py +++ b/pandas/formats/format.py @@ -10,8 +10,8 @@ import sys -from pandas.core.typed.missing import isnull, notnull -from pandas.core.typed.common import ( +from pandas.core.dtypes.missing import isnull, notnull +from pandas.core.dtypes.common import ( is_categorical_dtype, is_float_dtype, is_period_arraylike, @@ -24,7 +24,7 @@ is_datetime64_dtype, is_timedelta64_dtype, is_list_like) -from pandas.core.typed.generic import ABCSparseArray +from pandas.core.dtypes.generic import ABCSparseArray from pandas.core.base import PandasObject from pandas.core.index import Index, MultiIndex, _ensure_index from pandas import compat diff --git a/pandas/formats/printing.py b/pandas/formats/printing.py index 90cc7e17a656e..5ea47df2c817f 100644 --- a/pandas/formats/printing.py +++ b/pandas/formats/printing.py @@ -2,7 +2,7 @@ printing tools """ -from pandas.core.typed.inference import is_sequence +from pandas.core.dtypes.inference import is_sequence from pandas import compat from pandas.compat import u from pandas.core.config import get_option diff --git a/pandas/formats/style.py b/pandas/formats/style.py index 8e4c7fa834b6f..3ca1d8259729d 100644 --- a/pandas/formats/style.py +++ b/pandas/formats/style.py @@ -19,7 +19,7 @@ "or `pip install Jinja2`" raise ImportError(msg) -from pandas.core.typed.common import is_float, is_string_like +from pandas.core.dtypes.common import is_float, is_string_like import numpy as np import pandas as pd diff --git a/pandas/indexes/base.py b/pandas/indexes/base.py index a01715ed12a3d..b0439e122ea9e 100644 --- a/pandas/indexes/base.py +++ b/pandas/indexes/base.py @@ -13,9 +13,9 @@ from pandas import compat -from pandas.core.typed.generic import ABCSeries, ABCMultiIndex, ABCPeriodIndex -from pandas.core.typed.missing import isnull, array_equivalent -from pandas.core.typed.common import ( +from pandas.core.dtypes.generic import ABCSeries, ABCMultiIndex, ABCPeriodIndex +from pandas.core.dtypes.missing import isnull, array_equivalent +from pandas.core.dtypes.common import ( _ensure_int64, _ensure_object, _ensure_categorical, @@ -45,7 +45,7 @@ deprecate, deprecate_kwarg) from pandas.indexes.frozen import FrozenList import pandas.core.common as com -import pandas.core.typed.concat as _concat +import pandas.core.dtypes.concat as _concat import pandas.core.missing as missing import pandas.core.algorithms as algos from pandas.formats.printing import pprint_thing diff --git a/pandas/indexes/category.py b/pandas/indexes/category.py index f7ba9c788675e..5f9d106189767 100644 --- a/pandas/indexes/category.py +++ b/pandas/indexes/category.py @@ -3,15 +3,15 @@ from pandas import compat from pandas.compat.numpy import function as nv -from pandas.core.typed.generic import ABCCategorical, ABCSeries -from pandas.core.typed.common import ( +from pandas.core.dtypes.generic import ABCCategorical, ABCSeries +from pandas.core.dtypes.common import ( is_categorical_dtype, _ensure_platform_int, is_list_like, is_interval_dtype, is_scalar) from pandas.core.common import _asarray_tuplesafe -from pandas.core.typed.missing import array_equivalent +from pandas.core.dtypes.missing import array_equivalent from pandas.util.decorators import Appender, cache_readonly diff --git a/pandas/indexes/frozen.py b/pandas/indexes/frozen.py index 621f3a65ca675..19b04319b37f9 100644 --- a/pandas/indexes/frozen.py +++ b/pandas/indexes/frozen.py @@ -10,7 +10,7 @@ import numpy as np from pandas.core.base import PandasObject -from pandas.core.typed.cast import coerce_indexer_dtype +from pandas.core.dtypes.cast import coerce_indexer_dtype from pandas.formats.printing import pprint_thing diff --git a/pandas/indexes/interval.py b/pandas/indexes/interval.py index cadb22329d3d2..88a2b0ff9595b 100644 --- a/pandas/indexes/interval.py +++ b/pandas/indexes/interval.py @@ -2,10 +2,10 @@ import numpy as np -from pandas.core.typed.missing import notnull, isnull -from pandas.core.typed.generic import ABCPeriodIndex -from pandas.core.typed.dtypes import IntervalDtype -from pandas.core.typed.common import ( +from pandas.core.dtypes.missing import notnull, isnull +from pandas.core.dtypes.generic import ABCPeriodIndex +from pandas.core.dtypes.dtypes import IntervalDtype +from pandas.core.dtypes.common import ( _ensure_platform_int, is_list_like, is_datetime_or_timedelta_dtype, diff --git a/pandas/indexes/multi.py b/pandas/indexes/multi.py index edd31a06e3ed2..f410dbddb4428 100644 --- a/pandas/indexes/multi.py +++ b/pandas/indexes/multi.py @@ -12,14 +12,14 @@ from pandas.compat.numpy import function as nv from pandas import compat -from pandas.core.typed.common import ( +from pandas.core.dtypes.common import ( _ensure_int64, _ensure_platform_int, is_object_dtype, is_iterator, is_list_like, is_scalar) -from pandas.core.typed.missing import isnull, array_equivalent +from pandas.core.dtypes.missing import isnull, array_equivalent from pandas.errors import PerformanceWarning, UnsortedIndexError from pandas.core.common import (_values_from_object, is_bool_indexer, diff --git a/pandas/indexes/numeric.py b/pandas/indexes/numeric.py index c3bd5bcd9cbe3..2f68101520229 100644 --- a/pandas/indexes/numeric.py +++ b/pandas/indexes/numeric.py @@ -1,7 +1,7 @@ import numpy as np from pandas._libs import (index as libindex, algos as libalgos, join as libjoin) -from pandas.core.typed.common import ( +from pandas.core.dtypes.common import ( is_dtype_equal, pandas_dtype, is_float_dtype, is_object_dtype, is_integer_dtype, is_scalar) diff --git a/pandas/indexes/range.py b/pandas/indexes/range.py index d8eb570cea639..1eedfcc619aec 100644 --- a/pandas/indexes/range.py +++ b/pandas/indexes/range.py @@ -4,7 +4,7 @@ import numpy as np from pandas._libs import index as libindex -from pandas.core.typed.common import ( +from pandas.core.dtypes.common import ( is_integer, is_scalar, is_int64_dtype) diff --git a/pandas/io/common.py b/pandas/io/common.py index f020f55c450a8..5cd5a9cd3e8dc 100644 --- a/pandas/io/common.py +++ b/pandas/io/common.py @@ -10,7 +10,7 @@ from pandas import compat from pandas.formats.printing import pprint_thing from pandas.core.common import AbstractMethodError -from pandas.core.typed.common import is_number, is_file_like +from pandas.core.dtypes.common import is_number, is_file_like # compat from pandas.errors import (ParserError, DtypeWarning, # noqa diff --git a/pandas/io/excel.py b/pandas/io/excel.py index 8bc679d017b76..b19837973a94a 100644 --- a/pandas/io/excel.py +++ b/pandas/io/excel.py @@ -10,7 +10,7 @@ import abc import numpy as np -from pandas.core.typed.common import ( +from pandas.core.dtypes.common import ( is_integer, is_float, is_bool, is_list_like) diff --git a/pandas/io/html.py b/pandas/io/html.py index de17ca4e67b24..8e5b8def1ea91 100644 --- a/pandas/io/html.py +++ b/pandas/io/html.py @@ -12,7 +12,7 @@ import numpy as np -from pandas.core.typed.common import is_list_like +from pandas.core.dtypes.common import is_list_like from pandas.errors import EmptyDataError from pandas.io.common import (_is_url, urlopen, parse_url, _validate_header_arg) diff --git a/pandas/io/json/json.py b/pandas/io/json/json.py index dfb64002cba1d..19e84c04b7ddb 100644 --- a/pandas/io/json/json.py +++ b/pandas/io/json/json.py @@ -12,7 +12,7 @@ from pandas.formats.printing import pprint_thing from .normalize import _convert_to_line_delimits from .table_schema import build_table_schema -from pandas.core.typed.common import is_period_dtype +from pandas.core.dtypes.common import is_period_dtype loads = libjson.loads dumps = libjson.dumps diff --git a/pandas/io/json/table_schema.py b/pandas/io/json/table_schema.py index 357f2171e5ae7..d8ef3afc9591f 100644 --- a/pandas/io/json/table_schema.py +++ b/pandas/io/json/table_schema.py @@ -3,7 +3,7 @@ http://specs.frictionlessdata.io/json-table-schema/ """ -from pandas.core.typed.common import ( +from pandas.core.dtypes.common import ( is_integer_dtype, is_timedelta64_dtype, is_numeric_dtype, is_bool_dtype, is_datetime64_dtype, is_datetime64tz_dtype, is_categorical_dtype, is_period_dtype, is_string_dtype diff --git a/pandas/io/packers.py b/pandas/io/packers.py index da1f6ea846404..587dc2d1f2389 100644 --- a/pandas/io/packers.py +++ b/pandas/io/packers.py @@ -48,7 +48,7 @@ from pandas import compat from pandas.compat import u, u_safe -from pandas.core.typed.common import ( +from pandas.core.dtypes.common import ( is_categorical_dtype, is_object_dtype, needs_i8_conversion, pandas_dtype) diff --git a/pandas/io/parsers.py b/pandas/io/parsers.py index 347453d8ea306..f2449e3064867 100755 --- a/pandas/io/parsers.py +++ b/pandas/io/parsers.py @@ -15,14 +15,14 @@ from pandas import compat from pandas.compat import (range, lrange, StringIO, lzip, zip, string_types, map, u) -from pandas.core.typed.common import ( +from pandas.core.dtypes.common import ( is_integer, _ensure_object, is_list_like, is_integer_dtype, is_float, is_dtype_equal, is_object_dtype, is_string_dtype, is_scalar, is_categorical_dtype) -from pandas.core.typed.missing import isnull -from pandas.core.typed.cast import astype_nansafe +from pandas.core.dtypes.missing import isnull +from pandas.core.dtypes.cast import astype_nansafe from pandas.core.index import Index, MultiIndex, RangeIndex from pandas.core.series import Series from pandas.core.frame import DataFrame diff --git a/pandas/io/parsers.pyx b/pandas/io/parsers.pyx index 4bc6223c7680c..2def4dc9dcf24 100644 --- a/pandas/io/parsers.pyx +++ b/pandas/io/parsers.pyx @@ -39,7 +39,7 @@ cimport util import pandas._libs.lib as lib import pandas.compat as compat -from pandas.core.typed.common import ( +from pandas.core.dtypes.common import ( is_categorical_dtype, CategoricalDtype, is_integer_dtype, is_float_dtype, is_bool_dtype, is_object_dtype, @@ -47,7 +47,7 @@ from pandas.core.typed.common import ( pandas_dtype) from pandas.core.categorical import Categorical from pandas.core.algorithms import take_1d -from pandas.core.typed.concat import union_categoricals +from pandas.core.dtypes.concat import union_categoricals from pandas import Index import time diff --git a/pandas/io/pickle.py b/pandas/io/pickle.py index 371efad370c7e..0f91c407766fb 100644 --- a/pandas/io/pickle.py +++ b/pandas/io/pickle.py @@ -3,7 +3,7 @@ import numpy as np from numpy.lib.format import read_array, write_array from pandas.compat import BytesIO, cPickle as pkl, pickle_compat as pc, PY3 -from pandas.core.typed.common import is_datetime64_dtype, _NS_DTYPE +from pandas.core.dtypes.common import is_datetime64_dtype, _NS_DTYPE from pandas.io.common import _get_handle, _infer_compression diff --git a/pandas/io/pytables.py b/pandas/io/pytables.py index 6c12765bb6cdb..17b52d9ed0852 100644 --- a/pandas/io/pytables.py +++ b/pandas/io/pytables.py @@ -12,7 +12,7 @@ import warnings import os -from pandas.core.typed.common import ( +from pandas.core.dtypes.common import ( is_list_like, is_categorical_dtype, is_timedelta64_dtype, @@ -21,7 +21,7 @@ _ensure_object, _ensure_int64, _ensure_platform_int) -from pandas.core.typed.missing import array_equivalent +from pandas.core.dtypes.missing import array_equivalent import numpy as np from pandas import (Series, DataFrame, Panel, Panel4D, Index, diff --git a/pandas/io/sql.py b/pandas/io/sql.py index 201566ff0f2de..de47a8ad5401f 100644 --- a/pandas/io/sql.py +++ b/pandas/io/sql.py @@ -12,9 +12,9 @@ import numpy as np import pandas._libs.lib as lib -from pandas.core.typed.missing import isnull -from pandas.core.typed.dtypes import DatetimeTZDtype -from pandas.core.typed.common import ( +from pandas.core.dtypes.missing import isnull +from pandas.core.dtypes.dtypes import DatetimeTZDtype +from pandas.core.dtypes.common import ( is_list_like, is_dict_like, is_datetime64tz_dtype) diff --git a/pandas/io/stata.py b/pandas/io/stata.py index 914d8d1d8982d..691582629251a 100644 --- a/pandas/io/stata.py +++ b/pandas/io/stata.py @@ -15,7 +15,7 @@ import struct from dateutil.relativedelta import relativedelta -from pandas.core.typed.common import ( +from pandas.core.dtypes.common import ( is_categorical_dtype, is_datetime64_dtype, _ensure_object) diff --git a/pandas/sparse/array.py b/pandas/sparse/array.py index 49adc1d875d7e..154f4f0cf7b9a 100644 --- a/pandas/sparse/array.py +++ b/pandas/sparse/array.py @@ -14,9 +14,9 @@ from pandas.compat import range from pandas.compat.numpy import function as nv -from pandas.core.typed.generic import ( +from pandas.core.dtypes.generic import ( ABCSparseArray, ABCSparseSeries) -from pandas.core.typed.common import ( +from pandas.core.dtypes.common import ( _ensure_platform_int, is_float, is_integer, is_integer_dtype, @@ -24,10 +24,10 @@ is_list_like, is_string_dtype, is_scalar, is_dtype_equal) -from pandas.core.typed.cast import ( +from pandas.core.dtypes.cast import ( maybe_convert_platform, maybe_promote, astype_nansafe, find_common_type) -from pandas.core.typed.missing import isnull, notnull, na_value_for_dtype +from pandas.core.dtypes.missing import isnull, notnull, na_value_for_dtype from pandas.sparse import libsparse as splib from pandas.sparse.libsparse import SparseIndex, BlockIndex, IntIndex diff --git a/pandas/sparse/frame.py b/pandas/sparse/frame.py index 06c5860df4a72..bdaea955f399e 100644 --- a/pandas/sparse/frame.py +++ b/pandas/sparse/frame.py @@ -10,9 +10,9 @@ from pandas import compat import numpy as np -from pandas.core.typed.missing import isnull, notnull -from pandas.core.typed.cast import maybe_upcast, find_common_type -from pandas.core.typed.common import _ensure_platform_int, is_scipy_sparse +from pandas.core.dtypes.missing import isnull, notnull +from pandas.core.dtypes.cast import maybe_upcast, find_common_type +from pandas.core.dtypes.common import _ensure_platform_int, is_scipy_sparse from pandas.core.common import _try_sort from pandas.compat.numpy import function as nv diff --git a/pandas/sparse/list.py b/pandas/sparse/list.py index d3bc07487a6ca..69e51ed1fb246 100644 --- a/pandas/sparse/list.py +++ b/pandas/sparse/list.py @@ -3,7 +3,7 @@ from pandas.core.base import PandasObject from pandas.formats.printing import pprint_thing -from pandas.core.typed.common import is_scalar +from pandas.core.dtypes.common import is_scalar from pandas.sparse.array import SparseArray from pandas.util.validators import validate_bool_kwarg import pandas.sparse.libsparse as splib diff --git a/pandas/sparse/series.py b/pandas/sparse/series.py index 26d34aff589c8..b3b133c809e21 100644 --- a/pandas/sparse/series.py +++ b/pandas/sparse/series.py @@ -8,8 +8,8 @@ import numpy as np import warnings -from pandas.core.typed.missing import isnull, notnull -from pandas.core.typed.common import is_scalar +from pandas.core.dtypes.missing import isnull, notnull +from pandas.core.dtypes.common import is_scalar from pandas.core.common import _values_from_object, _maybe_match_name from pandas.compat.numpy import function as nv diff --git a/pandas/stats/moments.py b/pandas/stats/moments.py index 0ee84cfd86d20..f98ffa26e0c2b 100644 --- a/pandas/stats/moments.py +++ b/pandas/stats/moments.py @@ -6,7 +6,7 @@ import warnings import numpy as np -from pandas.core.typed.common import is_scalar +from pandas.core.dtypes.common import is_scalar from pandas.core.api import DataFrame, Series from pandas.util.decorators import Substitution, Appender diff --git a/pandas/tests/api/test_types.py b/pandas/tests/api/test_types.py index 61b735a8e96e5..e0267d2990085 100644 --- a/pandas/tests/api/test_types.py +++ b/pandas/tests/api/test_types.py @@ -63,7 +63,7 @@ def test_deprecation_core_common_array_equivalent(self): def test_deprecation_core_common_moved(self): - # these are in pandas.core.typed.common + # these are in pandas.core.dtypes.common l = ['is_datetime_arraylike', 'is_datetime_or_timedelta_dtype', 'is_datetimelike', @@ -75,7 +75,7 @@ def test_deprecation_core_common_moved(self): 'is_string_like', 'is_string_like_dtype'] - from pandas.core.typed import common as c + from pandas.core.dtypes import common as c for t in l: self.check_deprecation(getattr(com, t), getattr(c, t)) diff --git a/pandas/tests/core/computation/test_eval.py b/pandas/tests/core/computation/test_eval.py index e7bd2ae4e85fd..1f519174ce210 100644 --- a/pandas/tests/core/computation/test_eval.py +++ b/pandas/tests/core/computation/test_eval.py @@ -8,7 +8,7 @@ from numpy.random import randn, rand, randint import numpy as np -from pandas.core.typed.common import is_list_like, is_scalar +from pandas.core.dtypes.common import is_list_like, is_scalar import pandas as pd from pandas.core import common as com from pandas.errors import PerformanceWarning diff --git a/pandas/tests/core/typed/__init__.py b/pandas/tests/core/dtypes/__init__.py similarity index 100% rename from pandas/tests/core/typed/__init__.py rename to pandas/tests/core/dtypes/__init__.py diff --git a/pandas/tests/core/typed/test_cast.py b/pandas/tests/core/dtypes/test_cast.py similarity index 99% rename from pandas/tests/core/typed/test_cast.py rename to pandas/tests/core/dtypes/test_cast.py index c41d99ebbb1b0..a1490426ebf9d 100644 --- a/pandas/tests/core/typed/test_cast.py +++ b/pandas/tests/core/dtypes/test_cast.py @@ -10,7 +10,7 @@ import numpy as np from pandas import Timedelta, Timestamp, DatetimeIndex -from pandas.core.typed.cast import ( +from pandas.core.dtypes.cast import ( maybe_downcast_to_dtype, maybe_convert_objects, infer_dtype_from_scalar, @@ -18,7 +18,7 @@ maybe_convert_string_to_object, maybe_convert_scalar, find_common_type) -from pandas.core.typed.dtypes import ( +from pandas.core.dtypes.dtypes import ( CategoricalDtype, DatetimeTZDtype, PeriodDtype) diff --git a/pandas/tests/core/typed/test_common.py b/pandas/tests/core/dtypes/test_common.py similarity index 95% rename from pandas/tests/core/typed/test_common.py rename to pandas/tests/core/dtypes/test_common.py index ed49643838cb1..1017f93b8241c 100644 --- a/pandas/tests/core/typed/test_common.py +++ b/pandas/tests/core/dtypes/test_common.py @@ -3,9 +3,9 @@ import pytest import numpy as np -from pandas.core.typed.dtypes import ( +from pandas.core.dtypes.dtypes import ( DatetimeTZDtype, PeriodDtype, CategoricalDtype) -from pandas.core.typed.common import ( +from pandas.core.dtypes.common import ( pandas_dtype, is_dtype_equal) import pandas.util.testing as tm @@ -89,11 +89,11 @@ def test_dtype_equal_strict(): def get_is_dtype_funcs(): """ - Get all functions in pandas.core.typed.common that + Get all functions in pandas.core.dtypes.common that begin with 'is_' and end with 'dtype' """ - import pandas.core.typed.common as com + import pandas.core.dtypes.common as com fnames = [f for f in dir(com) if (f.startswith('is_') and f.endswith('dtype'))] diff --git a/pandas/tests/core/typed/test_concat.py b/pandas/tests/core/dtypes/test_concat.py similarity index 98% rename from pandas/tests/core/typed/test_concat.py rename to pandas/tests/core/dtypes/test_concat.py index 9f682bbb1151d..e8eb042d78f30 100644 --- a/pandas/tests/core/typed/test_concat.py +++ b/pandas/tests/core/dtypes/test_concat.py @@ -1,7 +1,7 @@ # -*- coding: utf-8 -*- import pandas as pd -import pandas.core.typed.concat as _concat +import pandas.core.dtypes.concat as _concat import pandas.util.testing as tm diff --git a/pandas/tests/core/typed/test_dtypes.py b/pandas/tests/core/dtypes/test_dtypes.py similarity index 99% rename from pandas/tests/core/typed/test_dtypes.py rename to pandas/tests/core/dtypes/test_dtypes.py index bde54f27c5934..ec9876df14e3b 100644 --- a/pandas/tests/core/typed/test_dtypes.py +++ b/pandas/tests/core/dtypes/test_dtypes.py @@ -5,10 +5,10 @@ import pandas as pd from pandas import Series, Categorical, IntervalIndex, date_range -from pandas.core.typed.dtypes import ( +from pandas.core.dtypes.dtypes import ( DatetimeTZDtype, PeriodDtype, IntervalDtype, CategoricalDtype) -from pandas.core.typed.common import ( +from pandas.core.dtypes.common import ( is_categorical_dtype, is_categorical, is_datetime64tz_dtype, is_datetimetz, is_period_dtype, is_period, diff --git a/pandas/tests/core/typed/test_generic.py b/pandas/tests/core/dtypes/test_generic.py similarity index 97% rename from pandas/tests/core/typed/test_generic.py rename to pandas/tests/core/dtypes/test_generic.py index a5fcca0544c68..d550b5535cea3 100644 --- a/pandas/tests/core/typed/test_generic.py +++ b/pandas/tests/core/dtypes/test_generic.py @@ -4,7 +4,7 @@ import numpy as np import pandas as pd import pandas.util.testing as tm -from pandas.core.typed import generic as gt +from pandas.core.dtypes import generic as gt class TestABCClasses(tm.TestCase): diff --git a/pandas/tests/core/typed/test_inference.py b/pandas/tests/core/dtypes/test_inference.py similarity index 99% rename from pandas/tests/core/typed/test_inference.py rename to pandas/tests/core/dtypes/test_inference.py index cb1b63fea3ccd..12db7aafe0f37 100644 --- a/pandas/tests/core/typed/test_inference.py +++ b/pandas/tests/core/dtypes/test_inference.py @@ -18,8 +18,8 @@ DatetimeIndex, TimedeltaIndex, Timestamp, Panel, Period, Categorical) from pandas.compat import u, PY2, PY3, StringIO, lrange -from pandas.core.typed import inference -from pandas.core.typed.common import ( +from pandas.core.dtypes import inference +from pandas.core.dtypes.common import ( is_timedelta64_dtype, is_timedelta64_ns_dtype, is_datetime64_dtype, @@ -34,7 +34,7 @@ is_scipy_sparse, _ensure_int32, _ensure_categorical) -from pandas.core.typed.missing import isnull +from pandas.core.dtypes.missing import isnull from pandas.util import testing as tm from pandas.tests.sparse.test_frame import spmatrix # noqa: F401 diff --git a/pandas/tests/core/typed/test_io.py b/pandas/tests/core/dtypes/test_io.py similarity index 100% rename from pandas/tests/core/typed/test_io.py rename to pandas/tests/core/dtypes/test_io.py diff --git a/pandas/tests/core/typed/test_missing.py b/pandas/tests/core/dtypes/test_missing.py similarity index 99% rename from pandas/tests/core/typed/test_missing.py rename to pandas/tests/core/dtypes/test_missing.py index 236b6b49a5b9e..52dec66fe73eb 100644 --- a/pandas/tests/core/typed/test_missing.py +++ b/pandas/tests/core/dtypes/test_missing.py @@ -11,8 +11,8 @@ from pandas._libs.tslib import iNaT from pandas import (NaT, Float64Index, Series, DatetimeIndex, TimedeltaIndex, date_range) -from pandas.core.typed.dtypes import DatetimeTZDtype -from pandas.core.typed.missing import ( +from pandas.core.dtypes.dtypes import DatetimeTZDtype +from pandas.core.dtypes.missing import ( array_equivalent, isnull, notnull, na_value_for_dtype) diff --git a/pandas/tests/frame/test_alter_axes.py b/pandas/tests/frame/test_alter_axes.py index ec306a5d0a564..9add944d2293e 100644 --- a/pandas/tests/frame/test_alter_axes.py +++ b/pandas/tests/frame/test_alter_axes.py @@ -9,7 +9,7 @@ from pandas.compat import lrange from pandas import (DataFrame, Series, Index, MultiIndex, RangeIndex, date_range, IntervalIndex) -from pandas.core.typed.common import ( +from pandas.core.dtypes.common import ( is_object_dtype, is_categorical_dtype, is_interval_dtype) diff --git a/pandas/tests/frame/test_apply.py b/pandas/tests/frame/test_apply.py index 6dc6a4d4cc8f8..1afb048ad825a 100644 --- a/pandas/tests/frame/test_apply.py +++ b/pandas/tests/frame/test_apply.py @@ -10,7 +10,7 @@ from pandas import (notnull, DataFrame, Series, MultiIndex, date_range, Timestamp, compat) import pandas as pd -from pandas.core.typed.dtypes import CategoricalDtype +from pandas.core.dtypes.dtypes import CategoricalDtype from pandas.util.testing import (assert_series_equal, assert_frame_equal) import pandas.util.testing as tm diff --git a/pandas/tests/frame/test_constructors.py b/pandas/tests/frame/test_constructors.py index 144ca7324012b..508053a6367fa 100644 --- a/pandas/tests/frame/test_constructors.py +++ b/pandas/tests/frame/test_constructors.py @@ -13,7 +13,7 @@ import numpy.ma as ma import numpy.ma.mrecords as mrecords -from pandas.core.typed.common import is_integer_dtype +from pandas.core.dtypes.common import is_integer_dtype from pandas.compat import (lmap, long, zip, range, lrange, lzip, OrderedDict, is_platform_little_endian) from pandas import compat diff --git a/pandas/tests/frame/test_dtypes.py b/pandas/tests/frame/test_dtypes.py index 48518e23753c1..14334dfbeddb3 100644 --- a/pandas/tests/frame/test_dtypes.py +++ b/pandas/tests/frame/test_dtypes.py @@ -7,7 +7,7 @@ from pandas import (DataFrame, Series, date_range, Timedelta, Timestamp, compat, concat, option_context) from pandas.compat import u -from pandas.core.typed.dtypes import DatetimeTZDtype +from pandas.core.dtypes.dtypes import DatetimeTZDtype from pandas.tests.frame.common import TestData from pandas.util.testing import (assert_series_equal, assert_frame_equal, diff --git a/pandas/tests/frame/test_indexing.py b/pandas/tests/frame/test_indexing.py index 6500ee15d917c..ffdc61a10e15f 100644 --- a/pandas/tests/frame/test_indexing.py +++ b/pandas/tests/frame/test_indexing.py @@ -20,7 +20,7 @@ from pandas._libs.tslib import iNaT from pandas.tseries.offsets import BDay -from pandas.core.typed.common import ( +from pandas.core.dtypes.common import ( is_float_dtype, is_integer, is_scalar) diff --git a/pandas/tests/groupby/test_bin_groupby.py b/pandas/tests/groupby/test_bin_groupby.py index e745de973aeff..289723ed5667a 100644 --- a/pandas/tests/groupby/test_bin_groupby.py +++ b/pandas/tests/groupby/test_bin_groupby.py @@ -3,7 +3,7 @@ from numpy import nan import numpy as np -from pandas.core.typed.common import _ensure_int64 +from pandas.core.dtypes.common import _ensure_int64 from pandas import Index, isnull from pandas.util.testing import assert_almost_equal import pandas.util.testing as tm diff --git a/pandas/tests/groupby/test_transform.py b/pandas/tests/groupby/test_transform.py index ad52be4242332..541f5d28be421 100644 --- a/pandas/tests/groupby/test_transform.py +++ b/pandas/tests/groupby/test_transform.py @@ -4,7 +4,8 @@ import pandas as pd from pandas.util import testing as tm from pandas import Series, DataFrame, Timestamp, MultiIndex, concat, date_range -from pandas.core.typed.common import _ensure_platform_int, is_timedelta64_dtype +from pandas.core.dtypes.common import ( + _ensure_platform_int, is_timedelta64_dtype) from pandas.compat import StringIO from pandas._libs import groupby from .common import MixIn, assert_fp_equal diff --git a/pandas/tests/indexes/common.py b/pandas/tests/indexes/common.py index e7f83b74cf601..25214e6b170b5 100644 --- a/pandas/tests/indexes/common.py +++ b/pandas/tests/indexes/common.py @@ -9,7 +9,7 @@ RangeIndex, MultiIndex, CategoricalIndex, DatetimeIndex, TimedeltaIndex, PeriodIndex, IntervalIndex, notnull, isnull) -from pandas.core.typed.common import needs_i8_conversion +from pandas.core.dtypes.common import needs_i8_conversion from pandas.util.testing import assertRaisesRegexp from pandas._libs.tslib import iNaT diff --git a/pandas/tests/indexes/datetimes/test_tools.py b/pandas/tests/indexes/datetimes/test_tools.py index a008dc3d5c848..28fbce43bf983 100644 --- a/pandas/tests/indexes/datetimes/test_tools.py +++ b/pandas/tests/indexes/datetimes/test_tools.py @@ -14,7 +14,7 @@ from pandas.tseries.tools import normalize_date from pandas.compat import lmap from pandas.compat.numpy import np_array_datetime64_compat -from pandas.core.typed.common import is_datetime64_ns_dtype +from pandas.core.dtypes.common import is_datetime64_ns_dtype from pandas.util import testing as tm from pandas.util.testing import assert_series_equal, _skip_if_has_locale from pandas import (isnull, to_datetime, Timestamp, Series, DataFrame, diff --git a/pandas/tests/indexing/common.py b/pandas/tests/indexing/common.py index d176510711847..51c0889a6f091 100644 --- a/pandas/tests/indexing/common.py +++ b/pandas/tests/indexing/common.py @@ -5,7 +5,7 @@ import numpy as np from pandas.compat import lrange -from pandas.core.typed.common import is_scalar +from pandas.core.dtypes.common import is_scalar from pandas import Series, DataFrame, Panel, date_range, UInt64Index from pandas.util import testing as tm from pandas.formats.printing import pprint_thing diff --git a/pandas/tests/indexing/test_indexing.py b/pandas/tests/indexing/test_indexing.py index 796e8afa412ed..53812feaa8da7 100644 --- a/pandas/tests/indexing/test_indexing.py +++ b/pandas/tests/indexing/test_indexing.py @@ -6,7 +6,7 @@ from warnings import catch_warnings from datetime import datetime -from pandas.core.typed.common import ( +from pandas.core.dtypes.common import ( is_integer_dtype, is_float_dtype) from pandas.compat import range, lrange, lzip, StringIO diff --git a/pandas/tests/indexing/test_ix.py b/pandas/tests/indexing/test_ix.py index 6e34286dd25fd..6eda8b2b6f631 100644 --- a/pandas/tests/indexing/test_ix.py +++ b/pandas/tests/indexing/test_ix.py @@ -5,7 +5,7 @@ import numpy as np import pandas as pd -from pandas.core.typed.common import is_scalar +from pandas.core.dtypes.common import is_scalar from pandas.compat import lrange from pandas import Series, DataFrame, option_context, MultiIndex from pandas.util import testing as tm diff --git a/pandas/tests/io/json/test_json_table_schema.py b/pandas/tests/io/json/test_json_table_schema.py index 7a0fb509ec01d..2a785375acaea 100644 --- a/pandas/tests/io/json/test_json_table_schema.py +++ b/pandas/tests/io/json/test_json_table_schema.py @@ -7,7 +7,7 @@ import pytest from pandas import DataFrame -from pandas.core.typed.dtypes import ( +from pandas.core.dtypes.dtypes import ( PeriodDtype, CategoricalDtype, DatetimeTZDtype) import pandas.util.testing as tm from pandas.io.json.table_schema import ( diff --git a/pandas/tests/io/parser/dtypes.py b/pandas/tests/io/parser/dtypes.py index 3d466ae657706..50c9a1bc724fc 100644 --- a/pandas/tests/io/parser/dtypes.py +++ b/pandas/tests/io/parser/dtypes.py @@ -11,7 +11,7 @@ from pandas import DataFrame, Series, Index, MultiIndex, Categorical from pandas.compat import StringIO -from pandas.core.typed.dtypes import CategoricalDtype +from pandas.core.dtypes.dtypes import CategoricalDtype from pandas.errors import ParserWarning diff --git a/pandas/tests/io/test_sql.py b/pandas/tests/io/test_sql.py index 2fde7db591f62..ce411bb4d5c4e 100644 --- a/pandas/tests/io/test_sql.py +++ b/pandas/tests/io/test_sql.py @@ -31,7 +31,7 @@ from datetime import datetime, date, time -from pandas.core.typed.common import ( +from pandas.core.dtypes.common import ( is_object_dtype, is_datetime64_dtype, is_datetime64tz_dtype) from pandas import DataFrame, Series, Index, MultiIndex, isnull, concat diff --git a/pandas/tests/io/test_stata.py b/pandas/tests/io/test_stata.py index c754e05aa4381..50d3342c56522 100644 --- a/pandas/tests/io/test_stata.py +++ b/pandas/tests/io/test_stata.py @@ -20,7 +20,7 @@ from pandas.io.stata import (read_stata, StataReader, InvalidColumnName, PossiblePrecisionLoss, StataMissingValue) from pandas._libs.tslib import NaT -from pandas.core.typed.common import is_categorical_dtype +from pandas.core.dtypes.common import is_categorical_dtype class TestStata(tm.TestCase): diff --git a/pandas/tests/plotting/common.py b/pandas/tests/plotting/common.py index 94b27915fb0eb..0ffd53b149d7a 100644 --- a/pandas/tests/plotting/common.py +++ b/pandas/tests/plotting/common.py @@ -8,7 +8,7 @@ from pandas import DataFrame, Series from pandas.compat import zip, iteritems from pandas.util.decorators import cache_readonly -from pandas.core.typed.api import is_list_like +from pandas.core.dtypes.api import is_list_like import pandas.util.testing as tm from pandas.util.testing import (ensure_clean, assert_is_valid_plot_return_object) diff --git a/pandas/tests/plotting/test_frame.py b/pandas/tests/plotting/test_frame.py index f683998bcf9ef..fe07f5b9f193e 100644 --- a/pandas/tests/plotting/test_frame.py +++ b/pandas/tests/plotting/test_frame.py @@ -11,7 +11,7 @@ import pandas as pd from pandas import (Series, DataFrame, MultiIndex, PeriodIndex, date_range, bdate_range) -from pandas.core.typed.api import is_list_like +from pandas.core.dtypes.api import is_list_like from pandas.compat import range, lrange, lmap, lzip, u, zip, PY3 from pandas.formats.printing import pprint_thing import pandas.util.testing as tm diff --git a/pandas/tests/series/test_constructors.py b/pandas/tests/series/test_constructors.py index c51fe68b6e547..24b2a12d70709 100644 --- a/pandas/tests/series/test_constructors.py +++ b/pandas/tests/series/test_constructors.py @@ -8,7 +8,7 @@ import numpy.ma as ma import pandas as pd -from pandas.core.typed.common import ( +from pandas.core.dtypes.common import ( is_categorical_dtype, is_datetime64tz_dtype) from pandas import (Index, Series, isnull, date_range, diff --git a/pandas/tests/series/test_datetime_values.py b/pandas/tests/series/test_datetime_values.py index 1c1782ccfbf51..8825ba5607a20 100644 --- a/pandas/tests/series/test_datetime_values.py +++ b/pandas/tests/series/test_datetime_values.py @@ -6,7 +6,7 @@ import numpy as np import pandas as pd -from pandas.core.typed.common import is_integer_dtype, is_list_like +from pandas.core.dtypes.common import is_integer_dtype, is_list_like from pandas import (Index, Series, DataFrame, bdate_range, date_range, period_range, timedelta_range, PeriodIndex, Timestamp, DatetimeIndex, TimedeltaIndex) diff --git a/pandas/tests/series/test_indexing.py b/pandas/tests/series/test_indexing.py index c560539b3947a..6c1d77acd70d5 100644 --- a/pandas/tests/series/test_indexing.py +++ b/pandas/tests/series/test_indexing.py @@ -8,7 +8,7 @@ import pandas as pd import pandas._libs.index as _index -from pandas.core.typed.common import is_integer, is_scalar +from pandas.core.dtypes.common import is_integer, is_scalar from pandas import (Index, Series, DataFrame, isnull, date_range, NaT, MultiIndex, Timestamp, DatetimeIndex, Timedelta) diff --git a/pandas/tests/series/test_quantile.py b/pandas/tests/series/test_quantile.py index fe759bf577401..339d871b63049 100644 --- a/pandas/tests/series/test_quantile.py +++ b/pandas/tests/series/test_quantile.py @@ -7,7 +7,7 @@ from pandas import (Index, Series, _np_version_under1p9) from pandas.tseries.index import Timestamp -from pandas.core.typed.common import is_integer +from pandas.core.dtypes.common import is_integer import pandas.util.testing as tm from .common import TestData diff --git a/pandas/tests/sparse/test_frame.py b/pandas/tests/sparse/test_frame.py index 0f0b2e27aaf3d..cb04875a958d0 100644 --- a/pandas/tests/sparse/test_frame.py +++ b/pandas/tests/sparse/test_frame.py @@ -9,7 +9,7 @@ import pandas as pd from pandas import Series, DataFrame, bdate_range, Panel -from pandas.core.typed.common import ( +from pandas.core.dtypes.common import ( is_bool_dtype, is_float_dtype, is_object_dtype, diff --git a/pandas/tests/test_base.py b/pandas/tests/test_base.py index 12b05ec1d85a7..91c06a2c30e50 100644 --- a/pandas/tests/test_base.py +++ b/pandas/tests/test_base.py @@ -9,7 +9,7 @@ import pandas as pd import pandas.compat as compat -from pandas.core.typed.common import ( +from pandas.core.dtypes.common import ( is_object_dtype, is_datetimetz, needs_i8_conversion) import pandas.util.testing as tm diff --git a/pandas/tests/test_categorical.py b/pandas/tests/test_categorical.py index 9593530fa9d50..3296673e96316 100644 --- a/pandas/tests/test_categorical.py +++ b/pandas/tests/test_categorical.py @@ -9,8 +9,8 @@ import numpy as np -from pandas.core.typed.dtypes import CategoricalDtype -from pandas.core.typed.common import ( +from pandas.core.dtypes.dtypes import CategoricalDtype +from pandas.core.dtypes.common import ( is_categorical_dtype, is_float_dtype, is_integer_dtype) diff --git a/pandas/tests/test_generic.py b/pandas/tests/test_generic.py index 47c9b5379698c..80059277407c3 100644 --- a/pandas/tests/test_generic.py +++ b/pandas/tests/test_generic.py @@ -11,7 +11,7 @@ import pandas as pd from distutils.version import LooseVersion -from pandas.core.typed.common import is_scalar +from pandas.core.dtypes.common import is_scalar from pandas import (Index, Series, DataFrame, Panel, isnull, date_range, period_range, Panel4D) from pandas.core.index import MultiIndex diff --git a/pandas/tests/test_multilevel.py b/pandas/tests/test_multilevel.py index 7f91a7fc269e4..648a3b98b245a 100755 --- a/pandas/tests/test_multilevel.py +++ b/pandas/tests/test_multilevel.py @@ -12,7 +12,7 @@ from pandas import Panel, DataFrame, Series, notnull, isnull, Timestamp from pandas.core.common import UnsortedIndexError -from pandas.core.typed.common import is_float_dtype, is_integer_dtype +from pandas.core.dtypes.common import is_float_dtype, is_integer_dtype import pandas.core.common as com import pandas.util.testing as tm from pandas.compat import (range, lrange, StringIO, lzip, u, product as diff --git a/pandas/tests/test_nanops.py b/pandas/tests/test_nanops.py index b6ef287d7d6f9..20a9238310ccf 100644 --- a/pandas/tests/test_nanops.py +++ b/pandas/tests/test_nanops.py @@ -6,7 +6,7 @@ import warnings import numpy as np from pandas import Series, isnull, _np_version_under1p9 -from pandas.core.typed.common import is_integer_dtype +from pandas.core.dtypes.common import is_integer_dtype import pandas.core.nanops as nanops import pandas.util.testing as tm diff --git a/pandas/tests/test_panel.py b/pandas/tests/test_panel.py index ab9038f9237a0..f0e53046e3552 100644 --- a/pandas/tests/test_panel.py +++ b/pandas/tests/test_panel.py @@ -9,7 +9,7 @@ import numpy as np import pandas as pd -from pandas.core.typed.common import is_float_dtype +from pandas.core.dtypes.common import is_float_dtype from pandas import (Series, DataFrame, Index, date_range, isnull, notnull, pivot, MultiIndex) from pandas.core.nanops import nanall, nanany diff --git a/pandas/tests/test_panel4d.py b/pandas/tests/test_panel4d.py index e605c3cd3863f..3af47a2b408bc 100644 --- a/pandas/tests/test_panel4d.py +++ b/pandas/tests/test_panel4d.py @@ -6,7 +6,7 @@ from warnings import catch_warnings import numpy as np -from pandas.core.typed.common import is_float_dtype +from pandas.core.dtypes.common import is_float_dtype from pandas import Series, Index, isnull, notnull from pandas.core.panel import Panel from pandas.core.panel4d import Panel4D diff --git a/pandas/tests/tools/test_merge.py b/pandas/tests/tools/test_merge.py index 7a2331d9c949a..cc4a97df33801 100644 --- a/pandas/tests/tools/test_merge.py +++ b/pandas/tests/tools/test_merge.py @@ -12,8 +12,8 @@ from pandas.tools.concat import concat from pandas.tools.merge import merge, MergeError from pandas.util.testing import assert_frame_equal, assert_series_equal -from pandas.core.typed.dtypes import CategoricalDtype -from pandas.core.typed.common import is_categorical_dtype, is_object_dtype +from pandas.core.dtypes.dtypes import CategoricalDtype +from pandas.core.dtypes.common import is_categorical_dtype, is_object_dtype from pandas import DataFrame, Index, MultiIndex, Series, Categorical import pandas.util.testing as tm diff --git a/pandas/tests/tools/test_union_categoricals.py b/pandas/tests/tools/test_union_categoricals.py index cac3faee3af1f..f9224d0126f6c 100644 --- a/pandas/tests/tools/test_union_categoricals.py +++ b/pandas/tests/tools/test_union_categoricals.py @@ -1,7 +1,7 @@ import numpy as np import pandas as pd from pandas import Categorical, Series, CategoricalIndex -from pandas.core.typed.concat import union_categoricals +from pandas.core.dtypes.concat import union_categoricals from pandas.util import testing as tm diff --git a/pandas/tests/tseries/test_resample.py b/pandas/tests/tseries/test_resample.py index b60ede517d748..e81dfd8649e8e 100755 --- a/pandas/tests/tseries/test_resample.py +++ b/pandas/tests/tseries/test_resample.py @@ -12,7 +12,7 @@ from pandas import (Series, DataFrame, Panel, Index, isnull, notnull, Timestamp) -from pandas.core.typed.generic import ABCSeries, ABCDataFrame +from pandas.core.dtypes.generic import ABCSeries, ABCDataFrame from pandas.compat import range, lrange, zip, product, OrderedDict from pandas.core.base import SpecificationError from pandas.errors import UnsupportedFunctionCall diff --git a/pandas/tests/tseries/test_timezones.py b/pandas/tests/tseries/test_timezones.py index 8c6b9ea2db78b..125e031b5e3a2 100644 --- a/pandas/tests/tseries/test_timezones.py +++ b/pandas/tests/tseries/test_timezones.py @@ -11,7 +11,7 @@ import pandas.tseries.offsets as offsets from pandas.compat import lrange, zip from pandas.tseries.index import bdate_range, date_range -from pandas.core.typed.dtypes import DatetimeTZDtype +from pandas.core.dtypes.dtypes import DatetimeTZDtype from pandas._libs import tslib from pandas import (Index, Series, DataFrame, isnull, Timestamp, NaT, DatetimeIndex, to_datetime) diff --git a/pandas/tools/concat.py b/pandas/tools/concat.py index 00a1b91800bc5..af2eb734a02f6 100644 --- a/pandas/tools/concat.py +++ b/pandas/tools/concat.py @@ -12,7 +12,7 @@ from pandas.core.internals import concatenate_block_managers from pandas.core import common as com from pandas.core.generic import NDFrame -import pandas.core.typed.concat as _concat +import pandas.core.dtypes.concat as _concat # --------------------------------------------------------------------- # Concatenate DataFrame objects diff --git a/pandas/tools/hashing.py b/pandas/tools/hashing.py index a1f83b33ee88f..275c1c87ea57a 100644 --- a/pandas/tools/hashing.py +++ b/pandas/tools/hashing.py @@ -7,10 +7,11 @@ from pandas import Series, factorize, Categorical, Index, MultiIndex from pandas.tools import libhashing as _hash from pandas._libs.lib import is_bool_array -from pandas.core.typed.generic import (ABCIndexClass, - ABCSeries, - ABCDataFrame) -from pandas.core.typed.common import ( +from pandas.core.dtypes.generic import ( + ABCIndexClass, + ABCSeries, + ABCDataFrame) +from pandas.core.dtypes.common import ( is_categorical_dtype, is_numeric_dtype, is_datetime64_dtype, is_timedelta64_dtype, is_list_like) diff --git a/pandas/tools/merge.py b/pandas/tools/merge.py index 7fb90f1d286f3..53208fbdd5529 100644 --- a/pandas/tools/merge.py +++ b/pandas/tools/merge.py @@ -14,7 +14,7 @@ from pandas import (Categorical, Series, DataFrame, Index, MultiIndex, Timedelta) from pandas.core.frame import _merge_doc -from pandas.core.typed.common import ( +from pandas.core.dtypes.common import ( is_datetime64tz_dtype, is_datetime64_dtype, needs_i8_conversion, @@ -32,7 +32,7 @@ _ensure_float64, _ensure_object, _get_dtype) -from pandas.core.typed.missing import na_value_for_dtype +from pandas.core.dtypes.missing import na_value_for_dtype from pandas.core.internals import (items_overlap_with_suffix, concatenate_block_managers) from pandas.util.decorators import Appender, Substitution diff --git a/pandas/tools/pivot.py b/pandas/tools/pivot.py index 07d9874be21f8..11ca2e548f171 100644 --- a/pandas/tools/pivot.py +++ b/pandas/tools/pivot.py @@ -1,7 +1,7 @@ # pylint: disable=E1103 -from pandas.core.typed.common import is_list_like, is_scalar +from pandas.core.dtypes.common import is_list_like, is_scalar from pandas import Series, DataFrame, MultiIndex, Index, concat from pandas.core.groupby import Grouper from pandas.tools.util import cartesian_product diff --git a/pandas/tools/tile.py b/pandas/tools/tile.py index 2755a9abe0091..746742f47f2aa 100644 --- a/pandas/tools/tile.py +++ b/pandas/tools/tile.py @@ -2,8 +2,8 @@ Quantilization functions and related stuff """ -from pandas.core.typed.missing import isnull -from pandas.core.typed.common import ( +from pandas.core.dtypes.missing import isnull +from pandas.core.dtypes.common import ( is_integer, is_scalar, is_categorical_dtype, diff --git a/pandas/tools/util.py b/pandas/tools/util.py index 3b2a7c512653b..baf968440858d 100644 --- a/pandas/tools/util.py +++ b/pandas/tools/util.py @@ -1,7 +1,7 @@ import numpy as np import pandas._libs.lib as lib -from pandas.core.typed.common import ( +from pandas.core.dtypes.common import ( is_number, is_numeric_dtype, is_datetime_or_timedelta_dtype, @@ -10,7 +10,7 @@ is_decimal, is_scalar as isscalar) -from pandas.core.typed.cast import maybe_downcast_to_dtype +from pandas.core.dtypes.cast import maybe_downcast_to_dtype import pandas as pd from pandas.compat import reduce diff --git a/pandas/tseries/base.py b/pandas/tseries/base.py index 8c7fdf62d16ba..cf79cadef78dd 100644 --- a/pandas/tseries/base.py +++ b/pandas/tseries/base.py @@ -9,15 +9,15 @@ from pandas.compat.numpy import function as nv import numpy as np -from pandas.core.typed.common import ( +from pandas.core.dtypes.common import ( is_integer, is_float, is_bool_dtype, _ensure_int64, is_scalar, is_dtype_equal, is_list_like) -from pandas.core.typed.generic import ( +from pandas.core.dtypes.generic import ( ABCIndex, ABCSeries, ABCPeriodIndex, ABCIndexClass) -from pandas.core.typed.missing import isnull +from pandas.core.dtypes.missing import isnull from pandas.core import common as com, algorithms from pandas.core.algorithms import checked_add_with_arr from pandas.core.common import AbstractMethodError @@ -30,7 +30,7 @@ from pandas.core.index import Index from pandas.indexes.base import _index_shared_docs from pandas.util.decorators import Appender, cache_readonly -import pandas.core.typed.concat as _concat +import pandas.core.dtypes.concat as _concat import pandas.tseries.frequencies as frequencies import pandas.indexes.base as ibase diff --git a/pandas/tseries/common.py b/pandas/tseries/common.py index 41719587cdd21..2154cfd4b2857 100644 --- a/pandas/tseries/common.py +++ b/pandas/tseries/common.py @@ -4,7 +4,7 @@ import numpy as np -from pandas.core.typed.common import ( +from pandas.core.dtypes.common import ( is_period_arraylike, is_datetime_arraylike, is_integer_dtype, is_datetime64_dtype, is_datetime64tz_dtype, diff --git a/pandas/tseries/frequencies.py b/pandas/tseries/frequencies.py index 3b87d54c7f1ce..06d70f1456518 100644 --- a/pandas/tseries/frequencies.py +++ b/pandas/tseries/frequencies.py @@ -6,8 +6,8 @@ import numpy as np -from pandas.core.typed.generic import ABCSeries -from pandas.core.typed.common import ( +from pandas.core.dtypes.generic import ABCSeries +from pandas.core.dtypes.common import ( is_integer, is_period_arraylike, is_timedelta64_dtype, diff --git a/pandas/tseries/index.py b/pandas/tseries/index.py index dbf3b8f6b70f2..95594652e3943 100644 --- a/pandas/tseries/index.py +++ b/pandas/tseries/index.py @@ -7,7 +7,7 @@ import numpy as np from pandas.core.base import _shared_docs -from pandas.core.typed.common import ( +from pandas.core.dtypes.common import ( _NS_DTYPE, _INT64_DTYPE, is_object_dtype, is_datetime64_dtype, is_datetimetz, is_dtype_equal, @@ -21,11 +21,11 @@ is_scalar, pandas_dtype, _ensure_int64) -from pandas.core.typed.generic import ABCSeries -from pandas.core.typed.dtypes import DatetimeTZDtype -from pandas.core.typed.missing import isnull +from pandas.core.dtypes.generic import ABCSeries +from pandas.core.dtypes.dtypes import DatetimeTZDtype +from pandas.core.dtypes.missing import isnull -import pandas.core.typed.concat as _concat +import pandas.core.dtypes.concat as _concat from pandas.errors import PerformanceWarning from pandas.core.common import _values_from_object, _maybe_box diff --git a/pandas/tseries/offsets.py b/pandas/tseries/offsets.py index 2be788a577138..a097c56a0ffd3 100644 --- a/pandas/tseries/offsets.py +++ b/pandas/tseries/offsets.py @@ -3,7 +3,7 @@ from pandas import compat import numpy as np -from pandas.core.typed.generic import ABCSeries, ABCDatetimeIndex, ABCPeriod +from pandas.core.dtypes.generic import ABCSeries, ABCDatetimeIndex, ABCPeriod from pandas.tseries.tools import to_datetime, normalize_date from pandas.core.common import AbstractMethodError diff --git a/pandas/tseries/period.py b/pandas/tseries/period.py index f48eb1c116321..66275925ff355 100644 --- a/pandas/tseries/period.py +++ b/pandas/tseries/period.py @@ -5,7 +5,7 @@ from pandas.core import common as com -from pandas.core.typed.common import ( +from pandas.core.dtypes.common import ( is_integer, is_float, is_object_dtype, @@ -19,8 +19,8 @@ is_bool_dtype, pandas_dtype, _ensure_object) -from pandas.core.typed.dtypes import PeriodDtype -from pandas.core.typed.generic import ABCSeries +from pandas.core.dtypes.dtypes import PeriodDtype +from pandas.core.dtypes.generic import ABCSeries import pandas.tseries.frequencies as frequencies from pandas.tseries.frequencies import get_freq_code as _gfc diff --git a/pandas/tseries/tdi.py b/pandas/tseries/tdi.py index 8f16d1bc510d5..c26f023ea942a 100644 --- a/pandas/tseries/tdi.py +++ b/pandas/tseries/tdi.py @@ -2,7 +2,7 @@ from datetime import timedelta import numpy as np -from pandas.core.typed.common import ( +from pandas.core.dtypes.common import ( _TD_DTYPE, is_integer, is_float, is_bool_dtype, @@ -13,8 +13,8 @@ is_timedelta64_dtype, is_timedelta64_ns_dtype, _ensure_int64) -from pandas.core.typed.missing import isnull -from pandas.core.typed.generic import ABCSeries +from pandas.core.dtypes.missing import isnull +from pandas.core.dtypes.generic import ABCSeries from pandas.core.common import _maybe_box, _values_from_object, is_bool_indexer from pandas.core.index import Index, Int64Index @@ -25,7 +25,7 @@ from pandas.core.base import _shared_docs from pandas.indexes.base import _index_shared_docs import pandas.core.common as com -import pandas.core.typed.concat as _concat +import pandas.core.dtypes.concat as _concat from pandas.util.decorators import Appender, Substitution, deprecate_kwarg from pandas.tseries.base import TimelikeOps, DatetimeIndexOpsMixin from pandas.tseries.timedeltas import (to_timedelta, diff --git a/pandas/tseries/timedeltas.py b/pandas/tseries/timedeltas.py index 99bea1b1f038c..fe03f89fdb2c5 100644 --- a/pandas/tseries/timedeltas.py +++ b/pandas/tseries/timedeltas.py @@ -6,12 +6,12 @@ import pandas as pd import pandas._libs.tslib as tslib -from pandas.core.typed.common import ( +from pandas.core.dtypes.common import ( _ensure_object, is_integer_dtype, is_timedelta64_dtype, is_list_like) -from pandas.core.typed.generic import ABCSeries, ABCIndexClass +from pandas.core.dtypes.generic import ABCSeries, ABCIndexClass def to_timedelta(arg, unit='ns', box=True, errors='raise'): diff --git a/pandas/tseries/tools.py b/pandas/tseries/tools.py index 57265601fbb05..db7aa5974e562 100644 --- a/pandas/tseries/tools.py +++ b/pandas/tseries/tools.py @@ -4,7 +4,7 @@ from pandas._libs import lib, tslib -from pandas.core.typed.common import ( +from pandas.core.dtypes.common import ( _ensure_object, is_datetime64_ns_dtype, is_datetime64_dtype, @@ -15,10 +15,10 @@ is_list_like, is_scalar, is_numeric_dtype) -from pandas.core.typed.generic import ( +from pandas.core.dtypes.generic import ( ABCIndexClass, ABCSeries, ABCDataFrame) -from pandas.core.typed.missing import notnull +from pandas.core.dtypes.missing import notnull from pandas.core import algorithms import pandas.compat as compat diff --git a/pandas/tseries/util.py b/pandas/tseries/util.py index 69cfcde22217b..5934f5843736c 100644 --- a/pandas/tseries/util.py +++ b/pandas/tseries/util.py @@ -2,7 +2,7 @@ from pandas.compat import lrange import numpy as np -from pandas.core.typed.common import _ensure_platform_int +from pandas.core.dtypes.common import _ensure_platform_int from pandas.core.frame import DataFrame import pandas.core.algorithms as algorithms diff --git a/pandas/util/testing.py b/pandas/util/testing.py index b64128b3158b6..dc954e6b62c7a 100644 --- a/pandas/util/testing.py +++ b/pandas/util/testing.py @@ -23,8 +23,8 @@ import numpy as np import pandas as pd -from pandas.core.typed.missing import array_equivalent -from pandas.core.typed.common import ( +from pandas.core.dtypes.missing import array_equivalent +from pandas.core.dtypes.common import ( is_datetimelike_v_numeric, is_datetimelike_v_object, is_number, is_bool, diff --git a/pandas/util/testing.pyx b/pandas/util/testing.pyx index 3af865ce505a0..9495af87f5c31 100644 --- a/pandas/util/testing.pyx +++ b/pandas/util/testing.pyx @@ -1,8 +1,8 @@ import numpy as np from pandas import compat -from pandas.core.typed.missing import isnull, array_equivalent -from pandas.core.typed.common import is_dtype_equal +from pandas.core.dtypes.missing import isnull, array_equivalent +from pandas.core.dtypes.common import is_dtype_equal cdef NUMERIC_TYPES = ( bool, diff --git a/pandas/util/validators.py b/pandas/util/validators.py index 206ab4bc4b8f9..6b19904f4a665 100644 --- a/pandas/util/validators.py +++ b/pandas/util/validators.py @@ -3,7 +3,7 @@ for validating data or function arguments """ -from pandas.core.typed.common import is_bool +from pandas.core.dtypes.common import is_bool def _check_arg_length(fname, args, max_fname_arg_count, compat_args): diff --git a/setup.py b/setup.py index bc320f7942294..77d7e0453a2e2 100755 --- a/setup.py +++ b/setup.py @@ -639,7 +639,7 @@ def pxd(name): 'pandas.compat', 'pandas.compat.numpy', 'pandas.core', - 'pandas.core.typed', + 'pandas.core.dtypes', 'pandas.core.computation', 'pandas.indexes', 'pandas.errors', From 751fb33c2070fe716395a9c4723ae8fa0ba11017 Mon Sep 17 00:00:00 2001 From: Jeff Reback Date: Sat, 15 Apr 2017 10:24:23 -0400 Subject: [PATCH 05/11] move privacy changes to development section --- doc/source/whatsnew/v0.20.0.txt | 71 ++++++++++++++++++--------------- 1 file changed, 38 insertions(+), 33 deletions(-) diff --git a/doc/source/whatsnew/v0.20.0.txt b/doc/source/whatsnew/v0.20.0.txt index 98d349f28b700..250f09dcd488d 100644 --- a/doc/source/whatsnew/v0.20.0.txt +++ b/doc/source/whatsnew/v0.20.0.txt @@ -1026,39 +1026,6 @@ New Behavior: In [11]: index.memory_usage(deep=True) Out[11]: 260 -.. _whatsnew_0200.api_breaking.privacy: - -Modules Privacy Has Changed -^^^^^^^^^^^^^^^^^^^^^^^^^^^ - -Some formerly public python/c/c++/cython extension modules have been moved and/or renamed. These are all removed from the public API. -Further more, the ``pandas.core``, ``pandas.io``, and ``pandas.util`` top-level modules are now considered to be PRIVATE. -If indicated, a deprecation warning will be issued if you reference that module. (:issue:`12588`) - -.. csv-table:: - :header: "Previous Location", "New Location", "Deprecated" - :widths: 30, 30, 4 - - "pandas.lib", "pandas._libs.lib", "X" - "pandas.tslib", "pandas._libs.tslib", "X" - "pandas._join", "pandas._libs.join", "" - "pandas._period", "pandas._libs.period", "" - "pandas.computation", "pandas.core.computation", "" - "pandas.msgpack", "pandas.io.msgpack", "" - "pandas.index", "pandas._libs.index", "" - "pandas.algos", "pandas._libs.algos", "" - "pandas.hashtable", "pandas._libs.hashtable", "" - "pandas.json", "pandas.io.json.libjson", "X" - "pandas.parser", "pandas.io.libparsers", "X" - "pandas.types", "pandas.core.typed", "" - "pandas.io.sas.saslib", "pandas.io.sas.libsas", "" - "pandas._testing", "pandas.util.libtesting", "" - "pandas._sparse", "pandas.sparse.libsparse", "" - "pandas._hash", "pandas.tools.libhash", "" - "pandas._window", "pandas.core.libwindow", "" - -- The function :func:`~pandas.api.type.union_categoricals` is now importable from ``pandas.api.types``, formerly from ``pandas.types.concat`` (:issue:`15998`) - .. _whatsnew_0200.api_breaking.sort_index: DataFrame.sort_index changes @@ -1364,6 +1331,44 @@ Other API Changes Development Changes ~~~~~~~~~~~~~~~~~~~ +.. _whatsnew_0200.develop.privacy: + +Modules Privacy Has Changed +^^^^^^^^^^^^^^^^^^^^^^^^^^^ + +Some formerly public python/c/c++/cython extension modules have been moved and/or renamed. These are all removed from the public API. +Further more, the ``pandas.core``, ``pandas.io``, and ``pandas.util`` top-level modules are now considered to be PRIVATE. +If indicated, a deprecation warning will be issued if you reference that module. (:issue:`12588`) + +.. csv-table:: + :header: "Previous Location", "New Location", "Deprecated" + :widths: 30, 30, 4 + + "pandas.lib", "pandas._libs.lib", "X" + "pandas.tslib", "pandas._libs.tslib", "X" + "pandas._join", "pandas._libs.join", "" + "pandas._period", "pandas._libs.period", "" + "pandas.computation", "pandas.core.computation", "" + "pandas.msgpack", "pandas.io.msgpack", "" + "pandas.index", "pandas._libs.index", "" + "pandas.algos", "pandas._libs.algos", "" + "pandas.hashtable", "pandas._libs.hashtable", "" + "pandas.json", "pandas.io.json.libjson", "X" + "pandas.parser", "pandas.io.libparsers", "X" + "pandas.types", "pandas.core.typed", "" + "pandas.io.sas.saslib", "pandas.io.sas.libsas", "" + "pandas._testing", "pandas.util.libtesting", "" + "pandas._sparse", "pandas.sparse.libsparse", "" + "pandas._hash", "pandas.tools.libhash", "" + "pandas._window", "pandas.core.libwindow", "" + +- The function :func:`~pandas.api.type.union_categoricals` is now importable from ``pandas.api.types``, formerly from ``pandas.types.concat`` (:issue:`15998`) + +.. _whatsnew_0200.develop.other: + +Other Changes +^^^^^^^^^^^^^ + - Building pandas for development now requires ``cython >= 0.23`` (:issue:`14831`) - Require at least 0.23 version of cython to avoid problems with character encodings (:issue:`14699`) - Reorganization of timeseries tests (:issue:`14854`) From f63b76c0a9fc135f647616070fe650669d935779 Mon Sep 17 00:00:00 2001 From: Jeff Reback Date: Sat, 15 Apr 2017 10:29:39 -0400 Subject: [PATCH 06/11] CLN: pandas.sparse -> pandas.core.sparse --- asv_bench/benchmarks/sparse.py | 4 +- doc/source/whatsnew/v0.20.0.txt | 84 ++++++++++--------- pandas/__init__.py | 2 +- pandas/compat/pickle_compat.py | 14 +++- pandas/core/dtypes/concat.py | 8 +- pandas/core/frame.py | 2 +- pandas/core/internals.py | 2 +- pandas/core/reshape.py | 6 +- pandas/core/series.py | 4 +- pandas/core/sparse.py | 10 --- pandas/{ => core}/sparse/__init__.py | 0 pandas/core/sparse/api.py | 6 ++ pandas/{ => core}/sparse/array.py | 4 +- pandas/{ => core}/sparse/frame.py | 4 +- pandas/{ => core}/sparse/list.py | 4 +- pandas/{ => core}/sparse/scipy_sparse.py | 0 pandas/{ => core}/sparse/series.py | 16 ++-- pandas/{ => core}/sparse/sparse.pyx | 0 .../{ => core}/sparse/sparse_op_helper.pxi.in | 0 pandas/io/packers.py | 4 +- pandas/io/pytables.py | 2 +- pandas/plotting/_converter.py | 12 +-- pandas/plotting/_core.py | 11 +-- pandas/plotting/_misc.py | 2 +- pandas/plotting/_style.py | 2 +- pandas/plotting/_tools.py | 2 +- pandas/sparse/api.py | 6 -- pandas/tests/api/test_api.py | 7 +- .../{sparse/common.py => core/conftest.py} | 1 - pandas/tests/core/dtypes/test_inference.py | 2 - pandas/tests/{ => core}/sparse/__init__.py | 0 pandas/tests/core/sparse/common.py | 0 .../{ => core}/sparse/test_arithmetics.py | 0 pandas/tests/{ => core}/sparse/test_array.py | 4 +- .../{ => core}/sparse/test_combine_concat.py | 0 pandas/tests/{ => core}/sparse/test_format.py | 0 pandas/tests/{ => core}/sparse/test_frame.py | 10 +-- .../tests/{ => core}/sparse/test_groupby.py | 0 .../tests/{ => core}/sparse/test_indexing.py | 0 .../tests/{ => core}/sparse/test_libsparse.py | 4 +- pandas/tests/{ => core}/sparse/test_list.py | 2 +- pandas/tests/{ => core}/sparse/test_pivot.py | 0 pandas/tests/{ => core}/sparse/test_series.py | 6 +- pandas/tests/formats/test_format.py | 29 ++++--- pandas/tests/frame/test_indexing.py | 2 +- pandas/tests/test_internals.py | 2 +- pandas/util/testing.py | 8 +- setup.py | 14 ++-- vb_suite/sparse.py | 4 +- 49 files changed, 153 insertions(+), 153 deletions(-) delete mode 100644 pandas/core/sparse.py rename pandas/{ => core}/sparse/__init__.py (100%) create mode 100644 pandas/core/sparse/api.py rename pandas/{ => core}/sparse/array.py (99%) rename pandas/{ => core}/sparse/frame.py (99%) rename pandas/{ => core}/sparse/list.py (97%) rename pandas/{ => core}/sparse/scipy_sparse.py (100%) rename pandas/{ => core}/sparse/series.py (98%) rename pandas/{ => core}/sparse/sparse.pyx (100%) rename pandas/{ => core}/sparse/sparse_op_helper.pxi.in (100%) delete mode 100644 pandas/sparse/api.py rename pandas/tests/{sparse/common.py => core/conftest.py} (99%) rename pandas/tests/{ => core}/sparse/__init__.py (100%) create mode 100644 pandas/tests/core/sparse/common.py rename pandas/tests/{ => core}/sparse/test_arithmetics.py (100%) rename pandas/tests/{ => core}/sparse/test_array.py (99%) rename pandas/tests/{ => core}/sparse/test_combine_concat.py (100%) rename pandas/tests/{ => core}/sparse/test_format.py (100%) rename pandas/tests/{ => core}/sparse/test_frame.py (99%) rename pandas/tests/{ => core}/sparse/test_groupby.py (100%) rename pandas/tests/{ => core}/sparse/test_indexing.py (100%) rename pandas/tests/{ => core}/sparse/test_libsparse.py (99%) rename pandas/tests/{ => core}/sparse/test_list.py (98%) rename pandas/tests/{ => core}/sparse/test_pivot.py (100%) rename pandas/tests/{ => core}/sparse/test_series.py (99%) diff --git a/asv_bench/benchmarks/sparse.py b/asv_bench/benchmarks/sparse.py index 717fe7218ceda..7d424592ed877 100644 --- a/asv_bench/benchmarks/sparse.py +++ b/asv_bench/benchmarks/sparse.py @@ -1,5 +1,5 @@ from .pandas_vb_common import * -import pandas.sparse.series +import pandas.core.sparse.series import scipy.sparse from pandas.core.sparse import SparseSeries, SparseDataFrame from pandas.core.sparse import SparseDataFrame @@ -37,7 +37,7 @@ def setup(self): self.A = scipy.sparse.coo_matrix(([3.0, 1.0, 2.0], ([1, 0, 0], [0, 2, 3])), shape=(100, 100)) def time_sparse_series_from_coo(self): - self.ss = pandas.sparse.series.SparseSeries.from_coo(self.A) + self.ss = pandas.core.sparse.series.SparseSeries.from_coo(self.A) class sparse_series_to_coo(object): diff --git a/doc/source/whatsnew/v0.20.0.txt b/doc/source/whatsnew/v0.20.0.txt index 250f09dcd488d..33d80f8347b0a 100644 --- a/doc/source/whatsnew/v0.20.0.txt +++ b/doc/source/whatsnew/v0.20.0.txt @@ -21,8 +21,11 @@ Highlights include: - Support for S3 handling now uses ``s3fs``, see :ref:`here ` - Google BigQuery support now uses the ``pandas-gbq`` library, see :ref:`here ` - Switched the test framework to use `pytest `__ (:issue:`13097`) -- The ``pandas.tools.plotting`` module has been deprecated, moved to ``pandas.plotting``. See :ref:`here ` +.. warning:: + + Pandas has changed the internal structure and layout of the codebase. + This can affect imports that are not from the top-level ``pandas.*`` namespace, please see the changes :ref:`here `. Check the :ref:`API Changes ` and :ref:`deprecations ` before updating. @@ -558,31 +561,6 @@ Using ``.iloc``. Here we will get the location of the 'A' column, then use *posi df.iloc[[0, 2], df.columns.get_loc('A')] -.. _whatsnew_0200.api_breaking.deprecate_plotting - -Deprecate .plotting -^^^^^^^^^^^^^^^^^^^ - -The ``pandas.tools.plotting`` module has been deprecated, in favor of the top level ``pandas.plotting`` module. All the public plotting functions are now available -from ``pandas.plotting`` (:issue:`12548`). - -Furthermore, the top-level ``pandas.scatter_matrix`` and ``pandas.plot_params`` are deprecated. -Users can import these from ``pandas.plotting`` as well. - -Previous script: - -.. code-block:: python - - pd.tools.plotting.scatter_matrix(df) - pd.scatter_matrix(df) - -Should be changed to: - -.. code-block:: python - - pd.plotting.scatter_matrix(df) - - .. _whatsnew_0200.api_breaking.deprecate_panel: Deprecate Panel @@ -1326,19 +1304,19 @@ Other API Changes - ``DataFrame`` and ``Panel`` constructors with invalid input will now raise ``ValueError`` rather than ``pandas.core.common.PandasError``, if called with scalar inputs and not axes; The exception ``PandasError`` is removed as well. (:issue:`15541`) - The exception ``pandas.core.common.AmbiguousIndexError`` is removed as it is not referenced (:issue:`15541`) -.. _whatsnew_0200.develop: +.. _whatsnew_0200.privacy: -Development Changes -~~~~~~~~~~~~~~~~~~~ +Privacy Changes +~~~~~~~~~~~~~~~ -.. _whatsnew_0200.develop.privacy: +.. _whatsnew_0200.privacy.extensions: Modules Privacy Has Changed ^^^^^^^^^^^^^^^^^^^^^^^^^^^ Some formerly public python/c/c++/cython extension modules have been moved and/or renamed. These are all removed from the public API. -Further more, the ``pandas.core``, ``pandas.io``, and ``pandas.util`` top-level modules are now considered to be PRIVATE. -If indicated, a deprecation warning will be issued if you reference that module. (:issue:`12588`) +Furthermore, the ``pandas.core``, ``pandas.io``, and ``pandas.util`` top-level modules are now considered to be PRIVATE. +If indicated, a deprecation warning will be issued if you reference theses modules. (:issue:`12588`) .. csv-table:: :header: "Previous Location", "New Location", "Deprecated" @@ -1346,8 +1324,6 @@ If indicated, a deprecation warning will be issued if you reference that module. "pandas.lib", "pandas._libs.lib", "X" "pandas.tslib", "pandas._libs.tslib", "X" - "pandas._join", "pandas._libs.join", "" - "pandas._period", "pandas._libs.period", "" "pandas.computation", "pandas.core.computation", "" "pandas.msgpack", "pandas.io.msgpack", "" "pandas.index", "pandas._libs.index", "" @@ -1355,19 +1331,47 @@ If indicated, a deprecation warning will be issued if you reference that module. "pandas.hashtable", "pandas._libs.hashtable", "" "pandas.json", "pandas.io.json.libjson", "X" "pandas.parser", "pandas.io.libparsers", "X" - "pandas.types", "pandas.core.typed", "" + "pandas.sparse", "pandas.core.sparse", "" + "pandas.types", "pandas.core.dtypes", "" "pandas.io.sas.saslib", "pandas.io.sas.libsas", "" - "pandas._testing", "pandas.util.libtesting", "" - "pandas._sparse", "pandas.sparse.libsparse", "" + "pandas._join", "pandas._libs.join", "" "pandas._hash", "pandas.tools.libhash", "" + "pandas._period", "pandas._libs.period", "" + "pandas._sparse", "pandas.core.sparse.libsparse", "" + "pandas._testing", "pandas.util.libtesting", "" "pandas._window", "pandas.core.libwindow", "" - The function :func:`~pandas.api.type.union_categoricals` is now importable from ``pandas.api.types``, formerly from ``pandas.types.concat`` (:issue:`15998`) -.. _whatsnew_0200.develop.other: +.. _whatsnew_0200.privacy.deprecate_plotting -Other Changes -^^^^^^^^^^^^^ +Deprecate .plotting +^^^^^^^^^^^^^^^^^^^ + +The ``pandas.tools.plotting`` module has been deprecated, in favor of the top level ``pandas.plotting`` module. All the public plotting functions are now available +from ``pandas.plotting`` (:issue:`12548`). + +Furthermore, the top-level ``pandas.scatter_matrix`` and ``pandas.plot_params`` are deprecated. +Users can import these from ``pandas.plotting`` as well. + +Previous script: + +.. code-block:: python + + pd.tools.plotting.scatter_matrix(df) + pd.scatter_matrix(df) + +Should be changed to: + +.. code-block:: python + + pd.plotting.scatter_matrix(df) + + +.. _whatsnew_0200.privacy.development: + +Other Developement Changes +^^^^^^^^^^^^^^^^^^^^^^^^^^ - Building pandas for development now requires ``cython >= 0.23`` (:issue:`14831`) - Require at least 0.23 version of cython to avoid problems with character encodings (:issue:`14699`) diff --git a/pandas/__init__.py b/pandas/__init__.py index 13f3b9bf528c1..4e1bcbd613965 100644 --- a/pandas/__init__.py +++ b/pandas/__init__.py @@ -40,7 +40,7 @@ import pandas.core.config_init from pandas.core.api import * -from pandas.sparse.api import * +from pandas.core.sparse.api import * from pandas.stats.api import * from pandas.tseries.api import * from pandas.core.computation.api import * diff --git a/pandas/compat/pickle_compat.py b/pandas/compat/pickle_compat.py index 5b4fcad252192..e977fdc3a267d 100644 --- a/pandas/compat/pickle_compat.py +++ b/pandas/compat/pickle_compat.py @@ -67,16 +67,24 @@ def load_reduce(self): ('pandas.core.series', 'TimeSeries'): ('pandas.core.series', 'Series'), ('pandas.sparse.series', 'SparseTimeSeries'): - ('pandas.sparse.series', 'SparseSeries'), + ('pandas.core.sparse.series', 'SparseSeries'), # 12588, extensions moving ('pandas._sparse', 'BlockIndex'): - ('pandas.sparse.libsparse', 'BlockIndex'), + ('pandas.core.sparse.libsparse', 'BlockIndex'), ('pandas.tslib', 'Timestamp'): ('pandas._libs.tslib', 'Timestamp'), ('pandas.tslib', '__nat_unpickle'): ('pandas._libs.tslib', '__nat_unpickle'), - ('pandas._period', 'Period'): ('pandas._libs.period', 'Period') + ('pandas._period', 'Period'): ('pandas._libs.period', 'Period'), + + # 15998 top-level dirs moving + ('pandas.sparse.array', 'SparseArray'): + ('pandas.core.sparse.array', 'SparseArray'), + ('pandas.sparse.series', 'SparseSeries'): + ('pandas.core.sparse.series', 'SparseSeries'), + ('pandas.sparse.frame', 'SparseDataFrame'): + ('pandas.core.sparse.frame', 'SparseDataFrame') } diff --git a/pandas/core/dtypes/concat.py b/pandas/core/dtypes/concat.py index 56d24e411325e..ddff78c9d511f 100644 --- a/pandas/core/dtypes/concat.py +++ b/pandas/core/dtypes/concat.py @@ -69,7 +69,7 @@ def _get_series_result_type(result): if isinstance(result, dict): # concat Series with axis 1 if all(is_sparse(c) for c in compat.itervalues(result)): - from pandas.sparse.api import SparseDataFrame + from pandas.core.sparse.api import SparseDataFrame return SparseDataFrame else: from pandas.core.frame import DataFrame @@ -77,7 +77,7 @@ def _get_series_result_type(result): elif is_sparse(result): # concat Series with axis 1 - from pandas.sparse.api import SparseSeries + from pandas.core.sparse.api import SparseSeries return SparseSeries else: from pandas.core.series import Series @@ -91,7 +91,7 @@ def _get_frame_result_type(result, objs): otherwise, return 1st obj """ if any(b.is_sparse for b in result.blocks): - from pandas.sparse.api import SparseDataFrame + from pandas.core.sparse.api import SparseDataFrame return SparseDataFrame else: return objs[0] @@ -438,7 +438,7 @@ def _concat_sparse(to_concat, axis=0, typs=None): a single array, preserving the combined dtypes """ - from pandas.sparse.array import SparseArray, _make_index + from pandas.core.sparse.array import SparseArray, _make_index def convert_sparse(x, axis): # coerce to native type diff --git a/pandas/core/frame.py b/pandas/core/frame.py index 4bcd706dfdd59..3a5a0e7044e79 100644 --- a/pandas/core/frame.py +++ b/pandas/core/frame.py @@ -1271,7 +1271,7 @@ def to_sparse(self, fill_value=None, kind='block'): ------- y : SparseDataFrame """ - from pandas.core.sparse import SparseDataFrame + from pandas.core.sparse.frame import SparseDataFrame return SparseDataFrame(self._series, index=self.index, columns=self.columns, default_kind=kind, default_fill_value=fill_value) diff --git a/pandas/core/internals.py b/pandas/core/internals.py index d3eb3516c53e7..f7d7efd66f8db 100644 --- a/pandas/core/internals.py +++ b/pandas/core/internals.py @@ -58,7 +58,7 @@ from pandas.formats.printing import pprint_thing import pandas.core.missing as missing -from pandas.sparse.array import _maybe_to_sparse, SparseArray +from pandas.core.sparse.array import _maybe_to_sparse, SparseArray from pandas._libs import lib, tslib from pandas._libs.tslib import Timedelta from pandas._libs.lib import BlockPlacement diff --git a/pandas/core/reshape.py b/pandas/core/reshape.py index 6c1abac8fbff5..b3a06d85967f2 100644 --- a/pandas/core/reshape.py +++ b/pandas/core/reshape.py @@ -18,9 +18,9 @@ from pandas.core.series import Series from pandas.core.frame import DataFrame -from pandas.core.sparse import SparseDataFrame, SparseSeries -from pandas.sparse.array import SparseArray -from pandas.sparse.libsparse import IntIndex +from pandas.core.sparse.api import SparseDataFrame, SparseSeries +from pandas.core.sparse.array import SparseArray +from pandas.core.sparse.libsparse import IntIndex from pandas.core.categorical import Categorical, _factorize_from_iterable from pandas.core.sorting import (get_group_index, get_compressed_ids, diff --git a/pandas/core/series.py b/pandas/core/series.py index d90abcb07a3b0..596dae4345cb3 100644 --- a/pandas/core/series.py +++ b/pandas/core/series.py @@ -257,7 +257,7 @@ def from_array(cls, arr, index=None, name=None, dtype=None, copy=False, fastpath=False): # return a sparse series here if isinstance(arr, ABCSparseArray): - from pandas.sparse.series import SparseSeries + from pandas.core.sparse.series import SparseSeries cls = SparseSeries return cls(arr, index=index, name=name, dtype=dtype, copy=copy, @@ -1132,7 +1132,7 @@ def to_sparse(self, kind='block', fill_value=None): ------- sp : SparseSeries """ - from pandas.core.sparse import SparseSeries + from pandas.core.sparse.series import SparseSeries return SparseSeries(self, kind=kind, fill_value=fill_value).__finalize__(self) diff --git a/pandas/core/sparse.py b/pandas/core/sparse.py deleted file mode 100644 index 4fc329844d616..0000000000000 --- a/pandas/core/sparse.py +++ /dev/null @@ -1,10 +0,0 @@ -""" -Data structures for sparse float data. Life is made simpler by dealing only -with float64 data -""" - -# pylint: disable=W0611 -# flake8: noqa - -from pandas.sparse.series import SparseSeries -from pandas.sparse.frame import SparseDataFrame diff --git a/pandas/sparse/__init__.py b/pandas/core/sparse/__init__.py similarity index 100% rename from pandas/sparse/__init__.py rename to pandas/core/sparse/__init__.py diff --git a/pandas/core/sparse/api.py b/pandas/core/sparse/api.py new file mode 100644 index 0000000000000..f79bb4886da4b --- /dev/null +++ b/pandas/core/sparse/api.py @@ -0,0 +1,6 @@ +# pylint: disable=W0611 +# flake8: noqa +from pandas.core.sparse.array import SparseArray +from pandas.core.sparse.list import SparseList +from pandas.core.sparse.series import SparseSeries +from pandas.core.sparse.frame import SparseDataFrame diff --git a/pandas/sparse/array.py b/pandas/core/sparse/array.py similarity index 99% rename from pandas/sparse/array.py rename to pandas/core/sparse/array.py index 154f4f0cf7b9a..74e9be54ae6df 100644 --- a/pandas/sparse/array.py +++ b/pandas/core/sparse/array.py @@ -29,8 +29,8 @@ astype_nansafe, find_common_type) from pandas.core.dtypes.missing import isnull, notnull, na_value_for_dtype -from pandas.sparse import libsparse as splib -from pandas.sparse.libsparse import SparseIndex, BlockIndex, IntIndex +from pandas.core.sparse import libsparse as splib +from pandas.core.sparse.libsparse import SparseIndex, BlockIndex, IntIndex from pandas._libs import index as libindex import pandas.core.algorithms as algos import pandas.core.ops as ops diff --git a/pandas/sparse/frame.py b/pandas/core/sparse/frame.py similarity index 99% rename from pandas/sparse/frame.py rename to pandas/core/sparse/frame.py index bdaea955f399e..05c97fac4b53a 100644 --- a/pandas/sparse/frame.py +++ b/pandas/core/sparse/frame.py @@ -24,8 +24,8 @@ from pandas.core.internals import (BlockManager, create_block_manager_from_arrays) import pandas.core.generic as generic -from pandas.sparse.series import SparseSeries, SparseArray -from pandas.sparse.libsparse import BlockIndex, get_blocks +from pandas.core.sparse.series import SparseSeries, SparseArray +from pandas.core.sparse.libsparse import BlockIndex, get_blocks from pandas.util.decorators import Appender import pandas.core.ops as ops diff --git a/pandas/sparse/list.py b/pandas/core/sparse/list.py similarity index 97% rename from pandas/sparse/list.py rename to pandas/core/sparse/list.py index 69e51ed1fb246..381a811ac828b 100644 --- a/pandas/sparse/list.py +++ b/pandas/core/sparse/list.py @@ -4,9 +4,9 @@ from pandas.formats.printing import pprint_thing from pandas.core.dtypes.common import is_scalar -from pandas.sparse.array import SparseArray +from pandas.core.sparse.array import SparseArray from pandas.util.validators import validate_bool_kwarg -import pandas.sparse.libsparse as splib +from pandas.core.sparse import libsparse as splib class SparseList(PandasObject): diff --git a/pandas/sparse/scipy_sparse.py b/pandas/core/sparse/scipy_sparse.py similarity index 100% rename from pandas/sparse/scipy_sparse.py rename to pandas/core/sparse/scipy_sparse.py diff --git a/pandas/sparse/series.py b/pandas/core/sparse/series.py similarity index 98% rename from pandas/sparse/series.py rename to pandas/core/sparse/series.py index b3b133c809e21..a77bce8f06783 100644 --- a/pandas/sparse/series.py +++ b/pandas/core/sparse/series.py @@ -23,13 +23,15 @@ import pandas._libs.index as _index from pandas.util.decorators import Appender -from pandas.sparse.array import (make_sparse, _sparse_array_op, SparseArray, - _make_index) -from pandas.sparse.libsparse import BlockIndex, IntIndex -import pandas.sparse.libsparse as splib +from pandas.core.sparse.array import ( + make_sparse, _sparse_array_op, SparseArray, + _make_index) +from pandas.core.sparse.libsparse import BlockIndex, IntIndex +import pandas.core.sparse.libsparse as splib -from pandas.sparse.scipy_sparse import (_sparse_series_to_coo, - _coo_to_sparse_series) +from pandas.core.sparse.scipy_sparse import ( + _sparse_series_to_coo, + _coo_to_sparse_series) _shared_doc_kwargs = dict(axes='index', klass='SparseSeries', @@ -264,7 +266,7 @@ def _constructor(self): @property def _constructor_expanddim(self): - from pandas.sparse.api import SparseDataFrame + from pandas.core.sparse.api import SparseDataFrame return SparseDataFrame @property diff --git a/pandas/sparse/sparse.pyx b/pandas/core/sparse/sparse.pyx similarity index 100% rename from pandas/sparse/sparse.pyx rename to pandas/core/sparse/sparse.pyx diff --git a/pandas/sparse/sparse_op_helper.pxi.in b/pandas/core/sparse/sparse_op_helper.pxi.in similarity index 100% rename from pandas/sparse/sparse_op_helper.pxi.in rename to pandas/core/sparse/sparse_op_helper.pxi.in diff --git a/pandas/io/packers.py b/pandas/io/packers.py index 587dc2d1f2389..a4b454eda7472 100644 --- a/pandas/io/packers.py +++ b/pandas/io/packers.py @@ -57,8 +57,8 @@ Panel, RangeIndex, PeriodIndex, DatetimeIndex, NaT, Categorical, CategoricalIndex) from pandas._libs.tslib import NaTType -from pandas.sparse.api import SparseSeries, SparseDataFrame -from pandas.sparse.array import BlockIndex, IntIndex +from pandas.core.sparse.api import SparseSeries, SparseDataFrame +from pandas.core.sparse.array import BlockIndex, IntIndex from pandas.core.generic import NDFrame from pandas.errors import PerformanceWarning from pandas.io.common import get_filepath_or_buffer diff --git a/pandas/io/pytables.py b/pandas/io/pytables.py index 17b52d9ed0852..4771134f3fe5c 100644 --- a/pandas/io/pytables.py +++ b/pandas/io/pytables.py @@ -30,7 +30,7 @@ DatetimeIndex, TimedeltaIndex) from pandas.core import config from pandas.io.common import _stringify_path -from pandas.sparse.array import BlockIndex, IntIndex +from pandas.core.sparse.array import BlockIndex, IntIndex from pandas.core.base import StringMixin from pandas.formats.printing import adjoin, pprint_thing from pandas.errors import PerformanceWarning diff --git a/pandas/plotting/_converter.py b/pandas/plotting/_converter.py index 0aa8cc31646c5..0e51e95057be2 100644 --- a/pandas/plotting/_converter.py +++ b/pandas/plotting/_converter.py @@ -11,12 +11,12 @@ from matplotlib.transforms import nonsingular -from pandas.types.common import (is_float, is_integer, - is_integer_dtype, - is_float_dtype, - is_datetime64_ns_dtype, - is_period_arraylike, - ) +from pandas.core.dtypes.common import ( + is_float, is_integer, + is_integer_dtype, + is_float_dtype, + is_datetime64_ns_dtype, + is_period_arraylike) from pandas.compat import lrange import pandas.compat as compat diff --git a/pandas/plotting/_core.py b/pandas/plotting/_core.py index 3980f5e7f2f61..02f2df4949189 100644 --- a/pandas/plotting/_core.py +++ b/pandas/plotting/_core.py @@ -11,11 +11,12 @@ from pandas.util.decorators import cache_readonly from pandas.core.base import PandasObject -from pandas.types.common import (is_list_like, - is_integer, - is_number, - is_hashable, - is_iterator) +from pandas.core.dtypes.common import ( + is_list_like, + is_integer, + is_number, + is_hashable, + is_iterator) from pandas.core.common import AbstractMethodError, isnull, _try_sort from pandas.core.generic import _shared_docs, _shared_doc_kwargs from pandas.core.index import Index, MultiIndex diff --git a/pandas/plotting/_misc.py b/pandas/plotting/_misc.py index 2c32a532dd2e2..f09bcef82b45d 100644 --- a/pandas/plotting/_misc.py +++ b/pandas/plotting/_misc.py @@ -5,7 +5,7 @@ import numpy as np from pandas.util.decorators import deprecate_kwarg -from pandas.types.missing import notnull +from pandas.core.dtypes.missing import notnull from pandas.compat import range, lrange, lmap, zip from pandas.formats.printing import pprint_thing diff --git a/pandas/plotting/_style.py b/pandas/plotting/_style.py index 5d6dc7cbcdfc6..8cb4e30e0d91c 100644 --- a/pandas/plotting/_style.py +++ b/pandas/plotting/_style.py @@ -8,7 +8,7 @@ import numpy as np -from pandas.types.common import is_list_like +from pandas.core.dtypes.common import is_list_like from pandas.compat import range, lrange, lmap import pandas.compat as compat from pandas.plotting._compat import _mpl_ge_2_0_0 diff --git a/pandas/plotting/_tools.py b/pandas/plotting/_tools.py index 720f776279869..0c2314087525c 100644 --- a/pandas/plotting/_tools.py +++ b/pandas/plotting/_tools.py @@ -7,7 +7,7 @@ import numpy as np -from pandas.types.common import is_list_like +from pandas.core.dtypes.common import is_list_like from pandas.core.index import Index from pandas.core.series import Series from pandas.compat import range diff --git a/pandas/sparse/api.py b/pandas/sparse/api.py deleted file mode 100644 index 90be0a216535f..0000000000000 --- a/pandas/sparse/api.py +++ /dev/null @@ -1,6 +0,0 @@ -# pylint: disable=W0611 -# flake8: noqa -from pandas.sparse.array import SparseArray -from pandas.sparse.list import SparseList -from pandas.sparse.series import SparseSeries -from pandas.sparse.frame import SparseDataFrame diff --git a/pandas/tests/api/test_api.py b/pandas/tests/api/test_api.py index b95699fb25bcb..221458e629055 100644 --- a/pandas/tests/api/test_api.py +++ b/pandas/tests/api/test_api.py @@ -31,17 +31,14 @@ class TestPDApi(Base, tm.TestCase): # top-level sub-packages lib = ['api', 'compat', 'core', - 'indexes', 'formats', 'errors', 'pandas', 'plotting' - 'test', 'tools', 'tseries', 'sparse', + 'indexes', 'formats', 'errors', 'pandas', + 'plotting', 'test', 'tools', 'tseries', 'util', 'options', 'io'] # these are already deprecated; awaiting removal deprecated_modules = ['stats', 'datetools', 'parser', 'json', 'lib', 'tslib'] - # to be deprecated or removed - to_be_deprecated_moduels = ['computation', 'types'] - # misc misc = ['IndexSlice', 'NaT'] diff --git a/pandas/tests/sparse/common.py b/pandas/tests/core/conftest.py similarity index 99% rename from pandas/tests/sparse/common.py rename to pandas/tests/core/conftest.py index 3aeef8d436e1a..1dd239edbf9f3 100644 --- a/pandas/tests/sparse/common.py +++ b/pandas/tests/core/conftest.py @@ -1,5 +1,4 @@ import pytest - import pandas.util.testing as tm diff --git a/pandas/tests/core/dtypes/test_inference.py b/pandas/tests/core/dtypes/test_inference.py index 12db7aafe0f37..94d1d21d59d88 100644 --- a/pandas/tests/core/dtypes/test_inference.py +++ b/pandas/tests/core/dtypes/test_inference.py @@ -37,8 +37,6 @@ from pandas.core.dtypes.missing import isnull from pandas.util import testing as tm -from pandas.tests.sparse.test_frame import spmatrix # noqa: F401 - def test_is_sequence(): is_seq = inference.is_sequence diff --git a/pandas/tests/sparse/__init__.py b/pandas/tests/core/sparse/__init__.py similarity index 100% rename from pandas/tests/sparse/__init__.py rename to pandas/tests/core/sparse/__init__.py diff --git a/pandas/tests/core/sparse/common.py b/pandas/tests/core/sparse/common.py new file mode 100644 index 0000000000000..e69de29bb2d1d diff --git a/pandas/tests/sparse/test_arithmetics.py b/pandas/tests/core/sparse/test_arithmetics.py similarity index 100% rename from pandas/tests/sparse/test_arithmetics.py rename to pandas/tests/core/sparse/test_arithmetics.py diff --git a/pandas/tests/sparse/test_array.py b/pandas/tests/core/sparse/test_array.py similarity index 99% rename from pandas/tests/sparse/test_array.py rename to pandas/tests/core/sparse/test_array.py index 15531cecfe79b..b7b664e7bfb8a 100644 --- a/pandas/tests/sparse/test_array.py +++ b/pandas/tests/core/sparse/test_array.py @@ -7,8 +7,8 @@ import numpy as np from pandas import _np_version_under1p8 -from pandas.sparse.api import SparseArray, SparseSeries -from pandas.sparse.libsparse import IntIndex +from pandas.core.sparse.api import SparseArray, SparseSeries +from pandas.core.sparse.libsparse import IntIndex from pandas.util.testing import assert_almost_equal, assertRaisesRegexp import pandas.util.testing as tm diff --git a/pandas/tests/sparse/test_combine_concat.py b/pandas/tests/core/sparse/test_combine_concat.py similarity index 100% rename from pandas/tests/sparse/test_combine_concat.py rename to pandas/tests/core/sparse/test_combine_concat.py diff --git a/pandas/tests/sparse/test_format.py b/pandas/tests/core/sparse/test_format.py similarity index 100% rename from pandas/tests/sparse/test_format.py rename to pandas/tests/core/sparse/test_format.py diff --git a/pandas/tests/sparse/test_frame.py b/pandas/tests/core/sparse/test_frame.py similarity index 99% rename from pandas/tests/sparse/test_frame.py rename to pandas/tests/core/sparse/test_frame.py index cb04875a958d0..adb813a27e7e9 100644 --- a/pandas/tests/sparse/test_frame.py +++ b/pandas/tests/core/sparse/test_frame.py @@ -16,17 +16,15 @@ is_float) from pandas.tseries.index import DatetimeIndex from pandas.tseries.offsets import BDay -import pandas.util.testing as tm +from pandas.util import testing as tm from pandas.compat import lrange from pandas import compat -import pandas.sparse.frame as spf +from pandas.core.sparse import frame as spf -from pandas.sparse.libsparse import BlockIndex, IntIndex -from pandas.sparse.api import SparseSeries, SparseDataFrame, SparseArray +from pandas.core.sparse.libsparse import BlockIndex, IntIndex +from pandas.core.sparse.api import SparseSeries, SparseDataFrame, SparseArray from pandas.tests.frame.test_api import SharedWithSparse -from pandas.tests.sparse.common import spmatrix # noqa: F401 - class TestSparseDataFrame(tm.TestCase, SharedWithSparse): klass = SparseDataFrame diff --git a/pandas/tests/sparse/test_groupby.py b/pandas/tests/core/sparse/test_groupby.py similarity index 100% rename from pandas/tests/sparse/test_groupby.py rename to pandas/tests/core/sparse/test_groupby.py diff --git a/pandas/tests/sparse/test_indexing.py b/pandas/tests/core/sparse/test_indexing.py similarity index 100% rename from pandas/tests/sparse/test_indexing.py rename to pandas/tests/core/sparse/test_indexing.py diff --git a/pandas/tests/sparse/test_libsparse.py b/pandas/tests/core/sparse/test_libsparse.py similarity index 99% rename from pandas/tests/sparse/test_libsparse.py rename to pandas/tests/core/sparse/test_libsparse.py index 696d2cf47f4c0..e4c3d6d3050cb 100644 --- a/pandas/tests/sparse/test_libsparse.py +++ b/pandas/tests/core/sparse/test_libsparse.py @@ -7,8 +7,8 @@ from pandas import compat -from pandas.sparse.array import IntIndex, BlockIndex, _make_index -import pandas.sparse.libsparse as splib +from pandas.core.sparse.array import IntIndex, BlockIndex, _make_index +import pandas.core.sparse.libsparse as splib TEST_LENGTH = 20 diff --git a/pandas/tests/sparse/test_list.py b/pandas/tests/core/sparse/test_list.py similarity index 98% rename from pandas/tests/sparse/test_list.py rename to pandas/tests/core/sparse/test_list.py index 8511cd5997368..9f91d73a8228a 100644 --- a/pandas/tests/sparse/test_list.py +++ b/pandas/tests/core/sparse/test_list.py @@ -4,7 +4,7 @@ from numpy import nan import numpy as np -from pandas.sparse.api import SparseList, SparseArray +from pandas.core.sparse.api import SparseList, SparseArray import pandas.util.testing as tm diff --git a/pandas/tests/sparse/test_pivot.py b/pandas/tests/core/sparse/test_pivot.py similarity index 100% rename from pandas/tests/sparse/test_pivot.py rename to pandas/tests/core/sparse/test_pivot.py diff --git a/pandas/tests/sparse/test_series.py b/pandas/tests/core/sparse/test_series.py similarity index 99% rename from pandas/tests/sparse/test_series.py rename to pandas/tests/core/sparse/test_series.py index 83f0237841dbd..0b71dffe1782b 100644 --- a/pandas/tests/sparse/test_series.py +++ b/pandas/tests/core/sparse/test_series.py @@ -14,10 +14,10 @@ from pandas import compat from pandas.tools.util import cartesian_product -import pandas.sparse.frame as spf +import pandas.core.sparse.frame as spf -from pandas.sparse.libsparse import BlockIndex, IntIndex -from pandas.sparse.api import SparseSeries +from pandas.core.sparse.libsparse import BlockIndex, IntIndex +from pandas.core.sparse.api import SparseSeries from pandas.tests.series.test_api import SharedWithSparse diff --git a/pandas/tests/formats/test_format.py b/pandas/tests/formats/test_format.py index 83458c82a3d7c..92f6a600a9e2a 100644 --- a/pandas/tests/formats/test_format.py +++ b/pandas/tests/formats/test_format.py @@ -1420,20 +1420,23 @@ def test_repr_html_wide_multiindex_cols(self): assert '...' in wide_repr def test_repr_html_long(self): - max_rows = get_option('display.max_rows') - h = max_rows - 1 - df = DataFrame({'A': np.arange(1, 1 + h), 'B': np.arange(41, 41 + h)}) - reg_repr = df._repr_html_() - assert '..' not in reg_repr - assert str(41 + max_rows // 2) in reg_repr + with option_context('display.max_rows', 60): + max_rows = get_option('display.max_rows') + h = max_rows - 1 + df = DataFrame({'A': np.arange(1, 1 + h), + 'B': np.arange(41, 41 + h)}) + reg_repr = df._repr_html_() + assert '..' not in reg_repr + assert str(41 + max_rows // 2) in reg_repr - h = max_rows + 1 - df = DataFrame({'A': np.arange(1, 1 + h), 'B': np.arange(41, 41 + h)}) - long_repr = df._repr_html_() - assert '..' in long_repr - assert str(41 + max_rows // 2) not in long_repr - assert u('%d rows ') % h in long_repr - assert u('2 columns') in long_repr + h = max_rows + 1 + df = DataFrame({'A': np.arange(1, 1 + h), + 'B': np.arange(41, 41 + h)}) + long_repr = df._repr_html_() + assert '..' in long_repr + assert str(41 + max_rows // 2) not in long_repr + assert u('%d rows ') % h in long_repr + assert u('2 columns') in long_repr def test_repr_html_float(self): with option_context('display.max_rows', 60): diff --git a/pandas/tests/frame/test_indexing.py b/pandas/tests/frame/test_indexing.py index ffdc61a10e15f..b624657ca4b4b 100644 --- a/pandas/tests/frame/test_indexing.py +++ b/pandas/tests/frame/test_indexing.py @@ -1867,7 +1867,7 @@ def test_iloc_duplicates(self): assert_frame_equal(result, expected) def test_iloc_sparse_propegate_fill_value(self): - from pandas.sparse.api import SparseDataFrame + from pandas.core.sparse.api import SparseDataFrame df = SparseDataFrame({'A': [999, 1]}, default_fill_value=999) self.assertTrue(len(df['A'].sp_values) == len(df.iloc[:, 0].sp_values)) diff --git a/pandas/tests/test_internals.py b/pandas/tests/test_internals.py index af7c584249416..b18214bbef926 100644 --- a/pandas/tests/test_internals.py +++ b/pandas/tests/test_internals.py @@ -12,7 +12,7 @@ from pandas import (Index, MultiIndex, DataFrame, DatetimeIndex, Series, Categorical) from pandas.compat import OrderedDict, lrange -from pandas.sparse.array import SparseArray +from pandas.core.sparse.array import SparseArray from pandas.core.internals import (BlockPlacement, SingleBlockManager, make_block, BlockManager) import pandas.core.algorithms as algos diff --git a/pandas/util/testing.py b/pandas/util/testing.py index dc954e6b62c7a..638a190d810a5 100644 --- a/pandas/util/testing.py +++ b/pandas/util/testing.py @@ -1541,10 +1541,10 @@ def assert_sp_array_equal(left, right, check_dtype=True): check_dtype=check_dtype) # SparseIndex comparison - assertIsInstance(left.sp_index, - pd.sparse.libsparse.SparseIndex, '[SparseIndex]') - assertIsInstance(right.sp_index, - pd.sparse.libsparse.SparseIndex, '[SparseIndex]') + assertIsInstance( + left.sp_index, pd.core.sparse.libsparse.SparseIndex, '[SparseIndex]') + assertIsInstance( + right.sp_index, pd.core.sparse.libsparse.SparseIndex, '[SparseIndex]') if not left.sp_index.equals(right.sp_index): raise_assert_detail('SparseArray.index', 'index are not equal', diff --git a/setup.py b/setup.py index 77d7e0453a2e2..b7c4581c4ecfe 100755 --- a/setup.py +++ b/setup.py @@ -118,7 +118,7 @@ def is_platform_mac(): 'hashtable': ['_libs/hashtable_class_helper.pxi.in', '_libs/hashtable_func_helper.pxi.in'], 'index': ['_libs/index_class_helper.pxi.in'], - 'sparse': ['sparse/sparse_op_helper.pxi.in'], + 'sparse': ['core/sparse/sparse_op_helper.pxi.in'], 'interval': ['_libs/intervaltree.pxi.in'] } @@ -338,7 +338,7 @@ class CheckSDist(sdist_class): 'pandas/_libs/join.pyx', 'pandas/_libs/interval.pyx', 'pandas/core/window.pyx', - 'pandas/sparse/sparse.pyx', + 'pandas/core/sparse/sparse.pyx', 'pandas/util/testing.pyx', 'pandas/tools/hash.pyx', 'pandas/io/parsers.pyx', @@ -523,8 +523,8 @@ def pxd(name): 'pandas/_libs/src/numpy_helper.h'], 'sources': ['pandas/_libs/src/parser/tokenizer.c', 'pandas/_libs/src/parser/io.c']}, - 'sparse.libsparse': {'pyxfile': 'sparse/sparse', - 'depends': (['pandas/sparse/sparse.pyx'] + + 'core.sparse.libsparse': {'pyxfile': 'core/sparse/sparse', + 'depends': (['pandas/core/sparse/sparse.pyx'] + _pxi_dep['sparse'])}, 'util.libtesting': {'pyxfile': 'util/testing', 'depends': ['pandas/util/testing.pyx']}, @@ -641,6 +641,7 @@ def pxd(name): 'pandas.core', 'pandas.core.dtypes', 'pandas.core.computation', + 'pandas.core.sparse', 'pandas.indexes', 'pandas.errors', 'pandas.io', @@ -650,13 +651,13 @@ def pxd(name): 'pandas._libs', 'pandas.formats', 'pandas.plotting', - 'pandas.sparse', 'pandas.stats', 'pandas.util', 'pandas.tests', 'pandas.tests.api', - 'pandas.tests.core.typed', + 'pandas.tests.core.dtypes', 'pandas.tests.core.computation', + 'pandas.tests.core.sparse', 'pandas.tests.frame', 'pandas.tests.indexes', 'pandas.tests.indexes.datetimes', @@ -671,7 +672,6 @@ def pxd(name): 'pandas.tests.series', 'pandas.tests.formats', 'pandas.tests.scalar', - 'pandas.tests.sparse', 'pandas.tests.tseries', 'pandas.tests.tools', 'pandas.tests.plotting', diff --git a/vb_suite/sparse.py b/vb_suite/sparse.py index 53e2778ee0865..b1c1a2f24e41d 100644 --- a/vb_suite/sparse.py +++ b/vb_suite/sparse.py @@ -55,11 +55,11 @@ setup = common_setup + """ import scipy.sparse -import pandas.sparse.series +import pandas.core.sparse.series A = scipy.sparse.coo_matrix(([3.0, 1.0, 2.0], ([1, 0, 0], [0, 2, 3])), shape=(100, 100)) """ -stmt = "ss = pandas.sparse.series.SparseSeries.from_coo(A)" +stmt = "ss = pandas.core.sparse.series.SparseSeries.from_coo(A)" sparse_series_from_coo = Benchmark(stmt, setup, name="sparse_series_from_coo", start_date=datetime(2015, 1, 3)) From f1505d7367ed6a4e5290d33919dd1de806fd5191 Mon Sep 17 00:00:00 2001 From: Jeff Reback Date: Sat, 15 Apr 2017 17:42:29 -0400 Subject: [PATCH 07/11] try with pyargs --- pandas/util/_tester.py | 7 +------ 1 file changed, 1 insertion(+), 6 deletions(-) diff --git a/pandas/util/_tester.py b/pandas/util/_tester.py index aeb4259a9edae..abf5224c97e62 100644 --- a/pandas/util/_tester.py +++ b/pandas/util/_tester.py @@ -1,11 +1,6 @@ """ Entrypoint for testing from the top-level namespace """ -import os -import sys - -PKG = os.path.dirname(os.path.dirname(__file__)) - try: import pytest @@ -19,7 +14,7 @@ def test(extra_args=None): if not isinstance(extra_args, list): extra_args = [extra_args] cmd = extra_args - cmd += [PKG] + cmd += ['--pyargs pandas'] print("running: pytest {}".format(' '.join(cmd))) sys.exit(pytest.main(cmd)) From 3ca5ba3c1accea04523d9ee2366b317ac2cfb16e Mon Sep 17 00:00:00 2001 From: Jeff Reback Date: Sat, 15 Apr 2017 17:56:54 -0400 Subject: [PATCH 08/11] pep --- pandas/util/_tester.py | 1 + 1 file changed, 1 insertion(+) diff --git a/pandas/util/_tester.py b/pandas/util/_tester.py index abf5224c97e62..3baba8f4fc0e5 100644 --- a/pandas/util/_tester.py +++ b/pandas/util/_tester.py @@ -1,6 +1,7 @@ """ Entrypoint for testing from the top-level namespace """ +import sys try: import pytest From d165a3f223f695ac0bc7550ee85d652e8677d779 Mon Sep 17 00:00:00 2001 From: Jeff Reback Date: Sat, 15 Apr 2017 18:40:01 -0400 Subject: [PATCH 09/11] more verbose built test --- ci/install_travis.sh | 1 + ci/script_multi.sh | 6 +++++- pandas/util/_tester.py | 2 +- 3 files changed, 7 insertions(+), 2 deletions(-) diff --git a/ci/install_travis.sh b/ci/install_travis.sh index f71df979c9df0..09668cbccc9d2 100755 --- a/ci/install_travis.sh +++ b/ci/install_travis.sh @@ -123,6 +123,7 @@ if [ "$BUILD_TEST" ]; then # build & install testing echo ["Starting installation test."] + rm -rf dist python setup.py clean python setup.py build_ext --inplace python setup.py sdist --formats=gztar diff --git a/ci/script_multi.sh b/ci/script_multi.sh index 88ecaf344a410..5e956ac5211a3 100755 --- a/ci/script_multi.sh +++ b/ci/script_multi.sh @@ -19,8 +19,12 @@ export PYTHONHASHSEED=$(python -c 'import random; print(random.randint(1, 429496 echo PYTHONHASHSEED=$PYTHONHASHSEED if [ "$BUILD_TEST" ]; then + echo "build-test" cd /tmp - python -c "import pandas; pandas.test(['-n 2'])" + pwd + conda list pandas + echo "running" + python -c "import pandas; pandas.test(['-n 2', '--skip-slow', '--skip-network'])" elif [ "$DOC" ]; then echo "We are not running pytest as this is a doc-build" elif [ "$COVERAGE" ]; then diff --git a/pandas/util/_tester.py b/pandas/util/_tester.py index 3baba8f4fc0e5..4cab4fdb073b3 100644 --- a/pandas/util/_tester.py +++ b/pandas/util/_tester.py @@ -15,7 +15,7 @@ def test(extra_args=None): if not isinstance(extra_args, list): extra_args = [extra_args] cmd = extra_args - cmd += ['--pyargs pandas'] + cmd += ['--pyargs', 'pandas'] print("running: pytest {}".format(' '.join(cmd))) sys.exit(pytest.main(cmd)) From 9d36104e94b6066e7818ae5f294b187ff5b1de89 Mon Sep 17 00:00:00 2001 From: Jeff Reback Date: Sat, 15 Apr 2017 18:48:25 -0400 Subject: [PATCH 10/11] moar ci --- ci/script_multi.sh | 2 +- pandas/util/_tester.py | 6 +++++- 2 files changed, 6 insertions(+), 2 deletions(-) diff --git a/ci/script_multi.sh b/ci/script_multi.sh index 5e956ac5211a3..663d2feb5be23 100755 --- a/ci/script_multi.sh +++ b/ci/script_multi.sh @@ -24,7 +24,7 @@ if [ "$BUILD_TEST" ]; then pwd conda list pandas echo "running" - python -c "import pandas; pandas.test(['-n 2', '--skip-slow', '--skip-network'])" + python -c "import pandas; pandas.test(['-n 2'])" elif [ "$DOC" ]; then echo "We are not running pytest as this is a doc-build" elif [ "$COVERAGE" ]; then diff --git a/pandas/util/_tester.py b/pandas/util/_tester.py index 4cab4fdb073b3..aeb4259a9edae 100644 --- a/pandas/util/_tester.py +++ b/pandas/util/_tester.py @@ -1,8 +1,12 @@ """ Entrypoint for testing from the top-level namespace """ +import os import sys +PKG = os.path.dirname(os.path.dirname(__file__)) + + try: import pytest except ImportError: @@ -15,7 +19,7 @@ def test(extra_args=None): if not isinstance(extra_args, list): extra_args = [extra_args] cmd = extra_args - cmd += ['--pyargs', 'pandas'] + cmd += [PKG] print("running: pytest {}".format(' '.join(cmd))) sys.exit(pytest.main(cmd)) From 5fe80ae78d7d17626296046f78ca48eac6affbb2 Mon Sep 17 00:00:00 2001 From: Jeff Reback Date: Sat, 15 Apr 2017 19:12:32 -0400 Subject: [PATCH 11/11] move fixtures to top-level conftest --- pandas/conftest.py | 8 ++++++++ pandas/tests/core/conftest.py | 9 --------- 2 files changed, 8 insertions(+), 9 deletions(-) delete mode 100644 pandas/tests/core/conftest.py diff --git a/pandas/conftest.py b/pandas/conftest.py index e0a15f740688b..caced6a0c568e 100644 --- a/pandas/conftest.py +++ b/pandas/conftest.py @@ -2,6 +2,7 @@ import numpy import pandas +import pandas.util.testing as tm def pytest_addoption(parser): @@ -30,3 +31,10 @@ def pytest_runtest_setup(item): def add_imports(doctest_namespace): doctest_namespace['np'] = numpy doctest_namespace['pd'] = pandas + + +@pytest.fixture(params=['bsr', 'coo', 'csc', 'csr', 'dia', 'dok', 'lil']) +def spmatrix(request): + tm._skip_if_no_scipy() + from scipy import sparse + return getattr(sparse, request.param + '_matrix') diff --git a/pandas/tests/core/conftest.py b/pandas/tests/core/conftest.py deleted file mode 100644 index 1dd239edbf9f3..0000000000000 --- a/pandas/tests/core/conftest.py +++ /dev/null @@ -1,9 +0,0 @@ -import pytest -import pandas.util.testing as tm - - -@pytest.fixture(params=['bsr', 'coo', 'csc', 'csr', 'dia', 'dok', 'lil']) -def spmatrix(request): - tm._skip_if_no_scipy() - from scipy import sparse - return getattr(sparse, request.param + '_matrix')