diff --git a/pytools/__init__.py b/pytools/__init__.py index f86c3b08bb3aca511d33021b4ca8053c94c1a679..f480c2cfbc3f7d76ff4451a53e7947b025945783 100644 --- a/pytools/__init__.py +++ b/pytools/__init__.py @@ -138,14 +138,17 @@ class RecordWithoutPickling(object): fields.add(key) setattr(self, key, value) - def copy(self, **kwargs): + def get_copy_kwargs(self, **kwargs): for f in self.__class__.fields: if f not in kwargs: try: kwargs[f] = getattr(self, f) except AttributeError: pass - return self.__class__(**kwargs) + return kwargs + + def copy(self, **kwargs): + return self.__class__(**self.get_copy_kwargs(**kwargs)) def __repr__(self): return "%s(%s)" % (