You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

53 lines
1.3 KiB

import numpy as np
import pytest
from pandas import (
DataFrame,
Series,
)
import pandas._testing as tm
from pandas.io.pytables import (
HDFStore,
read_hdf,
)
pytest.importorskip("tables")
class TestHDFStoreSubclass:
# GH 33748
def test_supported_for_subclass_dataframe(self, tmp_path):
data = {"a": [1, 2], "b": [3, 4]}
sdf = tm.SubclassedDataFrame(data, dtype=np.intp)
expected = DataFrame(data, dtype=np.intp)
path = tmp_path / "temp.h5"
sdf.to_hdf(path, key="df")
result = read_hdf(path, "df")
tm.assert_frame_equal(result, expected)
path = tmp_path / "temp.h5"
with HDFStore(path) as store:
store.put("df", sdf)
result = read_hdf(path, "df")
tm.assert_frame_equal(result, expected)
def test_supported_for_subclass_series(self, tmp_path):
data = [1, 2, 3]
sser = tm.SubclassedSeries(data, dtype=np.intp)
expected = Series(data, dtype=np.intp)
path = tmp_path / "temp.h5"
sser.to_hdf(path, key="ser")
result = read_hdf(path, "ser")
tm.assert_series_equal(result, expected)
path = tmp_path / "temp.h5"
with HDFStore(path) as store:
store.put("ser", sser)
result = read_hdf(path, "ser")
tm.assert_series_equal(result, expected)