Skip to main content

Spline signal processing in N-D with support for GPU computing.

Project description

SplineOps: Spline Operations

splineops is a Python-based N-dimensional signal-processing library with support for GPU computing.

Installation

You need at least Python 3.10 to install splineops (ideally Python 3.12). Python 3.11 is also compatible.

Create and activate your Python virtual environment (on Unix or MacOS)

python -m venv /path/to/splineops-env
source /path/to/splineops-env/bin/activate

On Windows,

python -m venv /path/to/splineops-env
./path/to/splineops-env/Scripts/Activate

To deactivate the environment use

deactivate

Minimal requirement:

pip install numpy scipy

Simply install splineops using pip

pip install splineops

To run the examples, matplotlib and IPython (for Python UI widgets) will also be required

pip install matplotlib IPython

Formatting, Type Checking, and Testing

Formatting and type checking is performed as

tox -e format
tox -e type

The testing requires a valid environment with a supported Python version and tox installed. The tests are run with the following command (automatic pick of the Python version)

tox

The tests can also be launched for a specific Python version (must match the one installed in the active environment)

tox -e py310
tox -e py311
tox -e py312

IMPORTANT: Since CI is not implemented, make sure to run, pass, and/or fix tox -e format, tox -e type, and tox.

Packaging

Using tox (preferred)

tox -e build

Using hatch

hatch build -t wheel

Development Environment

Easiest way to install dev dependencies

pip install numpy scipy matplotlib IPython black mypy tox hatch pytest

Install splineops development environment in editable mode

pip install -e .[dev]

GPU Compatibility

You can benefit of cupy to deploy splineops. If a specific CUDA version is required, do

pip install cupy cuda-version=12.3

Install splineops cupy development environment in editable mode

pip install -e .[dev_cupy]

Potential other CuPy libraries (CuPy from Conda-Forge)

pip install cupy cutensor cudnn nccl

Building of the Documentation

To build the Sphinx documentation, install splineops doc dependencies

pip install numpy scipy matplotlib IPython sphinx sphinx-gallery sphinx-prompt sphinx-copybutton sphinx-remove-toctrees pydata-sphinx-theme sphinx-design myst-parser jupyterlite-sphinx jupyterlite-pyodide-kernel

Install splineops doc environment in editable mode

pip install -e .[docs]

Navigate to the docs directory and run the make html command

cd docs
make html

Then, go to docs/_build/html and open index.html to navigate the documentation locally.

Troubleshooting

If you want to make a "clean" build, go to docs and manually delete the folders _build, auto_examples, gen_modules, notebooks_jupyterlite, and the file sg_execution_times.rst. Why isn't this done automatically? Because Sphinx optimizes speed and removes redundant tasks, by not re-creating the examples notebooks if they have already been created. If you, for example, modify the name of the examples files, you will have to delete at least the folder auto_examples. Otherwise, the old examples files will not have disappeared automatically and Sphinx will raise an internal warning referring to a toctree.

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

splineops-0.4.6.tar.gz (52.4 kB view details)

Uploaded Source

Built Distribution

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

splineops-0.4.6-py3-none-any.whl (74.3 kB view details)

Uploaded Python 3

File details

Details for the file splineops-0.4.6.tar.gz.

File metadata

  • Download URL: splineops-0.4.6.tar.gz
  • Upload date:
  • Size: 52.4 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.12.9

File hashes

Hashes for splineops-0.4.6.tar.gz
Algorithm Hash digest
SHA256 35f3acd34ebf3a6bacd191c5f7af2e85710e174e81b99b7f2da46a592df15c44
MD5 6ad6ef0c77319e3c7023f78403680653
BLAKE2b-256 392f4263770aa47b83a81156d32e53b0344e2bf5c33841ff7c7c910950da9f49

See more details on using hashes here.

Provenance

The following attestation bundles were made for splineops-0.4.6.tar.gz:

Publisher: release.yml on splineops/splineops

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file splineops-0.4.6-py3-none-any.whl.

File metadata

  • Download URL: splineops-0.4.6-py3-none-any.whl
  • Upload date:
  • Size: 74.3 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.12.9

File hashes

Hashes for splineops-0.4.6-py3-none-any.whl
Algorithm Hash digest
SHA256 c348f18516883707f79b1794d3cf08cd3f05fbeb82adc79de2c1c90baed379d7
MD5 5114ee79b8ddd1038e87f53aef3a7c41
BLAKE2b-256 7bfa409be94b5cb1ffde06c564efdcbc1c3034f93d45f24fdb81a864014afc35

See more details on using hashes here.

Provenance

The following attestation bundles were made for splineops-0.4.6-py3-none-any.whl:

Publisher: release.yml on splineops/splineops

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

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