Python google.appengine.ext.db.Query() Examples
The following are 30
code examples of google.appengine.ext.db.Query().
You can vote up the ones you like or vote down the ones you don't like,
and go to the original project or source file by following the links above each example.
You may also want to check out all available functions/classes of the module
google.appengine.ext.db
, or try the search function
.
Example #1
Source File: remote_api.py From personfinder with Apache License 2.0 | 6 votes |
def connect(server, app_id=None, username=None, password=None, secure=True): """Sets up a connection to an app that has the remote_api handler.""" if not app_id: app_id = get_app_id() print('Application ID: %s' % app_id) print('Server: %s' % server) if not username: username = raw_input('Username: ') else: print('Username: %s' % username) # Sets up users.get_current_user() inside of the console os.environ['USER_EMAIL'] = username if not password: password = getpass.getpass('Password: ') remote_api_stub.ConfigureRemoteDatastore( app_id, '/remote_api', lambda: (username, password), server, secure=secure) db.Query().count() # force authentication to happen now
Example #2
Source File: util.py From browserscope with Apache License 2.0 | 6 votes |
def ClearDatastore(request): """Clears data in the datastore, many at a time (for admins only).""" clear = (None, 'None') atatime = 10 msg = '' query = db.Query(clear[0]) rows = query.fetch(atatime) length = len(rows) if length is 0: msg += 'No more rows to delete<br>' else: msg += 'Deleting %s %s<br>' % (length, clear[1]) db.delete(rows) query = db.Query(clear[0]) more = query.fetch(1) if len(more) is not 0: msg += 'Now do it again!' msg += '<script>window.location.href="/reflows/clear_datastore";</script>' return http.HttpResponse(msg)
Example #3
Source File: datastore_range_iterators.py From browserscope with Apache License 2.0 | 6 votes |
def __iter__(self): """Iterate over entities. Yields: db model entities or ndb model entities if the model is defined with ndb. """ for ns in self._ns_range: self._query = self._property_range.make_query(ns) if isinstance(self._query, db.Query): if self._cursor: self._query.with_cursor(self._cursor) for model_instance in self._query.run( batch_size=self._query_spec.batch_size, keys_only=self._query_spec.keys_only): yield model_instance else: self._query = self._query.iter(batch_size=self._query_spec.batch_size, keys_only=self._query_spec.keys_only, start_cursor=self._cursor, produce_cursors=True) for model_instance in self._query: yield model_instance self._cursor = None if ns != self._ns_range.namespace_end: self._ns_range = self._ns_range.with_start_after(ns)
Example #4
Source File: pager.py From browserscope with Apache License 2.0 | 6 votes |
def _get_query(self, filters={}, inequality_prop=None, inequality_filters={}, orderings=[], order_directions={}): """Builds a db.Query. Returns: A google.appengine.ext.db.Query instance. """ query = self.__class__.query_class(self._model_class, keys_only=self._keys_only) if self._ancestor: query.ancestor(self._ancestor) if inequality_prop and inequality_filters: for operator, value in inequality_filters.iteritems(): query.filter(inequality_prop + ' ' + operator, value) for prop, value in filters.iteritems(): query.filter(prop + ' =', value) for prop in orderings: query.order(order_directions[prop] + prop) return query
Example #5
Source File: datastore_range_iterators.py From browserscope with Apache License 2.0 | 6 votes |
def to_json(self): """Inherit doc.""" cursor_object = False if self._query is not None: if isinstance(self._query, db.Query): self._cursor = self._query.cursor() else: cursor_object = True self._cursor = self._query.cursor_after().to_websafe_string() else: self._cursor = None return {"property_range": self._property_range.to_json(), "query_spec": self._query_spec.to_json(), "cursor": self._cursor, "ns_range": self._ns_range.to_json_object(), "name": self.__class__.__name__, "cursor_object": cursor_object} # TODO(user): it sucks we need to handle cursor_to_str in many places. # In the long run, datastore adaptor refactor will take care of this as # we will only need to deal with low level datastore API after that. # Thus we will not add Cursor as a json primitive MR should understand.
Example #6
Source File: datastore_range_iterators.py From browserscope with Apache License 2.0 | 6 votes |
def __iter__(self): self._query = self._key_range.make_ascending_query( util.for_name(self._query_spec.model_class_path), filters=self._query_spec.filters) if isinstance(self._query, db.Query): if self._cursor: self._query.with_cursor(self._cursor) for model_instance in self._query.run( batch_size=self._query_spec.batch_size, keys_only=self._query_spec.keys_only): yield model_instance else: self._query = self._query.iter(batch_size=self._query_spec.batch_size, keys_only=self._query_spec.keys_only, start_cursor=self._cursor, produce_cursors=True) for model_instance in self._query: yield model_instance
Example #7
Source File: datastore_range_iterators.py From browserscope with Apache License 2.0 | 6 votes |
def __iter__(self): query = self._key_range.make_ascending_datastore_query( self._query_spec.entity_kind, filters=self._query_spec.filters) # get a connection without adapter. connection = datastore_rpc.Connection() query_options = datastore_query.QueryOptions( batch_size=self._query_spec.batch_size, start_cursor=self._cursor, produce_cursors=True) # Transform datastore.Query: # datastore.Query -> datastore_query.Query -> datastore_query.Batcher -> # datastore_query.ResultsIterator self._query = datastore_query.ResultsIterator( query.GetQuery().run(connection, query_options)) for entity_proto in self._query: yield entity_proto
Example #8
Source File: datastore_range_iterators.py From locality-sensitive-hashing with MIT License | 6 votes |
def __iter__(self): query = self._key_range.make_ascending_datastore_query( self._query_spec.entity_kind, filters=self._query_spec.filters) # get a connection without adapter. connection = datastore_rpc.Connection() query_options = datastore_query.QueryOptions( batch_size=self._query_spec.batch_size, start_cursor=self._cursor, produce_cursors=True) # Transform datastore.Query: # datastore.Query -> datastore_query.Query -> datastore_query.Batcher -> # datastore_query.ResultsIterator self._query = datastore_query.ResultsIterator( query.GetQuery().run(connection, query_options)) for entity_proto in self._query: yield entity_proto
Example #9
Source File: backup_handler.py From python-compat-runtime with Apache License 2.0 | 6 votes |
def load(cls, backup_id, kind_name, shard_id=None): """Retrieve SchemaAggregationResult from the Datastore. Args: backup_id: Required BackupInformation Key. kind_name: Required kind name as string. shard_id: Optional shard id as string. Returns: SchemaAggregationResult iterator or an entity if shard_id not None. """ parent = cls._get_parent_key(backup_id, kind_name) if shard_id: key = datastore_types.Key.from_path(cls.kind(), shard_id, parent=parent) return SchemaAggregationResult.get(key) else: return db.Query(cls).ancestor(parent).run()
Example #10
Source File: property_range.py From python-compat-runtime with Apache License 2.0 | 6 votes |
def make_query(self, ns): """Make a query of entities within this range. Query options are not supported. They should be specified when the query is run. Args: ns: namespace of this query. Returns: a db.Query or ndb.Query, depends on the model class's type. """ if issubclass(self.model_class, db.Model): query = db.Query(self.model_class, namespace=ns) for f in self.filters: query.filter("%s %s" % (f[0], f[1]), f[2]) else: query = self.model_class.query(namespace=ns) for f in self.filters: query = query.filter(ndb.FilterNode(*f)) return query
Example #11
Source File: __init__.py From python-compat-runtime with Apache License 2.0 | 6 votes |
def make_directed_query(self, kind_class, keys_only=False): """Construct a query for this key range, including the scan direction. Args: kind_class: A kind implementation class (a subclass of either db.Model or ndb.Model). keys_only: bool, default False, use keys_only on Query? Returns: A db.Query or ndb.Query instance (corresponding to kind_class). Raises: KeyRangeError: if self.direction is not in (KeyRange.ASC, KeyRange.DESC). """ if ndb is not None: if issubclass(kind_class, ndb.Model): return self.make_directed_ndb_query(kind_class, keys_only=keys_only) assert self._app is None, '_app is not supported for db.Query' direction = self.__get_direction("", "-") query = db.Query(kind_class, namespace=self.namespace, keys_only=keys_only) query.order("%s__key__" % direction) query = self.filter_query(query) return query
Example #12
Source File: __init__.py From python-compat-runtime with Apache License 2.0 | 6 votes |
def make_directed_datastore_query(self, kind, keys_only=False): """Construct a query for this key range, including the scan direction. Args: kind: A string. keys_only: bool, default False, use keys_only on Query? Returns: A datastore.Query instance. Raises: KeyRangeError: if self.direction is not in (KeyRange.ASC, KeyRange.DESC). """ direction = self.__get_direction(datastore.Query.ASCENDING, datastore.Query.DESCENDING) query = datastore.Query(kind, _app=self._app, keys_only=keys_only) query.Order(("__key__", direction)) query = self.filter_datastore_query(query) return query
Example #13
Source File: __init__.py From python-compat-runtime with Apache License 2.0 | 6 votes |
def make_ascending_query(self, kind_class, keys_only=False, filters=None): """Construct a query for this key range without setting the scan direction. Args: kind_class: A kind implementation class (a subclass of either db.Model or ndb.Model). keys_only: bool, default False, query only for keys. filters: optional list of filters to apply to the query. Each filter is a tuple: (<property_name_as_str>, <query_operation_as_str>, <value>). User filters are applied first. Returns: A db.Query or ndb.Query instance (corresponding to kind_class). """ if ndb is not None: if issubclass(kind_class, ndb.Model): return self.make_ascending_ndb_query( kind_class, keys_only=keys_only, filters=filters) assert self._app is None, '_app is not supported for db.Query' query = db.Query(kind_class, namespace=self.namespace, keys_only=keys_only) query.order("__key__") query = self.filter_query(query, filters=filters) return query
Example #14
Source File: __init__.py From python-compat-runtime with Apache License 2.0 | 6 votes |
def make_ascending_datastore_query(self, kind, keys_only=False, filters=None): """Construct a query for this key range without setting the scan direction. Args: kind: A string. keys_only: bool, default False, use keys_only on Query? filters: optional list of filters to apply to the query. Each filter is a tuple: (<property_name_as_str>, <query_operation_as_str>, <value>). User filters are applied first. Returns: A datastore.Query instance. """ query = datastore.Query(kind, namespace=self.namespace, _app=self._app, keys_only=keys_only) query.Order(("__key__", datastore.Query.ASCENDING)) query = self.filter_datastore_query(query, filters=filters) return query
Example #15
Source File: datastore_range_iterators.py From appengine-mapreduce with Apache License 2.0 | 6 votes |
def __iter__(self): self._query = self._key_range.make_ascending_query( util.for_name(self._query_spec.model_class_path), filters=self._query_spec.filters) if isinstance(self._query, db.Query): if self._cursor: self._query.with_cursor(self._cursor) for model_instance in self._query.run( batch_size=self._query_spec.batch_size, keys_only=self._query_spec.keys_only): yield model_instance else: self._query = self._query.iter(batch_size=self._query_spec.batch_size, keys_only=self._query_spec.keys_only, start_cursor=self._cursor, produce_cursors=True) for model_instance in self._query: yield model_instance
Example #16
Source File: datastore_range_iterators.py From appengine-mapreduce with Apache License 2.0 | 6 votes |
def __iter__(self): query = self._key_range.make_ascending_datastore_query( self._query_spec.entity_kind, filters=self._query_spec.filters) # get a connection without adapter. connection = datastore_rpc.Connection() query_options = datastore_query.QueryOptions( batch_size=self._query_spec.batch_size, start_cursor=self._cursor, produce_cursors=True) # Transform datastore.Query: # datastore.Query -> datastore_query.Query -> datastore_query.Batcher -> # datastore_query.ResultsIterator self._query = datastore_query.ResultsIterator( query.GetQuery().run(connection, query_options)) for entity_proto in self._query: yield entity_proto
Example #17
Source File: datastore_range_iterators.py From locality-sensitive-hashing with MIT License | 6 votes |
def __iter__(self): self._query = self._key_range.make_ascending_query( util.for_name(self._query_spec.model_class_path), filters=self._query_spec.filters) if isinstance(self._query, db.Query): if self._cursor: self._query.with_cursor(self._cursor) for model_instance in self._query.run( batch_size=self._query_spec.batch_size, keys_only=self._query_spec.keys_only): yield model_instance else: self._query = self._query.iter(batch_size=self._query_spec.batch_size, keys_only=self._query_spec.keys_only, start_cursor=self._cursor, produce_cursors=True) for model_instance in self._query: yield model_instance
Example #18
Source File: datastore_range_iterators.py From python-compat-runtime with Apache License 2.0 | 6 votes |
def __iter__(self): self._query = self._key_range.make_ascending_query( util.for_name(self._query_spec.model_class_path), filters=self._query_spec.filters) if isinstance(self._query, db.Query): if self._cursor: self._query.with_cursor(self._cursor) for model_instance in self._query.run( batch_size=self._query_spec.batch_size, keys_only=self._query_spec.keys_only): yield model_instance else: self._query = self._query.iter(batch_size=self._query_spec.batch_size, keys_only=self._query_spec.keys_only, start_cursor=self._cursor, produce_cursors=True) for model_instance in self._query: yield model_instance
Example #19
Source File: __init__.py From python-compat-runtime with Apache License 2.0 | 5 votes |
def __init__(self, kind_or_entity, word_delimiter_regex=None, *args, **kwargs): """Constructor. May be called as a copy constructor. If kind_or_entity is a datastore.Entity, copies it into this Entity. datastore.Get() and Query() returns instances of datastore.Entity, so this is useful for converting them back to SearchableEntity so that they'll be indexed when they're stored back in the datastore. Otherwise, passes through the positional and keyword args to the datastore.Entity constructor. Args: kind_or_entity: string or datastore.Entity word_delimiter_regex: a regex matching characters that delimit words """ self._word_delimiter_regex = word_delimiter_regex if isinstance(kind_or_entity, datastore.Entity): self._Entity__key = kind_or_entity._Entity__key self._Entity__unindexed_properties = frozenset(kind_or_entity.unindexed_properties()) if isinstance(kind_or_entity, SearchableEntity): if getattr(kind_or_entity, '_searchable_properties', None) is not None: self._searchable_properties = kind_or_entity._searchable_properties self.update(kind_or_entity) else: super(SearchableEntity, self).__init__(kind_or_entity, *args, **kwargs)
Example #20
Source File: datastore_range_iterators.py From python-compat-runtime with Apache License 2.0 | 5 votes |
def _get_cursor(self): if self._query is None: return self._cursor if isinstance(self._query, db.Query): return self._query.cursor() else: return self._query.cursor_after()
Example #21
Source File: blobstore_viewer_test.py From python-compat-runtime with Apache License 2.0 | 5 votes |
def setUp(self): self.mox = mox.Mox() self.mox.StubOutClassWithMocks(db, 'Query')
Example #22
Source File: blog.py From tornado-zh with MIT License | 5 votes |
def get(self, slug): entry = db.Query(Entry).filter("slug =", slug).get() if not entry: raise tornado.web.HTTPError(404) self.render("entry.html", entry=entry)
Example #23
Source File: blobstore_viewer_test.py From python-compat-runtime with Apache License 2.0 | 5 votes |
def test_get_blobs(self): query = db.Query( model_class=blobstore.BlobInfo, namespace='') query.order('-creation').AndReturn(query) query.fetch(10, offset=40).AndReturn(['some blob']) self.mox.ReplayAll() self.assertEqual(['some blob'], blobstore_viewer._get_blobs(start=40, limit=10)) self.mox.VerifyAll()
Example #24
Source File: backup_handler.py From python-compat-runtime with Apache License 2.0 | 5 votes |
def get_namespaces(selected_namespace): namespaces = [('--All--', '*', selected_namespace is None)] for ns in datastore.Query('__namespace__', keys_only=True).Run(limit=250): ns_name = ns.name() or '' namespaces.append((ns_name or '--Default--', ns_name, ns_name == selected_namespace)) return namespaces
Example #25
Source File: user_tests.py From browserscope with Apache License 2.0 | 5 votes |
def Settings(request): if request.POST: current_user = users.get_current_user() u = models.user_test.User.get_or_insert(current_user.user_id()) u.email = request.POST.get('email', current_user.email()) u.save() return http.HttpResponseRedirect('/user/settings') # Regular GET. current_user = users.get_current_user() user = models.user_test.User.get_or_insert( current_user.user_id(), email=current_user.email()) tests = db.Query(models.user_test.Test) tests.filter('user', user) # Only admins can see deleted tests. if not users.is_current_user_admin(): tests.filter('deleted', False) tests.order('-created') if tests.count() == 0: tests = None params = { 'api_key': user.key().name(), 'tests': tests, 'csrf_token': request.session.get('csrf_token') } return util.Render(request, 'user_settings.html', params) # Decorators are inherited by TestEdit
Example #26
Source File: blobstore.py From python-compat-runtime with Apache License 2.0 | 5 votes |
def all(cls): """Creates a query for all `BlobInfo` objects associated with the app. Returns: A `db.Query` object that queries over `BlobInfo`'s datastore kind. """ return db.Query(model_class=cls, namespace='')
Example #27
Source File: djangoforms.py From python-compat-runtime with Apache License 2.0 | 5 votes |
def __init__(self, reference_class, query=None, choices=None, empty_label=u'---------', required=True, widget=forms.Select, label=None, initial=None, help_text=None, *args, **kwargs): """Constructor. Args: reference_class: required; the db.Model subclass used in the reference query: optional db.Query; default db.Query(reference_class) choices: optional explicit list of (value, label) pairs representing available choices; defaults to dynamically iterating over the query argument (or its default) empty_label: label to be used for the default selection item in the widget; this is prepended to the choices required, widget, label, initial, help_text, *args, **kwargs: like for forms.Field.__init__(); widget defaults to forms.Select """ assert issubclass(reference_class, db.Model) if query is None: query = db.Query(reference_class) assert isinstance(query, db.Query) super(ModelChoiceField, self).__init__(required, widget, label, initial, help_text, *args, **kwargs) self.empty_label = empty_label self.reference_class = reference_class self._query = query self._choices = choices self._update_widget_choices()
Example #28
Source File: datastore_range_iterators.py From python-compat-runtime with Apache License 2.0 | 5 votes |
def __iter__(self): """Iterate over entities. Yields: db model entities or ndb model entities if the model is defined with ndb. """ for ns in self._ns_range: self._query = self._property_range.make_query(ns) if isinstance(self._query, db.Query): if self._cursor: self._query.with_cursor(self._cursor) for model_instance in self._query.run( batch_size=self._query_spec.batch_size, keys_only=self._query_spec.keys_only): yield model_instance else: self._query = self._query.iter(batch_size=self._query_spec.batch_size, keys_only=self._query_spec.keys_only, start_cursor=self._cursor, produce_cursors=True) for model_instance in self._query: yield model_instance self._query = None self._cursor = None if ns != self._ns_range.namespace_end: self._ns_range = self._ns_range.with_start_after(ns)
Example #29
Source File: admin_rankers.py From browserscope with Apache License 2.0 | 5 votes |
def FixFirefoxBetaCategories(request): query = db.Query(result_stats.CategoryBrowserManager) key = request.GET.get('key') if key: query.filter('__key__ >', db.Key(key)) query.order('__key__') bm = query.get() if not bm: return http.HttpResponse('All Done!') dirty = False newbrowsers = [] for browser in bm.browsers: if browser.find('Firefox 4') != -1: dirty = True browser = browser.replace('Firefox 4', 'Firefox Beta 4') newbrowsers.append(browser) if dirty: bm.browsers = newbrowsers bm.save() params = { 'next_url': '/admin/ua/ffbeta?key=%s' % bm.key(), 'current_name': 'Dirty? %s - %s' % (dirty, newbrowsers) } return util.Render(request, 'update_datastore.html', params)
Example #30
Source File: __init__.py From python-compat-runtime with Apache License 2.0 | 5 votes |
def _get_query(self): """Wraps db.Query._get_query() and injects SearchableQuery.""" query = db.Query._get_query(self, _query_class=SearchableQuery, _multi_query_class=SearchableMultiQuery) if self._search_query: query.Search(self._search_query, properties=self._properties) return query