Skip to content

Commit 184f828

Browse files
jorisvandenbosschewesm
authored andcommitted
ARROW-7762: [Python] Do not ignore exception for invalid version in ParquetWriter
Closes #6352 from jorisvandenbossche/ARROW-7762 and squashes the following commits: 9353658 <Joris Van den Bossche> ARROW-7762: Do not ignore exception for invalid version in ParquetWriter Authored-by: Joris Van den Bossche <jorisvandenbossche@gmail.com> Signed-off-by: Wes McKinney <wesm+git@apache.org>
1 parent 67e34c5 commit 184f828

File tree

2 files changed

+9
-2
lines changed

2 files changed

+9
-2
lines changed

python/pyarrow/_parquet.pyx

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1304,14 +1304,15 @@ cdef class ParquetWriter:
13041304
else:
13051305
props.disallow_truncated_timestamps()
13061306

1307-
cdef void _set_version(self, WriterProperties.Builder* props):
1307+
cdef int _set_version(self, WriterProperties.Builder* props) except -1:
13081308
if self.version is not None:
13091309
if self.version == "1.0":
13101310
props.version(ParquetVersion_V1)
13111311
elif self.version == "2.0":
13121312
props.version(ParquetVersion_V2)
13131313
else:
1314-
raise ArrowException("Unsupported Parquet format version")
1314+
raise ValueError("Unsupported Parquet format version: {0}"
1315+
.format(self.version))
13151316

13161317
cdef void _set_compression_props(self, WriterProperties.Builder* props):
13171318
if isinstance(self.compression, basestring):

python/pyarrow/tests/test_parquet.py

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -177,6 +177,12 @@ def test_pandas_parquet_2_0_roundtrip(tempdir, chunk_size):
177177
tm.assert_frame_equal(df, df_read)
178178

179179

180+
def test_parquet_invalid_version(tempdir):
181+
table = pa.table({'a': [1, 2, 3]})
182+
with pytest.raises(ValueError, match="Unsupported Parquet format version"):
183+
_write_table(table, tempdir / 'test_version.parquet', version="2.2")
184+
185+
180186
def test_set_data_page_size():
181187
arr = pa.array([1, 2, 3] * 100000)
182188
t = pa.Table.from_arrays([arr], names=['f0'])

0 commit comments

Comments
 (0)