From 9d9bae05380b70779d45b4f34c72922187c4f9b3 Mon Sep 17 00:00:00 2001 From: Tim Swast Date: Wed, 29 Mar 2023 14:03:41 -0500 Subject: [PATCH 1/4] chore: update tests to be compatible with pandas 2.0 --- tests/unit/test_table.py | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/tests/unit/test_table.py b/tests/unit/test_table.py index 22c7c048d..bb14ad517 100644 --- a/tests/unit/test_table.py +++ b/tests/unit/test_table.py @@ -3486,15 +3486,15 @@ def test_to_dataframe_w_dtypes_mapper(self): create_bqstorage_client=False, bool_dtype=pandas.BooleanDtype(), int_dtype=pandas.Int32Dtype(), - float_dtype=pandas.StringDtype(), - string_dtype=pandas.StringDtype(), + float_dtype=pandas.Float64Dtype(), + string_dtype=pandas.StringDtype(storage="pyarrow"), ) self.assertIsInstance(df, pandas.DataFrame) self.assertEqual(df.complete.dtype.name, "boolean") self.assertEqual(df.age.dtype.name, "Int32") self.assertEqual(df.seconds.dtype.name, "Int32") - self.assertEqual(df.miles.dtype.name, "string") + self.assertEqual(df.miles.dtype.name, "Float64") self.assertEqual(df.name.dtype.name, "string") @unittest.skipIf(pandas is None, "Requires `pandas`") From 091d476ea5bce692db29ae9af9d680d5b106aac5 Mon Sep 17 00:00:00 2001 From: Tim Swast Date: Wed, 29 Mar 2023 16:08:40 -0500 Subject: [PATCH 2/4] use StringDtype without storage argument --- tests/unit/test_table.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/tests/unit/test_table.py b/tests/unit/test_table.py index bb14ad517..2351cc15f 100644 --- a/tests/unit/test_table.py +++ b/tests/unit/test_table.py @@ -3487,7 +3487,7 @@ def test_to_dataframe_w_dtypes_mapper(self): bool_dtype=pandas.BooleanDtype(), int_dtype=pandas.Int32Dtype(), float_dtype=pandas.Float64Dtype(), - string_dtype=pandas.StringDtype(storage="pyarrow"), + string_dtype=pandas.StringDtype(), ) self.assertIsInstance(df, pandas.DataFrame) From c1eb7978ad2692b95b77d89ed9187abf2e7c3640 Mon Sep 17 00:00:00 2001 From: Tim Swast Date: Wed, 29 Mar 2023 16:54:04 -0500 Subject: [PATCH 3/4] avoid Float64Dtype on older pandas --- tests/unit/test_table.py | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/tests/unit/test_table.py b/tests/unit/test_table.py index 2351cc15f..70e4a5c6b 100644 --- a/tests/unit/test_table.py +++ b/tests/unit/test_table.py @@ -3486,7 +3486,11 @@ def test_to_dataframe_w_dtypes_mapper(self): create_bqstorage_client=False, bool_dtype=pandas.BooleanDtype(), int_dtype=pandas.Int32Dtype(), - float_dtype=pandas.Float64Dtype(), + float_dtype=( + pandas.Float64Dtype() + if hasattr(pandas, "Float64Dtype") + else pandas.StringDtype() + ), string_dtype=pandas.StringDtype(), ) From d27cd9d182c162d2afb458061c503ac9f094edff Mon Sep 17 00:00:00 2001 From: Tim Swast Date: Wed, 29 Mar 2023 20:38:47 -0500 Subject: [PATCH 4/4] adjust assertion --- tests/unit/test_table.py | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/tests/unit/test_table.py b/tests/unit/test_table.py index 70e4a5c6b..9bdd7b596 100644 --- a/tests/unit/test_table.py +++ b/tests/unit/test_table.py @@ -3498,7 +3498,10 @@ def test_to_dataframe_w_dtypes_mapper(self): self.assertEqual(df.complete.dtype.name, "boolean") self.assertEqual(df.age.dtype.name, "Int32") self.assertEqual(df.seconds.dtype.name, "Int32") - self.assertEqual(df.miles.dtype.name, "Float64") + self.assertEqual( + df.miles.dtype.name, + "Float64" if hasattr(pandas, "Float64Dtype") else "string", + ) self.assertEqual(df.name.dtype.name, "string") @unittest.skipIf(pandas is None, "Requires `pandas`")