Groups | Search | Server Info | Keyboard shortcuts | Login | Register [http] [https] [nntp] [nntps]


Groups > comp.lang.python > #67009

Re: Python 3.5, bytes, and %-interpolation (aka PEP 461)

Date 2014-02-24 16:10 -0800
From Ethan Furman <ethan@stoneleaf.us>
Subject Re: Python 3.5, bytes, and %-interpolation (aka PEP 461)
References <mailman.7328.1393271688.18130.python-list@python.org> <530bdbe2$0$29985$c3e8da3$5496439d@news.astraweb.com>
Newsgroups comp.lang.python
Message-ID <mailman.7333.1393288494.18130.python-list@python.org> (permalink)

Show all headers | View raw


On 02/24/2014 03:55 PM, Steven D'Aprano wrote:
> On Mon, 24 Feb 2014 11:54:54 -0800, Ethan Furman wrote:
>
>> Greetings!
>>
>> A PEP is under discussion to add %-interpolation back to the bytes type
>> in Python 3.5.
>>
>> Assuming the PEP is accepted, what *will* be added back is:
>>
>> Numerics:
>>
>>     b'%d' % 10  --> b'10'
>>     b'%02x' % 10  --> b'0a'
>>
>> Single byte:
>>
>>     b'%c' % 80  --> b'P'
>
> Will %c also accept a length-1 bytes object?
>
> b'%c' % b'x'
> => b'x'

Yes.


>> and generic:
>>
>>     b'%s' % some_binary_blob --> b'tHE*&92h4' (or whatever)
>
> Will b'%s' take any arbitrary object, as in:
>
> b'Key: %s' % [1, 2, 3, 4]
> => b'Key: [1, 2, 3, 4]'

No.

> or only something which is already bytes (i.e. a bytes or bytearray
> object)?

It must already be bytes, or have __bytes__ method (that returns bytes, obviously ;) .


>> What is under debate is whether we should also add %a:
>>
>>     b'%a' % some_obj  --> b'some_obj_repr'
>>
>> What %a would do:
>>
>>     get the repr of some_obj
>>
>>     convert it to ascii using backslashreplace (to handle any code points
>>     over 127)
>>
>>     encode to bytes using 'ascii'
>>
>> Can anybody think of a use-case for this particular feature?
>
> Not me.

I find that humorous, as %a would work with your list example above.  :)

--
~Ethan~

Back to comp.lang.python | Previous | NextPrevious in thread | Next in thread | Find similar | Unroll thread


Thread

Python 3.5, bytes, and %-interpolation  (aka PEP 461) Ethan Furman <ethan@stoneleaf.us> - 2014-02-24 11:54 -0800
  Re: Python 3.5, bytes, and %-interpolation  (aka PEP 461) Marko Rauhamaa <marko@pacujo.net> - 2014-02-24 22:46 +0200
    Re: Python 3.5, bytes, and %-interpolation  (aka PEP 461) random832@fastmail.us - 2014-02-24 16:04 -0500
      Re: Python 3.5, bytes, and %-interpolation  (aka PEP 461) Marko Rauhamaa <marko@pacujo.net> - 2014-02-25 00:18 +0200
        Re: Python 3.5, bytes, and %-interpolation  (aka PEP 461) Steven D'Aprano <steve+comp.lang.python@pearwood.info> - 2014-02-24 23:55 +0000
          Re: Python 3.5, bytes, and %-interpolation  (aka PEP 461) wxjmfauth@gmail.com - 2014-02-25 00:07 -0800
            Re: Python 3.5, bytes, and %-interpolation  (aka PEP 461) Mark Lawrence <breamoreboy@yahoo.co.uk> - 2014-02-25 08:29 +0000
    Re: Python 3.5, bytes, and %-interpolation  (aka PEP 461) Ethan Furman <ethan@stoneleaf.us> - 2014-02-24 13:53 -0800
  Re: Python 3.5, bytes, and %-interpolation  (aka PEP 461) Steven D'Aprano <steve+comp.lang.python@pearwood.info> - 2014-02-24 23:55 +0000
    Re: Python 3.5, bytes, and %-interpolation  (aka PEP 461) Ethan Furman <ethan@stoneleaf.us> - 2014-02-24 16:10 -0800
      Re: Python 3.5, bytes, and %-interpolation  (aka PEP 461) Steven D'Aprano <steve@pearwood.info> - 2014-02-25 07:29 +0000

csiph-web