From 3eea3b2554b0a8a91403e3ace5b978d4e60f44b1 Mon Sep 17 00:00:00 2001
From: Andreas Kloeckner <inform@tiker.net>
Date: Thu, 20 Feb 2014 13:20:46 -0600
Subject: [PATCH] Record: allow customization of kwargs used in Record.copy

---
 pytools/__init__.py | 7 +++++--
 1 file changed, 5 insertions(+), 2 deletions(-)

diff --git a/pytools/__init__.py b/pytools/__init__.py
index f86c3b0..f480c2c 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)" % (
-- 
GitLab