##// END OF EJS Templates
Adding decorator forms of interact. Yeah!
Brian E. Granger -
Show More
@@ -237,11 +237,29 b' def interactive(f, *args, **kwargs):'
237 237
238 238 return container
239 239
240 def interact(f, *args, **kwargs):
240 def interact(*args, **kwargs):
241 241 """Interact with a function using widgets."""
242 w = interactive(f, *args, **kwargs)
243 f.widget = w
244 display(w)
242 if args and callable(args[0]):
243 # This branch handles the cases:
244 # 1. interact(f, *args, **kwargs)
245 # 2. @interact
246 # def f(*args, **kwargs):
247 # ...
248 f = args[0]
249 w = interactive(f, *args[1:], **kwargs)
250 f.widget = w
251 display(w)
252 else:
253 # This branch handles the case:
254 # @interact(10, 20, a=30, b=40)
255 # def f(*args, **kwargs):
256 # ...
257 def dec(f):
258 w = interactive(f, *args, **kwargs)
259 f.widget = w
260 display(w)
261 return f
262 return dec
245 263
246 264 def annotate(**kwargs):
247 265 """Python 3 compatible function annotation for Python 2."""
General Comments 0
You need to be logged in to leave comments. Login now