[pkg-fso-commits] [SCM] FSO frameworkd Debian packaging branch, debian, updated. upstream/0.9.5.5-717-g0f98819

Sebastian Krzyszkowiak seba.dos1 at gmail.com
Sat Aug 6 08:18:46 UTC 2011


The following commit has been merged in the debian branch:
commit 0630ee4297eefd4e9808dc19ea5839eae773dd44
Author: Sebastian Krzyszkowiak <seba.dos1 at gmail.com>
Date:   Sat Dec 5 21:58:53 2009 +0100

    opimd: implement number normalizing using phoneutils with new, TypeManager way

diff --git a/framework/subsystems/opimd/helpers.py b/framework/subsystems/opimd/helpers.py
index e54b1cc..842f377 100644
--- a/framework/subsystems/opimd/helpers.py
+++ b/framework/subsystems/opimd/helpers.py
@@ -13,11 +13,6 @@ Helpers
 """
 
 from dbus import DBusException, Array
-try:
-    from phoneutils import normalize_number
-except:
-    def normalize_number(num):
-        return num
 
 #----------------------------------------------------------------------------#
 def field_value_to_list(field_value):
@@ -28,17 +23,6 @@ def field_value_to_list(field_value):
         return [ field_value ]
 
 #----------------------------------------------------------------------------#
-def make_comp_value(field_type, value):
-#----------------------------------------------------------------------------#
-    """Determines and returns a representation of a tel URI that is comparable to human input"""
-
-    # Remove tel:
-    #res = tel_value[4:]
-    #res = normalize_number(res)
-
-    return value
-
-#----------------------------------------------------------------------------#
 class InvalidBackend( DBusException ):
 #----------------------------------------------------------------------------#
     """Raised when a backend is either invalid or unsuited for a certain function call"""
diff --git a/framework/subsystems/opimd/pimd_generic.py b/framework/subsystems/opimd/pimd_generic.py
index a5d63a1..0f61769 100644
--- a/framework/subsystems/opimd/pimd_generic.py
+++ b/framework/subsystems/opimd/pimd_generic.py
@@ -32,6 +32,8 @@ logger = logging.getLogger('opimd')
 from backend_manager import BackendManager
 from backend_manager import PIMB_CAN_ADD_ENTRY, PIMB_CAN_DEL_ENTRY, PIMB_CAN_UPD_ENTRY, PIMB_CAN_UPD_ENTRY_WITH_NEW_FIELD, PIMB_NEEDS_SYNC
 
+from type_manager import TypeManager
+
 from domain_manager import Domain
 from helpers import *
 
@@ -153,15 +155,15 @@ class GenericEntry():
                     if self._fields[field][3]==backend_name:
                         for field_value in field_value_to_list(entry_data[field_name]):
                             self._fields[field][1]=field_value
-                            self._fields[field][2] = make_comp_value(self.domain.field_type_from_name(field_name), field_value)
+                            self._fields[field][2] = TypeManager.make_comp_value(self.domain.field_type_from_name(field_name), field_value)
                     else:
                         for field_value in field_value_to_list(entry_data[field_name]):
-                            self._fields.append([field_name, field_value, make_comp_value(self.domain.field_type_from_name(field_name), field_value), backend_name])
+                            self._fields.append([field_name, field_value, TypeManager.make_comp_value(self.domain.field_type_from_name(field_name), field_value), backend_name])
                             self._field_idx[field_name].append(len(self._fields)-1)
             except KeyError:
                 for field_value in field_value_to_list(entry_data[field_name]):
 
-                    compare_value = make_comp_value(self.domain.field_type_from_name(field_name), field_value)
+                    compare_value = TypeManager.make_comp_value(self.domain.field_type_from_name(field_name), field_value)
 
                     our_field = [field_name, field_value, compare_value, backend_name]
 
@@ -401,6 +403,7 @@ class GenericEntry():
             best_field_match = 0.0
 
             #if field_value.startswith('tel:'): field_value=re.escape(get_compare_for_tel(field_value))+'$'
+            field_value = TypeManager.make_comp_value(self.domain.field_type_from_name(field_name), field_value, True)
 
             matcher = re.compile(field_value)
 
@@ -647,6 +650,8 @@ class GenericDomain():
 
     @classmethod
     def field_type_from_name(self, name):
+        if name=='Phone':
+            return 'phonenumber'
         return 'generic'
 
     def enumerate_items(self, backend):
@@ -749,13 +754,13 @@ class GenericDomain():
                         for value in data[field_name]:
                             #newfieldid = len(entryif._fields)-1
                             #entryif._field_idx[field_name].append(newfieldid)
-                            entryif._fields.append([field_name, value, make_comp_value(self.field_type_from_name(field_name), value), backend])
+                            entryif._fields.append([field_name, value, TypeManager.make_comp_value(self.field_type_from_name(field_name), value), backend])
                     entryif.rebuild_index()
                 else:
                     for field_nr in entryif._field_idx[field_name]:
                         #if entry[field_name]!=data[field_name]:
                         entryif._fields[field_nr][1]=data[field_name]
-                        entryif._fields[field_nr][2]=make_comp_value(self.field_type_from_name(field_name), data[field_name])
+                        entryif._fields[field_nr][2]=TypeManager.make_comp_value(self.field_type_from_name(field_name), data[field_name])
 
         for backend_name in entryif._used_backends:
             backend = self._backends[backend_name]
diff --git a/framework/subsystems/opimd/type_manager.py b/framework/subsystems/opimd/type_manager.py
index e74d407..8df1a07 100644
--- a/framework/subsystems/opimd/type_manager.py
+++ b/framework/subsystems/opimd/type_manager.py
@@ -23,6 +23,13 @@ from dbus.service import FallbackObject as DBusFBObject
 from dbus.service import signal as dbus_signal
 from dbus.service import method as dbus_method
 
+try:
+    from phoneutils import normalize_number
+except:
+    def normalize_number(num):
+        return num
+
+import re
 import logging
 logger = logging.getLogger('opimd')
 
@@ -47,6 +54,16 @@ class TypeManager(DBusFBObject):
         self.interface = _DIN_TYPES
         self.path = _DBUS_PATH_TYPES
 
+    @classmethod
+    def make_comp_value(self, field_type, field_value, from_query = False):
+        if field_type=='phonenumber':
+            if from_query:
+                return re.escape(normalize_number(field_value)) # +'$'
+            else:
+                return normalize_number(field_value)
+        else:
+            return field_value
+
     @dbus_method(_DIN_TYPES, "", "as")
     def List(self):
         return _TYPES

-- 
FSO frameworkd Debian packaging



More information about the pkg-fso-commits mailing list