From 9bbfc447ad353f7b45ffd876eeec30e102d82316 Mon Sep 17 00:00:00 2001 From: krzywon Date: Mon, 28 Oct 2024 11:25:58 -0400 Subject: [PATCH 01/10] Upgrade numpy version and pin bumps to version less than 1.0 --- setup.py | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/setup.py b/setup.py index 33edf680..68a282e5 100644 --- a/setup.py +++ b/setup.py @@ -29,7 +29,7 @@ def find_version(package): return version[1:-1] raise RuntimeError("Could not read version from %s/__init__.py"%package) -install_requires = ['numpy==1.*', 'scipy'] +install_requires = ['numpy', 'scipy'] with open('README.rst') as fid: long_description = fid.read() @@ -70,8 +70,8 @@ def find_version(package): }, install_requires=install_requires, extras_require={ - 'full': ['docutils', 'bumps', 'matplotlib', 'columnize'], - 'server': ['bumps'], + 'full': ['docutils', 'bumps==0.*', 'matplotlib', 'columnize'], + 'server': ['bumps==0.*'], 'OpenCL': ["pyopencl"], 'CUDA': ["pycuda"], }, From 31532aa3a9cb7a363f241c6dd5efddfedbb897a7 Mon Sep 17 00:00:00 2001 From: krzywon Date: Mon, 28 Oct 2024 11:26:23 -0400 Subject: [PATCH 02/10] Replace numpy.NaN with numpy.nan --- doc/guide/plugin.rst | 2 +- explore/realspace.py | 4 ++-- sasmodels/compare_many.py | 6 +++--- sasmodels/data.py | 6 +++--- sasmodels/kernelpy.py | 4 ++-- sasmodels/modelinfo.py | 4 ++-- sasmodels/sasview_model.py | 6 +++--- 7 files changed, 16 insertions(+), 16 deletions(-) diff --git a/doc/guide/plugin.rst b/doc/guide/plugin.rst index 589d7872..8619edd9 100644 --- a/doc/guide/plugin.rst +++ b/doc/guide/plugin.rst @@ -568,7 +568,7 @@ value at a time:: Iq.vectorized = False -Return np.NaN if the parameters are not valid (e.g., cap_radius < radius in +Return np.nan if the parameters are not valid (e.g., cap_radius < radius in barbell). If I(q; pars) is NaN for any $q$, then those parameters will be ignored, and not included in the calculation of the weighted polydispersity. diff --git a/explore/realspace.py b/explore/realspace.py index b548e9e4..db8c0a01 100644 --- a/explore/realspace.py +++ b/explore/realspace.py @@ -549,7 +549,7 @@ def pad_vectors(boundary, *vectors): if new_size > old_size: new = np.empty(new_size, dtype=old.dtype) new[:old_size] = old - new[old_size:] = np.NaN + new[old_size:] = np.nan yield new else: yield old @@ -1115,7 +1115,7 @@ def _sasmodels_Iqxy(kernel, qx, qy, pars, view): # calculator avoids masked values; instead set masked values to NaN result = np.empty_like(qx) result[calculator.index] = Iqxy - result[~calculator.index] = np.NaN + result[~calculator.index] = np.nan return result def wrap_sasmodel(name, **pars): diff --git a/sasmodels/compare_many.py b/sasmodels/compare_many.py index bedc832b..3654393f 100755 --- a/sasmodels/compare_many.py +++ b/sasmodels/compare_many.py @@ -142,9 +142,9 @@ def try_model(fn, pars): traceback.print_exc() print("when comparing %s for %d"%(name, seed)) if hasattr(data, 'qx_data'): - result = np.NaN*data.data + result = np.nan*data.data else: - result = np.NaN*data.x + result = np.nan*data.x return result def check_model(pars): """ @@ -165,7 +165,7 @@ def check_model(pars): except Exception as exc: #raise print('"Error: %s"'%str(exc).replace('"', "'")) - print('"good","%d of %d","max diff",%g' % (0, N, np.NaN)) + print('"good","%d of %d","max diff",%g' % (0, N, np.nan)) return expected = max(PRECISION[base], PRECISION[comp]) diff --git a/sasmodels/data.py b/sasmodels/data.py index c1d1105d..a845bbf6 100644 --- a/sasmodels/data.py +++ b/sasmodels/data.py @@ -170,8 +170,8 @@ def __init__(self, x=None, y=None, dx=None, dy=None): self.y, self.dy = _as_numpy(y), _as_numpy(dy) self.dxl = None self.filename = None - self.qmin = self.x.min() if self.x is not None else np.NaN - self.qmax = self.x.max() if self.x is not None else np.NaN + self.qmin = self.x.min() if self.x is not None else np.nan + self.qmax = self.x.max() if self.x is not None else np.nan # TODO: why is 1D mask False and 2D mask True? self.mask = (np.isnan(y) if y is not None else np.zeros_like(x, 'b') if x is not None @@ -314,7 +314,7 @@ class Source(object): """ def __init__(self): # type: () -> None - self.wavelength = np.NaN + self.wavelength = np.nan self.wavelength_unit = "A" class Sample(object): diff --git a/sasmodels/kernelpy.py b/sasmodels/kernelpy.py index a26a3f88..3f1e6324 100644 --- a/sasmodels/kernelpy.py +++ b/sasmodels/kernelpy.py @@ -235,8 +235,8 @@ def _loops(parameters, form, form_volume, form_radius, nq, call_details, weighted_form = 0.0 weighted_shell = 0.0 weighted_radius = 0.0 - partial_weight = np.NaN - weight = np.NaN + partial_weight = np.nan + weight = np.nan p0_par = call_details.pd_par[0] p0_length = call_details.pd_length[0] diff --git a/sasmodels/modelinfo.py b/sasmodels/modelinfo.py index f988f0fd..094f7d2f 100644 --- a/sasmodels/modelinfo.py +++ b/sasmodels/modelinfo.py @@ -79,7 +79,7 @@ def make_parameter_table(pars): partable.check_angles(strict=True) return partable -def parse_parameter(name, units='', default=np.NaN, +def parse_parameter(name, units='', default=np.nan, user_limits=None, ptype='', description=''): # type: (str, str, float, Sequence[Any], str, str) -> Parameter """ @@ -320,7 +320,7 @@ class Parameter(object): parameter table is built using :func:`make_parameter_table` and :func:`parse_parameter` therein. """ - def __init__(self, name, units='', default=np.NaN, limits=(-np.inf, np.inf), + def __init__(self, name, units='', default=np.nan, limits=(-np.inf, np.inf), ptype='', description=''): # type: (str, str, float, Limits, str, str) -> None self.id = name.split('[')[0].strip() # type: str diff --git a/sasmodels/sasview_model.py b/sasmodels/sasview_model.py index ff122fa9..844dfcd4 100644 --- a/sasmodels/sasview_model.py +++ b/sasmodels/sasview_model.py @@ -476,9 +476,9 @@ def getProfile(self): if p.id == self.multiplicity_info.control: value = float(self.multiplicity) elif p.length == 1: - value = self.params.get(p.id, np.NaN) + value = self.params.get(p.id, np.nan) else: - value = np.array([self.params.get(p.id+str(k), np.NaN) + value = np.array([self.params.get(p.id+str(k), np.nan) for k in range(1, p.length+1)]) args[p.id] = value @@ -841,7 +841,7 @@ def _get_weights(self, par): else: # For hidden parameters use default values. This sets # scale=1 and background=0 for structure factors - default = self._model_info.parameters.defaults.get(par.name, np.NaN) + default = self._model_info.parameters.defaults.get(par.name, np.nan) return default, [default], [1.0] elif par.polydisperse: value = self.params[par.name] From 4ccda58bbbcbc16c3b25095ecbe88e25a361fc3c Mon Sep 17 00:00:00 2001 From: krzywon Date: Mon, 28 Oct 2024 13:13:09 -0400 Subject: [PATCH 03/10] include package for doc builds --- setup.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/setup.py b/setup.py index 68a282e5..1356c579 100644 --- a/setup.py +++ b/setup.py @@ -70,7 +70,7 @@ def find_version(package): }, install_requires=install_requires, extras_require={ - 'full': ['docutils', 'bumps==0.*', 'matplotlib', 'columnize'], + 'full': ['docutils', 'bumps==0.*', 'matplotlib', 'columnize', 'siphash24'], 'server': ['bumps==0.*'], 'OpenCL': ["pyopencl"], 'CUDA': ["pycuda"], From 7c0a8b1de5210add99cd66318a5bd6f03dc9815f Mon Sep 17 00:00:00 2001 From: krzywon Date: Mon, 28 Oct 2024 13:17:34 -0400 Subject: [PATCH 04/10] include package in test.yml --- .github/workflows/test.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/test.yml b/.github/workflows/test.yml index 4953c9e4..a6f9119d 100644 --- a/.github/workflows/test.yml +++ b/.github/workflows/test.yml @@ -37,7 +37,7 @@ jobs: python -m pip install wheel setuptools python -m pip install mako python -m pip install numpy==1.* - python -m pip install scipy matplotlib docutils pytest sphinx bumps unittest-xml-reporting tinycc + python -m pip install scipy matplotlib docutils pytest sphinx bumps unittest-xml-reporting tinycc siphash - name: setup pyopencl on Linux + macOS if: ${{ matrix.os != 'windows-latest' }} From 24b7f600f9a45db7d1cf71ba3bc51be49c7e4c31 Mon Sep 17 00:00:00 2001 From: krzywon Date: Mon, 28 Oct 2024 13:20:11 -0400 Subject: [PATCH 05/10] include package in test.yml --- .github/workflows/test.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/test.yml b/.github/workflows/test.yml index a6f9119d..93efd073 100644 --- a/.github/workflows/test.yml +++ b/.github/workflows/test.yml @@ -37,7 +37,7 @@ jobs: python -m pip install wheel setuptools python -m pip install mako python -m pip install numpy==1.* - python -m pip install scipy matplotlib docutils pytest sphinx bumps unittest-xml-reporting tinycc siphash + python -m pip install scipy matplotlib docutils pytest sphinx bumps unittest-xml-reporting tinycc siphash24 - name: setup pyopencl on Linux + macOS if: ${{ matrix.os != 'windows-latest' }} From 245fa235afe998f7d1e108d6d049e7c8010df001 Mon Sep 17 00:00:00 2001 From: krzywon Date: Mon, 28 Oct 2024 14:43:40 -0400 Subject: [PATCH 06/10] Actually use latest numpy in CI --- .github/workflows/test.yml | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/.github/workflows/test.yml b/.github/workflows/test.yml index 93efd073..30c4dfa2 100644 --- a/.github/workflows/test.yml +++ b/.github/workflows/test.yml @@ -36,8 +36,7 @@ jobs: python -m pip install --upgrade pip python -m pip install wheel setuptools python -m pip install mako - python -m pip install numpy==1.* - python -m pip install scipy matplotlib docutils pytest sphinx bumps unittest-xml-reporting tinycc siphash24 + python -m pip install numpy scipy matplotlib docutils pytest sphinx bumps==0.* unittest-xml-reporting tinycc siphash24 - name: setup pyopencl on Linux + macOS if: ${{ matrix.os != 'windows-latest' }} From edabf560d06a25c817f509dd1f98c1c51a0603d2 Mon Sep 17 00:00:00 2001 From: krzywon Date: Mon, 28 Oct 2024 14:43:49 -0400 Subject: [PATCH 07/10] Fix sphinx warnings --- sasmodels/models/__init__.py | 1 + sasmodels/models/spherical_sld.py | 2 +- 2 files changed, 2 insertions(+), 1 deletion(-) diff --git a/sasmodels/models/__init__.py b/sasmodels/models/__init__.py index 661069a9..6b93a803 100644 --- a/sasmodels/models/__init__.py +++ b/sasmodels/models/__init__.py @@ -94,4 +94,5 @@ :mod:`teubner_strey` :mod:`two_lorentzian` :mod:`unified_power_Rg` + """ diff --git a/sasmodels/models/spherical_sld.py b/sasmodels/models/spherical_sld.py index 6a80accc..0edc08cc 100644 --- a/sasmodels/models/spherical_sld.py +++ b/sasmodels/models/spherical_sld.py @@ -133,7 +133,7 @@ \end{cases} -Boucher[#Boucher1983]_: +Boucher [#Boucher1983]_: .. math:: From 95a24ef1ed37dac1a8c97e5caf98a8925cff35ff Mon Sep 17 00:00:00 2001 From: krzywon Date: Tue, 19 Nov 2024 13:25:54 -0500 Subject: [PATCH 08/10] Include python 3.12 in the test matrix --- .github/workflows/test.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/test.yml b/.github/workflows/test.yml index 30c4dfa2..9889b242 100644 --- a/.github/workflows/test.yml +++ b/.github/workflows/test.yml @@ -9,7 +9,7 @@ jobs: strategy: matrix: os: [macos-latest, ubuntu-latest, windows-latest] - python-version: ["3.10", "3.11"] + python-version: ["3.10", "3.11", "3.12"] steps: - uses: actions/checkout@v4 From 8f0071d5dc78e4db1bc30f284708aef614cea96c Mon Sep 17 00:00:00 2001 From: krzywon Date: Tue, 19 Nov 2024 16:36:54 -0500 Subject: [PATCH 09/10] Include python 3.13 in the test matrix --- .github/workflows/test.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/test.yml b/.github/workflows/test.yml index 9889b242..bb1e319c 100644 --- a/.github/workflows/test.yml +++ b/.github/workflows/test.yml @@ -9,7 +9,7 @@ jobs: strategy: matrix: os: [macos-latest, ubuntu-latest, windows-latest] - python-version: ["3.10", "3.11", "3.12"] + python-version: ["3.10", "3.11", "3.12", "3.13"] steps: - uses: actions/checkout@v4 From 68793d8f8e280286238ad5c01c67012346ba62d0 Mon Sep 17 00:00:00 2001 From: krzywon Date: Tue, 19 Nov 2024 16:49:11 -0500 Subject: [PATCH 10/10] Remove python 3.13 from the test matrix --- .github/workflows/test.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/test.yml b/.github/workflows/test.yml index bb1e319c..9889b242 100644 --- a/.github/workflows/test.yml +++ b/.github/workflows/test.yml @@ -9,7 +9,7 @@ jobs: strategy: matrix: os: [macos-latest, ubuntu-latest, windows-latest] - python-version: ["3.10", "3.11", "3.12", "3.13"] + python-version: ["3.10", "3.11", "3.12"] steps: - uses: actions/checkout@v4