From 170508a53c90854a4d5bf0cff87f35e3310f3625 Mon Sep 17 00:00:00 2001 From: Cameron Hargreaves Date: Tue, 6 Feb 2024 13:58:31 +0100 Subject: [PATCH] Added backwards compatibility for deprecated pymatgen.core.units.Memory.from_string method (#284) --- abipy/flowtk/flows.py | 6 +++++- abipy/flowtk/qadapters.py | 7 ++++++- 2 files changed, 11 insertions(+), 2 deletions(-) diff --git a/abipy/flowtk/flows.py b/abipy/flowtk/flows.py index 03efd008d..f0443e347 100644 --- a/abipy/flowtk/flows.py +++ b/abipy/flowtk/flows.py @@ -2498,7 +2498,11 @@ def make_tarfile(self, name=None, max_filesize=None, exclude_exts=None, exclude_ def any2bytes(s): """Convert string or number to memory in bytes.""" if is_string(s): - return int(Memory.from_string(s).to("b")) + # Support for deprecated pymatgen API + try: + mem = int(Memory.from_string(s).to("b")) + except: + mem = int(Memory.from_str(s).to("b")) else: return int(s) diff --git a/abipy/flowtk/qadapters.py b/abipy/flowtk/qadapters.py index c8b5e939f..8d939654f 100644 --- a/abipy/flowtk/qadapters.py +++ b/abipy/flowtk/qadapters.py @@ -215,7 +215,12 @@ def __init__(self, **kwargs): # Convert memory to megabytes. m = str(kwargs.pop("mem_per_node")) - self.mem_per_node = int(Memory.from_string(m).to("Mb")) + + # Support for old pymatgen API + try: + self.mem_per_node = int(Memory.from_string(m).to("Mb")) + except: + self.mem_per_node = int(Memory.from_str(m).to("Mb")) if self.mem_per_node <= 0 or self.sockets_per_node <= 0 or self.cores_per_socket <= 0: raise ValueError("invalid parameters: %s" % kwargs)