[Python-ideas] Adding 'bytes' as alias for 'latin_1' codec.
INADA Naoki
songofacandy at gmail.com
Fri May 27 08:14:57 CEST 2011
On Fri, May 27, 2011 at 2:24 PM, Nick Coghlan <ncoghlan at gmail.com> wrote:
> On Fri, May 27, 2011 at 12:02 PM, INADA Naoki <songofacandy at gmail.com> wrote:
>> Then, I hope bytes has a fast and efficient "format" method like:
>>>>> b'{0} {1}'.format(23, b'foo') # accepts int, float, bytes, bool, None
>> 23 foo
>>>>> b'{0}'.format('foo') # raises TypeError for other types.
>> TypeError
>
> What method is invoked to convert the numbers to text?
Doesn't invoke any methods. Please imagine stdio's pritnf.
> What encoding
> is used to convert those numbers to text?
> How does this operation
> avoid also converting the *bytes* object to text and then reencoding
> it?
I've wrote a wrong example.
>>>>> b'{0} {1}'.format(23, b'foo') # accepts int, float, bytes, bool, None
>> 23 foo
This should be b'23 foo'. Numbers encoded by ascii.
>
> Bytes are not text. Struggling against that is a recipe for making
> life hard for yourself in Python 3.
I love unicode and use unicode when I can use it.
But this is a problem in the real world.
For example, Python 2 is convenient for analyzing line based logs
containing some different encodings. Python 3
>
> That said, there *may* still be a place for bytes.format(). However,
> proper attention needs to be paid to the encoding issues, and the
> question of how arbitrary types can be supported (including how to
> handle the fast path for existing bytes() and bytearray() objects).
> The pedagogic cost of making it even harder than it already is to
> convince people that bytes are not text would also need to be
> considered.
>
>> And line buffering in binary mode is also nice.
>
> The Python 3 IO stack already provides b'\n' based line buffering for
> binary files.
But the doc says that "1 to select line buffering (only usable in text mode),"
http://docs.python.org/dev/library/functions.html#open
>
> Cheers,
> Nick.
>
> --
> Nick Coghlan | ncoghlan at gmail.com | Brisbane, Australia
>
--
INADA Naoki <songofacandy at gmail.com>
More information about the Python-ideas
mailing list