Source: symfit Version: 0.5.6-3 Severity: serious Justification: FTBFS Tags: trixie sid ftbfs User: lu...@debian.org Usertags: ftbfs-20240809 ftbfs-trixie
Hi, During a rebuild of all packages in sid, your package failed to build on amd64. Relevant part (hopefully): > make[1]: Entering directory '/<<PKGBUILDDIR>>' > dh_auto_test > I: pybuild base:311: cd /<<PKGBUILDDIR>>/.pybuild/cpython3_3.12/build; > python3.12 -m pytest tests > ============================= test session starts > ============================== > platform linux -- Python 3.12.5, pytest-8.3.2, pluggy-1.5.0 > rootdir: /<<PKGBUILDDIR>>/.pybuild/cpython3_3.12/build > configfile: pytest.ini > collected 123 items > > tests/test_argument.py .... [ > 3%] > tests/test_auto_fit.py ...... [ > 8%] > tests/test_constrained.py .....s............ [ > 22%] > tests/test_distributions.py .. [ > 24%] > tests/test_finite_difference.py ........ [ > 30%] > tests/test_fit_result.py .......... [ > 39%] > tests/test_general.py .........s.........F....s...... [ > 64%] > tests/test_global_opt.py .... [ > 67%] > tests/test_minimize.py ...... [ > 72%] > tests/test_minimizers.py ....... [ > 78%] > tests/test_model.py ............ [ > 87%] > tests/test_objectives.py ..... [ > 91%] > tests/test_ode.py ........ [ > 98%] > tests/test_support.py .. > [100%] > > =================================== FAILURES > =================================== > __________________ test_likelihood_fitting_bivariate_gaussian > __________________ > > def test_likelihood_fitting_bivariate_gaussian(): > """ > Fit using the likelihood method. > """ > # Make variables and parameters > x = Variable('x') > y = Variable('y') > x0 = Parameter('x0', value=0.6, min=0.5, max=0.7) > sig_x = Parameter('sig_x', value=0.1, max=1.0) > y0 = Parameter('y0', value=0.7, min=0.6, max=0.9) > sig_y = Parameter('sig_y', value=0.05, max=1.0) > rho = Parameter('rho', value=0.001, min=-1, max=1) > > pdf = BivariateGaussian(x=x, mu_x=x0, sig_x=sig_x, y=y, mu_y=y0, > sig_y=sig_y, rho=rho) > > # Draw 100000 samples from a bivariate distribution > mean = [0.59, 0.8] > r = 0.6 > cov = np.array([[0.11 ** 2, 0.11 * 0.23 * r], > [0.11 * 0.23 * r, 0.23 ** 2]]) > np.random.seed(42) > # TODO: Do we really need 100k points? > xdata, ydata = np.random.multivariate_normal(mean, cov, 100000).T > > fit = Fit(pdf, x=xdata, y=ydata, objective=LogLikelihood) > fit_result = fit.execute() > > assert fit_result.value(x0) == pytest.approx(mean[0], 1e-2) > assert fit_result.value(y0) == pytest.approx(mean[1], 1e-2) > assert fit_result.value(sig_x) == pytest.approx(np.sqrt(cov[0, 0]), > 1e-2) > assert fit_result.value(sig_y) == pytest.approx(np.sqrt(cov[1, 1]), > 1e-2) > assert fit_result.value(rho) == pytest.approx(r, 1e-2) > > marginal = integrate(pdf, (y, -oo, oo), conds='none') > fit = Fit(marginal, x=xdata, objective=LogLikelihood) > > with pytest.raises(NameError): > # Should raise a NameError, not a TypeError, see #219 > > fit.execute() > > tests/test_general.py:615: > _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ > _ > symfit/core/fit.py:573: in execute > minimizer_ans = self.minimizer.execute(**minimize_options) > symfit/core/minimizers.py:400: in execute > return super(ScipyGradientMinimize, self).execute(jacobian=jacobian, > **minimize_options) > symfit/core/minimizers.py:419: in execute > return super(ScipyBoundedMinimizer, self).execute(bounds=self.bounds, > symfit/core/minimizers.py:339: in execute > ans = minimize( > /usr/lib/python3/dist-packages/scipy/optimize/_minimize.py:713: in minimize > res = _minimize_lbfgsb(fun, x0, args, jac, bounds, > /usr/lib/python3/dist-packages/scipy/optimize/_lbfgsb_py.py:347: in > _minimize_lbfgsb > sf = _prepare_scalar_function(fun, x0, jac=jac, args=args, epsilon=eps, > /usr/lib/python3/dist-packages/scipy/optimize/_optimize.py:288: in > _prepare_scalar_function > sf = ScalarFunction(fun, x0, args, grad, hess, > /usr/lib/python3/dist-packages/scipy/optimize/_differentiable_functions.py:166: > in __init__ > self._update_fun() > /usr/lib/python3/dist-packages/scipy/optimize/_differentiable_functions.py:262: > in _update_fun > self._update_fun_impl() > /usr/lib/python3/dist-packages/scipy/optimize/_differentiable_functions.py:163: > in update_fun > self.f = fun_wrapped(self.x) > /usr/lib/python3/dist-packages/scipy/optimize/_differentiable_functions.py:145: > in fun_wrapped > fx = fun(np.copy(x), *args) > symfit/core/objectives.py:454: in __call__ > evaluated_func = super(LogLikelihood, self).__call__( > symfit/core/objectives.py:93: in __call__ > result = self.model(**key2str(parameters))._asdict() > symfit/core/models.py:706: in __call__ > return ModelOutput(self.keys(), self.eval_components(*args, **kwargs)) > symfit/core/models.py:654: in eval_components > kwargs[symbol.name] = components[symbol](**dependencies_kwargs) > <lambdifygenerated-1398>:2: in _lambdifygenerated > return (1/2)*exp(-x0**2/(-2*rho**2*sig_x**2 + > 2*sig_x**2))*exp(-y0**2/(-2*rho**2*sig_y**2 + > 2*sig_y**2))*exp(-x**2/(-2*rho**2*sig_x**2 + > 2*sig_x**2))*exp(2*x0*x/(-2*rho**2*sig_x**2 + > 2*sig_x**2))*exp(2*rho*x0*y0/(-2*rho**2*sig_x*sig_y + > 2*sig_x*sig_y))*exp(-2*rho*y0*x/(-2*rho**2*sig_x*sig_y + > 2*sig_x*sig_y))*quad(lambda y: exp(-y**2/(-2*rho**2*sig_y**2 + > 2*sig_y**2))*exp(2*y0*y/(-2*rho**2*sig_y**2 + > 2*sig_y**2))*exp(-2*rho*x0*y/(-2*rho**2*sig_x*sig_y + > 2*sig_x*sig_y))*exp(2*rho*x*y/(-2*rho**2*sig_x*sig_y + 2*sig_x*sig_y)), -inf, > inf)[0]/(sig_x*sig_y*pi*sqrt(-(rho - 1)*(rho + 1))) > /usr/lib/python3/dist-packages/scipy/integrate/_quadpack_py.py:464: in quad > retval = _quad(func, a, b, args, full_output, epsabs, epsrel, limit, > _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ > _ > > func = <function _lambdifygenerated.<locals>.<lambda> at 0x7ff39297bf60> > a = -inf, b = inf, args = (), full_output = 0, epsabs = 1.49e-08 > epsrel = 1.49e-08, limit = 50, points = None > > def _quad(func,a,b,args,full_output,epsabs,epsrel,limit,points): > infbounds = 0 > if (b != np.inf and a != -np.inf): > pass # standard integration > elif (b == np.inf and a != -np.inf): > infbounds = 1 > bound = a > elif (b == np.inf and a == -np.inf): > infbounds = 2 > bound = 0 # ignored > elif (b != np.inf and a == -np.inf): > infbounds = -1 > bound = b > else: > raise RuntimeError("Infinity comparisons don't work for you.") > > if points is None: > if infbounds == 0: > return > _quadpack._qagse(func,a,b,args,full_output,epsabs,epsrel,limit) > else: > > return _quadpack._qagie(func, bound, infbounds, args, > > full_output, > epsabs, epsrel, limit) > E TypeError: only length-1 arrays can be converted to Python > scalars > > /usr/lib/python3/dist-packages/scipy/integrate/_quadpack_py.py:613: TypeError > =============================== warnings summary > =============================== > symfit/core/printing.py:13 > /<<PKGBUILDDIR>>/.pybuild/cpython3_3.12/build/symfit/core/printing.py:13: > DeprecationWarning: pkg_resources is deprecated as an API. See > https://setuptools.pypa.io/en/latest/pkg_resources.html > import pkg_resources > > tests/test_auto_fit.py: 3 warnings > tests/test_constrained.py: 14 warnings > tests/test_finite_difference.py: 1 warning > tests/test_fit_result.py: 5 warnings > tests/test_general.py: 16 warnings > tests/test_minimizers.py: 2 warnings > tests/test_objectives.py: 1 warning > tests/test_ode.py: 1 warning > /<<PKGBUILDDIR>>/.pybuild/cpython3_3.12/build/symfit/core/fit.py:278: > DeprecationWarning: `product` is deprecated as of NumPy 1.25.0, and will be > removed in NumPy 2.0. Please use `prod` instead. > cov_matrix = self._covariance_matrix(best_fit_params, > > tests/test_auto_fit.py: 2 warnings > tests/test_constrained.py: 13 warnings > tests/test_finite_difference.py: 2 warnings > tests/test_fit_result.py: 1 warning > tests/test_general.py: 12 warnings > tests/test_global_opt.py: 3 warnings > tests/test_ode.py: 7 warnings > /<<PKGBUILDDIR>>/.pybuild/cpython3_3.12/build/symfit/core/fit.py:301: > DeprecationWarning: `product` is deprecated as of NumPy 1.25.0, and will be > removed in NumPy 2.0. Please use `prod` instead. > cov_matrix = self._covariance_matrix(best_fit_params, > > tests/test_constrained.py: 196 warnings > > /<<PKGBUILDDIR>>/.pybuild/cpython3_3.12/build/tests/test_constrained.py:766: > DeprecationWarning: 'scipy.integrate.simps' is deprecated in favour of > 'scipy.integrate.simpson' and will be removed in SciPy 1.14.0 > {Y: lambda x, y: simps(y, x) - 1}, # Integrate using simps > > tests/test_general.py::test_likelihood_fitting_exponential > /usr/lib/python3/dist-packages/_pytest/python.py:159: DeprecationWarning: > `product` is deprecated as of NumPy 1.25.0, and will be removed in NumPy 2.0. > Please use `prod` instead. > result = testfunction(**testargs) > > -- Docs: https://docs.pytest.org/en/stable/how-to/capture-warnings.html > =========================== short test summary info > ============================ > FAILED tests/test_general.py::test_likelihood_fitting_bivariate_gaussian - > Ty... > ====== 1 failed, 119 passed, 3 skipped, 281 warnings in 117.77s (0:01:57) > ====== > E: pybuild pybuild:389: test: plugin distutils failed with: exit code=1: cd > /<<PKGBUILDDIR>>/.pybuild/cpython3_3.12/build; python3.12 -m pytest tests > dh_auto_test: error: pybuild --test --test-pytest -i python{version} -p 3.12 > returned exit code 13 The full build log is available from: http://qa-logs.debian.net/2024/08/09/symfit_0.5.6-3_unstable.log All bugs filed during this archive rebuild are listed at: https://bugs.debian.org/cgi-bin/pkgreport.cgi?tag=ftbfs-20240809;users=lu...@debian.org or: https://udd.debian.org/bugs/?release=na&merged=ign&fnewerval=7&flastmodval=7&fusertag=only&fusertagtag=ftbfs-20240809&fusertaguser=lu...@debian.org&allbugs=1&cseverity=1&ctags=1&caffected=1#results A list of current common problems and possible solutions is available at http://wiki.debian.org/qa.debian.org/FTBFS . You're welcome to contribute! If you reassign this bug to another package, please mark it as 'affects'-ing this package. See https://www.debian.org/Bugs/server-control#affects If you fail to reproduce this, please provide a build log and diff it with mine so that we can identify if something relevant changed in the meantime.