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): |