Metadata-Version: 2.4
Name: splinekit
Version: 0.0.4
Summary: A set of functions and classes to handle periodic 1D polynomial splines
Project-URL: Homepage, https://github.com/Philippe-Thevenaz/splinekit
Author-email: Philippe Thévenaz <philippe.thevenaz@icloud.com>
License-Expression: MIT
License-File: LICENSE
Classifier: Intended Audience :: Developers
Classifier: Intended Audience :: Education
Classifier: Intended Audience :: Science/Research
Classifier: Operating System :: OS Independent
Classifier: Programming Language :: Python :: 3
Classifier: Topic :: Scientific/Engineering
Classifier: Topic :: Scientific/Engineering :: Mathematics
Classifier: Topic :: Software Development :: Libraries :: Python Modules
Requires-Python: >=3.11
Requires-Dist: matplotlib>=3.8
Requires-Dist: numpy>=1.26
Requires-Dist: scipy>=1.15
Requires-Dist: sympy>=1.12
Provides-Extra: dev
Requires-Dist: build; extra == 'dev'
Requires-Dist: ipykernel>=7.1.0; extra == 'dev'
Requires-Dist: ipython>=8.26; extra == 'dev'
Requires-Dist: ipywidgets>=8; extra == 'dev'
Requires-Dist: mypy>=1.8; extra == 'dev'
Requires-Dist: pytest>=6.0; extra == 'dev'
Requires-Dist: tox>=4.13; extra == 'dev'
Provides-Extra: docs
Requires-Dist: ipython>=8.26; extra == 'docs'
Requires-Dist: myst-parser>=3.0; extra == 'docs'
Requires-Dist: nbsphinx>=0.9; extra == 'docs'
Requires-Dist: sphinx-copybutton>=0.5; extra == 'docs'
Requires-Dist: sphinx-design>=0.6; extra == 'docs'
Requires-Dist: sphinx-gallery>=0.17; extra == 'docs'
Requires-Dist: sphinx-prompt>=1.8; extra == 'docs'
Requires-Dist: sphinx-remove-toctrees>=1.0; extra == 'docs'
Requires-Dist: sphinx-rtd-theme>=3.0.2; extra == 'docs'
Requires-Dist: sphinx>=7.3; extra == 'docs'
Provides-Extra: tests
Requires-Dist: pytest>=6.0; extra == 'tests'
Requires-Dist: tox>=4.13; extra == 'tests'
Provides-Extra: visualization
Requires-Dist: ipython>=8.26; extra == 'visualization'
Description-Content-Type: text/markdown

<!-- splinekit/README.md -->

# splinekit: Spline Operations

`splinekit` is a Python-based open-source software library aimed at the manipulation of one-dimensional periodic splines.

## Installation

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

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

```shell
python -m venv splinekit-env
source splinekit-env/bin/activate
```

On Windows,

```shell
python -m venv splinekit-env
./splinekit-env/Scripts/Activate
```

To deactivate the environment use

```shell
deactivate
```

Minimal requirement:

```shell
pip install numpy scipy sympy matplotlib
```

Simply install `splinekit` using `pip`

```shell
pip install splinekit
```

## Formatting, Type Checking, and Testing

Formatting and type checking is performed as

```shell
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)

```shell
tox
```

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

```shell
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)

```shell
tox -e build
```

Using `hatch`

```shell
hatch build -t wheel
```

## Development Environment

Install `splinekit` development environment in editable mode

```shell
pip install -e .[dev]
```

## Building of the Documentation

To build the Sphinx documentation, install `splinekit` doc dependencies

```shell
pip install -e .[docs]
```

Run the command from the splinekit root folder

```shell
sphinx-build docs/ docs/_build/
```

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