On 6/20/07, Bill Janssen <[EMAIL PROTECTED]> wrote:
> Yes, of course, Daniel, but I was speaking of the contents of files,
> and files are inherently sequences of bytes.  If we are talking about
> some layer which interprets the contents of a file, just saying "give
> me N characters" isn't enough.  We need to say, "N characters assuming
> a text encoding of M, with a normalization policy of Q, and a newline
> policy of R".  If we don't, we can't just "read" N characters safely.
> So I think it's broken to put this in the TextIOBase class; instead,
> there should be some wrapper class that does buffering and can be
> configured as to (M, Q, R).

The PEP specifies that TextIOWrapper objects (the primary
implementation of the TextIOBase interface) are created via the
following signature:

    .__init__(self, buffer, encoding=None, newline=None)

In other words, TextIOBase *is* the wrapper type that does the
buffering and allows the user to configure M and R.

Are you suggesting that TextIOBase should be split into two classes,
one of which provides the (M, R) functionality and one of which does
not?  If so, how would the later be different from the RawIOBase and
BufferedIOBase classes, already described in the PEP?

I'm not sure I 100% understand what you mean by "normalization policy"
(Q).  Could you give an example?

-- 
Daniel Stutzbach, Ph.D.             President, Stutzbach Enterprises LLC
_______________________________________________
Python-3000 mailing list
Python-3000@python.org
http://mail.python.org/mailman/listinfo/python-3000
Unsubscribe: 
http://mail.python.org/mailman/options/python-3000/archive%40mail-archive.com

Reply via email to