From 6acdbc3db543f2692ee336a99722f5ab0b46c77e Mon Sep 17 00:00:00 2001 From: Walter Bender Date: Wed, 13 Nov 2013 22:42:18 +0000 Subject: convert to new primitive type --- (limited to 'TurtleArt/tajail.py') diff --git a/TurtleArt/tajail.py b/TurtleArt/tajail.py index 40517cd..1a89f1d 100644 --- a/TurtleArt/tajail.py +++ b/TurtleArt/tajail.py @@ -27,24 +27,14 @@ from math import * def myfunc(f, args): ''' Run inline Python code ''' # check to make sure no import calls are made - if len(args) == 1: - myf = 'def f(x): return ' + f.replace('import', '') - userdefined = {} - exec myf in globals(), userdefined - return userdefined.values()[0](args[0]) - elif len(args) == 2: - myf = 'def f(x, y): return ' + f.replace('import', '') - userdefined = {} - exec myf in globals(), userdefined - return userdefined.values()[0](args[0], args[1]) - elif len(args) == 3: - myf = 'def f(x, y, z): return ' + f.replace('import', '') - userdefined = {} - exec myf in globals(), userdefined - return userdefined.values()[0](args[0], args[1], args[2]) - - -def myfunc_import(parent, f, x): + params = ", ".join(['x', 'y', 'z'][:len(args)]) + myf = ''.join(['def f(', params, '): return ', f.replace('import', '')]) + userdefined = {} + exec myf in globals(), userdefined + return userdefined.values()[0](*args) + + +def myfunc_import(parent, f, args): ''' Run Python code imported from Journal ''' if 'def myblock(lc,' in f: base_class = parent.tw.lc # pre-v107, we passed lc @@ -53,7 +43,7 @@ def myfunc_import(parent, f, x): userdefined = {} try: exec f in globals(), userdefined - return userdefined['myblock'](base_class, x) + return userdefined['myblock'](base_class, args) except: traceback.print_exc() return None -- cgit v0.9.1