create_wrapper_def_and_call: add support for keyword args

Change-Id: I73f37d083839ccae253ea3e935feded747e36b18
Signed-off-by: Michael Walsh <micwalsh@us.ibm.com>
diff --git a/lib/wrap_utils.py b/lib/wrap_utils.py
index d7e67c0..b51844b 100755
--- a/lib/wrap_utils.py
+++ b/lib/wrap_utils.py
@@ -70,6 +70,11 @@
         var_args = []
     else:
         var_args = ["*" + var_args]
+    keyword_args = base_arg_spec[2]
+    if keyword_args is None:
+        keyword_args = []
+    else:
+        keyword_args = ["**" + keyword_args]
     if base_arg_spec[3] is None:
         base_default_list = []
     else:
@@ -92,13 +97,14 @@
         else:
             default_string = str(base_default_list[base_default_ix])
         base_arg_default_list[ix] += "=" + default_string
-    base_arg_default_string = ', '.join(base_arg_default_list + var_args)
+    base_arg_default_string =\
+        ', '.join(base_arg_default_list + var_args + keyword_args)
 
     # Create the argument string which can be used to call the base function.
     # Example call_arg_string:
     # headers=headers, last=last, first=first
     call_arg_string = ', '.join([val + "=" + val for val in base_arg_list]
-                                + var_args)
+                                + var_args + keyword_args)
 
     # Compose the result values.
     func_def_line = "def " + wrap_func_name + "(" + base_arg_default_string +\