File tree Expand file tree Collapse file tree
Expand file tree Collapse file tree Original file line number Diff line number Diff 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+
8198def _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 ))
You can’t perform that action at this time.
0 commit comments