From 5596655d51f7eda5c576bc1c3c3fd8a95cb476e4 Mon Sep 17 00:00:00 2001
From: Martin Reinecke <martin@mpa-garching.mpg.de>
Date: Fri, 14 Jul 2017 08:49:51 +0200
Subject: [PATCH] avoid exec statements; they cause problems with Python 3

---
 nifty/field.py                          | 4 +++-
 nifty/spaces/power_space/power_space.py | 3 ++-
 2 files changed, 5 insertions(+), 2 deletions(-)

diff --git a/nifty/field.py b/nifty/field.py
index 1cdf86601..f8f814ea4 100644
--- a/nifty/field.py
+++ b/nifty/field.py
@@ -18,6 +18,7 @@
 
 from __future__ import division
 
+import ast
 import itertools
 import numpy as np
 
@@ -1519,7 +1520,8 @@ class Field(Loggable, Versionable, object):
             temp_domain.append(repository.get('s_' + str(i), hdf5_group))
         new_field.domain = tuple(temp_domain)
 
-        exec('new_field.domain_axes = ' + hdf5_group.attrs['domain_axes'])
+        new_field.domain_axes = ast.literal_eval(
+                                hdf5_group.attrs['domain_axes'])
 
         try:
             new_field._val = repository.get('val', hdf5_group)
diff --git a/nifty/spaces/power_space/power_space.py b/nifty/spaces/power_space/power_space.py
index 73b0a8c63..28afb11c7 100644
--- a/nifty/spaces/power_space/power_space.py
+++ b/nifty/spaces/power_space/power_space.py
@@ -16,6 +16,7 @@
 # NIFTy is being developed at the Max-Planck-Institut fuer Astrophysik
 # and financially supported by the Studienstiftung des deutschen Volkes.
 
+import ast
 import numpy as np
 
 from d2o import distributed_data_object
@@ -311,6 +312,6 @@ class PowerSpace(Space):
     @classmethod
     def _from_hdf5(cls, hdf5_group, repository):
         hp = repository.get('harmonic_partner', hdf5_group)
-        exec("bb = " + hdf5_group.attrs['binbounds'])
+        bb = ast.literal_eval(hdf5_group.attrs['binbounds'])
         ds = hdf5_group.attrs['distribution_strategy']
         return PowerSpace(hp, ds, binbounds=bb)
-- 
GitLab