openTSNE
openTSNE copied to clipboard
oldest-supported-numpy depricated
Hi Pavlin,
for packages that depend on openTSNE, it is somewhat cumbersome that openTSNE requires the oldest supported numpy version for the given python version, because this can easily lead to conflicts. I assume this was needed for the C API. But given the deprecation notice on https://github.com/scipy/oldest-supported-numpy, I wonder if it is still necessary.
Hi Sebastian, thanks for bringing this up. I wasn't aware of the deprecation of oldest-supported-numpy
, so I guess I need to update the dependencies.
However, the oldest-supported-numpy really shouldn't interfere with your environment. oldest-supported-numpy
is only used at build-time, i.e., when buliding the wheels on the CI system. When installing, this line is used, so it definitely shouldn't downgrade your numpy version if you run pip install openTSNE
.
Could you please list the exact steps that cause the conflict you're experiencing?
Hi Pavlin,
we have a package (ne-spectrum
), which depends on openTSNE. It has other dependencies which require a minimal numpy
version of at least 1.17. Here is the relevant excerpt from ne-spectrum
's pyproject.toml file
dependencies = [ "numpy", "openTSNE", "contrastive-ne>=0.3.8", "matplotlib", "pillow" ]
When we install ne-spectrum
via pip install .
and have Python 3.10, we get an error like this:
ERROR: Cannot install contrastive-ne==0.3.8, matplotlib==3.8.4, ne-spectrum and ne-spectrum==0.0.1 because these package versions have conflicting dependencies.
The conflict is caused by: ne-spectrum 0.0.1 depends on numpy contrastive-ne 0.3.8 depends on numpy>=1.17 matplotlib 3.8.4 depends on numpy>=1.21 opentsne 0.3.9 depends on numpy==1.16.*
openTSNE requires a pretty exact, old numpy version. Moreover, when we try the same thing in an environment that has Python 3.12, there is no error. Therefore, I thought this to be due to oldest-supported-numpy
(newer Python --> newer oldest-supported-numpy). We simply went with requiring python>=3.12
for our ne-spectrum
.
I've added numpy 2.x support in v1.0.2, released today. Please verify that everything works on your end, and reopen as needed.