@@ -230,9 +230,7 @@ def test_index_metadata_field_name(self):
230
230
columns = ['a' , None , '__index_level_0__' ],
231
231
)
232
232
t = pa .Table .from_pandas (df , preserve_index = True )
233
- raw_metadata = t .schema .metadata
234
-
235
- js = json .loads (raw_metadata [b'pandas' ].decode ('utf8' ))
233
+ js = t .schema .pandas_metadata
236
234
237
235
col1 , col2 , col3 , idx0 , foo = js ['columns' ]
238
236
@@ -263,8 +261,7 @@ def test_categorical_column_index(self):
263
261
columns = pd .Index (list ('def' ), dtype = 'category' )
264
262
)
265
263
t = pa .Table .from_pandas (df , preserve_index = True )
266
- raw_metadata = t .schema .metadata
267
- js = json .loads (raw_metadata [b'pandas' ].decode ('utf8' ))
264
+ js = t .schema .pandas_metadata
268
265
269
266
column_indexes , = js ['column_indexes' ]
270
267
assert column_indexes ['name' ] is None
@@ -281,8 +278,7 @@ def test_string_column_index(self):
281
278
columns = pd .Index (list ('def' ), name = 'stringz' )
282
279
)
283
280
t = pa .Table .from_pandas (df , preserve_index = True )
284
- raw_metadata = t .schema .metadata
285
- js = json .loads (raw_metadata [b'pandas' ].decode ('utf8' ))
281
+ js = t .schema .pandas_metadata
286
282
287
283
column_indexes , = js ['column_indexes' ]
288
284
assert column_indexes ['name' ] == 'stringz'
@@ -308,8 +304,7 @@ def test_datetimetz_column_index(self):
308
304
)
309
305
)
310
306
t = pa .Table .from_pandas (df , preserve_index = True )
311
- raw_metadata = t .schema .metadata
312
- js = json .loads (raw_metadata [b'pandas' ].decode ('utf8' ))
307
+ js = t .schema .pandas_metadata
313
308
314
309
column_indexes , = js ['column_indexes' ]
315
310
assert column_indexes ['name' ] is None
@@ -399,10 +394,8 @@ def test_multiindex_duplicate_values(self):
399
394
def test_metadata_with_mixed_types (self ):
400
395
df = pd .DataFrame ({'data' : [b'some_bytes' , u'some_unicode' ]})
401
396
table = pa .Table .from_pandas (df )
402
- metadata = table .schema .metadata
403
- assert b'mixed' not in metadata [b'pandas' ]
404
-
405
- js = json .loads (metadata [b'pandas' ].decode ('utf8' ))
397
+ js = table .schema .pandas_metadata
398
+ assert 'mixed' not in js
406
399
data_column = js ['columns' ][0 ]
407
400
assert data_column ['pandas_type' ] == 'bytes'
408
401
assert data_column ['numpy_type' ] == 'object'
@@ -422,10 +415,8 @@ def test_list_metadata(self):
422
415
df = pd .DataFrame ({'data' : [[1 ], [2 , 3 , 4 ], [5 ] * 7 ]})
423
416
schema = pa .schema ([pa .field ('data' , type = pa .list_ (pa .int64 ()))])
424
417
table = pa .Table .from_pandas (df , schema = schema )
425
- metadata = table .schema .metadata
426
- assert b'mixed' not in metadata [b'pandas' ]
427
-
428
- js = json .loads (metadata [b'pandas' ].decode ('utf8' ))
418
+ js = table .schema .pandas_metadata
419
+ assert 'mixed' not in js
429
420
data_column = js ['columns' ][0 ]
430
421
assert data_column ['pandas_type' ] == 'list[int64]'
431
422
assert data_column ['numpy_type' ] == 'object'
@@ -438,10 +429,8 @@ def test_decimal_metadata(self):
438
429
]
439
430
})
440
431
table = pa .Table .from_pandas (expected )
441
- metadata = table .schema .metadata
442
- assert b'mixed' not in metadata [b'pandas' ]
443
-
444
- js = json .loads (metadata [b'pandas' ].decode ('utf8' ))
432
+ js = table .schema .pandas_metadata
433
+ assert 'mixed' not in js
445
434
data_column = js ['columns' ][0 ]
446
435
assert data_column ['pandas_type' ] == 'decimal'
447
436
assert data_column ['numpy_type' ] == 'object'
@@ -484,7 +473,7 @@ def test_empty_list_metadata(self):
484
473
# type of empty lists
485
474
df = tbl .to_pandas ()
486
475
tbl2 = pa .Table .from_pandas (df , preserve_index = True )
487
- md2 = json . loads ( tbl2 .schema .metadata [ b'pandas' ]. decode ( 'utf8' ))
476
+ md2 = tbl2 .schema .pandas_metadata
488
477
489
478
# Second roundtrip
490
479
df2 = tbl2 .to_pandas ()
0 commit comments