Giter Site home page Giter Site logo

apache / ignite-python-thin-client Goto Github PK

View Code? Open in Web Editor NEW
24.0 20.0 18.0 611 KB

Apache Ignite Python Thin Client

Home Page: https://ignite.apache.org/

License: Apache License 2.0

Python 95.43% Shell 2.69% C 0.73% PowerShell 0.16% Jinja 0.99%
ignite python

ignite-python-thin-client's Introduction

ignite-python-client

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

Build Status License Pypi Downloads

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 [email protected]: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, 3.10 and 3.11) 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.

ignite-python-thin-client's People

Contributors

alamar avatar andrey-kuznetsov avatar bojidar-bg avatar dmelnichuk avatar isapego avatar ivandasch avatar kuzp avatar nizhikov avatar ptupitsyn avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.