Web   ·   Wiki   ·   Activities   ·   Blog   ·   Lists   ·   Chat   ·   Meeting   ·   Bugs   ·   Git   ·   Translate   ·   Archive   ·   People   ·   Donate
summaryrefslogtreecommitdiffstats
path: root/tajail.py
diff options
context:
space:
mode:
authorWalter Bender <walter@sugarlabs.org>2010-03-16 13:53:42 (GMT)
committer Walter Bender <walter@sugarlabs.org>2010-03-16 13:53:42 (GMT)
commit7de0d034965317492da772ab28870ab00edbcb1f (patch)
tree3ec3ec21facc7a74c8c67c1d3d301cae3430205e /tajail.py
parentcc50109f47e29dc7aa75887a8cfb0d8412d22c76 (diff)
added traceback
Diffstat (limited to 'tajail.py')
-rw-r--r--tajail.py17
1 files changed, 13 insertions, 4 deletions
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