Prep for 1.0 release.
diff --git a/docs/epy/oauth2client.client-pysrc.html b/docs/epy/oauth2client.client-pysrc.html
index 0236ba1..bc6ad1c 100644
--- a/docs/epy/oauth2client.client-pysrc.html
+++ b/docs/epy/oauth2client.client-pysrc.html
@@ -1358,13 +1358,13 @@
<a name="L996"></a><tt class="py-lineno"> 996</tt> <tt class="py-line"><tt class="py-docstring"> clientsecrets.InvalidClientSecretsError if the clientsecrets file is</tt> </tt>
<a name="L997"></a><tt class="py-lineno"> 997</tt> <tt class="py-line"><tt class="py-docstring"> invalid.</tt> </tt>
<a name="L998"></a><tt class="py-lineno"> 998</tt> <tt class="py-line"><tt class="py-docstring"> """</tt> </tt>
-<a name="L999"></a><tt class="py-lineno"> 999</tt> <tt class="py-line"> <tt class="py-name">flow</tt> <tt class="py-op">=</tt> <tt class="py-name">flow_from_clientsecrets</tt><tt class="py-op">(</tt><tt id="link-137" class="py-name" targets="Method oauth2client.locked_file.LockedFile.filename()=oauth2client.locked_file.LockedFile-class.html#filename,Method oauth2client.locked_file._Opener.filename()=oauth2client.locked_file._Opener-class.html#filename"><a title="oauth2client.locked_file.LockedFile.filename
-oauth2client.locked_file._Opener.filename" class="py-name" href="#" onclick="return doclink('link-137', 'filename', 'link-137');">filename</a></tt><tt class="py-op">,</tt> <tt class="py-name">scope</tt><tt class="py-op">,</tt> <tt class="py-name">message</tt><tt class="py-op">=</tt><tt class="py-name">message</tt><tt class="py-op">,</tt> <tt class="py-name">cache</tt><tt class="py-op">=</tt><tt class="py-name">cache</tt><tt class="py-op">,</tt> </tt>
+<a name="L999"></a><tt class="py-lineno"> 999</tt> <tt class="py-line"> <tt class="py-name">flow</tt> <tt class="py-op">=</tt> <tt id="link-137" class="py-name" targets="Function oauth2client.client.flow_from_clientsecrets()=oauth2client.client-module.html#flow_from_clientsecrets"><a title="oauth2client.client.flow_from_clientsecrets" class="py-name" href="#" onclick="return doclink('link-137', 'flow_from_clientsecrets', 'link-137');">flow_from_clientsecrets</a></tt><tt class="py-op">(</tt><tt id="link-138" class="py-name" targets="Method oauth2client.locked_file.LockedFile.filename()=oauth2client.locked_file.LockedFile-class.html#filename,Method oauth2client.locked_file._Opener.filename()=oauth2client.locked_file._Opener-class.html#filename"><a title="oauth2client.locked_file.LockedFile.filename
+oauth2client.locked_file._Opener.filename" class="py-name" href="#" onclick="return doclink('link-138', 'filename', 'link-138');">filename</a></tt><tt class="py-op">,</tt> <tt class="py-name">scope</tt><tt class="py-op">,</tt> <tt class="py-name">message</tt><tt class="py-op">=</tt><tt class="py-name">message</tt><tt class="py-op">,</tt> <tt class="py-name">cache</tt><tt class="py-op">=</tt><tt class="py-name">cache</tt><tt class="py-op">,</tt> </tt>
<a name="L1000"></a><tt class="py-lineno">1000</tt> <tt class="py-line"> <tt class="py-name">redirect_uri</tt><tt class="py-op">=</tt><tt class="py-name">redirect_uri</tt><tt class="py-op">)</tt> </tt>
-<a name="L1001"></a><tt class="py-lineno">1001</tt> <tt class="py-line"> <tt id="link-138" class="py-name"><a title="oauth2client.appengine.CredentialsModel.credentials" class="py-name" href="#" onclick="return doclink('link-138', 'credentials', 'link-41');">credentials</a></tt> <tt class="py-op">=</tt> <tt class="py-name">flow</tt><tt class="py-op">.</tt><tt id="link-139" class="py-name"><a title="oauth2client.client.OAuth2WebServerFlow.step2_exchange" class="py-name" href="#" onclick="return doclink('link-139', 'step2_exchange', 'link-132');">step2_exchange</a></tt><tt class="py-op">(</tt><tt class="py-name">code</tt><tt class="py-op">,</tt> <tt id="link-140" class="py-name"><a title="apiclient.http
-oauth2client.appengine.OAuth2Decorator.http" class="py-name" href="#" onclick="return doclink('link-140', 'http', 'link-47');">http</a></tt><tt class="py-op">=</tt><tt id="link-141" class="py-name"><a title="apiclient.http
-oauth2client.appengine.OAuth2Decorator.http" class="py-name" href="#" onclick="return doclink('link-141', 'http', 'link-47');">http</a></tt><tt class="py-op">)</tt> </tt>
-<a name="L1002"></a><tt class="py-lineno">1002</tt> <tt class="py-line"> <tt class="py-keyword">return</tt> <tt id="link-142" class="py-name"><a title="oauth2client.appengine.CredentialsModel.credentials" class="py-name" href="#" onclick="return doclink('link-142', 'credentials', 'link-41');">credentials</a></tt> </tt>
+<a name="L1001"></a><tt class="py-lineno">1001</tt> <tt class="py-line"> <tt id="link-139" class="py-name"><a title="oauth2client.appengine.CredentialsModel.credentials" class="py-name" href="#" onclick="return doclink('link-139', 'credentials', 'link-41');">credentials</a></tt> <tt class="py-op">=</tt> <tt class="py-name">flow</tt><tt class="py-op">.</tt><tt id="link-140" class="py-name"><a title="oauth2client.client.OAuth2WebServerFlow.step2_exchange" class="py-name" href="#" onclick="return doclink('link-140', 'step2_exchange', 'link-132');">step2_exchange</a></tt><tt class="py-op">(</tt><tt class="py-name">code</tt><tt class="py-op">,</tt> <tt id="link-141" class="py-name"><a title="apiclient.http
+oauth2client.appengine.OAuth2Decorator.http" class="py-name" href="#" onclick="return doclink('link-141', 'http', 'link-47');">http</a></tt><tt class="py-op">=</tt><tt id="link-142" class="py-name"><a title="apiclient.http
+oauth2client.appengine.OAuth2Decorator.http" class="py-name" href="#" onclick="return doclink('link-142', 'http', 'link-47');">http</a></tt><tt class="py-op">)</tt> </tt>
+<a name="L1002"></a><tt class="py-lineno">1002</tt> <tt class="py-line"> <tt class="py-keyword">return</tt> <tt id="link-143" class="py-name"><a title="oauth2client.appengine.CredentialsModel.credentials" class="py-name" href="#" onclick="return doclink('link-143', 'credentials', 'link-41');">credentials</a></tt> </tt>
</div><a name="L1003"></a><tt class="py-lineno">1003</tt> <tt class="py-line"> </tt>
<a name="OAuth2WebServerFlow"></a><div id="OAuth2WebServerFlow-def"><a name="L1004"></a><tt class="py-lineno">1004</tt> <tt class="py-line"> </tt>
<a name="L1005"></a><tt class="py-lineno">1005</tt> <a class="py-toggle" href="#" id="OAuth2WebServerFlow-toggle" onclick="return toggle('OAuth2WebServerFlow');">-</a><tt class="py-line"><tt class="py-keyword">class</tt> <a class="py-def-name" href="oauth2client.client.OAuth2WebServerFlow-class.html">OAuth2WebServerFlow</a><tt class="py-op">(</tt><tt class="py-base-class">Flow</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
@@ -1373,7 +1373,7 @@
<a name="L1008"></a><tt class="py-lineno">1008</tt> <tt class="py-line"><tt class="py-docstring"> OAuth2WebServerFlow objects may be safely pickled and unpickled.</tt> </tt>
<a name="L1009"></a><tt class="py-lineno">1009</tt> <tt class="py-line"><tt class="py-docstring"> """</tt> </tt>
<a name="L1010"></a><tt class="py-lineno">1010</tt> <tt class="py-line"> </tt>
-<a name="L1011"></a><tt class="py-lineno">1011</tt> <tt class="py-line"> <tt class="py-decorator">@</tt><tt class="py-decorator">util</tt><tt class="py-op">.</tt><tt id="link-143" class="py-name"><a title="oauth2client.util.positional" class="py-name" href="#" onclick="return doclink('link-143', 'positional', 'link-46');">positional</a></tt><tt class="py-op">(</tt><tt class="py-number">4</tt><tt class="py-op">)</tt> </tt>
+<a name="L1011"></a><tt class="py-lineno">1011</tt> <tt class="py-line"> <tt class="py-decorator">@</tt><tt class="py-decorator">util</tt><tt class="py-op">.</tt><tt id="link-144" class="py-name"><a title="oauth2client.util.positional" class="py-name" href="#" onclick="return doclink('link-144', 'positional', 'link-46');">positional</a></tt><tt class="py-op">(</tt><tt class="py-number">4</tt><tt class="py-op">)</tt> </tt>
<a name="OAuth2WebServerFlow.__init__"></a><div id="OAuth2WebServerFlow.__init__-def"><a name="L1012"></a><tt class="py-lineno">1012</tt> <a class="py-toggle" href="#" id="OAuth2WebServerFlow.__init__-toggle" onclick="return toggle('OAuth2WebServerFlow.__init__');">-</a><tt class="py-line"> <tt class="py-keyword">def</tt> <a class="py-def-name" href="oauth2client.client.OAuth2WebServerFlow-class.html#__init__">__init__</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">,</tt> <tt class="py-param">client_id</tt><tt class="py-op">,</tt> <tt class="py-param">client_secret</tt><tt class="py-op">,</tt> <tt class="py-param">scope</tt><tt class="py-op">,</tt> </tt>
<a name="L1013"></a><tt class="py-lineno">1013</tt> <tt class="py-line"> <tt class="py-param">redirect_uri</tt><tt class="py-op">=</tt><tt class="py-name">None</tt><tt class="py-op">,</tt> </tt>
<a name="L1014"></a><tt class="py-lineno">1014</tt> <tt class="py-line"> <tt class="py-param">user_agent</tt><tt class="py-op">=</tt><tt class="py-name">None</tt><tt class="py-op">,</tt> </tt>
@@ -1412,7 +1412,7 @@
<a name="L1047"></a><tt class="py-lineno">1047</tt> <tt class="py-line"> <tt class="py-op">}</tt> </tt>
<a name="L1048"></a><tt class="py-lineno">1048</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">params</tt><tt class="py-op">.</tt><tt class="py-name">update</tt><tt class="py-op">(</tt><tt class="py-name">kwargs</tt><tt class="py-op">)</tt> </tt>
</div><a name="L1049"></a><tt class="py-lineno">1049</tt> <tt class="py-line"> </tt>
-<a name="L1050"></a><tt class="py-lineno">1050</tt> <tt class="py-line"> <tt class="py-decorator">@</tt><tt class="py-decorator">util</tt><tt class="py-op">.</tt><tt id="link-144" class="py-name"><a title="oauth2client.util.positional" class="py-name" href="#" onclick="return doclink('link-144', 'positional', 'link-46');">positional</a></tt><tt class="py-op">(</tt><tt class="py-number">1</tt><tt class="py-op">)</tt> </tt>
+<a name="L1050"></a><tt class="py-lineno">1050</tt> <tt class="py-line"> <tt class="py-decorator">@</tt><tt class="py-decorator">util</tt><tt class="py-op">.</tt><tt id="link-145" class="py-name"><a title="oauth2client.util.positional" class="py-name" href="#" onclick="return doclink('link-145', 'positional', 'link-46');">positional</a></tt><tt class="py-op">(</tt><tt class="py-number">1</tt><tt class="py-op">)</tt> </tt>
<a name="OAuth2WebServerFlow.step1_get_authorize_url"></a><div id="OAuth2WebServerFlow.step1_get_authorize_url-def"><a name="L1051"></a><tt class="py-lineno">1051</tt> <a class="py-toggle" href="#" id="OAuth2WebServerFlow.step1_get_authorize_url-toggle" onclick="return toggle('OAuth2WebServerFlow.step1_get_authorize_url');">-</a><tt class="py-line"> <tt class="py-keyword">def</tt> <a class="py-def-name" href="oauth2client.client.OAuth2WebServerFlow-class.html#step1_get_authorize_url">step1_get_authorize_url</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">,</tt> <tt class="py-param">redirect_uri</tt><tt class="py-op">=</tt><tt class="py-name">None</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
</div><div id="OAuth2WebServerFlow.step1_get_authorize_url-collapsed" style="display:none;" pad="++++" indent="++++++"></div><div id="OAuth2WebServerFlow.step1_get_authorize_url-expanded"><a name="L1052"></a><tt class="py-lineno">1052</tt> <tt class="py-line"> <tt class="py-docstring">"""Returns a URI to redirect to the provider.</tt> </tt>
<a name="L1053"></a><tt class="py-lineno">1053</tt> <tt class="py-line"><tt class="py-docstring"></tt> </tt>
@@ -1426,14 +1426,14 @@
<a name="L1061"></a><tt class="py-lineno">1061</tt> <tt class="py-line"><tt class="py-docstring"> A URI as a string to redirect the user to begin the authorization flow.</tt> </tt>
<a name="L1062"></a><tt class="py-lineno">1062</tt> <tt class="py-line"><tt class="py-docstring"> """</tt> </tt>
<a name="L1063"></a><tt class="py-lineno">1063</tt> <tt class="py-line"> <tt class="py-keyword">if</tt> <tt class="py-name">redirect_uri</tt> <tt class="py-keyword">is</tt> <tt class="py-keyword">not</tt> <tt class="py-name">None</tt><tt class="py-op">:</tt> </tt>
-<a name="L1064"></a><tt class="py-lineno">1064</tt> <tt class="py-line"> <tt id="link-145" class="py-name"><a title="apiclient.discovery.logger
+<a name="L1064"></a><tt class="py-lineno">1064</tt> <tt class="py-line"> <tt id="link-146" class="py-name"><a title="apiclient.discovery.logger
oauth2client.appengine.logger
oauth2client.client.logger
oauth2client.crypt.logger
oauth2client.gce.logger
oauth2client.locked_file.logger
oauth2client.multistore_file.logger
-oauth2client.util.logger" class="py-name" href="#" onclick="return doclink('link-145', 'logger', 'link-16');">logger</a></tt><tt class="py-op">.</tt><tt class="py-name">warning</tt><tt class="py-op">(</tt><tt class="py-op">(</tt><tt class="py-string">'The redirect_uri parameter for'</tt> </tt>
+oauth2client.util.logger" class="py-name" href="#" onclick="return doclink('link-146', 'logger', 'link-16');">logger</a></tt><tt class="py-op">.</tt><tt class="py-name">warning</tt><tt class="py-op">(</tt><tt class="py-op">(</tt><tt class="py-string">'The redirect_uri parameter for'</tt> </tt>
<a name="L1065"></a><tt class="py-lineno">1065</tt> <tt class="py-line"> <tt class="py-string">'OAuth2WebServerFlow.step1_get_authorize_url is deprecated. Please'</tt> </tt>
<a name="L1066"></a><tt class="py-lineno">1066</tt> <tt class="py-line"> <tt class="py-string">'move to passing the redirect_uri in via the constructor.'</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
<a name="L1067"></a><tt class="py-lineno">1067</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">redirect_uri</tt> <tt class="py-op">=</tt> <tt class="py-name">redirect_uri</tt> </tt>
@@ -1453,7 +1453,7 @@
<a name="L1081"></a><tt class="py-lineno">1081</tt> <tt class="py-line"> <tt class="py-name">parts</tt><tt class="py-op">[</tt><tt class="py-number">4</tt><tt class="py-op">]</tt> <tt class="py-op">=</tt> <tt class="py-name">urllib</tt><tt class="py-op">.</tt><tt class="py-name">urlencode</tt><tt class="py-op">(</tt><tt class="py-name">query</tt><tt class="py-op">)</tt> </tt>
<a name="L1082"></a><tt class="py-lineno">1082</tt> <tt class="py-line"> <tt class="py-keyword">return</tt> <tt class="py-name">urlparse</tt><tt class="py-op">.</tt><tt class="py-name">urlunparse</tt><tt class="py-op">(</tt><tt class="py-name">parts</tt><tt class="py-op">)</tt> </tt>
</div><a name="L1083"></a><tt class="py-lineno">1083</tt> <tt class="py-line"> </tt>
-<a name="L1084"></a><tt class="py-lineno">1084</tt> <tt class="py-line"> <tt class="py-decorator">@</tt><tt class="py-decorator">util</tt><tt class="py-op">.</tt><tt id="link-146" class="py-name"><a title="oauth2client.util.positional" class="py-name" href="#" onclick="return doclink('link-146', 'positional', 'link-46');">positional</a></tt><tt class="py-op">(</tt><tt class="py-number">2</tt><tt class="py-op">)</tt> </tt>
+<a name="L1084"></a><tt class="py-lineno">1084</tt> <tt class="py-line"> <tt class="py-decorator">@</tt><tt class="py-decorator">util</tt><tt class="py-op">.</tt><tt id="link-147" class="py-name"><a title="oauth2client.util.positional" class="py-name" href="#" onclick="return doclink('link-147', 'positional', 'link-46');">positional</a></tt><tt class="py-op">(</tt><tt class="py-number">2</tt><tt class="py-op">)</tt> </tt>
<a name="OAuth2WebServerFlow.step2_exchange"></a><div id="OAuth2WebServerFlow.step2_exchange-def"><a name="L1085"></a><tt class="py-lineno">1085</tt> <a class="py-toggle" href="#" id="OAuth2WebServerFlow.step2_exchange-toggle" onclick="return toggle('OAuth2WebServerFlow.step2_exchange');">-</a><tt class="py-line"> <tt class="py-keyword">def</tt> <a class="py-def-name" href="oauth2client.client.OAuth2WebServerFlow-class.html#step2_exchange">step2_exchange</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">,</tt> <tt class="py-param">code</tt><tt class="py-op">,</tt> <tt class="py-param">http</tt><tt class="py-op">=</tt><tt class="py-name">None</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
</div><div id="OAuth2WebServerFlow.step2_exchange-collapsed" style="display:none;" pad="++++" indent="++++++"></div><div id="OAuth2WebServerFlow.step2_exchange-expanded"><a name="L1086"></a><tt class="py-lineno">1086</tt> <tt class="py-line"> <tt class="py-docstring">"""Exhanges a code for OAuth2Credentials.</tt> </tt>
<a name="L1087"></a><tt class="py-lineno">1087</tt> <tt class="py-line"><tt class="py-docstring"></tt> </tt>
@@ -1477,7 +1477,7 @@
<a name="L1105"></a><tt class="py-lineno">1105</tt> <tt class="py-line"> <tt class="py-name">error_msg</tt> <tt class="py-op">=</tt> <tt class="py-name">code</tt><tt class="py-op">[</tt><tt class="py-string">'error'</tt><tt class="py-op">]</tt> </tt>
<a name="L1106"></a><tt class="py-lineno">1106</tt> <tt class="py-line"> <tt class="py-keyword">else</tt><tt class="py-op">:</tt> </tt>
<a name="L1107"></a><tt class="py-lineno">1107</tt> <tt class="py-line"> <tt class="py-name">error_msg</tt> <tt class="py-op">=</tt> <tt class="py-string">'No code was supplied in the query parameters.'</tt> </tt>
-<a name="L1108"></a><tt class="py-lineno">1108</tt> <tt class="py-line"> <tt class="py-keyword">raise</tt> <tt id="link-147" class="py-name" targets="Class oauth2client.client.FlowExchangeError=oauth2client.client.FlowExchangeError-class.html"><a title="oauth2client.client.FlowExchangeError" class="py-name" href="#" onclick="return doclink('link-147', 'FlowExchangeError', 'link-147');">FlowExchangeError</a></tt><tt class="py-op">(</tt><tt class="py-name">error_msg</tt><tt class="py-op">)</tt> </tt>
+<a name="L1108"></a><tt class="py-lineno">1108</tt> <tt class="py-line"> <tt class="py-keyword">raise</tt> <tt id="link-148" class="py-name" targets="Class oauth2client.client.FlowExchangeError=oauth2client.client.FlowExchangeError-class.html"><a title="oauth2client.client.FlowExchangeError" class="py-name" href="#" onclick="return doclink('link-148', 'FlowExchangeError', 'link-148');">FlowExchangeError</a></tt><tt class="py-op">(</tt><tt class="py-name">error_msg</tt><tt class="py-op">)</tt> </tt>
<a name="L1109"></a><tt class="py-lineno">1109</tt> <tt class="py-line"> <tt class="py-keyword">else</tt><tt class="py-op">:</tt> </tt>
<a name="L1110"></a><tt class="py-lineno">1110</tt> <tt class="py-line"> <tt class="py-name">code</tt> <tt class="py-op">=</tt> <tt class="py-name">code</tt><tt class="py-op">[</tt><tt class="py-string">'code'</tt><tt class="py-op">]</tt> </tt>
<a name="L1111"></a><tt class="py-lineno">1111</tt> <tt class="py-line"> </tt>
@@ -1496,63 +1496,63 @@
<a name="L1124"></a><tt class="py-lineno">1124</tt> <tt class="py-line"> <tt class="py-keyword">if</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">user_agent</tt> <tt class="py-keyword">is</tt> <tt class="py-keyword">not</tt> <tt class="py-name">None</tt><tt class="py-op">:</tt> </tt>
<a name="L1125"></a><tt class="py-lineno">1125</tt> <tt class="py-line"> <tt class="py-name">headers</tt><tt class="py-op">[</tt><tt class="py-string">'user-agent'</tt><tt class="py-op">]</tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">user_agent</tt> </tt>
<a name="L1126"></a><tt class="py-lineno">1126</tt> <tt class="py-line"> </tt>
-<a name="L1127"></a><tt class="py-lineno">1127</tt> <tt class="py-line"> <tt class="py-keyword">if</tt> <tt id="link-148" class="py-name"><a title="apiclient.http
-oauth2client.appengine.OAuth2Decorator.http" class="py-name" href="#" onclick="return doclink('link-148', 'http', 'link-47');">http</a></tt> <tt class="py-keyword">is</tt> <tt class="py-name">None</tt><tt class="py-op">:</tt> </tt>
-<a name="L1128"></a><tt class="py-lineno">1128</tt> <tt class="py-line"> <tt id="link-149" class="py-name"><a title="apiclient.http
-oauth2client.appengine.OAuth2Decorator.http" class="py-name" href="#" onclick="return doclink('link-149', 'http', 'link-47');">http</a></tt> <tt class="py-op">=</tt> <tt class="py-name">httplib2</tt><tt class="py-op">.</tt><tt class="py-name">Http</tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
+<a name="L1127"></a><tt class="py-lineno">1127</tt> <tt class="py-line"> <tt class="py-keyword">if</tt> <tt id="link-149" class="py-name"><a title="apiclient.http
+oauth2client.appengine.OAuth2Decorator.http" class="py-name" href="#" onclick="return doclink('link-149', 'http', 'link-47');">http</a></tt> <tt class="py-keyword">is</tt> <tt class="py-name">None</tt><tt class="py-op">:</tt> </tt>
+<a name="L1128"></a><tt class="py-lineno">1128</tt> <tt class="py-line"> <tt id="link-150" class="py-name"><a title="apiclient.http
+oauth2client.appengine.OAuth2Decorator.http" class="py-name" href="#" onclick="return doclink('link-150', 'http', 'link-47');">http</a></tt> <tt class="py-op">=</tt> <tt class="py-name">httplib2</tt><tt class="py-op">.</tt><tt class="py-name">Http</tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
<a name="L1129"></a><tt class="py-lineno">1129</tt> <tt class="py-line"> </tt>
-<a name="L1130"></a><tt class="py-lineno">1130</tt> <tt class="py-line"> <tt class="py-name">resp</tt><tt class="py-op">,</tt> <tt class="py-name">content</tt> <tt class="py-op">=</tt> <tt id="link-150" class="py-name"><a title="apiclient.http
-oauth2client.appengine.OAuth2Decorator.http" class="py-name" href="#" onclick="return doclink('link-150', 'http', 'link-47');">http</a></tt><tt class="py-op">.</tt><tt id="link-151" class="py-name"><a title="apiclient.http.HttpMock.request
+<a name="L1130"></a><tt class="py-lineno">1130</tt> <tt class="py-line"> <tt class="py-name">resp</tt><tt class="py-op">,</tt> <tt class="py-name">content</tt> <tt class="py-op">=</tt> <tt id="link-151" class="py-name"><a title="apiclient.http
+oauth2client.appengine.OAuth2Decorator.http" class="py-name" href="#" onclick="return doclink('link-151', 'http', 'link-47');">http</a></tt><tt class="py-op">.</tt><tt id="link-152" class="py-name"><a title="apiclient.http.HttpMock.request
apiclient.http.HttpMockSequence.request
apiclient.model.BaseModel.request
-apiclient.model.Model.request" class="py-name" href="#" onclick="return doclink('link-151', 'request', 'link-48');">request</a></tt><tt class="py-op">(</tt><tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">token_uri</tt><tt class="py-op">,</tt> <tt class="py-name">method</tt><tt class="py-op">=</tt><tt class="py-string">'POST'</tt><tt class="py-op">,</tt> <tt class="py-name">body</tt><tt class="py-op">=</tt><tt class="py-name">body</tt><tt class="py-op">,</tt> </tt>
+apiclient.model.Model.request" class="py-name" href="#" onclick="return doclink('link-152', 'request', 'link-48');">request</a></tt><tt class="py-op">(</tt><tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">token_uri</tt><tt class="py-op">,</tt> <tt class="py-name">method</tt><tt class="py-op">=</tt><tt class="py-string">'POST'</tt><tt class="py-op">,</tt> <tt class="py-name">body</tt><tt class="py-op">=</tt><tt class="py-name">body</tt><tt class="py-op">,</tt> </tt>
<a name="L1131"></a><tt class="py-lineno">1131</tt> <tt class="py-line"> <tt class="py-name">headers</tt><tt class="py-op">=</tt><tt class="py-name">headers</tt><tt class="py-op">)</tt> </tt>
-<a name="L1132"></a><tt class="py-lineno">1132</tt> <tt class="py-line"> <tt class="py-name">d</tt> <tt class="py-op">=</tt> <tt id="link-152" class="py-name" targets="Function oauth2client.client._parse_exchange_token_response()=oauth2client.client-module.html#_parse_exchange_token_response"><a title="oauth2client.client._parse_exchange_token_response" class="py-name" href="#" onclick="return doclink('link-152', '_parse_exchange_token_response', 'link-152');">_parse_exchange_token_response</a></tt><tt class="py-op">(</tt><tt class="py-name">content</tt><tt class="py-op">)</tt> </tt>
+<a name="L1132"></a><tt class="py-lineno">1132</tt> <tt class="py-line"> <tt class="py-name">d</tt> <tt class="py-op">=</tt> <tt id="link-153" class="py-name" targets="Function oauth2client.client._parse_exchange_token_response()=oauth2client.client-module.html#_parse_exchange_token_response"><a title="oauth2client.client._parse_exchange_token_response" class="py-name" href="#" onclick="return doclink('link-153', '_parse_exchange_token_response', 'link-153');">_parse_exchange_token_response</a></tt><tt class="py-op">(</tt><tt class="py-name">content</tt><tt class="py-op">)</tt> </tt>
<a name="L1133"></a><tt class="py-lineno">1133</tt> <tt class="py-line"> <tt class="py-keyword">if</tt> <tt class="py-name">resp</tt><tt class="py-op">.</tt><tt class="py-name">status</tt> <tt class="py-op">==</tt> <tt class="py-number">200</tt> <tt class="py-keyword">and</tt> <tt class="py-string">'access_token'</tt> <tt class="py-keyword">in</tt> <tt class="py-name">d</tt><tt class="py-op">:</tt> </tt>
<a name="L1134"></a><tt class="py-lineno">1134</tt> <tt class="py-line"> <tt class="py-name">access_token</tt> <tt class="py-op">=</tt> <tt class="py-name">d</tt><tt class="py-op">[</tt><tt class="py-string">'access_token'</tt><tt class="py-op">]</tt> </tt>
-<a name="L1135"></a><tt class="py-lineno">1135</tt> <tt class="py-line"> <tt class="py-name">refresh_token</tt> <tt class="py-op">=</tt> <tt class="py-name">d</tt><tt class="py-op">.</tt><tt id="link-153" class="py-name"><a title="apiclient.schema.Schemas.get
+<a name="L1135"></a><tt class="py-lineno">1135</tt> <tt class="py-line"> <tt class="py-name">refresh_token</tt> <tt class="py-op">=</tt> <tt class="py-name">d</tt><tt class="py-op">.</tt><tt id="link-154" class="py-name"><a title="apiclient.schema.Schemas.get
oauth2client.client.MemoryCache.get
-oauth2client.client.Storage.get" class="py-name" href="#" onclick="return doclink('link-153', 'get', 'link-20');">get</a></tt><tt class="py-op">(</tt><tt class="py-string">'refresh_token'</tt><tt class="py-op">,</tt> <tt class="py-name">None</tt><tt class="py-op">)</tt> </tt>
+oauth2client.client.Storage.get" class="py-name" href="#" onclick="return doclink('link-154', 'get', 'link-20');">get</a></tt><tt class="py-op">(</tt><tt class="py-string">'refresh_token'</tt><tt class="py-op">,</tt> <tt class="py-name">None</tt><tt class="py-op">)</tt> </tt>
<a name="L1136"></a><tt class="py-lineno">1136</tt> <tt class="py-line"> <tt class="py-name">token_expiry</tt> <tt class="py-op">=</tt> <tt class="py-name">None</tt> </tt>
<a name="L1137"></a><tt class="py-lineno">1137</tt> <tt class="py-line"> <tt class="py-keyword">if</tt> <tt class="py-string">'expires_in'</tt> <tt class="py-keyword">in</tt> <tt class="py-name">d</tt><tt class="py-op">:</tt> </tt>
<a name="L1138"></a><tt class="py-lineno">1138</tt> <tt class="py-line"> <tt class="py-name">token_expiry</tt> <tt class="py-op">=</tt> <tt class="py-name">datetime</tt><tt class="py-op">.</tt><tt class="py-name">datetime</tt><tt class="py-op">.</tt><tt class="py-name">utcnow</tt><tt class="py-op">(</tt><tt class="py-op">)</tt> <tt class="py-op">+</tt> <tt class="py-name">datetime</tt><tt class="py-op">.</tt><tt class="py-name">timedelta</tt><tt class="py-op">(</tt> </tt>
<a name="L1139"></a><tt class="py-lineno">1139</tt> <tt class="py-line"> <tt class="py-name">seconds</tt><tt class="py-op">=</tt><tt class="py-name">int</tt><tt class="py-op">(</tt><tt class="py-name">d</tt><tt class="py-op">[</tt><tt class="py-string">'expires_in'</tt><tt class="py-op">]</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
<a name="L1140"></a><tt class="py-lineno">1140</tt> <tt class="py-line"> </tt>
<a name="L1141"></a><tt class="py-lineno">1141</tt> <tt class="py-line"> <tt class="py-keyword">if</tt> <tt class="py-string">'id_token'</tt> <tt class="py-keyword">in</tt> <tt class="py-name">d</tt><tt class="py-op">:</tt> </tt>
-<a name="L1142"></a><tt class="py-lineno">1142</tt> <tt class="py-line"> <tt class="py-name">d</tt><tt class="py-op">[</tt><tt class="py-string">'id_token'</tt><tt class="py-op">]</tt> <tt class="py-op">=</tt> <tt id="link-154" class="py-name" targets="Function oauth2client.client._extract_id_token()=oauth2client.client-module.html#_extract_id_token"><a title="oauth2client.client._extract_id_token" class="py-name" href="#" onclick="return doclink('link-154', '_extract_id_token', 'link-154');">_extract_id_token</a></tt><tt class="py-op">(</tt><tt class="py-name">d</tt><tt class="py-op">[</tt><tt class="py-string">'id_token'</tt><tt class="py-op">]</tt><tt class="py-op">)</tt> </tt>
+<a name="L1142"></a><tt class="py-lineno">1142</tt> <tt class="py-line"> <tt class="py-name">d</tt><tt class="py-op">[</tt><tt class="py-string">'id_token'</tt><tt class="py-op">]</tt> <tt class="py-op">=</tt> <tt id="link-155" class="py-name" targets="Function oauth2client.client._extract_id_token()=oauth2client.client-module.html#_extract_id_token"><a title="oauth2client.client._extract_id_token" class="py-name" href="#" onclick="return doclink('link-155', '_extract_id_token', 'link-155');">_extract_id_token</a></tt><tt class="py-op">(</tt><tt class="py-name">d</tt><tt class="py-op">[</tt><tt class="py-string">'id_token'</tt><tt class="py-op">]</tt><tt class="py-op">)</tt> </tt>
<a name="L1143"></a><tt class="py-lineno">1143</tt> <tt class="py-line"> </tt>
-<a name="L1144"></a><tt class="py-lineno">1144</tt> <tt class="py-line"> <tt id="link-155" class="py-name"><a title="apiclient.discovery.logger
+<a name="L1144"></a><tt class="py-lineno">1144</tt> <tt class="py-line"> <tt id="link-156" class="py-name"><a title="apiclient.discovery.logger
oauth2client.appengine.logger
oauth2client.client.logger
oauth2client.crypt.logger
oauth2client.gce.logger
oauth2client.locked_file.logger
oauth2client.multistore_file.logger
-oauth2client.util.logger" class="py-name" href="#" onclick="return doclink('link-155', 'logger', 'link-16');">logger</a></tt><tt class="py-op">.</tt><tt class="py-name">info</tt><tt class="py-op">(</tt><tt class="py-string">'Successfully retrieved access token'</tt><tt class="py-op">)</tt> </tt>
-<a name="L1145"></a><tt class="py-lineno">1145</tt> <tt class="py-line"> <tt class="py-keyword">return</tt> <tt id="link-156" class="py-name"><a title="oauth2client.client.OAuth2Credentials" class="py-name" href="#" onclick="return doclink('link-156', 'OAuth2Credentials', 'link-69');">OAuth2Credentials</a></tt><tt class="py-op">(</tt><tt class="py-name">access_token</tt><tt class="py-op">,</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">client_id</tt><tt class="py-op">,</tt> </tt>
+oauth2client.util.logger" class="py-name" href="#" onclick="return doclink('link-156', 'logger', 'link-16');">logger</a></tt><tt class="py-op">.</tt><tt class="py-name">info</tt><tt class="py-op">(</tt><tt class="py-string">'Successfully retrieved access token'</tt><tt class="py-op">)</tt> </tt>
+<a name="L1145"></a><tt class="py-lineno">1145</tt> <tt class="py-line"> <tt class="py-keyword">return</tt> <tt id="link-157" class="py-name"><a title="oauth2client.client.OAuth2Credentials" class="py-name" href="#" onclick="return doclink('link-157', 'OAuth2Credentials', 'link-69');">OAuth2Credentials</a></tt><tt class="py-op">(</tt><tt class="py-name">access_token</tt><tt class="py-op">,</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">client_id</tt><tt class="py-op">,</tt> </tt>
<a name="L1146"></a><tt class="py-lineno">1146</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">client_secret</tt><tt class="py-op">,</tt> <tt class="py-name">refresh_token</tt><tt class="py-op">,</tt> <tt class="py-name">token_expiry</tt><tt class="py-op">,</tt> </tt>
<a name="L1147"></a><tt class="py-lineno">1147</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">token_uri</tt><tt class="py-op">,</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">user_agent</tt><tt class="py-op">,</tt> </tt>
-<a name="L1148"></a><tt class="py-lineno">1148</tt> <tt class="py-line"> <tt class="py-name">id_token</tt><tt class="py-op">=</tt><tt class="py-name">d</tt><tt class="py-op">.</tt><tt id="link-157" class="py-name"><a title="apiclient.schema.Schemas.get
+<a name="L1148"></a><tt class="py-lineno">1148</tt> <tt class="py-line"> <tt class="py-name">id_token</tt><tt class="py-op">=</tt><tt class="py-name">d</tt><tt class="py-op">.</tt><tt id="link-158" class="py-name"><a title="apiclient.schema.Schemas.get
oauth2client.client.MemoryCache.get
-oauth2client.client.Storage.get" class="py-name" href="#" onclick="return doclink('link-157', 'get', 'link-20');">get</a></tt><tt class="py-op">(</tt><tt class="py-string">'id_token'</tt><tt class="py-op">,</tt> <tt class="py-name">None</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
+oauth2client.client.Storage.get" class="py-name" href="#" onclick="return doclink('link-158', 'get', 'link-20');">get</a></tt><tt class="py-op">(</tt><tt class="py-string">'id_token'</tt><tt class="py-op">,</tt> <tt class="py-name">None</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
<a name="L1149"></a><tt class="py-lineno">1149</tt> <tt class="py-line"> <tt class="py-keyword">else</tt><tt class="py-op">:</tt> </tt>
-<a name="L1150"></a><tt class="py-lineno">1150</tt> <tt class="py-line"> <tt id="link-158" class="py-name"><a title="apiclient.discovery.logger
+<a name="L1150"></a><tt class="py-lineno">1150</tt> <tt class="py-line"> <tt id="link-159" class="py-name"><a title="apiclient.discovery.logger
oauth2client.appengine.logger
oauth2client.client.logger
oauth2client.crypt.logger
oauth2client.gce.logger
oauth2client.locked_file.logger
oauth2client.multistore_file.logger
-oauth2client.util.logger" class="py-name" href="#" onclick="return doclink('link-158', 'logger', 'link-16');">logger</a></tt><tt class="py-op">.</tt><tt class="py-name">info</tt><tt class="py-op">(</tt><tt class="py-string">'Failed to retrieve access token: %s'</tt> <tt class="py-op">%</tt> <tt class="py-name">content</tt><tt class="py-op">)</tt> </tt>
+oauth2client.util.logger" class="py-name" href="#" onclick="return doclink('link-159', 'logger', 'link-16');">logger</a></tt><tt class="py-op">.</tt><tt class="py-name">info</tt><tt class="py-op">(</tt><tt class="py-string">'Failed to retrieve access token: %s'</tt> <tt class="py-op">%</tt> <tt class="py-name">content</tt><tt class="py-op">)</tt> </tt>
<a name="L1151"></a><tt class="py-lineno">1151</tt> <tt class="py-line"> <tt class="py-keyword">if</tt> <tt class="py-string">'error'</tt> <tt class="py-keyword">in</tt> <tt class="py-name">d</tt><tt class="py-op">:</tt> </tt>
<a name="L1152"></a><tt class="py-lineno">1152</tt> <tt class="py-line"> <tt class="py-comment"># you never know what those providers got to say</tt> </tt>
<a name="L1153"></a><tt class="py-lineno">1153</tt> <tt class="py-line"> <tt class="py-name">error_msg</tt> <tt class="py-op">=</tt> <tt class="py-name">unicode</tt><tt class="py-op">(</tt><tt class="py-name">d</tt><tt class="py-op">[</tt><tt class="py-string">'error'</tt><tt class="py-op">]</tt><tt class="py-op">)</tt> </tt>
<a name="L1154"></a><tt class="py-lineno">1154</tt> <tt class="py-line"> <tt class="py-keyword">else</tt><tt class="py-op">:</tt> </tt>
<a name="L1155"></a><tt class="py-lineno">1155</tt> <tt class="py-line"> <tt class="py-name">error_msg</tt> <tt class="py-op">=</tt> <tt class="py-string">'Invalid response: %s.'</tt> <tt class="py-op">%</tt> <tt class="py-name">str</tt><tt class="py-op">(</tt><tt class="py-name">resp</tt><tt class="py-op">.</tt><tt class="py-name">status</tt><tt class="py-op">)</tt> </tt>
-<a name="L1156"></a><tt class="py-lineno">1156</tt> <tt class="py-line"> <tt class="py-keyword">raise</tt> <tt id="link-159" class="py-name"><a title="oauth2client.client.FlowExchangeError" class="py-name" href="#" onclick="return doclink('link-159', 'FlowExchangeError', 'link-147');">FlowExchangeError</a></tt><tt class="py-op">(</tt><tt class="py-name">error_msg</tt><tt class="py-op">)</tt> </tt>
+<a name="L1156"></a><tt class="py-lineno">1156</tt> <tt class="py-line"> <tt class="py-keyword">raise</tt> <tt id="link-160" class="py-name"><a title="oauth2client.client.FlowExchangeError" class="py-name" href="#" onclick="return doclink('link-160', 'FlowExchangeError', 'link-148');">FlowExchangeError</a></tt><tt class="py-op">(</tt><tt class="py-name">error_msg</tt><tt class="py-op">)</tt> </tt>
</div></div><a name="L1157"></a><tt class="py-lineno">1157</tt> <tt class="py-line"> </tt>
<a name="flow_from_clientsecrets"></a><div id="flow_from_clientsecrets-def"><a name="L1158"></a><tt class="py-lineno">1158</tt> <tt class="py-line"> </tt>
-<a name="L1159"></a><tt class="py-lineno">1159</tt> <tt class="py-line"><tt class="py-decorator">@</tt><tt class="py-decorator">util</tt><tt class="py-op">.</tt><tt id="link-160" class="py-name"><a title="oauth2client.util.positional" class="py-name" href="#" onclick="return doclink('link-160', 'positional', 'link-46');">positional</a></tt><tt class="py-op">(</tt><tt class="py-number">2</tt><tt class="py-op">)</tt> </tt>
+<a name="L1159"></a><tt class="py-lineno">1159</tt> <tt class="py-line"><tt class="py-decorator">@</tt><tt class="py-decorator">util</tt><tt class="py-op">.</tt><tt id="link-161" class="py-name"><a title="oauth2client.util.positional" class="py-name" href="#" onclick="return doclink('link-161', 'positional', 'link-46');">positional</a></tt><tt class="py-op">(</tt><tt class="py-number">2</tt><tt class="py-op">)</tt> </tt>
<a name="L1160"></a><tt class="py-lineno">1160</tt> <a class="py-toggle" href="#" id="flow_from_clientsecrets-toggle" onclick="return toggle('flow_from_clientsecrets');">-</a><tt class="py-line"><tt class="py-keyword">def</tt> <a class="py-def-name" href="oauth2client.client-module.html#flow_from_clientsecrets">flow_from_clientsecrets</a><tt class="py-op">(</tt><tt class="py-param">filename</tt><tt class="py-op">,</tt> <tt class="py-param">scope</tt><tt class="py-op">,</tt> <tt class="py-param">redirect_uri</tt><tt class="py-op">=</tt><tt class="py-name">None</tt><tt class="py-op">,</tt> <tt class="py-param">message</tt><tt class="py-op">=</tt><tt class="py-name">None</tt><tt class="py-op">,</tt> <tt class="py-param">cache</tt><tt class="py-op">=</tt><tt class="py-name">None</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
</div><div id="flow_from_clientsecrets-collapsed" style="display:none;" pad="++++" indent="++++"></div><div id="flow_from_clientsecrets-expanded"><a name="L1161"></a><tt class="py-lineno">1161</tt> <tt class="py-line"> <tt class="py-docstring">"""Create a Flow from a clientsecrets file.</tt> </tt>
<a name="L1162"></a><tt class="py-lineno">1162</tt> <tt class="py-line"><tt class="py-docstring"></tt> </tt>
@@ -1581,10 +1581,10 @@
<a name="L1185"></a><tt class="py-lineno">1185</tt> <tt class="py-line"><tt class="py-docstring"> invalid.</tt> </tt>
<a name="L1186"></a><tt class="py-lineno">1186</tt> <tt class="py-line"><tt class="py-docstring"> """</tt> </tt>
<a name="L1187"></a><tt class="py-lineno">1187</tt> <tt class="py-line"> <tt class="py-keyword">try</tt><tt class="py-op">:</tt> </tt>
-<a name="L1188"></a><tt class="py-lineno">1188</tt> <tt class="py-line"> <tt class="py-name">client_type</tt><tt class="py-op">,</tt> <tt class="py-name">client_info</tt> <tt class="py-op">=</tt> <tt id="link-161" class="py-name"><a title="oauth2client.clientsecrets" class="py-name" href="#" onclick="return doclink('link-161', 'clientsecrets', 'link-0');">clientsecrets</a></tt><tt class="py-op">.</tt><tt id="link-162" class="py-name" targets="Function oauth2client.clientsecrets.loadfile()=oauth2client.clientsecrets-module.html#loadfile"><a title="oauth2client.clientsecrets.loadfile" class="py-name" href="#" onclick="return doclink('link-162', 'loadfile', 'link-162');">loadfile</a></tt><tt class="py-op">(</tt><tt id="link-163" class="py-name"><a title="oauth2client.locked_file.LockedFile.filename
-oauth2client.locked_file._Opener.filename" class="py-name" href="#" onclick="return doclink('link-163', 'filename', 'link-137');">filename</a></tt><tt class="py-op">,</tt> <tt class="py-name">cache</tt><tt class="py-op">=</tt><tt class="py-name">cache</tt><tt class="py-op">)</tt> </tt>
-<a name="L1189"></a><tt class="py-lineno">1189</tt> <tt class="py-line"> <tt class="py-keyword">if</tt> <tt class="py-name">client_type</tt> <tt class="py-keyword">in</tt> <tt class="py-op">[</tt><tt id="link-164" class="py-name"><a title="oauth2client.clientsecrets" class="py-name" href="#" onclick="return doclink('link-164', 'clientsecrets', 'link-0');">clientsecrets</a></tt><tt class="py-op">.</tt><tt id="link-165" class="py-name" targets="Variable oauth2client.clientsecrets.TYPE_WEB=oauth2client.clientsecrets-module.html#TYPE_WEB"><a title="oauth2client.clientsecrets.TYPE_WEB" class="py-name" href="#" onclick="return doclink('link-165', 'TYPE_WEB', 'link-165');">TYPE_WEB</a></tt><tt class="py-op">,</tt> <tt id="link-166" class="py-name"><a title="oauth2client.clientsecrets" class="py-name" href="#" onclick="return doclink('link-166', 'clientsecrets', 'link-0');">clientsecrets</a></tt><tt class="py-op">.</tt><tt id="link-167" class="py-name" targets="Variable oauth2client.clientsecrets.TYPE_INSTALLED=oauth2client.clientsecrets-module.html#TYPE_INSTALLED"><a title="oauth2client.clientsecrets.TYPE_INSTALLED" class="py-name" href="#" onclick="return doclink('link-167', 'TYPE_INSTALLED', 'link-167');">TYPE_INSTALLED</a></tt><tt class="py-op">]</tt><tt class="py-op">:</tt> </tt>
-<a name="L1190"></a><tt class="py-lineno">1190</tt> <tt class="py-line"> <tt class="py-keyword">return</tt> <tt id="link-168" class="py-name"><a title="oauth2client.client.OAuth2WebServerFlow" class="py-name" href="#" onclick="return doclink('link-168', 'OAuth2WebServerFlow', 'link-130');">OAuth2WebServerFlow</a></tt><tt class="py-op">(</tt> </tt>
+<a name="L1188"></a><tt class="py-lineno">1188</tt> <tt class="py-line"> <tt class="py-name">client_type</tt><tt class="py-op">,</tt> <tt class="py-name">client_info</tt> <tt class="py-op">=</tt> <tt id="link-162" class="py-name"><a title="oauth2client.clientsecrets" class="py-name" href="#" onclick="return doclink('link-162', 'clientsecrets', 'link-0');">clientsecrets</a></tt><tt class="py-op">.</tt><tt id="link-163" class="py-name" targets="Function oauth2client.clientsecrets.loadfile()=oauth2client.clientsecrets-module.html#loadfile"><a title="oauth2client.clientsecrets.loadfile" class="py-name" href="#" onclick="return doclink('link-163', 'loadfile', 'link-163');">loadfile</a></tt><tt class="py-op">(</tt><tt id="link-164" class="py-name"><a title="oauth2client.locked_file.LockedFile.filename
+oauth2client.locked_file._Opener.filename" class="py-name" href="#" onclick="return doclink('link-164', 'filename', 'link-138');">filename</a></tt><tt class="py-op">,</tt> <tt class="py-name">cache</tt><tt class="py-op">=</tt><tt class="py-name">cache</tt><tt class="py-op">)</tt> </tt>
+<a name="L1189"></a><tt class="py-lineno">1189</tt> <tt class="py-line"> <tt class="py-keyword">if</tt> <tt class="py-name">client_type</tt> <tt class="py-keyword">in</tt> <tt class="py-op">[</tt><tt id="link-165" class="py-name"><a title="oauth2client.clientsecrets" class="py-name" href="#" onclick="return doclink('link-165', 'clientsecrets', 'link-0');">clientsecrets</a></tt><tt class="py-op">.</tt><tt id="link-166" class="py-name" targets="Variable oauth2client.clientsecrets.TYPE_WEB=oauth2client.clientsecrets-module.html#TYPE_WEB"><a title="oauth2client.clientsecrets.TYPE_WEB" class="py-name" href="#" onclick="return doclink('link-166', 'TYPE_WEB', 'link-166');">TYPE_WEB</a></tt><tt class="py-op">,</tt> <tt id="link-167" class="py-name"><a title="oauth2client.clientsecrets" class="py-name" href="#" onclick="return doclink('link-167', 'clientsecrets', 'link-0');">clientsecrets</a></tt><tt class="py-op">.</tt><tt id="link-168" class="py-name" targets="Variable oauth2client.clientsecrets.TYPE_INSTALLED=oauth2client.clientsecrets-module.html#TYPE_INSTALLED"><a title="oauth2client.clientsecrets.TYPE_INSTALLED" class="py-name" href="#" onclick="return doclink('link-168', 'TYPE_INSTALLED', 'link-168');">TYPE_INSTALLED</a></tt><tt class="py-op">]</tt><tt class="py-op">:</tt> </tt>
+<a name="L1190"></a><tt class="py-lineno">1190</tt> <tt class="py-line"> <tt class="py-keyword">return</tt> <tt id="link-169" class="py-name"><a title="oauth2client.client.OAuth2WebServerFlow" class="py-name" href="#" onclick="return doclink('link-169', 'OAuth2WebServerFlow', 'link-130');">OAuth2WebServerFlow</a></tt><tt class="py-op">(</tt> </tt>
<a name="L1191"></a><tt class="py-lineno">1191</tt> <tt class="py-line"> <tt class="py-name">client_info</tt><tt class="py-op">[</tt><tt class="py-string">'client_id'</tt><tt class="py-op">]</tt><tt class="py-op">,</tt> </tt>
<a name="L1192"></a><tt class="py-lineno">1192</tt> <tt class="py-line"> <tt class="py-name">client_info</tt><tt class="py-op">[</tt><tt class="py-string">'client_secret'</tt><tt class="py-op">]</tt><tt class="py-op">,</tt> </tt>
<a name="L1193"></a><tt class="py-lineno">1193</tt> <tt class="py-line"> <tt class="py-name">scope</tt><tt class="py-op">,</tt> </tt>
@@ -1593,14 +1593,14 @@
<a name="L1196"></a><tt class="py-lineno">1196</tt> <tt class="py-line"> <tt class="py-name">auth_uri</tt><tt class="py-op">=</tt><tt class="py-name">client_info</tt><tt class="py-op">[</tt><tt class="py-string">'auth_uri'</tt><tt class="py-op">]</tt><tt class="py-op">,</tt> </tt>
<a name="L1197"></a><tt class="py-lineno">1197</tt> <tt class="py-line"> <tt class="py-name">token_uri</tt><tt class="py-op">=</tt><tt class="py-name">client_info</tt><tt class="py-op">[</tt><tt class="py-string">'token_uri'</tt><tt class="py-op">]</tt><tt class="py-op">)</tt> </tt>
<a name="L1198"></a><tt class="py-lineno">1198</tt> <tt class="py-line"> </tt>
-<a name="L1199"></a><tt class="py-lineno">1199</tt> <tt class="py-line"> <tt class="py-keyword">except</tt> <tt id="link-169" class="py-name"><a title="oauth2client.clientsecrets" class="py-name" href="#" onclick="return doclink('link-169', 'clientsecrets', 'link-0');">clientsecrets</a></tt><tt class="py-op">.</tt><tt id="link-170" class="py-name" targets="Class oauth2client.appengine.InvalidClientSecretsError=oauth2client.appengine.InvalidClientSecretsError-class.html,Class oauth2client.clientsecrets.InvalidClientSecretsError=oauth2client.clientsecrets.InvalidClientSecretsError-class.html"><a title="oauth2client.appengine.InvalidClientSecretsError
-oauth2client.clientsecrets.InvalidClientSecretsError" class="py-name" href="#" onclick="return doclink('link-170', 'InvalidClientSecretsError', 'link-170');">InvalidClientSecretsError</a></tt><tt class="py-op">:</tt> </tt>
+<a name="L1199"></a><tt class="py-lineno">1199</tt> <tt class="py-line"> <tt class="py-keyword">except</tt> <tt id="link-170" class="py-name"><a title="oauth2client.clientsecrets" class="py-name" href="#" onclick="return doclink('link-170', 'clientsecrets', 'link-0');">clientsecrets</a></tt><tt class="py-op">.</tt><tt id="link-171" class="py-name" targets="Class oauth2client.appengine.InvalidClientSecretsError=oauth2client.appengine.InvalidClientSecretsError-class.html,Class oauth2client.clientsecrets.InvalidClientSecretsError=oauth2client.clientsecrets.InvalidClientSecretsError-class.html"><a title="oauth2client.appengine.InvalidClientSecretsError
+oauth2client.clientsecrets.InvalidClientSecretsError" class="py-name" href="#" onclick="return doclink('link-171', 'InvalidClientSecretsError', 'link-171');">InvalidClientSecretsError</a></tt><tt class="py-op">:</tt> </tt>
<a name="L1200"></a><tt class="py-lineno">1200</tt> <tt class="py-line"> <tt class="py-keyword">if</tt> <tt class="py-name">message</tt><tt class="py-op">:</tt> </tt>
<a name="L1201"></a><tt class="py-lineno">1201</tt> <tt class="py-line"> <tt class="py-name">sys</tt><tt class="py-op">.</tt><tt class="py-name">exit</tt><tt class="py-op">(</tt><tt class="py-name">message</tt><tt class="py-op">)</tt> </tt>
<a name="L1202"></a><tt class="py-lineno">1202</tt> <tt class="py-line"> <tt class="py-keyword">else</tt><tt class="py-op">:</tt> </tt>
<a name="L1203"></a><tt class="py-lineno">1203</tt> <tt class="py-line"> <tt class="py-keyword">raise</tt> </tt>
<a name="L1204"></a><tt class="py-lineno">1204</tt> <tt class="py-line"> <tt class="py-keyword">else</tt><tt class="py-op">:</tt> </tt>
-<a name="L1205"></a><tt class="py-lineno">1205</tt> <tt class="py-line"> <tt class="py-keyword">raise</tt> <tt id="link-171" class="py-name" targets="Class oauth2client.client.UnknownClientSecretsFlowError=oauth2client.client.UnknownClientSecretsFlowError-class.html"><a title="oauth2client.client.UnknownClientSecretsFlowError" class="py-name" href="#" onclick="return doclink('link-171', 'UnknownClientSecretsFlowError', 'link-171');">UnknownClientSecretsFlowError</a></tt><tt class="py-op">(</tt> </tt>
+<a name="L1205"></a><tt class="py-lineno">1205</tt> <tt class="py-line"> <tt class="py-keyword">raise</tt> <tt id="link-172" class="py-name" targets="Class oauth2client.client.UnknownClientSecretsFlowError=oauth2client.client.UnknownClientSecretsFlowError-class.html"><a title="oauth2client.client.UnknownClientSecretsFlowError" class="py-name" href="#" onclick="return doclink('link-172', 'UnknownClientSecretsFlowError', 'link-172');">UnknownClientSecretsFlowError</a></tt><tt class="py-op">(</tt> </tt>
<a name="L1206"></a><tt class="py-lineno">1206</tt> <tt class="py-line"> <tt class="py-string">'This OAuth 2.0 flow is unsupported: "%s"'</tt> <tt class="py-op">*</tt> <tt class="py-name">client_type</tt><tt class="py-op">)</tt> </tt>
</div><a name="L1207"></a><tt class="py-lineno">1207</tt> <tt class="py-line"> </tt><script type="text/javascript">
<!--
@@ -1632,7 +1632,7 @@
<table border="0" cellpadding="0" cellspacing="0" width="100%%">
<tr>
<td align="left" class="footer">
- Generated by Epydoc 3.0.1 on Thu Aug 30 07:12:48 2012
+ Generated by Epydoc 3.0.1 on Thu Sep 6 13:36:17 2012
</td>
<td align="right" class="footer">
<a target="mainFrame" href="http://epydoc.sourceforge.net"