From 37ef9073a6d8676a5c2cb0f3cf4105c60af77469 Mon Sep 17 00:00:00 2001 From: =?utf8?q?=C5=81ukasz=20Rekucki?= Date: Fri, 2 Oct 2009 11:38:44 +0200 Subject: [PATCH] Fix --- apps/api/handlers/library_handlers.py | 3 +-- apps/api/urls.py | 1 - apps/api/utils.py | 13 ++++++++++--- lib/wlrepo/mercurial_backend/library.py | 2 +- 4 files changed, 12 insertions(+), 7 deletions(-) diff --git a/apps/api/handlers/library_handlers.py b/apps/api/handlers/library_handlers.py index 1cdbe53a..0f5b6d64 100644 --- a/apps/api/handlers/library_handlers.py +++ b/apps/api/handlers/library_handlers.py @@ -60,8 +60,7 @@ class LibraryHandler(BaseHandler): documents = {} - for docid in lib.documents(): - docid = docid.decode('utf-8') + for docid in lib.documents(): documents[docid] = { 'url': reverse('document_view', args=[docid]), 'name': docid, diff --git a/apps/api/urls.py b/apps/api/urls.py index c5b0986d..773ef8cb 100644 --- a/apps/api/urls.py +++ b/apps/api/urls.py @@ -2,7 +2,6 @@ __author__="lreqc" __date__ ="$2009-09-17 16:16:54$" from django.conf.urls.defaults import * - from api.resources import * FORMAT = r"\.(?Pxml|json|yaml)" 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 diff --git a/lib/wlrepo/mercurial_backend/library.py b/lib/wlrepo/mercurial_backend/library.py index e28bd7ee..f033fce0 100644 --- a/lib/wlrepo/mercurial_backend/library.py +++ b/lib/wlrepo/mercurial_backend/library.py @@ -70,7 +70,7 @@ class MercurialLibrary(wlrepo.Library): def documents(self): - return [ key[5:] for key in \ + return [ key[5:].decode('utf-8') for key in \ self._hgrepo.branchmap() if key.startswith("$doc:") ] @property -- 2.20.1