Skip to content

Commit

Permalink
fix: ak.to_parquet for a record-like non-Record (#3175)
Browse files Browse the repository at this point in the history
* fix: ak.to_parquet for a record-like non-Record

* style: pre-commit fixes

---------

Co-authored-by: pre-commit-ci[bot] <66853113+pre-commit-ci[bot]@users.noreply.github.com>
Co-authored-by: Ianna Osborne <ianna.osborne@cern.ch>
  • Loading branch information
3 people authored Jul 30, 2024
1 parent 4d385bc commit cc7504e
Show file tree
Hide file tree
Showing 2 changed files with 26 additions and 1 deletion.
2 changes: 1 addition & 1 deletion src/awkward/operations/ak_to_parquet.py
Original file line number Diff line number Diff line change
Expand Up @@ -314,7 +314,7 @@ def get_layout_and_table(x):
else:
column_prefix = ()

if isinstance(data, ak.Record):
if isinstance(layout, ak.record.Record):
form = layout.array.form
else:
form = layout.form
Expand Down
25 changes: 25 additions & 0 deletions tests/test_3174_to_parquet_record.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,25 @@
# BSD 3-Clause License; see https://github.com/scikit-hep/awkward/blob/main/LICENSE

from __future__ import annotations

import os

import pytest

import awkward as ak

pytest.importorskip("pyarrow.parquet")


def test(tmp_path):
filename = os.path.join(tmp_path, "whatever.parquet")

px = ak.Array([[1.0, 2.0], [3.0], [], [4.0, 5.0, 6.0]])
py = ak.Array([[0.5, 1.5], [2.5], [], [3.5, 4.5, 5.5]])
pz = ak.Array([[0.2, 1.2], [2.2], [], [3.2, 4.2, 5.2]])
e = ak.Array([[0.1, 1.1], [2.1], [], [3.1, 4.1, 5.1]])
data = {"px": px, "py": py, "pz": pz, "e": e} # not quite a record

ak.to_parquet(data, filename)

assert ak.from_parquet(filename).tolist() == ak.to_list(ak.to_layout(data))

0 comments on commit cc7504e

Please sign in to comment.