[Erp5-report] r26827 - /erp5/trunk/products/ZSQLCatalog/SearchKey/SearchKey.py

nobody at svn.erp5.org nobody at svn.erp5.org
Wed May 6 11:52:05 CEST 2009


Author: vincent
Date: Wed May  6 11:52:01 2009
New Revision: 26827

URL: http://svn.erp5.org?rev=26827&view=rev
Log:
Word-wrap at 79 char.

Modified:
    erp5/trunk/products/ZSQLCatalog/SearchKey/SearchKey.py

Modified: erp5/trunk/products/ZSQLCatalog/SearchKey/SearchKey.py
URL: http://svn.erp5.org/erp5/trunk/products/ZSQLCatalog/SearchKey/SearchKey.py?rev=26827&r1=26826&r2=26827&view=diff
==============================================================================
--- erp5/trunk/products/ZSQLCatalog/SearchKey/SearchKey.py [utf8] (original)
+++ erp5/trunk/products/ZSQLCatalog/SearchKey/SearchKey.py [utf8] Wed May  6 11:52:01 2009
@@ -48,7 +48,8 @@
 }
 
 # List of operators searched for at value's begnining when it's a basestring.
-# Order is important: an operator whose left part would be matching another operator of lower index would never be used.
+# Order is important: an operator whose left part would be matching another
+# operator of lower index would never be used.
 operator_list = ('>=', '<=', '>', '<', '=', '!=')
 
 def preprocessLikeValue(value):
@@ -89,7 +90,8 @@
     return self.column
 
   @profiler_decorator
-  def buildSQLExpression(self, operator, value, column_map, only_group_columns, group):
+  def buildSQLExpression(self, operator, value, column_map, only_group_columns,
+                         group):
     column_name = self.getColumn()
     rendered_column = column_map.asSQLColumn(column_name, group=group)
     return operator.asSQLExpression(rendered_column, value, only_group_columns)
@@ -105,7 +107,8 @@
       operator (Operator)
         The operator used to render value.
     """
-    operator_value_deprocessor = operator_value_deprocessor_dict.get(operator.getOperator())
+    operator_value_deprocessor = operator_value_deprocessor_dict.get(
+      operator.getOperator())
     if operator_value_deprocessor is not None:
       value = operator_value_deprocessor(value)
     return operator.asSearchText(value)
@@ -121,7 +124,8 @@
       value = [self._renderValueAsSearchText(x, operator) for x in value]
       if self.default_comparison_operator != '=':
         value = ['=%s' % (x, ) for x in value]
-      # XXX: operator used to join value elements should be reused from parser data (?)
+      # XXX: operator used to join value elements should be reused from
+      # parser data (?)
       result = '(%s)' % (' OR '.join(value), )
     else:
       result = self._renderValueAsSearchText(value, operator)
@@ -133,14 +137,15 @@
 
   @profiler_decorator
   def registerColumnMap(self, column_map, group, simple_query):
-    column_map.registerColumn(self.getColumn(), group=group, simple_query=simple_query)
+    column_map.registerColumn(self.getColumn(), group=group,
+                              simple_query=simple_query)
     return group
 
   @profiler_decorator
   def _getComparisonOperator(self, value):
     """
-      From a basestring instance, return a contained operator and value without
-      that operator.
+      From a basestring instance, return a contained operator and value
+      without that operator.
 
       value (string)
       
@@ -173,13 +178,15 @@
 
   @profiler_decorator
   def _preprocessValue(self, value, operator):
-    operator_value_preprocessor = operator_value_preprocessor_dict.get(operator)
+    operator_value_preprocessor = operator_value_preprocessor_dict.get(
+      operator)
     if operator_value_preprocessor is not None:
       value = operator_value_preprocessor(value)
     return value
 
   @profiler_decorator
-  def _processSearchValue(self, search_value, default_logical_operator, comparison_operator):
+  def _processSearchValue(self, search_value, default_logical_operator,
+                          comparison_operator):
     """
       Change search_value into a list of values, one or more logical operators,
       and a comparison operator. If no default_logical_operator is given, 
@@ -220,7 +227,9 @@
       assert comparison_operator is None
       actual_value = search_value['query']
       if search_value.get('key') not in (None, self.__class__.__name__):
-        LOG(self.__class__.__name__, 100, '"key" dict entry does not match current class: %r' % (search_value, ))
+        LOG(self.__class__.__name__, 100,
+            '"key" dict entry does not match current class: %r' % \
+            (search_value, ))
       if 'type' in search_value:
         assert 'operator' not in search_value, search_value
         assert 'range' not in search_value, search_value
@@ -229,21 +238,28 @@
         value_range = search_value.get('range')
         if value_range is not None:
           if value_operator is not None:
-            LOG('SearchKey', 100, '"range" and "operator" are mutualy exclusive, ignoring operator: %r' % (search_value, ))
+            LOG('SearchKey', 100,
+                '"range" and "operator" are mutualy exclusive, ignoring '\
+                'operator: %r' % (search_value, ))
           if value_range in single_operator_dict:
             comparison_operator = single_operator_dict[value_range]
           elif value_range in dual_operator_dict:
             if not isinstance(actual_value, (tuple, list)):
-              raise TypeError, 'Operator %r requires value to be a tuple/list. (%r)' % (value_range, search_value)
+              raise TypeError, 'Operator %r requires value to be a '\
+                               'tuple/list. (%r)' % (value_range,
+                               search_value)
             if len(actual_value) != 2:
-              raise TypeError, 'Operator %r requires value to have a length of 2. len(%r) = %i (%r)' % (value_range, actual_value, len(actual_value), search_value)
+              raise TypeError, 'Operator %r requires value to have a length '\
+                               'of 2. len(%r) = %i (%r)' % (value_range,
+                               actual_value, len(actual_value), search_value)
             comparison_operator = dual_operator_dict[value_range]
             logical_operator = 'and'
           else:
             raise ValueError, 'Unknown "range" value in %r' % (search_value, )
         if value_operator is not None:
           if not isinstance(value_operator, basestring):
-            raise TypeError, 'Operator must be of a string type. Got a %r' % (type(value_operator), )
+            raise TypeError, 'Operator must be of a string type. Got a %r' % \
+                             (type(value_operator), )
           value_operator = value_operator.lower()
           if not isinstance(actual_value, (tuple, list)):
             raise TypeError, 'When specifying an operator, query must be a list.'
@@ -258,11 +274,13 @@
       # Check list content (not empty, homogenous)
       search_value_len = len(search_value)
       if search_value_len == 0:
-        raise ValueError, 'Value cannot be an empty list/tuple: %r' % (search_value, )
+        raise ValueError, 'Value cannot be an empty list/tuple: %r' % \
+                          (search_value, )
       reference_class = search_value[0].__class__
       for x in search_value[1:]:
         if x.__class__ != reference_class:
-          raise TypeError, 'List elements must be of the same class: %r' % (search_value, )
+          raise TypeError, 'List elements must be of the same class: %r' % \
+                           (search_value, )
     else:
       assert logical_operator is None
       if isinstance(search_value, dict):
@@ -275,7 +293,8 @@
     operator_value_dict = {}
     if None in search_value:
       if comparison_operator not in (None, 'is'):
-        LOG('KeywordKey', 100, 'None value requires an "is" comparison operator. Fixed.')
+        LOG('KeywordKey', 100,
+            'None value requires an "is" comparison operator. Fixed.')
       operator_value_dict['is'] = search_value
     elif comparison_operator is None:
       if issubclass(reference_class, basestring):
@@ -283,17 +302,20 @@
           parsed = True
           for value in search_value:
             if isinstance(value, dict):
-              operator, value['query'] = self._getComparisonOperator(value['query'])
+              operator, value['query'] = self._getComparisonOperator(
+                value['query'])
             else:
               operator, value = self._getComparisonOperator(value)
-            operator_value_dict.setdefault(operator, []).append(self._preprocessValue(value, operator))
+            operator_value_dict.setdefault(operator, []).append(
+              self._preprocessValue(value, operator))
         else:
           for value in search_value:
             if isinstance(value, dict):
               operator = self._guessComparisonOperator(value['query'])
             else:
               operator = self._guessComparisonOperator(value)
-            operator_value_dict.setdefault(operator, []).append(self._preprocessValue(value, operator))
+            operator_value_dict.setdefault(operator, []).append(
+              self._preprocessValue(value, operator))
       else:
         # XXX: comparison operator is hardcoded for non-strings.
         operator_value_dict['='] = search_value
@@ -324,17 +346,24 @@
     append = query_list.append
     if logical_operator == 'or' and '=' in operator_value_dict:
       # Special case for equality with an 'or' logical operator: use SQL 'in'.
-      append(SimpleQuery(search_key=self, comparison_operator='in', group=group, **{column: operator_value_dict.pop('=')}))
+      append(SimpleQuery(search_key=self, comparison_operator='in',
+                         group=group,
+                         **{column: operator_value_dict.pop('=')}))
     for comparison_operator, value_list in operator_value_dict.iteritems():
       for value in value_list:
-        append(SimpleQuery(search_key=self, comparison_operator=comparison_operator, group=group, **{column: value}))
+        append(SimpleQuery(search_key=self,
+                           comparison_operator=comparison_operator,
+                           group=group, **{column: value}))
     return query_list
 
   @profiler_decorator
-  def buildQuery(self, search_value, group=None, logical_operator=None, comparison_operator=None):
+  def buildQuery(self, search_value, group=None, logical_operator=None,
+                 comparison_operator=None):
     assert logical_operator in (None, 'and', 'or'), repr(logical_operator)
-    operator_value_dict, logical_operator, parsed = self._processSearchValue(search_value, logical_operator, comparison_operator)
-    query_list = self._buildQuery(operator_value_dict, logical_operator, parsed, group)
+    operator_value_dict, logical_operator, parsed = self._processSearchValue(
+      search_value, logical_operator, comparison_operator)
+    query_list = self._buildQuery(operator_value_dict, logical_operator,
+                                  parsed, group)
     if len(query_list) == 1:
       query = query_list[0]
     else:




More information about the Erp5-report mailing list