[issue7644] bug in nntplib.body() method with possible fix
Michael Mullins
report at bugs.python.org
Wed Jan 6 11:29:14 CET 2010
New submission from Michael Mullins <pabloonbreak at gmail.com>:
When using NNTP.body(id,file) I get the following repeatable error:
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
File "nntplib.py", line 436, in body
return self.artcmd('BODY {0}'.format(id), file)
File "nntplib.py", line 410, in artcmd
resp, list = self.longcmd(line, file)
File "nntplib.py", line 267, in longcmd
return self.getlongresp(file)
File "nntplib.py", line 249, in getlongresp
file.write(line + b'\n')
File "/usr/lib/python3.0/io.py", line 1478, in write
s.__class__.__name__)
TypeError: can't write bytes to text stream
But by simply changing the line
openedFile = file = open(file, "w")
...to...
openedFile = file = open(file, "wb")
...in the following code:
def getlongresp(self, file=None):
"""Internal: get a response plus following text from the server.
Raise various errors if the response indicates an error."""
openedFile = None
try:
# If a string was passed then open a file with that name
if isinstance(file, str):
openedFile = file = open(file, "wb")
...it seems to fix the problem. I discovered this in 3.0, but downloading and inspecting the source for 3.1 shows the same problem.
MDMullins
----------
messages: 97301
nosy: mdmullins
severity: normal
status: open
title: bug in nntplib.body() method with possible fix
versions: Python 3.1
_______________________________________
Python tracker <report at bugs.python.org>
<http://bugs.python.org/issue7644>
_______________________________________
More information about the Python-bugs-list
mailing list