Updating Credentials.new_from_json.

New _from_bytes behavior warrants update to docstring. Also
updated 1-letter or other non-descriptive variable names.
This commit is contained in:
Danny Hermes
2015-08-17 08:14:14 -07:00
parent 43f4fb0e74
commit abca14e3b0

View File

@@ -270,31 +270,32 @@ class Credentials(object):
@classmethod
def new_from_json(cls, s):
"""Utility class method to instantiate a Credentials subclass from a JSON
representation produced by to_json().
"""Utility class method to instantiate a Credentials subclass from JSON.
Expects the JSON string to have been produced by to_json().
Args:
s: string, JSON from to_json().
s: string or bytes, JSON from to_json().
Returns:
An instance of the subclass of Credentials that was serialized with
to_json().
"""
s = _from_bytes(s)
data = json.loads(s)
json_string_as_unicode = _from_bytes(s)
data = json.loads(json_string_as_unicode)
# Find and call the right classmethod from_json() to restore the object.
module = data['_module']
module_name = data['_module']
try:
m = __import__(module)
module_obj = __import__(module_name)
except ImportError:
# In case there's an object from the old package structure, update it
module = module.replace('.googleapiclient', '')
m = __import__(module)
module_name = module_name.replace('.googleapiclient', '')
module_obj = __import__(module_name)
m = __import__(module, fromlist=module.split('.')[:-1])
kls = getattr(m, data['_class'])
module_obj = __import__(module_name, fromlist=module_name.split('.')[:-1])
kls = getattr(module_obj, data['_class'])
from_json = getattr(kls, 'from_json')
return from_json(s)
return from_json(json_string_as_unicode)
@classmethod
def from_json(cls, unused_data):