Tim Golden <m...@timgolden.me.uk> added the comment:

Ok; so basically this doesn't work:

<code>
import locale
locale.setlocale(locale.LC_CTYPE, locale.getdefaultlocale())
</code>

It gives "locale.Error: unsupported locale setting" which comes from 
https://github.com/python/cpython/blob/master/Modules/_localemodule.c#L107

(For locale.getdefaultlocale() you could substitute locale.getlocale() or 
simply ("en_GB", "cp1252")). On my machine it raises that exception on Python 
2.7.15, 3.6.6 and on master. 

Interestingly, none of the other tests in test_locale appear to exercise the 
2-tuple 2nd param to setlocale. When you call setlocale and it returns the 
previous setting, it's a single string, eg "en_GB" etc. Passing that back in 
works. But when you call getlocale, it returns the 2-tuple, eg ("en_GB", 
"cp1252"). But all the other tests use the setlocale-returns-current trick for 
their setup/teardown.

I've quickly tested on 3.5 on Linux and the 2-tuple version works ok. I assume 
it's working on buildbots or we'd see the Turkish test failing every time. So 
is there something different about my C runtime, I wonder?

----------

_______________________________________
Python tracker <rep...@bugs.python.org>
<https://bugs.python.org/issue37945>
_______________________________________
_______________________________________________
Python-bugs-list mailing list
Unsubscribe: 
https://mail.python.org/mailman/options/python-bugs-list/archive%40mail-archive.com

Reply via email to