[Erp5-report] r18557 - /erp5/trunk/products/ERP5Type/XMLMatrix.py

nobody at svn.erp5.org nobody at svn.erp5.org
Sat Dec 29 12:51:37 CET 2007


Author: vincent
Date: Sat Dec 29 12:51:37 2007
New Revision: 18557

URL: http://svn.erp5.org?rev=18557&view=rev
Log:
Compute loop invariants outside of loop.
Iterate over object ids instead of over object values.
Instead of using find, then spliting string, first split and compare with list items.
Check that *all* subparts of cell id are ints, not just the first one.
Remove unneeded value assignment.
Fix comment.
Clarify "try" structure: append is what must happen if no error is raised.

Modified:
    erp5/trunk/products/ERP5Type/XMLMatrix.py

Modified: erp5/trunk/products/ERP5Type/XMLMatrix.py
URL: http://svn.erp5.org/erp5/trunk/products/ERP5Type/XMLMatrix.py?rev=18557&r1=18556&r2=18557&view=diff
==============================================================================
--- erp5/trunk/products/ERP5Type/XMLMatrix.py (original)
+++ erp5/trunk/products/ERP5Type/XMLMatrix.py Sat Dec 29 12:51:37 2007
@@ -212,20 +212,22 @@
 
       # List all valid cell ids for current base_id.
       object_id_list = []
-      for obj in self.objectValues():
-        object_id = obj.getId()
-        if object_id.find(base_id) == 0:
-          # Check that all '_'-separated fields are of int type.
-          if (object_id) > len(base_id):
-            try:
-              int(object_id[len(base_id)+1:].split('_')[0])
-              test = self._getOb(object_id) # If the object was created
-                                            # during this transaction,
-                                            # then we do not need to
-                                            # work on it
-              object_id_list.append(object_id)
-            except (ValueError, KeyError):
-              pass
+      base_id_len = len(base_id)
+      for object_id in self.objectIds():
+        object_id_list = object_id.split('_')
+        if len(object_id_list) > 1 and object_id_list.pop(0) == base_id:
+          try:
+            # Check that all '_'-separated fields are of int type (once
+            # base_id is poped).
+            [int(x) for x in object_id_list]
+            self._getOb(object_id) # If the object was created
+                                   # during this transaction,
+                                   # then we do not need to
+                                   # work on it
+          except (ValueError, KeyError):
+            pass
+          else:
+            object_id_list.append(object_id)
 
       # Prepend 'temp_' to all cells, to avoid id conflicts while renaming.
       for object_id in object_id_list:




More information about the Erp5-report mailing list