commit-gnue
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[gnue] r6942 - in trunk/gnue-appserver/src: gcd gld language


From: johannes
Subject: [gnue] r6942 - in trunk/gnue-appserver/src: gcd gld language
Date: Thu, 3 Feb 2005 03:38:22 -0600 (CST)

Author: johannes
Date: 2005-02-03 03:38:21 -0600 (Thu, 03 Feb 2005)
New Revision: 6942

Modified:
   trunk/gnue-appserver/src/gcd/readgcd.py
   trunk/gnue-appserver/src/gld/readgld.py
   trunk/gnue-appserver/src/language/Session.py
Log:
Messages are case-insensitive. Case-Bugs fixed for readgcd/readgld


Modified: trunk/gnue-appserver/src/gcd/readgcd.py
===================================================================
--- trunk/gnue-appserver/src/gcd/readgcd.py     2005-02-02 19:38:59 UTC (rev 
6941)
+++ trunk/gnue-appserver/src/gcd/readgcd.py     2005-02-03 09:38:21 UTC (rev 
6942)
@@ -1021,13 +1021,12 @@
     # First we build a mapping using the condition as key for all items
     mapping = {}
     for item in items.values ():
-      key = tuple ([item [field] for field in condition])
-      mapping [key] = item
+      mapping [self.__getKey (item, condition)] = item
 
     # Now run over all existing records and update the records if necessary
     rec = resultSet.firstRecord ()
     while rec is not None:
-      key = tuple ([rec.getField (field) for field in condition])
+      key = self.__getKey (rec, condition)
       if mapping.has_key (key):
         mapping [key]['gnue_id'] = rec.getField ('gnue_id')
 
@@ -1054,6 +1053,33 @@
 
 
   # ---------------------------------------------------------------------------
+  # Get a tuple of fields from a record
+  # ---------------------------------------------------------------------------
+
+  def __getKey (self, record, fields):
+    """
+    This function creates a tuple of fields from a record. If a field value has
+    a 'lower' function the value will be lowered. This ensures to get a
+    case-insensitive key.
+
+    @param record: dict-like record to retrieve values from
+    @param fields: sequence of fieldnames to retrieve
+
+    @return: n-tuple with the (lowered) values of all fields
+    """
+
+    result = []
+    for field in fields:
+      value = record [field]
+      if hasattr (value, 'lower'):
+        value = value.lower ()
+
+      result.append (value)
+
+    return tuple (result)
+
+
+  # ---------------------------------------------------------------------------
   # Perform an update on the given resultset using a given data dictionary
   # ---------------------------------------------------------------------------
 

Modified: trunk/gnue-appserver/src/gld/readgld.py
===================================================================
--- trunk/gnue-appserver/src/gld/readgld.py     2005-02-02 19:38:59 UTC (rev 
6941)
+++ trunk/gnue-appserver/src/gld/readgld.py     2005-02-03 09:38:21 UTC (rev 
6942)
@@ -284,8 +284,8 @@
     """
 
     # This key makes sure to have no clashes
-    key = "%s::%s.%s" % (self.__currentModule.language,
-                         self.__currentClass.fullName, item.fullName)
+    key = string.lower ("%s::%s.%s" % (self.__currentModule.language,
+                         self.__currentClass.fullName, item.fullName))
 
     if self.labels.has_key (key):
       raise DuplicateItemError, \
@@ -316,7 +316,7 @@
     already listed, a DuplicateItemError will be raised.
     """
 
-    key = "%s::%s" % (item.language, item.fullName)
+    key = string.lower ("%s::%s") % (item.language, item.fullName)
     if self.messages.has_key (key):
       raise DuplicateItemError, \
           (self.__currentModule.language, item.fullName,
@@ -371,15 +371,15 @@
 
     # Replace references for all labels
     for label in self.labels.values ():
-      classname = label ['gnue_class']
+      classname = label ['gnue_class'].lower ()
       classid   = classes.get (classname)
       if classid is None:
-        raise ClassNotFoundError, (classname, label ['_file'])
+        raise ClassNotFoundError, (label ['gnue_class'], label ['_file'])
 
       del label ['gnue_class']
 
       if label ['gnue_property'] is not None:
-        (module, name) = Namespace.splitName (label ['gnue_property'])
+        (module, name) = Namespace.splitName (label ['gnue_property'].lower ())
         key  = "%s.%s_%s" % (classid, modules [module], name)
         ckey = "%s.%s_get%s" % (classid, modules [module], name)
         if properties.has_key (key):
@@ -395,7 +395,7 @@
               (classname, label ['gnue_property'], label ['_file'])
 
       elif label ['gnue_procedure'] is not None:
-        (module, name) = Namespace.splitName (label ['gnue_procedure'])
+        (module, name) = Namespace.splitName (label ['gnue_procedure'].lower 
())
         key = "%s.%s_%s" % (classid, modules [module], name)
         ckey = "%s.%s_get%s" % (classid, modules [module], name)
         ref = procedures.get (key) or procedures.get (ckey)
@@ -410,7 +410,7 @@
 
     # Replace references for all messages
     for message in self.messages.values ():
-      message ['gnue_module'] = modules [message ['gnue_module']]
+      message ['gnue_module'] = modules [message ['gnue_module'].lower ()]
       del message ['_file']
 
 
@@ -437,8 +437,8 @@
       name = rec.getField ('gnue_name')
       gid  = rec.getField ('gnue_id')
 
-      result [gid]  = name
-      result [name] = gid
+      result [gid]           = name
+      result [name.lower ()] = gid
 
       rec = self.__modRS.nextRecord ()
 
@@ -469,8 +469,8 @@
     while rec is not None:
       module = rec.getField ('gnue_module')
       name   = rec.getField ('gnue_name')
-      key    = Namespace.createName (modules [module], name)
-      result [key] = rec.getField ('gnue_id')
+      key    = Namespace.createName (modules [module.lower ()], name)
+      result [key.lower ()] = rec.getField ('gnue_id')
 
       rec = self.__clsRS.nextRecord ()
 
@@ -503,7 +503,7 @@
     while rec is not None:
       key = "%s.%s_%s" % (rec ['gnue_class'], rec ['gnue_module'],
                           rec ['gnue_name'])
-      result [key] = rec ['gnue_id']
+      result [key.lower ()] = rec ['gnue_id']
 
       rec = resultSet.nextRecord ()
 
@@ -614,13 +614,13 @@
     # First we build a mapping using the condition as key for all items
     mapping = {}
     for item in items.values ():
-      key = tuple ([item [field] for field in condition])
+      key = self.__getKey (item, condition)
       mapping [key] = item
 
     # Now run over all existing records and update the records if necessary
     rec = resultSet.firstRecord ()
     while rec is not None:
-      key = tuple ([rec.getField (field) for field in condition])
+      key = self.__getKey (rec, condition)
       if mapping.has_key (key):
         mapping [key]['gnue_id'] = rec.getField ('gnue_id')
         post = self.doUpdate (resultSet, mapping [key], True)
@@ -645,6 +645,34 @@
 
 
   # ---------------------------------------------------------------------------
+  # Get a tuple of fields from a record
+  # ---------------------------------------------------------------------------
+
+  def __getKey (self, record, fields):
+    """
+    This function creates a tuple of fields from a record. If a field value has
+    a 'lower' function the value will be lowered. This ensures to get a
+    case-insensitive key.
+
+    @param record: dict-like record to retrieve values from
+    @param fields: sequence of fieldnames to retrieve
+
+    @return: n-tuple with the (lowered) values of all fields
+    """
+
+    result = []
+
+    for field in fields:
+      value = record [field]
+      if hasattr (value, 'lower'):
+        value = value.lower ()
+
+      result.append (value)
+
+    return tuple (result)
+
+
+  # ---------------------------------------------------------------------------
   # Perform an update on the given resultset using a given data dictionary
   # ---------------------------------------------------------------------------
 

Modified: trunk/gnue-appserver/src/language/Session.py
===================================================================
--- trunk/gnue-appserver/src/language/Session.py        2005-02-02 19:38:59 UTC 
(rev 6941)
+++ trunk/gnue-appserver/src/language/Session.py        2005-02-03 09:38:21 UTC 
(rev 6942)
@@ -140,12 +140,13 @@
     if not current in languages:
       languages.insert (0, current)
 
-    (module, message) = self.qualify (messageName).split ('_')
+    (module, message) = self.qualify (messageName).lower ().split ('_')
 
     for lang in languages:
-      cond = ['and', ['eq', ['field', 'gnue_module.gnue_name'],
+      cond = ['and', ['eq', ['lower', ['field', 'gnue_module.gnue_name']],
                             ['const', module]],
-                     ['eq', ['field', 'gnue_name'], ['const', message]],
+                     ['eq', ['lower', ['field', 'gnue_name']],
+                            ['const', message]],
                      ['eq', ['field', 'gnue_language'], ['const', lang]]]
 
       result = self.find ('gnue_message', cond, [], ['gnue_text'])





reply via email to

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