Update docs to not use UML diagrams. Fixes issue #148.
diff --git a/docs/epy/oauth2client.client-pysrc.html b/docs/epy/oauth2client.client-pysrc.html
index 3ebb181..20203d2 100644
--- a/docs/epy/oauth2client.client-pysrc.html
+++ b/docs/epy/oauth2client.client-pysrc.html
@@ -752,7 +752,7 @@
<a name="L596"></a><tt class="py-lineno"> 596</tt> <tt class="py-line"> <tt id="link-77" class="py-name"><a title="apiclient.discovery.logger
oauth2client.client.logger
oauth2client.locked_file.logger
-oauth2client.multistore_file.logger" class="py-name" href="#" onclick="return doclink('link-77', 'logger', 'link-13');">logger</a></tt><tt class="py-op">.</tt><tt class="py-name">info</tt><tt class="py-op">(</tt><tt class="py-string">'Refresing access_token'</tt><tt class="py-op">)</tt> </tt>
+oauth2client.multistore_file.logger" class="py-name" href="#" onclick="return doclink('link-77', 'logger', 'link-13');">logger</a></tt><tt class="py-op">.</tt><tt class="py-name">info</tt><tt class="py-op">(</tt><tt class="py-string">'Refreshing access_token'</tt><tt class="py-op">)</tt> </tt>
<a name="L597"></a><tt class="py-lineno"> 597</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 class="py-name">http_request</tt><tt class="py-op">(</tt> </tt>
<a name="L598"></a><tt class="py-lineno"> 598</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">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 class="py-name">headers</tt><tt class="py-op">=</tt><tt class="py-name">headers</tt><tt class="py-op">)</tt> </tt>
<a name="L599"></a><tt class="py-lineno"> 599</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-op">:</tt> </tt>
@@ -1324,122 +1324,136 @@
<a name="L1028"></a><tt class="py-lineno">1028</tt> <tt class="py-line"><tt class="py-docstring"> of the query parameters to the redirect_uri, which contains</tt> </tt>
<a name="L1029"></a><tt class="py-lineno">1029</tt> <tt class="py-line"><tt class="py-docstring"> the code.</tt> </tt>
<a name="L1030"></a><tt class="py-lineno">1030</tt> <tt class="py-line"><tt class="py-docstring"> http: httplib2.Http, optional http instance to use to do the fetch</tt> </tt>
-<a name="L1031"></a><tt class="py-lineno">1031</tt> <tt class="py-line"><tt class="py-docstring"> """</tt> </tt>
-<a name="L1032"></a><tt class="py-lineno">1032</tt> <tt class="py-line"> </tt>
-<a name="L1033"></a><tt class="py-lineno">1033</tt> <tt class="py-line"> <tt class="py-keyword">if</tt> <tt class="py-keyword">not</tt> <tt class="py-op">(</tt><tt class="py-name">isinstance</tt><tt class="py-op">(</tt><tt class="py-name">code</tt><tt class="py-op">,</tt> <tt class="py-name">str</tt><tt class="py-op">)</tt> <tt class="py-keyword">or</tt> <tt class="py-name">isinstance</tt><tt class="py-op">(</tt><tt class="py-name">code</tt><tt class="py-op">,</tt> <tt class="py-name">unicode</tt><tt class="py-op">)</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-<a name="L1034"></a><tt class="py-lineno">1034</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="L1035"></a><tt class="py-lineno">1035</tt> <tt class="py-line"> </tt>
-<a name="L1036"></a><tt class="py-lineno">1036</tt> <tt class="py-line"> <tt class="py-name">body</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-op">{</tt> </tt>
-<a name="L1037"></a><tt class="py-lineno">1037</tt> <tt class="py-line"> <tt class="py-string">'grant_type'</tt><tt class="py-op">:</tt> <tt class="py-string">'authorization_code'</tt><tt class="py-op">,</tt> </tt>
-<a name="L1038"></a><tt class="py-lineno">1038</tt> <tt class="py-line"> <tt class="py-string">'client_id'</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="L1039"></a><tt class="py-lineno">1039</tt> <tt class="py-line"> <tt class="py-string">'client_secret'</tt><tt class="py-op">:</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">client_secret</tt><tt class="py-op">,</tt> </tt>
-<a name="L1040"></a><tt class="py-lineno">1040</tt> <tt class="py-line"> <tt class="py-string">'code'</tt><tt class="py-op">:</tt> <tt class="py-name">code</tt><tt class="py-op">,</tt> </tt>
-<a name="L1041"></a><tt class="py-lineno">1041</tt> <tt class="py-line"> <tt class="py-string">'redirect_uri'</tt><tt class="py-op">:</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">redirect_uri</tt><tt class="py-op">,</tt> </tt>
-<a name="L1042"></a><tt class="py-lineno">1042</tt> <tt class="py-line"> <tt class="py-string">'scope'</tt><tt class="py-op">:</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">scope</tt><tt class="py-op">,</tt> </tt>
-<a name="L1043"></a><tt class="py-lineno">1043</tt> <tt class="py-line"> <tt class="py-op">}</tt><tt class="py-op">)</tt> </tt>
-<a name="L1044"></a><tt class="py-lineno">1044</tt> <tt class="py-line"> <tt class="py-name">headers</tt> <tt class="py-op">=</tt> <tt class="py-op">{</tt> </tt>
-<a name="L1045"></a><tt class="py-lineno">1045</tt> <tt class="py-line"> <tt class="py-string">'content-type'</tt><tt class="py-op">:</tt> <tt class="py-string">'application/x-www-form-urlencoded'</tt><tt class="py-op">,</tt> </tt>
-<a name="L1046"></a><tt class="py-lineno">1046</tt> <tt class="py-line"> <tt class="py-op">}</tt> </tt>
-<a name="L1047"></a><tt class="py-lineno">1047</tt> <tt class="py-line"> </tt>
-<a name="L1048"></a><tt class="py-lineno">1048</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="L1049"></a><tt class="py-lineno">1049</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="L1050"></a><tt class="py-lineno">1050</tt> <tt class="py-line"> </tt>
-<a name="L1051"></a><tt class="py-lineno">1051</tt> <tt class="py-line"> <tt class="py-keyword">if</tt> <tt id="link-134" class="py-name"><a title="apiclient.http
-oauth2client.appengine.OAuth2Decorator.http" class="py-name" href="#" onclick="return doclink('link-134', 'http', 'link-43');">http</a></tt> <tt class="py-keyword">is</tt> <tt class="py-name">None</tt><tt class="py-op">:</tt> </tt>
-<a name="L1052"></a><tt class="py-lineno">1052</tt> <tt class="py-line"> <tt id="link-135" class="py-name"><a title="apiclient.http
-oauth2client.appengine.OAuth2Decorator.http" class="py-name" href="#" onclick="return doclink('link-135', 'http', 'link-43');">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="L1053"></a><tt class="py-lineno">1053</tt> <tt class="py-line"> </tt>
-<a name="L1054"></a><tt class="py-lineno">1054</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-136" class="py-name"><a title="apiclient.http
-oauth2client.appengine.OAuth2Decorator.http" class="py-name" href="#" onclick="return doclink('link-136', 'http', 'link-43');">http</a></tt><tt class="py-op">.</tt><tt id="link-137" class="py-name"><a title="apiclient.http.HttpMock.request
+<a name="L1031"></a><tt class="py-lineno">1031</tt> <tt class="py-line"><tt class="py-docstring"></tt> </tt>
+<a name="L1032"></a><tt class="py-lineno">1032</tt> <tt class="py-line"><tt class="py-docstring"> Returns:</tt> </tt>
+<a name="L1033"></a><tt class="py-lineno">1033</tt> <tt class="py-line"><tt class="py-docstring"> An OAuth2Credentials object that can be used to authorize requests.</tt> </tt>
+<a name="L1034"></a><tt class="py-lineno">1034</tt> <tt class="py-line"><tt class="py-docstring"></tt> </tt>
+<a name="L1035"></a><tt class="py-lineno">1035</tt> <tt class="py-line"><tt class="py-docstring"> Raises:</tt> </tt>
+<a name="L1036"></a><tt class="py-lineno">1036</tt> <tt class="py-line"><tt class="py-docstring"> FlowExchangeError if a problem occured exchanging the code for a</tt> </tt>
+<a name="L1037"></a><tt class="py-lineno">1037</tt> <tt class="py-line"><tt class="py-docstring"> refresh_token.</tt> </tt>
+<a name="L1038"></a><tt class="py-lineno">1038</tt> <tt class="py-line"><tt class="py-docstring"> """</tt> </tt>
+<a name="L1039"></a><tt class="py-lineno">1039</tt> <tt class="py-line"> </tt>
+<a name="L1040"></a><tt class="py-lineno">1040</tt> <tt class="py-line"> <tt class="py-keyword">if</tt> <tt class="py-keyword">not</tt> <tt class="py-op">(</tt><tt class="py-name">isinstance</tt><tt class="py-op">(</tt><tt class="py-name">code</tt><tt class="py-op">,</tt> <tt class="py-name">str</tt><tt class="py-op">)</tt> <tt class="py-keyword">or</tt> <tt class="py-name">isinstance</tt><tt class="py-op">(</tt><tt class="py-name">code</tt><tt class="py-op">,</tt> <tt class="py-name">unicode</tt><tt class="py-op">)</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+<a name="L1041"></a><tt class="py-lineno">1041</tt> <tt class="py-line"> <tt class="py-keyword">if</tt> <tt class="py-string">'code'</tt> <tt class="py-keyword">not</tt> <tt class="py-keyword">in</tt> <tt class="py-name">code</tt><tt class="py-op">:</tt> </tt>
+<a name="L1042"></a><tt class="py-lineno">1042</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">code</tt><tt class="py-op">:</tt> </tt>
+<a name="L1043"></a><tt class="py-lineno">1043</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="L1044"></a><tt class="py-lineno">1044</tt> <tt class="py-line"> <tt class="py-keyword">else</tt><tt class="py-op">:</tt> </tt>
+<a name="L1045"></a><tt class="py-lineno">1045</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="L1046"></a><tt class="py-lineno">1046</tt> <tt class="py-line"> <tt class="py-keyword">raise</tt> <tt id="link-134" 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-134', 'FlowExchangeError', 'link-134');">FlowExchangeError</a></tt><tt class="py-op">(</tt><tt class="py-name">error_msg</tt><tt class="py-op">)</tt> </tt>
+<a name="L1047"></a><tt class="py-lineno">1047</tt> <tt class="py-line"> <tt class="py-keyword">else</tt><tt class="py-op">:</tt> </tt>
+<a name="L1048"></a><tt class="py-lineno">1048</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="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-name">body</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-op">{</tt> </tt>
+<a name="L1051"></a><tt class="py-lineno">1051</tt> <tt class="py-line"> <tt class="py-string">'grant_type'</tt><tt class="py-op">:</tt> <tt class="py-string">'authorization_code'</tt><tt class="py-op">,</tt> </tt>
+<a name="L1052"></a><tt class="py-lineno">1052</tt> <tt class="py-line"> <tt class="py-string">'client_id'</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="L1053"></a><tt class="py-lineno">1053</tt> <tt class="py-line"> <tt class="py-string">'client_secret'</tt><tt class="py-op">:</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">client_secret</tt><tt class="py-op">,</tt> </tt>
+<a name="L1054"></a><tt class="py-lineno">1054</tt> <tt class="py-line"> <tt class="py-string">'code'</tt><tt class="py-op">:</tt> <tt class="py-name">code</tt><tt class="py-op">,</tt> </tt>
+<a name="L1055"></a><tt class="py-lineno">1055</tt> <tt class="py-line"> <tt class="py-string">'redirect_uri'</tt><tt class="py-op">:</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">redirect_uri</tt><tt class="py-op">,</tt> </tt>
+<a name="L1056"></a><tt class="py-lineno">1056</tt> <tt class="py-line"> <tt class="py-string">'scope'</tt><tt class="py-op">:</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">scope</tt><tt class="py-op">,</tt> </tt>
+<a name="L1057"></a><tt class="py-lineno">1057</tt> <tt class="py-line"> <tt class="py-op">}</tt><tt class="py-op">)</tt> </tt>
+<a name="L1058"></a><tt class="py-lineno">1058</tt> <tt class="py-line"> <tt class="py-name">headers</tt> <tt class="py-op">=</tt> <tt class="py-op">{</tt> </tt>
+<a name="L1059"></a><tt class="py-lineno">1059</tt> <tt class="py-line"> <tt class="py-string">'content-type'</tt><tt class="py-op">:</tt> <tt class="py-string">'application/x-www-form-urlencoded'</tt><tt class="py-op">,</tt> </tt>
+<a name="L1060"></a><tt class="py-lineno">1060</tt> <tt class="py-line"> <tt class="py-op">}</tt> </tt>
+<a name="L1061"></a><tt class="py-lineno">1061</tt> <tt class="py-line"> </tt>
+<a name="L1062"></a><tt class="py-lineno">1062</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="L1063"></a><tt class="py-lineno">1063</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="L1064"></a><tt class="py-lineno">1064</tt> <tt class="py-line"> </tt>
+<a name="L1065"></a><tt class="py-lineno">1065</tt> <tt class="py-line"> <tt class="py-keyword">if</tt> <tt id="link-135" class="py-name"><a title="apiclient.http
+oauth2client.appengine.OAuth2Decorator.http" class="py-name" href="#" onclick="return doclink('link-135', 'http', 'link-43');">http</a></tt> <tt class="py-keyword">is</tt> <tt class="py-name">None</tt><tt class="py-op">:</tt> </tt>
+<a name="L1066"></a><tt class="py-lineno">1066</tt> <tt class="py-line"> <tt id="link-136" class="py-name"><a title="apiclient.http
+oauth2client.appengine.OAuth2Decorator.http" class="py-name" href="#" onclick="return doclink('link-136', 'http', 'link-43');">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="L1067"></a><tt class="py-lineno">1067</tt> <tt class="py-line"> </tt>
+<a name="L1068"></a><tt class="py-lineno">1068</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-137" class="py-name"><a title="apiclient.http
+oauth2client.appengine.OAuth2Decorator.http" class="py-name" href="#" onclick="return doclink('link-137', 'http', 'link-43');">http</a></tt><tt class="py-op">.</tt><tt id="link-138" 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-137', 'request', 'link-44');">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="L1055"></a><tt class="py-lineno">1055</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="L1056"></a><tt class="py-lineno">1056</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-op">:</tt> </tt>
-<a name="L1057"></a><tt class="py-lineno">1057</tt> <tt class="py-line"> <tt class="py-comment"># TODO(jcgregorio) Raise an error if simplejson.loads fails?</tt> </tt>
-<a name="L1058"></a><tt class="py-lineno">1058</tt> <tt class="py-line"> <tt class="py-name">d</tt> <tt class="py-op">=</tt> <tt class="py-name">simplejson</tt><tt class="py-op">.</tt><tt id="link-138" class="py-name"><a title="oauth2client.clientsecrets.loads" class="py-name" href="#" onclick="return doclink('link-138', 'loads', 'link-26');">loads</a></tt><tt class="py-op">(</tt><tt class="py-name">content</tt><tt class="py-op">)</tt> </tt>
-<a name="L1059"></a><tt class="py-lineno">1059</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="L1060"></a><tt class="py-lineno">1060</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-139" class="py-name"><a title="apiclient.schema.Schemas.get
+apiclient.model.Model.request" class="py-name" href="#" onclick="return doclink('link-138', 'request', 'link-44');">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="L1069"></a><tt class="py-lineno">1069</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="L1070"></a><tt class="py-lineno">1070</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-op">:</tt> </tt>
+<a name="L1071"></a><tt class="py-lineno">1071</tt> <tt class="py-line"> <tt class="py-comment"># TODO(jcgregorio) Raise an error if simplejson.loads fails?</tt> </tt>
+<a name="L1072"></a><tt class="py-lineno">1072</tt> <tt class="py-line"> <tt class="py-name">d</tt> <tt class="py-op">=</tt> <tt class="py-name">simplejson</tt><tt class="py-op">.</tt><tt id="link-139" class="py-name"><a title="oauth2client.clientsecrets.loads" class="py-name" href="#" onclick="return doclink('link-139', 'loads', 'link-26');">loads</a></tt><tt class="py-op">(</tt><tt class="py-name">content</tt><tt class="py-op">)</tt> </tt>
+<a name="L1073"></a><tt class="py-lineno">1073</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="L1074"></a><tt class="py-lineno">1074</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-140" class="py-name"><a title="apiclient.schema.Schemas.get
oauth2client.appengine.OAuth2Handler.get
oauth2client.client.MemoryCache.get
-oauth2client.client.Storage.get" class="py-name" href="#" onclick="return doclink('link-139', 'get', 'link-17');">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="L1061"></a><tt class="py-lineno">1061</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="L1062"></a><tt class="py-lineno">1062</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="L1063"></a><tt class="py-lineno">1063</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="L1064"></a><tt class="py-lineno">1064</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="L1065"></a><tt class="py-lineno">1065</tt> <tt class="py-line"> </tt>
-<a name="L1066"></a><tt class="py-lineno">1066</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="L1067"></a><tt class="py-lineno">1067</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-140" 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-140', '_extract_id_token', 'link-140');">_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="L1068"></a><tt class="py-lineno">1068</tt> <tt class="py-line"> </tt>
-<a name="L1069"></a><tt class="py-lineno">1069</tt> <tt class="py-line"> <tt id="link-141" class="py-name"><a title="apiclient.discovery.logger
+oauth2client.client.Storage.get" class="py-name" href="#" onclick="return doclink('link-140', 'get', 'link-17');">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="L1075"></a><tt class="py-lineno">1075</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="L1076"></a><tt class="py-lineno">1076</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="L1077"></a><tt class="py-lineno">1077</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="L1078"></a><tt class="py-lineno">1078</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="L1079"></a><tt class="py-lineno">1079</tt> <tt class="py-line"> </tt>
+<a name="L1080"></a><tt class="py-lineno">1080</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="L1081"></a><tt class="py-lineno">1081</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-141" 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-141', '_extract_id_token', 'link-141');">_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="L1082"></a><tt class="py-lineno">1082</tt> <tt class="py-line"> </tt>
+<a name="L1083"></a><tt class="py-lineno">1083</tt> <tt class="py-line"> <tt id="link-142" class="py-name"><a title="apiclient.discovery.logger
oauth2client.client.logger
oauth2client.locked_file.logger
-oauth2client.multistore_file.logger" class="py-name" href="#" onclick="return doclink('link-141', 'logger', 'link-13');">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: %s'</tt> <tt class="py-op">%</tt> <tt class="py-name">content</tt><tt class="py-op">)</tt> </tt>
-<a name="L1070"></a><tt class="py-lineno">1070</tt> <tt class="py-line"> <tt class="py-keyword">return</tt> <tt id="link-142" class="py-name"><a title="oauth2client.client.OAuth2Credentials" class="py-name" href="#" onclick="return doclink('link-142', 'OAuth2Credentials', 'link-64');">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="L1071"></a><tt class="py-lineno">1071</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="L1072"></a><tt class="py-lineno">1072</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="L1073"></a><tt class="py-lineno">1073</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-143" class="py-name"><a title="apiclient.schema.Schemas.get
+oauth2client.multistore_file.logger" class="py-name" href="#" onclick="return doclink('link-142', 'logger', 'link-13');">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: %s'</tt> <tt class="py-op">%</tt> <tt class="py-name">content</tt><tt class="py-op">)</tt> </tt>
+<a name="L1084"></a><tt class="py-lineno">1084</tt> <tt class="py-line"> <tt class="py-keyword">return</tt> <tt id="link-143" class="py-name"><a title="oauth2client.client.OAuth2Credentials" class="py-name" href="#" onclick="return doclink('link-143', 'OAuth2Credentials', 'link-64');">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="L1085"></a><tt class="py-lineno">1085</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="L1086"></a><tt class="py-lineno">1086</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="L1087"></a><tt class="py-lineno">1087</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-144" class="py-name"><a title="apiclient.schema.Schemas.get
oauth2client.appengine.OAuth2Handler.get
oauth2client.client.MemoryCache.get
-oauth2client.client.Storage.get" class="py-name" href="#" onclick="return doclink('link-143', 'get', 'link-17');">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="L1074"></a><tt class="py-lineno">1074</tt> <tt class="py-line"> <tt class="py-keyword">else</tt><tt class="py-op">:</tt> </tt>
-<a name="L1075"></a><tt class="py-lineno">1075</tt> <tt class="py-line"> <tt id="link-144" class="py-name"><a title="apiclient.discovery.logger
+oauth2client.client.Storage.get" class="py-name" href="#" onclick="return doclink('link-144', 'get', 'link-17');">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="L1088"></a><tt class="py-lineno">1088</tt> <tt class="py-line"> <tt class="py-keyword">else</tt><tt class="py-op">:</tt> </tt>
+<a name="L1089"></a><tt class="py-lineno">1089</tt> <tt class="py-line"> <tt id="link-145" class="py-name"><a title="apiclient.discovery.logger
oauth2client.client.logger
oauth2client.locked_file.logger
-oauth2client.multistore_file.logger" class="py-name" href="#" onclick="return doclink('link-144', 'logger', 'link-13');">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="L1076"></a><tt class="py-lineno">1076</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">resp</tt><tt class="py-op">[</tt><tt class="py-string">'status'</tt><tt class="py-op">]</tt> </tt>
-<a name="L1077"></a><tt class="py-lineno">1077</tt> <tt class="py-line"> <tt class="py-keyword">try</tt><tt class="py-op">:</tt> </tt>
-<a name="L1078"></a><tt class="py-lineno">1078</tt> <tt class="py-line"> <tt class="py-name">d</tt> <tt class="py-op">=</tt> <tt class="py-name">simplejson</tt><tt class="py-op">.</tt><tt id="link-145" class="py-name"><a title="oauth2client.clientsecrets.loads" class="py-name" href="#" onclick="return doclink('link-145', 'loads', 'link-26');">loads</a></tt><tt class="py-op">(</tt><tt class="py-name">content</tt><tt class="py-op">)</tt> </tt>
-<a name="L1079"></a><tt class="py-lineno">1079</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="L1080"></a><tt class="py-lineno">1080</tt> <tt class="py-line"> <tt class="py-name">error_msg</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>
-<a name="L1081"></a><tt class="py-lineno">1081</tt> <tt class="py-line"> <tt class="py-keyword">except</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">pass</tt> </tt>
-<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-keyword">raise</tt> <tt id="link-146" 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-146', 'FlowExchangeError', 'link-146');">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="L1085"></a><tt class="py-lineno">1085</tt> <tt class="py-line"> </tt>
-<a name="flow_from_clientsecrets"></a><div id="flow_from_clientsecrets-def"><a name="L1086"></a><tt class="py-lineno">1086</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">message</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="L1087"></a><tt class="py-lineno">1087</tt> <tt class="py-line"> <tt class="py-docstring">"""Create a Flow from a clientsecrets file.</tt> </tt>
-<a name="L1088"></a><tt class="py-lineno">1088</tt> <tt class="py-line"><tt class="py-docstring"></tt> </tt>
-<a name="L1089"></a><tt class="py-lineno">1089</tt> <tt class="py-line"><tt class="py-docstring"> Will create the right kind of Flow based on the contents of the clientsecrets</tt> </tt>
-<a name="L1090"></a><tt class="py-lineno">1090</tt> <tt class="py-line"><tt class="py-docstring"> file or will raise InvalidClientSecretsError for unknown types of Flows.</tt> </tt>
-<a name="L1091"></a><tt class="py-lineno">1091</tt> <tt class="py-line"><tt class="py-docstring"></tt> </tt>
-<a name="L1092"></a><tt class="py-lineno">1092</tt> <tt class="py-line"><tt class="py-docstring"> Args:</tt> </tt>
-<a name="L1093"></a><tt class="py-lineno">1093</tt> <tt class="py-line"><tt class="py-docstring"> filename: string, File name of client secrets.</tt> </tt>
-<a name="L1094"></a><tt class="py-lineno">1094</tt> <tt class="py-line"><tt class="py-docstring"> scope: string or list of strings, scope(s) to request.</tt> </tt>
-<a name="L1095"></a><tt class="py-lineno">1095</tt> <tt class="py-line"><tt class="py-docstring"> message: string, A friendly string to display to the user if the</tt> </tt>
-<a name="L1096"></a><tt class="py-lineno">1096</tt> <tt class="py-line"><tt class="py-docstring"> clientsecrets file is missing or invalid. If message is provided then</tt> </tt>
-<a name="L1097"></a><tt class="py-lineno">1097</tt> <tt class="py-line"><tt class="py-docstring"> sys.exit will be called in the case of an error. If message in not</tt> </tt>
-<a name="L1098"></a><tt class="py-lineno">1098</tt> <tt class="py-line"><tt class="py-docstring"> provided then clientsecrets.InvalidClientSecretsError will be raised.</tt> </tt>
-<a name="L1099"></a><tt class="py-lineno">1099</tt> <tt class="py-line"><tt class="py-docstring"></tt> </tt>
-<a name="L1100"></a><tt class="py-lineno">1100</tt> <tt class="py-line"><tt class="py-docstring"> Returns:</tt> </tt>
-<a name="L1101"></a><tt class="py-lineno">1101</tt> <tt class="py-line"><tt class="py-docstring"> A Flow object.</tt> </tt>
+oauth2client.multistore_file.logger" class="py-name" href="#" onclick="return doclink('link-145', 'logger', 'link-13');">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="L1090"></a><tt class="py-lineno">1090</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">resp</tt><tt class="py-op">[</tt><tt class="py-string">'status'</tt><tt class="py-op">]</tt> </tt>
+<a name="L1091"></a><tt class="py-lineno">1091</tt> <tt class="py-line"> <tt class="py-keyword">try</tt><tt class="py-op">:</tt> </tt>
+<a name="L1092"></a><tt class="py-lineno">1092</tt> <tt class="py-line"> <tt class="py-name">d</tt> <tt class="py-op">=</tt> <tt class="py-name">simplejson</tt><tt class="py-op">.</tt><tt id="link-146" class="py-name"><a title="oauth2client.clientsecrets.loads" class="py-name" href="#" onclick="return doclink('link-146', 'loads', 'link-26');">loads</a></tt><tt class="py-op">(</tt><tt class="py-name">content</tt><tt class="py-op">)</tt> </tt>
+<a name="L1093"></a><tt class="py-lineno">1093</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="L1094"></a><tt class="py-lineno">1094</tt> <tt class="py-line"> <tt class="py-name">error_msg</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>
+<a name="L1095"></a><tt class="py-lineno">1095</tt> <tt class="py-line"> <tt class="py-keyword">except</tt><tt class="py-op">:</tt> </tt>
+<a name="L1096"></a><tt class="py-lineno">1096</tt> <tt class="py-line"> <tt class="py-keyword">pass</tt> </tt>
+<a name="L1097"></a><tt class="py-lineno">1097</tt> <tt class="py-line"> </tt>
+<a name="L1098"></a><tt class="py-lineno">1098</tt> <tt class="py-line"> <tt class="py-keyword">raise</tt> <tt id="link-147" class="py-name"><a title="oauth2client.client.FlowExchangeError" class="py-name" href="#" onclick="return doclink('link-147', 'FlowExchangeError', 'link-134');">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="L1099"></a><tt class="py-lineno">1099</tt> <tt class="py-line"> </tt>
+<a name="flow_from_clientsecrets"></a><div id="flow_from_clientsecrets-def"><a name="L1100"></a><tt class="py-lineno">1100</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">message</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="L1101"></a><tt class="py-lineno">1101</tt> <tt class="py-line"> <tt class="py-docstring">"""Create a Flow from a clientsecrets file.</tt> </tt>
<a name="L1102"></a><tt class="py-lineno">1102</tt> <tt class="py-line"><tt class="py-docstring"></tt> </tt>
-<a name="L1103"></a><tt class="py-lineno">1103</tt> <tt class="py-line"><tt class="py-docstring"> Raises:</tt> </tt>
-<a name="L1104"></a><tt class="py-lineno">1104</tt> <tt class="py-line"><tt class="py-docstring"> UnknownClientSecretsFlowError if the file describes an unknown kind of Flow.</tt> </tt>
-<a name="L1105"></a><tt class="py-lineno">1105</tt> <tt class="py-line"><tt class="py-docstring"> clientsecrets.InvalidClientSecretsError if the clientsecrets file is</tt> </tt>
-<a name="L1106"></a><tt class="py-lineno">1106</tt> <tt class="py-line"><tt class="py-docstring"> invalid.</tt> </tt>
-<a name="L1107"></a><tt class="py-lineno">1107</tt> <tt class="py-line"><tt class="py-docstring"> """</tt> </tt>
-<a name="L1108"></a><tt class="py-lineno">1108</tt> <tt class="py-line"> <tt class="py-keyword">try</tt><tt class="py-op">:</tt> </tt>
-<a name="L1109"></a><tt class="py-lineno">1109</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-147" class="py-name"><a title="oauth2client.clientsecrets" class="py-name" href="#" onclick="return doclink('link-147', 'clientsecrets', 'link-0');">clientsecrets</a></tt><tt class="py-op">.</tt><tt id="link-148" 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-148', 'loadfile', 'link-148');">loadfile</a></tt><tt class="py-op">(</tt><tt id="link-149" class="py-name"><a title="oauth2client.locked_file.LockedFile.filename
-oauth2client.locked_file._Opener.filename" class="py-name" href="#" onclick="return doclink('link-149', 'filename', 'link-127');">filename</a></tt><tt class="py-op">)</tt> </tt>
-<a name="L1110"></a><tt class="py-lineno">1110</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-150" class="py-name"><a title="oauth2client.clientsecrets" class="py-name" href="#" onclick="return doclink('link-150', 'clientsecrets', 'link-0');">clientsecrets</a></tt><tt class="py-op">.</tt><tt id="link-151" 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-151', 'TYPE_WEB', 'link-151');">TYPE_WEB</a></tt><tt class="py-op">,</tt> <tt id="link-152" class="py-name"><a title="oauth2client.clientsecrets" class="py-name" href="#" onclick="return doclink('link-152', 'clientsecrets', 'link-0');">clientsecrets</a></tt><tt class="py-op">.</tt><tt id="link-153" 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-153', 'TYPE_INSTALLED', 'link-153');">TYPE_INSTALLED</a></tt><tt class="py-op">]</tt><tt class="py-op">:</tt> </tt>
-<a name="L1111"></a><tt class="py-lineno">1111</tt> <tt class="py-line"> <tt class="py-keyword">return</tt> <tt id="link-154" class="py-name"><a title="oauth2client.client.OAuth2WebServerFlow" class="py-name" href="#" onclick="return doclink('link-154', 'OAuth2WebServerFlow', 'link-120');">OAuth2WebServerFlow</a></tt><tt class="py-op">(</tt> </tt>
-<a name="L1112"></a><tt class="py-lineno">1112</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="L1113"></a><tt class="py-lineno">1113</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="L1114"></a><tt class="py-lineno">1114</tt> <tt class="py-line"> <tt class="py-name">scope</tt><tt class="py-op">,</tt> </tt>
-<a name="L1115"></a><tt class="py-lineno">1115</tt> <tt class="py-line"> <tt class="py-name">None</tt><tt class="py-op">,</tt> <tt class="py-comment"># user_agent</tt> </tt>
-<a name="L1116"></a><tt class="py-lineno">1116</tt> <tt class="py-line"> <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="L1117"></a><tt class="py-lineno">1117</tt> <tt class="py-line"> <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="L1118"></a><tt class="py-lineno">1118</tt> <tt class="py-line"> <tt class="py-keyword">except</tt> <tt id="link-155" class="py-name"><a title="oauth2client.clientsecrets" class="py-name" href="#" onclick="return doclink('link-155', 'clientsecrets', 'link-0');">clientsecrets</a></tt><tt class="py-op">.</tt><tt id="link-156" 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-156', 'InvalidClientSecretsError', 'link-156');">InvalidClientSecretsError</a></tt><tt class="py-op">:</tt> </tt>
-<a name="L1119"></a><tt class="py-lineno">1119</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="L1120"></a><tt class="py-lineno">1120</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="L1121"></a><tt class="py-lineno">1121</tt> <tt class="py-line"> <tt class="py-keyword">else</tt><tt class="py-op">:</tt> </tt>
-<a name="L1122"></a><tt class="py-lineno">1122</tt> <tt class="py-line"> <tt class="py-keyword">raise</tt> </tt>
-<a name="L1123"></a><tt class="py-lineno">1123</tt> <tt class="py-line"> <tt class="py-keyword">else</tt><tt class="py-op">:</tt> </tt>
-<a name="L1124"></a><tt class="py-lineno">1124</tt> <tt class="py-line"> <tt class="py-keyword">raise</tt> <tt id="link-157" 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-157', 'UnknownClientSecretsFlowError', 'link-157');">UnknownClientSecretsFlowError</a></tt><tt class="py-op">(</tt> </tt>
-<a name="L1125"></a><tt class="py-lineno">1125</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="L1126"></a><tt class="py-lineno">1126</tt> <tt class="py-line"> </tt><script type="text/javascript">
+<a name="L1103"></a><tt class="py-lineno">1103</tt> <tt class="py-line"><tt class="py-docstring"> Will create the right kind of Flow based on the contents of the clientsecrets</tt> </tt>
+<a name="L1104"></a><tt class="py-lineno">1104</tt> <tt class="py-line"><tt class="py-docstring"> file or will raise InvalidClientSecretsError for unknown types of Flows.</tt> </tt>
+<a name="L1105"></a><tt class="py-lineno">1105</tt> <tt class="py-line"><tt class="py-docstring"></tt> </tt>
+<a name="L1106"></a><tt class="py-lineno">1106</tt> <tt class="py-line"><tt class="py-docstring"> Args:</tt> </tt>
+<a name="L1107"></a><tt class="py-lineno">1107</tt> <tt class="py-line"><tt class="py-docstring"> filename: string, File name of client secrets.</tt> </tt>
+<a name="L1108"></a><tt class="py-lineno">1108</tt> <tt class="py-line"><tt class="py-docstring"> scope: string or list of strings, scope(s) to request.</tt> </tt>
+<a name="L1109"></a><tt class="py-lineno">1109</tt> <tt class="py-line"><tt class="py-docstring"> message: string, A friendly string to display to the user if the</tt> </tt>
+<a name="L1110"></a><tt class="py-lineno">1110</tt> <tt class="py-line"><tt class="py-docstring"> clientsecrets file is missing or invalid. If message is provided then</tt> </tt>
+<a name="L1111"></a><tt class="py-lineno">1111</tt> <tt class="py-line"><tt class="py-docstring"> sys.exit will be called in the case of an error. If message in not</tt> </tt>
+<a name="L1112"></a><tt class="py-lineno">1112</tt> <tt class="py-line"><tt class="py-docstring"> provided then clientsecrets.InvalidClientSecretsError will be raised.</tt> </tt>
+<a name="L1113"></a><tt class="py-lineno">1113</tt> <tt class="py-line"><tt class="py-docstring"></tt> </tt>
+<a name="L1114"></a><tt class="py-lineno">1114</tt> <tt class="py-line"><tt class="py-docstring"> Returns:</tt> </tt>
+<a name="L1115"></a><tt class="py-lineno">1115</tt> <tt class="py-line"><tt class="py-docstring"> A Flow object.</tt> </tt>
+<a name="L1116"></a><tt class="py-lineno">1116</tt> <tt class="py-line"><tt class="py-docstring"></tt> </tt>
+<a name="L1117"></a><tt class="py-lineno">1117</tt> <tt class="py-line"><tt class="py-docstring"> Raises:</tt> </tt>
+<a name="L1118"></a><tt class="py-lineno">1118</tt> <tt class="py-line"><tt class="py-docstring"> UnknownClientSecretsFlowError if the file describes an unknown kind of Flow.</tt> </tt>
+<a name="L1119"></a><tt class="py-lineno">1119</tt> <tt class="py-line"><tt class="py-docstring"> clientsecrets.InvalidClientSecretsError if the clientsecrets file is</tt> </tt>
+<a name="L1120"></a><tt class="py-lineno">1120</tt> <tt class="py-line"><tt class="py-docstring"> invalid.</tt> </tt>
+<a name="L1121"></a><tt class="py-lineno">1121</tt> <tt class="py-line"><tt class="py-docstring"> """</tt> </tt>
+<a name="L1122"></a><tt class="py-lineno">1122</tt> <tt class="py-line"> <tt class="py-keyword">try</tt><tt class="py-op">:</tt> </tt>
+<a name="L1123"></a><tt class="py-lineno">1123</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-148" class="py-name"><a title="oauth2client.clientsecrets" class="py-name" href="#" onclick="return doclink('link-148', 'clientsecrets', 'link-0');">clientsecrets</a></tt><tt class="py-op">.</tt><tt id="link-149" 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-149', 'loadfile', 'link-149');">loadfile</a></tt><tt class="py-op">(</tt><tt id="link-150" class="py-name"><a title="oauth2client.locked_file.LockedFile.filename
+oauth2client.locked_file._Opener.filename" class="py-name" href="#" onclick="return doclink('link-150', 'filename', 'link-127');">filename</a></tt><tt class="py-op">)</tt> </tt>
+<a name="L1124"></a><tt class="py-lineno">1124</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-151" class="py-name"><a title="oauth2client.clientsecrets" class="py-name" href="#" onclick="return doclink('link-151', 'clientsecrets', 'link-0');">clientsecrets</a></tt><tt class="py-op">.</tt><tt id="link-152" 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-152', 'TYPE_WEB', 'link-152');">TYPE_WEB</a></tt><tt class="py-op">,</tt> <tt id="link-153" class="py-name"><a title="oauth2client.clientsecrets" class="py-name" href="#" onclick="return doclink('link-153', 'clientsecrets', 'link-0');">clientsecrets</a></tt><tt class="py-op">.</tt><tt id="link-154" 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-154', 'TYPE_INSTALLED', 'link-154');">TYPE_INSTALLED</a></tt><tt class="py-op">]</tt><tt class="py-op">:</tt> </tt>
+<a name="L1125"></a><tt class="py-lineno">1125</tt> <tt class="py-line"> <tt class="py-keyword">return</tt> <tt id="link-155" class="py-name"><a title="oauth2client.client.OAuth2WebServerFlow" class="py-name" href="#" onclick="return doclink('link-155', 'OAuth2WebServerFlow', 'link-120');">OAuth2WebServerFlow</a></tt><tt class="py-op">(</tt> </tt>
+<a name="L1126"></a><tt class="py-lineno">1126</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="L1127"></a><tt class="py-lineno">1127</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="L1128"></a><tt class="py-lineno">1128</tt> <tt class="py-line"> <tt class="py-name">scope</tt><tt class="py-op">,</tt> </tt>
+<a name="L1129"></a><tt class="py-lineno">1129</tt> <tt class="py-line"> <tt class="py-name">None</tt><tt class="py-op">,</tt> <tt class="py-comment"># user_agent</tt> </tt>
+<a name="L1130"></a><tt class="py-lineno">1130</tt> <tt class="py-line"> <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="L1131"></a><tt class="py-lineno">1131</tt> <tt class="py-line"> <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="L1132"></a><tt class="py-lineno">1132</tt> <tt class="py-line"> <tt class="py-keyword">except</tt> <tt id="link-156" class="py-name"><a title="oauth2client.clientsecrets" class="py-name" href="#" onclick="return doclink('link-156', 'clientsecrets', 'link-0');">clientsecrets</a></tt><tt class="py-op">.</tt><tt id="link-157" 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-157', 'InvalidClientSecretsError', 'link-157');">InvalidClientSecretsError</a></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">message</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">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="L1135"></a><tt class="py-lineno">1135</tt> <tt class="py-line"> <tt class="py-keyword">else</tt><tt class="py-op">:</tt> </tt>
+<a name="L1136"></a><tt class="py-lineno">1136</tt> <tt class="py-line"> <tt class="py-keyword">raise</tt> </tt>
+<a name="L1137"></a><tt class="py-lineno">1137</tt> <tt class="py-line"> <tt class="py-keyword">else</tt><tt class="py-op">:</tt> </tt>
+<a name="L1138"></a><tt class="py-lineno">1138</tt> <tt class="py-line"> <tt class="py-keyword">raise</tt> <tt id="link-158" 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-158', 'UnknownClientSecretsFlowError', 'link-158');">UnknownClientSecretsFlowError</a></tt><tt class="py-op">(</tt> </tt>
+<a name="L1139"></a><tt class="py-lineno">1139</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="L1140"></a><tt class="py-lineno">1140</tt> <tt class="py-line"> </tt><script type="text/javascript">
<!--
expandto(location.href);
// -->
@@ -1469,7 +1483,7 @@
<table border="0" cellpadding="0" cellspacing="0" width="100%%">
<tr>
<td align="left" class="footer">
- Generated by Epydoc 3.0.1 on Thu Jun 14 08:01:59 2012
+ Generated by Epydoc 3.0.1 on Fri Jun 15 09:51:52 2012
</td>
<td align="right" class="footer">
<a target="mainFrame" href="http://epydoc.sourceforge.net"