On Sun, Apr 28, 2013 at 5:12 AM, Vinay Sajip <[email protected]> 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.
_______________________________________________
Distutils-SIG maillist  -  [email protected]
http://mail.python.org/mailman/listinfo/distutils-sig

Reply via email to