-# -*- 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:
"""
- 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')