@@ -172,17 +172,25 @@ def km_from_string(s=''):
172
172
# 0.13
173
173
kc = km
174
174
kc .start_channels ()
175
- send = kc .shell_channel .execute
175
+
176
+ try :
177
+ send = kc .execute
178
+ except AttributeError :
179
+ # < 3.0
180
+ send = kc .shell_channel .execute
176
181
177
182
#XXX: backwards compatibility for IPython < 0.13
178
- import inspect
179
- sc = kc .shell_channel
180
- num_oinfo_args = len (inspect .getargspec (sc .object_info ).args )
181
- if num_oinfo_args == 2 :
182
- # patch the object_info method which used to only take one argument
183
- klass = sc .__class__
184
- klass ._oinfo_orig = klass .object_info
185
- klass .object_info = lambda s ,x ,y : s ._oinfo_orig (x )
183
+ try :
184
+ import inspect
185
+ sc = kc .shell_channel
186
+ num_oinfo_args = len (inspect .getargspec (sc .object_info ).args )
187
+ if num_oinfo_args == 2 :
188
+ # patch the object_info method which used to only take one argument
189
+ klass = sc .__class__
190
+ klass ._oinfo_orig = klass .object_info
191
+ klass .object_info = lambda s ,x ,y : s ._oinfo_orig (x )
192
+ except :
193
+ pass
186
194
187
195
#XXX: backwards compatibility for IPython < 1.0
188
196
if not hasattr (kc , 'iopub_channel' ):
@@ -569,7 +577,12 @@ def set_pid():
569
577
"""
570
578
global pid
571
579
lines = '\n ' .join (['import os' , '_pid = os.getpid()' ])
572
- msg_id = send (lines , silent = True , user_variables = ['_pid' ])
580
+
581
+ try :
582
+ msg_id = send (lines , silent = True , user_variables = ['_pid' ])
583
+ except TypeError : # change in IPython 3.0+
584
+ msg_id = send (lines , silent = True , user_expressions = {'_pid' :'_pid' })
585
+
573
586
# wait to get message back from kernel
574
587
try :
575
588
child = get_child_msg (msg_id )
0 commit comments