[Python-3000] bytes and dicts (was: PEP 3137: Immutable Bytesand Mutable Buffer)

Phillip J. Eby pje at telecommunity.com
Sat Sep 29 23:47:39 CEST 2007


At 12:04 PM 9/29/2007 -0700, Gregory P. Smith wrote:


>On 9/29/07, Jeffrey Yasskin 
><<mailto:jyasskin at gmail.com>jyasskin at gmail.com> wrote:
>On 9/29/07, Phillip J. Eby 
><<mailto:pje at telecommunity.com>pje at telecommunity.com> wrote:
> > At 07:33 AM 9/29/2007 -0700, Guido van Rossum wrote:
> > >Until just before 3.0a1, they were unequal. We decided to raise
> > >TypeError because we noticed many bugs in code that was doing things
> > >like
> > >
> > >   data = f.read(4096)
> > >   if data == "": break
> >
> > Thought experiment: what if read() always returned strings, and to
> > read bytes, you had to use something like 'f.readinto(ob, 4096)',
> > where 'ob' is a mutable bytes instance or memory view?
>
>
>Using what encoding?  read() should raise an exception on a file 
>opened as binary in that case.

Yes, that's what I meant -- the availability of read() and readinto() 
would be mutually exclusive.


>   And instead of readinto() how about readbytes() that just returns 
> bytes and raises an exception on non-binary mode files.

Sure.


>   (readinto for buffers is a good idea and i think we should have 
> it but that idea could be taken further to allow for even more 
> scattered IO into a mutable buffer; thats another discussion and 
> should be a PEP of its own)

Fair enough, although readbytes() can be implemented in terms of 
readinto(), while the reverse isn't the case.



More information about the Python-3000 mailing list