Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
10 changes: 5 additions & 5 deletions python/pyarrow/_parquet.pyx
Original file line number Diff line number Diff line change
Expand Up @@ -108,7 +108,7 @@ cdef class Statistics(_Weakrefable):
except TypeError:
return NotImplemented

def equals(self, Statistics other):
def equals(self, Statistics other not None):
"""
Return whether the two column statistics objects are equal.

Expand Down Expand Up @@ -521,7 +521,7 @@ cdef class ColumnChunkMetaData(_Weakrefable):
except TypeError:
return NotImplemented

def equals(self, ColumnChunkMetaData other):
def equals(self, ColumnChunkMetaData other not None):
"""
Return whether the two column chunk metadata objects are equal.

Expand Down Expand Up @@ -919,7 +919,7 @@ cdef class RowGroupMetaData(_Weakrefable):
except TypeError:
return NotImplemented

def equals(self, RowGroupMetaData other):
def equals(self, RowGroupMetaData other not None):
"""
Return whether the two row group metadata objects are equal.

Expand Down Expand Up @@ -1295,7 +1295,7 @@ cdef class ParquetSchema(_Weakrefable):
except TypeError:
return NotImplemented

def equals(self, ParquetSchema other):
def equals(self, ParquetSchema other not None):
"""
Return whether the two schemas are equal.

Expand Down Expand Up @@ -1350,7 +1350,7 @@ cdef class ColumnSchema(_Weakrefable):
def __reduce__(self):
return ColumnSchema, (self.parent, self.index)

def equals(self, ColumnSchema other):
def equals(self, ColumnSchema other not None):
"""
Return whether the two column schemas are equal.

Expand Down
24 changes: 24 additions & 0 deletions python/pyarrow/tests/parquet/test_metadata.py
Original file line number Diff line number Diff line change
Expand Up @@ -724,6 +724,30 @@ def test_metadata_equals():
original_metadata.equals(None)


def test_parquet_metadata_equals_none(tempdir):
table = pa.table({"a": [1, 2, 3]})
path = tempdir / "metadata_equals_none.parquet"
pq.write_table(table, path)

metadata = pq.read_metadata(path)
row_group = metadata.row_group(0)
column_chunk = row_group.column(0)
objects = [
column_chunk.statistics,
column_chunk,
row_group,
metadata.schema,
metadata.schema[0],
]
none_value = None

for obj in objects:
assert (obj == none_value) is False
assert (obj != none_value) is True
with pytest.raises(TypeError):
obj.equals(none_value)


@pytest.mark.parametrize("t1,t2,expected_error", (
({'col1': range(10)}, {'col1': range(10)}, None),
({'col1': range(10)}, {'col2': range(10)},
Expand Down
Loading