2009-03-15 06:51:39 +00:00
|
|
|
import urllib
|
|
|
|
import re
|
|
|
|
|
2009-07-08 17:04:30 +00:00
|
|
|
from util import hook
|
|
|
|
|
2009-03-16 04:30:46 +00:00
|
|
|
|
2009-03-15 06:51:39 +00:00
|
|
|
re_lineends = re.compile(r'[\r\n]*')
|
|
|
|
|
2009-04-18 00:57:18 +00:00
|
|
|
|
2009-03-16 04:30:46 +00:00
|
|
|
@hook.command
|
2009-11-19 01:49:51 +00:00
|
|
|
def py(inp):
|
2009-11-19 03:20:59 +00:00
|
|
|
".py <prog> -- executes python code <prog>"
|
|
|
|
|
|
|
|
if not inp:
|
|
|
|
return py.__doc__
|
|
|
|
|
2009-03-15 06:51:39 +00:00
|
|
|
res = urllib.urlopen("http://eval.appspot.com/eval?statement=%s" %
|
2009-11-19 01:49:51 +00:00
|
|
|
urllib.quote(inp.strip(), safe='')).readlines()
|
2009-03-15 06:51:39 +00:00
|
|
|
if len(res) == 0:
|
|
|
|
return
|
|
|
|
res[0] = re_lineends.split(res[0])[0]
|
|
|
|
if not res[0] == 'Traceback (most recent call last):':
|
|
|
|
return res[0]
|
|
|
|
else:
|
|
|
|
return res[-1]
|