Skip to main content

Apache Ignite binary client Python API

Project description

ignite-python-client

Apache Ignite thin (binary protocol) client, written in Python 3.

Prerequisites

  • Python 3.7 or above (3.7, 3.8, 3.9, 3.10 and 3.11 are tested),
  • Access to Apache Ignite node, local or remote. The current thin client version was tested on Apache Ignite 2.14 (binary client protocol 1.7.0).

Installation

for end user

If you only want to use the pyignite module in your project, do:

$ pip install pyignite

for developer

If you want to run tests, examples or build documentation, clone the whole repository:

$ git clone git@github.com:apache/ignite-python-thin-client.git
$ pip install -e .

This will install the repository version of pyignite into your environment in so-called “develop” or “editable” mode. You may read more about editable installs in the pip manual.

Then run through the contents of requirements folder to install the additional requirements into your working Python environment using

$ pip install -r requirements/<your task>.txt

You may also want to consult the setuptools manual about using setup.py.

optional C extension

There is an optional C extension to speedup some computational intensive tasks. If it's compilation fails (missing compiler or CPython headers), pyignite will be installed without this module.

  • On Linux or MacOS X only C compiler is required (gcc or clang). It compiles during standard setup process.

  • For building universal wheels (binary packages) for Linux, just invoke script ./scripts/create_distr.sh.

    NB! Docker is required.

  • On Windows MSVC 14.x required, and it should be in path, also python versions 3.7, 3.8, 3.9, 3.10 and 3.11 both for x86 and x86-64 should be installed. You can disable some of these versions but you'd need to edit script for that.

  • For building wheels for Windows, invoke script .\scripts\BuildWheels.ps1 using PowerShell. Just make sure that your execution policy allows execution of scripts in your environment.

    Ready wheels for x86 and x86-64 for different python versions (3.7, 3.8, 3.9 and 3.10) will be located in distr directory.

Updating from older version

To upgrade an existing package, use the following command:

pip install --upgrade pyignite

To install the latest version of a package:

pip install pyignite

To install a specific version:

pip install pyignite==0.6.1

Documentation

The package documentation is available at RTD for your convenience.

If you want to build the documentation from source, do the developer installation as described above, then run the following commands from the client's root directory:

$ pip install -r requirements/docs.txt
$ cd docs
$ make html

Then open docs/generated/html/index.html in your browser.

Examples

Some examples of using pyignite are provided in examples folder. They are extensively commented in the “Examples of usage” section of the documentation.

This code implies that it is run in the environment with pyignite package installed, and Apache Ignite node is running on localhost:10800.

Testing

NB! It is recommended installing pyignite in development mode. Refer to this section for instructions.

Do not forget to install test requirements:

$ pip install -r requirements/install.txt -r requirements/tests.txt

Also, you'll need to have a binary release of Ignite with log4j2 enabled and to set IGNITE_HOME environment variable:

$ cd <ignite_binary_release>
$ export IGNITE_HOME=$(pwd)
$ cp -r $IGNITE_HOME/libs/optional/ignite-log4j2 $IGNITE_HOME/libs/

Run basic tests

$ pytest

Run with examples

$ pytest --examples 

If you need to change the connection parameters, see the documentation on testing.

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

pyignite-0.6.1.zip (353.7 kB view hashes)

Uploaded Source

Built Distributions

pyignite-0.6.1-cp311-cp311-win_amd64.whl (138.1 kB view hashes)

Uploaded CPython 3.11 Windows x86-64

pyignite-0.6.1-cp311-cp311-musllinux_1_1_x86_64.whl (150.9 kB view hashes)

Uploaded CPython 3.11 musllinux: musl 1.1+ x86-64

pyignite-0.6.1-cp311-cp311-musllinux_1_1_i686.whl (150.6 kB view hashes)

Uploaded CPython 3.11 musllinux: musl 1.1+ i686

pyignite-0.6.1-cp311-cp311-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl (145.7 kB view hashes)

Uploaded CPython 3.11 manylinux: glibc 2.17+ x86-64 manylinux: glibc 2.5+ x86-64

pyignite-0.6.1-cp311-cp311-macosx_10_9_x86_64.whl (135.0 kB view hashes)

Uploaded CPython 3.11 macOS 10.9+ x86-64

pyignite-0.6.1-cp310-cp310-win_amd64.whl (138.1 kB view hashes)

Uploaded CPython 3.10 Windows x86-64

pyignite-0.6.1-cp310-cp310-musllinux_1_1_x86_64.whl (148.7 kB view hashes)

Uploaded CPython 3.10 musllinux: musl 1.1+ x86-64

pyignite-0.6.1-cp310-cp310-musllinux_1_1_i686.whl (148.5 kB view hashes)

Uploaded CPython 3.10 musllinux: musl 1.1+ i686

pyignite-0.6.1-cp310-cp310-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl (144.4 kB view hashes)

Uploaded CPython 3.10 manylinux: glibc 2.17+ x86-64 manylinux: glibc 2.5+ x86-64

pyignite-0.6.1-cp310-cp310-macosx_10_9_x86_64.whl (135.0 kB view hashes)

Uploaded CPython 3.10 macOS 10.9+ x86-64

pyignite-0.6.1-cp39-cp39-win_amd64.whl (138.1 kB view hashes)

Uploaded CPython 3.9 Windows x86-64

pyignite-0.6.1-cp39-cp39-musllinux_1_1_x86_64.whl (148.5 kB view hashes)

Uploaded CPython 3.9 musllinux: musl 1.1+ x86-64

pyignite-0.6.1-cp39-cp39-musllinux_1_1_i686.whl (148.3 kB view hashes)

Uploaded CPython 3.9 musllinux: musl 1.1+ i686

pyignite-0.6.1-cp39-cp39-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl (144.2 kB view hashes)

Uploaded CPython 3.9 manylinux: glibc 2.17+ x86-64 manylinux: glibc 2.5+ x86-64

pyignite-0.6.1-cp39-cp39-macosx_10_9_x86_64.whl (135.0 kB view hashes)

Uploaded CPython 3.9 macOS 10.9+ x86-64

pyignite-0.6.1-cp38-cp38-win_amd64.whl (138.0 kB view hashes)

Uploaded CPython 3.8 Windows x86-64

pyignite-0.6.1-cp38-cp38-musllinux_1_1_x86_64.whl (148.4 kB view hashes)

Uploaded CPython 3.8 musllinux: musl 1.1+ x86-64

pyignite-0.6.1-cp38-cp38-musllinux_1_1_i686.whl (148.2 kB view hashes)

Uploaded CPython 3.8 musllinux: musl 1.1+ i686

pyignite-0.6.1-cp38-cp38-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl (144.4 kB view hashes)

Uploaded CPython 3.8 manylinux: glibc 2.17+ x86-64 manylinux: glibc 2.5+ x86-64

pyignite-0.6.1-cp38-cp38-macosx_10_9_x86_64.whl (134.9 kB view hashes)

Uploaded CPython 3.8 macOS 10.9+ x86-64

pyignite-0.6.1-cp37-cp37m-win_amd64.whl (138.1 kB view hashes)

Uploaded CPython 3.7m Windows x86-64

pyignite-0.6.1-cp37-cp37m-musllinux_1_1_x86_64.whl (149.5 kB view hashes)

Uploaded CPython 3.7m musllinux: musl 1.1+ x86-64

pyignite-0.6.1-cp37-cp37m-musllinux_1_1_i686.whl (149.3 kB view hashes)

Uploaded CPython 3.7m musllinux: musl 1.1+ i686

pyignite-0.6.1-cp37-cp37m-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl (144.4 kB view hashes)

Uploaded CPython 3.7m manylinux: glibc 2.17+ x86-64 manylinux: glibc 2.5+ x86-64

pyignite-0.6.1-cp37-cp37m-macosx_10_9_x86_64.whl (134.9 kB view hashes)

Uploaded CPython 3.7m macOS 10.9+ x86-64

Supported by

AWS AWS Cloud computing and Security Sponsor Datadog Datadog Monitoring Fastly Fastly CDN Google Google Download Analytics Microsoft Microsoft PSF Sponsor Pingdom Pingdom Monitoring Sentry Sentry Error logging StatusPage StatusPage Status page