maposmatic-dev
[Top][All Lists]
Advanced

[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




reply via email to

[Prev in Thread] Current Thread [Next in Thread]