From 7de0d034965317492da772ab28870ab00edbcb1f Mon Sep 17 00:00:00 2001 From: Walter Bender Date: Tue, 16 Mar 2010 13:53:42 +0000 Subject: added traceback --- (limited to 'tajail.py') diff --git a/tajail.py b/tajail.py index 366bd62..091557b 100644 --- a/tajail.py +++ b/tajail.py @@ -19,12 +19,15 @@ #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 * try: from numpy import * except ImportError: - pass + _logger.error("could not import numpy") def myfunc(f, args): # check to make sure no import calls are made @@ -35,6 +38,7 @@ def myfunc(f, args): exec myf in globals(), userdefined return userdefined.values()[0](args[0]) except: + traceback.print_exc() return None elif len(args) == 2: myf = "def f(x,y): return " + f.replace("import","") @@ -43,6 +47,7 @@ def myfunc(f, args): exec myf in globals(), userdefined return userdefined.values()[0](args[0],args[1]) except: + traceback.print_exc() return None elif len(args) == 3: myf = "def f(x,y,z): return " + f.replace("import","") @@ -51,10 +56,14 @@ def myfunc(f, args): exec myf in globals(), userdefined return userdefined.values()[0](args[0],args[1],args[2]) except: + traceback.print_exc() return None def myfunc_import(lc, f, x): userdefined = {} - exec f in globals(), userdefined - return userdefined['myblock'](lc, x) - + try: + exec f in globals(), userdefined + return userdefined['myblock'](lc, x) + except: + traceback.print_exc() + return None -- cgit v0.9.1