Skip to main content

Compiled Python Bindings for the CUVIS SDK.

Project description

image

cuvis.pyil (python interface layer; required for using the python wrapper)

cuvis.pyil is the python interface binding for the Cuvis SDK written in C (available here).

For other supported program languages, please have a look at the source code page.

Installation

Prerequisites

First, you need to install the Cuvis C SDK from here. The installation registers the installation path in the environment, which the python interface layer is linked to.

:warning: If the C SDK is reinstalled into another directory later on, the linkage breaks and the python wrapper might stop working.

Via pip

If you wish to use cuvis-il within another project, from within your project environment, run

pip install cuvis-il

or add cuvis-il to your project requirements.txt or setup.py. We currently provide pre-compiled binaries for Python 3.9, 3.10, 3.11, 3.12 and 3.13 for Windows, Ubuntu 20.04 and Ubuntu 22.04 (all 64-bit).

Build manually via repository

If you wish to download and use cuvis locally, clone the git repository

git clone git@github.com:cubert-hyperspectral/cuvis.pyil.git
cd cuvis.pyil

and then initialize the submodules.

git submodule update --init --recursive

For building the python stubs for wrapping between C libraries and python, you'll need SWIG (see https://www.swig.org/download.html).

Next make sure that your preferred version of NumPy is manually pre-installed in your go-to environment. See here. Also make sure that the additional build dependencies are installed.

python -m pip install wheel setuptools numpy==YOUR_NUMPY_VERSION -qq 

Then use CMake (see https://cmake.org/download/) to configure and generate your project. CMake will require you to locate the Cuvis C SDK (this should be found automatically, if the Cuvis C SDK is properly installed). Also, you need to point the variable SWIG_EXECUTABLE to the path of the swig.exe.

Build and install the CMake Project via

mkdir build
cd build
cmake  -DCMAKE_BUILD_TYPE=Release -DDOXYGEN_BUILD_DOCUMENTATION=OFF -DPython_ROOT_DIR=venv ..
cmake --build . --target cuvis_pyil --config Release
cp ./_cuvis_pyil.so ../cuvis_il
cp ./cuvis_il.py ../cuvis_il
cd ..
python -m pip install .

This project will then generate the _cuvis_pyil.pyd and cuvis_il.py files needed for running the Cuvis Python SDK wrapper. Those then can be used to install the cuvis_il package.

:warning: You might also use the cuvis_il.py directly, which provides all functionalities as single methods without organization into objects. Support for code without the additional wrapper is limited, though.

Dependency to NumPy

The python interface layer is dependent on NumPy. Specifically, this means that we need the C headers of the NumPy library. Notice that NumPy has backwards compatibility. To compile the python interface layer install your preferred version of NumPy. For example the newest stable release via

pip install numpy

CMake will try to find the NumPy path using the find_package(Python REQUIRED COMPONENTS Interpreter Development NumPy). To support the usage of a virtual environment, set the Python_ROOT_DIR variable to the directory containing your virtual environment.

Our pre-compiled binaries are compiled with 1.22 (Python 3.9 and 3.10), 1.23 (Python 3.11) 1.26 (Python 3.12) and 2.0 (Python 3.13).

Getting involved

cuvis.hub welcomes your enthusiasm and expertise!

With providing our SDK wrappers on GitHub, we aim for a community-driven open source application development by a diverse group of contributors. Cubert GmbH aims for creating an open, inclusive, and positive community. Feel free to branch/fork this repository for later merge requests, open issues or point us to your application specific projects. Contact us, if you want your open source project to be included and shared on this hub; either if you search for direct support, collaborators or any other input or simply want your project being used by this community. We ourselves try to expand the code base with further more specific applications using our wrappers to provide starting points for research projects, embedders or other users.

Getting help

Directly code related issues can be posted here on the GitHub page, other, more general and application related issues should be directed to the aforementioned Cubert GmbH support page.

Project details


Download files

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

Source Distributions

No source distribution files available for this release.See tutorial on generating distribution archives.

Built Distributions

If you're not sure about the file name format, learn more about wheel file names.

cuvis_il-3.4.0b2-py313-none-win_amd64.whl (162.3 kB view details)

Uploaded Python 3.13Windows x86-64

cuvis_il-3.4.0b2-py312-none-win_amd64.whl (162.4 kB view details)

Uploaded Python 3.12Windows x86-64

cuvis_il-3.4.0b2-py311-none-win_amd64.whl (161.4 kB view details)

Uploaded Python 3.11Windows x86-64

cuvis_il-3.4.0b2-py310-none-win_amd64.whl (161.2 kB view details)

Uploaded Python 3.10Windows x86-64

cuvis_il-3.4.0b2-py39-none-win_amd64.whl (161.1 kB view details)

Uploaded Python 3.9Windows x86-64

File details

Details for the file cuvis_il-3.4.0b2-py313-none-win_amd64.whl.

File metadata

  • Download URL: cuvis_il-3.4.0b2-py313-none-win_amd64.whl
  • Upload date:
  • Size: 162.3 kB
  • Tags: Python 3.13, Windows x86-64
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.1.0 CPython/3.13.3

File hashes

Hashes for cuvis_il-3.4.0b2-py313-none-win_amd64.whl
Algorithm Hash digest
SHA256 503b471028af0716cfe2616924d1bf718953ba826682b284da1b63d5f1f78f2b
MD5 056622268e3f4dc3742fe71686e57f6a
BLAKE2b-256 4665d2d1b174a919ff5a06e305af2ddaf07c40cf70967812db004ae88af27dd1

See more details on using hashes here.

File details

Details for the file cuvis_il-3.4.0b2-py312-none-win_amd64.whl.

File metadata

  • Download URL: cuvis_il-3.4.0b2-py312-none-win_amd64.whl
  • Upload date:
  • Size: 162.4 kB
  • Tags: Python 3.12, Windows x86-64
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.1.0 CPython/3.12.10

File hashes

Hashes for cuvis_il-3.4.0b2-py312-none-win_amd64.whl
Algorithm Hash digest
SHA256 16de7be748716c314fb78d9073f0ef2be64834e081a92a1f72fa4ecb9bf4a5c3
MD5 d40ef3d0649db433432e64bb242d6ba0
BLAKE2b-256 d128b088cabc2f1b57e4fd7b1b18ff81b1c1aace53959b113810c3816962d3dd

See more details on using hashes here.

File details

Details for the file cuvis_il-3.4.0b2-py311-none-win_amd64.whl.

File metadata

  • Download URL: cuvis_il-3.4.0b2-py311-none-win_amd64.whl
  • Upload date:
  • Size: 161.4 kB
  • Tags: Python 3.11, Windows x86-64
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.1.0 CPython/3.11.6

File hashes

Hashes for cuvis_il-3.4.0b2-py311-none-win_amd64.whl
Algorithm Hash digest
SHA256 0bf984ec523e543f4ce341b9d74efe99c40b8a641a926495bc18ce9c709b54f9
MD5 60c7461464eb62beda1f055c565915e2
BLAKE2b-256 9938a7420d3c5989491ee00cda3c393f404156e495d7c90697cb3d7a45acfdab

See more details on using hashes here.

File details

Details for the file cuvis_il-3.4.0b2-py310-none-win_amd64.whl.

File metadata

  • Download URL: cuvis_il-3.4.0b2-py310-none-win_amd64.whl
  • Upload date:
  • Size: 161.2 kB
  • Tags: Python 3.10, Windows x86-64
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.1.0 CPython/3.10.11

File hashes

Hashes for cuvis_il-3.4.0b2-py310-none-win_amd64.whl
Algorithm Hash digest
SHA256 6e83733f9de51932906e87f89ef4284de72a74cec986726480321950c9343a4f
MD5 bc0ee9c9178e101a26ee15cc2b065cec
BLAKE2b-256 e38c116cabb69de2985e80d2ac958198b7a603c370bae5ba33210afb91124350

See more details on using hashes here.

File details

Details for the file cuvis_il-3.4.0b2-py39-none-win_amd64.whl.

File metadata

  • Download URL: cuvis_il-3.4.0b2-py39-none-win_amd64.whl
  • Upload date:
  • Size: 161.1 kB
  • Tags: Python 3.9, Windows x86-64
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.1.0 CPython/3.9.13

File hashes

Hashes for cuvis_il-3.4.0b2-py39-none-win_amd64.whl
Algorithm Hash digest
SHA256 124bf0ea409628ba303ae27a2bc627063dddd056c1ac6928ff265fd6bb64cb9f
MD5 32387a003e04cd3e78385b80cff8938c
BLAKE2b-256 51f61976a034f49ff50b51a90d2ef70bdd0d4a7156432ff68b6dbe26e8acd81c

See more details on using hashes here.

Supported by

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