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.0b1-py313-none-win_amd64.whl (162.3 kB view details)

Uploaded Python 3.13Windows x86-64

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

Uploaded Python 3.12Windows x86-64

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

Uploaded Python 3.11Windows x86-64

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

Uploaded Python 3.10Windows x86-64

cuvis_il-3.4.0b1-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.0b1-py313-none-win_amd64.whl.

File metadata

  • Download URL: cuvis_il-3.4.0b1-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.0b1-py313-none-win_amd64.whl
Algorithm Hash digest
SHA256 c81ebf9180cf0d8a102b5b63e3f760291465d9eb3968c6e609bc307bc5a6c58d
MD5 3362255f088be2db61705e47ebe5bd7d
BLAKE2b-256 1106c730ce90df006eee3edd494c1f25bc73bf34c8fa6263d6f1c687b6364ad2

See more details on using hashes here.

File details

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

File metadata

  • Download URL: cuvis_il-3.4.0b1-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.0b1-py312-none-win_amd64.whl
Algorithm Hash digest
SHA256 69738d7a82dacfbeb5ea1501320412255dc3b4b7f93bd5f34ad91f22e0d9520b
MD5 7693ad265c03f9f8e92bad85b62c0286
BLAKE2b-256 7d665b01de8e4a1d32daeaa2fa1ec08b0e2649598080d2bc2de098678860fd48

See more details on using hashes here.

File details

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

File metadata

  • Download URL: cuvis_il-3.4.0b1-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.0b1-py311-none-win_amd64.whl
Algorithm Hash digest
SHA256 cf1a423022a8871aa66f097e796a97a3c1866fa3fd48a9a9ecc443a7f0ccc9ad
MD5 5453c2c9c75e7101dd44019304ab29c5
BLAKE2b-256 e6574d23b855ce467a5c3b1aeec2336747617022c59bf678c758273618ddd156

See more details on using hashes here.

File details

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

File metadata

  • Download URL: cuvis_il-3.4.0b1-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.0b1-py310-none-win_amd64.whl
Algorithm Hash digest
SHA256 04146b19547ffe0873dad05eff4335cb72ab8038a2e886de62dcb21d366cf7a0
MD5 f497a61809f4445d73eeb6ea465320c8
BLAKE2b-256 cddd9f5871562e36fe35e14cefd51db7171d142b5da80ec58ead305a3b149bfe

See more details on using hashes here.

File details

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

File metadata

  • Download URL: cuvis_il-3.4.0b1-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.0b1-py39-none-win_amd64.whl
Algorithm Hash digest
SHA256 0f7422b9d14b9f576d1e07a1ac8d92c50817b8b3339da3328105c5e063284587
MD5 d689dff8782305be11fe93724f8b50bc
BLAKE2b-256 ee49efdf8ac67c2f5d7f18e4f6722b636446da38896579d51e98190f86b67e66

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