Skip to content

Commit 1bb6772

Browse files
author
Hanzhi Wang
committed
Refactor the helper function
1 parent 4651ea4 commit 1bb6772

File tree

2 files changed

+16
-17
lines changed

2 files changed

+16
-17
lines changed

pyiceberg/table/__init__.py

Lines changed: 14 additions & 16 deletions
Original file line numberDiff line numberDiff line change
@@ -1943,7 +1943,7 @@ def _check_sequence_number(min_sequence_number: int, manifest: ManifestFile) ->
19431943
and (manifest.sequence_number or INITIAL_SEQUENCE_NUMBER) >= min_sequence_number
19441944
)
19451945

1946-
def scan_plan_helper(self) -> Iterator[ManifestEntry]:
1946+
def scan_plan_helper(self) -> Iterator[List[ManifestEntry]]:
19471947
"""Filter and return manifest entries based on partition and metrics evaluators.
19481948
19491949
Returns:
@@ -1973,20 +1973,18 @@ def scan_plan_helper(self) -> Iterator[ManifestEntry]:
19731973

19741974
executor = ExecutorFactory.get_or_create()
19751975

1976-
return chain(
1977-
*executor.map(
1978-
lambda args: _open_manifest(*args),
1979-
[
1980-
(
1981-
self.io,
1982-
manifest,
1983-
partition_evaluators[manifest.partition_spec_id],
1984-
self._build_metrics_evaluator(),
1985-
)
1986-
for manifest in manifests
1987-
if self._check_sequence_number(min_sequence_number, manifest)
1988-
],
1989-
)
1976+
return executor.map(
1977+
lambda args: _open_manifest(*args),
1978+
[
1979+
(
1980+
self.io,
1981+
manifest,
1982+
partition_evaluators[manifest.partition_spec_id],
1983+
self._build_metrics_evaluator(),
1984+
)
1985+
for manifest in manifests
1986+
if self._check_sequence_number(min_sequence_number, manifest)
1987+
],
19901988
)
19911989

19921990
def plan_files(self) -> Iterable[FileScanTask]:
@@ -2000,7 +1998,7 @@ def plan_files(self) -> Iterable[FileScanTask]:
20001998

20011999
residual_evaluators: Dict[int, Callable[[DataFile], ResidualEvaluator]] = KeyDefaultDict(self._build_residual_evaluator)
20022000

2003-
for manifest_entry in self.scan_plan_helper():
2001+
for manifest_entry in chain(*self.scan_plan_helper()):
20042002
data_file = manifest_entry.data_file
20052003
if data_file.content == DataFileContent.DATA:
20062004
data_entries.append(manifest_entry)

pyiceberg/table/inspect.py

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -16,6 +16,7 @@
1616
# under the License.
1717
from __future__ import annotations
1818

19+
import itertools
1920
from datetime import datetime, timezone
2021
from typing import TYPE_CHECKING, Any, Dict, Iterator, List, Optional, Set, Tuple, Union
2122

@@ -309,7 +310,7 @@ def partitions(
309310

310311
partitions_map: Dict[Tuple[str, Any], Any] = {}
311312

312-
for entry in scan.scan_plan_helper():
313+
for entry in itertools.chain(*scan.scan_plan_helper()):
313314
partition = entry.data_file.partition
314315
partition_record_dict = {
315316
field.name: partition[pos] for pos, field in enumerate(self.tbl.metadata.specs()[entry.data_file.spec_id].fields)

0 commit comments

Comments
 (0)