2323
2424import pyiceberg .table as table_module
2525from pyiceberg .expressions import BooleanExpression , GreaterThan
26- from pyiceberg .io import FileIO
27- from pyiceberg .manifest import DataFile , FileFormat , ManifestContent , ManifestEntry , ManifestFile
26+ from pyiceberg .manifest import DataFile , FileFormat
2827from pyiceberg .schema import Schema
2928from pyiceberg .table import ManifestGroupPlanner , Table
3029from pyiceberg .typedef import Record , StructProtocol
@@ -40,18 +39,6 @@ def _data_file(file_number: int, partition_value: int) -> DataFile:
4039 )
4140
4241
43- def _manifest_file (file_number : int ) -> ManifestFile :
44- return ManifestFile .from_args (
45- manifest_path = f"s3://bucket/manifest-{ file_number } .avro" ,
46- manifest_length = 1 ,
47- partition_spec_id = 0 ,
48- content = ManifestContent .DATA ,
49- sequence_number = 1 ,
50- min_sequence_number = 1 ,
51- added_snapshot_id = 1 ,
52- )
53-
54-
5542def test_partition_evaluator_prepares_once_per_spec (table_v2 : Table , monkeypatch : pytest .MonkeyPatch ) -> None :
5643 evaluator_calls : list [list [int ]] = []
5744
@@ -76,34 +63,3 @@ def evaluate(struct: StructProtocol) -> bool:
7663 assert not partition_evaluator (_data_file (1 , 1 ))
7764 assert partition_evaluator (_data_file (2 , 10 ))
7865 assert evaluator_calls == [[1 , 10 ]]
79-
80-
81- def test_manifest_group_planner_shares_partition_evaluator_across_manifests (
82- table_v2 : Table , monkeypatch : pytest .MonkeyPatch
83- ) -> None :
84- planner = ManifestGroupPlanner (table_metadata = table_v2 .metadata , io = table_v2 .io , row_filter = GreaterThan ("x" , 5 ))
85- built_specs : list [int ] = []
86- opened_evaluators : list [Callable [[DataFile ], bool ]] = []
87-
88- def build_partition_evaluator (spec_id : int ) -> Callable [[DataFile ], bool ]:
89- built_specs .append (spec_id )
90- return lambda _ : True
91-
92- def open_manifest (
93- io : FileIO ,
94- manifest : ManifestFile ,
95- partition_evaluator : Callable [[DataFile ], bool ],
96- metrics_evaluator : Callable [[DataFile ], bool ],
97- ) -> list [ManifestEntry ]:
98- opened_evaluators .append (partition_evaluator )
99- return []
100-
101- monkeypatch .setattr (planner , "_build_manifest_evaluator" , lambda _ : lambda _ : True )
102- monkeypatch .setattr (planner , "_build_partition_evaluator" , build_partition_evaluator )
103- monkeypatch .setattr (table_module , "_open_manifest" , open_manifest )
104-
105- list (planner .plan_manifest_entries ([_manifest_file (1 ), _manifest_file (2 )]))
106-
107- assert built_specs == [0 ]
108- assert len (opened_evaluators ) == 2
109- assert opened_evaluators [0 ] is opened_evaluators [1 ]
0 commit comments