Skip to content

Commit 12a612e

Browse files
committed
fix issue #21654
1 parent d24a950 commit 12a612e

File tree

5 files changed

+3
-214
lines changed

5 files changed

+3
-214
lines changed

doc/source/whatsnew/v0.24.0.txt

+1-1
Original file line numberDiff line numberDiff line change
@@ -363,7 +363,7 @@ Missing
363363
MultiIndex
364364
^^^^^^^^^^
365365

366-
-
366+
- Removing legacy MultiIndex internal formats
367367
-
368368
-
369369

pandas/core/indexes/multi.py

-21
Original file line numberDiff line numberDiff line change
@@ -1541,27 +1541,6 @@ def __reduce__(self):
15411541
sortorder=self.sortorder, names=list(self.names))
15421542
return ibase._new_Index, (self.__class__, d), None
15431543

1544-
def __setstate__(self, state):
1545-
"""Necessary for making this object picklable"""
1546-
1547-
if isinstance(state, dict):
1548-
levels = state.get('levels')
1549-
labels = state.get('labels')
1550-
sortorder = state.get('sortorder')
1551-
names = state.get('names')
1552-
1553-
elif isinstance(state, tuple):
1554-
1555-
nd_state, own_state = state
1556-
levels, labels, sortorder, names = own_state
1557-
1558-
self._set_levels([Index(x) for x in levels], validate=False)
1559-
self._set_labels(labels)
1560-
self._set_names(names)
1561-
self.sortorder = sortorder
1562-
self._verify_integrity()
1563-
self._reset_identity()
1564-
15651544
def __getitem__(self, key):
15661545
if is_scalar(key):
15671546
retval = []
-670 Bytes
Binary file not shown.

pandas/tests/indexes/multi/data/multiindex_v1.pickle

-149
This file was deleted.

pandas/tests/indexes/multi/test_conversion.py

+2-43
Original file line numberDiff line numberDiff line change
@@ -4,10 +4,8 @@
44
import numpy as np
55
import pandas as pd
66
import pandas.util.testing as tm
7-
import pytest
87
from pandas import DataFrame, MultiIndex, date_range
9-
from pandas.compat import PY3, range
10-
from pandas.util.testing import assert_almost_equal
8+
from pandas.compat import range
119

1210

1311
def test_tolist(idx):
@@ -93,46 +91,6 @@ def test_to_hierarchical():
9391
assert result.names == index.names
9492

9593

96-
@pytest.mark.skipif(PY3, reason="testing legacy pickles not support on py3")
97-
def test_legacy_pickle(datapath):
98-
99-
path = datapath('indexes', 'multi', 'data', 'multiindex_v1.pickle')
100-
obj = pd.read_pickle(path)
101-
102-
obj2 = MultiIndex.from_tuples(obj.values)
103-
assert obj.equals(obj2)
104-
105-
res = obj.get_indexer(obj)
106-
exp = np.arange(len(obj), dtype=np.intp)
107-
assert_almost_equal(res, exp)
108-
109-
res = obj.get_indexer(obj2[::-1])
110-
exp = obj.get_indexer(obj[::-1])
111-
exp2 = obj2.get_indexer(obj2[::-1])
112-
assert_almost_equal(res, exp)
113-
assert_almost_equal(exp, exp2)
114-
115-
116-
def test_legacy_v2_unpickle(datapath):
117-
118-
# 0.7.3 -> 0.8.0 format manage
119-
path = datapath('indexes', 'multi', 'data', 'mindex_073.pickle')
120-
obj = pd.read_pickle(path)
121-
122-
obj2 = MultiIndex.from_tuples(obj.values)
123-
assert obj.equals(obj2)
124-
125-
res = obj.get_indexer(obj)
126-
exp = np.arange(len(obj), dtype=np.intp)
127-
assert_almost_equal(res, exp)
128-
129-
res = obj.get_indexer(obj2[::-1])
130-
exp = obj.get_indexer(obj[::-1])
131-
exp2 = obj2.get_indexer(obj2[::-1])
132-
assert_almost_equal(res, exp)
133-
assert_almost_equal(exp, exp2)
134-
135-
13694
def test_roundtrip_pickle_with_tz():
13795

13896
# GH 8367
@@ -146,6 +104,7 @@ def test_roundtrip_pickle_with_tz():
146104

147105

148106
def test_pickle(indices):
107+
149108
unpickled = tm.round_trip_pickle(indices)
150109
assert indices.equals(unpickled)
151110
original_name, indices.name = indices.name, 'foo'

0 commit comments

Comments
 (0)