From 33de02bc04595ec56fa8ef7c3200dba63c05297b Mon Sep 17 00:00:00 2001 From: Walter Bender Date: Thu, 12 Feb 2009 21:58:53 +0000 Subject: finishing up merge from TAPortfolio --- (limited to 'tajail.py') diff --git a/tajail.py b/tajail.py new file mode 100644 index 0000000..b17190a --- /dev/null +++ b/tajail.py @@ -0,0 +1,37 @@ +#Copyright (c) 2007-9, Playful Invention Company. + +#Permission is hereby granted, free of charge, to any person obtaining a copy +#of this software and associated documentation files (the "Software"), to deal +#in the Software without restriction, including without limitation the rights +#to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +#copies of the Software, and to permit persons to whom the Software is +#furnished to do so, subject to the following conditions: + +#The above copyright notice and this permission notice shall be included in +#all copies or substantial portions of the Software. + +#THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +#IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +#FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +#AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +#LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +#OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +#THE SOFTWARE. + +# a naive approach to running myfun in a jail +import re +from time import * +from math import * +from numpy.oldnumeric import * +from numpy.fft import * + +def myfunc(lc, f, x): + # check to make sure no import calls are made + myf = "def f(x): return " + re.sub("import","",f) + userdefined = {} + try: + exec myf in globals(), userdefined + return userdefined.values()[0](x) + except: + return None + -- cgit v0.9.1