Metadata-Version: 2.1
Name: np-gui
Version: 0.0.2
Summary: This package implements Graphical User Interfaces from a NumPy user perspective.
License: MIT
Author: Gaël Cousin
Author-email: gcousin333@gmail.com
Requires-Python: >=3.10,<4.0
Classifier: License :: OSI Approved :: MIT License
Classifier: Programming Language :: Python :: 3
Classifier: Programming Language :: Python :: 3.10
Classifier: Programming Language :: Python :: 3.11
Requires-Dist: matplotlib (>=3.5.1,<4.0.0)
Requires-Dist: numpy (>=1.24.2,<2.0.0)
Requires-Dist: scikit-image (>=0.20.0,<0.21.0)
Requires-Dist: typeguard (>=3.0.2,<4.0.0)
Description-Content-Type: text/markdown

# npGUI

This package implements Graphical User Interfaces from a NumPy user
perspective: every image corresponds to an ndarray.

The main goal of this package is to provide a 
simple way (given certain background and tastes) to build *prototypes* of graphical user interfaces.
In particular, we do not claim for computational performance.

---
## Main features
The core class is
ClickableImage whose instances' attributes are: 


* a dictionary of parameter values,
* a callable that returns an image of fixed shape,
* regions in that shape defined as boolean images of the same shape 
* and their corresponding callbacks.

When calling the use method of an instance,
the dictionary is passed to the callable, that uses (some of) its values
as arguments and outputs an image which is displayed in a window.

Upon clicking on the distinguished regions, their callbacks are called
and alter the parameter values. The image is then refreshed from this 
input.

When closing the window, the use method returns the dictionary with
its altered values; whence the interaction with the user.

These objects can be stacked vertically and horizontally to compose more
complex ones. A certain number of subclasses are proposed as basic 
building blocks. The stacked blocks may have parameter keywords in common,
which allows for interactions between them.

## Installation
This package can be installed with pip as follows.

```
$ pip install np_gui
```

To avoid [depency hell](https://en.wikipedia.org/wiki/Dependency_hell), you might consider installing this package in a virtual environment.

## Documentation

A detailed documentation of this package is available in pdf and html
format within the ./doc/ folder of [its GitHub repository](https://github.com/completementgaga/npGUI).




