##// END OF EJS Templates
Backport PR #2773: Fixed minor typo causing AttributeError to be thrown....
Backport PR #2773: Fixed minor typo causing AttributeError to be thrown. I'm not sure how I caused the error to be thrown and couldn't reproduce it with the same call again, nevertheless I think the fix is correct. ```python In [21]: rc.shutdown(hub=True) Traceback (most recent call last): File "<ipython-input-21-977a05a15f31>", line 1, in <module> rc.shutdown(hub=True) File "<string>", line 2, in shutdown File "c:\dev\code\ipython\IPython\parallel\client\client.py", line 69, in spin_first self.spin() File "c:\dev\code\ipython\IPython\parallel\client\client.py", line 1005, in spin self._flush_notifications() File "c:\dev\code\ipython\IPython\parallel\client\client.py", line 800, in _flush_notifications raise Exception("Unhandled message type: %s"%msg.msg_type) AttributeError: 'dict' object has no attribute 'msg_type' ```

File last commit:

r5390:c82649ea
r9855:7ad908bf
Show More
codeutil.py
42 lines | 1.6 KiB | text/x-python | PythonLexer
MinRK
codeutil into zmq, to prevent IPython.kernel import
r3557 # encoding: utf-8
"""Utilities to enable code objects to be pickled.
Any process that import this module will be able to pickle code objects. This
Bernardo B. Marques
remove all trailling spaces
r4872 includes the func_code attribute of any function. Once unpickled, new
MinRK
codeutil into zmq, to prevent IPython.kernel import
r3557 functions can be built using new.function(code, globals()). Eventually
we need to automate all of this so that functions themselves can be pickled.
Reference: A. Tremols, P Cogolo, "Python Cookbook," p 302-305
"""
__docformat__ = "restructuredtext en"
#-------------------------------------------------------------------------------
Matthias BUSSONNIER
update copyright to 2011/20xx-2011...
r5390 # Copyright (C) 2008-2011 The IPython Development Team
MinRK
codeutil into zmq, to prevent IPython.kernel import
r3557 #
# Distributed under the terms of the BSD License. The full license is in
# the file COPYING, distributed as part of this software.
#-------------------------------------------------------------------------------
#-------------------------------------------------------------------------------
# Imports
#-------------------------------------------------------------------------------
MinRK
update parallel code for py3k...
r4155 import sys
MinRK
cleanup per review...
r4161 import types, copy_reg
MinRK
codeutil into zmq, to prevent IPython.kernel import
r3557
def code_ctor(*args):
MinRK
cleanup per review...
r4161 return types.CodeType(*args)
Bernardo B. Marques
remove all trailling spaces
r4872
MinRK
codeutil into zmq, to prevent IPython.kernel import
r3557 def reduce_code(co):
if co.co_freevars or co.co_cellvars:
raise ValueError("Sorry, cannot pickle code objects with closures")
MinRK
update parallel code for py3k...
r4155 args = [co.co_argcount, co.co_nlocals, co.co_stacksize,
co.co_flags, co.co_code, co.co_consts, co.co_names,
co.co_varnames, co.co_filename, co.co_name, co.co_firstlineno,
co.co_lnotab]
if sys.version_info[0] >= 3:
args.insert(1, co.co_kwonlyargcount)
return code_ctor, tuple(args)
MinRK
codeutil into zmq, to prevent IPython.kernel import
r3557
copy_reg.pickle(types.CodeType, reduce_code)