4646from sortedcontainers import SortedList
4747from typing_extensions import Annotated
4848
49+ import pyiceberg .expressions .parser as parser
50+ import pyiceberg .expressions .visitors as visitors
4951from pyiceberg .exceptions import CommitFailedException , ResolveError , ValidationError
5052from pyiceberg .expressions import (
5153 AlwaysTrue ,
5254 And ,
5355 BooleanExpression ,
5456 EqualTo ,
5557 Reference ,
56- parser ,
57- visitors ,
5858)
59- from pyiceberg .expressions .visitors import _InclusiveMetricsEvaluator , inclusive_projection
6059from pyiceberg .io import FileIO , load_file_io
6160from pyiceberg .manifest import (
6261 POSITIONAL_DELETE_SCHEMA ,
@@ -1379,7 +1378,9 @@ def _match_deletes_to_data_file(data_entry: ManifestEntry, positional_delete_ent
13791378 relevant_entries = positional_delete_entries [positional_delete_entries .bisect_right (data_entry ) :]
13801379
13811380 if len (relevant_entries ) > 0 :
1382- evaluator = _InclusiveMetricsEvaluator (POSITIONAL_DELETE_SCHEMA , EqualTo ("file_path" , data_entry .data_file .file_path ))
1381+ evaluator = visitors ._InclusiveMetricsEvaluator (
1382+ POSITIONAL_DELETE_SCHEMA , EqualTo ("file_path" , data_entry .data_file .file_path )
1383+ )
13831384 return {
13841385 positional_delete_entry .data_file
13851386 for positional_delete_entry in relevant_entries
@@ -1403,7 +1404,7 @@ def __init__(
14031404 super ().__init__ (table , row_filter , selected_fields , case_sensitive , snapshot_id , options , limit )
14041405
14051406 def _build_partition_projection (self , spec_id : int ) -> BooleanExpression :
1406- project = inclusive_projection (self .table .schema (), self .table .specs ()[spec_id ])
1407+ project = visitors . inclusive_projection (self .table .schema (), self .table .specs ()[spec_id ])
14071408 return project (self .row_filter )
14081409
14091410 @cached_property
@@ -1470,7 +1471,7 @@ def plan_files(self) -> Iterable[FileScanTask]:
14701471 # this filter depends on the partition spec used to write the manifest file
14711472
14721473 partition_evaluators : Dict [int , Callable [[DataFile ], bool ]] = KeyDefaultDict (self ._build_partition_evaluator )
1473- metrics_evaluator = _InclusiveMetricsEvaluator (
1474+ metrics_evaluator = visitors . _InclusiveMetricsEvaluator (
14741475 self .table .schema (), self .row_filter , self .case_sensitive , self .options .get ("include_empty_files" ) == "true"
14751476 ).eval
14761477
0 commit comments