From b68a381629e05bd6376c741db293f6c9c5bb4703 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Ra=C3=BAl=20Cumplido?= Date: Wed, 8 Jul 2026 13:14:41 +0200 Subject: [PATCH] GH-37853: [Python] Remove test and fixture involving fastparquet --- python/pyarrow/conftest.py | 8 ---- python/pyarrow/tests/parquet/test_basic.py | 43 ---------------------- 2 files changed, 51 deletions(-) diff --git a/python/pyarrow/conftest.py b/python/pyarrow/conftest.py index 9fed75dac3ee..e2595dc2d9b0 100644 --- a/python/pyarrow/conftest.py +++ b/python/pyarrow/conftest.py @@ -33,7 +33,6 @@ 'cython', 'dataset', 'hypothesis', - 'fastparquet', 'flight', 'gandiva', 'gcs', @@ -69,7 +68,6 @@ 'bz2': Codec.is_available('bz2'), 'cython': False, 'dataset': False, - 'fastparquet': False, 'flight': False, 'gandiva': False, 'gcs': False, @@ -116,12 +114,6 @@ except ImportError: pass -try: - import fastparquet # noqa - defaults['fastparquet'] = True -except ImportError: - pass - try: import warnings with warnings.catch_warnings(): diff --git a/python/pyarrow/tests/parquet/test_basic.py b/python/pyarrow/tests/parquet/test_basic.py index 01c84b4f3513..20e3f51bb677 100644 --- a/python/pyarrow/tests/parquet/test_basic.py +++ b/python/pyarrow/tests/parquet/test_basic.py @@ -817,49 +817,6 @@ def test_parquet_file_too_small(tempdir): pq.read_table(path) -@pytest.mark.pandas -@pytest.mark.fastparquet -@pytest.mark.filterwarnings("ignore:RangeIndex:FutureWarning") -@pytest.mark.filterwarnings("ignore:tostring:DeprecationWarning:fastparquet") -@pytest.mark.filterwarnings("ignore:unclosed file:ResourceWarning") -def test_fastparquet_cross_compatibility(tempdir): - fp = pytest.importorskip('fastparquet') - - df = pd.DataFrame( - { - "a": list("abc"), - "b": list(range(1, 4)), - "c": np.arange(4.0, 7.0, dtype="float64"), - "d": [True, False, True], - "e": pd.date_range("20130101", periods=3), - "f": pd.Categorical(["a", "b", "a"]), - # fastparquet writes list as BYTE_ARRAY JSON, so no roundtrip - # "g": [[1, 2], None, [1, 2, 3]], - } - ) - table = pa.table(df) - - # Arrow -> fastparquet - file_arrow = str(tempdir / "cross_compat_arrow.parquet") - pq.write_table(table, file_arrow, compression=None) - - fp_file = fp.ParquetFile(file_arrow) - df_fp = fp_file.to_pandas() - # pandas 3 defaults to StringDtype for strings, fastparquet still returns object - # TODO: remove astype casts once fastparquet supports pandas 3 StringDtype - tm.assert_frame_equal(df_fp, df.astype({"a": object})) - - # Fastparquet -> arrow - file_fastparquet = str(tempdir / "cross_compat_fastparquet.parquet") - # fastparquet doesn't support writing pandas 3 StringDtype yet - fp.write(file_fastparquet, df.astype({"a": object})) - - table_fp = pq.read_pandas(file_fastparquet) - # for fastparquet written file, categoricals comes back as strings - # (no arrow schema in parquet metadata) - tm.assert_frame_equal(table_fp.to_pandas(), df.astype({"f": object})) - - @pytest.mark.parametrize('array_factory', [ lambda: pa.array([0, None] * 10), lambda: pa.array([0, None] * 10).dictionary_encode(),