Martin v. Loewis wrote: > "M.-A. Lemburg" <mal@lemburg.com> writes: > > >>>In case the stream is "natively" Unicode (i.e. doesn't ever convert to >>>byte strings), setting encoding to None should be allowed (this >>>actually indicates that StringIO should have the encoding attribute). >> >>-1 >> >>The presence of .encoding should indicate that it is >>safe to write Unicode objects to .write(). Let the stream >>decide what to do with the Unicode object (e.g. it would >>probably encode the Unicode object using the .encoding >>and only then write it to the outside world). > > > So should StringIO object have an .encoding attribute or not? > > If not, should > > f = StringIO.StringIO() > print >>f,x > > try to invoke Unicode conversion or not? StringIO should be considered a non-Unicode aware stream, so it should not implement .encoding. Instead, PyFile_WriteObject() will simply call __str__ on the Unicode object and thus use the default encoding for conversion (this is what StringIO does currently). If somebody wants to use a StringIO object as Unicode aware stream, the tools in codecs.py can be used for this (basically by doing the same kind of wrapping as codecs.open() does). > If it should, how should it > find out that this is safe to do? -- Marc-Andre Lemburg CEO eGenix.com Software GmbH _______________________________________________________________________ eGenix.com -- Makers of the Python mx Extensions: mxDateTime,mxODBC,... Python Consulting: http://www.egenix.com/ Python Software: http://www.egenix.com/files/python/
RetroSearch is an open source project built by @garambo | Open a GitHub Issue
Search and Browse the WWW like it's 1997 | Search results from DuckDuckGo
HTML:
3.2
| Encoding:
UTF-8
| Version:
0.7.4