Thanks to visit codestin.com
Credit goes to github.com

Skip to content

Commit 69f00e0

Browse files
committed
can func_defaults
allows passing interactively defined functions as func_defaults
1 parent 8796581 commit 69f00e0

1 file changed

Lines changed: 9 additions & 2 deletions

File tree

IPython/utils/pickleutil.py

Lines changed: 9 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -84,7 +84,10 @@ class CannedFunction(CannedObject):
8484
def __init__(self, f):
8585
self._check_type(f)
8686
self.code = f.func_code
87-
self.defaults = f.func_defaults
87+
if f.func_defaults:
88+
self.defaults = [ can(fd) for fd in f.func_defaults ]
89+
else:
90+
self.defaults = None
8891
self.module = f.__module__ or '__main__'
8992
self.__name__ = f.__name__
9093
self.buffers = []
@@ -104,7 +107,11 @@ def get_object(self, g=None):
104107

105108
if g is None:
106109
g = {}
107-
newFunc = FunctionType(self.code, g, self.__name__, self.defaults)
110+
if self.defaults:
111+
defaults = tuple(uncan(cfd, g) for cfd in self.defaults)
112+
else:
113+
defaults = None
114+
newFunc = FunctionType(self.code, g, self.__name__, defaults)
108115
return newFunc
109116

110117

0 commit comments

Comments
 (0)