From 0abc2afe7c62706f8949f7e39ed576882688eaf1 Mon Sep 17 00:00:00 2001 From: Gerhard Holzinger Date: Thu, 12 Feb 2026 17:00:25 +0100 Subject: [PATCH 1/3] Adjust some of thg Python code for modern numpy, remove use of old Numeric Python module The Numeric module of SciPy has been deprecated for quite a while. In fact, we find a commit changing from Numeric to numpy from 2006 https://github.com/scipy/scipy/commit/574897ffbff8cac6f13e2974f5221c9e150d7378 numpy, under its current name numpy, is around since 2006. https://en.wikipedia.org/wiki/NumPy With Python-3 being release in 2008, we feel there is no need, let alone justification, to support a pre-2008 numerics module in the Python-3 branch of LPP. The code was adjusted such that numpy module is loaded, and if this fails an exception is raised instead of falling back to the older Numeric module. -------------------------------------------------------------------------------------------------- We furthermore made some adjustments, which relate to recent versions of numpy specifically. * do not use the type np.float; use float With release of numpy-1.20, the use of the type np.float as an alias for the build-in float type has been deprecated. With the release of numpy-1.24, this has been finally removed. https://numpy.org/devdocs/release/1.20.0-notes.html https://numpy.org/devdocs/release/1.24.0-notes.html The time between a feature being considered deprecated and being finally removed is not fixed. However, there is an official policy document discussing this. https://numpy.org/neps/nep-0023-backwards-compatibility.html * do not use atoms != [] to test for atoms being empty; use atoms.size > 0 We have not been able to find the reason why this poses no problem using numpy-1.21.5 on Python-3.10.12; however with numpy-2.2.6 under Python-3.10.12 this comparison does not work anymore. The release notes of numpy-1.25 discuss the use of == and != operators on arrays in the Expired Deprecations section, i.e., these features were removed. https://numpy.org/doc/2.0/release/1.25.0-notes.html --- src/__pycache__/DEFAULTS.cpython-310.pyc | Bin 0 -> 205 bytes src/__pycache__/dump.cpython-310.pyc | Bin 0 -> 29272 bytes src/__pycache__/vtk.cpython-310.pyc | Bin 0 -> 9118 bytes src/bdump.py | 9 +++------ src/dump.py | 10 +++------- src/ldump.py | 9 +++------ src/mdump.py | 9 +++------ src/tdump.py | 9 +++------ src/vtk.py | 6 ++++-- 9 files changed, 19 insertions(+), 33 deletions(-) create mode 100644 src/__pycache__/DEFAULTS.cpython-310.pyc create mode 100644 src/__pycache__/dump.cpython-310.pyc create mode 100644 src/__pycache__/vtk.cpython-310.pyc diff --git a/src/__pycache__/DEFAULTS.cpython-310.pyc b/src/__pycache__/DEFAULTS.cpython-310.pyc new file mode 100644 index 0000000000000000000000000000000000000000..965e46f798779cd57428bfd44c32a55ec520219b GIT binary patch literal 205 zcmd1j<>g`k0{Kf439w^WWWUEH~?`m50FS_NMTsS7{!pn7|fu_q{(uNwIH*q zD)APFi>sSss82}nE%vg^s?5B!{99ZprMU%0Y57ITseYP_w|E0QqoN$+T_c=*LS0-} zG8C}^jRO5tl1CZ<(K$6> literal 0 HcmV?d00001 diff --git a/src/__pycache__/dump.cpython-310.pyc b/src/__pycache__/dump.cpython-310.pyc new file mode 100644 index 0000000000000000000000000000000000000000..bc0faa037e5b7a52e89eb27ab71adee9b30a4b6d GIT binary patch literal 29272 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 literal 0 HcmV?d00001 diff --git a/src/bdump.py b/src/bdump.py index ac75c04..2a67860 100644 --- a/src/bdump.py +++ b/src/bdump.py @@ -68,11 +68,9 @@ # atoms[i][j] = 2d array of floats, i = 0 to natoms-1, j = 0 to ncols-1 try: - import numpy as np - oldnumeric = False + import numpy as np except: - import Numeric as np - oldnumeric = True + raise Exception("no numpy Python module available") try: from DEFAULTS import PIZZA_GUNZIP except: PIZZA_GUNZIP = "gunzip" @@ -188,8 +186,7 @@ def read_snapshot(self,f): for i in range(1,snap.natoms): words += f.readline().split() floats = list(map(float,words)) - if oldnumeric: atoms = np.zeros((snap.natoms,ncol),np.Float) - else: atoms = np.zeros((snap.natoms,ncol),np.float) + atoms = np.zeros((snap.natoms,ncol),float) start = 0 stop = ncol for i in range(snap.natoms): diff --git a/src/dump.py b/src/dump.py index 6d6280b..5e9f3f4 100644 --- a/src/dump.py +++ b/src/dump.py @@ -191,10 +191,8 @@ try: import numpy as np - oldnumeric = False except: - import Numeric as np - oldnumeric = True + raise Exception("no numpy Python module available") try: from DEFAULTS import PIZZA_GUNZIP except: PIZZA_GUNZIP = "gunzip" @@ -418,8 +416,7 @@ def read_snapshot(self,f): for i in range(1,snap.natoms): words += f.readline().split() floats = list(map(float,words)) - if oldnumeric: atoms = np.zeros((snap.natoms,ncol),np.Float) - else: atoms = np.zeros((snap.natoms,ncol),np.float) + atoms = np.zeros((snap.natoms,ncol),float) start = 0 stop = ncol for i in range(snap.natoms): @@ -887,8 +884,7 @@ def newcolumn(self,str): self.map(ncol+1,str) for snap in self.snaps: atoms = snap.atoms - if oldnumeric: newatoms = np.zeros((snap.natoms,ncol+1),np.Float) - else: newatoms = np.zeros((snap.natoms,ncol+1),np.float) + newatoms = np.zeros((snap.natoms,ncol+1),float) newatoms[:,0:ncol] = snap.atoms snap.atoms = newatoms diff --git a/src/ldump.py b/src/ldump.py index 8660afe..a30d7eb 100644 --- a/src/ldump.py +++ b/src/ldump.py @@ -75,11 +75,9 @@ # atoms[i][j] = 2d array of floats, i = 0 to natoms-1, j = 0 to ncols-1 try: - import numpy as np - oldnumeric = False + import numpy as np except: - import Numeric as np - oldnumeric = True + raise Exception("no numpy Python module available") try: from DEFAULTS import PIZZA_GUNZIP except: PIZZA_GUNZIP = "gunzip" @@ -202,8 +200,7 @@ def read_snapshot(self,f): for i in range(1,snap.natoms): words += f.readline().split() floats = list(map(float,words)) - if oldnumeric: atoms = np.zeros((snap.natoms,ncol),np.Float) - else: atoms = np.zeros((snap.natoms,ncol),np.float) + atoms = np.zeros((snap.natoms,ncol),float) start = 0 stop = ncol for i in range(snap.natoms): diff --git a/src/mdump.py b/src/mdump.py index 714add5..37aa5df 100644 --- a/src/mdump.py +++ b/src/mdump.py @@ -133,11 +133,9 @@ # evalues[i][j] = 2d array of floats, i = 0 to Nel-1, j = 0 to Ncol try: - import numpy as np - oldnumeric = False + import numpy as np except: - import Numeric as np - oldnumeric = True + raise Exception("no numpy Python module available") try: from DEFAULTS import PIZZA_GUNZIP except: PIZZA_GUNZIP = "gunzip" @@ -318,8 +316,7 @@ def read_snapshot(self,f): for i in range(1,n): words += f.readline().split() floats = list(map(float,words)) - if oldnumeric: values = np.zeros((n,ncol),np.Float) - else: values = np.zeros((n,ncol),np.float) + values = np.zeros((n,ncol),float) start = 0 stop = ncol for i in range(n): diff --git a/src/tdump.py b/src/tdump.py index 711551e..b151229 100644 --- a/src/tdump.py +++ b/src/tdump.py @@ -76,11 +76,9 @@ # atoms[i][j] = 2d array of floats, i = 0 to natoms-1, j = 0 to ncols-1 try: - import numpy as np - oldnumeric = False + import numpy as np except: - import Numeric as np - oldnumeric = True + raise Exception("no numpy Python module available") try: from DEFAULTS import PIZZA_GUNZIP except: PIZZA_GUNZIP = "gunzip" @@ -203,8 +201,7 @@ def read_snapshot(self,f): for i in range(1,snap.natoms): words += f.readline().split() floats = list(map(float,words)) - if oldnumeric: atoms = np.zeros((snap.natoms,ncol),np.Float) - else: atoms = np.zeros((snap.natoms,ncol),np.float) + atoms = np.zeros((snap.natoms,ncol),float) start = 0 stop = ncol for i in range(snap.natoms): diff --git a/src/vtk.py b/src/vtk.py index 96c2dc7..83f4590 100644 --- a/src/vtk.py +++ b/src/vtk.py @@ -346,7 +346,8 @@ def particleGran(file,atoms,names,n_values): continue vectortype = 'float' - if atoms != []: + #if atoms != []: + if atoms.size > 0: vectortype = typestr(atoms[0][vectors[key]]) if 'float' in vectortype: vectortype = 'float' elif 'int' in vectortype: vectortype = 'int' @@ -361,7 +362,8 @@ def particleGran(file,atoms,names,n_values): # print SCALARS for key in scalars.keys(): scalartype ='' - if atoms != []: + #if atoms != []: + if atoms.size > 0: scalartype = typestr(atoms[0][scalars[key]]) if 'float' in scalartype: scalartype = 'float' elif 'int' in scalartype: scalartype = 'int' From 6116d93e093d7f30b87b76373261c5f11ee443f2 Mon Sep 17 00:00:00 2001 From: Gerhard Holzinger Date: Thu, 12 Feb 2026 17:39:14 +0100 Subject: [PATCH 2/3] remove __pycache__ files --- src/__pycache__/DEFAULTS.cpython-310.pyc | Bin 205 -> 0 bytes src/__pycache__/dump.cpython-310.pyc | Bin 29272 -> 0 bytes src/__pycache__/vtk.cpython-310.pyc | Bin 9118 -> 0 bytes 3 files changed, 0 insertions(+), 0 deletions(-) delete mode 100644 src/__pycache__/DEFAULTS.cpython-310.pyc delete mode 100644 src/__pycache__/dump.cpython-310.pyc delete mode 100644 src/__pycache__/vtk.cpython-310.pyc diff --git a/src/__pycache__/DEFAULTS.cpython-310.pyc b/src/__pycache__/DEFAULTS.cpython-310.pyc deleted file mode 100644 index 965e46f798779cd57428bfd44c32a55ec520219b..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 205 zcmd1j<>g`k0{Kf439w^WWWUEH~?`m50FS_NMTsS7{!pn7|fu_q{(uNwIH*q zD)APFi>sSss82}nE%vg^s?5B!{99ZprMU%0Y57ITseYP_w|E0QqoN$+T_c=*LS0-} zG8C}^jRO5tl1CZ<(K$6> diff --git a/src/__pycache__/dump.cpython-310.pyc b/src/__pycache__/dump.cpython-310.pyc deleted file mode 100644 index bc0faa037e5b7a52e89eb27ab71adee9b30a4b6d..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 29272 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 From 6b949a7fc7fb48937cc16acafb9c679c2b04f38d Mon Sep 17 00:00:00 2001 From: Gerhard Holzinger Date: Thu, 12 Feb 2026 17:39:27 +0100 Subject: [PATCH 3/3] added .gitignore --- .gitignore | 1 + 1 file changed, 1 insertion(+) create mode 100644 .gitignore diff --git a/.gitignore b/.gitignore new file mode 100644 index 0000000..bee8a64 --- /dev/null +++ b/.gitignore @@ -0,0 +1 @@ +__pycache__