Skip to content

Python embedPy

Allows the kdb+ interpreter to manipulate Python objects and call Python functions.

Requirements

  • kdb+ >=3.5 64-bit
  • Anaconda Python 3.x
  • macOS or Linux

Build and install

Download the code from KxSystems/embedPy.

Build the interface and run sanity checks with

./configure && make test

If running in an environment without Internet access, you will need to download the kdb+ C API header file manually and place in the build directory.

Install

place p.q and p.k in $QHOME and p.so in $QHOME/{l64|m64}.

p.so

If you are currently using PyQ, it also has a file p.so in $QHOME/{l64|m64}. In this case, you may want to run initially from the local build directory without installing.

Skip the install step and run q in the build directory to do this.

Back-incompatible changes

V0.2-beta -> V1.0

  • Attribute access from embedPy object

    
    / old
    q)obj`ATTRNAME
    / new
    q)obj`:ATTRNAME
    

  • embedPy objects can be called directly without explicitly specifying the call return type, the default return type is an embedPy object

V0.1-beta -> V0.2beta in V0.2-beta

V0.2-beta features a number of changes back-incompatible with the previous release, V0.1-beta.

Most notably, the default type used in many operations is now the embedPy type, rather than the foreign type. Differences between these types (and the associated APIs) are set out below.