提交 5fbaa031 authored 作者: Pascal Lamblin's avatar Pascal Lamblin

Update get/setstate for MonitorMode to return pre/post functions

Otherwise, they get ignored when copy.copy or deepcopy is called.
上级 a3626b27
...@@ -253,7 +253,7 @@ class Mode(object): ...@@ -253,7 +253,7 @@ class Mode(object):
linker = config.linker linker = config.linker
if optimizer is 'default': if optimizer is 'default':
optimizer = config.optimizer optimizer = config.optimizer
self.__setstate__((linker, optimizer)) Mode.__setstate__(self, (linker, optimizer))
# self.provided_optimizer - typically the `optimizer` arg. # self.provided_optimizer - typically the `optimizer` arg.
# But if the `optimizer` arg is keyword corresponding to a predefined # But if the `optimizer` arg is keyword corresponding to a predefined
......
...@@ -54,6 +54,16 @@ class MonitorMode(Mode): ...@@ -54,6 +54,16 @@ class MonitorMode(Mode):
super(MonitorMode, self).__init__(wrap_linker, optimizer=optimizer) super(MonitorMode, self).__init__(wrap_linker, optimizer=optimizer)
def __getstate__(self):
lnk, opt = super(MonitorMode, self).__getstate__()
return (lnk, opt, self.pre_func, self.post_func)
def __setstate__(self, state):
lnk, opt, pre_func, post_func = state
self.pre_func = pre_func
self.post_func = post_func
super(MonitorMode, self).__setstate__((lnk, opt))
def eval(self, i, node, fn): def eval(self, i, node, fn):
""" """
The method that calls the thunk `fn`. The method that calls the thunk `fn`.
......
Markdown 格式
0%
您添加了 0 到此讨论。请谨慎行事。
请先完成此评论的编辑!
注册 或者 后发表评论