On Mar 7, 10:12 am, [EMAIL PROTECTED] wrote:
> I have various bits of code I want to interpret and run at runtime in
> eval ...
import sys
from time import clock, sleep
from threading import Timer
TimeoutError= type('TimeoutError',(Exception,),{})
class Elapse:
def __init__( self ):
self.flag= False
def set( self ):
self.flag= True
def tr( frame, event, arg ):
if elapse.flag:
raise TimeoutError
return tr
def sleeper():
while 1:
sleep( .3 )
print( 'tick' )
def factercomp( n ):
val= 1
for i in range( 1, n ):
val*= i
return val
def facter( n ):
print( factercomp( n ) )
def runit( f, *ar ):
global elapse
elapse= Elapse()
t= Timer( 1, elapse.set )
t.start()
sys.settrace( tr )
try:
f( *ar )
except TimeoutError:
print( 'time elapse' )
runit( sleeper )
runit( facter, 10 )
runit( facter, 20 )
runit( facter, 10000 )
runit( facter, 100000 )
'''
tick
tick
tick
time elapse
362880
121645100408832000
time elapse
time elapse
'''
--
http://mail.python.org/mailman/listinfo/python-list