diff options
Diffstat (limited to 'Python/pywarpx/Constants.py')
-rw-r--r-- | Python/pywarpx/Constants.py | 23 |
1 files changed, 11 insertions, 12 deletions
diff --git a/Python/pywarpx/Constants.py b/Python/pywarpx/Constants.py index 1ae1dda0d..abc0c3e87 100644 --- a/Python/pywarpx/Constants.py +++ b/Python/pywarpx/Constants.py @@ -24,20 +24,19 @@ class Constants(Bucket): def add_keywords(self, kwdict): mangle_dict = {} for k,v in kwdict.items(): - # Check if keyword has already been defined - # WarpX has a single global dictionary of expression variables so each - # variable must be unique - if k in self.argvattrs: - # if so, mangle the name by appending a numerical suffix - mangle_number = 1 + # WarpX has a single global dictionary of expression variables, my_constants, + # so each variable must be unique. + # Check if keyword has already been defined. If so and it has a different + # value than the already defined value, then mangle the name. + mangle_number = 0 + k_mangled = k + while k_mangled in self.argvattrs and self.argvattrs[k_mangled] != v: + mangle_number += 1 k_mangled = f'{k}{mangle_number}' - while k_mangled in self.argvattrs: - # make sure that the mangled name has also not already been defined - mangle_number += 1 - k_mangled = f'{k}{mangle_number}' + if mangle_number > 0: + # The mangle_dict contains only mangled names mangle_dict[k] = k_mangled - k = k_mangled - setattr(self, k, v) + setattr(self, k_mangled, v) return mangle_dict def mangle_expression(self, expression, mangle_dict): |