Skip to content

User Guide

The user guide provided here covers all the core elements of interacting with and creating PyKX objects using the PyKX library. Each of the subsections of this user guide explains the library based on applications of the software to various scenarios rather than through a function by function execution guide. For example Creating PyKX objects describes the many ways you can generate PyKX objects for later use.

This user guide is broken into two sections:

  1. Fundamentals - This defines the basic concepts necessary to interact with PyKX objects, clarifies elements of the libraries usage and some technical considerations which should be made by new users when trying to make the most out of PyKX.
  2. Advanced usage and performance considerations - A user should only make use of this section once they are familiar with the fundamentals section of this documentation. This section outlines the usage of advanced features of the library such as running under q and IPC interactions. Additionally it outlines performance enhancements that can be enabled by a user and limitations imposed by embedding q/kdb+ within a Python environment.

The following outlines the various topics covered within the above sections:

Fundamentals

Section Description
Interacting with PyKX objects How can you create and interact with PyKX objects in various ways.
Evaluating q code with PyKX How do you evaluate q code under various conditions.
Querying PyKX data How do you query tables locally and remotely using PyKX with the qSQL query API and SQL
Indexing PyKX objects What considerations need to be made when indexing and accessing elements within PyKX objects Pythonically.
Handling nulls and infinities How are null and infinite values handled within PyKX.

Advanced usage and performance considerations

Section Description
Communicating via IPC How can you interact synchronously and asynchronously with a kdb+/q server.
Using q functions in a Pythonic way Evaluating and injecting q code within a Python session using a Pythonic context interface which exposes q objects as first class Python objects.
Numpy integration Description of the various low-level integrations between PyKX and numpy. Principally describing NEP-49 optimisations and the evaluation of numpy functions using PyKX vectors directly.
Running PyKX under q An introduction to embedding PyKX functionality inside a q session. This allows users to evaluate Python code on data natively in a q session.
Modes of operation A brief description of the modes of operation of PyKX outlining it's usage in the presence and absence of a license and the limitations that this imposes.
Performance considerations Guidance on how to treat management and interactions with PyKX objects to achieve the best performance possible.
Library limitations For users familiar with q/kdb+ and previous Python interfaces what limitations does PyKX impose.
Modifying PyKX using environment variables A list of environment variables which can be used to tune PyKX at run time.