Accepting request 1133227 from devel:languages:python:numeric

- Update to 4.16.0:
  * enhancements:
    + the grouping commands like group_counts and group_snr now default to
      only grouping within the noticed range of channels, which is a change
      in behaviour
    + new plotting backend: Users can now choose between matplotlib and
      bokeh (experimental) support use of arbitrary python functions when
      linking model parameters
    + updates to fake_pha, save_all, allowing to write out RMF/ARF files
    + get_plot_prefs and get_contour_prefs call to simplify access to the
      plot and contour preferences
    + implementation of RMFPlot and DataIMGPlot classes and associated UI
      functions (plot_rmf, get_rmf_plot)
    + update support for XSPEC to include version 12.13.1, allow XSPEC
      table models which include the ESCALE parameter, and provide
      experimental support for writing out XSPEC table models.
  * changes to use the NumPy random generator API
  * bug fixes:
    + PHA source plot Y axis scaling (#1825)
    + fix model display for grouped data (#1779, #1784)
    + Change in the ordering of operations when grouping background PHA
      datasets. (#1881)
- Drop patch numpy125.patch and numpy125-CI.patch: Included upstream.
- Skip a misbehaving test.

OBS-URL: https://build.opensuse.org/request/show/1133227
OBS-URL: https://build.opensuse.org/package/show/openSUSE:Factory/python-sherpa?expand=0&rev=18
This commit is contained in:
Ana Guerrero 2023-12-15 20:48:44 +00:00 committed by Git OBS Bridge
commit 7fcc21ca5f
8 changed files with 37 additions and 197 deletions

View File

@ -1,96 +0,0 @@
From 2aea86a2a596323e9c8e41275acbffa1e9a609a0 Mon Sep 17 00:00:00 2001
From: Doug Burke <dburke@cfa.harvard.edu>
Date: Mon, 17 Jul 2023 11:33:29 -0400
Subject: [PATCH 1/2] Silence test warnings if pytest-doctestplus is not
installed
I originally tried adding the warnings to sherpa/conftest.py but
this is happening in pytest itself, so I've taken advantage of
the general filter-warnings capability to hide thse messages.
Before this change, running pytest without pytest-doctestplus would
result in messages like
==================================================== warnings summary =====================================================
../../../lagado2.real/local/anaconda/envs/sherpa-main/lib/python3.11/site-packages/_pytest/config/__init__.py:1373
/lagado2.real/local/anaconda/envs/sherpa-main/lib/python3.11/site-packages/_pytest/config/__init__.py:1373: PytestConfigWarning: Unknown config option: doctest_norecursedirs
self._warn_or_fail_if_strict(f"Unknown config option: {key}\n")
../../../lagado2.real/local/anaconda/envs/sherpa-main/lib/python3.11/site-packages/_pytest/config/__init__.py:1373
/lagado2.real/local/anaconda/envs/sherpa-main/lib/python3.11/site-packages/_pytest/config/__init__.py:1373: PytestConfigWarning: Unknown config option: doctest_plus
self._warn_or_fail_if_strict(f"Unknown config option: {key}\n")
../../../lagado2.real/local/anaconda/envs/sherpa-main/lib/python3.11/site-packages/_pytest/config/__init__.py:1373
/lagado2.real/local/anaconda/envs/sherpa-main/lib/python3.11/site-packages/_pytest/config/__init__.py:1373: PytestConfigWarning: Unknown config option: doctest_plus_atol
self._warn_or_fail_if_strict(f"Unknown config option: {key}\n")
../../../lagado2.real/local/anaconda/envs/sherpa-main/lib/python3.11/site-packages/_pytest/config/__init__.py:1373
/lagado2.real/local/anaconda/envs/sherpa-main/lib/python3.11/site-packages/_pytest/config/__init__.py:1373: PytestConfigWarning: Unknown config option: doctest_subpackage_requires
self._warn_or_fail_if_strict(f"Unknown config option: {key}\n")
../../../lagado2.real/local/anaconda/envs/sherpa-main/lib/python3.11/site-packages/_pytest/config/__init__.py:1373
/lagado2.real/local/anaconda/envs/sherpa-main/lib/python3.11/site-packages/_pytest/config/__init__.py:1373: PytestConfigWarning: Unknown config option: text_file_format
self._warn_or_fail_if_strict(f"Unknown config option: {key}\n")
-- Docs: https://docs.pytest.org/en/stable/how-to/capture-warnings.html
================================================= short test summary info =================================================
---
pytest.ini | 4 ++++
1 file changed, 4 insertions(+)
diff --git a/pytest.ini b/pytest.ini
index fde2ab8e0c..e2c4c4847e 100644
--- a/pytest.ini
+++ b/pytest.ini
@@ -2,6 +2,10 @@
addopts = -rs --ignore=setup.py --ignore=test_requirements.txt
norecursedirs = .git build dist tmp* .eggs
text_file_format = rst
+filterwarnings =
+ # Since we can runpytest without loading pytest-doctestplus, hide
+ # the warnings we get when this is done
+ ignore::pytest.PytestConfigWarning
doctest_plus = enabled
doctest_plus_atol = 1e-4
doctest_optionflags =
From 14e43a098ecb9a5068d2886f6d4680b9cd878404 Mon Sep 17 00:00:00 2001
From: Doug Burke <dburke@cfa.harvard.edu>
Date: Mon, 17 Jul 2023 12:05:21 -0400
Subject: [PATCH 2/2] Tests: hide NumPy 1.25 ndim > 0 warnings (crates)
Although Sherpa has been updated to remove the deprecation
warnnng from NumPy 1.25:
Conversion of an array with ndim > 0 to a scalar is deprecated,
and will error in future. Ensure you extract a single element
from your array before performing this operation.
(Deprecated NumPy 1.25.)
it is still present in Crates (mid 2023), so hide the warning with
the assumption we can revert this commit by mid December 2023.
---
sherpa/conftest.py | 5 +++++
1 file changed, 5 insertions(+)
diff --git a/sherpa/conftest.py b/sherpa/conftest.py
index 97979b4e4b..339f252a51 100644
--- a/sherpa/conftest.py
+++ b/sherpa/conftest.py
@@ -117,6 +117,11 @@ def pytest_collection_modifyitems(config, items):
r'np.asscalar\(a\) is deprecated since NumPy v1.16, use a.item\(\) instead',
r"Using or importing the ABCs from 'collections' instead of from 'collections.abc' is deprecated since Python 3.3,and in 3.9 it will stop working",
+ # NumPy 1.25 warnings that are raised by (mid-2023) crates code.
+ # Hopefully this can be removed by December 2023.
+ #
+ r"Conversion of an array with ndim > 0 to a scalar is deprecated, and will error in future. Ensure you extract a single element from your array before performing this operation. \(Deprecated NumPy 1.25.\)",
+
],
UserWarning:
[

View File

@ -1,89 +0,0 @@
From 740fcd0da87d3aefa41aa3962cc8f1ddb7ab3cab Mon Sep 17 00:00:00 2001
From: Doug Burke <dburke@cfa.harvard.edu>
Date: Tue, 20 Jun 2023 15:31:55 -0400
Subject: [PATCH] NumPy 1.25 support
NumPy 1.25 deprecates converting a ndarray that is not a 0d value,
so for our cases this is
int(value)
info("message %g", value)
where value is a ndarray of length 1. The simple fix is to explictly
access the first element - so
answer = int(value[0])
info("message %g", value[0])
although for the int case (in the PSF convolution instrument code) I
have not looked through to determine if value is always guaranteed to
be a ndarray, so it is more like
if np.isscalar(value):
newval = value
else:
newval = value[0]
answer = int(newval)
---
sherpa/fit.py | 13 +++++++++----
sherpa/instrument.py | 12 ++++++++++--
2 files changed, 19 insertions(+), 6 deletions(-)
Index: sherpa-4.15.1/sherpa/fit.py
===================================================================
--- sherpa-4.15.1.orig/sherpa/fit.py
+++ sherpa-4.15.1/sherpa/fit.py
@@ -1258,8 +1258,13 @@ class Fit(NoNewAttributesAfterInit):
def get_par_name(ii):
return self.model.pars[self.thaw_indices[ii]].fullname
- # Call from a parameter estimation method, to report
- # that limits for a given parameter have been found
+ # Call from a parameter estimation method, to report that
+ # limits for a given parameter have been found At present (mid
+ # 2023) it looks like lower/upper are both single-element
+ # ndarrays, hence the need to convert to a scalar by accessing
+ # the first element (otherwise there's a deprecation warning
+ # from NumPy 1.25).
+ #
def report_progress(i, lower, upper):
if i < 0:
pass
@@ -1268,11 +1273,11 @@ class Fit(NoNewAttributesAfterInit):
if isnan(lower) or isinf(lower):
info("%s \tlower bound: -----" % name)
else:
- info("%s \tlower bound: %g" % (name, lower))
+ info("%s \tlower bound: %g" % (name, lower[0]))
if isnan(upper) or isinf(upper):
info("%s \tupper bound: -----" % name)
else:
- info("%s \tupper bound: %g" % (name, upper))
+ info("%s \tupper bound: %g" % (name, upper[0]))
# If starting fit statistic is chi-squared or C-stat,
# can calculate reduced fit statistic -- if it is
Index: sherpa-4.15.1/sherpa/instrument.py
===================================================================
--- sherpa-4.15.1.orig/sherpa/instrument.py
+++ sherpa-4.15.1/sherpa/instrument.py
@@ -357,9 +357,17 @@ class PSFKernel(Kernel):
# and Python 3.8 - causes a TypeError with the message
# "only integer scalar arrays can be converted to a scalar index"
# to be thrown here if sent directly to set_origin. So
- # we convert to a Python integer type.
+ # we convert to a Python integer type. In NumPy 1.25 it became
+ # a deprecation error to call int on an array with ndim > 0.
#
- origin = set_origin(kshape, int(brightPixel))
+ # assume there is only one element in brightPixel if not
+ # a scalar
+ #
+ if not numpy.isscalar(brightPixel):
+ loc = brightPixel[0]
+ else:
+ loc = brightPixel
+ origin = set_origin(kshape, int(loc))
if self.origin is None:
self.origin = origin

View File

@ -1,3 +1,31 @@
-------------------------------------------------------------------
Fri Dec 15 03:54:30 UTC 2023 - Steve Kowalik <steven.kowalik@suse.com>
- Update to 4.16.0:
* enhancements:
+ the grouping commands like group_counts and group_snr now default to
only grouping within the noticed range of channels, which is a change
in behaviour
+ new plotting backend: Users can now choose between matplotlib and
bokeh (experimental) support use of arbitrary python functions when
linking model parameters
+ updates to fake_pha, save_all, allowing to write out RMF/ARF files
+ get_plot_prefs and get_contour_prefs call to simplify access to the
plot and contour preferences
+ implementation of RMFPlot and DataIMGPlot classes and associated UI
functions (plot_rmf, get_rmf_plot)
+ update support for XSPEC to include version 12.13.1, allow XSPEC
table models which include the ESCALE parameter, and provide
experimental support for writing out XSPEC table models.
* changes to use the NumPy random generator API
* bug fixes:
+ PHA source plot Y axis scaling (#1825)
+ fix model display for grouped data (#1779, #1784)
+ Change in the ordering of operations when grouping background PHA
datasets. (#1881)
- Drop patch numpy125.patch and numpy125-CI.patch: Included upstream.
- Skip a misbehaving test.
------------------------------------------------------------------- -------------------------------------------------------------------
Thu Sep 7 12:24:59 UTC 2023 - Markéta Machová <mmachova@suse.com> Thu Sep 7 12:24:59 UTC 2023 - Markéta Machová <mmachova@suse.com>

View File

@ -17,17 +17,13 @@
Name: python-sherpa Name: python-sherpa
Version: 4.15.1 Version: 4.16.0
Release: 0 Release: 0
Summary: Modeling and fitting package for scientific data analysis Summary: Modeling and fitting package for scientific data analysis
License: GPL-3.0-only License: GPL-3.0-only
URL: https://github.com/sherpa/sherpa/ URL: https://github.com/sherpa/sherpa/
Source0: https://github.com/sherpa/sherpa/archive/%{version}.tar.gz#/sherpa-%{version}.tar.gz Source0: https://github.com/sherpa/sherpa/archive/%{version}.tar.gz#/sherpa-%{version}.tar.gz
Source1: https://github.com/sherpa/sherpa-test-data/archive/refs/tags/%{version}.tar.gz#/sherpa-test-data-%{version}.tar.gz Source1: https://github.com/sherpa/sherpa-test-data/archive/refs/tags/%{version}.tar.gz#/sherpa-test-data-%{version}.tar.gz
# PATCH-FIX-UPSTREAM https://github.com/sherpa/sherpa/pull/1807 NumPy 1.25 support
Patch: numpy125.patch
# PATCH-FIX-UPSTREAM https://github.com/sherpa/sherpa/pull/1819 CI: hide NumPy 1.25 array ndim>0 deprecation warnings
Patch: numpy125-CI.patch
BuildRequires: %{python_module devel >= 3.8} BuildRequires: %{python_module devel >= 3.8}
BuildRequires: %{python_module numpy-devel >= 1.19} BuildRequires: %{python_module numpy-devel >= 1.19}
BuildRequires: %{python_module pip} BuildRequires: %{python_module pip}
@ -105,6 +101,7 @@ donttest="test_save"
donttest+=" or (test_regproj and sherpa.plot.dummy_backend)" donttest+=" or (test_regproj and sherpa.plot.dummy_backend)"
donttest+=" or (test_fit_single and Chi2XspecVar)" donttest+=" or (test_fit_single and Chi2XspecVar)"
%endif %endif
donttest+=" or test_Griewank"
%pytest_arch %{?jobs:-n %jobs} --pyargs sherpa -k "not ($donttest)" %pytest_arch %{?jobs:-n %jobs} --pyargs sherpa -k "not ($donttest)"
%post %post
@ -121,7 +118,7 @@ donttest+=" or (test_fit_single and Chi2XspecVar)"
%python_alternative %{_bindir}/sherpa_test %python_alternative %{_bindir}/sherpa_test
%python_alternative %{_bindir}/sherpa_smoke %python_alternative %{_bindir}/sherpa_smoke
%{python_sitearch}/sherpa %{python_sitearch}/sherpa
%{python_sitearch}/sherpa-%{version}*-info %{python_sitearch}/sherpa-%{version}.dist-info
%{python_sitearch}/stk.so %{python_sitearch}/stk.so
%{python_sitearch}/group.so %{python_sitearch}/group.so

View File

@ -1,3 +0,0 @@
version https://git-lfs.github.com/spec/v1
oid sha256:3b3c4b7ce8a03a2cf2c5f3d1f288a6f332885ca04c50b1a829d4a244281f3112
size 13362922

3
sherpa-4.16.0.tar.gz Normal file
View File

@ -0,0 +1,3 @@
version https://git-lfs.github.com/spec/v1
oid sha256:95e665d87048a26e203785e6efbb9f44cf75cb6ea0c9ee853e3796b5a0c9444f
size 13686939

View File

@ -1,3 +0,0 @@
version https://git-lfs.github.com/spec/v1
oid sha256:a6b6335bd6ad84ff28a7fdc32b5cc45952c7aded193bc55154f4e208736c4126
size 134765085

View File

@ -0,0 +1,3 @@
version https://git-lfs.github.com/spec/v1
oid sha256:27d356af9d819ca0a5df9cca2ff8f29444629a33a9d5d347ed790a8d4596b7f5
size 137774612