0.6.1
New Features
-
Fancy indexing for Tables:
Table.__getitem__now supports multiple indexing modes beyond column access:- Expression filter:
table[Column("age") > 35]— filter rows by condition. Supports&(and) and|(or) for combining expressions. - Integer row access:
table[0],table[-1]— access a single row by index, returns a Dict. - Slicing:
table[1:3],table[:5],table[-2:]— row slicing backed by the C-levelTAKEoperation. - Index list:
table[[0, 2, 5]]— select specific rows by position.
- Expression filter:
-
Vector.from_numpy()auto-widening: Unsupported numpy dtypes are now automatically widened to the nearest supported type:float32/float16→F64,int8→I16,uint16→I32,uint32→I64. -
Vector.from_numpy()bytes and UUID support: Byte string arrays (dtype='S') are automatically decoded to Symbol vectors. Object arrays ofuuid.UUIDvalues are detected and converted to GUID vectors. -
NaT preservation:
NaT(Not-a-Time) values in numpydatetime64andtimedelta64arrays now survive round-trips throughVector.from_numpy()andVector.to_numpy().
Bug Fixes
-
Table.to_numpy()with Timestamp columns: FixedDTypePromotionErrorwhen callingto_numpy()on tables containing a mix of incompatible column types (e.g., integers, strings, and timestamps). Mixed-type tables now gracefully fall back toobjectdtype. -
Filtering F64 by distinct - fixed
-
Vector.__getitem__for U8 vectors: Fixed U8 vector elements being returned asB8(True/False)instead ofU8(value). Both types are 1-byte, causing the C-levelat_idxto misinterpret the type. -
Vector.from_numpy()with explicitray_typefor temporal arrays: FixedValueError: cannot include dtype 'M' in a bufferwhen passingray_type=Timestamp,ray_type=Date, orray_type=Timewith datetime64/timedelta64 arrays.