From 6fad603649ca9b4428ede77c4684a2df61d768e040f692bc928889787f41a7a6 Mon Sep 17 00:00:00 2001 From: Dirk Mueller Date: Thu, 14 Nov 2024 09:02:41 +0000 Subject: [PATCH] - update to 1.0.2: * build wheels for Python 3.12 (#255) * update minimum Python version to 3.9 * add numpy 2.x support OBS-URL: https://build.opensuse.org/package/show/devel:languages:python:numeric/python-openTSNE?expand=0&rev=15 --- .gitattributes | 23 +++++ .gitignore | 1 + openTSNE-1.0.1-gh.tar.gz | 3 + openTSNE-1.0.2-gh.tar.gz | 3 + ...n-openTSNE-disable-CPU-autodetection.patch | 26 ++++++ python-openTSNE.changes | 87 +++++++++++++++++++ python-openTSNE.spec | 78 +++++++++++++++++ 7 files changed, 221 insertions(+) create mode 100644 .gitattributes create mode 100644 .gitignore create mode 100644 openTSNE-1.0.1-gh.tar.gz create mode 100644 openTSNE-1.0.2-gh.tar.gz create mode 100644 python-openTSNE-disable-CPU-autodetection.patch create mode 100644 python-openTSNE.changes create mode 100644 python-openTSNE.spec diff --git a/.gitattributes b/.gitattributes new file mode 100644 index 0000000..9b03811 --- /dev/null +++ b/.gitattributes @@ -0,0 +1,23 @@ +## Default LFS +*.7z filter=lfs diff=lfs merge=lfs -text +*.bsp filter=lfs diff=lfs merge=lfs -text +*.bz2 filter=lfs diff=lfs merge=lfs -text +*.gem filter=lfs diff=lfs merge=lfs -text +*.gz filter=lfs diff=lfs merge=lfs -text +*.jar filter=lfs diff=lfs merge=lfs -text +*.lz filter=lfs diff=lfs merge=lfs -text +*.lzma filter=lfs diff=lfs merge=lfs -text +*.obscpio filter=lfs diff=lfs merge=lfs -text +*.oxt filter=lfs diff=lfs merge=lfs -text +*.pdf filter=lfs diff=lfs merge=lfs -text +*.png filter=lfs diff=lfs merge=lfs -text +*.rpm filter=lfs diff=lfs merge=lfs -text +*.tbz filter=lfs diff=lfs merge=lfs -text +*.tbz2 filter=lfs diff=lfs merge=lfs -text +*.tgz filter=lfs diff=lfs merge=lfs -text +*.ttf filter=lfs diff=lfs merge=lfs -text +*.txz filter=lfs diff=lfs merge=lfs -text +*.whl filter=lfs diff=lfs merge=lfs -text +*.xz filter=lfs diff=lfs merge=lfs -text +*.zip filter=lfs diff=lfs merge=lfs -text +*.zst filter=lfs diff=lfs merge=lfs -text diff --git a/.gitignore b/.gitignore new file mode 100644 index 0000000..57affb6 --- /dev/null +++ b/.gitignore @@ -0,0 +1 @@ +.osc diff --git a/openTSNE-1.0.1-gh.tar.gz b/openTSNE-1.0.1-gh.tar.gz new file mode 100644 index 0000000..ad6d25f --- /dev/null +++ b/openTSNE-1.0.1-gh.tar.gz @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:525b3e33716b67c577a3c4567627ab6388ea61d5dd0b230c87e434f3c7268e1d +size 22107255 diff --git a/openTSNE-1.0.2-gh.tar.gz b/openTSNE-1.0.2-gh.tar.gz new file mode 100644 index 0000000..066ce92 --- /dev/null +++ b/openTSNE-1.0.2-gh.tar.gz @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:41d34d969b26649a1f3a3778a1b874b690bfbe71536c0d436fe35318bf3aedae +size 22107860 diff --git a/python-openTSNE-disable-CPU-autodetection.patch b/python-openTSNE-disable-CPU-autodetection.patch new file mode 100644 index 0000000..2681783 --- /dev/null +++ b/python-openTSNE-disable-CPU-autodetection.patch @@ -0,0 +1,26 @@ +Author: Bernhard M. Wiedemann +Date: 2021-04-01 + +Do not build code using instructions because they are available on a random build worker. + +Instead we pin the CPU type to a reasonable compromise +to allow people to run it on >50% of systems, +but also to use CPU instructions available since 10+ years +to speed up processing. + +Index: openTSNE-1.0.1/setup.py +=================================================================== +--- openTSNE-1.0.1.orig/setup.py ++++ openTSNE-1.0.1/setup.py +@@ -155,9 +155,9 @@ class CythonBuildExt(build_ext): + # package is being built locally, this is desired + if not ("AZURE_BUILD" in os.environ or "CONDA_BUILD" in os.environ): + if platform.machine() == "ppc64le": +- extra_compile_args += ["-mcpu=native"] ++ extra_compile_args += ["-mcpu=power8"] + if platform.machine() == "x86_64": +- extra_compile_args += ["-march=native"] ++ extra_compile_args += ["-march=corei7"] + + # We will disable openmp flags if the compiler doesn't support it. This + # is only really an issue with OSX clang diff --git a/python-openTSNE.changes b/python-openTSNE.changes new file mode 100644 index 0000000..e64bab9 --- /dev/null +++ b/python-openTSNE.changes @@ -0,0 +1,87 @@ +------------------------------------------------------------------- +Thu Nov 14 09:02:21 UTC 2024 - Dirk Müller + +- update to 1.0.2: + * build wheels for Python 3.12 (#255) + * update minimum Python version to 3.9 + * add numpy 2.x support + +------------------------------------------------------------------- +Tue Sep 3 09:44:28 UTC 2024 - Andreas Schwab + +- TestTSNECorrectnessUsingPrecomputedDistanceMatrix fails almost everywhere + +------------------------------------------------------------------- +Fri Mar 22 20:48:51 UTC 2024 - Dirk Müller + +- update to 1.0.1: + * setup.py maintenance + * drop Python 3.6 support + * correctly implement dof parameter in exact BH implementation +- drop get-numpy-include.patch (upstream) + +------------------------------------------------------------------- +Thu Sep 14 13:26:03 UTC 2023 - Markéta Machová + +- Update to 1.0.0 + * Given the longtime stability of openTSNE, it is only fitting + that we release a v1.0.0. + * Various documentation fixes + * Include Python 3.11 in the test and build matrix + * Uniform affinity kernel now supports mean and max mode +- add get-numpy-include.patch + +------------------------------------------------------------------- +Sun Mar 20 19:38:50 UTC 2022 - Ben Greiner + +- Update to 0.6.2 + * By default, we now use the MultiscaleMixture affinity model, + enabling us to pass in a list of perplexities instead of a + single perplexity value. This is fully backwards compatible. + * Previously, perplexity values would be changed according to the + dataset. E.g. we pass in perplexity=100 with N=150. Then + TSNE.perplexity would be equal to 50. Instead, keep this value + as is and add an effective_perplexity_ attribute (following the + convention from scikit-learn, which puts in the corrected + perplexity values. + * Fix bug where interpolation grid was being prepared even when + using BH optimization during transform. + * Enable calling .transform with precomputed distances. In this + case, the data matrix will be assumed to be a distance matrix. + * Fix potential problem with clang-13, which actually does + optimization with infinities using the -ffast-math flag +- Enable python310 build +- Skip a test in 32bit failing due to rounding errors + +------------------------------------------------------------------- +Fri Feb 4 16:10:13 UTC 2022 - Ben Greiner + +- Update to 0.6.1 + * Remove affinites from TSNE construction, allow custom + affinities and initialization in .fit method. This improves the + API when dealing with non-tabular data. This is not backwards + compatible. + * Add metric="precomputed". This includes the addition of + openTSNE.nearest_neighbors.PrecomputedDistanceMatrix and + openTSNE.nearest_neighbors.PrecomputedNeighbors. + * Add knn_index parameter to openTSNE.affinity classes. + * Add (less-than-ideal) workaround for pickling Annoy objects. + * Extend the range of recommended FFTW boxes up to 1000. + * Remove deprecated openTSNE.nearest_neighbors.BallTree. + * Remove deprecated openTSNE.callbacks.ErrorLogger. + * Remove deprecated TSNE.neighbors_method property. + * Add and set as default negative_gradient_method="auto". +- Skip building on python310: gh#pavlin-policar/openTSNE#205 + +------------------------------------------------------------------- +Thu Apr 1 07:36:31 UTC 2021 - Bernhard Wiedemann + +- Add python-openTSNE-disable-CPU-autodetection.patch (boo#1100677) + +------------------------------------------------------------------- +Fri Jan 29 19:18:18 UTC 2021 - Ben Greiner + +- initial specfile for version 0.5.1 +- replaces python-fastTSNE +- The pytest_arch macro needs the "Cepl-Strangelove-Parameter" + (= specify --import-mode) diff --git a/python-openTSNE.spec b/python-openTSNE.spec new file mode 100644 index 0000000..309a7e4 --- /dev/null +++ b/python-openTSNE.spec @@ -0,0 +1,78 @@ +# +# spec file for package python-openTSNE +# +# Copyright (c) 2024 SUSE LLC +# +# All modifications and additions to the file contributed by third parties +# remain the property of their copyright owners, unless otherwise agreed +# upon. The license for this file, and modifications and additions to the +# file, is the same license as for the pristine package itself (unless the +# license for the pristine package is not an Open Source License, in which +# case the license is the MIT License). An "Open Source License" is a +# license that conforms to the Open Source Definition (Version 1.9) +# published by the Open Source Initiative. + +# Please submit bugfixes or comments via https://bugs.opensuse.org/ +# + + +%{?sle15_python_module_pythons} +Name: python-openTSNE +Version: 1.0.2 +Release: 0 +Summary: Extensible, parallel implementations of t-SNE +License: BSD-3-Clause +URL: https://github.com/pavlin-policar/openTSNE +# tests are not packaged in the PyPI sdist, use GitHub instead +Source: %{url}/archive/v%{version}.tar.gz#/openTSNE-%{version}-gh.tar.gz +Patch0: python-openTSNE-disable-CPU-autodetection.patch +BuildRequires: %{python_module Cython} +BuildRequires: %{python_module devel >= 3.7} +BuildRequires: %{python_module numpy-devel >= 1.16.6} +BuildRequires: %{python_module scikit-learn >= 0.20} +BuildRequires: %{python_module scipy} +BuildRequires: %{python_module setuptools} +BuildRequires: c++_compiler +BuildRequires: fdupes +BuildRequires: fftw3-devel +BuildRequires: python-rpm-macros +# SECTION test requirements +BuildRequires: %{python_module pytest} +# /SECTION +Requires: python-numpy >= 1.16.6 +Requires: python-scikit-learn >= 0.20 +Requires: python-scipy +Suggests: python-hnswlib +Suggests: python-pynndescent +Provides: python-fastTSNE = %{version} +Obsoletes: python-fastTSNE < %{version} +%python_subpackages + +%description +Extensible, parallel implementations of t-SNE + +%prep +%autosetup -p1 -n openTSNE-%{version} + +%build +export CFLAGS="%{optflags}" +%python_build + +%install +%python_install +%python_expand %fdupes %{buildroot}%{$python_sitearch} + +%check +%ifarch %ix86 %arm32 aarch64 riscv64 s390x +# precision errors +%define donttest -k "not TestTSNECorrectnessUsingPrecomputedDistanceMatrix" +%endif +%pytest_arch --import-mode append %{?donttest} + +%files %{python_files} +%doc README.rst +%license LICENSE +%{python_sitearch}/openTSNE +%{python_sitearch}/openTSNE-%{version}*-info + +%changelog