[Python-Dev] PEP 538 warning at startup: please remove it (original) (raw)
Victor Stinner victor.stinner at gmail.com
Tue Jun 13 05:48:11 EDT 2017
- Previous message (by thread): [Python-Dev] PEP 538 warning at startup: please remove it
- Next message (by thread): [Python-Dev] PEP 538 warning at startup: please remove it
- Messages sorted by: [ date ] [ thread ] [ subject ] [ author ]
2017-06-13 8:51 GMT+02:00 Nick Coghlan <ncoghlan at gmail.com>:
If we turned the warning off by default, but retained an easy "on-switch" for the warning to help track places where locale coercion is triggering unexpectedly (e.g. "PYTHONCOERCECLOCALE=warn"), that would probably give us the best of both worlds.
Hum, it reminds me when I proposed to add a new "locale" encoding which would be used to explicitly use the locale encoding. My intent was to emit a warning when the locale encoding was used implicitely... The problem is that the locale encoding is basically used everywhere in the standard library and it's fine :-)
Really, using the locale encoding is the right encoding is many use cases. Especially when you work on Windows!
Ok, when I proposed the idea, distutils still needed to use UTF-8 explicitly instead of the implicit locale encoding, but you may know how painful it was to change anything in distutils: write a PEP and/or discuss it on distutils-sig, handle backward compatibility, etc. The good news is that these issues are now fixed :-)
--
While I'm not opposed to PYTHONCOERCECLOCALE=warn, I'm not sure that developers will use it. Usually, developers don't care of Unicode until enough users complain that their application don't work on a specific configuration on a specific platform :-) So I'm not sure that it's useful.
We already have many PYTHON* environment variables. I'm not sure that all of them are used. We should be careful when adding new ones ;-) https://docs.python.org/dev/using/cmdline.html#environment-variables
It's already possible to implement manually a check in an application to complain if the LC_CTYPE locale "C", no?
haypo at selma$ cat > x.py import locale if locale.setlocale(locale.LC_CTYPE, None) == 'C': print("Don't use the C locale")
haypo at selma$ LANG= python2 x.py Don't use the C locale
haypo at selma$ LANG= python3 x.py Don't use the C locale
Victor
- Previous message (by thread): [Python-Dev] PEP 538 warning at startup: please remove it
- Next message (by thread): [Python-Dev] PEP 538 warning at startup: please remove it
- Messages sorted by: [ date ] [ thread ] [ subject ] [ author ]