Skip to content

Commit f63b76c

Browse files
committed
CLN: pandas.sparse -> pandas.core.sparse
1 parent 751fb33 commit f63b76c

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

49 files changed

+153
-153
lines changed

asv_bench/benchmarks/sparse.py

+2-2
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11
from .pandas_vb_common import *
2-
import pandas.sparse.series
2+
import pandas.core.sparse.series
33
import scipy.sparse
44
from pandas.core.sparse import SparseSeries, SparseDataFrame
55
from pandas.core.sparse import SparseDataFrame
@@ -37,7 +37,7 @@ def setup(self):
3737
self.A = scipy.sparse.coo_matrix(([3.0, 1.0, 2.0], ([1, 0, 0], [0, 2, 3])), shape=(100, 100))
3838

3939
def time_sparse_series_from_coo(self):
40-
self.ss = pandas.sparse.series.SparseSeries.from_coo(self.A)
40+
self.ss = pandas.core.sparse.series.SparseSeries.from_coo(self.A)
4141

4242

4343
class sparse_series_to_coo(object):

doc/source/whatsnew/v0.20.0.txt

+44-40
Original file line numberDiff line numberDiff line change
@@ -21,8 +21,11 @@ Highlights include:
2121
- Support for S3 handling now uses ``s3fs``, see :ref:`here <whatsnew_0200.api_breaking.s3>`
2222
- Google BigQuery support now uses the ``pandas-gbq`` library, see :ref:`here <whatsnew_0200.api_breaking.gbq>`
2323
- Switched the test framework to use `pytest <http://doc.pytest.org/en/latest>`__ (:issue:`13097`)
24-
- The ``pandas.tools.plotting`` module has been deprecated, moved to ``pandas.plotting``. See :ref:`here <whatsnew_0200.api_breaking.plotting>`
2524

25+
.. warning::
26+
27+
Pandas has changed the internal structure and layout of the codebase.
28+
This can affect imports that are not from the top-level ``pandas.*`` namespace, please see the changes :ref:`here <whatsnew_0200.privacy>`.
2629

2730
Check the :ref:`API Changes <whatsnew_0200.api_breaking>` and :ref:`deprecations <whatsnew_0200.deprecations>` before updating.
2831

@@ -558,31 +561,6 @@ Using ``.iloc``. Here we will get the location of the 'A' column, then use *posi
558561
df.iloc[[0, 2], df.columns.get_loc('A')]
559562

560563

561-
.. _whatsnew_0200.api_breaking.deprecate_plotting
562-
563-
Deprecate .plotting
564-
^^^^^^^^^^^^^^^^^^^
565-
566-
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
567-
from ``pandas.plotting`` (:issue:`12548`).
568-
569-
Furthermore, the top-level ``pandas.scatter_matrix`` and ``pandas.plot_params`` are deprecated.
570-
Users can import these from ``pandas.plotting`` as well.
571-
572-
Previous script:
573-
574-
.. code-block:: python
575-
576-
pd.tools.plotting.scatter_matrix(df)
577-
pd.scatter_matrix(df)
578-
579-
Should be changed to:
580-
581-
.. code-block:: python
582-
583-
pd.plotting.scatter_matrix(df)
584-
585-
586564
.. _whatsnew_0200.api_breaking.deprecate_panel:
587565

588566
Deprecate Panel
@@ -1326,48 +1304,74 @@ Other API Changes
13261304
- ``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`)
13271305
- The exception ``pandas.core.common.AmbiguousIndexError`` is removed as it is not referenced (:issue:`15541`)
13281306

1329-
.. _whatsnew_0200.develop:
1307+
.. _whatsnew_0200.privacy:
13301308

1331-
Development Changes
1332-
~~~~~~~~~~~~~~~~~~~
1309+
Privacy Changes
1310+
~~~~~~~~~~~~~~~
13331311

1334-
.. _whatsnew_0200.develop.privacy:
1312+
.. _whatsnew_0200.privacy.extensions:
13351313

13361314
Modules Privacy Has Changed
13371315
^^^^^^^^^^^^^^^^^^^^^^^^^^^
13381316

13391317
Some formerly public python/c/c++/cython extension modules have been moved and/or renamed. These are all removed from the public API.
1340-
Further more, the ``pandas.core``, ``pandas.io``, and ``pandas.util`` top-level modules are now considered to be PRIVATE.
1341-
If indicated, a deprecation warning will be issued if you reference that module. (:issue:`12588`)
1318+
Furthermore, the ``pandas.core``, ``pandas.io``, and ``pandas.util`` top-level modules are now considered to be PRIVATE.
1319+
If indicated, a deprecation warning will be issued if you reference theses modules. (:issue:`12588`)
13421320

13431321
.. csv-table::
13441322
:header: "Previous Location", "New Location", "Deprecated"
13451323
:widths: 30, 30, 4
13461324

13471325
"pandas.lib", "pandas._libs.lib", "X"
13481326
"pandas.tslib", "pandas._libs.tslib", "X"
1349-
"pandas._join", "pandas._libs.join", ""
1350-
"pandas._period", "pandas._libs.period", ""
13511327
"pandas.computation", "pandas.core.computation", ""
13521328
"pandas.msgpack", "pandas.io.msgpack", ""
13531329
"pandas.index", "pandas._libs.index", ""
13541330
"pandas.algos", "pandas._libs.algos", ""
13551331
"pandas.hashtable", "pandas._libs.hashtable", ""
13561332
"pandas.json", "pandas.io.json.libjson", "X"
13571333
"pandas.parser", "pandas.io.libparsers", "X"
1358-
"pandas.types", "pandas.core.typed", ""
1334+
"pandas.sparse", "pandas.core.sparse", ""
1335+
"pandas.types", "pandas.core.dtypes", ""
13591336
"pandas.io.sas.saslib", "pandas.io.sas.libsas", ""
1360-
"pandas._testing", "pandas.util.libtesting", ""
1361-
"pandas._sparse", "pandas.sparse.libsparse", ""
1337+
"pandas._join", "pandas._libs.join", ""
13621338
"pandas._hash", "pandas.tools.libhash", ""
1339+
"pandas._period", "pandas._libs.period", ""
1340+
"pandas._sparse", "pandas.core.sparse.libsparse", ""
1341+
"pandas._testing", "pandas.util.libtesting", ""
13631342
"pandas._window", "pandas.core.libwindow", ""
13641343

13651344
- The function :func:`~pandas.api.type.union_categoricals` is now importable from ``pandas.api.types``, formerly from ``pandas.types.concat`` (:issue:`15998`)
13661345

1367-
.. _whatsnew_0200.develop.other:
1346+
.. _whatsnew_0200.privacy.deprecate_plotting
13681347

1369-
Other Changes
1370-
^^^^^^^^^^^^^
1348+
Deprecate .plotting
1349+
^^^^^^^^^^^^^^^^^^^
1350+
1351+
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
1352+
from ``pandas.plotting`` (:issue:`12548`).
1353+
1354+
Furthermore, the top-level ``pandas.scatter_matrix`` and ``pandas.plot_params`` are deprecated.
1355+
Users can import these from ``pandas.plotting`` as well.
1356+
1357+
Previous script:
1358+
1359+
.. code-block:: python
1360+
1361+
pd.tools.plotting.scatter_matrix(df)
1362+
pd.scatter_matrix(df)
1363+
1364+
Should be changed to:
1365+
1366+
.. code-block:: python
1367+
1368+
pd.plotting.scatter_matrix(df)
1369+
1370+
1371+
.. _whatsnew_0200.privacy.development:
1372+
1373+
Other Developement Changes
1374+
^^^^^^^^^^^^^^^^^^^^^^^^^^
13711375

13721376
- Building pandas for development now requires ``cython >= 0.23`` (:issue:`14831`)
13731377
- Require at least 0.23 version of cython to avoid problems with character encodings (:issue:`14699`)

pandas/__init__.py

+1-1
Original file line numberDiff line numberDiff line change
@@ -40,7 +40,7 @@
4040
import pandas.core.config_init
4141

4242
from pandas.core.api import *
43-
from pandas.sparse.api import *
43+
from pandas.core.sparse.api import *
4444
from pandas.stats.api import *
4545
from pandas.tseries.api import *
4646
from pandas.core.computation.api import *

pandas/compat/pickle_compat.py

+11-3
Original file line numberDiff line numberDiff line change
@@ -67,16 +67,24 @@ def load_reduce(self):
6767
('pandas.core.series', 'TimeSeries'):
6868
('pandas.core.series', 'Series'),
6969
('pandas.sparse.series', 'SparseTimeSeries'):
70-
('pandas.sparse.series', 'SparseSeries'),
70+
('pandas.core.sparse.series', 'SparseSeries'),
7171

7272
# 12588, extensions moving
7373
('pandas._sparse', 'BlockIndex'):
74-
('pandas.sparse.libsparse', 'BlockIndex'),
74+
('pandas.core.sparse.libsparse', 'BlockIndex'),
7575
('pandas.tslib', 'Timestamp'):
7676
('pandas._libs.tslib', 'Timestamp'),
7777
('pandas.tslib', '__nat_unpickle'):
7878
('pandas._libs.tslib', '__nat_unpickle'),
79-
('pandas._period', 'Period'): ('pandas._libs.period', 'Period')
79+
('pandas._period', 'Period'): ('pandas._libs.period', 'Period'),
80+
81+
# 15998 top-level dirs moving
82+
('pandas.sparse.array', 'SparseArray'):
83+
('pandas.core.sparse.array', 'SparseArray'),
84+
('pandas.sparse.series', 'SparseSeries'):
85+
('pandas.core.sparse.series', 'SparseSeries'),
86+
('pandas.sparse.frame', 'SparseDataFrame'):
87+
('pandas.core.sparse.frame', 'SparseDataFrame')
8088
}
8189

8290

pandas/core/dtypes/concat.py

+4-4
Original file line numberDiff line numberDiff line change
@@ -69,15 +69,15 @@ def _get_series_result_type(result):
6969
if isinstance(result, dict):
7070
# concat Series with axis 1
7171
if all(is_sparse(c) for c in compat.itervalues(result)):
72-
from pandas.sparse.api import SparseDataFrame
72+
from pandas.core.sparse.api import SparseDataFrame
7373
return SparseDataFrame
7474
else:
7575
from pandas.core.frame import DataFrame
7676
return DataFrame
7777

7878
elif is_sparse(result):
7979
# concat Series with axis 1
80-
from pandas.sparse.api import SparseSeries
80+
from pandas.core.sparse.api import SparseSeries
8181
return SparseSeries
8282
else:
8383
from pandas.core.series import Series
@@ -91,7 +91,7 @@ def _get_frame_result_type(result, objs):
9191
otherwise, return 1st obj
9292
"""
9393
if any(b.is_sparse for b in result.blocks):
94-
from pandas.sparse.api import SparseDataFrame
94+
from pandas.core.sparse.api import SparseDataFrame
9595
return SparseDataFrame
9696
else:
9797
return objs[0]
@@ -438,7 +438,7 @@ def _concat_sparse(to_concat, axis=0, typs=None):
438438
a single array, preserving the combined dtypes
439439
"""
440440

441-
from pandas.sparse.array import SparseArray, _make_index
441+
from pandas.core.sparse.array import SparseArray, _make_index
442442

443443
def convert_sparse(x, axis):
444444
# coerce to native type

pandas/core/frame.py

+1-1
Original file line numberDiff line numberDiff line change
@@ -1271,7 +1271,7 @@ def to_sparse(self, fill_value=None, kind='block'):
12711271
-------
12721272
y : SparseDataFrame
12731273
"""
1274-
from pandas.core.sparse import SparseDataFrame
1274+
from pandas.core.sparse.frame import SparseDataFrame
12751275
return SparseDataFrame(self._series, index=self.index,
12761276
columns=self.columns, default_kind=kind,
12771277
default_fill_value=fill_value)

pandas/core/internals.py

+1-1
Original file line numberDiff line numberDiff line change
@@ -58,7 +58,7 @@
5858
from pandas.formats.printing import pprint_thing
5959

6060
import pandas.core.missing as missing
61-
from pandas.sparse.array import _maybe_to_sparse, SparseArray
61+
from pandas.core.sparse.array import _maybe_to_sparse, SparseArray
6262
from pandas._libs import lib, tslib
6363
from pandas._libs.tslib import Timedelta
6464
from pandas._libs.lib import BlockPlacement

pandas/core/reshape.py

+3-3
Original file line numberDiff line numberDiff line change
@@ -18,9 +18,9 @@
1818
from pandas.core.series import Series
1919
from pandas.core.frame import DataFrame
2020

21-
from pandas.core.sparse import SparseDataFrame, SparseSeries
22-
from pandas.sparse.array import SparseArray
23-
from pandas.sparse.libsparse import IntIndex
21+
from pandas.core.sparse.api import SparseDataFrame, SparseSeries
22+
from pandas.core.sparse.array import SparseArray
23+
from pandas.core.sparse.libsparse import IntIndex
2424

2525
from pandas.core.categorical import Categorical, _factorize_from_iterable
2626
from pandas.core.sorting import (get_group_index, get_compressed_ids,

pandas/core/series.py

+2-2
Original file line numberDiff line numberDiff line change
@@ -257,7 +257,7 @@ def from_array(cls, arr, index=None, name=None, dtype=None, copy=False,
257257
fastpath=False):
258258
# return a sparse series here
259259
if isinstance(arr, ABCSparseArray):
260-
from pandas.sparse.series import SparseSeries
260+
from pandas.core.sparse.series import SparseSeries
261261
cls = SparseSeries
262262

263263
return cls(arr, index=index, name=name, dtype=dtype, copy=copy,
@@ -1132,7 +1132,7 @@ def to_sparse(self, kind='block', fill_value=None):
11321132
-------
11331133
sp : SparseSeries
11341134
"""
1135-
from pandas.core.sparse import SparseSeries
1135+
from pandas.core.sparse.series import SparseSeries
11361136
return SparseSeries(self, kind=kind,
11371137
fill_value=fill_value).__finalize__(self)
11381138

pandas/core/sparse.py

-10
This file was deleted.
File renamed without changes.

pandas/core/sparse/api.py

+6
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,6 @@
1+
# pylint: disable=W0611
2+
# flake8: noqa
3+
from pandas.core.sparse.array import SparseArray
4+
from pandas.core.sparse.list import SparseList
5+
from pandas.core.sparse.series import SparseSeries
6+
from pandas.core.sparse.frame import SparseDataFrame

pandas/sparse/array.py renamed to pandas/core/sparse/array.py

+2-2
Original file line numberDiff line numberDiff line change
@@ -29,8 +29,8 @@
2929
astype_nansafe, find_common_type)
3030
from pandas.core.dtypes.missing import isnull, notnull, na_value_for_dtype
3131

32-
from pandas.sparse import libsparse as splib
33-
from pandas.sparse.libsparse import SparseIndex, BlockIndex, IntIndex
32+
from pandas.core.sparse import libsparse as splib
33+
from pandas.core.sparse.libsparse import SparseIndex, BlockIndex, IntIndex
3434
from pandas._libs import index as libindex
3535
import pandas.core.algorithms as algos
3636
import pandas.core.ops as ops

pandas/sparse/frame.py renamed to pandas/core/sparse/frame.py

+2-2
Original file line numberDiff line numberDiff line change
@@ -24,8 +24,8 @@
2424
from pandas.core.internals import (BlockManager,
2525
create_block_manager_from_arrays)
2626
import pandas.core.generic as generic
27-
from pandas.sparse.series import SparseSeries, SparseArray
28-
from pandas.sparse.libsparse import BlockIndex, get_blocks
27+
from pandas.core.sparse.series import SparseSeries, SparseArray
28+
from pandas.core.sparse.libsparse import BlockIndex, get_blocks
2929
from pandas.util.decorators import Appender
3030
import pandas.core.ops as ops
3131

pandas/sparse/list.py renamed to pandas/core/sparse/list.py

+2-2
Original file line numberDiff line numberDiff line change
@@ -4,9 +4,9 @@
44
from pandas.formats.printing import pprint_thing
55

66
from pandas.core.dtypes.common import is_scalar
7-
from pandas.sparse.array import SparseArray
7+
from pandas.core.sparse.array import SparseArray
88
from pandas.util.validators import validate_bool_kwarg
9-
import pandas.sparse.libsparse as splib
9+
from pandas.core.sparse import libsparse as splib
1010

1111

1212
class SparseList(PandasObject):
File renamed without changes.

pandas/sparse/series.py renamed to pandas/core/sparse/series.py

+9-7
Original file line numberDiff line numberDiff line change
@@ -23,13 +23,15 @@
2323
import pandas._libs.index as _index
2424
from pandas.util.decorators import Appender
2525

26-
from pandas.sparse.array import (make_sparse, _sparse_array_op, SparseArray,
27-
_make_index)
28-
from pandas.sparse.libsparse import BlockIndex, IntIndex
29-
import pandas.sparse.libsparse as splib
26+
from pandas.core.sparse.array import (
27+
make_sparse, _sparse_array_op, SparseArray,
28+
_make_index)
29+
from pandas.core.sparse.libsparse import BlockIndex, IntIndex
30+
import pandas.core.sparse.libsparse as splib
3031

31-
from pandas.sparse.scipy_sparse import (_sparse_series_to_coo,
32-
_coo_to_sparse_series)
32+
from pandas.core.sparse.scipy_sparse import (
33+
_sparse_series_to_coo,
34+
_coo_to_sparse_series)
3335

3436

3537
_shared_doc_kwargs = dict(axes='index', klass='SparseSeries',
@@ -264,7 +266,7 @@ def _constructor(self):
264266

265267
@property
266268
def _constructor_expanddim(self):
267-
from pandas.sparse.api import SparseDataFrame
269+
from pandas.core.sparse.api import SparseDataFrame
268270
return SparseDataFrame
269271

270272
@property
File renamed without changes.

pandas/io/packers.py

+2-2
Original file line numberDiff line numberDiff line change
@@ -57,8 +57,8 @@
5757
Panel, RangeIndex, PeriodIndex, DatetimeIndex, NaT,
5858
Categorical, CategoricalIndex)
5959
from pandas._libs.tslib import NaTType
60-
from pandas.sparse.api import SparseSeries, SparseDataFrame
61-
from pandas.sparse.array import BlockIndex, IntIndex
60+
from pandas.core.sparse.api import SparseSeries, SparseDataFrame
61+
from pandas.core.sparse.array import BlockIndex, IntIndex
6262
from pandas.core.generic import NDFrame
6363
from pandas.errors import PerformanceWarning
6464
from pandas.io.common import get_filepath_or_buffer

pandas/io/pytables.py

+1-1
Original file line numberDiff line numberDiff line change
@@ -30,7 +30,7 @@
3030
DatetimeIndex, TimedeltaIndex)
3131
from pandas.core import config
3232
from pandas.io.common import _stringify_path
33-
from pandas.sparse.array import BlockIndex, IntIndex
33+
from pandas.core.sparse.array import BlockIndex, IntIndex
3434
from pandas.core.base import StringMixin
3535
from pandas.formats.printing import adjoin, pprint_thing
3636
from pandas.errors import PerformanceWarning

pandas/plotting/_converter.py

+6-6
Original file line numberDiff line numberDiff line change
@@ -11,12 +11,12 @@
1111
from matplotlib.transforms import nonsingular
1212

1313

14-
from pandas.types.common import (is_float, is_integer,
15-
is_integer_dtype,
16-
is_float_dtype,
17-
is_datetime64_ns_dtype,
18-
is_period_arraylike,
19-
)
14+
from pandas.core.dtypes.common import (
15+
is_float, is_integer,
16+
is_integer_dtype,
17+
is_float_dtype,
18+
is_datetime64_ns_dtype,
19+
is_period_arraylike)
2020

2121
from pandas.compat import lrange
2222
import pandas.compat as compat

0 commit comments

Comments
 (0)