Compare commits
4 Commits
| Author | SHA256 | Date | |
|---|---|---|---|
| a684b004d7 | |||
| 8c24dc3e4b | |||
| b365038244 | |||
| e9e74a2480 |
26
2582.patch
26
2582.patch
@@ -1,26 +0,0 @@
|
|||||||
From 5e733253d9e791ed1568076ede93a983f27979f6 Mon Sep 17 00:00:00 2001
|
|
||||||
From: "Adam J. Jackson" <a.j.jackson@physics.org>
|
|
||||||
Date: Tue, 30 Nov 2021 09:51:47 +0000
|
|
||||||
Subject: [PATCH] TST: Vibration slab test should check for movement in ANY
|
|
||||||
direction
|
|
||||||
|
|
||||||
It is possible for a perfectly good eigenvector to be zero in some
|
|
||||||
Cartesian direction; this was encountered in #976 and appears to be
|
|
||||||
architecture-dependent.
|
|
||||||
---
|
|
||||||
ase/test/vibrations/test_vib.py | 2 +-
|
|
||||||
1 file changed, 1 insertion(+), 1 deletion(-)
|
|
||||||
|
|
||||||
diff --git a/ase/test/vibrations/test_vib.py b/ase/test/vibrations/test_vib.py
|
|
||||||
index fe28ff13e5..7786a47aec 100644
|
|
||||||
--- a/ase/test/vibrations/test_vib.py
|
|
||||||
+++ b/ase/test/vibrations/test_vib.py
|
|
||||||
@@ -524,4 +524,4 @@ class TestSlab:
|
|
||||||
assert_array_almost_equal(vibs.get_mode(i)[0], [0., 0., 0.])
|
|
||||||
|
|
||||||
# The N atoms should have finite displacement
|
|
||||||
- assert np.all(vibs.get_mode(i)[-2:, :])
|
|
||||||
+ assert np.all(np.any(vibs.get_mode(i)[-2:, :], axis=1))
|
|
||||||
--
|
|
||||||
GitLab
|
|
||||||
|
|
||||||
@@ -1,3 +0,0 @@
|
|||||||
version https://git-lfs.github.com/spec/v1
|
|
||||||
oid sha256:004df6b0ea04b1114c790fadfe45d4125eb0e53125c66a93425af853d82ab432
|
|
||||||
size 2807134
|
|
||||||
3
ase-3.23.0.tar.gz
Normal file
3
ase-3.23.0.tar.gz
Normal file
@@ -0,0 +1,3 @@
|
|||||||
|
version https://git-lfs.github.com/spec/v1
|
||||||
|
oid sha256:91a2aa31d89bd90b0efdfe4a7e84264f32828b2abfc9f38e65e041ad76fec8ae
|
||||||
|
size 2336462
|
||||||
222
ase-mr3400-numpy2.patch
Normal file
222
ase-mr3400-numpy2.patch
Normal file
@@ -0,0 +1,222 @@
|
|||||||
|
From 06c59143e7fdf15483491cf71800afba8b862bda Mon Sep 17 00:00:00 2001
|
||||||
|
From: yuzie007 <yuji.ikeda.ac.jp@gmail.com>
|
||||||
|
Date: Thu, 20 Jun 2024 17:44:31 +0200
|
||||||
|
Subject: [PATCH 1/7] Use `np.exceptions.ComplexWarning`
|
||||||
|
|
||||||
|
---
|
||||||
|
ase/test/vibrations/test_vib.py | 8 ++++++--
|
||||||
|
1 file changed, 6 insertions(+), 2 deletions(-)
|
||||||
|
|
||||||
|
Index: ase-3.23.0/ase/test/vibrations/test_vib.py
|
||||||
|
===================================================================
|
||||||
|
--- ase-3.23.0.orig/ase/test/vibrations/test_vib.py
|
||||||
|
+++ ase-3.23.0/ase/test/vibrations/test_vib.py
|
||||||
|
@@ -6,6 +6,10 @@ import numpy as np
|
||||||
|
import pytest
|
||||||
|
from numpy.testing import (assert_array_almost_equal,
|
||||||
|
assert_array_equal)
|
||||||
|
+try:
|
||||||
|
+ from numpy.exceptions import ComplexWarning # NumPy 2.0.0
|
||||||
|
+except ImportError:
|
||||||
|
+ from numpy import ComplexWarning
|
||||||
|
|
||||||
|
import ase.io
|
||||||
|
from ase import Atoms, units
|
||||||
|
@@ -438,14 +442,14 @@ def test_constrained_atoms(n2_data):
|
||||||
|
|
||||||
|
|
||||||
|
def test_dos(n2_vibdata):
|
||||||
|
- with pytest.warns(np.ComplexWarning):
|
||||||
|
+ with pytest.warns(ComplexWarning):
|
||||||
|
dos = n2_vibdata.get_dos()
|
||||||
|
assert_array_almost_equal(dos.get_energies(),
|
||||||
|
n2_vibdata.get_energies())
|
||||||
|
|
||||||
|
|
||||||
|
def test_pdos(n2_vibdata):
|
||||||
|
- with pytest.warns(np.ComplexWarning):
|
||||||
|
+ with pytest.warns(ComplexWarning):
|
||||||
|
pdos = n2_vibdata.get_pdos()
|
||||||
|
assert_array_almost_equal(pdos[0].get_energies(),
|
||||||
|
n2_vibdata.get_energies())
|
||||||
|
Index: ase-3.23.0/ase/constraints.py
|
||||||
|
===================================================================
|
||||||
|
--- ase-3.23.0.orig/ase/constraints.py
|
||||||
|
+++ ase-3.23.0/ase/constraints.py
|
||||||
|
@@ -1161,19 +1161,19 @@ class FixInternals(FixConstraint):
|
||||||
|
# Projection
|
||||||
|
hh = []
|
||||||
|
for i, constraint in enumerate(self.constraints):
|
||||||
|
- hh.append(aa[:, i] * np.row_stack(aa[:, i]))
|
||||||
|
+ hh.append(aa[:, i] * np.vstack(aa[:, i]))
|
||||||
|
|
||||||
|
- txx = aa[:, self.n] * np.row_stack(aa[:, self.n])
|
||||||
|
- tyy = aa[:, self.n + 1] * np.row_stack(aa[:, self.n + 1])
|
||||||
|
- tzz = aa[:, self.n + 2] * np.row_stack(aa[:, self.n + 2])
|
||||||
|
- rxx = aa[:, self.n + 3] * np.row_stack(aa[:, self.n + 3])
|
||||||
|
- ryy = aa[:, self.n + 4] * np.row_stack(aa[:, self.n + 4])
|
||||||
|
- rzz = aa[:, self.n + 5] * np.row_stack(aa[:, self.n + 5])
|
||||||
|
+ txx = aa[:, self.n] * np.vstack(aa[:, self.n])
|
||||||
|
+ tyy = aa[:, self.n + 1] * np.vstack(aa[:, self.n + 1])
|
||||||
|
+ tzz = aa[:, self.n + 2] * np.vstack(aa[:, self.n + 2])
|
||||||
|
+ rxx = aa[:, self.n + 3] * np.vstack(aa[:, self.n + 3])
|
||||||
|
+ ryy = aa[:, self.n + 4] * np.vstack(aa[:, self.n + 4])
|
||||||
|
+ rzz = aa[:, self.n + 5] * np.vstack(aa[:, self.n + 5])
|
||||||
|
T = txx + tyy + tzz + rxx + ryy + rzz
|
||||||
|
for vec in hh:
|
||||||
|
T += vec
|
||||||
|
- ff = np.dot(T, np.row_stack(ff))
|
||||||
|
- forces[:, :] -= np.dot(T, np.row_stack(ff)).reshape(-1, 3)
|
||||||
|
+ ff = np.dot(T, np.vstack(ff))
|
||||||
|
+ forces[:, :] -= np.dot(T, np.vstack(ff)).reshape(-1, 3)
|
||||||
|
|
||||||
|
def __repr__(self):
|
||||||
|
constraints = [repr(constr) for constr in self.constraints]
|
||||||
|
Index: ase-3.23.0/ase/mep/autoneb.py
|
||||||
|
===================================================================
|
||||||
|
--- ase-3.23.0.orig/ase/mep/autoneb.py
|
||||||
|
+++ ase-3.23.0/ase/mep/autoneb.py
|
||||||
|
@@ -544,7 +544,7 @@ class AutoNEB:
|
||||||
|
try:
|
||||||
|
energies.append(a.get_potential_energy())
|
||||||
|
except RuntimeError:
|
||||||
|
- energies.append(np.NaN)
|
||||||
|
+ energies.append(np.nan)
|
||||||
|
return energies
|
||||||
|
|
||||||
|
def get_energies_one_image(self, image):
|
||||||
|
@@ -553,7 +553,7 @@ class AutoNEB:
|
||||||
|
try:
|
||||||
|
energy = image.get_potential_energy()
|
||||||
|
except RuntimeError:
|
||||||
|
- energy = np.NaN
|
||||||
|
+ energy = np.nan
|
||||||
|
return energy
|
||||||
|
|
||||||
|
def get_highest_energy_index(self):
|
||||||
|
Index: ase-3.23.0/ase/dft/__init__.py
|
||||||
|
===================================================================
|
||||||
|
--- ase-3.23.0.orig/ase/dft/__init__.py
|
||||||
|
+++ ase-3.23.0/ase/dft/__init__.py
|
||||||
|
@@ -1,4 +1,8 @@
|
||||||
|
import numpy as np
|
||||||
|
+try:
|
||||||
|
+ from numpy import trapezoid # NumPy 2.0.0
|
||||||
|
+except ImportError:
|
||||||
|
+ from numpy import trapz as trapezoid
|
||||||
|
|
||||||
|
from ase.dft.dos import DOS
|
||||||
|
from ase.dft.kpoints import monkhorst_pack
|
||||||
|
@@ -19,9 +23,9 @@ def get_distribution_moment(x, y, order=
|
||||||
|
y = np.asarray(y)
|
||||||
|
|
||||||
|
if order == 0:
|
||||||
|
- return np.trapz(y, x)
|
||||||
|
+ return trapezoid(y, x)
|
||||||
|
elif isinstance(order, int):
|
||||||
|
- return np.trapz(x**order * y, x) / np.trapz(y, x)
|
||||||
|
+ return trapezoid(x**order * y, x) / trapezoid(y, x)
|
||||||
|
elif hasattr(order, '__iter__'):
|
||||||
|
return [get_distribution_moment(x, y, n) for n in order]
|
||||||
|
else:
|
||||||
|
Index: ase-3.23.0/ase/md/switch_langevin.py
|
||||||
|
===================================================================
|
||||||
|
--- ase-3.23.0.orig/ase/md/switch_langevin.py
|
||||||
|
+++ ase-3.23.0/ase/md/switch_langevin.py
|
||||||
|
@@ -1,6 +1,10 @@
|
||||||
|
from typing import Any, List, Optional
|
||||||
|
|
||||||
|
import numpy as np
|
||||||
|
+try:
|
||||||
|
+ from numpy import trapezoid # NumPy 2.0.0
|
||||||
|
+except ImportError:
|
||||||
|
+ from numpy import trapz as trapezoid
|
||||||
|
|
||||||
|
from ase import Atoms
|
||||||
|
from ase.calculators.mixing import MixedCalculator
|
||||||
|
@@ -117,7 +121,7 @@ class SwitchLangevin(Langevin):
|
||||||
|
lambdas = self.path_data[:, 1]
|
||||||
|
U1 = self.path_data[:, 2]
|
||||||
|
U2 = self.path_data[:, 3]
|
||||||
|
- delta_F = np.trapz(U2 - U1, lambdas)
|
||||||
|
+ delta_F = trapezoid(U2 - U1, lambdas)
|
||||||
|
return delta_F
|
||||||
|
|
||||||
|
|
||||||
|
Index: ase-3.23.0/ase/test/calculator/test_harmonic.py
|
||||||
|
===================================================================
|
||||||
|
--- ase-3.23.0.orig/ase/test/calculator/test_harmonic.py
|
||||||
|
+++ ase-3.23.0/ase/test/calculator/test_harmonic.py
|
||||||
|
@@ -1,6 +1,10 @@
|
||||||
|
import numpy as np
|
||||||
|
import pytest
|
||||||
|
from numpy.testing import assert_array_almost_equal
|
||||||
|
+try:
|
||||||
|
+ from numpy import trapezoid # NumPy 2.0.0
|
||||||
|
+except ImportError:
|
||||||
|
+ from numpy import trapz as trapezoid
|
||||||
|
|
||||||
|
from ase import Atoms
|
||||||
|
from ase.calculators.calculator import CalculationFailed, CalculatorSetupError
|
||||||
|
@@ -266,7 +270,7 @@ def test_thermodynamic_integration():
|
||||||
|
e0, e1 = calc_linearCombi.get_energy_contributions(atoms)
|
||||||
|
ediffs[lamb].append(float(e1) - float(e0))
|
||||||
|
ediffs[lamb] = np.mean(ediffs[lamb])
|
||||||
|
- dA = np.trapz([ediffs[lamb] for lamb in lambs], x=lambs) # anharm. corr.
|
||||||
|
+ dA = trapezoid([ediffs[lamb] for lamb in lambs], x=lambs) # anharm. corr.
|
||||||
|
assert -0.005 < dA < 0.005 # the MD run is to short for convergence
|
||||||
|
if dA == 0.0:
|
||||||
|
raise ValueError('there is most likely something wrong, but it could '
|
||||||
|
Index: ase-3.23.0/ase/io/octopus/input.py
|
||||||
|
===================================================================
|
||||||
|
--- ase-3.23.0.orig/ase/io/octopus/input.py
|
||||||
|
+++ ase-3.23.0/ase/io/octopus/input.py
|
||||||
|
@@ -516,7 +516,7 @@ def atoms2kwargs(atoms, use_ase_cell):
|
||||||
|
|
||||||
|
if atoms.cell.orthorhombic:
|
||||||
|
Lsize = 0.5 * np.diag(cell)
|
||||||
|
- kwargs['lsize'] = [[repr(size) for size in Lsize]]
|
||||||
|
+ kwargs['lsize'] = [[str(size) for size in Lsize]]
|
||||||
|
# ASE uses (0...cell) while Octopus uses -L/2...L/2.
|
||||||
|
# Lsize is really cell / 2, and we have to adjust our
|
||||||
|
# positions by subtracting Lsize (see construction of the coords
|
||||||
|
@@ -533,7 +533,7 @@ def atoms2kwargs(atoms, use_ase_cell):
|
||||||
|
if sym is None:
|
||||||
|
raise ValueError('Cannot represent atom X without tags and '
|
||||||
|
'species info in atoms.info')
|
||||||
|
- coord_block.append([repr(sym)] + [repr(x) for x in pos])
|
||||||
|
+ coord_block.append([repr(sym)] + [str(x) for x in pos])
|
||||||
|
|
||||||
|
kwargs[coordtype] = coord_block
|
||||||
|
npbc = sum(atoms.pbc)
|
||||||
|
Index: ase-3.23.0/ase/dft/band_structure.py
|
||||||
|
===================================================================
|
||||||
|
--- ase-3.23.0.orig/ase/dft/band_structure.py
|
||||||
|
+++ ase-3.23.0/ase/dft/band_structure.py
|
||||||
|
@@ -1,6 +1,9 @@
|
||||||
|
import warnings
|
||||||
|
|
||||||
|
-from numpy import VisibleDeprecationWarning
|
||||||
|
+try:
|
||||||
|
+ from numpy.exceptions import VisibleDeprecationWarning # NumPy 2.0.0
|
||||||
|
+except ImportError:
|
||||||
|
+ from numpy import VisibleDeprecationWarning
|
||||||
|
|
||||||
|
from ase.spectrum.band_structure import * # noqa: F401,F403
|
||||||
|
|
||||||
|
Index: ase-3.23.0/ase/test/test_imports.py
|
||||||
|
===================================================================
|
||||||
|
--- ase-3.23.0.orig/ase/test/test_imports.py
|
||||||
|
+++ ase-3.23.0/ase/test/test_imports.py
|
||||||
|
@@ -3,7 +3,10 @@ from importlib import import_module
|
||||||
|
from pathlib import Path
|
||||||
|
|
||||||
|
import pytest
|
||||||
|
-from numpy import VisibleDeprecationWarning
|
||||||
|
+try:
|
||||||
|
+ from numpy.exceptions import VisibleDeprecationWarning # NumPy 2.0.0
|
||||||
|
+except ImportError:
|
||||||
|
+ from numpy import VisibleDeprecationWarning
|
||||||
|
|
||||||
|
import ase
|
||||||
|
|
||||||
@@ -1,32 +0,0 @@
|
|||||||
Index: ase-3.22.1/ase/calculators/autodetect.py
|
|
||||||
===================================================================
|
|
||||||
--- ase-3.22.1.orig/ase/calculators/autodetect.py
|
|
||||||
+++ ase-3.22.1/ase/calculators/autodetect.py
|
|
||||||
@@ -45,11 +45,11 @@ def detect(name):
|
|
||||||
return d
|
|
||||||
|
|
||||||
if name in python_modules:
|
|
||||||
- loader = importlib.find_loader(python_modules[name])
|
|
||||||
- if loader is not None:
|
|
||||||
+ spec = importlib.util.find_spec(python_modules[name])
|
|
||||||
+ if spec is not None:
|
|
||||||
d['type'] = 'python'
|
|
||||||
d['module'] = python_modules[name]
|
|
||||||
- d['path'] = loader.get_filename()
|
|
||||||
+ d['path'] = spec.loader.get_filename()
|
|
||||||
return d
|
|
||||||
|
|
||||||
envvar = get_executable_env_var(name)
|
|
||||||
Index: ase-3.22.1/ase/test/testsuite.py
|
|
||||||
===================================================================
|
|
||||||
--- ase-3.22.1.orig/ase/test/testsuite.py
|
|
||||||
+++ ase-3.22.1/ase/test/testsuite.py
|
|
||||||
@@ -53,7 +53,7 @@ def test(calculators=tuple(), jobs=0, ve
|
|
||||||
|
|
||||||
|
|
||||||
def have_module(module):
|
|
||||||
- return importlib.find_loader(module) is not None
|
|
||||||
+ return importlib.util.find_spec(module) is not None
|
|
||||||
|
|
||||||
|
|
||||||
MULTIPROCESSING_MAX_WORKERS = 32
|
|
||||||
@@ -1,3 +1,76 @@
|
|||||||
|
-------------------------------------------------------------------
|
||||||
|
Fri Aug 30 12:50:49 UTC 2024 - Ben Greiner <code@bnavigator.de>
|
||||||
|
|
||||||
|
- Unpin numpy
|
||||||
|
- Add ase-mr3400-numpy2.patch gl#ase/ase#3400
|
||||||
|
|
||||||
|
-------------------------------------------------------------------
|
||||||
|
Thu Jul 18 03:49:28 UTC 2024 - Steve Kowalik <steven.kowalik@suse.com>
|
||||||
|
|
||||||
|
- Update to 3.23.0:
|
||||||
|
* Add FixSubsetCom to fix the center of mass of the specified subset
|
||||||
|
of atoms.
|
||||||
|
* Add the indices option to ase.Atoms.get_center_of_mass() to compute
|
||||||
|
the center of mass of the specified subset of atoms.
|
||||||
|
* All saddle-point search and minimum-energy path methods have been
|
||||||
|
moved into a new ase.mep module. You should start importing from this
|
||||||
|
location; e.g., from ase.mep import NEB, DyNEB.
|
||||||
|
* Fix ase.constraints.FixCom.adjust_momenta() to have no center-of-mass
|
||||||
|
momentum
|
||||||
|
* ase.build.surface.graphene() now takes a thickness argument
|
||||||
|
* ase.build.bulk() now assigns initial magnetic moments to BCC Fe, Co,
|
||||||
|
and Ni.
|
||||||
|
* ase.build.make_supercell() can now control how to order the atoms in
|
||||||
|
the supercell via the option order
|
||||||
|
* mask() returns the mask of nonzero cell vectors, an array of three
|
||||||
|
booleans.
|
||||||
|
* reciprocal() now guarantees that cell vectors which are zero correspond
|
||||||
|
to reciprocal cell vectors that are also zero. Previously the
|
||||||
|
reciprocal cell vectors could have small nonzero values due to floating
|
||||||
|
point tolerance.
|
||||||
|
* The Cell object now has normal() and normals() which calculate normal
|
||||||
|
vectors to one or all pairs of cell vectors. Also added area() and
|
||||||
|
areas(), which return the area spanned by one or all pairs of cell
|
||||||
|
vectors.
|
||||||
|
* New a2b and periodic formats for Formula objects. The abc format has
|
||||||
|
been renamed to ab2.
|
||||||
|
* IO formats can now be implemented in separate packages and registered
|
||||||
|
in ase with the entry point ase.ioformats in the external package
|
||||||
|
configuration.
|
||||||
|
* ase.phonons.Displacement now has a comm keyword argument to better
|
||||||
|
support parallelization.
|
||||||
|
* Fix ase.build.rotate.minimize_rotation_and_translation() for systems
|
||||||
|
with periodic boundary conditions.
|
||||||
|
* Fix ase.io.db.row.AtomsRow.charge(), which was looking for
|
||||||
|
inital_charges instead of initial_charges.
|
||||||
|
* Fixed definition of the Lennard-Jones potential in ase.utils.ff
|
||||||
|
* The x3d viewer has improved aesthetics
|
||||||
|
* Added a function, ase.dft.kpoints.mindistance2monkhorstpack(), to
|
||||||
|
construct a Monkhorst-Pack grid
|
||||||
|
* Fixed turbomole calculator parsing issues when = are present in data
|
||||||
|
groups
|
||||||
|
* Fixed round-trip dict (de)serialization with FixedMode constraint
|
||||||
|
* Show total number of rows in ASE database
|
||||||
|
* Fix units of magnetic moments in ASE database
|
||||||
|
* General improvements to POVRay colors
|
||||||
|
* Remove deprecated CLI functions, such as the old ase-gui command
|
||||||
|
* Fix calculation of stresses in ase.stress.full_3x3_to_voigt_6_stress()
|
||||||
|
* Add polarization parser for FHI-AIMS calculator
|
||||||
|
* Fix bug in ase.atoms.Atoms.get_center_of_mass()
|
||||||
|
* Fix multiprocessing bug with ase.neb.NEB
|
||||||
|
* NEB calculations now call get_forces() instead of get_potential_energy()
|
||||||
|
followed by get_forces() to prevent duplicate work
|
||||||
|
* Improve performance of ase.build.supercells.make_supercell() for large
|
||||||
|
supercells
|
||||||
|
* Fix conservation of momentum in ase.md.langevin.Langevin
|
||||||
|
* Fix bug in ase.vibrations.Vibrations causing property calculations to
|
||||||
|
always use the default method
|
||||||
|
- Switch to pyproject macros.
|
||||||
|
- Remove patches, included upstream:
|
||||||
|
* support-matplotlib-36.patch
|
||||||
|
* 2582.patch
|
||||||
|
* deprecated-importlib-find_loader.patch
|
||||||
|
|
||||||
-------------------------------------------------------------------
|
-------------------------------------------------------------------
|
||||||
Tue Feb 6 18:08:22 UTC 2024 - Daniel Garcia <daniel.garcia@suse.com>
|
Tue Feb 6 18:08:22 UTC 2024 - Daniel Garcia <daniel.garcia@suse.com>
|
||||||
|
|
||||||
|
|||||||
@@ -17,19 +17,17 @@
|
|||||||
|
|
||||||
|
|
||||||
Name: python-ase
|
Name: python-ase
|
||||||
Version: 3.22.1
|
Version: 3.23.0
|
||||||
Release: 0
|
Release: 0
|
||||||
Summary: Atomic Simulation Environment
|
Summary: Atomic Simulation Environment
|
||||||
License: LGPL-2.1-or-later
|
License: LGPL-2.1-or-later
|
||||||
URL: https://wiki.fysik.dtu.dk/ase
|
URL: https://wiki.fysik.dtu.dk/ase
|
||||||
Source: https://files.pythonhosted.org/packages/source/a/ase/ase-%{version}.tar.gz
|
Source: https://files.pythonhosted.org/packages/source/a/ase/ase-%{version}.tar.gz
|
||||||
# PATCH-FIX-UPSTREAM https://gitlab.com/ase/ase/-/merge_requests/2826
|
# PATCH-FIX-UPSTREAM ase-mr3400-numpy2.patch https://gitlab.com/ase/ase/-/merge_requests/3400
|
||||||
Patch0: support-matplotlib-36.patch
|
Patch0: ase-mr3400-numpy2.patch
|
||||||
# PATCH-FIX-UPSTREAM https://gitlab.com/ase/ase/-/merge_requests/2582
|
BuildRequires: %{python_module pip}
|
||||||
Patch1: 2582.patch
|
|
||||||
# PATCH-FIX-UPSTREAM deprecated-importlib-find_loader.patch https://gitlab.com/ase/ase/-/merge_requests/2938
|
|
||||||
Patch2: deprecated-importlib-find_loader.patch
|
|
||||||
BuildRequires: %{python_module setuptools}
|
BuildRequires: %{python_module setuptools}
|
||||||
|
BuildRequires: %{python_module wheel}
|
||||||
BuildRequires: python-rpm-macros
|
BuildRequires: python-rpm-macros
|
||||||
# SECTION test requirements
|
# SECTION test requirements
|
||||||
BuildRequires: %{python_module matplotlib >= 3.1.0}
|
BuildRequires: %{python_module matplotlib >= 3.1.0}
|
||||||
@@ -44,6 +42,8 @@ BuildRequires: fdupes
|
|||||||
Requires: python-matplotlib >= 3.1.0
|
Requires: python-matplotlib >= 3.1.0
|
||||||
Requires: python-numpy >= 1.15.0
|
Requires: python-numpy >= 1.15.0
|
||||||
Requires: python-scipy >= 1.1.0
|
Requires: python-scipy >= 1.1.0
|
||||||
|
Requires(post): update-alternatives
|
||||||
|
Requires(postun): update-alternatives
|
||||||
BuildArch: noarch
|
BuildArch: noarch
|
||||||
%python_subpackages
|
%python_subpackages
|
||||||
|
|
||||||
@@ -54,24 +54,22 @@ Atomic Simulation Environment
|
|||||||
%autosetup -p1 -n ase-%{version}
|
%autosetup -p1 -n ase-%{version}
|
||||||
|
|
||||||
%build
|
%build
|
||||||
%python_build
|
%pyproject_wheel
|
||||||
|
|
||||||
%install
|
%install
|
||||||
%python_install
|
%pyproject_install
|
||||||
%python_clone -a %{buildroot}%{_bindir}/ase
|
%python_clone -a %{buildroot}%{_bindir}/ase
|
||||||
%python_clone -a %{buildroot}%{_bindir}/ase-db
|
|
||||||
%python_clone -a %{buildroot}%{_bindir}/ase-gui
|
|
||||||
%python_clone -a %{buildroot}%{_bindir}/ase-run
|
|
||||||
%python_clone -a %{buildroot}%{_bindir}/ase-info
|
|
||||||
%python_clone -a %{buildroot}%{_bindir}/ase-build
|
|
||||||
%python_expand %fdupes %{buildroot}%{$python_sitelib}
|
%python_expand %fdupes %{buildroot}%{$python_sitelib}
|
||||||
|
|
||||||
%check
|
%check
|
||||||
# No scipy CODATA
|
# No scipy CODATA
|
||||||
%pytest -k 'not test_units'
|
donttest="test_units"
|
||||||
|
# Broken with current release, remove on upgrade
|
||||||
|
donttest+=" or test_pw_input_write_nested_flat or test_fix_scaled"
|
||||||
|
%pytest -k "not ($donttest)"
|
||||||
|
|
||||||
%post
|
%post
|
||||||
%python_install_alternative ase ase-db ase-gui ase-run ase-info ase-build
|
%python_install_alternative ase
|
||||||
|
|
||||||
%postun
|
%postun
|
||||||
%python_uninstall_alternative ase
|
%python_uninstall_alternative ase
|
||||||
@@ -80,12 +78,7 @@ Atomic Simulation Environment
|
|||||||
%doc CHANGELOG.rst README.rst
|
%doc CHANGELOG.rst README.rst
|
||||||
%license COPYING COPYING.LESSER LICENSE
|
%license COPYING COPYING.LESSER LICENSE
|
||||||
%python_alternative %{_bindir}/ase
|
%python_alternative %{_bindir}/ase
|
||||||
%python_alternative %{_bindir}/ase-db
|
|
||||||
%python_alternative %{_bindir}/ase-gui
|
|
||||||
%python_alternative %{_bindir}/ase-run
|
|
||||||
%python_alternative %{_bindir}/ase-info
|
|
||||||
%python_alternative %{_bindir}/ase-build
|
|
||||||
%{python_sitelib}/ase
|
%{python_sitelib}/ase
|
||||||
%{python_sitelib}/ase*info
|
%{python_sitelib}/ase-%{version}.dist-info
|
||||||
|
|
||||||
%changelog
|
%changelog
|
||||||
|
|||||||
@@ -1,37 +0,0 @@
|
|||||||
From 3d4fff328ba9a06d9799563f357cfe5968f1f79c Mon Sep 17 00:00:00 2001
|
|
||||||
From: Ask Hjorth Larsen <asklarsen@gmail.com>
|
|
||||||
Date: Mon, 16 Jan 2023 16:41:15 +0100
|
|
||||||
Subject: [PATCH] set window title in way that will not crash on matplotlib
|
|
||||||
3.6+
|
|
||||||
|
|
||||||
---
|
|
||||||
ase/cli/band_structure.py | 6 ++++--
|
|
||||||
1 file changed, 4 insertions(+), 2 deletions(-)
|
|
||||||
|
|
||||||
diff --git a/ase/cli/band_structure.py b/ase/cli/band_structure.py
|
|
||||||
index 303c64b88..603ad659a 100644
|
|
||||||
--- a/ase/cli/band_structure.py
|
|
||||||
+++ b/ase/cli/band_structure.py
|
|
||||||
@@ -16,15 +16,17 @@ def read_band_structure(filename):
|
|
||||||
|
|
||||||
def main(args, parser):
|
|
||||||
import matplotlib.pyplot as plt
|
|
||||||
+
|
|
||||||
bs = read_band_structure(args.calculation)
|
|
||||||
emin, emax = (float(e) for e in args.range)
|
|
||||||
- fig = plt.gcf()
|
|
||||||
- fig.canvas.set_window_title(args.calculation)
|
|
||||||
+ fig = plt.figure(args.calculation)
|
|
||||||
ax = fig.gca()
|
|
||||||
+
|
|
||||||
bs.plot(ax=ax,
|
|
||||||
filename=args.output,
|
|
||||||
emin=emin + bs.reference,
|
|
||||||
emax=emax + bs.reference)
|
|
||||||
+
|
|
||||||
if args.output is None:
|
|
||||||
plt.show()
|
|
||||||
|
|
||||||
--
|
|
||||||
GitLab
|
|
||||||
|
|
||||||
Reference in New Issue
Block a user