Skip to content

Commit d07e897

Browse files
committed
First pass at fixes for numpy versiuon 2.0+
1 parent de0bdbb commit d07e897

File tree

12 files changed

+55
-33
lines changed

12 files changed

+55
-33
lines changed

Diff for: Stoner/Analysis.py

+4-1
Original file line numberDiff line numberDiff line change
@@ -5,7 +5,10 @@
55
import numpy as np
66
import numpy.ma as ma
77

8-
from scipy.integrate import cumtrapz
8+
try:
9+
from scipy.integrate import cumtrapz
10+
except ImportError:
11+
from scipy.integrate import cumulative_trapezoid as cumtrapz
912
from scipy.optimize import curve_fit
1013

1114
from .tools import isiterable, isTuple

Diff for: Stoner/Core.py

+1-1
Original file line numberDiff line numberDiff line change
@@ -26,7 +26,7 @@
2626
import csv
2727

2828
import numpy as np
29-
from numpy import NaN # NOQA pylint: disable=unused-import
29+
from numpy import nan # NOQA pylint: disable=unused-import
3030
from numpy import ma
3131

3232
from .compat import string_types, int_types, index_types, _pattern_type, path_types

Diff for: Stoner/Image/core.py

+32-15
Original file line numberDiff line numberDiff line change
@@ -27,6 +27,7 @@
2727
transform,
2828
)
2929

30+
from ..compat import np_version
3031
from ..core.base import typeHintedDict, metadataObject
3132
from ..core.exceptions import StonerLoadError, StonerUnrecognisedFormat
3233
from ..Core import DataFile
@@ -46,21 +47,37 @@
4647

4748
IMAGE_FILES = [("Tiff File", "*.tif;*.tiff"), ("PNG files", "*.png", "Numpy Files", "*.npy")]
4849

49-
dtype_range = {
50-
np.bool_: (False, True),
51-
np.bool8: (False, True),
52-
np.uint8: (0, 255),
53-
np.uint16: (0, 65535),
54-
np.int8: (-128, 127),
55-
np.int16: (-32768, 32767),
56-
np.int64: (-(2**63), 2**63 - 1),
57-
np.uint64: (0, 2**64 - 1),
58-
np.int32: (-(2**31), 2**31 - 1),
59-
np.uint32: (0, 2**32 - 1),
60-
np.float16: (-1, 1),
61-
np.float32: (-1, 1),
62-
np.float64: (-1, 1),
63-
}
50+
if np_version.major == 1 and np_version.minor < 24:
51+
dtype_range = {
52+
np.bool_: (False, True),
53+
np.bool8: (False, True),
54+
np.uint8: (0, 255),
55+
np.uint16: (0, 65535),
56+
np.int8: (-128, 127),
57+
np.int16: (-32768, 32767),
58+
np.int64: (-(2**63), 2**63 - 1),
59+
np.uint64: (0, 2**64 - 1),
60+
np.int32: (-(2**31), 2**31 - 1),
61+
np.uint32: (0, 2**32 - 1),
62+
np.float16: (-1, 1),
63+
np.float32: (-1, 1),
64+
np.float64: (-1, 1),
65+
}
66+
else:
67+
dtype_range = {
68+
np.bool_: (False, True),
69+
np.uint8: (0, 255),
70+
np.uint16: (0, 65535),
71+
np.int8: (-128, 127),
72+
np.int16: (-32768, 32767),
73+
np.int64: (-(2**63), 2**63 - 1),
74+
np.uint64: (0, 2**64 - 1),
75+
np.int32: (-(2**31), 2**31 - 1),
76+
np.uint32: (0, 2**32 - 1),
77+
np.float16: (-1, 1),
78+
np.float32: (-1, 1),
79+
np.float64: (-1, 1),
80+
}
6481

6582

6683
def _add_core_(result, other):

Diff for: Stoner/Image/util.py

+2-1
Original file line numberDiff line numberDiff line change
@@ -9,6 +9,7 @@
99
import numpy as np
1010

1111
from ..tools.classes import Options
12+
from ..compat import np_version
1213

1314
dtype_range = {
1415
np.bool_: (False, True),
@@ -24,7 +25,7 @@
2425
np.float64: (-1.0, 1.0),
2526
}
2627

27-
if float(np.version.version.split(".")[1]) < 1.24:
28+
if np_version.major==1 and np_version.minon<24:
2829
dtype_range[np.bool8] = (False, True)
2930

3031
integer_types = (np.uint8, np.uint16, np.int8, np.int16)

Diff for: Stoner/Util.py

+2-2
Original file line numberDiff line numberDiff line change
@@ -79,7 +79,7 @@ def _h_sat_susceptibility(d, i, Ms_vals, Hsat_vals, h_sat_fraction): # pylint:
7979
if hs.size > 1:
8080
Hsat_err[1 - i] = sem(hs)
8181
else:
82-
Hsat_err[1 - i] = np.NaN
82+
Hsat_err[1 - i] = np.nan
8383
return (Hsat, Hsat_err)
8484

8585

@@ -95,7 +95,7 @@ def _h_sat_delta_M(d, i, Ms_vals, Hsat_vals, h_sat_fraction): # pylint: disable
9595
if hs.size > 1:
9696
hs = hs[np.argmin(np.abs(hs))]
9797
Hsat[1 - i] = hs # Get the H_sat value
98-
Hsat_err[1 - i] = np.NaN
98+
Hsat_err[1 - i] = np.nan
9999
return (Hsat, Hsat_err)
100100

101101

Diff for: Stoner/compat.py

+3-2
Original file line numberDiff line numberDiff line change
@@ -130,8 +130,9 @@ def get_filedialog(what="file", **opts):
130130
raise RuntimeError(f"Unable to recognise required file dialog type:{what}")
131131
return fileDialog.openDialog(mode=funcs[what], **opts)
132132

133-
134-
if np_version.minor >= 20:
133+
if np_version.major >= 2:
134+
int_types += (int, np.int8, np.int16, np.int32, np.int64)
135+
elif np_version.minor >= 20:
135136
int_types += (int, np.int0, np.int8, np.int16, np.int32, np.int64)
136137
else:
137138
int_types += (np.int, np.int0, np.int8, np.int16, np.int32, np.int64)

Diff for: Stoner/core/base.py

+2-2
Original file line numberDiff line numberDiff line change
@@ -24,7 +24,7 @@
2424

2525
from dateutil import parser
2626
import numpy as np
27-
from numpy import NaN
27+
from numpy import nan
2828
import asteval
2929

3030
try:
@@ -70,7 +70,7 @@ def literal_eval(string: str) -> Any:
7070
global _asteval_interp # pylint: disable=W0603
7171
if _asteval_interp is None:
7272
_asteval_interp = asteval.Interpreter(
73-
usersyms={"np": np, "re": re, "NaN": NaN, "nan": NaN, "None": None, "datetime": datetime}
73+
usersyms={"np": np, "re": re, "NaN": nan, "nan": nan, "None": None, "datetime": datetime}
7474
)
7575
try:
7676
return _asteval_interp(string, show_errors=False)

Diff for: Stoner/core/utils.py

+2-2
Original file line numberDiff line numberDiff line change
@@ -80,11 +80,11 @@ def add_core(other: Union["DataFile", np.ndarray, List[Numeric], MappingType], n
8080
order[k] = newdata.find_col(k)
8181
except (KeyError, re.error):
8282
mask = newdata.mask
83-
newdata.add_column(np.ones(len(newdata)) * np.NaN, header=k)
83+
newdata.add_column(np.ones(len(newdata)) * np.nan, header=k)
8484
newdata.mask[:, :-1] = mask
8585
newdata.mask[:, -1] = np.ones(len(newdata), dtype=bool)
8686
order[k] = newdata.shape[1] - 1
87-
row = np.ones(newdata.shape[1]) * np.NaN
87+
row = np.ones(newdata.shape[1]) * np.nan
8888
mask = np.ones_like(row, dtype=bool)
8989
for k in order:
9090
row[order[k]] = other[k]

Diff for: Stoner/formats/data/instruments.py

+1-1
Original file line numberDiff line numberDiff line change
@@ -193,7 +193,7 @@ def load_qdfile(new_data, filename=None, *args, **kargs):
193193
if data.shape[0] == 0:
194194
raise StonerLoadError("No data in file!")
195195
if data.shape[1] < len(column_headers): # Trap for buggy QD software not giving ewnough columns of data
196-
data = np.append(data, np.ones((data.shape[0], len(column_headers) - data.shape[1])) * np.NaN, axis=1)
196+
data = np.append(data, np.ones((data.shape[0], len(column_headers) - data.shape[1])) * np.nan, axis=1)
197197
elif data.shape[1] > len(column_headers): # too much data
198198
data = data[:, : len(column_headers) - data.shape[1]]
199199
new_data.data = data

Diff for: Stoner/formats/instruments.py

+1-1
Original file line numberDiff line numberDiff line change
@@ -223,7 +223,7 @@ def _load(self, filename=None, *args, **kargs):
223223
if data.shape[0] == 0:
224224
raise Core.StonerLoadError("No data in file!")
225225
if data.shape[1] < len(column_headers): # Trap for buggy QD software not giving ewnough columns of data
226-
data = np.append(data, np.ones((data.shape[0], len(column_headers) - data.shape[1])) * np.NaN, axis=1)
226+
data = np.append(data, np.ones((data.shape[0], len(column_headers) - data.shape[1])) * np.nan, axis=1)
227227
elif data.shape[1] > len(column_headers): # too much data
228228
data = data[:, : len(column_headers) - data.shape[1]]
229229
self.data = data

Diff for: recipe/meta.yaml

+4-4
Original file line numberDiff line numberDiff line change
@@ -17,13 +17,13 @@ build:
1717

1818
requirements:
1919
build:
20-
- python >=3.7
20+
- python >=3.9
2121
- pytest
2222
- pytest-runner
2323

2424
run:
25-
- python >=3.7
26-
- scipy>1.7
25+
- python >=3.9
26+
- scipy >1.7
2727
- numpy >=1.18
2828
- matplotlib >=3.0
2929
- scikit-image >=0.17
@@ -33,7 +33,7 @@ requirements:
3333
- image-registration >=0.2.1
3434
- lmfit >=0.9.7
3535
- memoization >=0.1.4
36-
- npTDMS >=0.11
36+
- npTDMS >=1.9.0
3737
- python-dateutil >=2.7.0
3838
- statsmodels
3939
- tabulate >=0.8

Diff for: requirements.txt

+1-1
Original file line numberDiff line numberDiff line change
@@ -8,7 +8,7 @@ filemagic>=1.6
88
image-registration>=0.2.1
99
lmfit>=0.9.7
1010
memoization>=0.1.4
11-
npTDMS>=0.11
11+
npTDMS>=1.9.0
1212
python-dateutil>=2.7.0
1313
statsmodels
1414
tabulate>=0.8

0 commit comments

Comments
 (0)