/pmemkv-python

Python bindings for pmemkv

Primary LanguagePythonBSD 3-Clause "New" or "Revised" LicenseBSD-3-Clause

pmemkv-python

Python bindings for pmemkv

This is experimental pre-release software and should not be used in production systems. APIs and file formats may change at any time without preserving backwards compatibility. All known issues and limitations are logged as GitHub issues.

Dependencies

  • Python 3.6 or later
    • along with python3-distutils
  • PMDK - native persistent memory libraries
  • pmemkv - native key/value library

Installation

Start by installing pmemkv on your system.

git clone https://github.com/pmem/pmemkv-python
cd pmemkv-python

If pmemkv is installed in defualt directory (e.g. /usr):

sudo python3 setup.py install

or to rather install it locally (in '/home/user_name/.local/lib/python3.X/site-packages'):

python3 setup.py install --user

If pmemkv is in some other directory:

python3 setup.py build_ext --library-dirs=<path_to_pmemkv_lib_dir> --include-dirs=<path_to_pmemkv_include_dir>
python3 setup.py install --user

Testing

Python bindings includes automated test cases. Use following command to run test cases:

cd tests
python3 -m pytest -v pmemkv_tests.py

Example

We are using /dev/shm to emulate persistent memory in example.

It can be found within this repository in examples directory. To execute the example:

PMEM_IS_PMEM_FORCE=1 python3 basic_example.py