pycollate: Initial import. Unstable/unfinished uca and syslocale backends. No tests...
[python-collate.git] / collate / __init__.py
1 import locale
2
3 import collate.errors
4
5 try:
6 import collate.syslocale as default
7 import collate.uca as default
8 import collate.icu as default
9 except ImportError:
10 pass
11
12 collator = None
13
14 def set_locale(locale_code, strict=False):
15 global collator
16
17 if collator is None or collator.locale != locale_code:
18 try:
19 collator = default.Collator(locale_code, strict)
20 except collate.errors.InvalidLocaleError:
21 if strict:
22 raise
23 else:
24 default_locale = locale.getdefaultlocale()[0]
25 try:
26 collator = default.Collator(default_locale, strict)
27 except collate.errors.InvalidLocaleError:
28 if not collator:
29 raise
30
31 def get_locale():
32 return collator.locale
33
34 def set_backend(backend, strict=False):
35 pass
36
37 def key(string):
38 return collator.key(string)
39
40 set_locale(locale.getdefaultlocale()[0])