This issue tracker has been migrated to GitHub, and is currently read-only.
For more information, see the GitHub FAQs in the Python's Developer Guide.

classification
Title: self.writer.closed() extraneous parens in BufferedRWPair of io module
Type: behavior Stage:
Components: Library (Lib) Versions: Python 2.6
process
Status: closed Resolution: out of date
Dependencies: Superseder:
Assigned To: Nosy List: amaury.forgeotdarc, jimo555
Priority: normal Keywords:

Created on 2009-03-26 17:35 by jimo555, last changed 2022-04-11 14:56 by admin. This issue is now closed.

Files
File name Uploaded Description Edit
ioex.py jimo555, 2009-03-26 17:35 io module example test
Messages (2)
msg84190 - (view) Author: Jim Olson (jimo555) Date: 2009-03-26 17:35
import io


# Corrected a typo in Python261/Lib/io.py at line 1167
# return self.writer.closed() ==> return self.writer.closed
# in
#    @property
#    def closed(self):
#        return self.writer.closed

#also: shouldn't ascii strings still work in Python 2.6.1 for
#StringIO and TextIO? As shown below, writes only work with unicode strings.
#Python 3 changes default encoding to utf-8 but 2.6.1 is still ascii:
#>>> import sys
#>>> sys.getdefaultencoding()
#'ascii'

# Sorry if I am wrong about this.  

ba = buffer('circle')
s = io.StringIO(ba)
print s.getvalue()
#ascii string doesn't work in Python 2.6.1 -- print s.write('square')
print s.write(u'square')
print s.read()
print s.getvalue(), '\n\n'

f = io.FileIO('ioex.txt', 'a+')
r = io.BufferedReader(f)
w = io.BufferedWriter(f)
p = io.BufferedRWPair(r, w)
t = io.TextIOWrapper(p, line_buffering=True)
print t.read(3)
print t.read()
print f.write('julius ceaser\n')
lines = ['william', 'shakespeare', '\n']
f.writelines(' '.join(lines))
#ascii string doesn't work in Python 2.6.1 -- print t.write('marc
anthony\n')
print t.write(u'marc anthony\n')
msg84263 - (view) Author: Amaury Forgeot d'Arc (amaury.forgeotdarc) * (Python committer) Date: 2009-03-27 15:21
The wrong closed() call was corrected with r67923.

Then, the io module is by design very picky about the distinction
between bytes and unicode. This is different from the philosophy of
other parts of the library, but io comes from python 3.0...

StringIO only accepts and return unicode strings; its "default encoding"
of StringIO is an implementation (how the text is stored in memory) and
is even not used anymore in python 3.0
History
Date User Action Args
2022-04-11 14:56:46adminsetgithub: 49818
2009-03-27 15:21:38amaury.forgeotdarcsetstatus: open -> closed

nosy: + amaury.forgeotdarc
messages: + msg84263

resolution: out of date
2009-03-26 17:47:45jimo555setcomponents: + Library (Lib)
2009-03-26 17:35:11jimo555create