# PyKX 2.3.0 Released

**URL:** <https://forum.kx.com/t/pykx-2-3-0-released/13200>\
**Category:** Community Support\
**Tags:** pykx, imported\
**Created:** [January 22, 2024, 12:00am UTC](https://forum.kx.com/t/pykx-2-3-0-released/13200 "2024-01-22T00:00:00Z")\
**Posts on this page:** 1\
**Page:** 1

<div class="post-metadata">

**Author:** ![cmccarthy1](https://avatars.discourse-cdn.com/v4/letter/c/dec6dc/32.png) [@cmccarthy1](https://forum.kx.com/u/cmccarthy1)\
**Post date:** [January 22, 2024, 12:00am UTC](https://forum.kx.com/t/pykx-2-3-0-released/13200/1 "2024-01-22T00:00:00Z")

</div>

[https://learninghub.kx.com/forums/topic/pykx-2-3-0-released](https://learninghub.kx.com/forums/topic/pykx-2-3-0-released)

Hi All,

 

PyKX 2.3.0 has been released&nbsp; Full details of the release can be found [here](https://code.kx.com/pykx/2.3/release-notes/changelog.html#pykx-230").

 
### Additions
 
- PyKX now supports the use of&nbsp;`KDB_LICENSE_B64`&nbsp;or&nbsp;`KDB_K4LICENSE_B64`&nbsp;configuration values/environment variables to define the content of a&nbsp;`kc.lic`&nbsp;or&nbsp;`k4.lic`&nbsp;license respectively if no license is found on initial usage of PyKX.
- Shortcut provided for access to current date, time and timestamp information using&nbsp;`'today'`&nbsp;and&nbsp;`'now'`.

- Addition of support for&nbsp;`inplace`&nbsp;updates of PyKX tables modified using qsql select/update/delete operations on in-memory data. Application of&nbsp;`inplace`&nbsp;modifications is not supported for direct application on Partitioned/Splayed tables.

- Addition of&nbsp;`reset_index`,&nbsp;`add_suffix`,&nbsp;`add_prefix`,&nbsp;`count`,&nbsp;`skew`&nbsp;and&nbsp;`std`&nbsp;functionality to Pandas Like API

- `%%q`&nbsp;Jupyter Notebook magic adds&nbsp;`--debug`&nbsp;option which prints the q backtrace if the cell execution fails.
- Release 2.3.0 adds to PyKX the concept of Beta features, these features are available to users through setting the configuration/environment variable&nbsp;`PYKX_BETA_FEATURES`. For more information on Beta features see further documentation&nbsp;[here](https://code.kx.com/pykx/2.3/beta-features/index.html")

 
### Fixes and Improvements
 
- `%%q`&nbsp;Jupyter Notebook magic now returns all outputs up to and including an error when thrown. Previously only the error was returned.
- `%%q`&nbsp;Jupyter Notebook magic ignores accidental whitespace in execution options. Below example no longer fails with&nbsp;`Received unknown argument`&nbsp;error:

- In cases where PyKX IPC sockets read data from unexpected publishers it could raise an&nbsp;`IndexError`. PyKX will now provide a more verbose error indicating that an unexpected message has been received, the bytes processed and requests a reproducible example to be provided if possible.

- Update to table column retrieval logic to error when a user attempts to access a non-existent column with a queried table.

- Improved error message for conversion failures.

- Fixes an issue where a user would receive a length error when attempting to apply&nbsp;`min`,&nbsp;`max`,&nbsp;`prod`&nbsp;and&nbsp;`sum`&nbsp;functions on&nbsp;`pykx.KeyedTable`&nbsp;objects.

 
### Beta Features
 
- Database Management functionality has been added for the creation, loading and maintenance of PyKX Partitioned Databases. A full worked example of this functionality can be found&nbsp;[here](https://code.kx.com/pykx/2.3/examples/dbmaint.ipynb")&nbsp;along with full API documentation which includes examples of each function&nbsp;[here](https://code.kx.com/pykx/2.3/api/db.html"). The API includes but is not limited to the following:

- Added&nbsp;`PYKX_THREADING`&nbsp;environment variable that allows&nbsp;[multithreaded programs](https://code.kx.com/pykx/2.3/beta-features/threading.html")&nbsp;to modify state when calling into python on secondary threads. Note: This behaviour is only supported on Linux / MacOS.
