in pyiceberg/expressions/visitors.py [0:0]
def eval(self, file: DataFile) -> bool:
"""Test whether the file may contain records that match the expression."""
if not self.include_empty_files and file.record_count == 0:
return ROWS_CANNOT_MATCH
if file.record_count < 0:
# Older version don't correctly implement record count from avro file and thus
# set record count -1 when importing avro tables to iceberg tables. This should
# be updated once we implemented and set correct record count.
return ROWS_MIGHT_MATCH
self.value_counts = file.value_counts or EMPTY_DICT
self.null_counts = file.null_value_counts or EMPTY_DICT
self.nan_counts = file.nan_value_counts or EMPTY_DICT
self.lower_bounds = file.lower_bounds or EMPTY_DICT
self.upper_bounds = file.upper_bounds or EMPTY_DICT
return visit(self.expr, self)