Skip to content

Commit ae5e8fb

Browse files
committed
CLN: remove _pickle_array, _unpkckle_array from common.py
1 parent b42a2c9 commit ae5e8fb

File tree

4 files changed

+41
-32
lines changed

4 files changed

+41
-32
lines changed

pandas/core/common.py

+1-24
Original file line numberDiff line numberDiff line change
@@ -8,15 +8,13 @@
88
from datetime import datetime, timedelta
99
from functools import partial
1010

11-
from numpy.lib.format import read_array, write_array
1211
import numpy as np
13-
1412
import pandas as pd
1513
import pandas.algos as algos
1614
import pandas.lib as lib
1715
import pandas.tslib as tslib
1816
from pandas import compat
19-
from pandas.compat import (BytesIO, range, long, u, zip, map, string_types,
17+
from pandas.compat import (range, long, u, zip, map, string_types,
2018
iteritems)
2119
from pandas.types import api as gt
2220
from pandas.types.api import * # noqa
@@ -378,27 +376,6 @@ def flatten(l):
378376
yield el
379377

380378

381-
def _pickle_array(arr):
382-
arr = arr.view(np.ndarray)
383-
384-
buf = BytesIO()
385-
write_array(buf, arr)
386-
387-
return buf.getvalue()
388-
389-
390-
def _unpickle_array(bytes):
391-
arr = read_array(BytesIO(bytes))
392-
393-
# All datetimes should be stored as M8[ns]. When unpickling with
394-
# numpy1.6, it will read these as M8[us]. So this ensures all
395-
# datetime64 types are read as MS[ns]
396-
if is_datetime64_dtype(arr):
397-
arr = arr.view(_NS_DTYPE)
398-
399-
return arr
400-
401-
402379
def _coerce_indexer_dtype(indexer, categories):
403380
""" coerce the indexer input array to the smallest dtype possible """
404381
l = len(categories)

pandas/io/pickle.py

+29-1
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,9 @@
1-
from pandas.compat import cPickle as pkl, pickle_compat as pc, PY3
1+
""" pickle compat """
2+
3+
import numpy as np
4+
from numpy.lib.format import read_array, write_array
5+
from pandas.compat import BytesIO, cPickle as pkl, pickle_compat as pc, PY3
6+
import pandas.core.common as com
27

38

49
def to_pickle(obj, path):
@@ -62,3 +67,26 @@ def try_read(path, encoding=None):
6267
if PY3:
6368
return try_read(path, encoding='latin1')
6469
raise
70+
71+
# compat with sparse pickle / unpickle
72+
73+
74+
def _pickle_array(arr):
75+
arr = arr.view(np.ndarray)
76+
77+
buf = BytesIO()
78+
write_array(buf, arr)
79+
80+
return buf.getvalue()
81+
82+
83+
def _unpickle_array(bytes):
84+
arr = read_array(BytesIO(bytes))
85+
86+
# All datetimes should be stored as M8[ns]. When unpickling with
87+
# numpy1.6, it will read these as M8[us]. So this ensures all
88+
# datetime64 types are read as MS[ns]
89+
if com.is_datetime64_dtype(arr):
90+
arr = arr.view(com._NS_DTYPE)
91+
92+
return arr

pandas/sparse/frame.py

+3-1
Original file line numberDiff line numberDiff line change
@@ -10,7 +10,7 @@
1010
from pandas import compat
1111
import numpy as np
1212

13-
from pandas.core.common import isnull, _unpickle_array, _try_sort
13+
from pandas.core.common import isnull, _try_sort
1414
from pandas.core.index import Index, MultiIndex, _ensure_index
1515
from pandas.core.series import Series
1616
from pandas.core.frame import (DataFrame, extract_index, _prep_ndarray,
@@ -217,11 +217,13 @@ def _unpickle_sparse_frame_compat(self, state):
217217
series, cols, idx, fv, kind = state
218218

219219
if not isinstance(cols, Index): # pragma: no cover
220+
from pandas.io.pickle import _unpickle_array
220221
columns = _unpickle_array(cols)
221222
else:
222223
columns = cols
223224

224225
if not isinstance(idx, Index): # pragma: no cover
226+
from pandas.io.pickle import _unpickle_array
225227
index = _unpickle_array(idx)
226228
else:
227229
index = idx

pandas/sparse/panel.py

+8-6
Original file line numberDiff line numberDiff line change
@@ -250,19 +250,21 @@ def __delitem__(self, key):
250250

251251
def __getstate__(self):
252252
# pickling
253-
return (self._frames, com._pickle_array(self.items),
254-
com._pickle_array(self.major_axis),
255-
com._pickle_array(self.minor_axis), self.default_fill_value,
253+
from pandas.io.pickle import _pickle_array
254+
return (self._frames, _pickle_array(self.items),
255+
_pickle_array(self.major_axis),
256+
_pickle_array(self.minor_axis), self.default_fill_value,
256257
self.default_kind)
257258

258259
def __setstate__(self, state):
259260
frames, items, major, minor, fv, kind = state
260261

262+
from pandas.io.pickle import _unpickle_array
261263
self.default_fill_value = fv
262264
self.default_kind = kind
263-
self._items = _ensure_index(com._unpickle_array(items))
264-
self._major_axis = _ensure_index(com._unpickle_array(major))
265-
self._minor_axis = _ensure_index(com._unpickle_array(minor))
265+
self._items = _ensure_index(_unpickle_array(items))
266+
self._major_axis = _ensure_index(_unpickle_array(major))
267+
self._minor_axis = _ensure_index(_unpickle_array(minor))
266268
self._frames = frames
267269

268270
def copy(self, deep=True):

0 commit comments

Comments
 (0)