@@ -169,10 +169,16 @@ def read(fh):
169
169
u ('datetime64[us]' ): np .dtype ('M8[us]' ),
170
170
22 : np .dtype ('m8[ns]' ),
171
171
u ('timedelta64[ns]' ): np .dtype ('m8[ns]' ),
172
- u ('timedelta64[us]' ): np .dtype ('m8[us]' )}
172
+ u ('timedelta64[us]' ): np .dtype ('m8[us]' ),
173
+
174
+ # this is platform int, which we need to remap to np.int64
175
+ # for compat on windows platforms
176
+ 7 : np .dtype ('int64' ),
177
+ }
173
178
174
179
175
180
def dtype_for (t ):
181
+ """ return my dtype mapping, whether number or name """
176
182
if t in dtype_dict :
177
183
return dtype_dict [t ]
178
184
return np .typeDict [t ]
@@ -266,7 +272,7 @@ def encode(obj):
266
272
'klass' : obj .__class__ .__name__ ,
267
273
'name' : getattr (obj , 'name' , None ),
268
274
'freq' : getattr (obj , 'freqstr' , None ),
269
- 'dtype' : obj .dtype .num ,
275
+ 'dtype' : obj .dtype .name ,
270
276
'data' : convert (obj .asi8 ),
271
277
'compress' : compressor }
272
278
elif isinstance (obj , DatetimeIndex ):
@@ -279,7 +285,7 @@ def encode(obj):
279
285
return {'typ' : 'datetime_index' ,
280
286
'klass' : obj .__class__ .__name__ ,
281
287
'name' : getattr (obj , 'name' , None ),
282
- 'dtype' : obj .dtype .num ,
288
+ 'dtype' : obj .dtype .name ,
283
289
'data' : convert (obj .asi8 ),
284
290
'freq' : getattr (obj , 'freqstr' , None ),
285
291
'tz' : tz ,
@@ -288,14 +294,14 @@ def encode(obj):
288
294
return {'typ' : 'multi_index' ,
289
295
'klass' : obj .__class__ .__name__ ,
290
296
'names' : getattr (obj , 'names' , None ),
291
- 'dtype' : obj .dtype .num ,
297
+ 'dtype' : obj .dtype .name ,
292
298
'data' : convert (obj .values ),
293
299
'compress' : compressor }
294
300
else :
295
301
return {'typ' : 'index' ,
296
302
'klass' : obj .__class__ .__name__ ,
297
303
'name' : getattr (obj , 'name' , None ),
298
- 'dtype' : obj .dtype .num ,
304
+ 'dtype' : obj .dtype .name ,
299
305
'data' : convert (obj .values ),
300
306
'compress' : compressor }
301
307
elif isinstance (obj , Series ):
@@ -305,7 +311,7 @@ def encode(obj):
305
311
)
306
312
#d = {'typ': 'sparse_series',
307
313
# 'klass': obj.__class__.__name__,
308
- # 'dtype': obj.dtype.num ,
314
+ # 'dtype': obj.dtype.name ,
309
315
# 'index': obj.index,
310
316
# 'sp_index': obj.sp_index,
311
317
# 'sp_values': convert(obj.sp_values),
@@ -318,7 +324,7 @@ def encode(obj):
318
324
'klass' : obj .__class__ .__name__ ,
319
325
'name' : getattr (obj , 'name' , None ),
320
326
'index' : obj .index ,
321
- 'dtype' : obj .dtype .num ,
327
+ 'dtype' : obj .dtype .name ,
322
328
'data' : convert (obj .values ),
323
329
'compress' : compressor }
324
330
elif issubclass (tobj , NDFrame ):
@@ -360,7 +366,7 @@ def encode(obj):
360
366
'locs' : b .mgr_locs .as_array ,
361
367
'values' : convert (b .values ),
362
368
'shape' : b .values .shape ,
363
- 'dtype' : b .dtype .num ,
369
+ 'dtype' : b .dtype .name ,
364
370
'klass' : b .__class__ .__name__ ,
365
371
'compress' : compressor
366
372
} for b in data .blocks ]}
@@ -413,7 +419,7 @@ def encode(obj):
413
419
return {'typ' : 'ndarray' ,
414
420
'shape' : obj .shape ,
415
421
'ndim' : obj .ndim ,
416
- 'dtype' : obj .dtype .num ,
422
+ 'dtype' : obj .dtype .name ,
417
423
'data' : convert (obj ),
418
424
'compress' : compressor }
419
425
elif isinstance (obj , np .number ):
@@ -449,11 +455,12 @@ def decode(obj):
449
455
return Period (ordinal = obj ['ordinal' ], freq = obj ['freq' ])
450
456
elif typ == 'index' :
451
457
dtype = dtype_for (obj ['dtype' ])
452
- data = unconvert (obj ['data' ], np . typeDict [ obj [ ' dtype' ]] ,
458
+ data = unconvert (obj ['data' ], dtype ,
453
459
obj .get ('compress' ))
454
460
return globals ()[obj ['klass' ]](data , dtype = dtype , name = obj ['name' ])
455
461
elif typ == 'multi_index' :
456
- data = unconvert (obj ['data' ], np .typeDict [obj ['dtype' ]],
462
+ dtype = dtype_for (obj ['dtype' ])
463
+ data = unconvert (obj ['data' ], dtype ,
457
464
obj .get ('compress' ))
458
465
data = [tuple (x ) for x in data ]
459
466
return globals ()[obj ['klass' ]].from_tuples (data , names = obj ['names' ])
0 commit comments