Terry J. Reedy <tjre...@udel.edu> added the comment:

I agree that the _RPCFile wrapping of the stdin proxy should be undone unless 
and until there is a positive reason for it -- it solves a problem -- and it is 
better tested. But reversion does not solve pre-existing problems. As noted by 
Roger, sys.stdin writes, which it should not do. Worse, when directly used, it 
does not read, which it should do.

>>> sys.stdin
<idlelib.rpc.RPCProxy object at 0x0000000003282470>
>>> dir(sys.stdin)
['_RPCProxy__attributes', '_RPCProxy__getattributes', '_RPCProxy__getmethods', 
'_RPCProxy__methods', '__class__', '__delattr__', '__dict__', '__dir__', 
'__doc__', '__eq__', '__format__', '__ge__', '__getattr__', '__getattribute__', 
'__gt__', '__hash__', '__init__', '__le__', '__lt__', '__module__', '__ne__', 
'__new__', '__qualname__', '__reduce__', '__reduce_ex__', '__repr__', 
'__setattr__', '__sizeof__', '__str__', '__subclasshook__', '__weakref__', 
'encoding', 'oid', 'sockio']
>>> sys.stdin.write('abc')
abc
>>> sys.stdin.read()
Traceback (most recent call last):
  File "<pyshell#4>", line 1, in <module>
    sys.stdin.read()
AttributeError: read

versus, in command interpreter (Win7,3.3.0b0)

>>> sys.stdin.read()
abcdefg
^Z
'abcdefg\n'
>>> sys.stdin.write('abc')
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
io.UnsupportedOperation: not writable

Same difference for readlines and writelines. I wonder how input works if it 
does not call sys.stdin.read()

I found this in rpc.py:
# XXX KBK 09Sep03  We need a proper unit test for this module.
# Previously existing test code was removed at Rev 1.27 (r34098).

----------
stage:  -> needs patch
versions: +Python 3.2

_______________________________________
Python tracker <rep...@bugs.python.org>
<http://bugs.python.org/issue15319>
_______________________________________
_______________________________________________
Python-bugs-list mailing list
Unsubscribe: 
http://mail.python.org/mailman/options/python-bugs-list/archive%40mail-archive.com

Reply via email to