Skip to content

Commit 0635db7

Browse files
bencliffordminrk
authored andcommitted
Add basic handling of kwdefaults
1 parent cc18e6a commit 0635db7

File tree

1 file changed

+12
-0
lines changed

1 file changed

+12
-0
lines changed

ipyparallel/serialize/canning.py

Lines changed: 12 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -193,6 +193,11 @@ def __init__(self, f):
193193
else:
194194
self.defaults = None
195195

196+
if f.__kwdefaults__:
197+
self.kwdefaults = can(f.__kwdefaults__)
198+
else:
199+
self.kwdefaults = None
200+
196201
closure = py3compat.get_closure(f)
197202
if closure:
198203
self.closure = tuple(can(cell) for cell in closure)
@@ -218,11 +223,18 @@ def get_object(self, g=None):
218223
defaults = tuple(uncan(cfd, g) for cfd in self.defaults)
219224
else:
220225
defaults = None
226+
227+
if self.kwdefaults:
228+
kwdefaults = uncan(self.kwdefaults)
229+
else:
230+
kwdefaults = None
231+
221232
if self.closure:
222233
closure = tuple(uncan(cell, g) for cell in self.closure)
223234
else:
224235
closure = None
225236
newFunc = FunctionType(self.code, g, self.__name__, defaults, closure)
237+
newFunc.__kwdefaults__ = kwdefaults
226238
return newFunc
227239

228240

0 commit comments

Comments
 (0)