X-Git-Url: https://git.mdrn.pl/wolnelektury.git/blobdiff_plain/357027375ff8867f42ca34bcbfb5a78b5b185fc3..7010b5cb6b4e4380d9e23add9c7c98431b6e3f95:/src/sortify.py diff --git a/src/sortify.py b/src/sortify.py index 642a5403f..027860186 100644 --- a/src/sortify.py +++ b/src/sortify.py @@ -1,18 +1,20 @@ -# -*- coding: utf-8 -*- +# This file is part of Wolnelektury, licensed under GNU Affero GPLv3 or later. +# Copyright © Fundacja Nowoczesna Polska. See NOTICE for more information. +# import re -from fnpdjango.utils.text.slughifi import char_map +from fnpdjango.utils.text import char_map # Specifies diacritics order. # Default order is zero, max is 9 char_order = { - u'ż': 1, u'Ż': 1, + 'ż': 1, 'Ż': 1, } def replace_char(m): char = m.group() - if char_map.has_key(char): + if char in char_map: order = char_order.get(char, 0) return "%s~%d" % (char_map[char], order) else: @@ -33,12 +35,12 @@ def sortify(value): """ - if not isinstance(value, unicode): - value = unicode(value, 'utf-8') + if not isinstance(value, str): + value = str(value, 'utf-8') # try to replace chars - value = re.sub('[^a-zA-Z0-9\\s\\-]{1}', replace_char, value) + value = re.sub('[^a-zA-Z0-9\\s\\-]', replace_char, value) value = value.lower() value = re.sub(r'[^a-z0-9~]+', ' ', value) - return value.encode('ascii', 'ignore') + return value.encode('ascii', 'ignore').decode('ascii')