Metadata-Version: 2.1
Name: dimlpfidex
Version: 0.0.0
Summary: Discretized Interpretable Multi Layer Perceptron (DIMLP) and related algorithms
Home-page: https://hes-xplain.github.io/
License: BSD-3-Clause
Keywords: machine learning,xai
Author: Jean-Marc Boutay
Author-email: jean-marc.boutay@hesge.ch
Requires-Python: >=3.9,<3.11
Classifier: Intended Audience :: Developers
Classifier: Intended Audience :: Education
Classifier: Intended Audience :: Science/Research
Classifier: License :: OSI Approved :: BSD License
Classifier: Operating System :: MacOS
Classifier: Operating System :: Microsoft :: Windows
Classifier: Operating System :: POSIX
Classifier: Operating System :: Unix
Classifier: Programming Language :: C++
Classifier: Programming Language :: Python :: 3
Classifier: Programming Language :: Python :: 3.9
Classifier: Programming Language :: Python :: 3.10
Classifier: Topic :: Scientific/Engineering
Classifier: Topic :: Scientific/Engineering :: Artificial Intelligence
Classifier: Topic :: Scientific/Engineering :: Mathematics
Classifier: Topic :: Software Development
Classifier: Topic :: Software Development :: Libraries
Classifier: Topic :: Software Development :: Libraries :: Python Modules
Requires-Dist: numpy (>=1.22,<=1.24.3)
Requires-Dist: pybind11 (>=2.10.4,<3.0.0)
Requires-Dist: pybind11-global (>=2.10.4,<3.0.0)
Requires-Dist: scikit-learn (>=1.2.2,<2.0.0)
Requires-Dist: tensorflow (>=2.13.0,<3.0.0)
Requires-Dist: tensorflow-io-gcs-filesystem (==0.31.0)
Project-URL: Repository, https://github.com/HES-XPLAIN/dimlpfidex
Description-Content-Type: text/markdown

# dimlpfidex
Discretized Interpretable Multi Layer Perceptron (DIMLP) and related algorithms

## Contribution

### Install C++ toolchain

#### Linux, macOS, Windows/WSL

Install with your package manager:

* a C++ compiler (gcc/g++)
* cmake

#### Windows

* Install [MinGW-W64](https://www.mingw-w64.org/) with the [online installer](https://github.com/Vuniverse0/mingwInstaller/releases) (64 bit, win32, ucrt)
* Install [CMake](https://cmake.org/):

```shell
winget install Kitware.CMake
```

Ensure `cmake.exe` is accessible in the `$PATH` environment variable.

```shell
cmake.exe --version
```

### Install Python and Poetry

#### Linux, macOS, Windows/WSL

Use your package manager to install:

* python
* poetry

#### Windows

* Install [Python](https://www.python.org/)

```shell
winget install Python.Python.3.10
```

* Install [poetry](https://python-poetry.org/docs/#installation) and add it to your PATH.

Ensure `python.exe` and `poetry.exe` are accessible in the `$PATH` environment variable.

To check the installation, check these commands return an output:

```shell
python.exe --version
poetry.exe --version
```

### Compile

Activate the virtual environment:

```shell
poetry shell
```

Install python dependencies and compile:

```shell
poetry install
poetry build
```

If CMake complains about not finding pybind11, ensure to activate the shell first.

**Note**: If you still have an issue on Windows, try the following commands to
build manually:

```shell
mkdir build && cd build
$path = (poetry env info | Select-String -Pattern 'Path:\s+(.*)').Matches.Groups[1].Value
cmake.exe -G "MinGW Makefiles" -DCMAKE_PREFIX_PATH="$path" ..
cmake.exe --build .
```

### Install Pre-commit hooks

Git hooks are used to ensure quality checks are run by all developers every time
before a commit.

```shell
poetry shell
pre-commit install
```

Pre-commit hooks can be run manually with:

```shell
pre-commit run --all-files
```

## Release

To publish the package on [PyPI](https://pypi.org/project/dimlpfidex/), refer to [RELEASE](RELEASE.md).

