Features
- support Python3.6+ (15 <- 14)
- add customisable PSF resolution modelling kernel (31, 25)
+ support all of: scanner measured, manual Gaussian, and custom separable PSF kernels
- prevent floating point division errors (25, 23)
- improve `classify_input`
+ add optional directory recursion (24)
+ basic `pathlib` support
- fix & upgrade `logging` (9, 5)
+ provide & use new `LOG_FORMAT`
- fix & update dependencies
- fix & update example notebook (13, 9)
- fix nonexistent paths (22)
- add progressbar (4)
Installation/build framework
- support Python3.6+ (15 <- 14)
+ drop Python 2 compatibility
+ drop `py<=3.5` which are unsupported by `ninst<-miutil[cuda]<-pynvml` and no longer receive security fixes anyway
- add tests (29)
+ including helpers for downloading data
+ add cloud testing
+ add coverage reporting
- fix warnings (28, 27)
+ update CMake policies & fix Python deprecation warnings
- improve CUDA code (28, 27)
+ better error handling
+ de-deuplication
+ better linking
+ fix compiler warnings
+ remove unneeded variables
+ put `> stream[%d]` messages on one line
+ only create poisson distribution if needed (19)
- fix `conda` install
- allow non-interactive installation (17, 9)
+ allow setting `PATHTOOLS` & `HMUDIR` from env vars
- new build framework (30, 27)
+ cmake/cuda build overhaul
+ move metadata `setup.py` -> `setup.cfg`
+ allows `pip install nipet` on a completely clean system (no `numpy`, no `miutil[cuda]`, no `-e`, no `--no-binary :all:`)
+ replace `dinf` module => `miutil.cuinfo` (26 <- 18)
+ rely on `numpy`, `miutil[cuda]`, `ninst`, `scikit-build`, `cmake>=3.18`, `ninja`
* all auto-installed at setup-time!
* get rid of `cudasetup.py`
* get rid of `install_tools.py`
* get rid of `resources.py`
+ use new `CMAKE_CUDA_ARCHITECTURES` policy
+ use new project `LANGUAGES` specification
+ support `python setup.py clean`
- basic code tidy (particularly import ordering)
- update `.gitignore`, `README.rst` badges (9, 4)