[Top][All Lists]
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[Maposmatic-dev] [PATCH] Indexer: capitalize each letter in index
From: |
gael . utard |
Subject: |
[Maposmatic-dev] [PATCH] Indexer: capitalize each letter in index |
Date: |
Fri, 30 Mar 2012 12:23:11 +0200 |
From: Gael UTARD <address@hidden>
Signed-off-by: Gael UTARD <address@hidden>
---
ocitysmap2/i18n.py | 58 ++++++++++++++++++++--------------------
ocitysmap2/indexlib/indexer.py | 3 +-
2 files changed, 31 insertions(+), 30 deletions(-)
diff --git a/ocitysmap2/i18n.py b/ocitysmap2/i18n.py
index 49cf7ee..17fd1c9 100644
--- a/ocitysmap2/i18n.py
+++ b/ocitysmap2/i18n.py
@@ -106,7 +106,7 @@ class i18n_fr_generic(i18n):
"|".join(DETERMINANTS)), re.IGNORECASE
| re.UNICODE)
- # for IndexPageGenerator._upper_unaccent_string
+ # for IndexPageGenerator.upper_unaccent_string
E_ACCENT = re.compile(ur"[éèêëẽ]", re.IGNORECASE | re.UNICODE)
I_ACCENT = re.compile(ur"[íìîïĩ]", re.IGNORECASE | re.UNICODE)
A_ACCENT = re.compile(ur"[áàâäã]", re.IGNORECASE | re.UNICODE)
@@ -117,7 +117,7 @@ class i18n_fr_generic(i18n):
self.language = str(language)
_install_language(language, locale_path)
- def _upper_unaccent_string(self, s):
+ def upper_unaccent_string(self, s):
s = self.E_ACCENT.sub("e", s)
s = self.I_ACCENT.sub("i", s)
s = self.A_ACCENT.sub("a", s)
@@ -135,7 +135,7 @@ class i18n_fr_generic(i18n):
return name
def first_letter_equal(self, a, b):
- return self._upper_unaccent_string(a) == self._upper_unaccent_string(b)
+ return self.upper_unaccent_string(a) == self.upper_unaccent_string(b)
class i18n_it_generic(i18n):
APPELLATIONS = [ u"Via", u"Viale", u"Piazza", u"Scali", u"Strada",
u"Largo",
@@ -150,7 +150,7 @@ class i18n_it_generic(i18n):
"|".join(DETERMINANTS)), re.IGNORECASE
| re.UNICODE)
- # for IndexPageGenerator._upper_unaccent_string
+ # for IndexPageGenerator.upper_unaccent_string
E_ACCENT = re.compile(ur"[éèêëẽ]", re.IGNORECASE | re.UNICODE)
I_ACCENT = re.compile(ur"[íìîïĩ]", re.IGNORECASE | re.UNICODE)
A_ACCENT = re.compile(ur"[áàâäã]", re.IGNORECASE | re.UNICODE)
@@ -161,7 +161,7 @@ class i18n_it_generic(i18n):
self.language = str(language)
_install_language(language, locale_path)
- def _upper_unaccent_string(self, s):
+ def upper_unaccent_string(self, s):
s = self.E_ACCENT.sub("e", s)
s = self.I_ACCENT.sub("i", s)
s = self.A_ACCENT.sub("a", s)
@@ -179,7 +179,7 @@ class i18n_it_generic(i18n):
return name
def first_letter_equal(self, a, b):
- return self._upper_unaccent_string(a) == self._upper_unaccent_string(b)
+ return self.upper_unaccent_string(a) == self.upper_unaccent_string(b)
class i18n_es_generic(i18n):
APPELLATIONS = [ u"Avenida", u"Avinguda", u"Calle", u"Callejón",
@@ -195,7 +195,7 @@ class i18n_es_generic(i18n):
"|".join(DETERMINANTS)), re.IGNORECASE
| re.UNICODE)
- # for IndexPageGenerator._upper_unaccent_string
+ # for IndexPageGenerator.upper_unaccent_string
E_ACCENT = re.compile(ur"[éèêëẽ]", re.IGNORECASE | re.UNICODE)
I_ACCENT = re.compile(ur"[íìîïĩ]", re.IGNORECASE | re.UNICODE)
A_ACCENT = re.compile(ur"[áàâäã]", re.IGNORECASE | re.UNICODE)
@@ -207,7 +207,7 @@ class i18n_es_generic(i18n):
self.language = str(language)
_install_language(language, locale_path)
- def _upper_unaccent_string(self, s):
+ def upper_unaccent_string(self, s):
s = self.E_ACCENT.sub("e", s)
s = self.I_ACCENT.sub("i", s)
s = self.A_ACCENT.sub("a", s)
@@ -226,7 +226,7 @@ class i18n_es_generic(i18n):
return name
def first_letter_equal(self, a, b):
- return self._upper_unaccent_string(a) == self._upper_unaccent_string(b)
+ return self.upper_unaccent_string(a) == self.upper_unaccent_string(b)
class i18n_ca_generic(i18n):
@@ -319,7 +319,7 @@ class i18n_ca_generic(i18n):
"|".join(DETERMINANTS)), re.IGNORECASE
| re.UNICODE)
- # for IndexPageGenerator._upper_unaccent_string
+ # for IndexPageGenerator.upper_unaccent_string
E_ACCENT = re.compile(ur"[éèêëẽ]", re.IGNORECASE | re.UNICODE)
I_ACCENT = re.compile(ur"[íìîïĩ]", re.IGNORECASE | re.UNICODE)
A_ACCENT = re.compile(ur"[áàâäã]", re.IGNORECASE | re.UNICODE)
@@ -332,7 +332,7 @@ class i18n_ca_generic(i18n):
self.language = str(language)
_install_language(language, locale_path)
- def _upper_unaccent_string(self, s):
+ def upper_unaccent_string(self, s):
s = self.E_ACCENT.sub("e", s)
s = self.I_ACCENT.sub("i", s)
s = self.A_ACCENT.sub("a", s)
@@ -352,7 +352,7 @@ class i18n_ca_generic(i18n):
return name
def first_letter_equal(self, a, b):
- return self._upper_unaccent_string(a) == self._upper_unaccent_string(b)
+ return self.upper_unaccent_string(a) == self.upper_unaccent_string(b)
class i18n_pt_br_generic(i18n):
APPELLATIONS = [ u"Aeroporto", u"Alameda", u"Área", u"Avenida",
@@ -373,7 +373,7 @@ class i18n_pt_br_generic(i18n):
"|".join(DETERMINANTS)), re.IGNORECASE
| re.UNICODE)
- # for IndexPageGenerator._upper_unaccent_string
+ # for IndexPageGenerator.upper_unaccent_string
E_ACCENT = re.compile(ur"[éèêëẽ]", re.IGNORECASE | re.UNICODE)
I_ACCENT = re.compile(ur"[íìîïĩ]", re.IGNORECASE | re.UNICODE)
A_ACCENT = re.compile(ur"[áàâäã]", re.IGNORECASE | re.UNICODE)
@@ -384,7 +384,7 @@ class i18n_pt_br_generic(i18n):
self.language = str(language)
_install_language(language, locale_path)
- def _upper_unaccent_string(self, s):
+ def upper_unaccent_string(self, s):
s = self.E_ACCENT.sub("e", s)
s = self.I_ACCENT.sub("i", s)
s = self.A_ACCENT.sub("a", s)
@@ -402,7 +402,7 @@ class i18n_pt_br_generic(i18n):
return name
def first_letter_equal(self, a, b):
- return self._upper_unaccent_string(a) == self._upper_unaccent_string(b)
+ return self.upper_unaccent_string(a) == self.upper_unaccent_string(b)
class i18n_ar_generic(i18n):
APPELLATIONS = [ u"شارع", u"طريق", u"زقاق", u"نهج", u"جادة",
@@ -420,14 +420,14 @@ class i18n_ar_generic(i18n):
"|".join(DETERMINANTS)), re.IGNORECASE
| re.UNICODE)
- # for IndexPageGenerator._upper_unaccent_string
+ # for IndexPageGenerator.upper_unaccent_string
A_ACCENT = re.compile(ur"[اإآ]", re.IGNORECASE | re.UNICODE)
def __init__(self, language, locale_path):
self.language = str(language)
_install_language(language, locale_path)
- def _upper_unaccent_string(self, s):
+ def upper_unaccent_string(self, s):
s = self.A_ACCENT.sub("أ", s)
return s.upper()
@@ -441,7 +441,7 @@ class i18n_ar_generic(i18n):
return name
def first_letter_equal(self, a, b):
- return self._upper_unaccent_string(a) == self._upper_unaccent_string(b)
+ return self.upper_unaccent_string(a) == self.upper_unaccent_string(b)
def isrtl(self):
return True
@@ -464,7 +464,7 @@ class i18n_ru_generic(i18n):
self.language = str(language)
_install_language(language, locale_path)
- def _upper_unaccent_string(self, s):
+ def upper_unaccent_string(self, s):
# usually, there are no accents in russian names, only "ё" sometimes,
but
# not as first letter
return s.upper()
@@ -479,7 +479,7 @@ class i18n_ru_generic(i18n):
return name
def first_letter_equal(self, a, b):
- return self._upper_unaccent_string(a) == self._upper_unaccent_string(b)
+ return self.upper_unaccent_string(a) == self.upper_unaccent_string(b)
class i18n_nl_generic(i18n):
#
@@ -514,7 +514,7 @@ class i18n_nl_generic(i18n):
"|".join(DETERMINANTS)),
re.IGNORECASE | re.UNICODE)
- # for IndexPageGenerator._upper_unaccent_string
+ # for IndexPageGenerator.upper_unaccent_string
E_ACCENT = re.compile(ur"[éèêëẽ]", re.IGNORECASE | re.UNICODE)
I_ACCENT = re.compile(ur"[íìîïĩ]", re.IGNORECASE | re.UNICODE)
A_ACCENT = re.compile(ur"[áàâäã]", re.IGNORECASE | re.UNICODE)
@@ -525,7 +525,7 @@ class i18n_nl_generic(i18n):
self.language = str(language)
_install_language(language, locale_path)
- def _upper_unaccent_string(self, s):
+ def upper_unaccent_string(self, s):
s = self.E_ACCENT.sub("e", s)
s = self.I_ACCENT.sub("i", s)
s = self.A_ACCENT.sub("a", s)
@@ -559,10 +559,10 @@ class i18n_nl_generic(i18n):
return name
def first_letter_equal(self, a, b):
- return self._upper_unaccent_string(a) == self._upper_unaccent_string(b)
+ return self.upper_unaccent_string(a) == self.upper_unaccent_string(b)
class i18n_hr_HR(i18n):
- # for _upper_unaccent_string
+ # for upper_unaccent_string
C_ACCENT = re.compile(ur"[ćč]", re.IGNORECASE | re.UNICODE)
D_ACCENT = re.compile(ur"đ|dž", re.IGNORECASE | re.UNICODE)
N_ACCENT = re.compile(ur"nj", re.IGNORECASE | re.UNICODE)
@@ -570,7 +570,7 @@ class i18n_hr_HR(i18n):
S_ACCENT = re.compile(ur"š", re.IGNORECASE | re.UNICODE)
Z_ACCENT = re.compile(ur"ž", re.IGNORECASE | re.UNICODE)
- def _upper_unaccent_string(self, s):
+ def upper_unaccent_string(self, s):
s = self.C_ACCENT.sub("c", s)
s = self.D_ACCENT.sub("d", s)
s = self.N_ACCENT.sub("n", s)
@@ -599,7 +599,7 @@ class i18n_hr_HR(i18n):
def first_letter_equal(self, a, b):
"""returns True if the letters a and b are equal in the map index,
e.g. É and E are equals in French map index"""
- return self._upper_unaccent_string(a) == self._upper_unaccent_string(b)
+ return self.upper_unaccent_string(a) == self.upper_unaccent_string(b)
class i18n_pl_generic(i18n):
@@ -681,7 +681,7 @@ class i18n_de_generic(i18n):
"|".join(DETERMINANTS)), re.IGNORECASE
| re.UNICODE)
- # for IndexPageGenerator._upper_unaccent_string
+ # for IndexPageGenerator.upper_unaccent_string
E_ACCENT = re.compile(ur"[éèêëẽ]", re.IGNORECASE | re.UNICODE)
I_ACCENT = re.compile(ur"[íìîïĩ]", re.IGNORECASE | re.UNICODE)
A_ACCENT = re.compile(ur"[áàâäã]", re.IGNORECASE | re.UNICODE)
@@ -692,7 +692,7 @@ class i18n_de_generic(i18n):
self.language = str(language)
_install_language(language, locale_path)
- def _upper_unaccent_string(self, s):
+ def upper_unaccent_string(self, s):
s = self.E_ACCENT.sub("e", s)
s = self.I_ACCENT.sub("i", s)
s = self.A_ACCENT.sub("a", s)
@@ -717,7 +717,7 @@ class i18n_de_generic(i18n):
return name
def first_letter_equal(self, a, b):
- return self._upper_unaccent_string(a) == self._upper_unaccent_string(b)
+ return self.upper_unaccent_string(a) == self.upper_unaccent_string(b)
class i18n_generic(i18n):
def __init__(self, language, locale_path):
diff --git a/ocitysmap2/indexlib/indexer.py b/ocitysmap2/indexlib/indexer.py
index a840820..1a13e74 100644
--- a/ocitysmap2/indexlib/indexer.py
+++ b/ocitysmap2/indexlib/indexer.py
@@ -216,7 +216,8 @@ class StreetIndex:
if (not current_category
or not self._i18n.first_letter_equal(street_name[0],
current_category.name)):
- current_category = commons.IndexCategory(street_name[0])
+ current_category = commons.IndexCategory(
+ self._i18n.upper_unaccent_string(street_name[0]))
result.append(current_category)
# Parse the WKT from the largest linestring in shape
--
1.7.5.4
- [Maposmatic-dev] [PATCH] Indexer: capitalize each letter in index,
gael . utard <=