State of art dependencies for python 3.12 - simfaucher/MAGE_MTE GitHub Wiki

3.12 Update

Python 3.12 was release on october 2023 and will receive security updates until october 2028.

We were able to update almost all the dependencies to the latest version. The only one that we couldn't update is pykson. We tried to update it to the latest version but it was not compatible with the rest of the project. And the package is not maintained anymore. So we decided to keep the old version of pykson that is still working with python 3.12.

We also found out that some packages were is beta version and got released under a new name. So we updated them to the latest version.

Packages updated version

Package Old version New version
matplotlib 3.1.3 3.8.2
opencv-contrib-python 3.4.2.17 4.9.0.80
pykson 0.9.4 0.9.4
sklearn(beta) -> scikit-learn(release) 0.0 1.3.2
imutils 0.5.3 0.5.4
pyzmq 18.1.0 25.1.2
numpy 1.18.2 1.26.3
pytz 2019.3 2023.3
scikit-image 0.16.2 0.22.0
tqdm 4.46.0 4.66.1
h5py 2.10.0 3.10.0
imagezmq 1.0.1 1.1.1

By updating all these packages, we were able to update the python version from 3.7 to 3.12. We were able to run the communication test successfully with the new version of python.

Warnings about packages

Discontinued packages

While looking for the new version of the packages, we found out that some of them were not maintained anymore (or didn't receive any update since 2022) but were working with the latest version of python. So we decided to keep them. Note that these packages are not used a lot (based on their respective Github stats) so they are most likely never going to be updated or forked.

Here is the list of the packages that are not maintained anymore:

Package latest version last update
pykson 0.9.9.8.17 26-12-2022
imutils 0.5.4 15-01-2021
imagezmq 1.1.1 23-05-2020

Packages included in the repository

We found out that one package was included in the repository because it was not available on PyPI. We decided to remove it from the repository and install it using pip. The package was imagezmq.