X-Git-Url: https://git.mdrn.pl/redakcja.git/blobdiff_plain/dc3368dad09fa4acb4cc480845f0ff3edc126483..37ef9073a6d8676a5c2cb0f3cf4105c60af77469:/apps/api/utils.py diff --git a/apps/api/utils.py b/apps/api/utils.py index c072d356..f6d9b1b5 100644 --- a/apps/api/utils.py +++ b/apps/api/utils.py @@ -62,9 +62,16 @@ import locale NAT_EXPR = re.compile(r'(\d+)', re.LOCALE | re.UNICODE) def natural_order(get_key=lambda x: x): - def getter(key): - key = [int(x) if n%2 else locale.strxfrm(x.encode('utf-8')) for (n,x) in enumerate(NAT_EXPR.split(get_key(key))) ] - return key + def getter(key): + nkey = get_key(key) + if not isinstance(key, unicode): + ukey = key.decode('utf-8') + else: + ukey = nkey + + parts = enumerate( NAT_EXPR.split(ukey)) + return [int(x) if n%2 else locale.strxfrm(x.encode('utf-8')) for (n,x) in parts ] + return getter