PyKX 2.3.1 Released

https://learninghub.kx.com/forums/topic/pykx-2-3-1-released

 

Hi All,

PyKX 2.3.1 has been released

 

Full release notes can be found here.

This release focuses on a number of specific fixes and beta feature additions as outlined below:
  • Python functions saved to q would error if passed '' or '.'. These now pass without issue. (example in full release notes)
  • Changed Table.rename() to ignore any columns values that are of the wrong type instead of throwing an unhelpful error.
  • Improved upon the quality of Table.rename() error messages and documentation on the function.
  • PyKX would error with _get_config_value() missing 1 required positional argument: 'default' on import if a license was not found since 2.3.0. Now correctly opens the license walkthrough.
  • Pandas 2.2.0 introduced breaking changes which effect PyKX. PyKX dependencies have been updated to pandas>=1.2, < 2.2.0 until these are resolved. Data casting behavior leads to an unexpected datatype being returned.
  • df.select_dtypes() updated to now accept kx.*Atom values for include/exclude params. Use of kx.CharVector will return error.
  • To align with other areas of PyKX the upsert and insert methods for PyKX tables and keyed tables now support the keyword argument inplace, this change will deprecate usage of replace_self with the next major release of PyKX.
Beta Features:
  • Addition of the concept of Remote Function execution to PyKX, this allows users, from a Python session to define Python functions which will be executed on a remote q/kdb+ server running PyKX under q. The intention with this feature is to allow onboarding of Python first operations within existing or q/kdb+ first infrastructures
>>> from pykx.remote import function, session >>> remote_session = session() >>> remote_session.create('localhost', 5050) >>> @function(remote_session) ... def func(x): ... return x+1 >>> func(2) # Functionality run on q server pykx.LongAtom(pykx.q('3')) >>> remote_session.clear()