All Projects → KxSystems → Embedpy

KxSystems / Embedpy

Licence: apache-2.0
Allows the kdb+ interpreter to call Python functions

Programming Languages

python
139335 projects - #7 most used programming language

Labels

Projects that are alternatives of or similar to Embedpy

Django Admin Interface
django's default admin interface made customizable. popup windows replaced by modals. :mage: ⚡️
Stars: ✭ 717 (+1203.64%)
Mutual labels:  interface
React Planner
✏️ A React Component for plans design. Draw a 2D floorplan and navigate it in 3D mode.
Stars: ✭ 846 (+1438.18%)
Mutual labels:  interface
Plugins
Plugins for SmartHomeNG - The device integration platform for your smart home
Stars: ✭ 32 (-41.82%)
Mutual labels:  interface
Prompts
❯ Lightweight, beautiful and user-friendly interactive prompts
Stars: ✭ 6,970 (+12572.73%)
Mutual labels:  interface
Upboard ros
ROS nodes for upboard usage
Stars: ✭ 22 (-60%)
Mutual labels:  interface
Element
Programmatic UI for macOS
Stars: ✭ 855 (+1454.55%)
Mutual labels:  interface
Rapid.js
An ORM-like Interface and a Router For Your API Requests
Stars: ✭ 700 (+1172.73%)
Mutual labels:  interface
Codeigniter Psr4 Autoload
CodeIgniter 3 PSR-4 Autoloader for Application
Stars: ✭ 40 (-27.27%)
Mutual labels:  interface
Crab
JavaScript library for building user interfaces with Custom Elements, Shadow DOM and React like API
Stars: ✭ 22 (-60%)
Mutual labels:  interface
Binarytraits.jl
Can do or not? It's easy. See https://tk3369.github.io/BinaryTraits.jl/dev/
Stars: ✭ 30 (-45.45%)
Mutual labels:  interface
Haproxy Wi
Web interface for managing Haproxy, Nginx and Keepalived servers
Stars: ✭ 823 (+1396.36%)
Mutual labels:  interface
Jet Bridge
Jet Bridge – Admin Panel Framework for your application
Stars: ✭ 904 (+1543.64%)
Mutual labels:  interface
Typescript Type Generator
Generate interfaces on the go! Network request? Then generate interfaces for response!
Stars: ✭ 11 (-80%)
Mutual labels:  interface
Myetherwallet
MyEtherWallet (our friends call us MEW) is a free, client-side interface helping you interact with the Ethereum blockchain.
Stars: ✭ 726 (+1220%)
Mutual labels:  interface
Tygit
A basic terminal interface for git, written on Node.js [Project not maintained]
Stars: ✭ 36 (-34.55%)
Mutual labels:  interface
Interfacer
A linter that suggests interface types
Stars: ✭ 706 (+1183.64%)
Mutual labels:  interface
Feign
Feign makes writing java http clients easier
Stars: ✭ 7,681 (+13865.45%)
Mutual labels:  interface
Bleeper
Library to manage your firmware configurations written in C++
Stars: ✭ 54 (-1.82%)
Mutual labels:  interface
Opensourcetest
OpenSourceTest由自动化测试-夜行者社区维护,提供的是更多地灵活性和可配置性
Stars: ✭ 37 (-32.73%)
Mutual labels:  interface
Tui
A text-based user interface library for golang based on termbox
Stars: ✭ 12 (-78.18%)
Mutual labels:  interface

embedPy

GitHub release (latest by date) Travis (.org) branch AppVeyor branch

Allows the kdb+ interpreter to manipulate Python objects and call Python functions. Part of the Fusion for kdb+ interface collection.

Please direct any questions to [email protected].

Please report issues in this repository.

Requirements

  • kdb+ ≥ 3.5 64-bit/32-bit(Linux/Arm)
  • Python ≥ 3.5.0 (macOS/Linux/Arm) ≥ 3.6.0 windows

Overview

You can either

  • install embedPy to run on your local machine; or
  • download or build a Docker image in which to run embedPy

There are three ways to install embedPy on your local machine:

  1. Download and install a release

  2. Clone and build from source, on your local machine or in a Docker image

  3. Install with Conda - recommended for use with

32-bit Linux/Arm builds require users to build from source, there is not currenly a conda build or provided pre-compiled binary.

Anaconda Python

If you are using Anaconda Python, we recommend installing with Conda. If, instead, you take option (1) or (2) above, and are using Linux or macOS, set your LD_LIBRARY_PATH (Linux) or DYLD_LIBRARY_PATH (macOS) to your Python distributions library directory to avoid conflicts between libraries which both q and Python use (e.g. libz, libssl). You can find this directory's location in Python.

>>> import sysconfig
>>> sysconfig.get_config_var('LIBDIR')

PyQ

If you are currently using PyQ, both interfaces use a file p.k in $QHOME/{l64,m64} which results in a conflict when both are installed.

You may want to run initially from another directory, without installing. Skip the install step above, and run q in the directory where you unzipped the release.

Test script

The test script test.q requires the packages listed in tests/requirements.txt, although embedPy does not itself require them. They can be installed using pip or conda.

pip install -r tests/requirements.txt

or

conda install --file tests/requirements.txt

If the tests all pass, no message is displayed.

Install on local machine

Download and install a release

  1. Download a release archive from the releases page, and unzip it.

  2. In the unzipped directory, run the tests.

    $ q test.q
    
  3. Install: put p.q and p.k in QHOME and the library file (p.so for macOS/Linux or p.dll for Windows) in $QHOME/{l64,m64,w64}.

Clone and build from source

  1. Clone this repository from GitHub.

  2. To run embedPy without Internet access, download the kdb+ C API header file and place it in the build directory.

  3. Build the interface and run the tests.

    $ make p.so && q test.q
    
  4. Install: put p.q and p.k in $QHOME and p.so in $QHOME/{l64,l32,m64}.

Note

For ease of install on 32-bit Arm and linux it is suggested that a new user should use a miniconda version of python specific to the architecture being used, for example rpi for raspberry pi. This is not an explicit requirement but makes install of embedPy and python packages more seamless.

Install with Conda

This requires either macOS or Linux.

  1. Download and install either the full Anaconda distribution or Miniconda for Python3

  2. Use the conda command to install packages as follows:

    $ conda install -c kx embedPy
    

Run on local machine

Start q with embedPy

$ q p.q

Or from q, load p.q.

q)\l p.q

Documentation is on the embedPy homepage.

Run a Docker image

If you have Docker installed, instead of installing embedPy on your machine, you can run:

$ docker run -it --name myembedpy kxsys/embedpy
kdb+ on demand - Personal Edition

[snipped]

I agree to the terms of the license agreement for kdb+ on demand Personal Edition (N/y): y

If applicable please provide your company name (press enter for none): ACME Limited
Please provide your name: Bob Smith
Please provide your email (requires validation): [email protected]
KDB+ 3.5 2018.04.25 Copyright (C) 1993-2018 Kx Systems
l64/ 4()core 7905MB kx 0123456789ab 172.17.0.2 EXPIRE 2018.12.04 [email protected] KOD #0000000

q)

See docker/README.md for more details.

Back-incompatible changes

V1.0 -> V 1.1

.p.key and .p.value removed

V0.2-beta -> V1.0

  • Attribute access from embedPy object

    q)obj`ATTRNAME   / old
    q)obj`:ATTRNAME  / new
    
  • 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.

Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].