Skip to content

Commit e84f7ac

Browse files
committed
_
1 parent 43bf562 commit e84f7ac

1 file changed

Lines changed: 21 additions & 0 deletions

File tree

src/blosc2/ctable.py

Lines changed: 21 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -78,6 +78,23 @@ def __getitem__(self, item):
7878
return self._table._run_row_logic(item)
7979

8080

81+
class _Row:
82+
def __init__(self, table: CTable, nrow: int):
83+
self._table = table
84+
self._nrow = nrow
85+
self._real_pos = None
86+
87+
def _get_real_pos(self) -> int:
88+
self._real_pos = _find_physical_index(self._table._valid_rows, self._nrow)
89+
return self._real_pos
90+
91+
def __getitem__(self, col_name: str):
92+
if self._real_pos is None:
93+
self._get_real_pos()
94+
return self._table._cols[col_name][self._real_pos]
95+
96+
97+
8198
def _resolve_field_dtype(field) -> tuple[np.dtype, int]:
8299
"""Return (numpy dtype, display_width) for a pydantic model field.
83100
@@ -380,6 +397,10 @@ def __str__(self):
380397
def __len__(self):
381398
return self._n_rows
382399

400+
def __iter__(self):
401+
for i in range(self.nrows):
402+
yield _Row(self, i)
403+
383404
def view(self, new_valid_rows):
384405
if not (
385406
isinstance(new_valid_rows, (blosc2.NDArray, blosc2.LazyExpr))

0 commit comments

Comments
 (0)