當前位置: 首頁>>代碼示例>>Python>>正文


Python ndb.OR屬性代碼示例

本文整理匯總了Python中google.appengine.ext.ndb.OR屬性的典型用法代碼示例。如果您正苦於以下問題:Python ndb.OR屬性的具體用法?Python ndb.OR怎麽用?Python ndb.OR使用的例子?那麽, 這裏精選的屬性代碼示例或許可以為您提供幫助。您也可以進一步了解該屬性所在google.appengine.ext.ndb的用法示例。


在下文中一共展示了ndb.OR屬性的12個代碼示例,這些例子默認根據受歡迎程度排序。您可以為喜歡或者感覺有用的代碼點讚,您的評價將有助於係統推薦出更棒的Python代碼示例。

示例1: CalculateInstallerState

# 需要導入模塊: from google.appengine.ext import ndb [as 別名]
# 或者: from google.appengine.ext.ndb import OR [as 別名]
def CalculateInstallerState(self):
    """Returns the blockable's installer state as prescribed by Upvote.

    NOTE: Due to the ancestor query, this method will not reflect changes within
    uncommitted transactions.

    Returns:
      The current installer state prescribed by Upvote.
    """
    # pylint: disable=g-explicit-bool-comparison, singleton-comparison
    query = rule_models.Bit9Rule.query(
        rule_models.Bit9Rule.in_effect == True,
        ndb.OR(
            rule_models.Bit9Rule.policy == _POLICY.FORCE_INSTALLER,
            rule_models.Bit9Rule.policy == _POLICY.FORCE_NOT_INSTALLER),
        ancestor=self.key
    ).order(-rule_models.Bit9Rule.updated_dt)
    # pylint: enable=g-explicit-bool-comparison, singleton-comparison

    installer_rule = query.get()
    if installer_rule is None:
      return self.detected_installer
    else:
      return installer_rule.policy == _POLICY.FORCE_INSTALLER 
開發者ID:google,項目名稱:upvote,代碼行數:26,代碼來源:binary.py

示例2: query_display

# 需要導入模塊: from google.appengine.ext import ndb [as 別名]
# 或者: from google.appengine.ext.ndb import OR [as 別名]
def query_display(cls, user_id, delta_minutes=60):
        """
        Query all jobs that have state scheduled, queued or sent (but not done)
        OR are done and have been scheduled for no longer than delta_minutes
        ago.
        """
        shortly_ago = datetime.datetime.utcnow() - datetime.timedelta(
            minutes=delta_minutes)

        # query all jobs that are
        return cls.query(ndb.OR(cls.state.IN(['scheduled', 'queued', 'sent']),
                                ndb.AND(cls.scheduled_at >= shortly_ago,
                                        cls.state == 'done')),
                         cls.user_id == user_id) 
開發者ID:Schibum,項目名稱:sndlatr,代碼行數:16,代碼來源:models.py

示例3: query_article_inequality_explicit

# 需要導入模塊: from google.appengine.ext import ndb [as 別名]
# 或者: from google.appengine.ext.ndb import OR [as 別名]
def query_article_inequality_explicit():
    query = Article.query(ndb.OR(Article.tags < 'perl',
                                 Article.tags > 'perl'))
    return query 
開發者ID:GoogleCloudPlatform,項目名稱:python-docs-samples,代碼行數:6,代碼來源:snippets.py

示例4: query_article_in_equivalent

# 需要導入模塊: from google.appengine.ext import ndb [as 別名]
# 或者: from google.appengine.ext.ndb import OR [as 別名]
def query_article_in_equivalent():
    query = Article.query(ndb.OR(Article.tags == 'python',
                                 Article.tags == 'ruby',
                                 Article.tags == 'php'))
    return query 
開發者ID:GoogleCloudPlatform,項目名稱:python-docs-samples,代碼行數:7,代碼來源:snippets.py

示例5: query_article_nested

# 需要導入模塊: from google.appengine.ext import ndb [as 別名]
# 或者: from google.appengine.ext.ndb import OR [as 別名]
def query_article_nested():
    query = Article.query(ndb.AND(Article.tags == 'python',
                                  ndb.OR(Article.tags.IN(['ruby', 'jruby']),
                                         ndb.AND(Article.tags == 'php',
                                                 Article.tags != 'perl'))))
    return query 
開發者ID:GoogleCloudPlatform,項目名稱:python-docs-samples,代碼行數:8,代碼來源:snippets.py

示例6: task_bq_run

# 需要導入模塊: from google.appengine.ext import ndb [as 別名]
# 或者: from google.appengine.ext.ndb import OR [as 別名]
def task_bq_run(start, end):
  """Sends TaskRunResult to BigQuery swarming.task_results_run table.

  Multiple queries are run one after the other. This is because ndb.OR() cannot
  be used when the subqueries are inequalities on different fields.
  """
  def _convert(e):
    """Returns a tuple(bq_key, row)."""
    out = swarming_pb2.TaskResult()
    e.to_proto(out)
    return (e.task_id, out)

  failed = 0
  total = 0
  seen = set()

  # Completed
  q = TaskRunResult.query(
      TaskRunResult.completed_ts >= start,
      TaskRunResult.completed_ts <= end,
      # Disable cache for consistency.
      default_options=ndb.QueryOptions(use_cache=False, use_memcache=False))
  cursor = None
  more = True
  while more:
    entities, cursor, more = q.fetch_page(500, start_cursor=cursor)
    rows = [_convert(e) for e in entities]
    seen.update(e.task_id for e in entities)
    total += len(rows)
    failed += bq_state.send_to_bq('task_results_run', rows)

  return total, failed 
開發者ID:luci,項目名稱:luci-py,代碼行數:34,代碼來源:task_result.py

示例7: task_bq_summary

# 需要導入模塊: from google.appengine.ext import ndb [as 別名]
# 或者: from google.appengine.ext.ndb import OR [as 別名]
def task_bq_summary(start, end):
  """Sends TaskResultSummary to BigQuery swarming.task_results_summary table.

  Multiple queries are run one after the other. This is because ndb.OR() cannot
  be used when the subqueries are inequalities on different fields.
  """
  def _convert(e):
    """Returns a tuple(bq_key, row)."""
    out = swarming_pb2.TaskResult()
    e.to_proto(out)
    if not out.HasField('end_time'):
      logging.warning('crbug.com/1064833: task %s does not have end_time %s',
                      e.task_id, out)
    return (e.task_id, out)

  failed = 0
  total = 0
  seen = set()

  # Completed
  q = TaskResultSummary.query(
      TaskResultSummary.completed_ts >= start,
      TaskResultSummary.completed_ts <= end,
      # Disable cache for consistency.
      default_options=ndb.QueryOptions(use_cache=False, use_memcache=False))
  cursor = None
  more = True
  while more:
    entities, cursor, more = q.fetch_page(500, start_cursor=cursor)
    rows = [_convert(e) for e in entities]
    seen.update(e.task_id for e in entities)
    total += len(rows)
    failed += bq_state.send_to_bq('task_results_summary', rows)

  return total, failed 
開發者ID:luci,項目名稱:luci-py,代碼行數:37,代碼來源:task_result.py

示例8: top_lovers_and_lovees

# 需要導入模塊: from google.appengine.ext import ndb [as 別名]
# 或者: from google.appengine.ext.ndb import OR [as 別名]
def top_lovers_and_lovees(utc_week_start, dept=None, limit=20):
    """Synchronously return a list of (employee key, sent love count) and a list of
    (employee key, received love count), each sorted in descending order of love sent
    or received.
    """
    sent_query = LoveCount.query(LoveCount.week_start == utc_week_start)
    if dept:
        sent_query = sent_query.filter(ndb.OR(LoveCount.meta_department == dept, LoveCount.department == dept))

    sent = sent_query.order(-LoveCount.sent_count).fetch()
    lovers = []
    for c in sent:
        if len(lovers) == limit:
            break
        if c.sent_count == 0:
            continue
        employee_key = c.key.parent()
        lovers.append((employee_key, c.sent_count))

    received = sorted(sent, key=lambda c: c.received_count, reverse=True)
    lovees = []
    for c in received:
        if len(lovees) == limit:
            break
        if c.received_count == 0:
            continue
        employee_key = c.key.parent()
        lovees.append((employee_key, c.received_count))

    return (lovers, lovees) 
開發者ID:Yelp,項目名稱:love,代碼行數:32,代碼來源:love_count.py

示例9: get

# 需要導入模塊: from google.appengine.ext import ndb [as 別名]
# 或者: from google.appengine.ext.ndb import OR [as 別名]
def get(self, blockable_id):
    blockable_id = blockable_id.lower()
    blockable = binary_models.Blockable.get_by_id(blockable_id)
    if not blockable:
      self.abort(httplib.NOT_FOUND, explanation='Blockable not found.')

    platform = blockable.GetPlatformName()
    if platform != constants.PLATFORM.WINDOWS:
      self.respond_json(False)
      return

    # Get uncommitted Rules for this blockable that are relevant to the user.
    # Relevant Rules are either global Rules or local Rules that the user was
    # responsible for creating.
    # pylint: disable=g-explicit-bool-comparison, singleton-comparison
    pending_rule_query = rule_models.Bit9Rule.query(
        rule_models.Bit9Rule.in_effect == True,
        rule_models.Bit9Rule.is_committed == False,
        rule_models.Bit9Rule.policy.IN(constants.RULE_POLICY.SET_EXECUTION),
        ndb.OR(
            rule_models.Bit9Rule.host_id == '',               # Global rule
            rule_models.Bit9Rule.user_key == self.user.key),  # User's rule
        ancestor=blockable.key)
    # pylint: enable=g-explicit-bool-comparison, singleton-comparison
    has_pending_rules = bool(pending_rule_query.count(limit=1))

    self.respond_json(has_pending_rules) 
開發者ID:google,項目名稱:upvote,代碼行數:29,代碼來源:blockables.py

示例10: _ChangeModeForGroup

# 需要導入模塊: from google.appengine.ext import ndb [as 別名]
# 或者: from google.appengine.ext.ndb import OR [as 別名]
def _ChangeModeForGroup(self, mode, group, honor_lock=True):
    """Loads all users in the group and sets the client_mode for their hosts.

    This will make sure that hosts are in the right mode if they are members of
    a group, but will not change mode for non-members. Users can be left out of
    groups to be manaully managed.

    Args:
      mode: The new client_mode to set.
      group: The group of users whose hosts should have a mode change.
      honor_lock: bool, whether the client_mode will be honored.
    """
    logging.info('Changing mode to %s for %s', mode, group)

    group_client = group_utils.GroupManager()
    roster = group_client.AllMembers(group)
    logging.info('Fetched %d user(s) from group %s', len(roster), group)

    # Generate the NDB Keys for all users in the roster.
    user_keys = [
        ndb.Key(user_models.User, email) for email in roster if email]

    # ndb.OR falls over if it gets an empty iterable...
    if not user_keys:
      return

    for user_key_group in iter_utils.Grouper(user_keys, BATCH_SIZE):
      user_key_group = filter(None, user_key_group)
      deferred.defer(
          _ChangeModeForHosts, mode, user_key_group, honor_lock,
          _queue=constants.TASK_QUEUE.DEFAULT) 
開發者ID:google,項目名稱:upvote,代碼行數:33,代碼來源:role_syncing.py

示例11: _ChangeModeForHosts

# 需要導入模塊: from google.appengine.ext import ndb [as 別名]
# 或者: from google.appengine.ext.ndb import OR [as 別名]
def _ChangeModeForHosts(mode, user_keys, honor_lock=True):
  """Performs a client mode change for the specified users' hosts.

  Args:
    mode: The new client_mode to set.
    user_keys: The users whose host modes are to be changed.
    honor_lock: bool, whether the client_mode_lock property will be honored.
  """
  predicates = [
      host_models.SantaHost.primary_user == user_utils.EmailToUsername(key.id())
      for key in user_keys]
  query = host_models.SantaHost.query(ndb.OR(*predicates))
  hosts = query.fetch()
  updated_hosts = []

  for host in hosts:

    # If lock is honored, skip locked users.
    if honor_lock and host.client_mode_lock:
      continue

    # Ignore non-changes also.
    if host.client_mode == mode:
      continue

    # Proceed with the mode change.
    host.client_mode = mode
    host.client_mode_lock = False
    updated_hosts.append(host)

  ndb.put_multi(updated_hosts)
  logging.info(
      'Client mode changed to %s for %d host(s)', mode, len(updated_hosts)) 
開發者ID:google,項目名稱:upvote,代碼行數:35,代碼來源:role_syncing.py

示例12: cancel

# 需要導入模塊: from google.appengine.ext import ndb [as 別名]
# 或者: from google.appengine.ext.ndb import OR [as 別名]
def cancel(self, request):
    """Cancel a subset of pending tasks based on the tags.

    Cancellation happens asynchronously, so when this call returns,
    cancellations will not have completed yet.
    """
    logging.debug('request %s', request)
    if not request.tags:
      # Prevent accidental cancellation of everything.
      raise endpoints.BadRequestException(
          'You must specify tags when cancelling multiple tasks.')

    # Check permission.
    # If the caller has global permission, it can access all tasks.
    # Otherwise, it requires a pool tag to check ACL.
    realms.check_tasks_cancel_acl(request.tags)

    now = utils.utcnow()
    cond = task_result.TaskResultSummary.state == task_result.State.PENDING
    if request.kill_running:
      cond = ndb.OR(
          cond,
          task_result.TaskResultSummary.state == task_result.State.RUNNING)
    q = task_result.TaskResultSummary.query(cond).order(
        task_result.TaskResultSummary.key)
    for tag in request.tags:
      q = q.filter(task_result.TaskResultSummary.tags == tag)

    tasks, cursor = datastore_utils.fetch_page(q, request.limit, request.cursor)

    if tasks:
      payload = json.dumps(
          {
            'tasks': [t.task_id for t in tasks],
            'kill_running': request.kill_running or False,
          })
      ok = utils.enqueue_task(
          '/internal/taskqueue/important/tasks/cancel', 'cancel-tasks',
          payload=payload)
      if not ok:
        raise endpoints.InternalServerErrorException(
            'Could not enqueue cancel request, try again later')
    else:
      logging.info('No tasks to cancel.')

    return swarming_rpcs.TasksCancelResponse(
        cursor=cursor,
        matched=len(tasks),
        now=now) 
開發者ID:luci,項目名稱:luci-py,代碼行數:51,代碼來源:handlers_endpoints.py


注:本文中的google.appengine.ext.ndb.OR屬性示例由純淨天空整理自Github/MSDocs等開源代碼及文檔管理平台,相關代碼片段篩選自各路編程大神貢獻的開源項目,源碼版權歸原作者所有,傳播和使用請參考對應項目的License;未經允許,請勿轉載。