commit:     2013634de1c00d4d33dd991456c99bdd7f90366c
Author:     Michał Górny <mgorny <AT> gentoo <DOT> org>
AuthorDate: Mon Jul  8 17:33:30 2024 +0000
Commit:     Michał Górny <mgorny <AT> gentoo <DOT> org>
CommitDate: Mon Jul  8 17:44:30 2024 +0000
URL:        https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=2013634d

dev-python/lmfit: Backport numpy-2 fixes

Pull-Request: https://github.com/lmfit/lmfit-py/pull/959
Signed-off-by: Michał Górny <mgorny <AT> gentoo.org>

 dev-python/lmfit/files/lmfit-1.3.1-np2.patch | 39 ++++++++++++++++++++++++++
 dev-python/lmfit/lmfit-1.3.1-r1.ebuild       | 42 ++++++++++++++++++++++++++++
 2 files changed, 81 insertions(+)

diff --git a/dev-python/lmfit/files/lmfit-1.3.1-np2.patch 
b/dev-python/lmfit/files/lmfit-1.3.1-np2.patch
new file mode 100644
index 000000000000..6b6bbb2308cf
--- /dev/null
+++ b/dev-python/lmfit/files/lmfit-1.3.1-np2.patch
@@ -0,0 +1,39 @@
+diff --git a/lmfit/parameter.py b/lmfit/parameter.py
+index ca9ccc72..a7ec9a65 100644
+--- a/lmfit/parameter.py
++++ b/lmfit/parameter.py
+@@ -181,9 +181,8 @@ def __reduce__(self):
+         params = [self[k] for k in self]
+ 
+         # find the symbols from _asteval.symtable, that need to be remembered.
+-        sym_unique = self._asteval.user_defined_symbols()
+         unique_symbols = {key: deepcopy(self._asteval.symtable[key])
+-                          for key in sym_unique}
++                          for key in self._asteval.user_defined_symbols()}
+ 
+         return self.__class__, (), {'unique_symbols': unique_symbols,
+                                     'params': params}
+@@ -567,9 +566,8 @@ def dumps(self, **kws):
+ 
+         """
+         params = [p.__getstate__() for p in self.values()]
+-        sym_unique = self._asteval.user_defined_symbols()
+         unique_symbols = {key: 
encode4js(deepcopy(self._asteval.symtable[key]))
+-                          for key in sym_unique}
++                          for key in self._asteval.user_defined_symbols()}
+         return json.dumps({'unique_symbols': unique_symbols,
+                            'params': params}, **kws)
+ 
+diff --git a/tests/test_model.py b/tests/test_model.py
+index 396ea0b1..24dfbfcd 100644
+--- a/tests/test_model.py
++++ b/tests/test_model.py
+@@ -900,7 +900,7 @@ def test_independent_var_parsing(self):
+         yatan = stepmod2.eval(pars, x=x)
+ 
+         assert (yatan-yline).std() > 0.1
+-        assert (yatan-yline).ptp() > 1.0
++        assert np.ptp(yatan-yline) > 1.0
+ 
+         voigtmod = Model(voigt)
+         assert 'x' in voigtmod.independent_vars

diff --git a/dev-python/lmfit/lmfit-1.3.1-r1.ebuild 
b/dev-python/lmfit/lmfit-1.3.1-r1.ebuild
new file mode 100644
index 000000000000..8c96759a0747
--- /dev/null
+++ b/dev-python/lmfit/lmfit-1.3.1-r1.ebuild
@@ -0,0 +1,42 @@
+# Copyright 1999-2024 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=8
+
+DISTUTILS_USE_PEP517=setuptools
+PYTHON_COMPAT=( python3_{10..12} )
+
+inherit distutils-r1 pypi
+
+DESCRIPTION="Non-Linear Least-Squares Minimization and Curve-Fitting for 
Python"
+HOMEPAGE="
+       https://lmfit.github.io/lmfit-py/
+       https://github.com/lmfit/lmfit-py/
+       https://pypi.org/project/lmfit/
+"
+
+LICENSE="BSD"
+SLOT="0"
+KEYWORDS="~amd64"
+
+RDEPEND="
+       >=dev-python/asteval-1.0.0[${PYTHON_USEDEP}]
+       >=dev-python/dill-0.3.4[${PYTHON_USEDEP}]
+       >=dev-python/numpy-1.19[${PYTHON_USEDEP}]
+       >=dev-python/scipy-1.6[${PYTHON_USEDEP}]
+       >=dev-python/uncertainties-3.1.4[${PYTHON_USEDEP}]
+"
+BDEPEND="
+       >=dev-python/setuptools-scm-6.2[${PYTHON_USEDEP}]
+"
+
+distutils_enable_tests pytest
+
+PATCHES=(
+       # https://github.com/lmfit/lmfit-py/pull/959
+       "${FILESDIR}/${P}-np2.patch"
+)
+
+python_test() {
+       epytest -o addopts=
+}

Reply via email to