Releases: RayforceDB/rayforce-py
0.5.4
0.5.3
New Features
-
SQL Query Support: Query tables using familiar SQL syntax with the new
Table.sql()method. SupportsSELECT,UPDATE,INSERT, andUPSERT(viaON CONFLICT) statements. Requires optionalsqlglotdependency. See SQL documentation for details. -
Vector type inference:
Vectornow automatically infers the element type from the first item whenray_typeis not specified.
0.5.2
New Features
-
Vector operations: Added operations for Vector types including arithmetic (
+,-,*,/), comparison (<,<=,>,>=,eq,ne), logical (and_,or_,not_), aggregation (sum,min,max,average), element access (first,last,take,at), set operations (union,sect,except_), search (find,within,filter), sort (asc,desc,iasc,rank,reverse,negate), and functional (map). -
Dict operations: Added key/value access (
key,value) and sort operations (asc,desc) for Dict types. -
Scalar operations: Added arithmetic, comparison, and math operations (
ceil,floor,round) for numeric scalar types (I16, I32, I64, F64).
0.5.1
New Features
pivot()method: Reshape data from long to wide format. Supports multiple index columns and aggregation functions (sum,count,avg,min,max,first,last). See Pivot documentation for details.
0.5.0
Breaking Changes
-
slice()renamed totake(): Theslice(start_idx, tail)method has been renamed totake(n, offset=0)with a cleaner signature. -
match_by_firstrenamed tokey_columns: Inupsert(), the parametermatch_by_firsthas been renamed tokey_columnsfor clarity. -
Table.from_partednow acceptsnameinstead ofsymfileargument. -
Sorting API changed:
xasc()andxdesc()methods have been replaced withorder_by(*cols, desc=False)which returns a query that must be executed. This allows chaining with other query operations. See Order By documentation.
New Features
-
Bracket notation access: Access columns using
table["col"]for a single column ortable[["col1", "col2"]]for multiple columns. -
shape(): method returns(rows, cols)to see table shape -
len()support: Get row count withlen(table). -
head()andtail()methods: Get first/last n rows withtable.head(5)ortable.tail(5). -
describe()method: Get summary statistics (count, mean, min, max) for numeric columns. -
dtypesproperty: Get column types as a dictionary withtable.dtypes. -
drop()method: Remove columns withtable.drop("col1", "col2"). See Transform documentation. -
rename()method: Rename columns withtable.rename({"old": "new"}). See Transform documentation. -
cast()method: Change column types withtable.cast("col", I64). See Transform documentation. -
Chainable
order_by(): Sort results as part of query chain:table.select(...).where(...).order_by("col").execute().
Bug fixes
- Fix issue when applying a boolean vector filter for a table.
0.4.3
Internal improvements
0.4.2
0.4.0
Breaking Changes
-
Network module restructuring: IPC classes (
IPCClient,IPCConnection,IPCServer) have been removed from the main package exports and replaced with TCP classes (TCPClient,TCPServer). The IPC functionality has been reorganized into therayforce.networkmodule. -
Error class renamed:
RayforceIPCErrorhas been removed and replaced withRayforceTCPErrorfor network-related errors. -
Table initialization API changed:
Table.from_dict()andTable.from_name()methods are removed. Use Table(dict/str) constructor directly instead.
New Features
- Added WebSocket support: New
WSClientandWSServerclasses inrayforce.network.websocketmodule for WebSocket-based communication. See WebSocket documentation for details. - Added TCP client/server: New
TCPClientandTCPServerclasses inrayforce.network.tcpmodule exported from the main package. - Added
asof_join()method toTableclass for as-of joins (time-based joins). See Joins documentation for details. - Added
ipcsave()method toTableand query objects (SelectQuery,UpdateQuery,InsertQuery,UpsertQuery,LeftJoin,InnerJoin,AsofJoin,WindowJoin) for saving query results in IPC connections.
0.3.1
- Improve client-side IPC by allowing sending pythonic queries into the IPC connection
https://py.rayforcedb.com/content/documentation/IPC.html#sending-query-objects