[Top][All Lists]
[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'])
[Prev in Thread] |
Current Thread |
[Next in Thread] |
- [gnue] r6942 - in trunk/gnue-appserver/src: gcd gld language,
johannes <=