cancel
Showing results for 
Search instead for 
Did you mean: 

PyKX 1.6 released

rocuinneagain
Valued Contributor
Valued Contributor

PyKX 1.6 has been released 

These release notes are also available on the documentation site:

https://code.kx.com/pykx/1.6/changelog.html

 

Additions

  • Added merge_asof to the Pandas like API.
    • See here for details of supported keyword arguments and limitations.
  • Added set_index to the Pandas like API.
    • See here for details of supported keyword arguments and limitations.
  • Added a set of basic computation methods operating on tabular data to the Pandas like API. See here for available methods and examples.
  • pykx.util.debug_environment added to help with import errors.
  • q vector type promotion in licensed mode.
  • Added .pykx.toraw to pykx.q to enable raw conversions (e.g. kx.toq(x, raw=True))
  • Added support for Python 3.11.
    • Support for pyarrow in this python version is currently in Beta.
  • Added the ability to use kx.RawQConnection as a Python based q server using kx.RawQConnection(port=x, as_server=True).
    • More documentation around using this functionality can be found here.

Fixes and Improvements

  • Improved error on Windows if msvcr100.dll is not found
  • Updated q libraries to 2023.04.17
  • Fixed an issue that caused q functions that shared a name with python key words to be inaccessible using the context interface.
    • It is now possible to access any q function that uses a python keyword as its name by adding an underscore to the name (e.g. except can now be accessed using q.except_).
  • Fixed an issue with .pykx.get and .pykx.getattr not raising errors correctly.
  • Fixed an issue where deserializing data would sometimes not error correctly.
  • Users can now add new column(s) to an in-memory table using assignment when using the Pandas like API.

    >>> import os
    >>> os.environ['PYKX_ENABLE_PANDAS_API'] = 'true'
    >>> import pykx as kx
    >>> import numpy as np
    >>> tab = kx.q('([]100?1f;100?1f)')
    >>> tab['x2'] = np.arange(0, 100)
    >>> tab
    pykx.Table(pykx.q('
    x           x1         x2
    -------------------------
    0.1485357   0.1780839  0 
    0.4857547   0.3017723  1 
    0.7123602   0.785033   2 
    0.3839461   0.5347096  3 
    0.3407215   0.7111716  4 
    0.05400102  0.411597   5 
    ..
    '))
1 REPLY 1

Laura
Community Manager Community Manager
Community Manager

Thanks for sharing @rocuinneagain ! 🙌