Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(71)

Unified Diff: tools/telemetry/third_party/gsutil/third_party/oauth2client/oauth2client/clientsecrets.py

Issue 1260493004: Revert "Add gsutil 4.13 to telemetry/third_party" (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Created 5 years, 5 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
Index: tools/telemetry/third_party/gsutil/third_party/oauth2client/oauth2client/clientsecrets.py
diff --git a/tools/telemetry/third_party/gsutil/third_party/oauth2client/oauth2client/clientsecrets.py b/tools/telemetry/third_party/gsutil/third_party/oauth2client/oauth2client/clientsecrets.py
deleted file mode 100644
index 08a17020d1d9f10bdfd3ddb352b4fc539a6ad54c..0000000000000000000000000000000000000000
--- a/tools/telemetry/third_party/gsutil/third_party/oauth2client/oauth2client/clientsecrets.py
+++ /dev/null
@@ -1,163 +0,0 @@
-# Copyright 2014 Google Inc. All rights reserved.
-#
-# Licensed under the Apache License, Version 2.0 (the "License");
-# you may not use this file except in compliance with the License.
-# You may obtain a copy of the License at
-#
-# http://www.apache.org/licenses/LICENSE-2.0
-#
-# Unless required by applicable law or agreed to in writing, software
-# distributed under the License is distributed on an "AS IS" BASIS,
-# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-# See the License for the specific language governing permissions and
-# limitations under the License.
-
-"""Utilities for reading OAuth 2.0 client secret files.
-
-A client_secrets.json file contains all the information needed to interact with
-an OAuth 2.0 protected service.
-"""
-
-__author__ = 'jcgregorio@google.com (Joe Gregorio)'
-
-import json
-import six
-
-
-# Properties that make a client_secrets.json file valid.
-TYPE_WEB = 'web'
-TYPE_INSTALLED = 'installed'
-
-VALID_CLIENT = {
- TYPE_WEB: {
- 'required': [
- 'client_id',
- 'client_secret',
- 'redirect_uris',
- 'auth_uri',
- 'token_uri',
- ],
- 'string': [
- 'client_id',
- 'client_secret',
- ],
- },
- TYPE_INSTALLED: {
- 'required': [
- 'client_id',
- 'client_secret',
- 'redirect_uris',
- 'auth_uri',
- 'token_uri',
- ],
- 'string': [
- 'client_id',
- 'client_secret',
- ],
- },
-}
-
-
-class Error(Exception):
- """Base error for this module."""
- pass
-
-
-class InvalidClientSecretsError(Error):
- """Format of ClientSecrets file is invalid."""
- pass
-
-
-def _validate_clientsecrets(obj):
- _INVALID_FILE_FORMAT_MSG = (
- 'Invalid file format. See '
- 'https://developers.google.com/api-client-library/'
- 'python/guide/aaa_client_secrets')
-
- if obj is None:
- raise InvalidClientSecretsError(_INVALID_FILE_FORMAT_MSG)
- if len(obj) != 1:
- raise InvalidClientSecretsError(
- _INVALID_FILE_FORMAT_MSG + ' '
- 'Expected a JSON object with a single property for a "web" or '
- '"installed" application')
- client_type = tuple(obj)[0]
- if client_type not in VALID_CLIENT:
- raise InvalidClientSecretsError('Unknown client type: %s.' % (client_type,))
- client_info = obj[client_type]
- for prop_name in VALID_CLIENT[client_type]['required']:
- if prop_name not in client_info:
- raise InvalidClientSecretsError(
- 'Missing property "%s" in a client type of "%s".' % (prop_name,
- client_type))
- for prop_name in VALID_CLIENT[client_type]['string']:
- if client_info[prop_name].startswith('[['):
- raise InvalidClientSecretsError(
- 'Property "%s" is not configured.' % prop_name)
- return client_type, client_info
-
-
-def load(fp):
- obj = json.load(fp)
- return _validate_clientsecrets(obj)
-
-
-def loads(s):
- obj = json.loads(s)
- return _validate_clientsecrets(obj)
-
-
-def _loadfile(filename):
- try:
- with open(filename, 'r') as fp:
- obj = json.load(fp)
- except IOError:
- raise InvalidClientSecretsError('File not found: "%s"' % filename)
- return _validate_clientsecrets(obj)
-
-
-def loadfile(filename, cache=None):
- """Loading of client_secrets JSON file, optionally backed by a cache.
-
- Typical cache storage would be App Engine memcache service,
- but you can pass in any other cache client that implements
- these methods:
-
- * ``get(key, namespace=ns)``
- * ``set(key, value, namespace=ns)``
-
- Usage::
-
- # without caching
- client_type, client_info = loadfile('secrets.json')
- # using App Engine memcache service
- from google.appengine.api import memcache
- client_type, client_info = loadfile('secrets.json', cache=memcache)
-
- Args:
- filename: string, Path to a client_secrets.json file on a filesystem.
- cache: An optional cache service client that implements get() and set()
- methods. If not specified, the file is always being loaded from
- a filesystem.
-
- Raises:
- InvalidClientSecretsError: In case of a validation error or some
- I/O failure. Can happen only on cache miss.
-
- Returns:
- (client_type, client_info) tuple, as _loadfile() normally would.
- JSON contents is validated only during first load. Cache hits are not
- validated.
- """
- _SECRET_NAMESPACE = 'oauth2client:secrets#ns'
-
- if not cache:
- return _loadfile(filename)
-
- obj = cache.get(filename, namespace=_SECRET_NAMESPACE)
- if obj is None:
- client_type, client_info = _loadfile(filename)
- obj = {client_type: client_info}
- cache.set(filename, obj, namespace=_SECRET_NAMESPACE)
-
- return next(six.iteritems(obj))

Powered by Google App Engine
This is Rietveld 408576698