[Distutils] Are chained comparisons allowed in environment markers?
PJ Eby
pje at telecommunity.com
Sun Apr 28 20:46:41 CEST 2013
On Sun, Apr 28, 2013 at 5:12 AM, Vinay Sajip <vinay_sajip at yahoo.co.uk> wrote:
>
> I must be missing something - why not something like
>
> def ensure_unicode(s):
> if not isinstance(s, text_type): s = s.decode('unicode_escape')
> return s
>
> assuming you only ever pass bytestrings or Unicode in s, and text_type is unicode on 2.x and str on 3.x?
Because I don't *have* unicode in 2.x, only bytes. All the values
coming from os, platform, etc. are bytes, and they don't necessarily
have a specified encoding. For that matter, the strings I'm parsing
are also bytes, with no specified encoding. Going to unicode is an
invitation to platform-specific or machine-specific encoding errors.
> Sadly, some type checking is unavoidable if you can't control what people pass in to your code, but it seems easy enough to deal with from a pragmatic point of view.
It's not the type that's the problem, it's the *contents* that make a
difference here.
More information about the Distutils-SIG
mailing list