[Python-ideas] format specifier for "not bytes"
MRAB
python at mrabarnett.plus.com
Sat Aug 25 02:44:17 CEST 2012
On 25/08/2012 00:12, Daniel Holth wrote:
>
> On Aug 24, 2012 6:17 PM, "Paul Moore" <p.f.moore at gmail.com
> <mailto:p.f.moore at gmail.com>> wrote:
> >
> > On 24 August 2012 21:21, Daniel Holth <dholth at gmail.com
> <mailto:dholth at gmail.com>> wrote:
> > > Hi Paul! You could probably guess that this is the wheel digital
> > > signatures package. All the string formatting arguments (I hope) are
> > > now passed to binary() or native() string conversion functions that do
> > > less on Python 2.7 than on Python 3.
> >
> > One point that this raises. Any such "string-only" format spec would
> > only be available in Python 3.4+, and almost certainly only in
> > format(). So if you're interested in something that works across
> > Python 2 and 3, you wouldn't be able to use it anyway (and something
> > like the must_be_str function is probably your best bet). On the other
> > hand, if you're targeting 3.4+ only, the bytes/string code is probably
> > cleaner (that being a lot of the point of the Python 3 exercise :-))
> > and so the need for a string-only spec may be a lot less.
> >
> > I dunno. I haven't hit a lot of encoding type issues myself, so I
> > don't have much background in what might help. OTOH, what I *have*
> > found is that the change in thinking that Python 3's approach pushes
> > onto me (encode/decode at the edges and use str consistently
> > internally, plus never gloss over the fact that you have to know an
> > encoding to convert bytes <-> str) fixes a lot of "problems" I thought
> > I was having...
>
> That's the core of it. You can convert bytes to string without knowing
> the encoding. "%s" % bytes. But instead of failing or converting from
> ascii it does something totally useless. I argue that this is a bug, and
> an alternative 'anything except bytes' should be available. Not so hot
> on the competing only-str idea.
>
"Totally useless"? Is it any more "useless" than what happens to lists,
dicts, sets, etc?
More information about the Python-ideas
mailing list