diff options
author | Walter Bender <walter@sugarlabs.org> | 2013-11-13 22:42:18 (GMT) |
---|---|---|
committer | Walter Bender <walter@sugarlabs.org> | 2013-11-13 22:42:18 (GMT) |
commit | 6acdbc3db543f2692ee336a99722f5ab0b46c77e (patch) | |
tree | 97b84e77c63bddeb49bcb804e25e2457008f6a8d /TurtleArt/tajail.py | |
parent | 3865e3c912f70fd7fcef2d20831a0231d30d96f1 (diff) |
convert to new primitive type
Diffstat (limited to 'TurtleArt/tajail.py')
-rw-r--r-- | TurtleArt/tajail.py | 28 |
1 files changed, 9 insertions, 19 deletions
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 |