def _IdentifyTokensToRevoke(self):
    with log_utils.Timer(
        'Identify tokens', hide_timing=self._flags.hide_timing):
      self._token_data = token_report_utils.GetTokenStats()
      for stat_key, user_list in self._token_data.iteritems():
        scope, client_id = token_report_utils.UnpackStatKey(stat_key)
        for blacklist_filter in [self._IsRevokedByClientBlacklist,
                                 self._IsRevokedByScopeBlacklist]:
          client_ids_revoked = blacklist_filter(scope, client_id)
          if client_ids_revoked:
            user_set = self._tokens_to_revoke.setdefault(client_id, set())
            user_set.update(set(user_list))
Checks in that laboratory address which experiments are broken and which ones are working.
dataset/ETHPy150Open google/gfw-toolkit/toolkit/utils/token_revoker.py/TokenRevoker._IdentifyTokensToRevoke--crossover with--dataset/ETHPy150Open weblabdeusto/weblabdeusto/server/src/weblab/core/coordinator/checker.py/ResourcesChecker.check_laboratory