diff options
author | Pootle daemon <pootle@pootle.sugarlabs.org> | 2011-06-13 14:23:40 (GMT) |
---|---|---|
committer | Pootle daemon <pootle@pootle.sugarlabs.org> | 2011-06-13 14:23:40 (GMT) |
commit | 86e2111461fab98d8c188d50ec8bd0c72c527f73 (patch) | |
tree | 6976b1ce163cb60586011951d748177e3663e937 /TurtleArt/tajail.py | |
parent | d0bcef61b8ca9b8ef0066a891819dba950764d40 (diff) | |
parent | c9b92a2a244430c677b2e27645a23c082c6c8188 (diff) |
Merge branch 'master' of git.sugarlabs.org:turtleart/mainline
Diffstat (limited to 'TurtleArt/tajail.py')
-rw-r--r-- | TurtleArt/tajail.py | 13 |
1 files changed, 9 insertions, 4 deletions
diff --git a/TurtleArt/tajail.py b/TurtleArt/tajail.py index 081248f..0444dc7 100644 --- a/TurtleArt/tajail.py +++ b/TurtleArt/tajail.py @@ -19,14 +19,14 @@ #THE SOFTWARE. # A naive approach to running myfunc in a jail -import logging -_logger = logging.getLogger('turtleart-activity') import traceback from time import * from math import * +from gettext import gettext as _ 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', '') @@ -45,11 +45,16 @@ def myfunc(f, args): return userdefined.values()[0](args[0], args[1], args[2]) -def myfunc_import(lc, f, x): +def myfunc_import(parent, f, x): + ''' Run Python code imported from Journal ''' + if 'def myblock(lc,' in f: + base_class = parent.tw.lc # pre-v107, we passed lc + else: + base_class = parent.tw # as of v107, we pass tw userdefined = {} try: exec f in globals(), userdefined - return userdefined['myblock'](lc, x) + return userdefined['myblock'](base_class, x) except: traceback.print_exc() return None |