Skip to content

Commit

Permalink
Backport PR pandas-dev#48995 on branch 1.5.x (REGR: to_parquet raisin…
Browse files Browse the repository at this point in the history
…g with bytes filename) (pandas-dev#49061)

Backport PR pandas-dev#48995: REGR: to_parquet raising with bytes filename

Co-authored-by: Patrick Hoefler <61934744+phofl@users.noreply.github.com>
  • Loading branch information
meeseeksmachine and phofl committed Oct 13, 2022
1 parent daf465c commit 212c651
Show file tree
Hide file tree
Showing 3 changed files with 13 additions and 0 deletions.
1 change: 1 addition & 0 deletions doc/source/whatsnew/v1.5.1.rst
Original file line number Diff line number Diff line change
Expand Up @@ -85,6 +85,7 @@ Fixed regressions
- Fixed Regression in :meth:`DataFrameGroupBy.apply` when user defined function is called on an empty dataframe (:issue:`47985`)
- Fixed regression in :meth:`DataFrame.apply` when passing non-zero ``axis`` via keyword argument (:issue:`48656`)
- Fixed regression in :meth:`Series.groupby` and :meth:`DataFrame.groupby` when the grouper is a nullable data type (e.g. :class:`Int64`) or a PyArrow-backed string array, contains null values, and ``dropna=False`` (:issue:`48794`)
- Fixed regression in :meth:`DataFrame.to_parquet` raising when file name was specified as ``bytes`` (:issue:`48944`)
- Fixed regression in :class:`ExcelWriter` where the ``book`` attribute could no longer be set; however setting this attribute is now deprecated and this ability will be removed in a future version of pandas (:issue:`48780`)

.. ---------------------------------------------------------------------------
Expand Down
2 changes: 2 additions & 0 deletions pandas/io/parquet.py
Original file line number Diff line number Diff line change
Expand Up @@ -186,6 +186,8 @@ def write(
and isinstance(path_or_handle.name, (str, bytes))
):
path_or_handle = path_or_handle.name
if isinstance(path_or_handle, bytes):
path_or_handle = path_or_handle.decode()

try:
if partition_cols is not None:
Expand Down
10 changes: 10 additions & 0 deletions pandas/tests/io/test_parquet.py
Original file line number Diff line number Diff line change
Expand Up @@ -1182,3 +1182,13 @@ def test_close_file_handle_on_read_error(self):
read_parquet(path, engine="fastparquet")
# The next line raises an error on Windows if the file is still open
pathlib.Path(path).unlink(missing_ok=False)

def test_bytes_file_name(self, engine):
# GH#48944
df = pd.DataFrame(data={"A": [0, 1], "B": [1, 0]})
with tm.ensure_clean("test.parquet") as path:
with open(path.encode(), "wb") as f:
df.to_parquet(f)

result = read_parquet(path, engine=engine)
tm.assert_frame_equal(result, df)

0 comments on commit 212c651

Please sign in to comment.