File tree Expand file tree Collapse file tree 3 files changed +35
-0
lines changed Expand file tree Collapse file tree 3 files changed +35
-0
lines changed Original file line number Diff line number Diff line change @@ -1324,6 +1324,16 @@ def test_timeseries_repr_object_dtype(self):
1324
1324
ts2 = ts .ix [np .random .randint (0 , len (ts ) - 1 , 400 )]
1325
1325
repr (ts ).splitlines ()[- 1 ]
1326
1326
1327
+ def test_timeseries_periodindex (self ):
1328
+ # GH2891
1329
+ import pickle
1330
+ from pandas import period_range
1331
+ prng = period_range ('1/1/2011' , '1/1/2012' , freq = 'M' )
1332
+ ts = Series (np .random .randn (len (prng )), prng )
1333
+ new_ts = pickle .loads (pickle .dumps (ts ))
1334
+ self .assertEqual (new_ts .index .freq ,'M' )
1335
+
1336
+
1327
1337
def test_iter (self ):
1328
1338
for i , val in enumerate (self .series ):
1329
1339
self .assertEqual (val , self .series [i ])
Original file line number Diff line number Diff line change @@ -1115,6 +1115,25 @@ def append(self, other):
1115
1115
for x in to_concat ]
1116
1116
return Index (com ._concat_compat (to_concat ), name = name )
1117
1117
1118
+ def __reduce__ (self ):
1119
+ """Necessary for making this object picklable"""
1120
+ object_state = list (np .ndarray .__reduce__ (self ))
1121
+ subclass_state = (self .name , self .freq )
1122
+ object_state [2 ] = (object_state [2 ], subclass_state )
1123
+ return tuple (object_state )
1124
+
1125
+ def __setstate__ (self , state ):
1126
+ """Necessary for making this object picklable"""
1127
+ if len (state ) == 2 :
1128
+ nd_state , own_state = state
1129
+ np .ndarray .__setstate__ (self , nd_state )
1130
+ self .name = own_state [0 ]
1131
+ try : # backcompat
1132
+ self .freq = own_state [1 ]
1133
+ except :
1134
+ pass
1135
+ else : # pragma: no cover
1136
+ np .ndarray .__setstate__ (self , state )
1118
1137
1119
1138
def _get_ordinal_range (start , end , periods , freq ):
1120
1139
if com ._count_not_none (start , end , periods ) < 2 :
Original file line number Diff line number Diff line change @@ -1946,6 +1946,12 @@ def test_append_concat(self):
1946
1946
self .assert_ (isinstance (result .index , PeriodIndex ))
1947
1947
self .assertEquals (result .index [0 ], s1 .index [0 ])
1948
1948
1949
+ def test_pickle_freq (self ):
1950
+ # GH2891
1951
+ import pickle
1952
+ prng = period_range ('1/1/2011' , '1/1/2012' , freq = 'M' )
1953
+ new_prng = pickle .loads (pickle .dumps (prng ))
1954
+ self .assertEqual (new_prng .freq ,'M' )
1949
1955
1950
1956
def _permute (obj ):
1951
1957
return obj .take (np .random .permutation (len (obj )))
You can’t perform that action at this time.
0 commit comments