[pypy-dev] pypy sandbox
Dalius Dobravolskas
dalius.dobravolskas at gmail.com
Sun Feb 22 20:57:22 CET 2009
Hello,
Dalius Dobravolskas wrote:
> 1. I'm running my code behind Apache mod_wsgi. As you might know
> mod_wsgi is very strict WSGI implementation. pypy_interact failed when
> was calling isatty function (mod_wsgi.Log does not have this
> function). I have fixed that by adding "'isatty in dir(log)". I will
> give later exact locations and names if I have confused them
Here is traceback from this situation:
Traceback (most recent call last):, referer: http://py.sandbox.lt/
File "/home/dalius/wsgi/pypysandboxserver.py", line 25, in __call__,
referer: http://py.sandbox.lt/
sandproc.interact(stdout=code_output, stderr=code_output), referer:
http://py.sandbox.lt/
File
"/home/dalius/projects/pypy-trunk/pypy/translator/sandbox/sandlib.py",
line 307, in interact, referer: http://py.sandbox.lt/
returncode = self.handle_until_return(), referer: http://py.sandbox.lt/
File
"/home/dalius/projects/pypy-trunk/pypy/translator/sandbox/sandlib.py",
line 228, in handle_until_return, referer: http://py.sandbox.lt/
log.call('%s(%s)' % (fnname,, referer: http://py.sandbox.lt/
File "/home/dalius/projects/pypy-trunk/py/log/producer.py", line 55,
in __call__, referer: http://py.sandbox.lt/
func(self.Message(self.keywords, args)), referer: http://py.sandbox.lt/
File "/home/dalius/projects/pypy-trunk/pypy/tool/ansi_print.py", line
72, in __call__, referer: http://py.sandbox.lt/
file=self.file, newline=newline, flush=flush), referer:
http://py.sandbox.lt/
File "/home/dalius/projects/pypy-trunk/py/io/terminalwriter.py", line
34, in ansi_print, referer: http://py.sandbox.lt/
if esc and sys.platform != "win32" and file.isatty():, referer:
http://py.sandbox.lt/
AttributeError: 'mod_wsgi.Log' object has no attribute 'isatty',
referer: http://py.sandbox.lt/
Here is diff how I have avoided this problem:
--- io/terminalwriter.py (revision 62015)
+++ io/terminalwriter.py (working copy)
@@ -31,7 +31,7 @@
if file is None:
file = sys.stderr
text = text.rstrip()
- if esc and sys.platform != "win32" and file.isatty():
+ if esc and sys.platform != "win32" and 'isatty' in dir(file) and
file.isatty():
if not isinstance(esc, tuple):
esc = (esc,)
text = (''.join(['\x1b[%sm' % cod for cod in esc]) +
Could it be fixed in the code?
Regards,
Dalius
More information about the Pypy-dev
mailing list