thirdparty/google_appengine/google/appengine/ext/gql/__init__.py
changeset 2273 e4cb9c53db3e
parent 1278 a7766286a7be
child 2309 be1b94099f2d
equal deleted inserted replaced
2272:26491ee91e33 2273:e4cb9c53db3e
   325 
   325 
   326   def __CastKey(self, values):
   326   def __CastKey(self, values):
   327     """Cast input values to Key() class using encoded string or tuple list."""
   327     """Cast input values to Key() class using encoded string or tuple list."""
   328     if not len(values) % 2:
   328     if not len(values) % 2:
   329       return datastore_types.Key.from_path(_app=self.__app, *values)
   329       return datastore_types.Key.from_path(_app=self.__app, *values)
   330     elif len(values) == 1 and isinstance(values[0], str):
   330     elif len(values) == 1 and isinstance(values[0], basestring):
   331       return datastore_types.Key(values[0])
   331       return datastore_types.Key(values[0])
   332     else:
   332     else:
   333       self.__CastError('KEY', values,
   333       self.__CastError('KEY', values,
   334                        'requires an even number of operands'
   334                        'requires an even number of operands '
   335                        'or a single encoded string')
   335                        'or a single encoded string')
   336 
   336 
   337   def __CastGeoPt(self, values):
   337   def __CastGeoPt(self, values):
   338     """Cast input to GeoPt() class using 2 input parameters."""
   338     """Cast input to GeoPt() class using 2 input parameters."""
   339     if len(values) != 2:
   339     if len(values) != 2:
   528         return args[reference - 1]
   528         return args[reference - 1]
   529       else:
   529       else:
   530         raise datastore_errors.BadArgumentError(
   530         raise datastore_errors.BadArgumentError(
   531             'Missing argument for bind, requires argument #%i, '
   531             'Missing argument for bind, requires argument #%i, '
   532             'but only has %i args.' % (reference, num_args))
   532             'but only has %i args.' % (reference, num_args))
   533     elif isinstance(reference, str):
   533     elif isinstance(reference, basestring):
   534       if reference in keyword_args:
   534       if reference in keyword_args:
   535         return keyword_args[reference]
   535         return keyword_args[reference]
   536       else:
   536       else:
   537         raise datastore_errors.BadArgumentError(
   537         raise datastore_errors.BadArgumentError(
   538             'Missing named arguments for bind, requires argument %s' %
   538             'Missing named arguments for bind, requires argument %s' %
   917       self.__has_ancestor = True
   917       self.__has_ancestor = True
   918       filter_rule = (self.__ANCESTOR, 'is')
   918       filter_rule = (self.__ANCESTOR, 'is')
   919       assert condition.lower() == 'is'
   919       assert condition.lower() == 'is'
   920 
   920 
   921     if condition.lower() != 'in' and operator == 'list':
   921     if condition.lower() != 'in' and operator == 'list':
   922       sef.__Error('Only IN can process a list of values')
   922       self.__Error('Only IN can process a list of values')
   923 
   923 
   924     self.__filters.setdefault(filter_rule, []).append((operator, parameters))
   924     self.__filters.setdefault(filter_rule, []).append((operator, parameters))
   925     return True
   925     return True
   926 
   926 
   927   def __AddSimpleFilter(self, identifier, condition, parameter):
   927   def __AddSimpleFilter(self, identifier, condition, parameter):