imported patch docs
diff --git a/docs/apiclient.discovery.html b/docs/apiclient.discovery.html
index aee0373..783849a 100644
--- a/docs/apiclient.discovery.html
+++ b/docs/apiclient.discovery.html
@@ -8,7 +8,7 @@
<td valign=bottom> <br>
<font color="#ffffff" face="helvetica, arial"> <br><big><big><strong><a href="apiclient.html"><font color="#ffffff">apiclient</font></a>.discovery</strong></big></big></font></td
><td align=right valign=bottom
-><font color="#ffffff" face="helvetica, arial"><a href=".">index</a><br><a href="file:/home/jcgregorio/projects/apiclient-release/apiclient/discovery.py">/home/jcgregorio/projects/apiclient-release/apiclient/discovery.py</a></font></td></tr></table>
+><font color="#ffffff" face="helvetica, arial"><a href=".">index</a><br><a href="file:/home/jcgregorio/projects/clean/apiclient/discovery.py">/home/jcgregorio/projects/clean/apiclient/discovery.py</a></font></td></tr></table>
<p><tt>Client for discovery based APIs<br>
<br>
A client library for Google's discovery based APIs.</tt></p>
@@ -40,51 +40,35 @@
<tr><td bgcolor="#eeaa77"><tt> </tt></td><td> </td>
<td width="100%"><dl><dt><a name="-build"><strong>build</strong></a>(serviceName, version, http<font color="#909090">=None</font>, discoveryServiceUrl<font color="#909090">='https://www.googleapis.com/discovery/v1/apis/{api}/{apiVersion}/rest'</font>, developerKey<font color="#909090">=None</font>, model<font color="#909090">=None</font>, requestBuilder<font color="#909090">=<class 'apiclient.http.HttpRequest'></font>)</dt><dd><tt>Construct a Resource for interacting with an API.<br>
<br>
-Construct a Resource object for interacting with<br>
-an API. The serviceName and version are the<br>
-names from the Discovery service.<br>
+Construct a Resource object for interacting with an API. The serviceName and<br>
+version are the names from the Discovery service.<br>
<br>
Args:<br>
- serviceName: string, name of the service<br>
- version: string, the version of the service<br>
+ serviceName: string, name of the service.<br>
+ version: string, the version of the service.<br>
http: httplib2.Http, An instance of httplib2.Http or something that acts<br>
like it that HTTP requests will be made through.<br>
- discoveryServiceUrl: string, a URI Template that points to<br>
- the location of the discovery service. It should have two<br>
- parameters {api} and {apiVersion} that when filled in<br>
- produce an absolute URI to the discovery document for<br>
- that service.<br>
- developerKey: string, key obtained<br>
- from https://code.google.com/apis/console<br>
- model: apiclient.Model, converts to and from the wire format<br>
- requestBuilder: apiclient.http.HttpRequest, encapsulator for<br>
- an HTTP request<br>
+ discoveryServiceUrl: string, a URI Template that points to the location of<br>
+ the discovery service. It should have two parameters {api} and<br>
+ {apiVersion} that when filled in produce an absolute URI to the discovery<br>
+ document for that service.<br>
+ developerKey: string, key obtained from<br>
+ https://code.google.com/apis/console.<br>
+ model: apiclient.Model, converts to and from the wire format.<br>
+ requestBuilder: apiclient.http.HttpRequest, encapsulator for an HTTP<br>
+ request.<br>
<br>
Returns:<br>
- A Resource object with methods for interacting with<br>
- the service.</tt></dd></dl>
- <dl><dt><a name="-build_from_document"><strong>build_from_document</strong></a>(service, base, future<font color="#909090">=None</font>, http<font color="#909090">=None</font>, developerKey<font color="#909090">=None</font>, model<font color="#909090">=None</font>, requestBuilder<font color="#909090">=<class 'apiclient.http.HttpRequest'></font>)</dt><dd><tt>Create a Resource for interacting with an API.<br>
+ A Resource object with methods for interacting with the service.</tt></dd></dl>
+ <dl><dt><a name="-key2param"><strong>key2param</strong></a>(key)</dt><dd><tt>Converts key names into parameter names.<br>
<br>
-Same as `<a href="#-build">build</a>()`, but constructs the Resource object<br>
-from a discovery document that is it given, as opposed to<br>
-retrieving one over HTTP.<br>
+For example, converting "max-results" -> "max_results"<br>
<br>
Args:<br>
- service: string, discovery document<br>
- base: string, base URI for all HTTP requests, usually the discovery URI<br>
- future: string, discovery document with future capabilities<br>
- auth_discovery: dict, information about the authentication the API supports<br>
- http: httplib2.Http, An instance of httplib2.Http or something that acts<br>
- like it that HTTP requests will be made through.<br>
- developerKey: string, Key for controlling API usage, generated<br>
- from the API Console.<br>
- model: Model class instance that serializes and<br>
- de-serializes requests and responses.<br>
- requestBuilder: Takes an http request and packages it up to be executed.<br>
+ key: string, the method key name.<br>
<br>
Returns:<br>
- A Resource object with methods for interacting with<br>
- the service.</tt></dd></dl>
+ A safe method name based on the key name.</tt></dd></dl>
</td></tr></table><p>
<table width="100%" cellspacing=0 cellpadding=2 border=0 summary="section">
<tr bgcolor="#55aa55">
@@ -92,7 +76,7 @@
<font color="#ffffff" face="helvetica, arial"><big><strong>Data</strong></big></font></td></tr>
<tr><td bgcolor="#55aa55"><tt> </tt></td><td> </td>
-<td width="100%"><strong>__all__</strong> = ['build', 'build_from_document']<br>
+<td width="100%"><strong>__all__</strong> = ['build', 'build_from_documentfix_method_name', 'key2param']<br>
<strong>__author__</strong> = 'jcgregorio@google.com (Joe Gregorio)'</td></tr></table><p>
<table width="100%" cellspacing=0 cellpadding=2 border=0 summary="section">
<tr bgcolor="#7799ee">
diff --git a/docs/apiclient.errors.html b/docs/apiclient.errors.html
index 12eee2a..ca65750 100644
--- a/docs/apiclient.errors.html
+++ b/docs/apiclient.errors.html
@@ -8,7 +8,7 @@
<td valign=bottom> <br>
<font color="#ffffff" face="helvetica, arial"> <br><big><big><strong><a href="apiclient.html"><font color="#ffffff">apiclient</font></a>.errors</strong></big></big></font></td
><td align=right valign=bottom
-><font color="#ffffff" face="helvetica, arial"><a href=".">index</a><br><a href="file:/home/jcgregorio/projects/apiclient-release/apiclient/errors.py">/home/jcgregorio/projects/apiclient-release/apiclient/errors.py</a></font></td></tr></table>
+><font color="#ffffff" face="helvetica, arial"><a href=".">index</a><br><a href="file:/home/jcgregorio/projects/clean/apiclient/errors.py">/home/jcgregorio/projects/clean/apiclient/errors.py</a></font></td></tr></table>
<p><tt>Errors for the library.<br>
<br>
All exceptions defined by the library<br>
diff --git a/docs/apiclient.ext.html b/docs/apiclient.ext.html
new file mode 100644
index 0000000..dd6772b
--- /dev/null
+++ b/docs/apiclient.ext.html
@@ -0,0 +1,21 @@
+
+<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
+<html><head><title>Python: package apiclient.ext</title>
+</head><body bgcolor="#f0f0f8">
+
+<table width="100%" cellspacing=0 cellpadding=2 border=0 summary="heading">
+<tr bgcolor="#7799ee">
+<td valign=bottom> <br>
+<font color="#ffffff" face="helvetica, arial"> <br><big><big><strong><a href="apiclient.html"><font color="#ffffff">apiclient</font></a>.ext</strong></big></big></font></td
+><td align=right valign=bottom
+><font color="#ffffff" face="helvetica, arial"><a href=".">index</a><br><a href="file:/home/jcgregorio/projects/clean/apiclient/ext/__init__.py">/home/jcgregorio/projects/clean/apiclient/ext/__init__.py</a></font></td></tr></table>
+ <p></p>
+<p>
+<table width="100%" cellspacing=0 cellpadding=2 border=0 summary="section">
+<tr bgcolor="#aa55cc">
+<td colspan=3 valign=bottom> <br>
+<font color="#ffffff" face="helvetica, arial"><big><strong>Package Contents</strong></big></font></td></tr>
+
+<tr><td bgcolor="#aa55cc"><tt> </tt></td><td> </td>
+<td width="100%"><table width="100%" summary="list"><tr><td width="25%" valign=top></td><td width="25%" valign=top></td><td width="25%" valign=top></td><td width="25%" valign=top></td></tr></table></td></tr></table>
+</body></html>
\ No newline at end of file
diff --git a/docs/apiclient.html b/docs/apiclient.html
index 13a625c..214f6b2 100644
--- a/docs/apiclient.html
+++ b/docs/apiclient.html
@@ -8,7 +8,7 @@
<td valign=bottom> <br>
<font color="#ffffff" face="helvetica, arial"> <br><big><big><strong>apiclient</strong></big></big> (version 1.0b9)</font></td
><td align=right valign=bottom
-><font color="#ffffff" face="helvetica, arial"><a href=".">index</a><br><a href="file:/home/jcgregorio/projects/apiclient-release/apiclient/__init__.py">/home/jcgregorio/projects/apiclient-release/apiclient/__init__.py</a></font></td></tr></table>
+><font color="#ffffff" face="helvetica, arial"><a href=".">index</a><br><a href="file:/home/jcgregorio/projects/clean/apiclient/__init__.py">/home/jcgregorio/projects/clean/apiclient/__init__.py</a></font></td></tr></table>
<p></p>
<p>
<table width="100%" cellspacing=0 cellpadding=2 border=0 summary="section">
@@ -17,15 +17,12 @@
<font color="#ffffff" face="helvetica, arial"><big><strong>Package Contents</strong></big></font></td></tr>
<tr><td bgcolor="#aa55cc"><tt> </tt></td><td> </td>
-<td width="100%"><table width="100%" summary="list"><tr><td width="25%" valign=top><a href="apiclient.anyjson.html">anyjson</a><br>
-<a href="apiclient.contrib.html"><strong>contrib</strong> (package)</a><br>
-<a href="apiclient.discovery.html">discovery</a><br>
-</td><td width="25%" valign=top><a href="apiclient.errors.html">errors</a><br>
-<a href="apiclient.ext.html"><strong>ext</strong> (package)</a><br>
+<td width="100%"><table width="100%" summary="list"><tr><td width="25%" valign=top><a href="apiclient.discovery.html">discovery</a><br>
+<a href="apiclient.errors.html">errors</a><br>
+</td><td width="25%" valign=top><a href="apiclient.ext.html"><strong>ext</strong> (package)</a><br>
<a href="apiclient.http.html">http</a><br>
</td><td width="25%" valign=top><a href="apiclient.mimeparse.html">mimeparse</a><br>
<a href="apiclient.model.html">model</a><br>
-<a href="apiclient.oauth.html">oauth</a><br>
</td><td width="25%" valign=top><a href="apiclient.schema.html">schema</a><br>
</td></tr></table></td></tr></table><p>
<table width="100%" cellspacing=0 cellpadding=2 border=0 summary="section">
diff --git a/docs/apiclient.http.html b/docs/apiclient.http.html
index 5c5aa78..69a1cad 100644
--- a/docs/apiclient.http.html
+++ b/docs/apiclient.http.html
@@ -8,7 +8,7 @@
<td valign=bottom> <br>
<font color="#ffffff" face="helvetica, arial"> <br><big><big><strong><a href="apiclient.html"><font color="#ffffff">apiclient</font></a>.http</strong></big></big></font></td
><td align=right valign=bottom
-><font color="#ffffff" face="helvetica, arial"><a href=".">index</a><br><a href="file:/home/jcgregorio/projects/apiclient-release/apiclient/http.py">/home/jcgregorio/projects/apiclient-release/apiclient/http.py</a></font></td></tr></table>
+><font color="#ffffff" face="helvetica, arial"><a href=".">index</a><br><a href="file:/home/jcgregorio/projects/clean/apiclient/http.py">/home/jcgregorio/projects/clean/apiclient/http.py</a></font></td></tr></table>
<p><tt>Classes to encapsulate a single HTTP request.<br>
<br>
The classes implement a command pattern, with every<br>
@@ -54,6 +54,7 @@
<dl>
<dt><font face="helvetica, arial"><a href="apiclient.http.html#MediaFileUpload">MediaFileUpload</a>
</font></dt><dt><font face="helvetica, arial"><a href="apiclient.http.html#MediaInMemoryUpload">MediaInMemoryUpload</a>
+</font></dt><dt><font face="helvetica, arial"><a href="apiclient.http.html#MediaIoBaseUpload">MediaIoBaseUpload</a>
</font></dt></dl>
</dd>
<dt><font face="helvetica, arial"><a href="apiclient.http.html#MediaUploadProgress">MediaUploadProgress</a>
@@ -254,7 +255,11 @@
<br>
Returns:<br>
(status, body): (ResumableMediaStatus, <a href="__builtin__.html#object">object</a>)<br>
- The body will be None until the resumable media is fully uploaded.</tt></dd></dl>
+ The body will be None until the resumable media is fully uploaded.<br>
+ <br>
+Raises:<br>
+ apiclient.errors.HttpError if the response was not a 2xx.<br>
+ httplib2.Error if a transport error has occured.</tt></dd></dl>
<dl><dt><a name="HttpRequest-to_json"><strong>to_json</strong></a>(self)</dt><dd><tt>Returns a JSON representation of the <a href="#HttpRequest">HttpRequest</a>.</tt></dd></dl>
@@ -316,8 +321,8 @@
method. For example, if we had a service that allowed uploading images:<br>
<br>
<br>
- media = <a href="#MediaFileUpload">MediaFileUpload</a>('smiley.png', mimetype='image/png', chunksize=1000,<br>
- resumable=True)<br>
+ media = <a href="#MediaFileUpload">MediaFileUpload</a>('smiley.png', mimetype='image/png',<br>
+ chunksize=1024*1024, resumable=True)<br>
service.objects().insert(<br>
bucket=buckets['items'][0]['id'],<br>
name='smiley.png',<br>
@@ -330,7 +335,7 @@
</dl>
<hr>
Methods defined here:<br>
-<dl><dt><a name="MediaFileUpload-__init__"><strong>__init__</strong></a>(self, filename, mimetype<font color="#909090">=None</font>, chunksize<font color="#909090">=262144</font>, resumable<font color="#909090">=False</font>)</dt><dd><tt>Constructor.<br>
+<dl><dt><a name="MediaFileUpload-__init__"><strong>__init__</strong></a>(self, filename, mimetype<font color="#909090">=None</font>, chunksize<font color="#909090">=524288</font>, resumable<font color="#909090">=False</font>)</dt><dd><tt>Constructor.<br>
<br>
Args:<br>
filename: string, Name of the file.<br>
@@ -341,7 +346,10 @@
resumable: bool, True if this is a resumable upload. False means upload<br>
in a single request.</tt></dd></dl>
-<dl><dt><a name="MediaFileUpload-chunksize"><strong>chunksize</strong></a>(self)</dt></dl>
+<dl><dt><a name="MediaFileUpload-chunksize"><strong>chunksize</strong></a>(self)</dt><dd><tt>Chunk size for resumable uploads.<br>
+ <br>
+Returns:<br>
+ Chunk size in bytes.</tt></dd></dl>
<dl><dt><a name="MediaFileUpload-getbytes"><strong>getbytes</strong></a>(self, begin, length)</dt><dd><tt>Get bytes from the media.<br>
<br>
@@ -353,11 +361,20 @@
A string of bytes read. May be shorted than length if EOF was reached<br>
first.</tt></dd></dl>
-<dl><dt><a name="MediaFileUpload-mimetype"><strong>mimetype</strong></a>(self)</dt></dl>
+<dl><dt><a name="MediaFileUpload-mimetype"><strong>mimetype</strong></a>(self)</dt><dd><tt>Mime type of the body.<br>
+ <br>
+Returns:<br>
+ Mime type.</tt></dd></dl>
-<dl><dt><a name="MediaFileUpload-resumable"><strong>resumable</strong></a>(self)</dt></dl>
+<dl><dt><a name="MediaFileUpload-resumable"><strong>resumable</strong></a>(self)</dt><dd><tt>Whether this upload is resumable.<br>
+ <br>
+Returns:<br>
+ True if resumable upload or False.</tt></dd></dl>
-<dl><dt><a name="MediaFileUpload-size"><strong>size</strong></a>(self)</dt></dl>
+<dl><dt><a name="MediaFileUpload-size"><strong>size</strong></a>(self)</dt><dd><tt>Size of upload.<br>
+ <br>
+Returns:<br>
+ Size of the body, or None of the size is unknown.</tt></dd></dl>
<dl><dt><a name="MediaFileUpload-to_json"><strong>to_json</strong></a>(self)</dt><dd><tt>Creating a JSON representation of an instance of Credentials.<br>
<br>
@@ -408,7 +425,7 @@
</dl>
<hr>
Methods defined here:<br>
-<dl><dt><a name="MediaInMemoryUpload-__init__"><strong>__init__</strong></a>(self, body, mimetype<font color="#909090">='application/octet-stream'</font>, chunksize<font color="#909090">=262144</font>, resumable<font color="#909090">=False</font>)</dt><dd><tt>Create a new MediaBytesUpload.<br>
+<dl><dt><a name="MediaInMemoryUpload-__init__"><strong>__init__</strong></a>(self, body, mimetype<font color="#909090">='application/octet-stream'</font>, chunksize<font color="#909090">=524288</font>, resumable<font color="#909090">=False</font>)</dt><dd><tt>Create a new MediaBytesUpload.<br>
<br>
Args:<br>
body: string, Bytes of body content.<br>
@@ -447,7 +464,7 @@
<dl><dt><a name="MediaInMemoryUpload-size"><strong>size</strong></a>(self)</dt><dd><tt>Size of upload.<br>
<br>
Returns:<br>
- Size of the body.</tt></dd></dl>
+ Size of the body, or None of the size is unknown.</tt></dd></dl>
<dl><dt><a name="MediaInMemoryUpload-to_json"><strong>to_json</strong></a>(self)</dt><dd><tt>Create a JSON representation of a <a href="#MediaInMemoryUpload">MediaInMemoryUpload</a>.<br>
<br>
@@ -483,23 +500,141 @@
<table width="100%" cellspacing=0 cellpadding=2 border=0 summary="section">
<tr bgcolor="#ffc8d8">
<td colspan=3 valign=bottom> <br>
+<font color="#000000" face="helvetica, arial"><a name="MediaIoBaseUpload">class <strong>MediaIoBaseUpload</strong></a>(<a href="apiclient.http.html#MediaUpload">MediaUpload</a>)</font></td></tr>
+
+<tr bgcolor="#ffc8d8"><td rowspan=2><tt> </tt></td>
+<td colspan=2><tt>A <a href="#MediaUpload">MediaUpload</a> for a io.Base objects.<br>
+ <br>
+Note that the Python file <a href="__builtin__.html#object">object</a> is compatible with io.Base and can be used<br>
+with this class also.<br>
+ <br>
+ <br>
+ fh = io.BytesIO('...Some data to upload...')<br>
+ media = <a href="#MediaIoBaseUpload">MediaIoBaseUpload</a>(fh, mimetype='image/png',<br>
+ chunksize=1024*1024, resumable=True)<br>
+ service.objects().insert(<br>
+ bucket='a_bucket_id',<br>
+ name='smiley.png',<br>
+ media_body=media).execute()<br> </tt></td></tr>
+<tr><td> </td>
+<td width="100%"><dl><dt>Method resolution order:</dt>
+<dd><a href="apiclient.http.html#MediaIoBaseUpload">MediaIoBaseUpload</a></dd>
+<dd><a href="apiclient.http.html#MediaUpload">MediaUpload</a></dd>
+<dd><a href="__builtin__.html#object">__builtin__.object</a></dd>
+</dl>
+<hr>
+Methods defined here:<br>
+<dl><dt><a name="MediaIoBaseUpload-__init__"><strong>__init__</strong></a>(self, fh, mimetype, chunksize<font color="#909090">=524288</font>, resumable<font color="#909090">=False</font>)</dt><dd><tt>Constructor.<br>
+ <br>
+Args:<br>
+ fh: io.Base or file <a href="__builtin__.html#object">object</a>, The source of the bytes to upload.<br>
+ mimetype: string, Mime-type of the file. If None then a mime-type will be<br>
+ guessed from the file extension.<br>
+ chunksize: int, File will be uploaded in chunks of this many bytes. Only<br>
+ used if resumable=True.<br>
+ resumable: bool, True if this is a resumable upload. False means upload<br>
+ in a single request.</tt></dd></dl>
+
+<dl><dt><a name="MediaIoBaseUpload-chunksize"><strong>chunksize</strong></a>(self)</dt><dd><tt>Chunk size for resumable uploads.<br>
+ <br>
+Returns:<br>
+ Chunk size in bytes.</tt></dd></dl>
+
+<dl><dt><a name="MediaIoBaseUpload-getbytes"><strong>getbytes</strong></a>(self, begin, length)</dt><dd><tt>Get bytes from the media.<br>
+ <br>
+Args:<br>
+ begin: int, offset from beginning of file.<br>
+ length: int, number of bytes to read, starting at begin.<br>
+ <br>
+Returns:<br>
+ A string of bytes read. May be shorted than length if EOF was reached<br>
+ first.</tt></dd></dl>
+
+<dl><dt><a name="MediaIoBaseUpload-mimetype"><strong>mimetype</strong></a>(self)</dt><dd><tt>Mime type of the body.<br>
+ <br>
+Returns:<br>
+ Mime type.</tt></dd></dl>
+
+<dl><dt><a name="MediaIoBaseUpload-resumable"><strong>resumable</strong></a>(self)</dt><dd><tt>Whether this upload is resumable.<br>
+ <br>
+Returns:<br>
+ True if resumable upload or False.</tt></dd></dl>
+
+<dl><dt><a name="MediaIoBaseUpload-size"><strong>size</strong></a>(self)</dt><dd><tt>Size of upload.<br>
+ <br>
+Returns:<br>
+ Size of the body, or None of the size is unknown.</tt></dd></dl>
+
+<dl><dt><a name="MediaIoBaseUpload-to_json"><strong>to_json</strong></a>(self)</dt><dd><tt>This upload type is not serializable.</tt></dd></dl>
+
+<hr>
+Class methods inherited from <a href="apiclient.http.html#MediaUpload">MediaUpload</a>:<br>
+<dl><dt><a name="MediaIoBaseUpload-new_from_json"><strong>new_from_json</strong></a>(cls, s)<font color="#909090"><font face="helvetica, arial"> from <a href="__builtin__.html#type">__builtin__.type</a></font></font></dt><dd><tt>Utility class method to instantiate a <a href="#MediaUpload">MediaUpload</a> subclass from a JSON<br>
+representation produced by <a href="#MediaIoBaseUpload-to_json">to_json</a>().<br>
+ <br>
+Args:<br>
+ s: string, JSON from <a href="#MediaIoBaseUpload-to_json">to_json</a>().<br>
+ <br>
+Returns:<br>
+ An instance of the subclass of <a href="#MediaUpload">MediaUpload</a> that was serialized with<br>
+ <a href="#MediaIoBaseUpload-to_json">to_json</a>().</tt></dd></dl>
+
+<hr>
+Data descriptors inherited from <a href="apiclient.http.html#MediaUpload">MediaUpload</a>:<br>
+<dl><dt><strong>__dict__</strong></dt>
+<dd><tt>dictionary for instance variables (if defined)</tt></dd>
+</dl>
+<dl><dt><strong>__weakref__</strong></dt>
+<dd><tt>list of weak references to the object (if defined)</tt></dd>
+</dl>
+</td></tr></table> <p>
+<table width="100%" cellspacing=0 cellpadding=2 border=0 summary="section">
+<tr bgcolor="#ffc8d8">
+<td colspan=3 valign=bottom> <br>
<font color="#000000" face="helvetica, arial"><a name="MediaUpload">class <strong>MediaUpload</strong></a>(<a href="__builtin__.html#object">__builtin__.object</a>)</font></td></tr>
<tr bgcolor="#ffc8d8"><td rowspan=2><tt> </tt></td>
<td colspan=2><tt>Describes a media <a href="__builtin__.html#object">object</a> to upload.<br>
<br>
-Base class that defines the interface of <a href="#MediaUpload">MediaUpload</a> subclasses.<br> </tt></td></tr>
+Base class that defines the interface of <a href="#MediaUpload">MediaUpload</a> subclasses.<br>
+ <br>
+Note that subclasses of <a href="#MediaUpload">MediaUpload</a> may allow you to control the chunksize<br>
+when upload a media <a href="__builtin__.html#object">object</a>. It is important to keep the size of the chunk as<br>
+large as possible to keep the upload efficient. Other factors may influence<br>
+the size of the chunk you use, particularly if you are working in an<br>
+environment where individual HTTP requests may have a hardcoded time limit,<br>
+such as under certain classes of requests under Google App Engine.<br> </tt></td></tr>
<tr><td> </td>
<td width="100%">Methods defined here:<br>
-<dl><dt><a name="MediaUpload-chunksize"><strong>chunksize</strong></a>(self)</dt></dl>
+<dl><dt><a name="MediaUpload-chunksize"><strong>chunksize</strong></a>(self)</dt><dd><tt>Chunk size for resumable uploads.<br>
+ <br>
+Returns:<br>
+ Chunk size in bytes.</tt></dd></dl>
-<dl><dt><a name="MediaUpload-getbytes"><strong>getbytes</strong></a>(self, begin, end)</dt></dl>
+<dl><dt><a name="MediaUpload-getbytes"><strong>getbytes</strong></a>(self, begin, end)</dt><dd><tt>Get bytes from the media.<br>
+ <br>
+Args:<br>
+ begin: int, offset from beginning of file.<br>
+ length: int, number of bytes to read, starting at begin.<br>
+ <br>
+Returns:<br>
+ A string of bytes read. May be shorter than length if EOF was reached<br>
+ first.</tt></dd></dl>
-<dl><dt><a name="MediaUpload-mimetype"><strong>mimetype</strong></a>(self)</dt></dl>
+<dl><dt><a name="MediaUpload-mimetype"><strong>mimetype</strong></a>(self)</dt><dd><tt>Mime type of the body.<br>
+ <br>
+Returns:<br>
+ Mime type.</tt></dd></dl>
-<dl><dt><a name="MediaUpload-resumable"><strong>resumable</strong></a>(self)</dt></dl>
+<dl><dt><a name="MediaUpload-resumable"><strong>resumable</strong></a>(self)</dt><dd><tt>Whether this upload is resumable.<br>
+ <br>
+Returns:<br>
+ True if resumable upload or False.</tt></dd></dl>
-<dl><dt><a name="MediaUpload-size"><strong>size</strong></a>(self)</dt></dl>
+<dl><dt><a name="MediaUpload-size"><strong>size</strong></a>(self)</dt><dd><tt>Size of upload.<br>
+ <br>
+Returns:<br>
+ Size of the body, or None of the size is unknown.</tt></dd></dl>
<dl><dt><a name="MediaUpload-to_json"><strong>to_json</strong></a>(self)</dt><dd><tt>Create a JSON representation of an instance of <a href="#MediaUpload">MediaUpload</a>.<br>
<br>
@@ -541,9 +676,14 @@
<br>
Args:<br>
resumable_progress: int, bytes sent so far.<br>
- total_size: int, total bytes in complete upload.</tt></dd></dl>
+ total_size: int, total bytes in complete upload, or None if the total<br>
+ upload size isn't known ahead of time.</tt></dd></dl>
-<dl><dt><a name="MediaUploadProgress-progress"><strong>progress</strong></a>(self)</dt><dd><tt>Percent of upload completed, as a float.</tt></dd></dl>
+<dl><dt><a name="MediaUploadProgress-progress"><strong>progress</strong></a>(self)</dt><dd><tt>Percent of upload completed, as a float.<br>
+ <br>
+Returns:<br>
+ the percentage complete as a float, returning 0.0 if the total size of<br>
+ the upload is unknown.</tt></dd></dl>
<hr>
Data descriptors defined here:<br>
@@ -658,7 +798,8 @@
<font color="#ffffff" face="helvetica, arial"><big><strong>Data</strong></big></font></td></tr>
<tr><td bgcolor="#55aa55"><tt> </tt></td><td> </td>
-<td width="100%"><strong>__author__</strong> = 'jcgregorio@google.com (Joe Gregorio)'</td></tr></table><p>
+<td width="100%"><strong>DEFAULT_CHUNK_SIZE</strong> = 524288<br>
+<strong>__author__</strong> = 'jcgregorio@google.com (Joe Gregorio)'</td></tr></table><p>
<table width="100%" cellspacing=0 cellpadding=2 border=0 summary="section">
<tr bgcolor="#7799ee">
<td colspan=3 valign=bottom> <br>
diff --git a/docs/apiclient.mimeparse.html b/docs/apiclient.mimeparse.html
index 8acff5d..ec76ce6 100644
--- a/docs/apiclient.mimeparse.html
+++ b/docs/apiclient.mimeparse.html
@@ -8,7 +8,7 @@
<td valign=bottom> <br>
<font color="#ffffff" face="helvetica, arial"> <br><big><big><strong><a href="apiclient.html"><font color="#ffffff">apiclient</font></a>.mimeparse</strong></big></big> (version 0.1.3)</font></td
><td align=right valign=bottom
-><font color="#ffffff" face="helvetica, arial"><a href=".">index</a><br><a href="file:/home/jcgregorio/projects/apiclient-release/apiclient/mimeparse.py">/home/jcgregorio/projects/apiclient-release/apiclient/mimeparse.py</a></font></td></tr></table>
+><font color="#ffffff" face="helvetica, arial"><a href=".">index</a><br><a href="file:/home/jcgregorio/projects/clean/apiclient/mimeparse.py">/home/jcgregorio/projects/clean/apiclient/mimeparse.py</a></font></td></tr></table>
<p><tt>MIME-Type Parser<br>
<br>
This module provides basic functions for handling mime-types. It can handle<br>
diff --git a/docs/apiclient.model.html b/docs/apiclient.model.html
index b1fe4e7..837f372 100644
--- a/docs/apiclient.model.html
+++ b/docs/apiclient.model.html
@@ -8,7 +8,7 @@
<td valign=bottom> <br>
<font color="#ffffff" face="helvetica, arial"> <br><big><big><strong><a href="apiclient.html"><font color="#ffffff">apiclient</font></a>.model</strong></big></big></font></td
><td align=right valign=bottom
-><font color="#ffffff" face="helvetica, arial"><a href=".">index</a><br><a href="file:/home/jcgregorio/projects/apiclient-release/apiclient/model.py">/home/jcgregorio/projects/apiclient-release/apiclient/model.py</a></font></td></tr></table>
+><font color="#ffffff" face="helvetica, arial"><a href=".">index</a><br><a href="file:/home/jcgregorio/projects/clean/apiclient/model.py">/home/jcgregorio/projects/clean/apiclient/model.py</a></font></td></tr></table>
<p><tt><a href="#Model">Model</a> objects for requests and responses.<br>
<br>
Each API may support one or more serializations, such<br>
diff --git a/docs/apiclient.schema.html b/docs/apiclient.schema.html
index b2b1c62..4594d76 100644
--- a/docs/apiclient.schema.html
+++ b/docs/apiclient.schema.html
@@ -8,7 +8,7 @@
<td valign=bottom> <br>
<font color="#ffffff" face="helvetica, arial"> <br><big><big><strong><a href="apiclient.html"><font color="#ffffff">apiclient</font></a>.schema</strong></big></big></font></td
><td align=right valign=bottom
-><font color="#ffffff" face="helvetica, arial"><a href=".">index</a><br><a href="file:/home/jcgregorio/projects/apiclient-release/apiclient/schema.py">/home/jcgregorio/projects/apiclient-release/apiclient/schema.py</a></font></td></tr></table>
+><font color="#ffffff" face="helvetica, arial"><a href=".">index</a><br><a href="file:/home/jcgregorio/projects/clean/apiclient/schema.py">/home/jcgregorio/projects/clean/apiclient/schema.py</a></font></td></tr></table>
<p><tt>Schema processing for discovery based APIs<br>
<br>
<a href="#Schemas">Schemas</a> holds an APIs discovery schemas. It can return those schema as<br>
diff --git a/docs/dyn/adexchangebuyer.v1.accounts.html b/docs/dyn/adexchangebuyer.v1.accounts.html
index f20a6d6..9a967bd 100644
--- a/docs/dyn/adexchangebuyer.v1.accounts.html
+++ b/docs/dyn/adexchangebuyer.v1.accounts.html
@@ -17,6 +17,10 @@
<dl><dt><a name="Resource-get"><strong>get</strong></a> = method(self, **kwargs)</dt><dd><tt>Gets one account by ID.<br>
<br>
Args:<br>
+ pp: string, A parameter<br>
+ trace: string, A parameter<br>
+ strict: string, A parameter<br>
+ userip: string, A parameter<br>
id: integer, The account id (required)<br>
<br>
Returns:<br>
@@ -39,6 +43,10 @@
<dl><dt><a name="Resource-list"><strong>list</strong></a> = method(self, **kwargs)</dt><dd><tt>Retrieves the authenticated user's list of accounts.<br>
<br>
Args:<br>
+ pp: string, A parameter<br>
+ trace: string, A parameter<br>
+ strict: string, A parameter<br>
+ userip: string, A parameter<br>
<br>
Returns:<br>
An object of the form<br>
@@ -82,6 +90,10 @@
"cookieMatchingUrl": "A String", # The base URL used in cookie match requests.<br>
}<br>
<br>
+ pp: string, A parameter<br>
+ trace: string, A parameter<br>
+ strict: string, A parameter<br>
+ userip: string, A parameter<br>
id: integer, The account id (required)<br>
<br>
Returns:<br>
@@ -121,6 +133,10 @@
"cookieMatchingUrl": "A String", # The base URL used in cookie match requests.<br>
}<br>
<br>
+ pp: string, A parameter<br>
+ trace: string, A parameter<br>
+ strict: string, A parameter<br>
+ userip: string, A parameter<br>
id: integer, The account id (required)<br>
<br>
Returns:<br>
diff --git a/docs/dyn/adexchangebuyer.v1.creatives.html b/docs/dyn/adexchangebuyer.v1.creatives.html
index dbeda6c..4247c9e 100644
--- a/docs/dyn/adexchangebuyer.v1.creatives.html
+++ b/docs/dyn/adexchangebuyer.v1.creatives.html
@@ -18,7 +18,11 @@
<br>
Args:<br>
adgroupId: string, The adgroup this creative belongs to. (required)<br>
+ trace: string, A parameter<br>
+ pp: string, A parameter<br>
+ strict: string, A parameter<br>
buyerCreativeId: string, The buyer-specific id for this creative. (required)<br>
+ userip: string, A parameter<br>
accountId: integer, The id for the account that will serve this creative. (required)<br>
<br>
Returns:<br>
@@ -98,6 +102,10 @@
"accountId": 42, # Account id.<br>
}<br>
<br>
+ pp: string, A parameter<br>
+ trace: string, A parameter<br>
+ strict: string, A parameter<br>
+ userip: string, A parameter<br>
<br>
Returns:<br>
An object of the form<br>
@@ -136,6 +144,58 @@
"accountId": 42, # Account id.<br>
}</tt></dd></dl>
+<dl><dt><a name="Resource-list"><strong>list</strong></a> = method(self, **kwargs)</dt><dd><tt>Retrieves a list of the authenticated user's active creatives.<br>
+ <br>
+Args:<br>
+ pp: string, A parameter<br>
+ trace: string, A parameter<br>
+ pageToken: string, A continuation token, used to page through ad clients. To retrieve the next page, set this parameter to the value of "nextPageToken" from the previous response. Optional.<br>
+ maxResults: integer, Maximum number of entries returned on one result page. If not set, the default is 100. Optional.<br>
+ strict: string, A parameter<br>
+ userip: string, A parameter<br>
+ <br>
+Returns:<br>
+ An object of the form<br>
+ <br>
+ {<br>
+ "items": [ # A list of creatives.<br>
+ {<br>
+ "productCategories": [ # Detected product categories, if any. Read-only. This field should not be set in requests.<br>
+ 42,<br>
+ ],<br>
+ "advertiserName": "A String", # The name of the company being advertised in the creative.<br>
+ "adgroupId": "A String", # The pretargeting adgroup id that this creative will be associated with.<br>
+ "videoURL": "A String", # The url to fetch a video ad. If set, HTMLSnippet should not be set.<br>
+ "width": 42, # Ad width.<br>
+ "attribute": [ # All attributes for the ads that may be shown from this snippet.<br>
+ 42,<br>
+ ],<br>
+ "kind": "adexchangebuyer#creative", # Resource type.<br>
+ "height": 42, # Ad height.<br>
+ "advertiserId": [ # Detected advertiser id, if any. Read-only. This field should not be set in requests.<br>
+ "A String",<br>
+ ],<br>
+ "HTMLSnippet": "A String", # The HTML snippet that displays the ad when inserted in the web page. If set, videoURL should not be set.<br>
+ "status": "A String", # Creative serving status. Read-only. This field should not be set in requests.<br>
+ "buyerCreativeId": "A String", # A buyer-specific id identifying the creative in this ad.<br>
+ "clickThroughUrl": [ # The set of destination urls for the snippet.<br>
+ "A String",<br>
+ ],<br>
+ "vendorType": [ # All vendor types for the ads that may be shown from this snippet.<br>
+ 42,<br>
+ ],<br>
+ "disapprovalReasons": [ # The reason for disapproval, if any. Note that not all disapproval reasons may be categorized, so it is possible for the creative to have a status of DISAPPROVED with an empty list for disapproval_reasons. In this case, please reach out to your TAM to help debug the issue. Read-only. This field should not be set in requests.<br>
+ "A String",<br>
+ ],<br>
+ "sensitiveCategories": [ # Detected sensitive categories, if any. Read-only. This field should not be set in requests.<br>
+ 42,<br>
+ ],<br>
+ "accountId": 42, # Account id.<br>
+ },<br>
+ ],<br>
+ "kind": "adexchangebuyer#creativesList", # Resource type.<br>
+ }</tt></dd></dl>
+
<hr>
Data descriptors defined here:<br>
<dl><dt><strong>__dict__</strong></dt>
diff --git a/docs/dyn/adexchangebuyer.v1.directDeals.html b/docs/dyn/adexchangebuyer.v1.directDeals.html
index d052816..f300677 100644
--- a/docs/dyn/adexchangebuyer.v1.directDeals.html
+++ b/docs/dyn/adexchangebuyer.v1.directDeals.html
@@ -17,6 +17,10 @@
<dl><dt><a name="Resource-get"><strong>get</strong></a> = method(self, **kwargs)</dt><dd><tt>Gets one direct deal by ID.<br>
<br>
Args:<br>
+ pp: string, A parameter<br>
+ trace: string, A parameter<br>
+ strict: string, A parameter<br>
+ userip: string, A parameter<br>
id: string, The direct deal id (required)<br>
<br>
Returns:<br>
@@ -37,6 +41,10 @@
<dl><dt><a name="Resource-list"><strong>list</strong></a> = method(self, **kwargs)</dt><dd><tt>Retrieves the authenticated user's list of direct deals.<br>
<br>
Args:<br>
+ pp: string, A parameter<br>
+ trace: string, A parameter<br>
+ strict: string, A parameter<br>
+ userip: string, A parameter<br>
<br>
Returns:<br>
An object of the form<br>
diff --git a/docs/dyn/adsense.v1.1.accounts.adclients.html b/docs/dyn/adsense.v1.1.accounts.adclients.html
index e8e3cf7..183b11f 100644
--- a/docs/dyn/adsense.v1.1.accounts.adclients.html
+++ b/docs/dyn/adsense.v1.1.accounts.adclients.html
@@ -17,8 +17,12 @@
<dl><dt><a name="Resource-list"><strong>list</strong></a> = method(self, **kwargs)</dt><dd><tt>List all ad clients in the specified account.<br>
<br>
Args:<br>
+ pp: string, A parameter<br>
+ trace: string, A parameter<br>
pageToken: string, A continuation token, used to page through ad clients. To retrieve the next page, set this parameter to the value of "nextPageToken" from the previous response.<br>
maxResults: integer, The maximum number of ad clients to include in the response, used for paging.<br>
+ strict: string, A parameter<br>
+ userip: string, A parameter<br>
accountId: string, Account for which to list ad clients. (required)<br>
<br>
Returns:<br>
diff --git a/docs/dyn/adsense.v1.1.accounts.adunits.customchannels.html b/docs/dyn/adsense.v1.1.accounts.adunits.customchannels.html
index 7544c2c..1819d90 100644
--- a/docs/dyn/adsense.v1.1.accounts.adunits.customchannels.html
+++ b/docs/dyn/adsense.v1.1.accounts.adunits.customchannels.html
@@ -17,9 +17,13 @@
<dl><dt><a name="Resource-list"><strong>list</strong></a> = method(self, **kwargs)</dt><dd><tt>List all custom channels which the specified ad unit belongs to.<br>
<br>
Args:<br>
+ pp: string, A parameter<br>
+ trace: string, A parameter<br>
pageToken: string, A continuation token, used to page through custom channels. To retrieve the next page, set this parameter to the value of "nextPageToken" from the previous response.<br>
adClientId: string, Ad client which contains the ad unit. (required)<br>
maxResults: integer, The maximum number of custom channels to include in the response, used for paging.<br>
+ strict: string, A parameter<br>
+ userip: string, A parameter<br>
adUnitId: string, Ad unit for which to list custom channels. (required)<br>
accountId: string, Account to which the ad client belongs. (required)<br>
<br>
diff --git a/docs/dyn/adsense.v1.1.accounts.adunits.html b/docs/dyn/adsense.v1.1.accounts.adunits.html
index c1ef81c..f5c7ea3 100644
--- a/docs/dyn/adsense.v1.1.accounts.adunits.html
+++ b/docs/dyn/adsense.v1.1.accounts.adunits.html
@@ -19,7 +19,11 @@
<dl><dt><a name="Resource-get"><strong>get</strong></a> = method(self, **kwargs)</dt><dd><tt>Gets the specified ad unit in the specified ad client for the specified account.<br>
<br>
Args:<br>
+ pp: string, A parameter<br>
+ trace: string, A parameter<br>
adClientId: string, Ad client for which to get the ad unit. (required)<br>
+ strict: string, A parameter<br>
+ userip: string, A parameter<br>
adUnitId: string, Ad unit to retrieve. (required)<br>
accountId: string, Account to which the ad client belongs. (required)<br>
<br>
@@ -42,10 +46,14 @@
<dl><dt><a name="Resource-list"><strong>list</strong></a> = method(self, **kwargs)</dt><dd><tt>List all ad units in the specified ad client for the specified account.<br>
<br>
Args:<br>
+ pp: string, A parameter<br>
+ trace: string, A parameter<br>
pageToken: string, A continuation token, used to page through ad units. To retrieve the next page, set this parameter to the value of "nextPageToken" from the previous response.<br>
includeInactive: boolean, Whether to include inactive ad units. Default: true.<br>
adClientId: string, Ad client for which to list ad units. (required)<br>
maxResults: integer, The maximum number of ad units to include in the response, used for paging.<br>
+ strict: string, A parameter<br>
+ userip: string, A parameter<br>
accountId: string, Account to which the ad client belongs. (required)<br>
<br>
Returns:<br>
diff --git a/docs/dyn/adsense.v1.1.accounts.customchannels.adunits.html b/docs/dyn/adsense.v1.1.accounts.customchannels.adunits.html
index ebd3ba6..c8b6f52 100644
--- a/docs/dyn/adsense.v1.1.accounts.customchannels.adunits.html
+++ b/docs/dyn/adsense.v1.1.accounts.customchannels.adunits.html
@@ -17,11 +17,15 @@
<dl><dt><a name="Resource-list"><strong>list</strong></a> = method(self, **kwargs)</dt><dd><tt>List all ad units in the specified custom channel.<br>
<br>
Args:<br>
+ pp: string, A parameter<br>
+ trace: string, A parameter<br>
pageToken: string, A continuation token, used to page through ad units. To retrieve the next page, set this parameter to the value of "nextPageToken" from the previous response.<br>
includeInactive: boolean, Whether to include inactive ad units. Default: true.<br>
customChannelId: string, Custom channel for which to list ad units. (required)<br>
adClientId: string, Ad client which contains the custom channel. (required)<br>
maxResults: integer, The maximum number of ad units to include in the response, used for paging.<br>
+ strict: string, A parameter<br>
+ userip: string, A parameter<br>
accountId: string, Account to which the ad client belongs. (required)<br>
<br>
Returns:<br>
diff --git a/docs/dyn/adsense.v1.1.accounts.customchannels.html b/docs/dyn/adsense.v1.1.accounts.customchannels.html
index e176555..3d206a7 100644
--- a/docs/dyn/adsense.v1.1.accounts.customchannels.html
+++ b/docs/dyn/adsense.v1.1.accounts.customchannels.html
@@ -19,8 +19,12 @@
<dl><dt><a name="Resource-get"><strong>get</strong></a> = method(self, **kwargs)</dt><dd><tt>Get the specified custom channel from the specified ad client for the specified account.<br>
<br>
Args:<br>
+ pp: string, A parameter<br>
+ trace: string, A parameter<br>
customChannelId: string, Custom channel to retrieve. (required)<br>
adClientId: string, Ad client which contains the custom channel. (required)<br>
+ strict: string, A parameter<br>
+ userip: string, A parameter<br>
accountId: string, Account to which the ad client belongs. (required)<br>
<br>
Returns:<br>
@@ -42,9 +46,13 @@
<dl><dt><a name="Resource-list"><strong>list</strong></a> = method(self, **kwargs)</dt><dd><tt>List all custom channels in the specified ad client for the specified account.<br>
<br>
Args:<br>
+ pp: string, A parameter<br>
+ trace: string, A parameter<br>
pageToken: string, A continuation token, used to page through custom channels. To retrieve the next page, set this parameter to the value of "nextPageToken" from the previous response.<br>
adClientId: string, Ad client for which to list custom channels. (required)<br>
maxResults: integer, The maximum number of custom channels to include in the response, used for paging.<br>
+ strict: string, A parameter<br>
+ userip: string, A parameter<br>
accountId: string, Account to which the ad client belongs. (required)<br>
<br>
Returns:<br>
diff --git a/docs/dyn/adsense.v1.1.accounts.html b/docs/dyn/adsense.v1.1.accounts.html
index f18190f..8add277 100644
--- a/docs/dyn/adsense.v1.1.accounts.html
+++ b/docs/dyn/adsense.v1.1.accounts.html
@@ -23,7 +23,11 @@
<dl><dt><a name="Resource-get"><strong>get</strong></a> = method(self, **kwargs)</dt><dd><tt>Get information about the selected AdSense account.<br>
<br>
Args:<br>
+ pp: string, A parameter<br>
+ trace: string, A parameter<br>
tree: boolean, Whether the tree of sub accounts should be returned.<br>
+ strict: string, A parameter<br>
+ userip: string, A parameter<br>
accountId: string, Account to get information about. (required)<br>
<br>
Returns:<br>
@@ -41,8 +45,12 @@
<dl><dt><a name="Resource-list"><strong>list</strong></a> = method(self, **kwargs)</dt><dd><tt>List all accounts available to this AdSense account.<br>
<br>
Args:<br>
+ pp: string, A parameter<br>
+ trace: string, A parameter<br>
pageToken: string, A continuation token, used to page through accounts. To retrieve the next page, set this parameter to the value of "nextPageToken" from the previous response.<br>
maxResults: integer, The maximum number of accounts to include in the response, used for paging.<br>
+ strict: string, A parameter<br>
+ userip: string, A parameter<br>
<br>
Returns:<br>
An object of the form<br>
diff --git a/docs/dyn/adsense.v1.1.accounts.reports.html b/docs/dyn/adsense.v1.1.accounts.reports.html
index dd7177e..fb46641 100644
--- a/docs/dyn/adsense.v1.1.accounts.reports.html
+++ b/docs/dyn/adsense.v1.1.accounts.reports.html
@@ -17,17 +17,21 @@
<dl><dt><a name="Resource-generate"><strong>generate</strong></a> = method(self, **kwargs)</dt><dd><tt>Generate an AdSense report based on the report request sent in the query parameters. Returns the result as JSON; to retrieve output in CSV format specify "alt=csv" as a query parameter.<br>
<br>
Args:<br>
- sort: string, The name of a dimension or metric to sort the resulting report on, optionally prefixed with "+" to sort ascending or "-" to sort descending. If no prefix is specified, the column is sorted ascending. (repeated)<br>
startDate: string, Start of the date range to report on in "YYYY-MM-DD" format, inclusive. (required)<br>
endDate: string, End of the date range to report on in "YYYY-MM-DD" format, inclusive. (required)<br>
- currency: string, Optional currency to use when reporting on monetary metrics. Defaults to the account's currency if not set.<br>
locale: string, Optional locale to use for translating report output to a local language. Defaults to "en_US" if not specified.<br>
metric: string, Numeric columns to include in the report. (repeated)<br>
+ currency: string, Optional currency to use when reporting on monetary metrics. Defaults to the account's currency if not set.<br>
+ startIndex: integer, Index of the first row of report data to return.<br>
+ accountId: string, Account upon which to report. (required)<br>
+ pp: string, A parameter<br>
+ strict: string, A parameter<br>
+ sort: string, The name of a dimension or metric to sort the resulting report on, optionally prefixed with "+" to sort ascending or "-" to sort descending. If no prefix is specified, the column is sorted ascending. (repeated)<br>
+ trace: string, A parameter<br>
maxResults: integer, The maximum number of rows of report data to return.<br>
filter: string, Filters to be run on the report. (repeated)<br>
- startIndex: integer, Index of the first row of report data to return.<br>
+ userip: string, A parameter<br>
dimension: string, Dimensions to base the report on. (repeated)<br>
- accountId: string, Account upon which to report. (required)<br>
<br>
Returns:<br>
An object of the form<br>
diff --git a/docs/dyn/adsense.v1.1.accounts.urlchannels.html b/docs/dyn/adsense.v1.1.accounts.urlchannels.html
index 21e4972..5355e57 100644
--- a/docs/dyn/adsense.v1.1.accounts.urlchannels.html
+++ b/docs/dyn/adsense.v1.1.accounts.urlchannels.html
@@ -17,9 +17,13 @@
<dl><dt><a name="Resource-list"><strong>list</strong></a> = method(self, **kwargs)</dt><dd><tt>List all URL channels in the specified ad client for the specified account.<br>
<br>
Args:<br>
+ pp: string, A parameter<br>
+ trace: string, A parameter<br>
pageToken: string, A continuation token, used to page through URL channels. To retrieve the next page, set this parameter to the value of "nextPageToken" from the previous response.<br>
adClientId: string, Ad client for which to list URL channels. (required)<br>
maxResults: integer, The maximum number of URL channels to include in the response, used for paging.<br>
+ strict: string, A parameter<br>
+ userip: string, A parameter<br>
accountId: string, Account to which the ad client belongs. (required)<br>
<br>
Returns:<br>
diff --git a/docs/dyn/adsense.v1.1.adclients.html b/docs/dyn/adsense.v1.1.adclients.html
index 9ce30fc..7cb7ecc 100644
--- a/docs/dyn/adsense.v1.1.adclients.html
+++ b/docs/dyn/adsense.v1.1.adclients.html
@@ -17,8 +17,12 @@
<dl><dt><a name="Resource-list"><strong>list</strong></a> = method(self, **kwargs)</dt><dd><tt>List all ad clients in this AdSense account.<br>
<br>
Args:<br>
+ pp: string, A parameter<br>
+ trace: string, A parameter<br>
pageToken: string, A continuation token, used to page through ad clients. To retrieve the next page, set this parameter to the value of "nextPageToken" from the previous response.<br>
maxResults: integer, The maximum number of ad clients to include in the response, used for paging.<br>
+ strict: string, A parameter<br>
+ userip: string, A parameter<br>
<br>
Returns:<br>
An object of the form<br>
diff --git a/docs/dyn/adsense.v1.1.adunits.customchannels.html b/docs/dyn/adsense.v1.1.adunits.customchannels.html
index 92ab034..88b578d 100644
--- a/docs/dyn/adsense.v1.1.adunits.customchannels.html
+++ b/docs/dyn/adsense.v1.1.adunits.customchannels.html
@@ -17,9 +17,13 @@
<dl><dt><a name="Resource-list"><strong>list</strong></a> = method(self, **kwargs)</dt><dd><tt>List all custom channels which the specified ad unit belongs to.<br>
<br>
Args:<br>
+ pp: string, A parameter<br>
+ trace: string, A parameter<br>
pageToken: string, A continuation token, used to page through custom channels. To retrieve the next page, set this parameter to the value of "nextPageToken" from the previous response.<br>
adClientId: string, Ad client which contains the ad unit. (required)<br>
maxResults: integer, The maximum number of custom channels to include in the response, used for paging.<br>
+ strict: string, A parameter<br>
+ userip: string, A parameter<br>
adUnitId: string, Ad unit for which to list custom channels. (required)<br>
<br>
Returns:<br>
diff --git a/docs/dyn/adsense.v1.1.adunits.html b/docs/dyn/adsense.v1.1.adunits.html
index fe8c9a3..a4b5ee5 100644
--- a/docs/dyn/adsense.v1.1.adunits.html
+++ b/docs/dyn/adsense.v1.1.adunits.html
@@ -19,7 +19,11 @@
<dl><dt><a name="Resource-get"><strong>get</strong></a> = method(self, **kwargs)</dt><dd><tt>Gets the specified ad unit in the specified ad client.<br>
<br>
Args:<br>
+ pp: string, A parameter<br>
+ trace: string, A parameter<br>
adClientId: string, Ad client for which to get the ad unit. (required)<br>
+ strict: string, A parameter<br>
+ userip: string, A parameter<br>
adUnitId: string, Ad unit to retrieve. (required)<br>
<br>
Returns:<br>
@@ -41,10 +45,14 @@
<dl><dt><a name="Resource-list"><strong>list</strong></a> = method(self, **kwargs)</dt><dd><tt>List all ad units in the specified ad client for this AdSense account.<br>
<br>
Args:<br>
+ pp: string, A parameter<br>
+ trace: string, A parameter<br>
pageToken: string, A continuation token, used to page through ad units. To retrieve the next page, set this parameter to the value of "nextPageToken" from the previous response.<br>
includeInactive: boolean, Whether to include inactive ad units. Default: true.<br>
adClientId: string, Ad client for which to list ad units. (required)<br>
maxResults: integer, The maximum number of ad units to include in the response, used for paging.<br>
+ strict: string, A parameter<br>
+ userip: string, A parameter<br>
<br>
Returns:<br>
An object of the form<br>
diff --git a/docs/dyn/adsense.v1.1.customchannels.adunits.html b/docs/dyn/adsense.v1.1.customchannels.adunits.html
index 7f543af..02d0b4c 100644
--- a/docs/dyn/adsense.v1.1.customchannels.adunits.html
+++ b/docs/dyn/adsense.v1.1.customchannels.adunits.html
@@ -17,11 +17,15 @@
<dl><dt><a name="Resource-list"><strong>list</strong></a> = method(self, **kwargs)</dt><dd><tt>List all ad units in the specified custom channel.<br>
<br>
Args:<br>
+ pp: string, A parameter<br>
+ trace: string, A parameter<br>
pageToken: string, A continuation token, used to page through ad units. To retrieve the next page, set this parameter to the value of "nextPageToken" from the previous response.<br>
includeInactive: boolean, Whether to include inactive ad units. Default: true.<br>
customChannelId: string, Custom channel for which to list ad units. (required)<br>
adClientId: string, Ad client which contains the custom channel. (required)<br>
maxResults: integer, The maximum number of ad units to include in the response, used for paging.<br>
+ strict: string, A parameter<br>
+ userip: string, A parameter<br>
<br>
Returns:<br>
An object of the form<br>
diff --git a/docs/dyn/adsense.v1.1.customchannels.html b/docs/dyn/adsense.v1.1.customchannels.html
index d32126f..e4a3480 100644
--- a/docs/dyn/adsense.v1.1.customchannels.html
+++ b/docs/dyn/adsense.v1.1.customchannels.html
@@ -19,8 +19,12 @@
<dl><dt><a name="Resource-get"><strong>get</strong></a> = method(self, **kwargs)</dt><dd><tt>Get the specified custom channel from the specified ad client.<br>
<br>
Args:<br>
+ pp: string, A parameter<br>
+ trace: string, A parameter<br>
customChannelId: string, Custom channel to retrieve. (required)<br>
adClientId: string, Ad client which contains the custom channel. (required)<br>
+ strict: string, A parameter<br>
+ userip: string, A parameter<br>
<br>
Returns:<br>
An object of the form<br>
@@ -41,9 +45,13 @@
<dl><dt><a name="Resource-list"><strong>list</strong></a> = method(self, **kwargs)</dt><dd><tt>List all custom channels in the specified ad client for this AdSense account.<br>
<br>
Args:<br>
+ pp: string, A parameter<br>
+ trace: string, A parameter<br>
pageToken: string, A continuation token, used to page through custom channels. To retrieve the next page, set this parameter to the value of "nextPageToken" from the previous response.<br>
adClientId: string, Ad client for which to list custom channels. (required)<br>
maxResults: integer, The maximum number of custom channels to include in the response, used for paging.<br>
+ strict: string, A parameter<br>
+ userip: string, A parameter<br>
<br>
Returns:<br>
An object of the form<br>
diff --git a/docs/dyn/adsense.v1.1.reports.html b/docs/dyn/adsense.v1.1.reports.html
index 36c7171..1d9daa2 100644
--- a/docs/dyn/adsense.v1.1.reports.html
+++ b/docs/dyn/adsense.v1.1.reports.html
@@ -17,17 +17,21 @@
<dl><dt><a name="Resource-generate"><strong>generate</strong></a> = method(self, **kwargs)</dt><dd><tt>Generate an AdSense report based on the report request sent in the query parameters. Returns the result as JSON; to retrieve output in CSV format specify "alt=csv" as a query parameter.<br>
<br>
Args:<br>
- sort: string, The name of a dimension or metric to sort the resulting report on, optionally prefixed with "+" to sort ascending or "-" to sort descending. If no prefix is specified, the column is sorted ascending. (repeated)<br>
startDate: string, Start of the date range to report on in "YYYY-MM-DD" format, inclusive. (required)<br>
endDate: string, End of the date range to report on in "YYYY-MM-DD" format, inclusive. (required)<br>
- currency: string, Optional currency to use when reporting on monetary metrics. Defaults to the account's currency if not set.<br>
locale: string, Optional locale to use for translating report output to a local language. Defaults to "en_US" if not specified.<br>
metric: string, Numeric columns to include in the report. (repeated)<br>
+ currency: string, Optional currency to use when reporting on monetary metrics. Defaults to the account's currency if not set.<br>
+ startIndex: integer, Index of the first row of report data to return.<br>
+ accountId: string, Accounts upon which to report. (repeated)<br>
+ pp: string, A parameter<br>
+ strict: string, A parameter<br>
+ sort: string, The name of a dimension or metric to sort the resulting report on, optionally prefixed with "+" to sort ascending or "-" to sort descending. If no prefix is specified, the column is sorted ascending. (repeated)<br>
+ trace: string, A parameter<br>
maxResults: integer, The maximum number of rows of report data to return.<br>
filter: string, Filters to be run on the report. (repeated)<br>
- startIndex: integer, Index of the first row of report data to return.<br>
+ userip: string, A parameter<br>
dimension: string, Dimensions to base the report on. (repeated)<br>
- accountId: string, Accounts upon which to report. (repeated)<br>
<br>
Returns:<br>
An object of the form<br>
diff --git a/docs/dyn/adsense.v1.1.urlchannels.html b/docs/dyn/adsense.v1.1.urlchannels.html
index e8d6aa8..bb6d4a5 100644
--- a/docs/dyn/adsense.v1.1.urlchannels.html
+++ b/docs/dyn/adsense.v1.1.urlchannels.html
@@ -17,9 +17,13 @@
<dl><dt><a name="Resource-list"><strong>list</strong></a> = method(self, **kwargs)</dt><dd><tt>List all URL channels in the specified ad client for this AdSense account.<br>
<br>
Args:<br>
+ pp: string, A parameter<br>
+ trace: string, A parameter<br>
pageToken: string, A continuation token, used to page through URL channels. To retrieve the next page, set this parameter to the value of "nextPageToken" from the previous response.<br>
adClientId: string, Ad client for which to list URL channels. (required)<br>
maxResults: integer, The maximum number of URL channels to include in the response, used for paging.<br>
+ strict: string, A parameter<br>
+ userip: string, A parameter<br>
<br>
Returns:<br>
An object of the form<br>
diff --git a/docs/dyn/analytics.v3.data.ga.html b/docs/dyn/analytics.v3.data.ga.html
index 2bb0a0b..4187700 100644
--- a/docs/dyn/analytics.v3.data.ga.html
+++ b/docs/dyn/analytics.v3.data.ga.html
@@ -18,12 +18,16 @@
<br>
Args:<br>
sort: string, A comma-separated list of dimensions or metrics that determine the sort order for Analytics data.<br>
+ pp: string, A parameter<br>
end_date: string, End date for fetching Analytics data. All requests should specify an end date formatted as YYYY-MM-DD. (required)<br>
dimensions: string, A comma-separated list of Analytics dimensions. E.g., 'ga:browser,ga:city'.<br>
+ userip: string, A parameter<br>
+ filters: string, A comma-separated list of dimension or metric filters to be applied to Analytics data.<br>
ids: string, Unique table ID for retrieving Analytics data. Table ID is of the form ga:XXXX, where XXXX is the Analytics profile ID. (required)<br>
metrics: string, A comma-separated list of Analytics metrics. E.g., 'ga:visits,ga:pageviews'. At least one metric must be specified. (required)<br>
+ strict: string, A parameter<br>
max_results: integer, The maximum number of entries to include in this feed.<br>
- filters: string, A comma-separated list of dimension or metric filters to be applied to Analytics data.<br>
+ trace: string, A parameter<br>
segment: string, An Analytics advanced segment to be applied to data.<br>
start_date: string, Start date for fetching Analytics data. All requests should specify a start date formatted as YYYY-MM-DD. (required)<br>
start_index: integer, An index of the first entity to retrieve. Use this parameter as a pagination mechanism along with the max-results parameter.<br>
diff --git a/docs/dyn/analytics.v3.management.accounts.html b/docs/dyn/analytics.v3.management.accounts.html
index 928bcce..f37bbae 100644
--- a/docs/dyn/analytics.v3.management.accounts.html
+++ b/docs/dyn/analytics.v3.management.accounts.html
@@ -17,7 +17,11 @@
<dl><dt><a name="Resource-list"><strong>list</strong></a> = method(self, **kwargs)</dt><dd><tt>Lists all accounts to which the user has access.<br>
<br>
Args:<br>
+ pp: string, A parameter<br>
+ trace: string, A parameter<br>
+ strict: string, A parameter<br>
max_results: integer, The maximum number of accounts to include in this response.<br>
+ userip: string, A parameter<br>
start_index: integer, An index of the first account to retrieve. Use this parameter as a pagination mechanism along with the max-results parameter.<br>
<br>
Returns:<br>
diff --git a/docs/dyn/analytics.v3.management.goals.html b/docs/dyn/analytics.v3.management.goals.html
index 2b330a2..a60fe44 100644
--- a/docs/dyn/analytics.v3.management.goals.html
+++ b/docs/dyn/analytics.v3.management.goals.html
@@ -17,8 +17,12 @@
<dl><dt><a name="Resource-list"><strong>list</strong></a> = method(self, **kwargs)</dt><dd><tt>Lists goals to which the user has access.<br>
<br>
Args:<br>
+ pp: string, A parameter<br>
+ trace: string, A parameter<br>
+ strict: string, A parameter<br>
max_results: integer, The maximum number of goals to include in this response.<br>
webPropertyId: string, Web property ID to retrieve goals for. Can either be a specific web property ID or '~all', which refers to all the web properties that user has access to. (required)<br>
+ userip: string, A parameter<br>
profileId: string, Profile ID to retrieve goals for. Can either be a specific profile ID or '~all', which refers to all the profiles that user has access to. (required)<br>
start_index: integer, An index of the first goal to retrieve. Use this parameter as a pagination mechanism along with the max-results parameter.<br>
accountId: string, Account ID to retrieve goals for. Can either be a specific account ID or '~all', which refers to all the accounts that user has access to. (required)<br>
diff --git a/docs/dyn/analytics.v3.management.profiles.html b/docs/dyn/analytics.v3.management.profiles.html
index 87f3ee5..4c83eb3 100644
--- a/docs/dyn/analytics.v3.management.profiles.html
+++ b/docs/dyn/analytics.v3.management.profiles.html
@@ -17,8 +17,12 @@
<dl><dt><a name="Resource-list"><strong>list</strong></a> = method(self, **kwargs)</dt><dd><tt>Lists profiles to which the user has access.<br>
<br>
Args:<br>
+ pp: string, A parameter<br>
+ trace: string, A parameter<br>
+ strict: string, A parameter<br>
max_results: integer, The maximum number of profiles to include in this response.<br>
webPropertyId: string, Web property ID for the profiles to retrieve. Can either be a specific web property ID or '~all', which refers to all the web properties to which the user has access. (required)<br>
+ userip: string, A parameter<br>
start_index: integer, An index of the first entity to retrieve. Use this parameter as a pagination mechanism along with the max-results parameter.<br>
accountId: string, Account ID for the profiles to retrieve. Can either be a specific account ID or '~all', which refers to all the accounts to which the user has access. (required)<br>
<br>
diff --git a/docs/dyn/analytics.v3.management.segments.html b/docs/dyn/analytics.v3.management.segments.html
index a687df1..fe996bb 100644
--- a/docs/dyn/analytics.v3.management.segments.html
+++ b/docs/dyn/analytics.v3.management.segments.html
@@ -17,7 +17,11 @@
<dl><dt><a name="Resource-list"><strong>list</strong></a> = method(self, **kwargs)</dt><dd><tt>Lists advanced segments to which the user has access.<br>
<br>
Args:<br>
+ pp: string, A parameter<br>
+ trace: string, A parameter<br>
+ strict: string, A parameter<br>
max_results: integer, The maximum number of advanced segments to include in this response.<br>
+ userip: string, A parameter<br>
start_index: integer, An index of the first advanced segment to retrieve. Use this parameter as a pagination mechanism along with the max-results parameter.<br>
<br>
Returns:<br>
diff --git a/docs/dyn/analytics.v3.management.webproperties.html b/docs/dyn/analytics.v3.management.webproperties.html
index a8dfaab..42f3f64 100644
--- a/docs/dyn/analytics.v3.management.webproperties.html
+++ b/docs/dyn/analytics.v3.management.webproperties.html
@@ -17,7 +17,11 @@
<dl><dt><a name="Resource-list"><strong>list</strong></a> = method(self, **kwargs)</dt><dd><tt>Lists web properties to which the user has access.<br>
<br>
Args:<br>
+ pp: string, A parameter<br>
+ trace: string, A parameter<br>
+ strict: string, A parameter<br>
max_results: integer, The maximum number of web properties to include in this response.<br>
+ userip: string, A parameter<br>
start_index: integer, An index of the first entity to retrieve. Use this parameter as a pagination mechanism along with the max-results parameter.<br>
accountId: string, Account ID to retrieve web properties for. Can either be a specific account ID or '~all', which refers to all the accounts that user has access to. (required)<br>
<br>
diff --git a/docs/dyn/androidpublisher.v1.html b/docs/dyn/androidpublisher.v1.html
new file mode 100644
index 0000000..2775196
--- /dev/null
+++ b/docs/dyn/androidpublisher.v1.html
@@ -0,0 +1,28 @@
+
+<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
+<html><head><title>Python: class Resource</title>
+</head><body bgcolor="#f0f0f8">
+<p>
+<table width="100%" cellspacing=0 cellpadding=2 border=0 summary="section">
+<tr bgcolor="#ffc8d8">
+<td colspan=3 valign=bottom> <br>
+<font color="#000000" face="helvetica, arial"><a name="Resource">class <strong>Resource</strong></a>(<a href="__builtin__.html#object">__builtin__.object</a>)</font></td></tr>
+
+<tr bgcolor="#ffc8d8"><td rowspan=2><tt> </tt></td>
+<td colspan=2><tt>A class for interacting with a resource.<br> </tt></td></tr>
+<tr><td> </td>
+<td width="100%">Methods defined here:<br>
+<dl><dt><a name="Resource-__init__"><strong>__init__</strong></a>(self)</dt></dl>
+
+<dl><dt><a name="Resource-purchases"><strong><a href="androidpublisher.v1.purchases.html">purchases</a></strong></a> = methodResource(self)</dt><dd><tt>A collection resource.</tt></dd></dl>
+
+<hr>
+Data descriptors defined here:<br>
+<dl><dt><strong>__dict__</strong></dt>
+<dd><tt>dictionary for instance variables (if defined)</tt></dd>
+</dl>
+<dl><dt><strong>__weakref__</strong></dt>
+<dd><tt>list of weak references to the object (if defined)</tt></dd>
+</dl>
+</td></tr></table>
+</body></html>
\ No newline at end of file
diff --git a/docs/dyn/androidpublisher.v1.purchases.html b/docs/dyn/androidpublisher.v1.purchases.html
new file mode 100644
index 0000000..f65389b
--- /dev/null
+++ b/docs/dyn/androidpublisher.v1.purchases.html
@@ -0,0 +1,58 @@
+
+<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
+<html><head><title>Python: class Resource</title>
+</head><body bgcolor="#f0f0f8">
+<p>
+<table width="100%" cellspacing=0 cellpadding=2 border=0 summary="section">
+<tr bgcolor="#ffc8d8">
+<td colspan=3 valign=bottom> <br>
+<font color="#000000" face="helvetica, arial"><a name="Resource">class <strong>Resource</strong></a>(<a href="__builtin__.html#object">__builtin__.object</a>)</font></td></tr>
+
+<tr bgcolor="#ffc8d8"><td rowspan=2><tt> </tt></td>
+<td colspan=2><tt>A class for interacting with a resource.<br> </tt></td></tr>
+<tr><td> </td>
+<td width="100%">Methods defined here:<br>
+<dl><dt><a name="Resource-__init__"><strong>__init__</strong></a>(self)</dt></dl>
+
+<dl><dt><a name="Resource-cancel"><strong>cancel</strong></a> = method(self, **kwargs)</dt><dd><tt>Cancels a user's subscription purchase. The subscription remains valid until its expiration time.<br>
+ <br>
+Args:<br>
+ pp: string, A parameter<br>
+ trace: string, A parameter<br>
+ packageName: string, The package name of the application for which this subscription was purchased (for example, 'com.some.thing'). (required)<br>
+ strict: string, A parameter<br>
+ token: string, The token provided to the user's device when the subscription was purchased. (required)<br>
+ userip: string, A parameter<br>
+ subscriptionId: string, The purchased subscription ID (for example, 'monthly001'). (required)</tt></dd></dl>
+
+<dl><dt><a name="Resource-get"><strong>get</strong></a> = method(self, **kwargs)</dt><dd><tt>Checks whether a user's subscription purchase is valid and returns its expiry time.<br>
+ <br>
+Args:<br>
+ pp: string, A parameter<br>
+ trace: string, A parameter<br>
+ packageName: string, The package name of the application for which this subscription was purchased (for example, 'com.some.thing'). (required)<br>
+ strict: string, A parameter<br>
+ token: string, The token provided to the user's device when the subscription was purchased. (required)<br>
+ userip: string, A parameter<br>
+ subscriptionId: string, The purchased subscription ID (for example, 'monthly001'). (required)<br>
+ <br>
+Returns:<br>
+ An object of the form<br>
+ <br>
+ { # A Purchase resource indicates the status of a user's subscription purchase.<br>
+ "initiationTimestampMsec": "A String", # Time at which the subscription was granted, in milliseconds since Epoch.<br>
+ "kind": "androidpublisher#subscriptionPurchase", # This kind represents a subscriptionPurchase object in the androidpublisher service.<br>
+ "autoRenewing": True or False, # Whether the subscription will automatically be renewed when it reaches its current expiry time.<br>
+ "validUntilTimestampMsec": "A String", # Time at which the subscription will expire, in milliseconds since Epoch.<br>
+ }</tt></dd></dl>
+
+<hr>
+Data descriptors defined here:<br>
+<dl><dt><strong>__dict__</strong></dt>
+<dd><tt>dictionary for instance variables (if defined)</tt></dd>
+</dl>
+<dl><dt><strong>__weakref__</strong></dt>
+<dd><tt>list of weak references to the object (if defined)</tt></dd>
+</dl>
+</td></tr></table>
+</body></html>
\ No newline at end of file
diff --git a/docs/dyn/audit.v1.activities.html b/docs/dyn/audit.v1.activities.html
index 4b1916a..0f62a73 100644
--- a/docs/dyn/audit.v1.activities.html
+++ b/docs/dyn/audit.v1.activities.html
@@ -21,16 +21,20 @@
Allowed values<br>
application_owner - Caller is an application owner.<br>
customer - Caller is a customer.<br>
- actorApplicationId: string, Application ID of the application which interacted on behalf of the user while performing the event.<br>
- actorIpAddress: string, IP Address of host where the event was performed. Supports both IPv4 and IPv6 addresses.<br>
- actorEmail: string, Email address of the user who performed the action.<br>
- maxResults: integer, Number of activity records to be shown in each page.<br>
- continuationToken: string, Next page URL.<br>
- eventName: string, Name of the event being queried.<br>
- endTime: string, Return events which occured at or before this time.<br>
startTime: string, Return events which occured at or after this time.<br>
- parameters: string, Event parameters in the form [parameter1 name]:[parameter1 value],[parameter2 name]:[parameter2 value],...<br>
+ actorIpAddress: string, IP Address of host where the event was performed. Supports both IPv4 and IPv6 addresses.<br>
applicationId: string, Application ID of the application on which the event was performed. (required)<br>
+ eventName: string, Name of the event being queried.<br>
+ pp: string, A parameter<br>
+ trace: string, A parameter<br>
+ actorApplicationId: string, Application ID of the application which interacted on behalf of the user while performing the event.<br>
+ strict: string, A parameter<br>
+ continuationToken: string, Next page URL.<br>
+ maxResults: integer, Number of activity records to be shown in each page.<br>
+ parameters: string, Event parameters in the form [parameter1 name]:[parameter1 value],[parameter2 name]:[parameter2 value],...<br>
+ actorEmail: string, Email address of the user who performed the action.<br>
+ userip: string, A parameter<br>
+ endTime: string, Return events which occured at or before this time.<br>
customerId: string, Represents the customer who is the owner of target object on which action was performed. (required)<br>
<br>
Returns:<br>
diff --git a/docs/dyn/bigquery.v2.datasets.html b/docs/dyn/bigquery.v2.datasets.html
index 5f961a4..20182f2 100644
--- a/docs/dyn/bigquery.v2.datasets.html
+++ b/docs/dyn/bigquery.v2.datasets.html
@@ -18,13 +18,21 @@
<br>
Args:<br>
deleteContents: boolean, If True, delete all the tables in the dataset. If False and the dataset contains tables, the request will fail. Default is False<br>
+ pp: string, A parameter<br>
+ trace: string, A parameter<br>
+ strict: string, A parameter<br>
projectId: string, Project ID of the dataset being deleted (required)<br>
+ userip: string, A parameter<br>
datasetId: string, Dataset ID of dataset being deleted (required)</tt></dd></dl>
<dl><dt><a name="Resource-get"><strong>get</strong></a> = method(self, **kwargs)</dt><dd><tt>Returns the dataset specified by datasetID.<br>
<br>
Args:<br>
+ pp: string, A parameter<br>
+ trace: string, A parameter<br>
projectId: string, Project ID of the requested dataset (required)<br>
+ strict: string, A parameter<br>
+ userip: string, A parameter<br>
datasetId: string, Dataset ID of the requested dataset (required)<br>
<br>
Returns:<br>
@@ -92,7 +100,11 @@
"selfLink": "A String", # [Output-only] An URL that can be used to access this resource again. You can use this URL in Get or Update requests to this resource.<br>
}<br>
<br>
+ pp: string, A parameter<br>
+ trace: string, A parameter<br>
projectId: string, Project ID of the new dataset (required)<br>
+ strict: string, A parameter<br>
+ userip: string, A parameter<br>
<br>
Returns:<br>
An object of the form<br>
@@ -128,9 +140,13 @@
<dl><dt><a name="Resource-list"><strong>list</strong></a> = method(self, **kwargs)</dt><dd><tt>Lists all the datasets in the specified project to which the caller has read access; however, a project owner can list (but not necessarily get) all datasets in his project.<br>
<br>
Args:<br>
+ pp: string, A parameter<br>
+ trace: string, A parameter<br>
pageToken: string, Page token, returned by a previous call, to request the next page of results<br>
maxResults: integer, The maximum number of results to return<br>
+ strict: string, A parameter<br>
projectId: string, Project ID of the datasets to be listed (required)<br>
+ userip: string, A parameter<br>
<br>
Returns:<br>
An object of the form<br>
@@ -196,7 +212,11 @@
"selfLink": "A String", # [Output-only] An URL that can be used to access this resource again. You can use this URL in Get or Update requests to this resource.<br>
}<br>
<br>
+ pp: string, A parameter<br>
+ trace: string, A parameter<br>
projectId: string, Project ID of the dataset being updated (required)<br>
+ strict: string, A parameter<br>
+ userip: string, A parameter<br>
datasetId: string, Dataset ID of the dataset being updated (required)<br>
<br>
Returns:<br>
@@ -264,7 +284,11 @@
"selfLink": "A String", # [Output-only] An URL that can be used to access this resource again. You can use this URL in Get or Update requests to this resource.<br>
}<br>
<br>
+ pp: string, A parameter<br>
+ trace: string, A parameter<br>
projectId: string, Project ID of the dataset being updated (required)<br>
+ strict: string, A parameter<br>
+ userip: string, A parameter<br>
datasetId: string, Dataset ID of the dataset being updated (required)<br>
<br>
Returns:<br>
diff --git a/docs/dyn/bigquery.v2.jobs.html b/docs/dyn/bigquery.v2.jobs.html
index 8ab4b8e..fea8ea2 100644
--- a/docs/dyn/bigquery.v2.jobs.html
+++ b/docs/dyn/bigquery.v2.jobs.html
@@ -17,8 +17,12 @@
<dl><dt><a name="Resource-get"><strong>get</strong></a> = method(self, **kwargs)</dt><dd><tt>Retrieves the specified job by ID.<br>
<br>
Args:<br>
+ pp: string, A parameter<br>
+ trace: string, A parameter<br>
projectId: string, Project ID of the requested job (required)<br>
jobId: string, Job ID of the requested job (required)<br>
+ strict: string, A parameter<br>
+ userip: string, A parameter<br>
<br>
Returns:<br>
An object of the form<br>
@@ -83,26 +87,30 @@
},<br>
"link": { # [Pick one] Configures a link job.<br>
"createDisposition": "A String", # [Optional] Whether or not to create a new table, if none exists.<br>
+ "writeDisposition": "A String", # [Optional] Whether to overwrite an existing table (WRITE_TRUNCATE), append to an existing table (WRITE_APPEND), or require that the the table is empty (WRITE_EMPTY). Default is WRITE_APPEND.<br>
"destinationTable": { # [Required] The destination table of the link job.<br>
"projectId": "A String", # [Required] ID of the project billed for storage of the table.<br>
"tableId": "A String", # [Required] ID of the table.<br>
"datasetId": "A String", # [Required] ID of the dataset containing the table.<br>
},<br>
- "sourceUri": "A String", # [Required] URI of source table to link.<br>
+ "sourceUri": [ # [Required] URI of source table to link.<br>
+ "A String",<br>
+ ],<br>
},<br>
"query": { # [Pick one] Configures a query job.<br>
- "createDisposition": "A String", # [Optional] Whether to create the table if it doesn't already exist (CREATE_IF_NEEDED) or to require the table already exist (CREATE_NEVER). Default is CREATE_IF_NEEDED.<br>
- "query": "A String", # [Required] BigQuery SQL query to execute.<br>
- "writeDisposition": "A String", # [Optional] Whether to overwrite an existing table (WRITE_TRUNCATE), append to an existing table (WRITE_APPEND), or require that the the table is empty (WRITE_EMPTY). Default is WRITE_EMPTY.<br>
+ "defaultDataset": { # [Optional] Specifies the default dataset to assume for unqualified table names in the query.<br>
+ "projectId": "A String", # [Optional] The ID of the container project.<br>
+ "datasetId": "A String", # [Required] A unique ID for this dataset, without the project name.<br>
+ },<br>
"destinationTable": { # [Optional] Describes the table where the query results should be stored. If not present, a new table will be created to store the results.<br>
"projectId": "A String", # [Required] ID of the project billed for storage of the table.<br>
"tableId": "A String", # [Required] ID of the table.<br>
"datasetId": "A String", # [Required] ID of the dataset containing the table.<br>
},<br>
- "defaultDataset": { # [Optional] Specifies the default dataset to assume for unqualified table names in the query.<br>
- "projectId": "A String", # [Optional] The ID of the container project.<br>
- "datasetId": "A String", # [Required] A unique ID for this dataset, without the project name.<br>
- },<br>
+ "priority": "A String", # [Experimental] Specifies a priority for the query. Default is INTERACTIVE. Alternative is BATCH, which may be subject to looser quota restrictions.<br>
+ "writeDisposition": "A String", # [Optional] Whether to overwrite an existing table (WRITE_TRUNCATE), append to an existing table (WRITE_APPEND), or require that the the table is empty (WRITE_EMPTY). Default is WRITE_EMPTY.<br>
+ "createDisposition": "A String", # [Optional] Whether to create the table if it doesn't already exist (CREATE_IF_NEEDED) or to require the table already exist (CREATE_NEVER). Default is CREATE_IF_NEEDED.<br>
+ "query": "A String", # [Required] BigQuery SQL query to execute.<br>
},<br>
"copy": { # [Pick one] Copies a table.<br>
"createDisposition": "A String", # [Optional] Whether or not to create a new table, if none exists.<br>
@@ -120,11 +128,13 @@
},<br>
"extract": { # [Pick one] Configures an extract job.<br>
"destinationUri": "A String", # [Required] The fully-qualified Google Cloud Storage URI where the extracted table should be written.<br>
+ "fieldDelimiter": "A String", # [Optional] Delimiter to use between fields in the exported data. Default is ','<br>
"sourceTable": { # [Required] A reference to the table being exported.<br>
"projectId": "A String", # [Required] ID of the project billed for storage of the table.<br>
"tableId": "A String", # [Required] ID of the table.<br>
"datasetId": "A String", # [Required] ID of the dataset containing the table.<br>
},<br>
+ "printHeader": True or False, # [Optional] Whether to print out a heder row in the results. Default is true.<br>
},<br>
"properties": { # [Optional] Properties providing extra details about how the job should be run. Not used for most jobs.<br>
},<br>
@@ -137,10 +147,14 @@
<br>
Args:<br>
timeoutMs: integer, How long to wait for the query to complete, in milliseconds, before returning. Default is to return immediately. If the timeout passes before the job completes, the request will fail with a TIMEOUT error<br>
+ pp: string, A parameter<br>
+ trace: string, A parameter<br>
projectId: string, Project ID of the query job (required)<br>
maxResults: integer, Maximum number of results to read<br>
jobId: string, Job ID of the query job (required)<br>
+ strict: string, A parameter<br>
startIndex: string, Zero-based index of the starting row<br>
+ userip: string, A parameter<br>
<br>
Returns:<br>
An object of the form<br>
@@ -243,26 +257,30 @@
},<br>
"link": { # [Pick one] Configures a link job.<br>
"createDisposition": "A String", # [Optional] Whether or not to create a new table, if none exists.<br>
+ "writeDisposition": "A String", # [Optional] Whether to overwrite an existing table (WRITE_TRUNCATE), append to an existing table (WRITE_APPEND), or require that the the table is empty (WRITE_EMPTY). Default is WRITE_APPEND.<br>
"destinationTable": { # [Required] The destination table of the link job.<br>
"projectId": "A String", # [Required] ID of the project billed for storage of the table.<br>
"tableId": "A String", # [Required] ID of the table.<br>
"datasetId": "A String", # [Required] ID of the dataset containing the table.<br>
},<br>
- "sourceUri": "A String", # [Required] URI of source table to link.<br>
+ "sourceUri": [ # [Required] URI of source table to link.<br>
+ "A String",<br>
+ ],<br>
},<br>
"query": { # [Pick one] Configures a query job.<br>
- "createDisposition": "A String", # [Optional] Whether to create the table if it doesn't already exist (CREATE_IF_NEEDED) or to require the table already exist (CREATE_NEVER). Default is CREATE_IF_NEEDED.<br>
- "query": "A String", # [Required] BigQuery SQL query to execute.<br>
- "writeDisposition": "A String", # [Optional] Whether to overwrite an existing table (WRITE_TRUNCATE), append to an existing table (WRITE_APPEND), or require that the the table is empty (WRITE_EMPTY). Default is WRITE_EMPTY.<br>
+ "defaultDataset": { # [Optional] Specifies the default dataset to assume for unqualified table names in the query.<br>
+ "projectId": "A String", # [Optional] The ID of the container project.<br>
+ "datasetId": "A String", # [Required] A unique ID for this dataset, without the project name.<br>
+ },<br>
"destinationTable": { # [Optional] Describes the table where the query results should be stored. If not present, a new table will be created to store the results.<br>
"projectId": "A String", # [Required] ID of the project billed for storage of the table.<br>
"tableId": "A String", # [Required] ID of the table.<br>
"datasetId": "A String", # [Required] ID of the dataset containing the table.<br>
},<br>
- "defaultDataset": { # [Optional] Specifies the default dataset to assume for unqualified table names in the query.<br>
- "projectId": "A String", # [Optional] The ID of the container project.<br>
- "datasetId": "A String", # [Required] A unique ID for this dataset, without the project name.<br>
- },<br>
+ "priority": "A String", # [Experimental] Specifies a priority for the query. Default is INTERACTIVE. Alternative is BATCH, which may be subject to looser quota restrictions.<br>
+ "writeDisposition": "A String", # [Optional] Whether to overwrite an existing table (WRITE_TRUNCATE), append to an existing table (WRITE_APPEND), or require that the the table is empty (WRITE_EMPTY). Default is WRITE_EMPTY.<br>
+ "createDisposition": "A String", # [Optional] Whether to create the table if it doesn't already exist (CREATE_IF_NEEDED) or to require the table already exist (CREATE_NEVER). Default is CREATE_IF_NEEDED.<br>
+ "query": "A String", # [Required] BigQuery SQL query to execute.<br>
},<br>
"copy": { # [Pick one] Copies a table.<br>
"createDisposition": "A String", # [Optional] Whether or not to create a new table, if none exists.<br>
@@ -280,11 +298,13 @@
},<br>
"extract": { # [Pick one] Configures an extract job.<br>
"destinationUri": "A String", # [Required] The fully-qualified Google Cloud Storage URI where the extracted table should be written.<br>
+ "fieldDelimiter": "A String", # [Optional] Delimiter to use between fields in the exported data. Default is ','<br>
"sourceTable": { # [Required] A reference to the table being exported.<br>
"projectId": "A String", # [Required] ID of the project billed for storage of the table.<br>
"tableId": "A String", # [Required] ID of the table.<br>
"datasetId": "A String", # [Required] ID of the dataset containing the table.<br>
},<br>
+ "printHeader": True or False, # [Optional] Whether to print out a heder row in the results. Default is true.<br>
},<br>
"properties": { # [Optional] Properties providing extra details about how the job should be run. Not used for most jobs.<br>
},<br>
@@ -294,7 +314,11 @@
}<br>
<br>
media_body: string, The filename of the media request body.<br>
+ pp: string, A parameter<br>
+ trace: string, A parameter<br>
projectId: string, Project ID of the project that will be billed for the job (required)<br>
+ strict: string, A parameter<br>
+ userip: string, A parameter<br>
<br>
Returns:<br>
An object of the form<br>
@@ -359,26 +383,30 @@
},<br>
"link": { # [Pick one] Configures a link job.<br>
"createDisposition": "A String", # [Optional] Whether or not to create a new table, if none exists.<br>
+ "writeDisposition": "A String", # [Optional] Whether to overwrite an existing table (WRITE_TRUNCATE), append to an existing table (WRITE_APPEND), or require that the the table is empty (WRITE_EMPTY). Default is WRITE_APPEND.<br>
"destinationTable": { # [Required] The destination table of the link job.<br>
"projectId": "A String", # [Required] ID of the project billed for storage of the table.<br>
"tableId": "A String", # [Required] ID of the table.<br>
"datasetId": "A String", # [Required] ID of the dataset containing the table.<br>
},<br>
- "sourceUri": "A String", # [Required] URI of source table to link.<br>
+ "sourceUri": [ # [Required] URI of source table to link.<br>
+ "A String",<br>
+ ],<br>
},<br>
"query": { # [Pick one] Configures a query job.<br>
- "createDisposition": "A String", # [Optional] Whether to create the table if it doesn't already exist (CREATE_IF_NEEDED) or to require the table already exist (CREATE_NEVER). Default is CREATE_IF_NEEDED.<br>
- "query": "A String", # [Required] BigQuery SQL query to execute.<br>
- "writeDisposition": "A String", # [Optional] Whether to overwrite an existing table (WRITE_TRUNCATE), append to an existing table (WRITE_APPEND), or require that the the table is empty (WRITE_EMPTY). Default is WRITE_EMPTY.<br>
+ "defaultDataset": { # [Optional] Specifies the default dataset to assume for unqualified table names in the query.<br>
+ "projectId": "A String", # [Optional] The ID of the container project.<br>
+ "datasetId": "A String", # [Required] A unique ID for this dataset, without the project name.<br>
+ },<br>
"destinationTable": { # [Optional] Describes the table where the query results should be stored. If not present, a new table will be created to store the results.<br>
"projectId": "A String", # [Required] ID of the project billed for storage of the table.<br>
"tableId": "A String", # [Required] ID of the table.<br>
"datasetId": "A String", # [Required] ID of the dataset containing the table.<br>
},<br>
- "defaultDataset": { # [Optional] Specifies the default dataset to assume for unqualified table names in the query.<br>
- "projectId": "A String", # [Optional] The ID of the container project.<br>
- "datasetId": "A String", # [Required] A unique ID for this dataset, without the project name.<br>
- },<br>
+ "priority": "A String", # [Experimental] Specifies a priority for the query. Default is INTERACTIVE. Alternative is BATCH, which may be subject to looser quota restrictions.<br>
+ "writeDisposition": "A String", # [Optional] Whether to overwrite an existing table (WRITE_TRUNCATE), append to an existing table (WRITE_APPEND), or require that the the table is empty (WRITE_EMPTY). Default is WRITE_EMPTY.<br>
+ "createDisposition": "A String", # [Optional] Whether to create the table if it doesn't already exist (CREATE_IF_NEEDED) or to require the table already exist (CREATE_NEVER). Default is CREATE_IF_NEEDED.<br>
+ "query": "A String", # [Required] BigQuery SQL query to execute.<br>
},<br>
"copy": { # [Pick one] Copies a table.<br>
"createDisposition": "A String", # [Optional] Whether or not to create a new table, if none exists.<br>
@@ -396,11 +424,13 @@
},<br>
"extract": { # [Pick one] Configures an extract job.<br>
"destinationUri": "A String", # [Required] The fully-qualified Google Cloud Storage URI where the extracted table should be written.<br>
+ "fieldDelimiter": "A String", # [Optional] Delimiter to use between fields in the exported data. Default is ','<br>
"sourceTable": { # [Required] A reference to the table being exported.<br>
"projectId": "A String", # [Required] ID of the project billed for storage of the table.<br>
"tableId": "A String", # [Required] ID of the table.<br>
"datasetId": "A String", # [Required] ID of the dataset containing the table.<br>
},<br>
+ "printHeader": True or False, # [Optional] Whether to print out a heder row in the results. Default is true.<br>
},<br>
"properties": { # [Optional] Properties providing extra details about how the job should be run. Not used for most jobs.<br>
},<br>
@@ -412,6 +442,7 @@
<dl><dt><a name="Resource-list"><strong>list</strong></a> = method(self, **kwargs)</dt><dd><tt>Lists all the Jobs in the specified project that were started by the user.<br>
<br>
Args:<br>
+ pp: string, A parameter<br>
projection: string, Restrict information returned to a set of selected fields<br>
Allowed values<br>
full - Includes all job data<br>
@@ -425,6 +456,9 @@
projectId: string, Project ID of the jobs to list (required)<br>
allUsers: boolean, Whether to display jobs owned by all users in the project. Default false<br>
maxResults: integer, Maximum number of results to return<br>
+ strict: string, A parameter<br>
+ userip: string, A parameter<br>
+ trace: string, A parameter<br>
<br>
Returns:<br>
An object of the form<br>
@@ -495,26 +529,30 @@
},<br>
"link": { # [Pick one] Configures a link job.<br>
"createDisposition": "A String", # [Optional] Whether or not to create a new table, if none exists.<br>
+ "writeDisposition": "A String", # [Optional] Whether to overwrite an existing table (WRITE_TRUNCATE), append to an existing table (WRITE_APPEND), or require that the the table is empty (WRITE_EMPTY). Default is WRITE_APPEND.<br>
"destinationTable": { # [Required] The destination table of the link job.<br>
"projectId": "A String", # [Required] ID of the project billed for storage of the table.<br>
"tableId": "A String", # [Required] ID of the table.<br>
"datasetId": "A String", # [Required] ID of the dataset containing the table.<br>
},<br>
- "sourceUri": "A String", # [Required] URI of source table to link.<br>
+ "sourceUri": [ # [Required] URI of source table to link.<br>
+ "A String",<br>
+ ],<br>
},<br>
"query": { # [Pick one] Configures a query job.<br>
- "createDisposition": "A String", # [Optional] Whether to create the table if it doesn't already exist (CREATE_IF_NEEDED) or to require the table already exist (CREATE_NEVER). Default is CREATE_IF_NEEDED.<br>
- "query": "A String", # [Required] BigQuery SQL query to execute.<br>
- "writeDisposition": "A String", # [Optional] Whether to overwrite an existing table (WRITE_TRUNCATE), append to an existing table (WRITE_APPEND), or require that the the table is empty (WRITE_EMPTY). Default is WRITE_EMPTY.<br>
+ "defaultDataset": { # [Optional] Specifies the default dataset to assume for unqualified table names in the query.<br>
+ "projectId": "A String", # [Optional] The ID of the container project.<br>
+ "datasetId": "A String", # [Required] A unique ID for this dataset, without the project name.<br>
+ },<br>
"destinationTable": { # [Optional] Describes the table where the query results should be stored. If not present, a new table will be created to store the results.<br>
"projectId": "A String", # [Required] ID of the project billed for storage of the table.<br>
"tableId": "A String", # [Required] ID of the table.<br>
"datasetId": "A String", # [Required] ID of the dataset containing the table.<br>
},<br>
- "defaultDataset": { # [Optional] Specifies the default dataset to assume for unqualified table names in the query.<br>
- "projectId": "A String", # [Optional] The ID of the container project.<br>
- "datasetId": "A String", # [Required] A unique ID for this dataset, without the project name.<br>
- },<br>
+ "priority": "A String", # [Experimental] Specifies a priority for the query. Default is INTERACTIVE. Alternative is BATCH, which may be subject to looser quota restrictions.<br>
+ "writeDisposition": "A String", # [Optional] Whether to overwrite an existing table (WRITE_TRUNCATE), append to an existing table (WRITE_APPEND), or require that the the table is empty (WRITE_EMPTY). Default is WRITE_EMPTY.<br>
+ "createDisposition": "A String", # [Optional] Whether to create the table if it doesn't already exist (CREATE_IF_NEEDED) or to require the table already exist (CREATE_NEVER). Default is CREATE_IF_NEEDED.<br>
+ "query": "A String", # [Required] BigQuery SQL query to execute.<br>
},<br>
"copy": { # [Pick one] Copies a table.<br>
"createDisposition": "A String", # [Optional] Whether or not to create a new table, if none exists.<br>
@@ -532,11 +570,13 @@
},<br>
"extract": { # [Pick one] Configures an extract job.<br>
"destinationUri": "A String", # [Required] The fully-qualified Google Cloud Storage URI where the extracted table should be written.<br>
+ "fieldDelimiter": "A String", # [Optional] Delimiter to use between fields in the exported data. Default is ','<br>
"sourceTable": { # [Required] A reference to the table being exported.<br>
"projectId": "A String", # [Required] ID of the project billed for storage of the table.<br>
"tableId": "A String", # [Required] ID of the table.<br>
"datasetId": "A String", # [Required] ID of the dataset containing the table.<br>
},<br>
+ "printHeader": True or False, # [Optional] Whether to print out a heder row in the results. Default is true.<br>
},<br>
"properties": { # [Optional] Properties providing extra details about how the job should be run. Not used for most jobs.<br>
},<br>
@@ -579,7 +619,11 @@
},<br>
}<br>
<br>
+ pp: string, A parameter<br>
+ trace: string, A parameter<br>
projectId: string, Project ID of the project billed for the query (required)<br>
+ strict: string, A parameter<br>
+ userip: string, A parameter<br>
<br>
Returns:<br>
An object of the form<br>
diff --git a/docs/dyn/bigquery.v2.projects.html b/docs/dyn/bigquery.v2.projects.html
index 476f194..0e2fe51 100644
--- a/docs/dyn/bigquery.v2.projects.html
+++ b/docs/dyn/bigquery.v2.projects.html
@@ -17,8 +17,12 @@
<dl><dt><a name="Resource-list"><strong>list</strong></a> = method(self, **kwargs)</dt><dd><tt>Lists the projects to which you have at least read access.<br>
<br>
Args:<br>
+ pp: string, A parameter<br>
+ trace: string, A parameter<br>
pageToken: string, Page token, returned by a previous call, to request the next page of results<br>
maxResults: integer, Maximum number of results to return<br>
+ strict: string, A parameter<br>
+ userip: string, A parameter<br>
<br>
Returns:<br>
An object of the form<br>
diff --git a/docs/dyn/bigquery.v2.tabledata.html b/docs/dyn/bigquery.v2.tabledata.html
index 3f05cf0..8f7243e 100644
--- a/docs/dyn/bigquery.v2.tabledata.html
+++ b/docs/dyn/bigquery.v2.tabledata.html
@@ -17,10 +17,14 @@
<dl><dt><a name="Resource-list"><strong>list</strong></a> = method(self, **kwargs)</dt><dd><tt>Retrieves table data from a specified set of rows.<br>
<br>
Args:<br>
+ pp: string, A parameter<br>
+ trace: string, A parameter<br>
projectId: string, Project ID of the table to read (required)<br>
maxResults: integer, Maximum number of results to return<br>
+ strict: string, A parameter<br>
startIndex: string, Zero-based index of the starting row to read<br>
tableId: string, Table ID of the table to read (required)<br>
+ userip: string, A parameter<br>
datasetId: string, Dataset ID of the table to read (required)<br>
<br>
Returns:<br>
diff --git a/docs/dyn/bigquery.v2.tables.html b/docs/dyn/bigquery.v2.tables.html
index 28165d6..7e69e1a 100644
--- a/docs/dyn/bigquery.v2.tables.html
+++ b/docs/dyn/bigquery.v2.tables.html
@@ -17,15 +17,23 @@
<dl><dt><a name="Resource-delete"><strong>delete</strong></a> = method(self, **kwargs)</dt><dd><tt>Deletes the table specified by tableId from the dataset. If the table contains data, all the data will be deleted.<br>
<br>
Args:<br>
+ pp: string, A parameter<br>
+ trace: string, A parameter<br>
projectId: string, Project ID of the table to delete (required)<br>
+ strict: string, A parameter<br>
tableId: string, Table ID of the table to delete (required)<br>
+ userip: string, A parameter<br>
datasetId: string, Dataset ID of the table to delete (required)</tt></dd></dl>
<dl><dt><a name="Resource-get"><strong>get</strong></a> = method(self, **kwargs)</dt><dd><tt>Gets the specified table resource by table ID. This method does not return the data in the table, it only returns the table resource, which describes the structure of this table.<br>
<br>
Args:<br>
+ pp: string, A parameter<br>
+ trace: string, A parameter<br>
projectId: string, Project ID of the requested table (required)<br>
+ strict: string, A parameter<br>
tableId: string, Table ID of the requested table (required)<br>
+ userip: string, A parameter<br>
datasetId: string, Dataset ID of the requested table (required)<br>
<br>
Returns:<br>
@@ -33,6 +41,7 @@
<br>
{<br>
"kind": "bigquery#table", # [Output-only] The type of the resource.<br>
+ "lastModifiedTime": "A String", # [Output-only] The time when this table was last modified, in milliseconds since the epoch.<br>
"description": "A String", # [Optional] A user-friendly description of this table.<br>
"creationTime": "A String", # [Output-only] The time when this table was created, in milliseconds since the epoch.<br>
"tableReference": { # [Required] Reference describing the ID of this table.<br>
@@ -44,7 +53,7 @@
"numBytes": "A String", # [Output-only] The size of the table in bytes.<br>
"etag": "A String", # [Output-only] A hash of this resource.<br>
"friendlyName": "A String", # [Optional] A descriptive name for this table.<br>
- "lastModifiedTime": "A String", # [Output-only] The time when this table was last modified, in milliseconds since the epoch.<br>
+ "expirationTime": "A String", # [Optional] The time when this table expires, in milliseconds since the epoch. If not present, the table will persist indefinitely. Expired tables will be deleted and their storage reclaimed.<br>
"id": "A String", # [Output-only] An opaque ID uniquely identifying the table.<br>
"selfLink": "A String", # [Output-only] A URL that can be used to access this resource again.<br>
"schema": { # [Optional] Describes the schema of this table.<br>
@@ -69,6 +78,7 @@
<br>
{<br>
"kind": "bigquery#table", # [Output-only] The type of the resource.<br>
+ "lastModifiedTime": "A String", # [Output-only] The time when this table was last modified, in milliseconds since the epoch.<br>
"description": "A String", # [Optional] A user-friendly description of this table.<br>
"creationTime": "A String", # [Output-only] The time when this table was created, in milliseconds since the epoch.<br>
"tableReference": { # [Required] Reference describing the ID of this table.<br>
@@ -80,7 +90,7 @@
"numBytes": "A String", # [Output-only] The size of the table in bytes.<br>
"etag": "A String", # [Output-only] A hash of this resource.<br>
"friendlyName": "A String", # [Optional] A descriptive name for this table.<br>
- "lastModifiedTime": "A String", # [Output-only] The time when this table was last modified, in milliseconds since the epoch.<br>
+ "expirationTime": "A String", # [Optional] The time when this table expires, in milliseconds since the epoch. If not present, the table will persist indefinitely. Expired tables will be deleted and their storage reclaimed.<br>
"id": "A String", # [Output-only] An opaque ID uniquely identifying the table.<br>
"selfLink": "A String", # [Output-only] A URL that can be used to access this resource again.<br>
"schema": { # [Optional] Describes the schema of this table.<br>
@@ -97,7 +107,11 @@
},<br>
}<br>
<br>
+ pp: string, A parameter<br>
+ trace: string, A parameter<br>
projectId: string, Project ID of the new table (required)<br>
+ strict: string, A parameter<br>
+ userip: string, A parameter<br>
datasetId: string, Dataset ID of the new table (required)<br>
<br>
Returns:<br>
@@ -105,6 +119,7 @@
<br>
{<br>
"kind": "bigquery#table", # [Output-only] The type of the resource.<br>
+ "lastModifiedTime": "A String", # [Output-only] The time when this table was last modified, in milliseconds since the epoch.<br>
"description": "A String", # [Optional] A user-friendly description of this table.<br>
"creationTime": "A String", # [Output-only] The time when this table was created, in milliseconds since the epoch.<br>
"tableReference": { # [Required] Reference describing the ID of this table.<br>
@@ -116,7 +131,7 @@
"numBytes": "A String", # [Output-only] The size of the table in bytes.<br>
"etag": "A String", # [Output-only] A hash of this resource.<br>
"friendlyName": "A String", # [Optional] A descriptive name for this table.<br>
- "lastModifiedTime": "A String", # [Output-only] The time when this table was last modified, in milliseconds since the epoch.<br>
+ "expirationTime": "A String", # [Optional] The time when this table expires, in milliseconds since the epoch. If not present, the table will persist indefinitely. Expired tables will be deleted and their storage reclaimed.<br>
"id": "A String", # [Output-only] An opaque ID uniquely identifying the table.<br>
"selfLink": "A String", # [Output-only] A URL that can be used to access this resource again.<br>
"schema": { # [Optional] Describes the schema of this table.<br>
@@ -136,9 +151,13 @@
<dl><dt><a name="Resource-list"><strong>list</strong></a> = method(self, **kwargs)</dt><dd><tt>Lists all tables in the specified dataset.<br>
<br>
Args:<br>
+ pp: string, A parameter<br>
+ trace: string, A parameter<br>
pageToken: string, Page token, returned by a previous call, to request the next page of results<br>
maxResults: integer, Maximum number of results to return<br>
+ strict: string, A parameter<br>
projectId: string, Project ID of the tables to list (required)<br>
+ userip: string, A parameter<br>
datasetId: string, Dataset ID of the tables to list (required)<br>
<br>
Returns:<br>
@@ -181,6 +200,7 @@
<br>
{<br>
"kind": "bigquery#table", # [Output-only] The type of the resource.<br>
+ "lastModifiedTime": "A String", # [Output-only] The time when this table was last modified, in milliseconds since the epoch.<br>
"description": "A String", # [Optional] A user-friendly description of this table.<br>
"creationTime": "A String", # [Output-only] The time when this table was created, in milliseconds since the epoch.<br>
"tableReference": { # [Required] Reference describing the ID of this table.<br>
@@ -192,7 +212,7 @@
"numBytes": "A String", # [Output-only] The size of the table in bytes.<br>
"etag": "A String", # [Output-only] A hash of this resource.<br>
"friendlyName": "A String", # [Optional] A descriptive name for this table.<br>
- "lastModifiedTime": "A String", # [Output-only] The time when this table was last modified, in milliseconds since the epoch.<br>
+ "expirationTime": "A String", # [Optional] The time when this table expires, in milliseconds since the epoch. If not present, the table will persist indefinitely. Expired tables will be deleted and their storage reclaimed.<br>
"id": "A String", # [Output-only] An opaque ID uniquely identifying the table.<br>
"selfLink": "A String", # [Output-only] A URL that can be used to access this resource again.<br>
"schema": { # [Optional] Describes the schema of this table.<br>
@@ -209,8 +229,12 @@
},<br>
}<br>
<br>
+ pp: string, A parameter<br>
+ trace: string, A parameter<br>
projectId: string, Project ID of the table to update (required)<br>
+ strict: string, A parameter<br>
tableId: string, Table ID of the table to update (required)<br>
+ userip: string, A parameter<br>
datasetId: string, Dataset ID of the table to update (required)<br>
<br>
Returns:<br>
@@ -218,6 +242,7 @@
<br>
{<br>
"kind": "bigquery#table", # [Output-only] The type of the resource.<br>
+ "lastModifiedTime": "A String", # [Output-only] The time when this table was last modified, in milliseconds since the epoch.<br>
"description": "A String", # [Optional] A user-friendly description of this table.<br>
"creationTime": "A String", # [Output-only] The time when this table was created, in milliseconds since the epoch.<br>
"tableReference": { # [Required] Reference describing the ID of this table.<br>
@@ -229,7 +254,7 @@
"numBytes": "A String", # [Output-only] The size of the table in bytes.<br>
"etag": "A String", # [Output-only] A hash of this resource.<br>
"friendlyName": "A String", # [Optional] A descriptive name for this table.<br>
- "lastModifiedTime": "A String", # [Output-only] The time when this table was last modified, in milliseconds since the epoch.<br>
+ "expirationTime": "A String", # [Optional] The time when this table expires, in milliseconds since the epoch. If not present, the table will persist indefinitely. Expired tables will be deleted and their storage reclaimed.<br>
"id": "A String", # [Output-only] An opaque ID uniquely identifying the table.<br>
"selfLink": "A String", # [Output-only] A URL that can be used to access this resource again.<br>
"schema": { # [Optional] Describes the schema of this table.<br>
@@ -254,6 +279,7 @@
<br>
{<br>
"kind": "bigquery#table", # [Output-only] The type of the resource.<br>
+ "lastModifiedTime": "A String", # [Output-only] The time when this table was last modified, in milliseconds since the epoch.<br>
"description": "A String", # [Optional] A user-friendly description of this table.<br>
"creationTime": "A String", # [Output-only] The time when this table was created, in milliseconds since the epoch.<br>
"tableReference": { # [Required] Reference describing the ID of this table.<br>
@@ -265,7 +291,7 @@
"numBytes": "A String", # [Output-only] The size of the table in bytes.<br>
"etag": "A String", # [Output-only] A hash of this resource.<br>
"friendlyName": "A String", # [Optional] A descriptive name for this table.<br>
- "lastModifiedTime": "A String", # [Output-only] The time when this table was last modified, in milliseconds since the epoch.<br>
+ "expirationTime": "A String", # [Optional] The time when this table expires, in milliseconds since the epoch. If not present, the table will persist indefinitely. Expired tables will be deleted and their storage reclaimed.<br>
"id": "A String", # [Output-only] An opaque ID uniquely identifying the table.<br>
"selfLink": "A String", # [Output-only] A URL that can be used to access this resource again.<br>
"schema": { # [Optional] Describes the schema of this table.<br>
@@ -282,8 +308,12 @@
},<br>
}<br>
<br>
+ pp: string, A parameter<br>
+ trace: string, A parameter<br>
projectId: string, Project ID of the table to update (required)<br>
+ strict: string, A parameter<br>
tableId: string, Table ID of the table to update (required)<br>
+ userip: string, A parameter<br>
datasetId: string, Dataset ID of the table to update (required)<br>
<br>
Returns:<br>
@@ -291,6 +321,7 @@
<br>
{<br>
"kind": "bigquery#table", # [Output-only] The type of the resource.<br>
+ "lastModifiedTime": "A String", # [Output-only] The time when this table was last modified, in milliseconds since the epoch.<br>
"description": "A String", # [Optional] A user-friendly description of this table.<br>
"creationTime": "A String", # [Output-only] The time when this table was created, in milliseconds since the epoch.<br>
"tableReference": { # [Required] Reference describing the ID of this table.<br>
@@ -302,7 +333,7 @@
"numBytes": "A String", # [Output-only] The size of the table in bytes.<br>
"etag": "A String", # [Output-only] A hash of this resource.<br>
"friendlyName": "A String", # [Optional] A descriptive name for this table.<br>
- "lastModifiedTime": "A String", # [Output-only] The time when this table was last modified, in milliseconds since the epoch.<br>
+ "expirationTime": "A String", # [Optional] The time when this table expires, in milliseconds since the epoch. If not present, the table will persist indefinitely. Expired tables will be deleted and their storage reclaimed.<br>
"id": "A String", # [Output-only] An opaque ID uniquely identifying the table.<br>
"selfLink": "A String", # [Output-only] A URL that can be used to access this resource again.<br>
"schema": { # [Optional] Describes the schema of this table.<br>
diff --git a/docs/dyn/blogger.v2.blogs.html b/docs/dyn/blogger.v2.blogs.html
index d227c91..081179c 100644
--- a/docs/dyn/blogger.v2.blogs.html
+++ b/docs/dyn/blogger.v2.blogs.html
@@ -17,6 +17,10 @@
<dl><dt><a name="Resource-get"><strong>get</strong></a> = method(self, **kwargs)</dt><dd><tt>Gets one blog by id.<br>
<br>
Args:<br>
+ pp: string, A parameter<br>
+ trace: string, A parameter<br>
+ strict: string, A parameter<br>
+ userip: string, A parameter<br>
blogId: string, The ID of the blog to get. (required)<br>
<br>
Returns:<br>
diff --git a/docs/dyn/blogger.v2.comments.html b/docs/dyn/blogger.v2.comments.html
index aa710e1..8da4aea 100644
--- a/docs/dyn/blogger.v2.comments.html
+++ b/docs/dyn/blogger.v2.comments.html
@@ -17,6 +17,10 @@
<dl><dt><a name="Resource-get"><strong>get</strong></a> = method(self, **kwargs)</dt><dd><tt>Gets one comment by id.<br>
<br>
Args:<br>
+ pp: string, A parameter<br>
+ trace: string, A parameter<br>
+ strict: string, A parameter<br>
+ userip: string, A parameter<br>
commentId: string, The ID of the comment to get. (required)<br>
postId: string, ID of the post to fetch posts from. (required)<br>
blogId: string, ID of the blog to containing the comment. (required)<br>
@@ -53,10 +57,14 @@
<dl><dt><a name="Resource-list"><strong>list</strong></a> = method(self, **kwargs)</dt><dd><tt>Retrieves the comments for a blog, possibly filtered.<br>
<br>
Args:<br>
- startDate: string, Earliest date of comment to fetch.<br>
+ startDate: string, Earliest date of comment to fetch, a date-time with <a href="http://www.rfc-editor.org/rfc/rfc3339.txt">RFC 3339</a> formatting.<br>
+ pp: string, A parameter<br>
fetchBodies: boolean, Whether the body content of the comments is included.<br>
+ trace: string, A parameter<br>
pageToken: string, Continuation token if request is paged.<br>
maxResults: integer, Maximum number of comments to include in the result.<br>
+ strict: string, A parameter<br>
+ userip: string, A parameter<br>
postId: string, ID of the post to fetch posts from. (required)<br>
blogId: string, ID of the blog to fetch comments from. (required)<br>
<br>
diff --git a/docs/dyn/blogger.v2.pages.html b/docs/dyn/blogger.v2.pages.html
index 1d84614..d246f67 100644
--- a/docs/dyn/blogger.v2.pages.html
+++ b/docs/dyn/blogger.v2.pages.html
@@ -17,7 +17,11 @@
<dl><dt><a name="Resource-get"><strong>get</strong></a> = method(self, **kwargs)</dt><dd><tt>Gets one blog page by id.<br>
<br>
Args:<br>
+ pp: string, A parameter<br>
pageId: string, The ID of the page to get. (required)<br>
+ trace: string, A parameter<br>
+ strict: string, A parameter<br>
+ userip: string, A parameter<br>
blogId: string, ID of the blog containing the page. (required)<br>
<br>
Returns:<br>
@@ -48,6 +52,10 @@
<dl><dt><a name="Resource-list"><strong>list</strong></a> = method(self, **kwargs)</dt><dd><tt>Retrieves pages for a blog, possibly filtered.<br>
<br>
Args:<br>
+ pp: string, A parameter<br>
+ trace: string, A parameter<br>
+ strict: string, A parameter<br>
+ userip: string, A parameter<br>
fetchBodies: boolean, Whether to retrieve the Page bodies.<br>
blogId: string, ID of the blog to fetch pages from. (required)<br>
<br>
diff --git a/docs/dyn/blogger.v2.posts.html b/docs/dyn/blogger.v2.posts.html
index 7d05ffe..a750205 100644
--- a/docs/dyn/blogger.v2.posts.html
+++ b/docs/dyn/blogger.v2.posts.html
@@ -17,6 +17,10 @@
<dl><dt><a name="Resource-get"><strong>get</strong></a> = method(self, **kwargs)</dt><dd><tt>Get a post by id.<br>
<br>
Args:<br>
+ pp: string, A parameter<br>
+ trace: string, A parameter<br>
+ strict: string, A parameter<br>
+ userip: string, A parameter<br>
postId: string, The ID of the post (required)<br>
blogId: string, ID of the blog to fetch the post from. (required)<br>
<br>
@@ -55,9 +59,13 @@
<dl><dt><a name="Resource-list"><strong>list</strong></a> = method(self, **kwargs)</dt><dd><tt>Retrieves a list of posts, possibly filtered.<br>
<br>
Args:<br>
- startDate: string, Earliest post date to fetch.<br>
+ startDate: string, Earliest post date to fetch, a date-time with <a href="http://www.rfc-editor.org/rfc/rfc3339.txt">RFC 3339</a> formatting.<br>
+ pp: string, A parameter<br>
+ trace: string, A parameter<br>
pageToken: string, Continuation token if the request is paged.<br>
maxResults: integer, Maximum number of posts to fetch.<br>
+ strict: string, A parameter<br>
+ userip: string, A parameter<br>
fetchBodies: boolean, Whether the body content of posts is included.<br>
blogId: string, ID of the blog to fetch posts from. (required)<br>
<br>
diff --git a/docs/dyn/blogger.v2.users.blogs.html b/docs/dyn/blogger.v2.users.blogs.html
index 88034f2..b8a4f8d 100644
--- a/docs/dyn/blogger.v2.users.blogs.html
+++ b/docs/dyn/blogger.v2.users.blogs.html
@@ -17,7 +17,11 @@
<dl><dt><a name="Resource-list"><strong>list</strong></a> = method(self, **kwargs)</dt><dd><tt>Retrieves a list of blogs, possibly filtered.<br>
<br>
Args:<br>
+ pp: string, A parameter<br>
+ trace: string, A parameter<br>
userId: string, ID of the user whose blogs are to be fetched. Either the word 'self' (sans quote marks) or the user's profile identifier. (required)<br>
+ strict: string, A parameter<br>
+ userip: string, A parameter<br>
<br>
Returns:<br>
An object of the form<br>
diff --git a/docs/dyn/blogger.v2.users.html b/docs/dyn/blogger.v2.users.html
index 2258009..cd4c362 100644
--- a/docs/dyn/blogger.v2.users.html
+++ b/docs/dyn/blogger.v2.users.html
@@ -19,7 +19,11 @@
<dl><dt><a name="Resource-get"><strong>get</strong></a> = method(self, **kwargs)</dt><dd><tt>Gets one user by id.<br>
<br>
Args:<br>
+ pp: string, A parameter<br>
+ trace: string, A parameter<br>
userId: string, The ID of the user to get. (required)<br>
+ strict: string, A parameter<br>
+ userip: string, A parameter<br>
<br>
Returns:<br>
An object of the form<br>
diff --git a/docs/dyn/books.v1.bookshelves.html b/docs/dyn/books.v1.bookshelves.html
index 82889db..6efe9aa 100644
--- a/docs/dyn/books.v1.bookshelves.html
+++ b/docs/dyn/books.v1.bookshelves.html
@@ -17,10 +17,13 @@
<dl><dt><a name="Resource-get"><strong>get</strong></a> = method(self, **kwargs)</dt><dd><tt>Retrieves metadata for a specific bookshelf for the specified user.<br>
<br>
Args:<br>
+ pp: string, A parameter<br>
+ trace: string, A parameter<br>
source: string, String to identify the originator of this request.<br>
- country: string, ISO-3166-1 code to override the IP-based location.<br>
- userId: string, ID of user for whom to retrieve bookshelves. (required)<br>
shelf: string, ID of bookshelf to retrieve. (required)<br>
+ userId: string, ID of user for whom to retrieve bookshelves. (required)<br>
+ strict: string, A parameter<br>
+ userip: string, A parameter<br>
<br>
Returns:<br>
An object of the form<br>
@@ -41,9 +44,12 @@
<dl><dt><a name="Resource-list"><strong>list</strong></a> = method(self, **kwargs)</dt><dd><tt>Retrieves a list of public bookshelves for the specified user.<br>
<br>
Args:<br>
+ pp: string, A parameter<br>
+ trace: string, A parameter<br>
source: string, String to identify the originator of this request.<br>
- country: string, ISO-3166-1 code to override the IP-based location.<br>
userId: string, ID of user for whom to retrieve bookshelves. (required)<br>
+ strict: string, A parameter<br>
+ userip: string, A parameter<br>
<br>
Returns:<br>
An object of the form<br>
diff --git a/docs/dyn/books.v1.bookshelves.volumes.html b/docs/dyn/books.v1.bookshelves.volumes.html
index 75c0449..55e214f 100644
--- a/docs/dyn/books.v1.bookshelves.volumes.html
+++ b/docs/dyn/books.v1.bookshelves.volumes.html
@@ -17,12 +17,15 @@
<dl><dt><a name="Resource-list"><strong>list</strong></a> = method(self, **kwargs)</dt><dd><tt>Retrieves volumes in a specific bookshelf for the specified user.<br>
<br>
Args:<br>
- shelf: string, ID of bookshelf to retrieve volumes. (required)<br>
+ pp: string, A parameter<br>
+ trace: string, A parameter<br>
source: string, String to identify the originator of this request.<br>
+ shelf: string, ID of bookshelf to retrieve volumes. (required)<br>
showPreorders: boolean, Set to true to show pre-ordered books. Defaults to false.<br>
maxResults: integer, Maximum number of results to return<br>
+ strict: string, A parameter<br>
startIndex: integer, Index of the first element to return (starts at 0)<br>
- country: string, ISO-3166-1 code to override the IP-based location.<br>
+ userip: string, A parameter<br>
userId: string, ID of user for whom to retrieve bookshelf volumes. (required)<br>
<br>
Returns:<br>
@@ -52,6 +55,7 @@
"message": "A String", # Error/warning message.<br>
},<br>
"country": "A String", # The two-letter ISO_3166-1 country code for which this access information is valid. (In LITE projection.)<br>
+ "viewOrderUrl": "A String", # For ordered but not yet processed orders, we give a URL that can be used to go to the appropriate Google Wallet page.<br>
"textToSpeechPermission": "A String", # Whether text-to-speech is permitted for this volume. Values can be ALLOWED, ALLOWED_FOR_ACCESSIBILITY, or NOT_ALLOWED.<br>
"pdf": { # Information about pdf content. (In LITE projection.)<br>
"isAvailable": True or False, # Is a scanned image pdf available either as public domain or for purchase. (In LITE projection.)<br>
@@ -86,18 +90,8 @@
},<br>
"etag": "A String", # Opaque identifier for a specific version of a volume resource. (In LITE projection)<br>
"userInfo": { # User specific information related to this volume. (e.g. page this user last read or whether they purchased this book)<br>
+ "isInMyBooks": True or False, # Whether or not this volume is currently in "my books."<br>
"updated": "A String", # Timestamp when this volume was last modified by a user action, such as a reading position update, volume purchase or writing a review. (<a href="http://www.rfc-editor.org/rfc/rfc3339.txt">RFC 3339</a> UTC date-time format).<br>
- "isPreordered": True or False, # Whether or not this volume was pre-ordered by the authenticated user making the request. (In LITE projection.)<br>
- "isPurchased": True or False, # Whether or not this volume was purchased by the authenticated user making the request. (In LITE projection.)<br>
- "readingPosition": { # The user's current reading position in the volume, if one is available. (In LITE projection.)<br>
- "kind": "books#readingPosition", # Resource type for a reading position.<br>
- "gbImagePosition": "A String", # Position in a volume for image-based content.<br>
- "epubCfiPosition": "A String", # Position in an EPUB as a CFI.<br>
- "updated": "A String", # Timestamp when this reading position was last updated (formatted UTC timestamp with millisecond resolution).<br>
- "volumeId": "A String", # Volume id associated with this reading position.<br>
- "pdfPosition": "A String", # Position in a PDF file.<br>
- "gbTextPosition": "A String", # Position in a volume for text-based content.<br>
- },<br>
"review": { # This user's review of this volume, if one exists.<br>
"rating": "A String", # Star rating for this review. Possible values are ONE, TWO, THREE, FOUR, FIVE or NOT_RATED.<br>
"kind": "books#review", # Resource type for a review.<br>
@@ -116,27 +110,24 @@
"type": "A String", # Source type for this review. Possible values are EDITORIAL, WEB_USER or GOOGLE_USER.<br>
"fullTextUrl": "A String", # URL for the full review text, for reviews gathered from the web.<br>
},<br>
+ "isPurchased": True or False, # Whether or not this volume was purchased by the authenticated user making the request. (In LITE projection.)<br>
+ "readingPosition": { # The user's current reading position in the volume, if one is available. (In LITE projection.)<br>
+ "kind": "books#readingPosition", # Resource type for a reading position.<br>
+ "gbImagePosition": "A String", # Position in a volume for image-based content.<br>
+ "epubCfiPosition": "A String", # Position in an EPUB as a CFI.<br>
+ "updated": "A String", # Timestamp when this reading position was last updated (formatted UTC timestamp with millisecond resolution).<br>
+ "volumeId": "A String", # Volume id associated with this reading position.<br>
+ "pdfPosition": "A String", # Position in a PDF file.<br>
+ "gbTextPosition": "A String", # Position in a volume for text-based content.<br>
+ },<br>
+ "isPreordered": True or False, # Whether or not this volume was pre-ordered by the authenticated user making the request. (In LITE projection.)<br>
},<br>
"volumeInfo": { # General volume information.<br>
+ "publisher": "A String", # Publisher of this volume. (In LITE projection.)<br>
"subtitle": "A String", # Volume subtitle. (In LITE projection.)<br>
- "pageCount": 42, # Total number of pages.<br>
- "mainCategory": "A String", # The main category to which this volume belongs. It will be the category from the categories list returned below that has the highest weight.<br>
- "dimensions": { # Physical dimensions of this volume.<br>
- "width": "A String", # Width of this volume (in cm).<br>
- "thickness": "A String", # Thickness of this volume (in cm).<br>
- "height": "A String", # Height or length of this volume (in cm).<br>
- },<br>
- "title": "A String", # Volume title. (In LITE projection.)<br>
- "contentVersion": "A String", # An identifier for the version of the volume content (text & images). (In LITE projection)<br>
- "industryIdentifiers": [ # Industry standard identifiers for this volume.<br>
- {<br>
- "identifier": "A String", # Industry specific volume identifier.<br>
- "type": "A String", # Identifier type. Possible values are ISBN_10, ISBN_13, ISSN and OTHER.<br>
- },<br>
- ],<br>
- "canonicalVolumeLink": "A String", # Canonical URL for a volume. (In LITE projection.)<br>
"description": "A String", # A synopsis of the volume. The text of the description is formatted in HTML and includes simple formatting elements, such as b, i, and br tags. (In LITE projection.)<br>
- "publishedDate": "A String", # Date of publication. (In LITE projection.)<br>
+ "language": "A String", # Best language for this volume (based on content). It is the two-letter ISO 639-1 code such as 'fr', 'en', etc.<br>
+ "pageCount": 42, # Total number of pages.<br>
"imageLinks": { # A list of image links for all the sizes that are available. (In LITE projection.)<br>
"medium": "A String", # Image link for medium size (width of ~575 pixels). (In LITE projection)<br>
"smallThumbnail": "A String", # Image link for small thumbnail size (width of ~80 pixels). (In LITE projection)<br>
@@ -145,21 +136,33 @@
"small": "A String", # Image link for small size (width of ~300 pixels). (In LITE projection)<br>
"thumbnail": "A String", # Image link for thumbnail size (width of ~128 pixels). (In LITE projection)<br>
},<br>
+ "publishedDate": "A String", # Date of publication. (In LITE projection.)<br>
+ "previewLink": "A String", # URL to preview this volume on the Google Books site.<br>
+ "printType": "A String", # Type of publication of this volume. Possible values are BOOK or MAGAZINE.<br>
+ "ratingsCount": 42, # The number of review ratings for this volume.<br>
+ "mainCategory": "A String", # The main category to which this volume belongs. It will be the category from the categories list returned below that has the highest weight.<br>
+ "dimensions": { # Physical dimensions of this volume.<br>
+ "width": "A String", # Width of this volume (in cm).<br>
+ "thickness": "A String", # Thickness of this volume (in cm).<br>
+ "height": "A String", # Height or length of this volume (in cm).<br>
+ },<br>
+ "contentVersion": "A String", # An identifier for the version of the volume content (text & images). (In LITE projection)<br>
+ "industryIdentifiers": [ # Industry standard identifiers for this volume.<br>
+ {<br>
+ "identifier": "A String", # Industry specific volume identifier.<br>
+ "type": "A String", # Identifier type. Possible values are ISBN_10, ISBN_13, ISSN and OTHER.<br>
+ },<br>
+ ],<br>
"authors": [ # The names of the authors and/or editors for this volume. (In LITE projection)<br>
"A String",<br>
],<br>
+ "title": "A String", # Volume title. (In LITE projection.)<br>
+ "canonicalVolumeLink": "A String", # Canonical URL for a volume. (In LITE projection.)<br>
+ "infoLink": "A String", # URL to view information about this volume on the Google Books site. (In LITE projection)<br>
"categories": [ # A list of subject categories, such as "Fiction", "Suspense", etc.<br>
"A String",<br>
],<br>
- "publisher": "A String", # Publisher of this volume. (In LITE projection.)<br>
- "language": "A String", # Best language for this volume (based on content). It is the two-letter ISO 639-1 code such as 'fr', 'en', etc.<br>
- "previewLink": "A String", # URL to preview this volume on the Google Books site.<br>
- "printType": "A String", # Type of publication of this volume. Possible values are BOOK or MAGAZINE.<br>
- "showReviewsLink": "A String", # URL to show reviews for this volume<br>
- "writeReviewLink": "A String", # URL to write a review for this volume<br>
"averageRating": 3.14, # The mean review rating for this volume. (min = 1.0, max = 5.0)<br>
- "infoLink": "A String", # URL to view information about this volume on the Google Books site. (In LITE projection)<br>
- "ratingsCount": 42, # The number of review ratings for this volume.<br>
},<br>
"id": "A String", # Unique identifier for a volume. (In LITE projection.)<br>
"selfLink": "A String", # URL to this resource. (In LITE projection.)<br>
diff --git a/docs/dyn/books.v1.html b/docs/dyn/books.v1.html
index e019c9c..7d2c87f 100644
--- a/docs/dyn/books.v1.html
+++ b/docs/dyn/books.v1.html
@@ -22,8 +22,6 @@
<dl><dt><a name="Resource-mylibrary"><strong><a href="books.v1.mylibrary.html">mylibrary</a></strong></a> = methodResource(self)</dt><dd><tt>A collection resource.</tt></dd></dl>
-<dl><dt><a name="Resource-volumeAnnotations"><strong><a href="books.v1.volumeAnnotations.html">volumeAnnotations</a></strong></a> = methodResource(self)</dt><dd><tt>A collection resource.</tt></dd></dl>
-
<dl><dt><a name="Resource-volumes"><strong><a href="books.v1.volumes.html">volumes</a></strong></a> = methodResource(self)</dt><dd><tt>A collection resource.</tt></dd></dl>
<hr>
diff --git a/docs/dyn/books.v1.layers.annotationData.html b/docs/dyn/books.v1.layers.annotationData.html
index d95bb1a..dd0b02b 100644
--- a/docs/dyn/books.v1.layers.annotationData.html
+++ b/docs/dyn/books.v1.layers.annotationData.html
@@ -17,12 +17,18 @@
<dl><dt><a name="Resource-get"><strong>get</strong></a> = method(self, **kwargs)</dt><dd><tt>Gets the annotation data.<br>
<br>
Args:<br>
+ annotationDataId: string, The ID of the annotation data to retrieve. (required)<br>
+ pp: string, A parameter<br>
+ trace: string, A parameter<br>
source: string, String to identify the originator of this request.<br>
locale: string, The locale information for the data. ISO-639-1 language and ISO-3166-1 country code. Ex: 'en_US'.<br>
layerId: string, The ID for the layer to get the annotations. (required)<br>
volumeId: string, The volume to retrieve annotations for. (required)<br>
- annotationDataId: string, The ID of the annotation data to retrieve. (required)<br>
- country: string, ISO-3166-1 code to override the IP-based location.<br>
+ strict: string, A parameter<br>
+ contentVersion: string, The content version for the volume you are trying to retrieve. (required)<br>
+ h: integer, The requested pixel height for any images. If height is provided width must also be provided.<br>
+ userip: string, A parameter<br>
+ w: integer, The requested pixel width for any images. If width is provided height must also be provided.<br>
<br>
Returns:<br>
An object of the form<br>
@@ -34,7 +40,41 @@
"volumeId": "A String", # The volume id for this data. *<br>
"encoded_data": "A String", # Base64 encoded data for this annotation data.<br>
"layerId": "A String", # The Layer id for this data. *<br>
- "data": "A String", # JSON enoded data for this annotation data.<br>
+ "data": { # JSON encoded data for this annotation data.<br>
+ "geo": {<br>
+ "countryCode": "A String", # The country code of the location.<br>
+ "zoom": 42, # The Zoom level to use for the map. Zoom levels between 0 (the lowest zoom level, in which the entire world can be seen on one map) to 21+ (down to individual buildings). See: https://developers.google.com/maps/documentation/staticmaps/#Zoomlevels<br>
+ "longitude": 3.14, # The longitude of the location.<br>
+ "mapType": "A String", # The type of map that should be used for this location. EX: HYBRID, ROADMAP, SATELLITE, TERRAIN<br>
+ "latitude": 3.14, # The latitude of the location.<br>
+ "boundary": [ # The boundary of the location as a set of loops containing pairs of latitude, longitude coordinates.<br>
+ [<br>
+ {<br>
+ "latitude": 42,<br>
+ "longitude": 42,<br>
+ },<br>
+ ],<br>
+ ],<br>
+ "resolution": "A String", # The resolution of the location. Ex: POI_LEVEL<br>
+ "viewport": { # The viewport for showing this location. This is a latitude, longitude rectangle.<br>
+ "lo": {<br>
+ "latitude": 3.14,<br>
+ "longitude": 3.14,<br>
+ },<br>
+ "hi": {<br>
+ "latitude": 3.14,<br>
+ "longitude": 3.14,<br>
+ },<br>
+ },<br>
+ "cachePolicy": "A String", # The cache policy active for this data. EX: UNRESTRICTED, RESTRICTED, NEVER<br>
+ },<br>
+ "common": {<br>
+ "lang": "A String", # The language of the information url and description.<br>
+ "previewImageUrl": "A String", # The URL for the preview image information.<br>
+ "snippet": "A String", # The description for this location.<br>
+ "snippetUrl": "A String", # The URL for information for this location. Ex: wikipedia link.<br>
+ },<br>
+ },<br>
"id": "A String", # Unique id for this annotation data.<br>
"selfLink": "A String", # URL for this resource. *<br>
}</tt></dd></dl>
@@ -42,22 +82,28 @@
<dl><dt><a name="Resource-list"><strong>list</strong></a> = method(self, **kwargs)</dt><dd><tt>Gets the annotation data for a volume and layer.<br>
<br>
Args:<br>
- pageToken: string, The value of the nextToken from the previous page.<br>
- updatedMax: string, <a href="http://www.rfc-editor.org/rfc/rfc3339.txt">RFC 3339</a> timestamp to restrict to items updated prior to this timestamp (exclusive).<br>
locale: string, The locale information for the data. ISO-639-1 language and ISO-3166-1 country code. Ex: 'en_US'.<br>
- layerId: string, The ID for the layer to get the annotation data. (required)<br>
- volumeId: string, The volume to retrieve annotation data for. (required)<br>
- maxResults: integer, Maximum number of results to return<br>
+ pp: string, A parameter<br>
+ trace: string, A parameter<br>
+ pageToken: string, The value of the nextToken from the previous page.<br>
+ updatedMin: string, <a href="http://www.rfc-editor.org/rfc/rfc3339.txt">RFC 3339</a> timestamp to restrict to items updated since this timestamp (inclusive).<br>
source: string, String to identify the originator of this request.<br>
contentVersion: string, The content version for the requested volume. (required)<br>
- country: string, ISO-3166-1 code to override the IP-based location.<br>
- updatedMin: string, <a href="http://www.rfc-editor.org/rfc/rfc3339.txt">RFC 3339</a> timestamp to restrict to items updated since this timestamp (inclusive).<br>
+ layerId: string, The ID for the layer to get the annotation data. (required)<br>
+ strict: string, A parameter<br>
+ updatedMax: string, <a href="http://www.rfc-editor.org/rfc/rfc3339.txt">RFC 3339</a> timestamp to restrict to items updated prior to this timestamp (exclusive).<br>
+ volumeId: string, The volume to retrieve annotation data for. (required)<br>
+ maxResults: integer, Maximum number of results to return<br>
+ annotationDataId: string, The list of Annotation Data Ids to retrieve. Pagination is ignored if this is set. (repeated)<br>
+ h: integer, The requested pixel height for any images. If height is provided width must also be provided.<br>
+ w: integer, The requested pixel width for any images. If width is provided height must also be provided.<br>
+ userip: string, A parameter<br>
<br>
Returns:<br>
An object of the form<br>
<br>
{<br>
- "totalItems": 42, # The total number of volume annotations found.<br>
+ "nextPageToken": "A String", # Token to pass in for pagination for the next page. This will not be present if this request does not have more results.<br>
"items": [ # A list of Annotation Data.<br>
{<br>
"annotationType": "A String", # The type of annotation this data is for.<br>
@@ -66,14 +112,59 @@
"volumeId": "A String", # The volume id for this data. *<br>
"encoded_data": "A String", # Base64 encoded data for this annotation data.<br>
"layerId": "A String", # The Layer id for this data. *<br>
- "data": "A String", # JSON enoded data for this annotation data.<br>
+ "data": { # JSON encoded data for this annotation data.<br>
+ "geo": {<br>
+ "countryCode": "A String", # The country code of the location.<br>
+ "zoom": 42, # The Zoom level to use for the map. Zoom levels between 0 (the lowest zoom level, in which the entire world can be seen on one map) to 21+ (down to individual buildings). See: https://developers.google.com/maps/documentation/staticmaps/#Zoomlevels<br>
+ "longitude": 3.14, # The longitude of the location.<br>
+ "mapType": "A String", # The type of map that should be used for this location. EX: HYBRID, ROADMAP, SATELLITE, TERRAIN<br>
+ "latitude": 3.14, # The latitude of the location.<br>
+ "boundary": [ # The boundary of the location as a set of loops containing pairs of latitude, longitude coordinates.<br>
+ [<br>
+ {<br>
+ "latitude": 42,<br>
+ "longitude": 42,<br>
+ },<br>
+ ],<br>
+ ],<br>
+ "resolution": "A String", # The resolution of the location. Ex: POI_LEVEL<br>
+ "viewport": { # The viewport for showing this location. This is a latitude, longitude rectangle.<br>
+ "lo": {<br>
+ "latitude": 3.14,<br>
+ "longitude": 3.14,<br>
+ },<br>
+ "hi": {<br>
+ "latitude": 3.14,<br>
+ "longitude": 3.14,<br>
+ },<br>
+ },<br>
+ "cachePolicy": "A String", # The cache policy active for this data. EX: UNRESTRICTED, RESTRICTED, NEVER<br>
+ },<br>
+ "common": {<br>
+ "lang": "A String", # The language of the information url and description.<br>
+ "previewImageUrl": "A String", # The URL for the preview image information.<br>
+ "snippet": "A String", # The description for this location.<br>
+ "snippetUrl": "A String", # The URL for information for this location. Ex: wikipedia link.<br>
+ },<br>
+ },<br>
"id": "A String", # Unique id for this annotation data.<br>
"selfLink": "A String", # URL for this resource. *<br>
},<br>
],<br>
"kind": "books#annotationsdata", # Resource type<br>
+ "totalItems": 42, # The total number of volume annotations found.<br>
}</tt></dd></dl>
+<dl><dt><a name="Resource-list_next"><strong>list_next</strong></a> = methodNext(self, previous_request, previous_response)</dt><dd><tt>Retrieves the next page of results.<br>
+ <br>
+Args:<br>
+ previous_request: The request for the previous page.<br>
+ previous_response: The response from the request for the previous page.<br>
+ <br>
+Returns:<br>
+ A request object that you can call 'execute()' on to request the next<br>
+ page. Returns None if there are no more items in the collection.</tt></dd></dl>
+
<hr>
Data descriptors defined here:<br>
<dl><dt><strong>__dict__</strong></dt>
diff --git a/docs/dyn/books.v1.layers.html b/docs/dyn/books.v1.layers.html
index 051123d..940bcdb 100644
--- a/docs/dyn/books.v1.layers.html
+++ b/docs/dyn/books.v1.layers.html
@@ -19,8 +19,13 @@
<dl><dt><a name="Resource-get"><strong>get</strong></a> = method(self, **kwargs)</dt><dd><tt>Gets the layer summary for a volume.<br>
<br>
Args:<br>
- country: string, ISO-3166-1 code to override the IP-based location.<br>
+ pp: string, A parameter<br>
+ trace: string, A parameter<br>
source: string, String to identify the originator of this request.<br>
+ volumeId: string, The volume to retrieve layers for. (required)<br>
+ strict: string, A parameter<br>
+ contentVersion: string, The content version for the requested volume.<br>
+ userip: string, A parameter<br>
summaryId: string, The ID for the layer to get the summary for. (required)<br>
<br>
Returns:<br>
@@ -32,24 +37,29 @@
"dataCount": 42, # The number of data items for this layer.<br>
"annotationsLink": "A String", # The link to get the annotations for this layer.<br>
"updated": "A String", # Timestamp for the last time an item in this layer was updated. (<a href="http://www.rfc-editor.org/rfc/rfc3339.txt">RFC 3339</a> UTC date-time format).<br>
- "annotationsDataLink": "A String", # Link to get data for this annotation.<br>
- "annotationTypes": [ # The list of annotation types contained for this layer. *<br>
+ "volumeId": "A String", # The volume id this resource is for.<br>
+ "id": "A String", # Unique id of this layer summary.<br>
+ "annotationTypes": [ # The list of annotation types contained for this layer.<br>
"A String",<br>
],<br>
+ "contentVersion": "A String", # The content version this resource is for.<br>
"layerId": "A String", # The layer id for this summary.<br>
- "id": "A String", # Unique id of this layer summary.<br>
+ "annotationsDataLink": "A String", # Link to get data for this annotation.<br>
"selfLink": "A String", # URL to this resource.<br>
}</tt></dd></dl>
<dl><dt><a name="Resource-list"><strong>list</strong></a> = method(self, **kwargs)</dt><dd><tt>List the layer summaries for a volume.<br>
<br>
Args:<br>
- source: string, String to identify the originator of this request.<br>
- country: string, ISO-3166-1 code to override the IP-based location.<br>
+ pp: string, A parameter<br>
+ trace: string, A parameter<br>
+ pageToken: string, The value of the nextToken from the previous page.<br>
volumeId: string, The volume to retrieve layers for. (required)<br>
maxResults: integer, Maximum number of results to return<br>
- pageToken: string, The value of the nextToken from the previous page.<br>
+ source: string, String to identify the originator of this request.<br>
contentVersion: string, The content version for the requested volume.<br>
+ userip: string, A parameter<br>
+ strict: string, A parameter<br>
<br>
Returns:<br>
An object of the form<br>
@@ -63,18 +73,22 @@
"dataCount": 42, # The number of data items for this layer.<br>
"annotationsLink": "A String", # The link to get the annotations for this layer.<br>
"updated": "A String", # Timestamp for the last time an item in this layer was updated. (<a href="http://www.rfc-editor.org/rfc/rfc3339.txt">RFC 3339</a> UTC date-time format).<br>
- "annotationsDataLink": "A String", # Link to get data for this annotation.<br>
- "annotationTypes": [ # The list of annotation types contained for this layer. *<br>
+ "volumeId": "A String", # The volume id this resource is for.<br>
+ "id": "A String", # Unique id of this layer summary.<br>
+ "annotationTypes": [ # The list of annotation types contained for this layer.<br>
"A String",<br>
],<br>
+ "contentVersion": "A String", # The content version this resource is for.<br>
"layerId": "A String", # The layer id for this summary.<br>
- "id": "A String", # Unique id of this layer summary.<br>
+ "annotationsDataLink": "A String", # Link to get data for this annotation.<br>
"selfLink": "A String", # URL to this resource.<br>
},<br>
],<br>
"kind": "books#layersummaries", # Resource type.<br>
}</tt></dd></dl>
+<dl><dt><a name="Resource-volumeAnnotations"><strong><a href="books.v1.layers.volumeAnnotations.html">volumeAnnotations</a></strong></a> = methodResource(self)</dt><dd><tt>A collection resource.</tt></dd></dl>
+
<hr>
Data descriptors defined here:<br>
<dl><dt><strong>__dict__</strong></dt>
diff --git a/docs/dyn/books.v1.layers.volumeAnnotations.html b/docs/dyn/books.v1.layers.volumeAnnotations.html
new file mode 100644
index 0000000..4f1450b
--- /dev/null
+++ b/docs/dyn/books.v1.layers.volumeAnnotations.html
@@ -0,0 +1,162 @@
+
+<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
+<html><head><title>Python: class Resource</title>
+</head><body bgcolor="#f0f0f8">
+<p>
+<table width="100%" cellspacing=0 cellpadding=2 border=0 summary="section">
+<tr bgcolor="#ffc8d8">
+<td colspan=3 valign=bottom> <br>
+<font color="#000000" face="helvetica, arial"><a name="Resource">class <strong>Resource</strong></a>(<a href="__builtin__.html#object">__builtin__.object</a>)</font></td></tr>
+
+<tr bgcolor="#ffc8d8"><td rowspan=2><tt> </tt></td>
+<td colspan=2><tt>A class for interacting with a resource.<br> </tt></td></tr>
+<tr><td> </td>
+<td width="100%">Methods defined here:<br>
+<dl><dt><a name="Resource-__init__"><strong>__init__</strong></a>(self)</dt></dl>
+
+<dl><dt><a name="Resource-get"><strong>get</strong></a> = method(self, **kwargs)</dt><dd><tt>Gets the volume annotation.<br>
+ <br>
+Args:<br>
+ pp: string, A parameter<br>
+ trace: string, A parameter<br>
+ source: string, String to identify the originator of this request.<br>
+ locale: string, The locale information for the data. ISO-639-1 language and ISO-3166-1 country code. Ex: 'en_US'.<br>
+ annotationId: string, The ID of the volume annotation to retrieve. (required)<br>
+ volumeId: string, The volume to retrieve annotations for. (required)<br>
+ strict: string, A parameter<br>
+ layerId: string, The ID for the layer to get the annotations. (required)<br>
+ userip: string, A parameter<br>
+ <br>
+Returns:<br>
+ An object of the form<br>
+ <br>
+ {<br>
+ "annotationType": "A String", # The type of annotation this is.<br>
+ "kind": "books#volumeannotation", # Resource Type<br>
+ "updated": "A String", # Timestamp for the last time this anntoation was updated. (<a href="http://www.rfc-editor.org/rfc/rfc3339.txt">RFC 3339</a> UTC date-time format).<br>
+ "deleted": True or False, # Indicates that this annotation is deleted.<br>
+ "contentRanges": { # The content ranges to identify the selected text.<br>
+ "contentVersion": "A String", # Content version applicable to ranges below.<br>
+ "gbTextRange": { # Range in GB text format for this annotation for version above.<br>
+ "startPosition": "A String", # The starting position for the range.<br>
+ "endPosition": "A String", # The ending position for the range.<br>
+ "startOffset": "A String", # The offset from the starting position.<br>
+ "endOffset": "A String", # The offset from the ending position.<br>
+ },<br>
+ "cfiRange": { # Range in CFI format for this annotation for version above.<br>
+ "startPosition": "A String", # The starting position for the range.<br>
+ "endPosition": "A String", # The ending position for the range.<br>
+ "startOffset": "A String", # The offset from the starting position.<br>
+ "endOffset": "A String", # The offset from the ending position.<br>
+ },<br>
+ "gbImageRange": { # Range in GB image format for this annotation for version above.<br>
+ "startPosition": "A String", # The starting position for the range.<br>
+ "endPosition": "A String", # The ending position for the range.<br>
+ "startOffset": "A String", # The offset from the starting position.<br>
+ "endOffset": "A String", # The offset from the ending position.<br>
+ },<br>
+ },<br>
+ "selectedText": "A String", # Excerpt from the volume.<br>
+ "volumeId": "A String", # The Volume this annotation is for.<br>
+ "annotationDataId": "A String", # The annotation data id for this volume annotation.<br>
+ "annotationDataLink": "A String", # Link to get data for this annotation.<br>
+ "pageIds": [ # Pages the annotation spans.<br>
+ "A String",<br>
+ ],<br>
+ "layerId": "A String", # The Layer this annotation is for.<br>
+ "data": "A String", # Data for this annotation.<br>
+ "id": "A String", # Unique id of this volume annotation.<br>
+ "selfLink": "A String", # URL to this resource.<br>
+ }</tt></dd></dl>
+
+<dl><dt><a name="Resource-list"><strong>list</strong></a> = method(self, **kwargs)</dt><dd><tt>Gets the volume annotations for a volume and layer.<br>
+ <br>
+Args:<br>
+ endPosition: string, The end position to end retrieving data from.<br>
+ locale: string, The locale information for the data. ISO-639-1 language and ISO-3166-1 country code. Ex: 'en_US'.<br>
+ startOffset: string, The start offset to start retrieving data from.<br>
+ pp: string, A parameter<br>
+ trace: string, A parameter<br>
+ pageToken: string, The value of the nextToken from the previous page.<br>
+ updatedMin: string, <a href="http://www.rfc-editor.org/rfc/rfc3339.txt">RFC 3339</a> timestamp to restrict to items updated since this timestamp (inclusive).<br>
+ endOffset: string, The end offset to end retrieving data from.<br>
+ showDeleted: boolean, Set to true to return deleted annotations. updatedMin must be in the request to use this. Defaults to false.<br>
+ contentVersion: string, The content version for the requested volume. (required)<br>
+ layerId: string, The ID for the layer to get the annotations. (required)<br>
+ strict: string, A parameter<br>
+ updatedMax: string, <a href="http://www.rfc-editor.org/rfc/rfc3339.txt">RFC 3339</a> timestamp to restrict to items updated prior to this timestamp (exclusive).<br>
+ volumeId: string, The volume to retrieve annotations for. (required)<br>
+ maxResults: integer, Maximum number of results to return<br>
+ startPosition: string, The start position to start retrieving data from.<br>
+ source: string, String to identify the originator of this request.<br>
+ userip: string, A parameter<br>
+ <br>
+Returns:<br>
+ An object of the form<br>
+ <br>
+ {<br>
+ "nextPageToken": "A String", # Token to pass in for pagination for the next page. This will not be present if this request does not have more results.<br>
+ "items": [ # A list of volume annotations.<br>
+ {<br>
+ "annotationType": "A String", # The type of annotation this is.<br>
+ "kind": "books#volumeannotation", # Resource Type<br>
+ "updated": "A String", # Timestamp for the last time this anntoation was updated. (<a href="http://www.rfc-editor.org/rfc/rfc3339.txt">RFC 3339</a> UTC date-time format).<br>
+ "deleted": True or False, # Indicates that this annotation is deleted.<br>
+ "contentRanges": { # The content ranges to identify the selected text.<br>
+ "contentVersion": "A String", # Content version applicable to ranges below.<br>
+ "gbTextRange": { # Range in GB text format for this annotation for version above.<br>
+ "startPosition": "A String", # The starting position for the range.<br>
+ "endPosition": "A String", # The ending position for the range.<br>
+ "startOffset": "A String", # The offset from the starting position.<br>
+ "endOffset": "A String", # The offset from the ending position.<br>
+ },<br>
+ "cfiRange": { # Range in CFI format for this annotation for version above.<br>
+ "startPosition": "A String", # The starting position for the range.<br>
+ "endPosition": "A String", # The ending position for the range.<br>
+ "startOffset": "A String", # The offset from the starting position.<br>
+ "endOffset": "A String", # The offset from the ending position.<br>
+ },<br>
+ "gbImageRange": { # Range in GB image format for this annotation for version above.<br>
+ "startPosition": "A String", # The starting position for the range.<br>
+ "endPosition": "A String", # The ending position for the range.<br>
+ "startOffset": "A String", # The offset from the starting position.<br>
+ "endOffset": "A String", # The offset from the ending position.<br>
+ },<br>
+ },<br>
+ "selectedText": "A String", # Excerpt from the volume.<br>
+ "volumeId": "A String", # The Volume this annotation is for.<br>
+ "annotationDataId": "A String", # The annotation data id for this volume annotation.<br>
+ "annotationDataLink": "A String", # Link to get data for this annotation.<br>
+ "pageIds": [ # Pages the annotation spans.<br>
+ "A String",<br>
+ ],<br>
+ "layerId": "A String", # The Layer this annotation is for.<br>
+ "data": "A String", # Data for this annotation.<br>
+ "id": "A String", # Unique id of this volume annotation.<br>
+ "selfLink": "A String", # URL to this resource.<br>
+ },<br>
+ ],<br>
+ "kind": "books#volumeannotations", # Resource type<br>
+ "totalItems": 42, # The total number of volume annotations found.<br>
+ }</tt></dd></dl>
+
+<dl><dt><a name="Resource-list_next"><strong>list_next</strong></a> = methodNext(self, previous_request, previous_response)</dt><dd><tt>Retrieves the next page of results.<br>
+ <br>
+Args:<br>
+ previous_request: The request for the previous page.<br>
+ previous_response: The response from the request for the previous page.<br>
+ <br>
+Returns:<br>
+ A request object that you can call 'execute()' on to request the next<br>
+ page. Returns None if there are no more items in the collection.</tt></dd></dl>
+
+<hr>
+Data descriptors defined here:<br>
+<dl><dt><strong>__dict__</strong></dt>
+<dd><tt>dictionary for instance variables (if defined)</tt></dd>
+</dl>
+<dl><dt><strong>__weakref__</strong></dt>
+<dd><tt>list of weak references to the object (if defined)</tt></dd>
+</dl>
+</td></tr></table>
+</body></html>
\ No newline at end of file
diff --git a/docs/dyn/books.v1.myconfig.html b/docs/dyn/books.v1.myconfig.html
index d460bef..0ccd5c4 100644
--- a/docs/dyn/books.v1.myconfig.html
+++ b/docs/dyn/books.v1.myconfig.html
@@ -17,11 +17,14 @@
<dl><dt><a name="Resource-releaseDownloadAccess"><strong>releaseDownloadAccess</strong></a> = method(self, **kwargs)</dt><dd><tt>Release downloaded content access restriction.<br>
<br>
Args:<br>
+ pp: string, A parameter<br>
+ trace: string, A parameter<br>
source: string, String to identify the originator of this request.<br>
locale: string, ISO-639-1, ISO-3166-1 codes for message localization, i.e. en_US.<br>
- country: string, ISO-3166-1 code to override the IP-based location.<br>
cpksver: string, The device/version ID from which to release the restriction. (required)<br>
+ strict: string, A parameter<br>
volumeIds: string, The volume(s) to release restrictions for. (required) (repeated)<br>
+ userip: string, A parameter<br>
<br>
Returns:<br>
An object of the form<br>
@@ -50,11 +53,14 @@
<br>
Args:<br>
nonce: string, The client nonce value. (required)<br>
+ pp: string, A parameter<br>
+ trace: string, A parameter<br>
source: string, String to identify the originator of this request. (required)<br>
locale: string, ISO-639-1, ISO-3166-1 codes for message localization, i.e. en_US.<br>
- country: string, ISO-3166-1 code to override the IP-based location.<br>
cpksver: string, The device/version ID from which to request the restrictions. (required)<br>
volumeId: string, The volume to request concurrent/download restrictions for. (required)<br>
+ strict: string, A parameter<br>
+ userip: string, A parameter<br>
<br>
Returns:<br>
An object of the form<br>
@@ -94,12 +100,15 @@
<br>
Args:<br>
nonce: string, The client nonce value. (required)<br>
+ pp: string, A parameter<br>
+ trace: string, A parameter<br>
source: string, String to identify the originator of this request. (required)<br>
locale: string, ISO-639-1, ISO-3166-1 codes for message localization, i.e. en_US.<br>
- country: string, ISO-3166-1 code to override the IP-based location.<br>
showPreorders: boolean, Set to true to show pre-ordered books. Defaults to false.<br>
cpksver: string, The device/version ID from which to release the restriction. (required)<br>
+ strict: string, A parameter<br>
volumeIds: string, The volume(s) to request download restrictions for. (repeated)<br>
+ userip: string, A parameter<br>
<br>
Returns:<br>
An object of the form<br>
@@ -128,6 +137,7 @@
"message": "A String", # Error/warning message.<br>
},<br>
"country": "A String", # The two-letter ISO_3166-1 country code for which this access information is valid. (In LITE projection.)<br>
+ "viewOrderUrl": "A String", # For ordered but not yet processed orders, we give a URL that can be used to go to the appropriate Google Wallet page.<br>
"textToSpeechPermission": "A String", # Whether text-to-speech is permitted for this volume. Values can be ALLOWED, ALLOWED_FOR_ACCESSIBILITY, or NOT_ALLOWED.<br>
"pdf": { # Information about pdf content. (In LITE projection.)<br>
"isAvailable": True or False, # Is a scanned image pdf available either as public domain or for purchase. (In LITE projection.)<br>
@@ -162,18 +172,8 @@
},<br>
"etag": "A String", # Opaque identifier for a specific version of a volume resource. (In LITE projection)<br>
"userInfo": { # User specific information related to this volume. (e.g. page this user last read or whether they purchased this book)<br>
+ "isInMyBooks": True or False, # Whether or not this volume is currently in "my books."<br>
"updated": "A String", # Timestamp when this volume was last modified by a user action, such as a reading position update, volume purchase or writing a review. (<a href="http://www.rfc-editor.org/rfc/rfc3339.txt">RFC 3339</a> UTC date-time format).<br>
- "isPreordered": True or False, # Whether or not this volume was pre-ordered by the authenticated user making the request. (In LITE projection.)<br>
- "isPurchased": True or False, # Whether or not this volume was purchased by the authenticated user making the request. (In LITE projection.)<br>
- "readingPosition": { # The user's current reading position in the volume, if one is available. (In LITE projection.)<br>
- "kind": "books#readingPosition", # Resource type for a reading position.<br>
- "gbImagePosition": "A String", # Position in a volume for image-based content.<br>
- "epubCfiPosition": "A String", # Position in an EPUB as a CFI.<br>
- "updated": "A String", # Timestamp when this reading position was last updated (formatted UTC timestamp with millisecond resolution).<br>
- "volumeId": "A String", # Volume id associated with this reading position.<br>
- "pdfPosition": "A String", # Position in a PDF file.<br>
- "gbTextPosition": "A String", # Position in a volume for text-based content.<br>
- },<br>
"review": { # This user's review of this volume, if one exists.<br>
"rating": "A String", # Star rating for this review. Possible values are ONE, TWO, THREE, FOUR, FIVE or NOT_RATED.<br>
"kind": "books#review", # Resource type for a review.<br>
@@ -192,27 +192,24 @@
"type": "A String", # Source type for this review. Possible values are EDITORIAL, WEB_USER or GOOGLE_USER.<br>
"fullTextUrl": "A String", # URL for the full review text, for reviews gathered from the web.<br>
},<br>
+ "isPurchased": True or False, # Whether or not this volume was purchased by the authenticated user making the request. (In LITE projection.)<br>
+ "readingPosition": { # The user's current reading position in the volume, if one is available. (In LITE projection.)<br>
+ "kind": "books#readingPosition", # Resource type for a reading position.<br>
+ "gbImagePosition": "A String", # Position in a volume for image-based content.<br>
+ "epubCfiPosition": "A String", # Position in an EPUB as a CFI.<br>
+ "updated": "A String", # Timestamp when this reading position was last updated (formatted UTC timestamp with millisecond resolution).<br>
+ "volumeId": "A String", # Volume id associated with this reading position.<br>
+ "pdfPosition": "A String", # Position in a PDF file.<br>
+ "gbTextPosition": "A String", # Position in a volume for text-based content.<br>
+ },<br>
+ "isPreordered": True or False, # Whether or not this volume was pre-ordered by the authenticated user making the request. (In LITE projection.)<br>
},<br>
"volumeInfo": { # General volume information.<br>
+ "publisher": "A String", # Publisher of this volume. (In LITE projection.)<br>
"subtitle": "A String", # Volume subtitle. (In LITE projection.)<br>
- "pageCount": 42, # Total number of pages.<br>
- "mainCategory": "A String", # The main category to which this volume belongs. It will be the category from the categories list returned below that has the highest weight.<br>
- "dimensions": { # Physical dimensions of this volume.<br>
- "width": "A String", # Width of this volume (in cm).<br>
- "thickness": "A String", # Thickness of this volume (in cm).<br>
- "height": "A String", # Height or length of this volume (in cm).<br>
- },<br>
- "title": "A String", # Volume title. (In LITE projection.)<br>
- "contentVersion": "A String", # An identifier for the version of the volume content (text & images). (In LITE projection)<br>
- "industryIdentifiers": [ # Industry standard identifiers for this volume.<br>
- {<br>
- "identifier": "A String", # Industry specific volume identifier.<br>
- "type": "A String", # Identifier type. Possible values are ISBN_10, ISBN_13, ISSN and OTHER.<br>
- },<br>
- ],<br>
- "canonicalVolumeLink": "A String", # Canonical URL for a volume. (In LITE projection.)<br>
"description": "A String", # A synopsis of the volume. The text of the description is formatted in HTML and includes simple formatting elements, such as b, i, and br tags. (In LITE projection.)<br>
- "publishedDate": "A String", # Date of publication. (In LITE projection.)<br>
+ "language": "A String", # Best language for this volume (based on content). It is the two-letter ISO 639-1 code such as 'fr', 'en', etc.<br>
+ "pageCount": 42, # Total number of pages.<br>
"imageLinks": { # A list of image links for all the sizes that are available. (In LITE projection.)<br>
"medium": "A String", # Image link for medium size (width of ~575 pixels). (In LITE projection)<br>
"smallThumbnail": "A String", # Image link for small thumbnail size (width of ~80 pixels). (In LITE projection)<br>
@@ -221,21 +218,33 @@
"small": "A String", # Image link for small size (width of ~300 pixels). (In LITE projection)<br>
"thumbnail": "A String", # Image link for thumbnail size (width of ~128 pixels). (In LITE projection)<br>
},<br>
+ "publishedDate": "A String", # Date of publication. (In LITE projection.)<br>
+ "previewLink": "A String", # URL to preview this volume on the Google Books site.<br>
+ "printType": "A String", # Type of publication of this volume. Possible values are BOOK or MAGAZINE.<br>
+ "ratingsCount": 42, # The number of review ratings for this volume.<br>
+ "mainCategory": "A String", # The main category to which this volume belongs. It will be the category from the categories list returned below that has the highest weight.<br>
+ "dimensions": { # Physical dimensions of this volume.<br>
+ "width": "A String", # Width of this volume (in cm).<br>
+ "thickness": "A String", # Thickness of this volume (in cm).<br>
+ "height": "A String", # Height or length of this volume (in cm).<br>
+ },<br>
+ "contentVersion": "A String", # An identifier for the version of the volume content (text & images). (In LITE projection)<br>
+ "industryIdentifiers": [ # Industry standard identifiers for this volume.<br>
+ {<br>
+ "identifier": "A String", # Industry specific volume identifier.<br>
+ "type": "A String", # Identifier type. Possible values are ISBN_10, ISBN_13, ISSN and OTHER.<br>
+ },<br>
+ ],<br>
"authors": [ # The names of the authors and/or editors for this volume. (In LITE projection)<br>
"A String",<br>
],<br>
+ "title": "A String", # Volume title. (In LITE projection.)<br>
+ "canonicalVolumeLink": "A String", # Canonical URL for a volume. (In LITE projection.)<br>
+ "infoLink": "A String", # URL to view information about this volume on the Google Books site. (In LITE projection)<br>
"categories": [ # A list of subject categories, such as "Fiction", "Suspense", etc.<br>
"A String",<br>
],<br>
- "publisher": "A String", # Publisher of this volume. (In LITE projection.)<br>
- "language": "A String", # Best language for this volume (based on content). It is the two-letter ISO 639-1 code such as 'fr', 'en', etc.<br>
- "previewLink": "A String", # URL to preview this volume on the Google Books site.<br>
- "printType": "A String", # Type of publication of this volume. Possible values are BOOK or MAGAZINE.<br>
- "showReviewsLink": "A String", # URL to show reviews for this volume<br>
- "writeReviewLink": "A String", # URL to write a review for this volume<br>
"averageRating": 3.14, # The mean review rating for this volume. (min = 1.0, max = 5.0)<br>
- "infoLink": "A String", # URL to view information about this volume on the Google Books site. (In LITE projection)<br>
- "ratingsCount": 42, # The number of review ratings for this volume.<br>
},<br>
"id": "A String", # Unique identifier for a volume. (In LITE projection.)<br>
"selfLink": "A String", # URL to this resource. (In LITE projection.)<br>
diff --git a/docs/dyn/books.v1.mylibrary.annotations.html b/docs/dyn/books.v1.mylibrary.annotations.html
index 70d0c79..43668b2 100644
--- a/docs/dyn/books.v1.mylibrary.annotations.html
+++ b/docs/dyn/books.v1.mylibrary.annotations.html
@@ -17,16 +17,22 @@
<dl><dt><a name="Resource-delete"><strong>delete</strong></a> = method(self, **kwargs)</dt><dd><tt>Deletes an annotation.<br>
<br>
Args:<br>
+ pp: string, A parameter<br>
+ trace: string, A parameter<br>
source: string, String to identify the originator of this request.<br>
- country: string, ISO-3166-1 code to override the IP-based location.<br>
- annotationId: string, The ID for the annotation to delete. (required)</tt></dd></dl>
+ annotationId: string, The ID for the annotation to delete. (required)<br>
+ strict: string, A parameter<br>
+ userip: string, A parameter</tt></dd></dl>
<dl><dt><a name="Resource-get"><strong>get</strong></a> = method(self, **kwargs)</dt><dd><tt>Gets an annotation by its ID.<br>
<br>
Args:<br>
+ pp: string, A parameter<br>
+ trace: string, A parameter<br>
source: string, String to identify the originator of this request.<br>
- country: string, ISO-3166-1 code to override the IP-based location.<br>
annotationId: string, The ID for the annotation to retrieve. (required)<br>
+ strict: string, A parameter<br>
+ userip: string, A parameter<br>
<br>
Returns:<br>
An object of the form<br>
@@ -159,8 +165,11 @@
"selfLink": "A String", # URL to this resource.<br>
}<br>
<br>
+ pp: string, A parameter<br>
+ trace: string, A parameter<br>
source: string, String to identify the originator of this request.<br>
- country: string, ISO-3166-1 code to override the IP-based location.<br>
+ strict: string, A parameter<br>
+ userip: string, A parameter<br>
<br>
Returns:<br>
An object of the form<br>
@@ -230,6 +239,8 @@
<br>
Args:<br>
pageToken: string, The value of the nextToken from the previous page.<br>
+ pp: string, A parameter<br>
+ trace: string, A parameter<br>
updatedMax: string, <a href="http://www.rfc-editor.org/rfc/rfc3339.txt">RFC 3339</a> timestamp to restrict to items updated prior to this timestamp (exclusive).<br>
layerId: string, The layer ID to limit annotation by.<br>
volumeId: string, The volume to restrict annotations to.<br>
@@ -238,8 +249,9 @@
pageIds: string, The page ID(s) for the volume that is being queried. (repeated)<br>
contentVersion: string, The content version for the requested volume.<br>
source: string, String to identify the originator of this request.<br>
- country: string, ISO-3166-1 code to override the IP-based location.<br>
updatedMin: string, <a href="http://www.rfc-editor.org/rfc/rfc3339.txt">RFC 3339</a> timestamp to restrict to items updated since this timestamp (inclusive).<br>
+ userip: string, A parameter<br>
+ strict: string, A parameter<br>
<br>
Returns:<br>
An object of the form<br>
@@ -389,9 +401,12 @@
"selfLink": "A String", # URL to this resource.<br>
}<br>
<br>
+ pp: string, A parameter<br>
+ trace: string, A parameter<br>
source: string, String to identify the originator of this request.<br>
- country: string, ISO-3166-1 code to override the IP-based location.<br>
annotationId: string, The ID for the annotation to update. (required)<br>
+ strict: string, A parameter<br>
+ userip: string, A parameter<br>
<br>
Returns:<br>
An object of the form<br>
diff --git a/docs/dyn/books.v1.mylibrary.bookshelves.html b/docs/dyn/books.v1.mylibrary.bookshelves.html
index bbb8e5a..c7c6710 100644
--- a/docs/dyn/books.v1.mylibrary.bookshelves.html
+++ b/docs/dyn/books.v1.mylibrary.bookshelves.html
@@ -17,24 +17,33 @@
<dl><dt><a name="Resource-addVolume"><strong>addVolume</strong></a> = method(self, **kwargs)</dt><dd><tt>Adds a volume to a bookshelf.<br>
<br>
Args:<br>
+ pp: string, A parameter<br>
+ trace: string, A parameter<br>
source: string, String to identify the originator of this request.<br>
- country: string, ISO-3166-1 code to override the IP-based location.<br>
+ shelf: string, ID of bookshelf to which to add a volume. (required)<br>
volumeId: string, ID of volume to add. (required)<br>
- shelf: string, ID of bookshelf to which to add a volume. (required)</tt></dd></dl>
+ strict: string, A parameter<br>
+ userip: string, A parameter</tt></dd></dl>
<dl><dt><a name="Resource-clearVolumes"><strong>clearVolumes</strong></a> = method(self, **kwargs)</dt><dd><tt>Clears all volumes from a bookshelf.<br>
<br>
Args:<br>
+ pp: string, A parameter<br>
+ trace: string, A parameter<br>
source: string, String to identify the originator of this request.<br>
shelf: string, ID of bookshelf from which to remove a volume. (required)<br>
- country: string, ISO-3166-1 code to override the IP-based location.</tt></dd></dl>
+ strict: string, A parameter<br>
+ userip: string, A parameter</tt></dd></dl>
<dl><dt><a name="Resource-get"><strong>get</strong></a> = method(self, **kwargs)</dt><dd><tt>Retrieves metadata for a specific bookshelf belonging to the authenticated user.<br>
<br>
Args:<br>
+ pp: string, A parameter<br>
+ trace: string, A parameter<br>
source: string, String to identify the originator of this request.<br>
shelf: string, ID of bookshelf to retrieve. (required)<br>
- country: string, ISO-3166-1 code to override the IP-based location.<br>
+ strict: string, A parameter<br>
+ userip: string, A parameter<br>
<br>
Returns:<br>
An object of the form<br>
@@ -55,8 +64,11 @@
<dl><dt><a name="Resource-list"><strong>list</strong></a> = method(self, **kwargs)</dt><dd><tt>Retrieves a list of bookshelves belonging to the authenticated user.<br>
<br>
Args:<br>
- country: string, ISO-3166-1 code to override the IP-based location.<br>
+ pp: string, A parameter<br>
+ trace: string, A parameter<br>
source: string, String to identify the originator of this request.<br>
+ strict: string, A parameter<br>
+ userip: string, A parameter<br>
<br>
Returns:<br>
An object of the form<br>
@@ -83,18 +95,24 @@
<br>
Args:<br>
volumePosition: integer, Position on shelf to move the item (0 puts the item before the current first item, 1 puts it between the first and the second and so on.) (required)<br>
+ pp: string, A parameter<br>
+ trace: string, A parameter<br>
source: string, String to identify the originator of this request.<br>
- country: string, ISO-3166-1 code to override the IP-based location.<br>
+ shelf: string, ID of bookshelf with the volume. (required)<br>
volumeId: string, ID of volume to move. (required)<br>
- shelf: string, ID of bookshelf with the volume. (required)</tt></dd></dl>
+ strict: string, A parameter<br>
+ userip: string, A parameter</tt></dd></dl>
<dl><dt><a name="Resource-removeVolume"><strong>removeVolume</strong></a> = method(self, **kwargs)</dt><dd><tt>Removes a volume from a bookshelf.<br>
<br>
Args:<br>
+ pp: string, A parameter<br>
+ trace: string, A parameter<br>
source: string, String to identify the originator of this request.<br>
- country: string, ISO-3166-1 code to override the IP-based location.<br>
+ shelf: string, ID of bookshelf from which to remove a volume. (required)<br>
volumeId: string, ID of volume to remove. (required)<br>
- shelf: string, ID of bookshelf from which to remove a volume. (required)</tt></dd></dl>
+ strict: string, A parameter<br>
+ userip: string, A parameter</tt></dd></dl>
<dl><dt><a name="Resource-volumes"><strong><a href="books.v1.mylibrary.bookshelves.volumes.html">volumes</a></strong></a> = methodResource(self)</dt><dd><tt>A collection resource.</tt></dd></dl>
diff --git a/docs/dyn/books.v1.mylibrary.bookshelves.volumes.html b/docs/dyn/books.v1.mylibrary.bookshelves.volumes.html
index 4b22a12..12e492b 100644
--- a/docs/dyn/books.v1.mylibrary.bookshelves.volumes.html
+++ b/docs/dyn/books.v1.mylibrary.bookshelves.volumes.html
@@ -17,6 +17,8 @@
<dl><dt><a name="Resource-list"><strong>list</strong></a> = method(self, **kwargs)</dt><dd><tt>Gets volume information for volumes on a bookshelf.<br>
<br>
Args:<br>
+ q: string, Full-text search query string in this bookshelf.<br>
+ pp: string, A parameter<br>
projection: string, Restrict information returned to a set of selected fields.<br>
Allowed values<br>
full - Includes all volume data.<br>
@@ -24,10 +26,12 @@
source: string, String to identify the originator of this request.<br>
country: string, ISO-3166-1 code to override the IP-based location.<br>
showPreorders: boolean, Set to true to show pre-ordered books. Defaults to false.<br>
- maxResults: integer, Maximum number of results to return<br>
- q: string, Full-text search query string in this bookshelf.<br>
startIndex: integer, Index of the first element to return (starts at 0)<br>
+ maxResults: integer, Maximum number of results to return<br>
+ strict: string, A parameter<br>
+ userip: string, A parameter<br>
shelf: string, The bookshelf ID or name retrieve volumes for. (required)<br>
+ trace: string, A parameter<br>
<br>
Returns:<br>
An object of the form<br>
@@ -56,6 +60,7 @@
"message": "A String", # Error/warning message.<br>
},<br>
"country": "A String", # The two-letter ISO_3166-1 country code for which this access information is valid. (In LITE projection.)<br>
+ "viewOrderUrl": "A String", # For ordered but not yet processed orders, we give a URL that can be used to go to the appropriate Google Wallet page.<br>
"textToSpeechPermission": "A String", # Whether text-to-speech is permitted for this volume. Values can be ALLOWED, ALLOWED_FOR_ACCESSIBILITY, or NOT_ALLOWED.<br>
"pdf": { # Information about pdf content. (In LITE projection.)<br>
"isAvailable": True or False, # Is a scanned image pdf available either as public domain or for purchase. (In LITE projection.)<br>
@@ -90,18 +95,8 @@
},<br>
"etag": "A String", # Opaque identifier for a specific version of a volume resource. (In LITE projection)<br>
"userInfo": { # User specific information related to this volume. (e.g. page this user last read or whether they purchased this book)<br>
+ "isInMyBooks": True or False, # Whether or not this volume is currently in "my books."<br>
"updated": "A String", # Timestamp when this volume was last modified by a user action, such as a reading position update, volume purchase or writing a review. (<a href="http://www.rfc-editor.org/rfc/rfc3339.txt">RFC 3339</a> UTC date-time format).<br>
- "isPreordered": True or False, # Whether or not this volume was pre-ordered by the authenticated user making the request. (In LITE projection.)<br>
- "isPurchased": True or False, # Whether or not this volume was purchased by the authenticated user making the request. (In LITE projection.)<br>
- "readingPosition": { # The user's current reading position in the volume, if one is available. (In LITE projection.)<br>
- "kind": "books#readingPosition", # Resource type for a reading position.<br>
- "gbImagePosition": "A String", # Position in a volume for image-based content.<br>
- "epubCfiPosition": "A String", # Position in an EPUB as a CFI.<br>
- "updated": "A String", # Timestamp when this reading position was last updated (formatted UTC timestamp with millisecond resolution).<br>
- "volumeId": "A String", # Volume id associated with this reading position.<br>
- "pdfPosition": "A String", # Position in a PDF file.<br>
- "gbTextPosition": "A String", # Position in a volume for text-based content.<br>
- },<br>
"review": { # This user's review of this volume, if one exists.<br>
"rating": "A String", # Star rating for this review. Possible values are ONE, TWO, THREE, FOUR, FIVE or NOT_RATED.<br>
"kind": "books#review", # Resource type for a review.<br>
@@ -120,27 +115,24 @@
"type": "A String", # Source type for this review. Possible values are EDITORIAL, WEB_USER or GOOGLE_USER.<br>
"fullTextUrl": "A String", # URL for the full review text, for reviews gathered from the web.<br>
},<br>
+ "isPurchased": True or False, # Whether or not this volume was purchased by the authenticated user making the request. (In LITE projection.)<br>
+ "readingPosition": { # The user's current reading position in the volume, if one is available. (In LITE projection.)<br>
+ "kind": "books#readingPosition", # Resource type for a reading position.<br>
+ "gbImagePosition": "A String", # Position in a volume for image-based content.<br>
+ "epubCfiPosition": "A String", # Position in an EPUB as a CFI.<br>
+ "updated": "A String", # Timestamp when this reading position was last updated (formatted UTC timestamp with millisecond resolution).<br>
+ "volumeId": "A String", # Volume id associated with this reading position.<br>
+ "pdfPosition": "A String", # Position in a PDF file.<br>
+ "gbTextPosition": "A String", # Position in a volume for text-based content.<br>
+ },<br>
+ "isPreordered": True or False, # Whether or not this volume was pre-ordered by the authenticated user making the request. (In LITE projection.)<br>
},<br>
"volumeInfo": { # General volume information.<br>
+ "publisher": "A String", # Publisher of this volume. (In LITE projection.)<br>
"subtitle": "A String", # Volume subtitle. (In LITE projection.)<br>
- "pageCount": 42, # Total number of pages.<br>
- "mainCategory": "A String", # The main category to which this volume belongs. It will be the category from the categories list returned below that has the highest weight.<br>
- "dimensions": { # Physical dimensions of this volume.<br>
- "width": "A String", # Width of this volume (in cm).<br>
- "thickness": "A String", # Thickness of this volume (in cm).<br>
- "height": "A String", # Height or length of this volume (in cm).<br>
- },<br>
- "title": "A String", # Volume title. (In LITE projection.)<br>
- "contentVersion": "A String", # An identifier for the version of the volume content (text & images). (In LITE projection)<br>
- "industryIdentifiers": [ # Industry standard identifiers for this volume.<br>
- {<br>
- "identifier": "A String", # Industry specific volume identifier.<br>
- "type": "A String", # Identifier type. Possible values are ISBN_10, ISBN_13, ISSN and OTHER.<br>
- },<br>
- ],<br>
- "canonicalVolumeLink": "A String", # Canonical URL for a volume. (In LITE projection.)<br>
"description": "A String", # A synopsis of the volume. The text of the description is formatted in HTML and includes simple formatting elements, such as b, i, and br tags. (In LITE projection.)<br>
- "publishedDate": "A String", # Date of publication. (In LITE projection.)<br>
+ "language": "A String", # Best language for this volume (based on content). It is the two-letter ISO 639-1 code such as 'fr', 'en', etc.<br>
+ "pageCount": 42, # Total number of pages.<br>
"imageLinks": { # A list of image links for all the sizes that are available. (In LITE projection.)<br>
"medium": "A String", # Image link for medium size (width of ~575 pixels). (In LITE projection)<br>
"smallThumbnail": "A String", # Image link for small thumbnail size (width of ~80 pixels). (In LITE projection)<br>
@@ -149,21 +141,33 @@
"small": "A String", # Image link for small size (width of ~300 pixels). (In LITE projection)<br>
"thumbnail": "A String", # Image link for thumbnail size (width of ~128 pixels). (In LITE projection)<br>
},<br>
+ "publishedDate": "A String", # Date of publication. (In LITE projection.)<br>
+ "previewLink": "A String", # URL to preview this volume on the Google Books site.<br>
+ "printType": "A String", # Type of publication of this volume. Possible values are BOOK or MAGAZINE.<br>
+ "ratingsCount": 42, # The number of review ratings for this volume.<br>
+ "mainCategory": "A String", # The main category to which this volume belongs. It will be the category from the categories list returned below that has the highest weight.<br>
+ "dimensions": { # Physical dimensions of this volume.<br>
+ "width": "A String", # Width of this volume (in cm).<br>
+ "thickness": "A String", # Thickness of this volume (in cm).<br>
+ "height": "A String", # Height or length of this volume (in cm).<br>
+ },<br>
+ "contentVersion": "A String", # An identifier for the version of the volume content (text & images). (In LITE projection)<br>
+ "industryIdentifiers": [ # Industry standard identifiers for this volume.<br>
+ {<br>
+ "identifier": "A String", # Industry specific volume identifier.<br>
+ "type": "A String", # Identifier type. Possible values are ISBN_10, ISBN_13, ISSN and OTHER.<br>
+ },<br>
+ ],<br>
"authors": [ # The names of the authors and/or editors for this volume. (In LITE projection)<br>
"A String",<br>
],<br>
+ "title": "A String", # Volume title. (In LITE projection.)<br>
+ "canonicalVolumeLink": "A String", # Canonical URL for a volume. (In LITE projection.)<br>
+ "infoLink": "A String", # URL to view information about this volume on the Google Books site. (In LITE projection)<br>
"categories": [ # A list of subject categories, such as "Fiction", "Suspense", etc.<br>
"A String",<br>
],<br>
- "publisher": "A String", # Publisher of this volume. (In LITE projection.)<br>
- "language": "A String", # Best language for this volume (based on content). It is the two-letter ISO 639-1 code such as 'fr', 'en', etc.<br>
- "previewLink": "A String", # URL to preview this volume on the Google Books site.<br>
- "printType": "A String", # Type of publication of this volume. Possible values are BOOK or MAGAZINE.<br>
- "showReviewsLink": "A String", # URL to show reviews for this volume<br>
- "writeReviewLink": "A String", # URL to write a review for this volume<br>
"averageRating": 3.14, # The mean review rating for this volume. (min = 1.0, max = 5.0)<br>
- "infoLink": "A String", # URL to view information about this volume on the Google Books site. (In LITE projection)<br>
- "ratingsCount": 42, # The number of review ratings for this volume.<br>
},<br>
"id": "A String", # Unique identifier for a volume. (In LITE projection.)<br>
"selfLink": "A String", # URL to this resource. (In LITE projection.)<br>
diff --git a/docs/dyn/books.v1.mylibrary.readingpositions.html b/docs/dyn/books.v1.mylibrary.readingpositions.html
index ff0fa78..db60790 100644
--- a/docs/dyn/books.v1.mylibrary.readingpositions.html
+++ b/docs/dyn/books.v1.mylibrary.readingpositions.html
@@ -17,10 +17,13 @@
<dl><dt><a name="Resource-get"><strong>get</strong></a> = method(self, **kwargs)</dt><dd><tt>Retrieves my reading position information for a volume.<br>
<br>
Args:<br>
+ pp: string, A parameter<br>
+ trace: string, A parameter<br>
source: string, String to identify the originator of this request.<br>
- country: string, ISO-3166-1 code to override the IP-based location.<br>
volumeId: string, ID of volume for which to retrieve a reading position. (required)<br>
+ strict: string, A parameter<br>
contentVersion: string, Volume content version for which this reading position is requested.<br>
+ userip: string, A parameter<br>
<br>
Returns:<br>
An object of the form<br>
@@ -38,12 +41,15 @@
<dl><dt><a name="Resource-setPosition"><strong>setPosition</strong></a> = method(self, **kwargs)</dt><dd><tt>Sets my reading position information for a volume.<br>
<br>
Args:<br>
+ pp: string, A parameter<br>
+ trace: string, A parameter<br>
source: string, String to identify the originator of this request.<br>
- volumeId: string, ID of volume for which to update the reading position. (required)<br>
- contentVersion: string, Volume content version for which this reading position applies.<br>
- country: string, ISO-3166-1 code to override the IP-based location.<br>
- position: string, Position string for the new volume reading position. (required)<br>
timestamp: string, <a href="http://www.rfc-editor.org/rfc/rfc3339.txt">RFC 3339</a> UTC format timestamp associated with this reading position. (required)<br>
+ volumeId: string, ID of volume for which to update the reading position. (required)<br>
+ strict: string, A parameter<br>
+ contentVersion: string, Volume content version for which this reading position applies.<br>
+ userip: string, A parameter<br>
+ position: string, Position string for the new volume reading position. (required)<br>
action: string, Action that caused this reading position to be set.<br>
Allowed values<br>
bookmark - User chose bookmark within volume.<br>
diff --git a/docs/dyn/books.v1.volumes.associated.html b/docs/dyn/books.v1.volumes.associated.html
new file mode 100644
index 0000000..9b7e53d
--- /dev/null
+++ b/docs/dyn/books.v1.volumes.associated.html
@@ -0,0 +1,195 @@
+
+<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
+<html><head><title>Python: class Resource</title>
+</head><body bgcolor="#f0f0f8">
+<p>
+<table width="100%" cellspacing=0 cellpadding=2 border=0 summary="section">
+<tr bgcolor="#ffc8d8">
+<td colspan=3 valign=bottom> <br>
+<font color="#000000" face="helvetica, arial"><a name="Resource">class <strong>Resource</strong></a>(<a href="__builtin__.html#object">__builtin__.object</a>)</font></td></tr>
+
+<tr bgcolor="#ffc8d8"><td rowspan=2><tt> </tt></td>
+<td colspan=2><tt>A class for interacting with a resource.<br> </tt></td></tr>
+<tr><td> </td>
+<td width="100%">Methods defined here:<br>
+<dl><dt><a name="Resource-__init__"><strong>__init__</strong></a>(self)</dt></dl>
+
+<dl><dt><a name="Resource-list"><strong>list</strong></a> = method(self, **kwargs)</dt><dd><tt>Return a list of associated books.<br>
+ <br>
+Args:<br>
+ filter: string, Filter search results.<br>
+ Allowed values<br>
+ ebooks - All Google eBooks.<br>
+ free-ebooks - Google eBook with full volume text viewability.<br>
+ full - Public can view entire volume text.<br>
+ paid-ebooks - Google eBook with a price.<br>
+ partial - Public able to see parts of text.<br>
+ pp: string, A parameter<br>
+ projection: string, Restrict information returned to a set of selected fields.<br>
+ Allowed values<br>
+ full - Includes all volume data.<br>
+ lite - Includes a subset of fields in volumeInfo and accessInfo.<br>
+ source: string, String to identify the originator of this request.<br>
+ volumeId: string, ID of the source volume. (required)<br>
+ maxResults: integer, Maximum number of results to return.<br>
+ strict: string, A parameter<br>
+ startIndex: integer, Index of the first result to return (starts at 0)<br>
+ userip: string, A parameter<br>
+ trace: string, A parameter<br>
+ association: string, Association type.<br>
+ Allowed values<br>
+ complementary - Books that are complementary for additional reading.<br>
+ <br>
+Returns:<br>
+ An object of the form<br>
+ <br>
+ {<br>
+ "totalItems": 42, # Total number of volumes found. This might be greater than the number of volumes returned in this response if results have been paginated.<br>
+ "items": [ # A list of volumes.<br>
+ {<br>
+ "kind": "books#volume", # Resource type for a volume. (In LITE projection.)<br>
+ "accessInfo": { # Any information about a volume related to reading or obtaining that volume text. This information can depend on country (books may be public domain in one country but not in another, e.g.).<br>
+ "webReaderLink": "A String", # URL to read this volume on the Google Books site. Link will not allow users to read non-viewable volumes.<br>
+ "publicDomain": True or False, # Whether or not this book is public domain in the country listed above.<br>
+ "embeddable": True or False, # Whether this volume can be embedded in a viewport using the Embedded Viewer API.<br>
+ "downloadAccess": { # Information about a volume's download license access restrictions.<br>
+ "nonce": "A String", # Client nonce for verification. Download access and client-validation only.<br>
+ "kind": "books#downloadAccessRestriction", # Resource type.<br>
+ "justAcquired": True or False, # If deviceAllowed, whether access was just acquired with this request.<br>
+ "maxDownloadDevices": 42, # If restricted, the maximum number of content download licenses for this volume.<br>
+ "downloadsAcquired": 42, # If restricted, the number of content download licenses already acquired (including the requesting client, if licensed).<br>
+ "signature": "A String", # Response signature.<br>
+ "volumeId": "A String", # Identifies the volume for which this entry applies.<br>
+ "deviceAllowed": True or False, # If restricted, whether access is granted for this (user, device, volume).<br>
+ "source": "A String", # Client app identifier for verification. Download access and client-validation only.<br>
+ "restricted": True or False, # Whether this volume has any download access restrictions.<br>
+ "reasonCode": "A String", # Error/warning reason code. Additional codes may be added in the future. 0 OK 100 ACCESS_DENIED_PUBLISHER_LIMIT 101 ACCESS_DENIED_LIMIT 200 WARNING_USED_LAST_ACCESS<br>
+ "message": "A String", # Error/warning message.<br>
+ },<br>
+ "country": "A String", # The two-letter ISO_3166-1 country code for which this access information is valid. (In LITE projection.)<br>
+ "viewOrderUrl": "A String", # For ordered but not yet processed orders, we give a URL that can be used to go to the appropriate Google Wallet page.<br>
+ "textToSpeechPermission": "A String", # Whether text-to-speech is permitted for this volume. Values can be ALLOWED, ALLOWED_FOR_ACCESSIBILITY, or NOT_ALLOWED.<br>
+ "pdf": { # Information about pdf content. (In LITE projection.)<br>
+ "isAvailable": True or False, # Is a scanned image pdf available either as public domain or for purchase. (In LITE projection.)<br>
+ "downloadLink": "A String", # URL to download pdf. (In LITE projection.)<br>
+ "acsTokenLink": "A String", # URL to retrieve ACS token for pdf download. (In LITE projection.)<br>
+ },<br>
+ "viewability": "A String", # The read access of a volume. Possible values are PARTIAL, ALL_PAGES, NO_PAGES or UNKNOWN. This value depends on the country listed above. A value of PARTIAL means that the publisher has allowed some portion of the volume to be viewed publicly, without purchase. This can apply to eBooks as well as non-eBooks. Public domain books will always have a value of ALL_PAGES.<br>
+ "epub": { # Information about epub content. (In LITE projection.)<br>
+ "isAvailable": True or False, # Is a flowing text epub available either as public domain or for purchase. (In LITE projection.)<br>
+ "downloadLink": "A String", # URL to download epub. (In LITE projection.)<br>
+ "acsTokenLink": "A String", # URL to retrieve ACS token for epub download. (In LITE projection.)<br>
+ },<br>
+ "accessViewStatus": "A String", # Combines the access and viewability of this volume into a single status field for this user. Values can be FULL_PURCHASED, FULL_PUBLIC_DOMAIN, SAMPLE or NONE. (In LITE projection.)<br>
+ },<br>
+ "searchInfo": { # Search result information related to this volume.<br>
+ "textSnippet": "A String", # A text snippet containing the search query.<br>
+ },<br>
+ "saleInfo": { # Any information about a volume related to the eBookstore and/or purchaseability. This information can depend on the country where the request originates from (i.e. books may not be for sale in certain countries).<br>
+ "country": "A String", # The two-letter ISO_3166-1 country code for which this sale information is valid. (In LITE projection.)<br>
+ "retailPrice": { # The actual selling price of the book. This is the same as the suggested retail or list price unless there are offers or discounts on this volume. (In LITE projection.)<br>
+ "amount": 3.14, # Amount in the currency listed below. (In LITE projection.)<br>
+ "currencyCode": "A String", # An ISO 4217, three-letter currency code. (In LITE projection.)<br>
+ },<br>
+ "isEbook": True or False, # Whether or not this volume is an eBook (can be added to the My eBooks shelf).<br>
+ "saleability": "A String", # Whether or not this book is available for sale or offered for free in the Google eBookstore for the country listed above. Possible values are FOR_SALE, FREE, NOT_FOR_SALE, or FOR_PREORDER.<br>
+ "buyLink": "A String", # URL to purchase this volume on the Google Books site. (In LITE projection)<br>
+ "onSaleDate": "A String", # The date on which this book is available for sale.<br>
+ "listPrice": { # Suggested retail price. (In LITE projection.)<br>
+ "amount": 3.14, # Amount in the currency listed below. (In LITE projection.)<br>
+ "currencyCode": "A String", # An ISO 4217, three-letter currency code. (In LITE projection.)<br>
+ },<br>
+ },<br>
+ "etag": "A String", # Opaque identifier for a specific version of a volume resource. (In LITE projection)<br>
+ "userInfo": { # User specific information related to this volume. (e.g. page this user last read or whether they purchased this book)<br>
+ "isInMyBooks": True or False, # Whether or not this volume is currently in "my books."<br>
+ "updated": "A String", # Timestamp when this volume was last modified by a user action, such as a reading position update, volume purchase or writing a review. (<a href="http://www.rfc-editor.org/rfc/rfc3339.txt">RFC 3339</a> UTC date-time format).<br>
+ "review": { # This user's review of this volume, if one exists.<br>
+ "rating": "A String", # Star rating for this review. Possible values are ONE, TWO, THREE, FOUR, FIVE or NOT_RATED.<br>
+ "kind": "books#review", # Resource type for a review.<br>
+ "author": { # Author of this review.<br>
+ "displayName": "A String", # Name of this person.<br>
+ },<br>
+ "title": "A String", # Title for this review.<br>
+ "volumeId": "A String", # Volume that this review is for.<br>
+ "content": "A String", # Review text.<br>
+ "source": { # Information regarding the source of this review, when the review is not from a Google Books user.<br>
+ "extraDescription": "A String", # Extra text about the source of the review.<br>
+ "url": "A String", # URL of the source of the review.<br>
+ "description": "A String", # Name of the source.<br>
+ },<br>
+ "date": "A String", # Date of this review.<br>
+ "type": "A String", # Source type for this review. Possible values are EDITORIAL, WEB_USER or GOOGLE_USER.<br>
+ "fullTextUrl": "A String", # URL for the full review text, for reviews gathered from the web.<br>
+ },<br>
+ "isPurchased": True or False, # Whether or not this volume was purchased by the authenticated user making the request. (In LITE projection.)<br>
+ "readingPosition": { # The user's current reading position in the volume, if one is available. (In LITE projection.)<br>
+ "kind": "books#readingPosition", # Resource type for a reading position.<br>
+ "gbImagePosition": "A String", # Position in a volume for image-based content.<br>
+ "epubCfiPosition": "A String", # Position in an EPUB as a CFI.<br>
+ "updated": "A String", # Timestamp when this reading position was last updated (formatted UTC timestamp with millisecond resolution).<br>
+ "volumeId": "A String", # Volume id associated with this reading position.<br>
+ "pdfPosition": "A String", # Position in a PDF file.<br>
+ "gbTextPosition": "A String", # Position in a volume for text-based content.<br>
+ },<br>
+ "isPreordered": True or False, # Whether or not this volume was pre-ordered by the authenticated user making the request. (In LITE projection.)<br>
+ },<br>
+ "volumeInfo": { # General volume information.<br>
+ "publisher": "A String", # Publisher of this volume. (In LITE projection.)<br>
+ "subtitle": "A String", # Volume subtitle. (In LITE projection.)<br>
+ "description": "A String", # A synopsis of the volume. The text of the description is formatted in HTML and includes simple formatting elements, such as b, i, and br tags. (In LITE projection.)<br>
+ "language": "A String", # Best language for this volume (based on content). It is the two-letter ISO 639-1 code such as 'fr', 'en', etc.<br>
+ "pageCount": 42, # Total number of pages.<br>
+ "imageLinks": { # A list of image links for all the sizes that are available. (In LITE projection.)<br>
+ "medium": "A String", # Image link for medium size (width of ~575 pixels). (In LITE projection)<br>
+ "smallThumbnail": "A String", # Image link for small thumbnail size (width of ~80 pixels). (In LITE projection)<br>
+ "large": "A String", # Image link for large size (width of ~800 pixels). (In LITE projection)<br>
+ "extraLarge": "A String", # Image link for extra large size (width of ~1280 pixels). (In LITE projection)<br>
+ "small": "A String", # Image link for small size (width of ~300 pixels). (In LITE projection)<br>
+ "thumbnail": "A String", # Image link for thumbnail size (width of ~128 pixels). (In LITE projection)<br>
+ },<br>
+ "publishedDate": "A String", # Date of publication. (In LITE projection.)<br>
+ "previewLink": "A String", # URL to preview this volume on the Google Books site.<br>
+ "printType": "A String", # Type of publication of this volume. Possible values are BOOK or MAGAZINE.<br>
+ "ratingsCount": 42, # The number of review ratings for this volume.<br>
+ "mainCategory": "A String", # The main category to which this volume belongs. It will be the category from the categories list returned below that has the highest weight.<br>
+ "dimensions": { # Physical dimensions of this volume.<br>
+ "width": "A String", # Width of this volume (in cm).<br>
+ "thickness": "A String", # Thickness of this volume (in cm).<br>
+ "height": "A String", # Height or length of this volume (in cm).<br>
+ },<br>
+ "contentVersion": "A String", # An identifier for the version of the volume content (text & images). (In LITE projection)<br>
+ "industryIdentifiers": [ # Industry standard identifiers for this volume.<br>
+ {<br>
+ "identifier": "A String", # Industry specific volume identifier.<br>
+ "type": "A String", # Identifier type. Possible values are ISBN_10, ISBN_13, ISSN and OTHER.<br>
+ },<br>
+ ],<br>
+ "authors": [ # The names of the authors and/or editors for this volume. (In LITE projection)<br>
+ "A String",<br>
+ ],<br>
+ "title": "A String", # Volume title. (In LITE projection.)<br>
+ "canonicalVolumeLink": "A String", # Canonical URL for a volume. (In LITE projection.)<br>
+ "infoLink": "A String", # URL to view information about this volume on the Google Books site. (In LITE projection)<br>
+ "categories": [ # A list of subject categories, such as "Fiction", "Suspense", etc.<br>
+ "A String",<br>
+ ],<br>
+ "averageRating": 3.14, # The mean review rating for this volume. (min = 1.0, max = 5.0)<br>
+ },<br>
+ "id": "A String", # Unique identifier for a volume. (In LITE projection.)<br>
+ "selfLink": "A String", # URL to this resource. (In LITE projection.)<br>
+ },<br>
+ ],<br>
+ "kind": "books#volumes", # Resource type.<br>
+ }</tt></dd></dl>
+
+<hr>
+Data descriptors defined here:<br>
+<dl><dt><strong>__dict__</strong></dt>
+<dd><tt>dictionary for instance variables (if defined)</tt></dd>
+</dl>
+<dl><dt><strong>__weakref__</strong></dt>
+<dd><tt>list of weak references to the object (if defined)</tt></dd>
+</dl>
+</td></tr></table>
+</body></html>
\ No newline at end of file
diff --git a/docs/dyn/books.v1.volumes.html b/docs/dyn/books.v1.volumes.html
index 5eff518..a01904c 100644
--- a/docs/dyn/books.v1.volumes.html
+++ b/docs/dyn/books.v1.volumes.html
@@ -14,16 +14,22 @@
<td width="100%">Methods defined here:<br>
<dl><dt><a name="Resource-__init__"><strong>__init__</strong></a>(self)</dt></dl>
+<dl><dt><a name="Resource-associated"><strong><a href="books.v1.volumes.associated.html">associated</a></strong></a> = methodResource(self)</dt><dd><tt>A collection resource.</tt></dd></dl>
+
<dl><dt><a name="Resource-get"><strong>get</strong></a> = method(self, **kwargs)</dt><dd><tt>Gets volume information for a single volume.<br>
<br>
Args:<br>
+ pp: string, A parameter<br>
projection: string, Restrict information returned to a set of selected fields.<br>
Allowed values<br>
full - Includes all volume data.<br>
lite - Includes a subset of fields in volumeInfo and accessInfo.<br>
+ trace: string, A parameter<br>
source: string, String to identify the originator of this request.<br>
country: string, ISO-3166-1 code to override the IP-based location.<br>
volumeId: string, ID of volume to retrieve. (required)<br>
+ strict: string, A parameter<br>
+ userip: string, A parameter<br>
partner: string, Brand results for partner ID.<br>
<br>
Returns:<br>
@@ -50,6 +56,7 @@
"message": "A String", # Error/warning message.<br>
},<br>
"country": "A String", # The two-letter ISO_3166-1 country code for which this access information is valid. (In LITE projection.)<br>
+ "viewOrderUrl": "A String", # For ordered but not yet processed orders, we give a URL that can be used to go to the appropriate Google Wallet page.<br>
"textToSpeechPermission": "A String", # Whether text-to-speech is permitted for this volume. Values can be ALLOWED, ALLOWED_FOR_ACCESSIBILITY, or NOT_ALLOWED.<br>
"pdf": { # Information about pdf content. (In LITE projection.)<br>
"isAvailable": True or False, # Is a scanned image pdf available either as public domain or for purchase. (In LITE projection.)<br>
@@ -84,18 +91,8 @@
},<br>
"etag": "A String", # Opaque identifier for a specific version of a volume resource. (In LITE projection)<br>
"userInfo": { # User specific information related to this volume. (e.g. page this user last read or whether they purchased this book)<br>
+ "isInMyBooks": True or False, # Whether or not this volume is currently in "my books."<br>
"updated": "A String", # Timestamp when this volume was last modified by a user action, such as a reading position update, volume purchase or writing a review. (<a href="http://www.rfc-editor.org/rfc/rfc3339.txt">RFC 3339</a> UTC date-time format).<br>
- "isPreordered": True or False, # Whether or not this volume was pre-ordered by the authenticated user making the request. (In LITE projection.)<br>
- "isPurchased": True or False, # Whether or not this volume was purchased by the authenticated user making the request. (In LITE projection.)<br>
- "readingPosition": { # The user's current reading position in the volume, if one is available. (In LITE projection.)<br>
- "kind": "books#readingPosition", # Resource type for a reading position.<br>
- "gbImagePosition": "A String", # Position in a volume for image-based content.<br>
- "epubCfiPosition": "A String", # Position in an EPUB as a CFI.<br>
- "updated": "A String", # Timestamp when this reading position was last updated (formatted UTC timestamp with millisecond resolution).<br>
- "volumeId": "A String", # Volume id associated with this reading position.<br>
- "pdfPosition": "A String", # Position in a PDF file.<br>
- "gbTextPosition": "A String", # Position in a volume for text-based content.<br>
- },<br>
"review": { # This user's review of this volume, if one exists.<br>
"rating": "A String", # Star rating for this review. Possible values are ONE, TWO, THREE, FOUR, FIVE or NOT_RATED.<br>
"kind": "books#review", # Resource type for a review.<br>
@@ -114,27 +111,24 @@
"type": "A String", # Source type for this review. Possible values are EDITORIAL, WEB_USER or GOOGLE_USER.<br>
"fullTextUrl": "A String", # URL for the full review text, for reviews gathered from the web.<br>
},<br>
+ "isPurchased": True or False, # Whether or not this volume was purchased by the authenticated user making the request. (In LITE projection.)<br>
+ "readingPosition": { # The user's current reading position in the volume, if one is available. (In LITE projection.)<br>
+ "kind": "books#readingPosition", # Resource type for a reading position.<br>
+ "gbImagePosition": "A String", # Position in a volume for image-based content.<br>
+ "epubCfiPosition": "A String", # Position in an EPUB as a CFI.<br>
+ "updated": "A String", # Timestamp when this reading position was last updated (formatted UTC timestamp with millisecond resolution).<br>
+ "volumeId": "A String", # Volume id associated with this reading position.<br>
+ "pdfPosition": "A String", # Position in a PDF file.<br>
+ "gbTextPosition": "A String", # Position in a volume for text-based content.<br>
+ },<br>
+ "isPreordered": True or False, # Whether or not this volume was pre-ordered by the authenticated user making the request. (In LITE projection.)<br>
},<br>
"volumeInfo": { # General volume information.<br>
+ "publisher": "A String", # Publisher of this volume. (In LITE projection.)<br>
"subtitle": "A String", # Volume subtitle. (In LITE projection.)<br>
- "pageCount": 42, # Total number of pages.<br>
- "mainCategory": "A String", # The main category to which this volume belongs. It will be the category from the categories list returned below that has the highest weight.<br>
- "dimensions": { # Physical dimensions of this volume.<br>
- "width": "A String", # Width of this volume (in cm).<br>
- "thickness": "A String", # Thickness of this volume (in cm).<br>
- "height": "A String", # Height or length of this volume (in cm).<br>
- },<br>
- "title": "A String", # Volume title. (In LITE projection.)<br>
- "contentVersion": "A String", # An identifier for the version of the volume content (text & images). (In LITE projection)<br>
- "industryIdentifiers": [ # Industry standard identifiers for this volume.<br>
- {<br>
- "identifier": "A String", # Industry specific volume identifier.<br>
- "type": "A String", # Identifier type. Possible values are ISBN_10, ISBN_13, ISSN and OTHER.<br>
- },<br>
- ],<br>
- "canonicalVolumeLink": "A String", # Canonical URL for a volume. (In LITE projection.)<br>
"description": "A String", # A synopsis of the volume. The text of the description is formatted in HTML and includes simple formatting elements, such as b, i, and br tags. (In LITE projection.)<br>
- "publishedDate": "A String", # Date of publication. (In LITE projection.)<br>
+ "language": "A String", # Best language for this volume (based on content). It is the two-letter ISO 639-1 code such as 'fr', 'en', etc.<br>
+ "pageCount": 42, # Total number of pages.<br>
"imageLinks": { # A list of image links for all the sizes that are available. (In LITE projection.)<br>
"medium": "A String", # Image link for medium size (width of ~575 pixels). (In LITE projection)<br>
"smallThumbnail": "A String", # Image link for small thumbnail size (width of ~80 pixels). (In LITE projection)<br>
@@ -143,21 +137,33 @@
"small": "A String", # Image link for small size (width of ~300 pixels). (In LITE projection)<br>
"thumbnail": "A String", # Image link for thumbnail size (width of ~128 pixels). (In LITE projection)<br>
},<br>
+ "publishedDate": "A String", # Date of publication. (In LITE projection.)<br>
+ "previewLink": "A String", # URL to preview this volume on the Google Books site.<br>
+ "printType": "A String", # Type of publication of this volume. Possible values are BOOK or MAGAZINE.<br>
+ "ratingsCount": 42, # The number of review ratings for this volume.<br>
+ "mainCategory": "A String", # The main category to which this volume belongs. It will be the category from the categories list returned below that has the highest weight.<br>
+ "dimensions": { # Physical dimensions of this volume.<br>
+ "width": "A String", # Width of this volume (in cm).<br>
+ "thickness": "A String", # Thickness of this volume (in cm).<br>
+ "height": "A String", # Height or length of this volume (in cm).<br>
+ },<br>
+ "contentVersion": "A String", # An identifier for the version of the volume content (text & images). (In LITE projection)<br>
+ "industryIdentifiers": [ # Industry standard identifiers for this volume.<br>
+ {<br>
+ "identifier": "A String", # Industry specific volume identifier.<br>
+ "type": "A String", # Identifier type. Possible values are ISBN_10, ISBN_13, ISSN and OTHER.<br>
+ },<br>
+ ],<br>
"authors": [ # The names of the authors and/or editors for this volume. (In LITE projection)<br>
"A String",<br>
],<br>
+ "title": "A String", # Volume title. (In LITE projection.)<br>
+ "canonicalVolumeLink": "A String", # Canonical URL for a volume. (In LITE projection.)<br>
+ "infoLink": "A String", # URL to view information about this volume on the Google Books site. (In LITE projection)<br>
"categories": [ # A list of subject categories, such as "Fiction", "Suspense", etc.<br>
"A String",<br>
],<br>
- "publisher": "A String", # Publisher of this volume. (In LITE projection.)<br>
- "language": "A String", # Best language for this volume (based on content). It is the two-letter ISO 639-1 code such as 'fr', 'en', etc.<br>
- "previewLink": "A String", # URL to preview this volume on the Google Books site.<br>
- "printType": "A String", # Type of publication of this volume. Possible values are BOOK or MAGAZINE.<br>
- "showReviewsLink": "A String", # URL to show reviews for this volume<br>
- "writeReviewLink": "A String", # URL to write a review for this volume<br>
"averageRating": 3.14, # The mean review rating for this volume. (min = 1.0, max = 5.0)<br>
- "infoLink": "A String", # URL to view information about this volume on the Google Books site. (In LITE projection)<br>
- "ratingsCount": 42, # The number of review ratings for this volume.<br>
},<br>
"id": "A String", # Unique identifier for a volume. (In LITE projection.)<br>
"selfLink": "A String", # URL to this resource. (In LITE projection.)<br>
@@ -170,6 +176,32 @@
Allowed values<br>
newest - Most recently published.<br>
relevance - Relevance to search terms.<br>
+ projection: string, Restrict information returned to a set of selected fields.<br>
+ Allowed values<br>
+ full - Includes all volume data.<br>
+ lite - Includes a subset of fields in volumeInfo and accessInfo.<br>
+ showPreorders: boolean, Set to true to show books available for preorder. Defaults to false.<br>
+ download: string, Restrict to volumes by download availability.<br>
+ Allowed values<br>
+ epub - All volumes with epub.<br>
+ startIndex: integer, Index of the first result to return (starts at 0)<br>
+ partner: string, Restrict and brand results for partner ID.<br>
+ q: string, Full-text search query string. (required)<br>
+ pp: string, A parameter<br>
+ trace: string, A parameter<br>
+ source: string, String to identify the originator of this request.<br>
+ strict: string, A parameter<br>
+ maxResults: integer, Maximum number of results to return.<br>
+ libraryRestrict: string, Restrict search to this user's library.<br>
+ Allowed values<br>
+ my-library - Restrict to the user's library, any shelf.<br>
+ no-restrict - Do not restrict based on user's library.<br>
+ langRestrict: string, Restrict results to books with this language code.<br>
+ printType: string, Restrict to books or magazines.<br>
+ Allowed values<br>
+ all - All volume content types.<br>
+ books - Just books.<br>
+ magazines - Just magazines.<br>
filter: string, Filter search results.<br>
Allowed values<br>
ebooks - All Google eBooks.<br>
@@ -177,30 +209,7 @@
full - Public can view entire volume text.<br>
paid-ebooks - Google eBook with a price.<br>
partial - Public able to see parts of text.<br>
- projection: string, Restrict information returned to a set of selected fields.<br>
- Allowed values<br>
- full - Includes all volume data.<br>
- lite - Includes a subset of fields in volumeInfo and accessInfo.<br>
- libraryRestrict: string, Restrict search to this user's library.<br>
- Allowed values<br>
- my-library - Restrict to the user's library, any shelf.<br>
- no-restrict - Do not restrict based on user's library.<br>
- source: string, String to identify the originator of this request.<br>
- langRestrict: string, Restrict results to books with this language code.<br>
- country: string, ISO-3166-1 code to override the IP-based location.<br>
- printType: string, Restrict to books or magazines.<br>
- Allowed values<br>
- all - All volume content types.<br>
- books - Just books.<br>
- magazines - Just magazines.<br>
- startIndex: integer, Index of the first result to return (starts at 0)<br>
- maxResults: integer, Maximum number of results to return.<br>
- q: string, Full-text search query string. (required)<br>
- partner: string, Restrict and brand results for partner ID.<br>
- download: string, Restrict to volumes by download availability.<br>
- Allowed values<br>
- epub - All volumes with epub.<br>
- showPreorders: boolean, Set to true to show books available for preorder. Defaults to false.<br>
+ userip: string, A parameter<br>
<br>
Returns:<br>
An object of the form<br>
@@ -229,6 +238,7 @@
"message": "A String", # Error/warning message.<br>
},<br>
"country": "A String", # The two-letter ISO_3166-1 country code for which this access information is valid. (In LITE projection.)<br>
+ "viewOrderUrl": "A String", # For ordered but not yet processed orders, we give a URL that can be used to go to the appropriate Google Wallet page.<br>
"textToSpeechPermission": "A String", # Whether text-to-speech is permitted for this volume. Values can be ALLOWED, ALLOWED_FOR_ACCESSIBILITY, or NOT_ALLOWED.<br>
"pdf": { # Information about pdf content. (In LITE projection.)<br>
"isAvailable": True or False, # Is a scanned image pdf available either as public domain or for purchase. (In LITE projection.)<br>
@@ -263,18 +273,8 @@
},<br>
"etag": "A String", # Opaque identifier for a specific version of a volume resource. (In LITE projection)<br>
"userInfo": { # User specific information related to this volume. (e.g. page this user last read or whether they purchased this book)<br>
+ "isInMyBooks": True or False, # Whether or not this volume is currently in "my books."<br>
"updated": "A String", # Timestamp when this volume was last modified by a user action, such as a reading position update, volume purchase or writing a review. (<a href="http://www.rfc-editor.org/rfc/rfc3339.txt">RFC 3339</a> UTC date-time format).<br>
- "isPreordered": True or False, # Whether or not this volume was pre-ordered by the authenticated user making the request. (In LITE projection.)<br>
- "isPurchased": True or False, # Whether or not this volume was purchased by the authenticated user making the request. (In LITE projection.)<br>
- "readingPosition": { # The user's current reading position in the volume, if one is available. (In LITE projection.)<br>
- "kind": "books#readingPosition", # Resource type for a reading position.<br>
- "gbImagePosition": "A String", # Position in a volume for image-based content.<br>
- "epubCfiPosition": "A String", # Position in an EPUB as a CFI.<br>
- "updated": "A String", # Timestamp when this reading position was last updated (formatted UTC timestamp with millisecond resolution).<br>
- "volumeId": "A String", # Volume id associated with this reading position.<br>
- "pdfPosition": "A String", # Position in a PDF file.<br>
- "gbTextPosition": "A String", # Position in a volume for text-based content.<br>
- },<br>
"review": { # This user's review of this volume, if one exists.<br>
"rating": "A String", # Star rating for this review. Possible values are ONE, TWO, THREE, FOUR, FIVE or NOT_RATED.<br>
"kind": "books#review", # Resource type for a review.<br>
@@ -293,27 +293,24 @@
"type": "A String", # Source type for this review. Possible values are EDITORIAL, WEB_USER or GOOGLE_USER.<br>
"fullTextUrl": "A String", # URL for the full review text, for reviews gathered from the web.<br>
},<br>
+ "isPurchased": True or False, # Whether or not this volume was purchased by the authenticated user making the request. (In LITE projection.)<br>
+ "readingPosition": { # The user's current reading position in the volume, if one is available. (In LITE projection.)<br>
+ "kind": "books#readingPosition", # Resource type for a reading position.<br>
+ "gbImagePosition": "A String", # Position in a volume for image-based content.<br>
+ "epubCfiPosition": "A String", # Position in an EPUB as a CFI.<br>
+ "updated": "A String", # Timestamp when this reading position was last updated (formatted UTC timestamp with millisecond resolution).<br>
+ "volumeId": "A String", # Volume id associated with this reading position.<br>
+ "pdfPosition": "A String", # Position in a PDF file.<br>
+ "gbTextPosition": "A String", # Position in a volume for text-based content.<br>
+ },<br>
+ "isPreordered": True or False, # Whether or not this volume was pre-ordered by the authenticated user making the request. (In LITE projection.)<br>
},<br>
"volumeInfo": { # General volume information.<br>
+ "publisher": "A String", # Publisher of this volume. (In LITE projection.)<br>
"subtitle": "A String", # Volume subtitle. (In LITE projection.)<br>
- "pageCount": 42, # Total number of pages.<br>
- "mainCategory": "A String", # The main category to which this volume belongs. It will be the category from the categories list returned below that has the highest weight.<br>
- "dimensions": { # Physical dimensions of this volume.<br>
- "width": "A String", # Width of this volume (in cm).<br>
- "thickness": "A String", # Thickness of this volume (in cm).<br>
- "height": "A String", # Height or length of this volume (in cm).<br>
- },<br>
- "title": "A String", # Volume title. (In LITE projection.)<br>
- "contentVersion": "A String", # An identifier for the version of the volume content (text & images). (In LITE projection)<br>
- "industryIdentifiers": [ # Industry standard identifiers for this volume.<br>
- {<br>
- "identifier": "A String", # Industry specific volume identifier.<br>
- "type": "A String", # Identifier type. Possible values are ISBN_10, ISBN_13, ISSN and OTHER.<br>
- },<br>
- ],<br>
- "canonicalVolumeLink": "A String", # Canonical URL for a volume. (In LITE projection.)<br>
"description": "A String", # A synopsis of the volume. The text of the description is formatted in HTML and includes simple formatting elements, such as b, i, and br tags. (In LITE projection.)<br>
- "publishedDate": "A String", # Date of publication. (In LITE projection.)<br>
+ "language": "A String", # Best language for this volume (based on content). It is the two-letter ISO 639-1 code such as 'fr', 'en', etc.<br>
+ "pageCount": 42, # Total number of pages.<br>
"imageLinks": { # A list of image links for all the sizes that are available. (In LITE projection.)<br>
"medium": "A String", # Image link for medium size (width of ~575 pixels). (In LITE projection)<br>
"smallThumbnail": "A String", # Image link for small thumbnail size (width of ~80 pixels). (In LITE projection)<br>
@@ -322,21 +319,33 @@
"small": "A String", # Image link for small size (width of ~300 pixels). (In LITE projection)<br>
"thumbnail": "A String", # Image link for thumbnail size (width of ~128 pixels). (In LITE projection)<br>
},<br>
+ "publishedDate": "A String", # Date of publication. (In LITE projection.)<br>
+ "previewLink": "A String", # URL to preview this volume on the Google Books site.<br>
+ "printType": "A String", # Type of publication of this volume. Possible values are BOOK or MAGAZINE.<br>
+ "ratingsCount": 42, # The number of review ratings for this volume.<br>
+ "mainCategory": "A String", # The main category to which this volume belongs. It will be the category from the categories list returned below that has the highest weight.<br>
+ "dimensions": { # Physical dimensions of this volume.<br>
+ "width": "A String", # Width of this volume (in cm).<br>
+ "thickness": "A String", # Thickness of this volume (in cm).<br>
+ "height": "A String", # Height or length of this volume (in cm).<br>
+ },<br>
+ "contentVersion": "A String", # An identifier for the version of the volume content (text & images). (In LITE projection)<br>
+ "industryIdentifiers": [ # Industry standard identifiers for this volume.<br>
+ {<br>
+ "identifier": "A String", # Industry specific volume identifier.<br>
+ "type": "A String", # Identifier type. Possible values are ISBN_10, ISBN_13, ISSN and OTHER.<br>
+ },<br>
+ ],<br>
"authors": [ # The names of the authors and/or editors for this volume. (In LITE projection)<br>
"A String",<br>
],<br>
+ "title": "A String", # Volume title. (In LITE projection.)<br>
+ "canonicalVolumeLink": "A String", # Canonical URL for a volume. (In LITE projection.)<br>
+ "infoLink": "A String", # URL to view information about this volume on the Google Books site. (In LITE projection)<br>
"categories": [ # A list of subject categories, such as "Fiction", "Suspense", etc.<br>
"A String",<br>
],<br>
- "publisher": "A String", # Publisher of this volume. (In LITE projection.)<br>
- "language": "A String", # Best language for this volume (based on content). It is the two-letter ISO 639-1 code such as 'fr', 'en', etc.<br>
- "previewLink": "A String", # URL to preview this volume on the Google Books site.<br>
- "printType": "A String", # Type of publication of this volume. Possible values are BOOK or MAGAZINE.<br>
- "showReviewsLink": "A String", # URL to show reviews for this volume<br>
- "writeReviewLink": "A String", # URL to write a review for this volume<br>
"averageRating": 3.14, # The mean review rating for this volume. (min = 1.0, max = 5.0)<br>
- "infoLink": "A String", # URL to view information about this volume on the Google Books site. (In LITE projection)<br>
- "ratingsCount": 42, # The number of review ratings for this volume.<br>
},<br>
"id": "A String", # Unique identifier for a volume. (In LITE projection.)<br>
"selfLink": "A String", # URL to this resource. (In LITE projection.)<br>
diff --git a/docs/dyn/calendar.v3.acl.html b/docs/dyn/calendar.v3.acl.html
index ebfe1a3..f9fe4fd 100644
--- a/docs/dyn/calendar.v3.acl.html
+++ b/docs/dyn/calendar.v3.acl.html
@@ -17,14 +17,22 @@
<dl><dt><a name="Resource-delete"><strong>delete</strong></a> = method(self, **kwargs)</dt><dd><tt>Deletes an access control rule.<br>
<br>
Args:<br>
+ pp: string, A parameter<br>
+ trace: string, A parameter<br>
ruleId: string, ACL rule identifier. (required)<br>
- calendarId: string, Calendar identifier. (required)</tt></dd></dl>
+ calendarId: string, Calendar identifier. (required)<br>
+ userip: string, A parameter<br>
+ strict: string, A parameter</tt></dd></dl>
<dl><dt><a name="Resource-get"><strong>get</strong></a> = method(self, **kwargs)</dt><dd><tt>Returns an access control rule.<br>
<br>
Args:<br>
+ pp: string, A parameter<br>
+ trace: string, A parameter<br>
ruleId: string, ACL rule identifier. (required)<br>
calendarId: string, Calendar identifier. (required)<br>
+ userip: string, A parameter<br>
+ strict: string, A parameter<br>
<br>
Returns:<br>
An object of the form<br>
@@ -75,7 +83,11 @@
"id": "A String", # Identifier of the ACL rule.<br>
}<br>
<br>
+ pp: string, A parameter<br>
+ trace: string, A parameter<br>
+ strict: string, A parameter<br>
calendarId: string, Calendar identifier. (required)<br>
+ userip: string, A parameter<br>
<br>
Returns:<br>
An object of the form<br>
@@ -103,7 +115,11 @@
<dl><dt><a name="Resource-list"><strong>list</strong></a> = method(self, **kwargs)</dt><dd><tt>Returns the rules in the access control list for the calendar.<br>
<br>
Args:<br>
+ pp: string, A parameter<br>
+ trace: string, A parameter<br>
+ strict: string, A parameter<br>
calendarId: string, Calendar identifier. (required)<br>
+ userip: string, A parameter<br>
<br>
Returns:<br>
An object of the form<br>
@@ -161,8 +177,12 @@
"id": "A String", # Identifier of the ACL rule.<br>
}<br>
<br>
+ pp: string, A parameter<br>
+ trace: string, A parameter<br>
ruleId: string, ACL rule identifier. (required)<br>
calendarId: string, Calendar identifier. (required)<br>
+ userip: string, A parameter<br>
+ strict: string, A parameter<br>
<br>
Returns:<br>
An object of the form<br>
@@ -213,8 +233,12 @@
"id": "A String", # Identifier of the ACL rule.<br>
}<br>
<br>
+ pp: string, A parameter<br>
+ trace: string, A parameter<br>
ruleId: string, ACL rule identifier. (required)<br>
calendarId: string, Calendar identifier. (required)<br>
+ userip: string, A parameter<br>
+ strict: string, A parameter<br>
<br>
Returns:<br>
An object of the form<br>
diff --git a/docs/dyn/calendar.v3.calendarList.html b/docs/dyn/calendar.v3.calendarList.html
index cd7d858..fdf538e 100644
--- a/docs/dyn/calendar.v3.calendarList.html
+++ b/docs/dyn/calendar.v3.calendarList.html
@@ -17,12 +17,20 @@
<dl><dt><a name="Resource-delete"><strong>delete</strong></a> = method(self, **kwargs)</dt><dd><tt>Deletes an entry on the user's calendar list.<br>
<br>
Args:<br>
- calendarId: string, Calendar identifier. (required)</tt></dd></dl>
+ pp: string, A parameter<br>
+ trace: string, A parameter<br>
+ strict: string, A parameter<br>
+ calendarId: string, Calendar identifier. (required)<br>
+ userip: string, A parameter</tt></dd></dl>
<dl><dt><a name="Resource-get"><strong>get</strong></a> = method(self, **kwargs)</dt><dd><tt>Returns an entry on the user's calendar list.<br>
<br>
Args:<br>
+ pp: string, A parameter<br>
+ trace: string, A parameter<br>
+ strict: string, A parameter<br>
calendarId: string, Calendar identifier. (required)<br>
+ userip: string, A parameter<br>
<br>
Returns:<br>
An object of the form<br>
@@ -89,6 +97,10 @@
"id": "A String", # Identifier of the calendar.<br>
}<br>
<br>
+ pp: string, A parameter<br>
+ trace: string, A parameter<br>
+ strict: string, A parameter<br>
+ userip: string, A parameter<br>
<br>
Returns:<br>
An object of the form<br>
@@ -124,6 +136,8 @@
<dl><dt><a name="Resource-list"><strong>list</strong></a> = method(self, **kwargs)</dt><dd><tt>Returns entries on the user's calendar list.<br>
<br>
Args:<br>
+ pp: string, A parameter<br>
+ trace: string, A parameter<br>
minAccessRole: string, The minimum access role for the user in the returned entires. Optional. The default is no restriction.<br>
Allowed values<br>
freeBusyReader - The user can read free/busy information.<br>
@@ -133,6 +147,8 @@
maxResults: integer, Maximum number of entries returned on one result page. Optional.<br>
pageToken: string, Token specifying which result page to return. Optional.<br>
showHidden: boolean, Whether to show hidden entries. Optional. The default is False.<br>
+ userip: string, A parameter<br>
+ strict: string, A parameter<br>
<br>
Returns:<br>
An object of the form<br>
@@ -216,7 +232,11 @@
"id": "A String", # Identifier of the calendar.<br>
}<br>
<br>
+ pp: string, A parameter<br>
+ trace: string, A parameter<br>
+ strict: string, A parameter<br>
calendarId: string, Calendar identifier. (required)<br>
+ userip: string, A parameter<br>
<br>
Returns:<br>
An object of the form<br>
@@ -283,7 +303,11 @@
"id": "A String", # Identifier of the calendar.<br>
}<br>
<br>
+ pp: string, A parameter<br>
+ trace: string, A parameter<br>
+ strict: string, A parameter<br>
calendarId: string, Calendar identifier. (required)<br>
+ userip: string, A parameter<br>
<br>
Returns:<br>
An object of the form<br>
diff --git a/docs/dyn/calendar.v3.calendars.html b/docs/dyn/calendar.v3.calendars.html
index 226c929..71ccb79 100644
--- a/docs/dyn/calendar.v3.calendars.html
+++ b/docs/dyn/calendar.v3.calendars.html
@@ -17,17 +17,29 @@
<dl><dt><a name="Resource-clear"><strong>clear</strong></a> = method(self, **kwargs)</dt><dd><tt>Clears a primary calendar. This operation deletes all data associated with the primary calendar of an account and cannot be undone.<br>
<br>
Args:<br>
- calendarId: string, Calendar identifier. (required)</tt></dd></dl>
+ pp: string, A parameter<br>
+ trace: string, A parameter<br>
+ strict: string, A parameter<br>
+ calendarId: string, Calendar identifier. (required)<br>
+ userip: string, A parameter</tt></dd></dl>
<dl><dt><a name="Resource-delete"><strong>delete</strong></a> = method(self, **kwargs)</dt><dd><tt>Deletes a secondary calendar.<br>
<br>
Args:<br>
- calendarId: string, Calendar identifier. (required)</tt></dd></dl>
+ pp: string, A parameter<br>
+ trace: string, A parameter<br>
+ strict: string, A parameter<br>
+ calendarId: string, Calendar identifier. (required)<br>
+ userip: string, A parameter</tt></dd></dl>
<dl><dt><a name="Resource-get"><strong>get</strong></a> = method(self, **kwargs)</dt><dd><tt>Returns metadata for a calendar.<br>
<br>
Args:<br>
+ pp: string, A parameter<br>
+ trace: string, A parameter<br>
+ strict: string, A parameter<br>
calendarId: string, Calendar identifier. (required)<br>
+ userip: string, A parameter<br>
<br>
Returns:<br>
An object of the form<br>
@@ -58,6 +70,10 @@
"id": "A String", # Identifier of the calendar.<br>
}<br>
<br>
+ pp: string, A parameter<br>
+ trace: string, A parameter<br>
+ strict: string, A parameter<br>
+ userip: string, A parameter<br>
<br>
Returns:<br>
An object of the form<br>
@@ -88,7 +104,11 @@
"id": "A String", # Identifier of the calendar.<br>
}<br>
<br>
+ pp: string, A parameter<br>
+ trace: string, A parameter<br>
+ strict: string, A parameter<br>
calendarId: string, Calendar identifier. (required)<br>
+ userip: string, A parameter<br>
<br>
Returns:<br>
An object of the form<br>
@@ -119,7 +139,11 @@
"id": "A String", # Identifier of the calendar.<br>
}<br>
<br>
+ pp: string, A parameter<br>
+ trace: string, A parameter<br>
+ strict: string, A parameter<br>
calendarId: string, Calendar identifier. (required)<br>
+ userip: string, A parameter<br>
<br>
Returns:<br>
An object of the form<br>
diff --git a/docs/dyn/calendar.v3.colors.html b/docs/dyn/calendar.v3.colors.html
index 7e7c652..cb373d7 100644
--- a/docs/dyn/calendar.v3.colors.html
+++ b/docs/dyn/calendar.v3.colors.html
@@ -17,6 +17,10 @@
<dl><dt><a name="Resource-get"><strong>get</strong></a> = method(self, **kwargs)</dt><dd><tt>Returns the color definitions for calendars and events.<br>
<br>
Args:<br>
+ pp: string, A parameter<br>
+ trace: string, A parameter<br>
+ strict: string, A parameter<br>
+ userip: string, A parameter<br>
<br>
Returns:<br>
An object of the form<br>
diff --git a/docs/dyn/calendar.v3.events.html b/docs/dyn/calendar.v3.events.html
index 5bb1a2d..bc84745 100644
--- a/docs/dyn/calendar.v3.events.html
+++ b/docs/dyn/calendar.v3.events.html
@@ -18,14 +18,22 @@
<br>
Args:<br>
eventId: string, Event identifier. (required)<br>
+ pp: string, A parameter<br>
+ trace: string, A parameter<br>
sendNotifications: boolean, Whether to send notifications about the deletion of the event. Optional. The default is False.<br>
- calendarId: string, Calendar identifier. (required)</tt></dd></dl>
+ calendarId: string, Calendar identifier. (required)<br>
+ userip: string, A parameter<br>
+ strict: string, A parameter</tt></dd></dl>
<dl><dt><a name="Resource-get"><strong>get</strong></a> = method(self, **kwargs)</dt><dd><tt>Returns an event.<br>
<br>
Args:<br>
eventId: string, Event identifier. (required)<br>
+ pp: string, A parameter<br>
+ trace: string, A parameter<br>
+ strict: string, A parameter<br>
calendarId: string, Calendar identifier. (required)<br>
+ userip: string, A parameter<br>
timeZone: string, Time zone used in the response. Optional. The default is the time zone of the calendar.<br>
maxAttendees: integer, The maximum number of attendees to include in the response. If there are more than the specified number of attendees, only the participant is returned. Optional.<br>
<br>
@@ -34,10 +42,12 @@
<br>
{<br>
"creator": { # The creator of the event. Read-only.<br>
+ "self": True or False, # Whether the creator corresponds to the calendar on which this copy of the event appears. Read-only. The default is False.<br>
"displayName": "A String", # The creator's name, if available.<br>
"email": "A String", # The creator's email address, if available.<br>
},<br>
"organizer": { # The organizer of the event. If the organizer is also an attendee, this is indicated with a separate entry in 'attendees' with the 'organizer' field set to True. To change the organizer, use the "move" operation. Read-only, except when importing an event.<br>
+ "self": True or False, # Whether the organizer corresponds to the calendar on which this copy of the event appears. Read-only. The default is False.<br>
"displayName": "A String", # The organizer's name, if available.<br>
"email": "A String", # The organizer's email address, if available.<br>
},<br>
@@ -148,10 +158,12 @@
<br>
{<br>
"creator": { # The creator of the event. Read-only.<br>
+ "self": True or False, # Whether the creator corresponds to the calendar on which this copy of the event appears. Read-only. The default is False.<br>
"displayName": "A String", # The creator's name, if available.<br>
"email": "A String", # The creator's email address, if available.<br>
},<br>
"organizer": { # The organizer of the event. If the organizer is also an attendee, this is indicated with a separate entry in 'attendees' with the 'organizer' field set to True. To change the organizer, use the "move" operation. Read-only, except when importing an event.<br>
+ "self": True or False, # Whether the organizer corresponds to the calendar on which this copy of the event appears. Read-only. The default is False.<br>
"displayName": "A String", # The organizer's name, if available.<br>
"email": "A String", # The organizer's email address, if available.<br>
},<br>
@@ -254,17 +266,23 @@
"privateCopy": True or False, # Whether this is a private event copy where changes are not shared with other copies on other calendars. Optional. Immutable.<br>
}<br>
<br>
+ pp: string, A parameter<br>
+ trace: string, A parameter<br>
+ strict: string, A parameter<br>
calendarId: string, Calendar identifier. (required)<br>
+ userip: string, A parameter<br>
<br>
Returns:<br>
An object of the form<br>
<br>
{<br>
"creator": { # The creator of the event. Read-only.<br>
+ "self": True or False, # Whether the creator corresponds to the calendar on which this copy of the event appears. Read-only. The default is False.<br>
"displayName": "A String", # The creator's name, if available.<br>
"email": "A String", # The creator's email address, if available.<br>
},<br>
"organizer": { # The organizer of the event. If the organizer is also an attendee, this is indicated with a separate entry in 'attendees' with the 'organizer' field set to True. To change the organizer, use the "move" operation. Read-only, except when importing an event.<br>
+ "self": True or False, # Whether the organizer corresponds to the calendar on which this copy of the event appears. Read-only. The default is False.<br>
"displayName": "A String", # The organizer's name, if available.<br>
"email": "A String", # The organizer's email address, if available.<br>
},<br>
@@ -375,10 +393,12 @@
<br>
{<br>
"creator": { # The creator of the event. Read-only.<br>
+ "self": True or False, # Whether the creator corresponds to the calendar on which this copy of the event appears. Read-only. The default is False.<br>
"displayName": "A String", # The creator's name, if available.<br>
"email": "A String", # The creator's email address, if available.<br>
},<br>
"organizer": { # The organizer of the event. If the organizer is also an attendee, this is indicated with a separate entry in 'attendees' with the 'organizer' field set to True. To change the organizer, use the "move" operation. Read-only, except when importing an event.<br>
+ "self": True or False, # Whether the organizer corresponds to the calendar on which this copy of the event appears. Read-only. The default is False.<br>
"displayName": "A String", # The organizer's name, if available.<br>
"email": "A String", # The organizer's email address, if available.<br>
},<br>
@@ -481,18 +501,24 @@
"privateCopy": True or False, # Whether this is a private event copy where changes are not shared with other copies on other calendars. Optional. Immutable.<br>
}<br>
<br>
+ pp: string, A parameter<br>
+ trace: string, A parameter<br>
sendNotifications: boolean, Whether to send notifications about the creation of the new event. Optional. The default is False.<br>
calendarId: string, Calendar identifier. (required)<br>
+ userip: string, A parameter<br>
+ strict: string, A parameter<br>
<br>
Returns:<br>
An object of the form<br>
<br>
{<br>
"creator": { # The creator of the event. Read-only.<br>
+ "self": True or False, # Whether the creator corresponds to the calendar on which this copy of the event appears. Read-only. The default is False.<br>
"displayName": "A String", # The creator's name, if available.<br>
"email": "A String", # The creator's email address, if available.<br>
},<br>
"organizer": { # The organizer of the event. If the organizer is also an attendee, this is indicated with a separate entry in 'attendees' with the 'organizer' field set to True. To change the organizer, use the "move" operation. Read-only, except when importing an event.<br>
+ "self": True or False, # Whether the organizer corresponds to the calendar on which this copy of the event appears. Read-only. The default is False.<br>
"displayName": "A String", # The organizer's name, if available.<br>
"email": "A String", # The organizer's email address, if available.<br>
},<br>
@@ -600,9 +626,13 @@
Args:<br>
eventId: string, Recurring event identifier. (required)<br>
pageToken: string, Token specifying which result page to return. Optional.<br>
+ pp: string, A parameter<br>
+ trace: string, A parameter<br>
+ strict: string, A parameter<br>
maxResults: integer, Maximum number of events returned on one result page. Optional.<br>
showDeleted: boolean, Whether to include deleted events (with 'eventStatus' equals 'cancelled') in the result. Optional. The default is False.<br>
calendarId: string, Calendar identifier. (required)<br>
+ userip: string, A parameter<br>
timeZone: string, Time zone used in the response. Optional. The default is the time zone of the calendar.<br>
originalStart: string, The original start time of the instance in the result. Optional.<br>
maxAttendees: integer, The maximum number of attendees to include in the response. If there are more than the specified number of attendees, only the participant is returned. Optional.<br>
@@ -626,10 +656,12 @@
"items": [ # List of events on the calendar.<br>
{<br>
"creator": { # The creator of the event. Read-only.<br>
+ "self": True or False, # Whether the creator corresponds to the calendar on which this copy of the event appears. Read-only. The default is False.<br>
"displayName": "A String", # The creator's name, if available.<br>
"email": "A String", # The creator's email address, if available.<br>
},<br>
"organizer": { # The organizer of the event. If the organizer is also an attendee, this is indicated with a separate entry in 'attendees' with the 'organizer' field set to True. To change the organizer, use the "move" operation. Read-only, except when importing an event.<br>
+ "self": True or False, # Whether the organizer corresponds to the calendar on which this copy of the event appears. Read-only. The default is False.<br>
"displayName": "A String", # The organizer's name, if available.<br>
"email": "A String", # The organizer's email address, if available.<br>
},<br>
@@ -762,18 +794,22 @@
startTime - Order by the start date/time (ascending). This is only available when querying single events (i.e. the parameter "singleEvents" is True)<br>
updated - Order by last modification time (ascending).<br>
showHiddenInvitations: boolean, Whether to include hidden invitations in the result. Optional. The default is False.<br>
- iCalUID: string, Specifies iCalendar UID (iCalUID) of events to be included in the response. Optional.<br>
+ timeMin: string, Lower bound (inclusive) for an event's end time to filter by. Optional. The default is not to filter by end time.<br>
+ pp: string, A parameter<br>
+ trace: string, A parameter<br>
+ pageToken: string, Token specifying which result page to return. Optional.<br>
updatedMin: string, Lower bound for an event's last modification time (as a <a href="http://www.rfc-editor.org/rfc/rfc3339.txt">RFC 3339</a> timestamp) to filter by. Optional. The default is not to filter by last modification time.<br>
singleEvents: boolean, Whether to expand recurring events into instances and only return single one-off events and instances of recurring events, but not the underlying recurring events themselves. Optional. The default is False.<br>
- timeMax: string, Upper bound (exclusive) for an event's start time to filter by. Optional. The default is not to filter by start time.<br>
- maxResults: integer, Maximum number of events returned on one result page. Optional.<br>
- q: string, Free text search terms to find events that match these terms in any field, except for extended properties. Optional.<br>
showDeleted: boolean, Whether to include deleted events (with 'eventStatus' equals 'cancelled') in the result. Optional. The default is False.<br>
- calendarId: string, Calendar identifier. (required)<br>
- timeMin: string, Lower bound (inclusive) for an event's end time to filter by. Optional. The default is not to filter by end time.<br>
- pageToken: string, Token specifying which result page to return. Optional.<br>
- timeZone: string, Time zone used in the response. Optional. The default is the time zone of the calendar.<br>
+ strict: string, A parameter<br>
maxAttendees: integer, The maximum number of attendees to include in the response. If there are more than the specified number of attendees, only the participant is returned. Optional.<br>
+ iCalUID: string, Specifies iCalendar UID (iCalUID) of events to be included in the response. Optional.<br>
+ maxResults: integer, Maximum number of events returned on one result page. Optional.<br>
+ calendarId: string, Calendar identifier. (required)<br>
+ timeMax: string, Upper bound (exclusive) for an event's start time to filter by. Optional. The default is not to filter by start time.<br>
+ q: string, Free text search terms to find events that match these terms in any field, except for extended properties. Optional.<br>
+ userip: string, A parameter<br>
+ timeZone: string, Time zone used in the response. Optional. The default is the time zone of the calendar.<br>
<br>
Returns:<br>
An object of the form<br>
@@ -794,10 +830,12 @@
"items": [ # List of events on the calendar.<br>
{<br>
"creator": { # The creator of the event. Read-only.<br>
+ "self": True or False, # Whether the creator corresponds to the calendar on which this copy of the event appears. Read-only. The default is False.<br>
"displayName": "A String", # The creator's name, if available.<br>
"email": "A String", # The creator's email address, if available.<br>
},<br>
"organizer": { # The organizer of the event. If the organizer is also an attendee, this is indicated with a separate entry in 'attendees' with the 'organizer' field set to True. To change the organizer, use the "move" operation. Read-only, except when importing an event.<br>
+ "self": True or False, # Whether the organizer corresponds to the calendar on which this copy of the event appears. Read-only. The default is False.<br>
"displayName": "A String", # The organizer's name, if available.<br>
"email": "A String", # The organizer's email address, if available.<br>
},<br>
@@ -926,19 +964,25 @@
<br>
Args:<br>
eventId: string, Event identifier. (required)<br>
+ pp: string, A parameter<br>
+ trace: string, A parameter<br>
sendNotifications: boolean, Whether to send notifications about the change of the event's organizer. Optional. The default is False.<br>
destination: string, Calendar identifier of the target calendar where the event is to be moved to. (required)<br>
calendarId: string, Calendar identifier of the source calendar where the event currently is on. (required)<br>
+ userip: string, A parameter<br>
+ strict: string, A parameter<br>
<br>
Returns:<br>
An object of the form<br>
<br>
{<br>
"creator": { # The creator of the event. Read-only.<br>
+ "self": True or False, # Whether the creator corresponds to the calendar on which this copy of the event appears. Read-only. The default is False.<br>
"displayName": "A String", # The creator's name, if available.<br>
"email": "A String", # The creator's email address, if available.<br>
},<br>
"organizer": { # The organizer of the event. If the organizer is also an attendee, this is indicated with a separate entry in 'attendees' with the 'organizer' field set to True. To change the organizer, use the "move" operation. Read-only, except when importing an event.<br>
+ "self": True or False, # Whether the organizer corresponds to the calendar on which this copy of the event appears. Read-only. The default is False.<br>
"displayName": "A String", # The organizer's name, if available.<br>
"email": "A String", # The organizer's email address, if available.<br>
},<br>
@@ -1050,10 +1094,12 @@
<br>
{<br>
"creator": { # The creator of the event. Read-only.<br>
+ "self": True or False, # Whether the creator corresponds to the calendar on which this copy of the event appears. Read-only. The default is False.<br>
"displayName": "A String", # The creator's name, if available.<br>
"email": "A String", # The creator's email address, if available.<br>
},<br>
"organizer": { # The organizer of the event. If the organizer is also an attendee, this is indicated with a separate entry in 'attendees' with the 'organizer' field set to True. To change the organizer, use the "move" operation. Read-only, except when importing an event.<br>
+ "self": True or False, # Whether the organizer corresponds to the calendar on which this copy of the event appears. Read-only. The default is False.<br>
"displayName": "A String", # The organizer's name, if available.<br>
"email": "A String", # The organizer's email address, if available.<br>
},<br>
@@ -1156,18 +1202,24 @@
"privateCopy": True or False, # Whether this is a private event copy where changes are not shared with other copies on other calendars. Optional. Immutable.<br>
}<br>
<br>
+ pp: string, A parameter<br>
+ trace: string, A parameter<br>
sendNotifications: boolean, Whether to send notifications about the event update (e.g. attendee's responses, title changes, etc.). Optional. The default is False.<br>
calendarId: string, Calendar identifier. (required)<br>
+ userip: string, A parameter<br>
+ strict: string, A parameter<br>
<br>
Returns:<br>
An object of the form<br>
<br>
{<br>
"creator": { # The creator of the event. Read-only.<br>
+ "self": True or False, # Whether the creator corresponds to the calendar on which this copy of the event appears. Read-only. The default is False.<br>
"displayName": "A String", # The creator's name, if available.<br>
"email": "A String", # The creator's email address, if available.<br>
},<br>
"organizer": { # The organizer of the event. If the organizer is also an attendee, this is indicated with a separate entry in 'attendees' with the 'organizer' field set to True. To change the organizer, use the "move" operation. Read-only, except when importing an event.<br>
+ "self": True or False, # Whether the organizer corresponds to the calendar on which this copy of the event appears. Read-only. The default is False.<br>
"displayName": "A String", # The organizer's name, if available.<br>
"email": "A String", # The organizer's email address, if available.<br>
},<br>
@@ -1273,19 +1325,25 @@
<dl><dt><a name="Resource-quickAdd"><strong>quickAdd</strong></a> = method(self, **kwargs)</dt><dd><tt>Creates an event based on a simple text string.<br>
<br>
Args:<br>
+ pp: string, A parameter<br>
+ trace: string, A parameter<br>
sendNotifications: boolean, Whether to send notifications about the creation of the event. Optional. The default is False.<br>
text: string, The text describing the event to be created. (required)<br>
calendarId: string, Calendar identifier. (required)<br>
+ userip: string, A parameter<br>
+ strict: string, A parameter<br>
<br>
Returns:<br>
An object of the form<br>
<br>
{<br>
"creator": { # The creator of the event. Read-only.<br>
+ "self": True or False, # Whether the creator corresponds to the calendar on which this copy of the event appears. Read-only. The default is False.<br>
"displayName": "A String", # The creator's name, if available.<br>
"email": "A String", # The creator's email address, if available.<br>
},<br>
"organizer": { # The organizer of the event. If the organizer is also an attendee, this is indicated with a separate entry in 'attendees' with the 'organizer' field set to True. To change the organizer, use the "move" operation. Read-only, except when importing an event.<br>
+ "self": True or False, # Whether the organizer corresponds to the calendar on which this copy of the event appears. Read-only. The default is False.<br>
"displayName": "A String", # The organizer's name, if available.<br>
"email": "A String", # The organizer's email address, if available.<br>
},<br>
@@ -1397,10 +1455,12 @@
<br>
{<br>
"creator": { # The creator of the event. Read-only.<br>
+ "self": True or False, # Whether the creator corresponds to the calendar on which this copy of the event appears. Read-only. The default is False.<br>
"displayName": "A String", # The creator's name, if available.<br>
"email": "A String", # The creator's email address, if available.<br>
},<br>
"organizer": { # The organizer of the event. If the organizer is also an attendee, this is indicated with a separate entry in 'attendees' with the 'organizer' field set to True. To change the organizer, use the "move" operation. Read-only, except when importing an event.<br>
+ "self": True or False, # Whether the organizer corresponds to the calendar on which this copy of the event appears. Read-only. The default is False.<br>
"displayName": "A String", # The organizer's name, if available.<br>
"email": "A String", # The organizer's email address, if available.<br>
},<br>
@@ -1503,18 +1563,24 @@
"privateCopy": True or False, # Whether this is a private event copy where changes are not shared with other copies on other calendars. Optional. Immutable.<br>
}<br>
<br>
+ pp: string, A parameter<br>
+ trace: string, A parameter<br>
sendNotifications: boolean, Whether to send notifications about the event update (e.g. attendee's responses, title changes, etc.). Optional. The default is False.<br>
calendarId: string, Calendar identifier. (required)<br>
+ userip: string, A parameter<br>
+ strict: string, A parameter<br>
<br>
Returns:<br>
An object of the form<br>
<br>
{<br>
"creator": { # The creator of the event. Read-only.<br>
+ "self": True or False, # Whether the creator corresponds to the calendar on which this copy of the event appears. Read-only. The default is False.<br>
"displayName": "A String", # The creator's name, if available.<br>
"email": "A String", # The creator's email address, if available.<br>
},<br>
"organizer": { # The organizer of the event. If the organizer is also an attendee, this is indicated with a separate entry in 'attendees' with the 'organizer' field set to True. To change the organizer, use the "move" operation. Read-only, except when importing an event.<br>
+ "self": True or False, # Whether the organizer corresponds to the calendar on which this copy of the event appears. Read-only. The default is False.<br>
"displayName": "A String", # The organizer's name, if available.<br>
"email": "A String", # The organizer's email address, if available.<br>
},<br>
diff --git a/docs/dyn/calendar.v3.freebusy.html b/docs/dyn/calendar.v3.freebusy.html
index e7e409c..01c992e 100644
--- a/docs/dyn/calendar.v3.freebusy.html
+++ b/docs/dyn/calendar.v3.freebusy.html
@@ -33,6 +33,10 @@
"timeZone": "A String", # Time zone used in the response. Optional. The default is UTC.<br>
}<br>
<br>
+ pp: string, A parameter<br>
+ trace: string, A parameter<br>
+ strict: string, A parameter<br>
+ userip: string, A parameter<br>
<br>
Returns:<br>
An object of the form<br>
diff --git a/docs/dyn/calendar.v3.settings.html b/docs/dyn/calendar.v3.settings.html
index e0c63e3..a70cb7c 100644
--- a/docs/dyn/calendar.v3.settings.html
+++ b/docs/dyn/calendar.v3.settings.html
@@ -17,7 +17,11 @@
<dl><dt><a name="Resource-get"><strong>get</strong></a> = method(self, **kwargs)</dt><dd><tt>Returns a single user setting.<br>
<br>
Args:<br>
+ pp: string, A parameter<br>
+ trace: string, A parameter<br>
+ strict: string, A parameter<br>
setting: string, Name of the user setting. (required)<br>
+ userip: string, A parameter<br>
<br>
Returns:<br>
An object of the form<br>
@@ -32,6 +36,10 @@
<dl><dt><a name="Resource-list"><strong>list</strong></a> = method(self, **kwargs)</dt><dd><tt>Returns all user settings for the authenticated user.<br>
<br>
Args:<br>
+ pp: string, A parameter<br>
+ trace: string, A parameter<br>
+ strict: string, A parameter<br>
+ userip: string, A parameter<br>
<br>
Returns:<br>
An object of the form<br>
diff --git a/docs/dyn/customsearch.v1.cse.html b/docs/dyn/customsearch.v1.cse.html
index 24282b4..432b48f 100644
--- a/docs/dyn/customsearch.v1.cse.html
+++ b/docs/dyn/customsearch.v1.cse.html
@@ -18,6 +18,7 @@
<br>
Args:<br>
dateRestrict: string, Specifies all search results are from a time period<br>
+ hl: string, Sets the user interface language.<br>
orTerms: string, Provides additional search terms to check for in a document, where each document in the search results must contain at least one of the additional search terms<br>
highRange: string, Creates a range in form as_nlo value..as_nhi value and attempts to append it to query<br>
num: integer, Number of search results to return<br>
@@ -34,10 +35,12 @@
Allowed values<br>
0 - Turns off duplicate content filter.<br>
1 - Turns on duplicate content filter.<br>
+ pp: string, A parameter<br>
gl: string, Geolocation of end user.<br>
searchType: string, Specifies the search type: image.<br>
Allowed values<br>
image - custom image search<br>
+ strict: string, A parameter<br>
fileType: string, Returns images of a specified type. Some of the allowed values are: bmp, gif, png, jpg, svg, pdf, ...<br>
start: integer, The index of the first result to return<br>
imgDominantColor: string, Returns images of a specific dominant color: yellow, green, teal, blue, purple, pink, white, gray, black and brown.<br>
@@ -93,6 +96,7 @@
cref: string, The URL of a linked custom search engine<br>
sort: string, The sort expression to apply to the results<br>
hq: string, Appends the extra query terms to the query.<br>
+ trace: string, A parameter<br>
c2coff: string, Turns off the translation between zh-CN and zh-TW.<br>
googlehost: string, The local Google domain to use to perform the search.<br>
safe: string, Search safety level<br>
@@ -101,7 +105,6 @@
medium - Enables moderate safe search filtering.<br>
off - Disables safe search filtering.<br>
exactTerms: string, Identifies a phrase that all documents in the search results must contain<br>
- hl: string, Sets the user interface language.<br>
lowRange: string, Creates a range in form as_nlo value..as_nhi value and attempts to append it to query<br>
imgSize: string, Returns images of a specified size, where size can be one of: icon, small, medium, large, xlarge, xxlarge, and huge.<br>
Allowed values<br>
@@ -122,6 +125,7 @@
q: string, Query (required)<br>
linkSite: string, Specifies that all search results should contain a link to a particular URL<br>
cx: string, The custom search engine ID to scope this search query<br>
+ userip: string, A parameter<br>
siteSearchFilter: string, Controls whether to include or exclude results from the site named in the as_sitesearch parameter<br>
Allowed values<br>
e - exclude<br>
@@ -133,21 +137,23 @@
{<br>
"promotions": [<br>
{<br>
- "link": "A String",<br>
+ "title": "A String",<br>
"displayLink": "A String",<br>
+ "htmlTitle": "A String",<br>
+ "link": "A String",<br>
+ "bodyLines": [<br>
+ {<br>
+ "url": "A String",<br>
+ "htmlTitle": "A String",<br>
+ "link": "A String",<br>
+ "title": "A String",<br>
+ },<br>
+ ],<br>
"image": {<br>
"source": "A String",<br>
"width": 42,<br>
"height": 42,<br>
},<br>
- "bodyLines": [<br>
- {<br>
- "url": "A String",<br>
- "link": "A String",<br>
- "title": "A String",<br>
- },<br>
- ],<br>
- "title": "A String",<br>
},<br>
],<br>
"kind": "customsearch#search",<br>
diff --git a/docs/dyn/discovery.v1.apis.html b/docs/dyn/discovery.v1.apis.html
index 79ed0c3..9acd60c 100644
--- a/docs/dyn/discovery.v1.apis.html
+++ b/docs/dyn/discovery.v1.apis.html
@@ -17,8 +17,12 @@
<dl><dt><a name="Resource-getRest"><strong>getRest</strong></a> = method(self, **kwargs)</dt><dd><tt>Retrieve the description of a particular version of an api.<br>
<br>
Args:<br>
+ pp: string, A parameter<br>
+ trace: string, A parameter<br>
api: string, The name of the API. (required)<br>
+ strict: string, A parameter<br>
version: string, The version of the API. (required)<br>
+ userip: string, A parameter<br>
<br>
Returns:<br>
An object of the form<br>
@@ -68,13 +72,17 @@
<dl><dt><a name="Resource-list"><strong>list</strong></a> = method(self, **kwargs)</dt><dd><tt>Retrieve the list of APIs supported at this endpoint.<br>
<br>
Args:<br>
+ pp: string, A parameter<br>
name: string, Only include APIs with the given name.<br>
+ trace: string, A parameter<br>
preferred: boolean, Return only the preferred version of an API.<br>
label: string, Only include APIs with a matching label, such as 'graduated' or 'labs'.<br>
Allowed values<br>
deprecated - APIs that have been deprecated.<br>
graduated - Supported APIs that have graduated from labs.<br>
labs - APIs that are experimental<br>
+ strict: string, A parameter<br>
+ userip: string, A parameter<br>
<br>
Returns:<br>
An object of the form<br>
diff --git a/docs/dyn/drive.v1.files.html b/docs/dyn/drive.v1.files.html
new file mode 100644
index 0000000..1e8dd14
--- /dev/null
+++ b/docs/dyn/drive.v1.files.html
@@ -0,0 +1,389 @@
+
+<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
+<html><head><title>Python: class Resource</title>
+</head><body bgcolor="#f0f0f8">
+<p>
+<table width="100%" cellspacing=0 cellpadding=2 border=0 summary="section">
+<tr bgcolor="#ffc8d8">
+<td colspan=3 valign=bottom> <br>
+<font color="#000000" face="helvetica, arial"><a name="Resource">class <strong>Resource</strong></a>(<a href="__builtin__.html#object">__builtin__.object</a>)</font></td></tr>
+
+<tr bgcolor="#ffc8d8"><td rowspan=2><tt> </tt></td>
+<td colspan=2><tt>A class for interacting with a resource.<br> </tt></td></tr>
+<tr><td> </td>
+<td width="100%">Methods defined here:<br>
+<dl><dt><a name="Resource-__init__"><strong>__init__</strong></a>(self)</dt></dl>
+
+<dl><dt><a name="Resource-get"><strong>get</strong></a> = method(self, **kwargs)</dt><dd><tt>Gets a file's metadata by id.<br>
+ <br>
+Args:<br>
+ pp: string, A parameter<br>
+ projection: string, Restrict information returned for simplicity and optimization.<br>
+ Allowed values<br>
+ BASIC - Includes only the basic metadata fields<br>
+ FULL - Includes all metadata fields<br>
+ trace: string, A parameter<br>
+ strict: string, A parameter<br>
+ userip: string, A parameter<br>
+ updateViewedDate: boolean, Whether to update the view date after successfully retrieving the file.<br>
+ id: string, The id for the file in question. (required)<br>
+ <br>
+Returns:<br>
+ An object of the form<br>
+ <br>
+ {<br>
+ "mimeType": "A String", # The mimetype of the file<br>
+ "selfLink": "A String", # A link back to this file.<br>
+ "kind": "drive#file", # The type of file. This is always drive#file<br>
+ "description": "A String", # A short description of the file<br>
+ "title": "A String", # The title of this file.<br>
+ "modifiedByMeDate": "A String", # Last time this file was modified by the user (formatted <a href="http://www.rfc-editor.org/rfc/rfc3339.txt">RFC 3339</a> timestamp).<br>
+ "labels": { # Labels for the file.<br>
+ "hidden": True or False, # Whether this file is hidden from the user<br>
+ "starred": True or False, # Whether this file is starred by the user.<br>
+ "trashed": True or False, # Whether this file has been trashed.<br>
+ },<br>
+ "indexableText": { # Indexable text attributes for the file (can only be written)<br>
+ "text": "A String", # The text to be indexed for this file<br>
+ },<br>
+ "parentsCollection": [ # Collection of parent folders which contain this file.<br>
+ # On insert, setting this field will put the file in all of the provided folders. If no folders are provided, the file will be placed in the default root folder. On update, this field is ignored.<br>
+ {<br>
+ "parentLink": "A String", # A link to get the metadata for this parent<br>
+ "id": "A String", # The id of this parent<br>
+ },<br>
+ ],<br>
+ "downloadUrl": "A String", # Short term download URL for the file. This will only be populated on files with content stored in Drive.<br>
+ "userPermission": { # The permissions for the authenticated user on this file.<br>
+ "type": "A String", # The type of permission (For example: user, group etc).<br>
+ "kind": "drive#permission", # The kind of this permission. This is always drive#permission<br>
+ "etag": "A String", # An etag for this permission.<br>
+ "role": "A String", # The role that this permission describes. (For example: reader, writer, owner)<br>
+ "additionalRoles": [ # Any additional roles that this permission describes.<br>
+ "A String",<br>
+ ],<br>
+ },<br>
+ "etag": "A String", # ETag of the file.<br>
+ "fileSize": "A String", # The size of the file in bytes. This will only be populated on files with content stored in Drive.<br>
+ "createdDate": "A String", # Create time for this file (formatted ISO8601 timestamp).<br>
+ "fileExtension": "A String", # The file extension used when downloading this file. This field is read only. To set the extension, include it on title when creating the file. This will only be populated on files with content stored in Drive.<br>
+ "lastViewedDate": "A String", # Last time this file was viewed by anyone (formatted <a href="http://www.rfc-editor.org/rfc/rfc3339.txt">RFC 3339</a> timestamp).<br>
+ "id": "A String", # The id of the file.<br>
+ "md5Checksum": "A String", # An MD5 checksum for the content of this file. This will only be populated on files with content stored in Drive.<br>
+ "modifiedDate": "A String", # Last time this file was modified by anyone (formatted <a href="http://www.rfc-editor.org/rfc/rfc3339.txt">RFC 3339</a> timestamp).<br>
+ }</tt></dd></dl>
+
+<dl><dt><a name="Resource-insert"><strong>insert</strong></a> = method(self, **kwargs)</dt><dd><tt>Inserts a file, and any settable metadata or blob content sent with the request.<br>
+ <br>
+Args:<br>
+ body: object, The request body.<br>
+ The object takes the form of:<br>
+ <br>
+{<br>
+ "mimeType": "A String", # The mimetype of the file<br>
+ "selfLink": "A String", # A link back to this file.<br>
+ "kind": "drive#file", # The type of file. This is always drive#file<br>
+ "description": "A String", # A short description of the file<br>
+ "title": "A String", # The title of this file.<br>
+ "modifiedByMeDate": "A String", # Last time this file was modified by the user (formatted <a href="http://www.rfc-editor.org/rfc/rfc3339.txt">RFC 3339</a> timestamp).<br>
+ "labels": { # Labels for the file.<br>
+ "hidden": True or False, # Whether this file is hidden from the user<br>
+ "starred": True or False, # Whether this file is starred by the user.<br>
+ "trashed": True or False, # Whether this file has been trashed.<br>
+ },<br>
+ "indexableText": { # Indexable text attributes for the file (can only be written)<br>
+ "text": "A String", # The text to be indexed for this file<br>
+ },<br>
+ "parentsCollection": [ # Collection of parent folders which contain this file.<br>
+ # On insert, setting this field will put the file in all of the provided folders. If no folders are provided, the file will be placed in the default root folder. On update, this field is ignored.<br>
+ {<br>
+ "parentLink": "A String", # A link to get the metadata for this parent<br>
+ "id": "A String", # The id of this parent<br>
+ },<br>
+ ],<br>
+ "downloadUrl": "A String", # Short term download URL for the file. This will only be populated on files with content stored in Drive.<br>
+ "userPermission": { # The permissions for the authenticated user on this file.<br>
+ "type": "A String", # The type of permission (For example: user, group etc).<br>
+ "kind": "drive#permission", # The kind of this permission. This is always drive#permission<br>
+ "etag": "A String", # An etag for this permission.<br>
+ "role": "A String", # The role that this permission describes. (For example: reader, writer, owner)<br>
+ "additionalRoles": [ # Any additional roles that this permission describes.<br>
+ "A String",<br>
+ ],<br>
+ },<br>
+ "etag": "A String", # ETag of the file.<br>
+ "fileSize": "A String", # The size of the file in bytes. This will only be populated on files with content stored in Drive.<br>
+ "createdDate": "A String", # Create time for this file (formatted ISO8601 timestamp).<br>
+ "fileExtension": "A String", # The file extension used when downloading this file. This field is read only. To set the extension, include it on title when creating the file. This will only be populated on files with content stored in Drive.<br>
+ "lastViewedDate": "A String", # Last time this file was viewed by anyone (formatted <a href="http://www.rfc-editor.org/rfc/rfc3339.txt">RFC 3339</a> timestamp).<br>
+ "id": "A String", # The id of the file.<br>
+ "md5Checksum": "A String", # An MD5 checksum for the content of this file. This will only be populated on files with content stored in Drive.<br>
+ "modifiedDate": "A String", # Last time this file was modified by anyone (formatted <a href="http://www.rfc-editor.org/rfc/rfc3339.txt">RFC 3339</a> timestamp).<br>
+ }<br>
+ <br>
+ media_body: string, The filename of the media request body.<br>
+ pp: string, A parameter<br>
+ trace: string, A parameter<br>
+ strict: string, A parameter<br>
+ userip: string, A parameter<br>
+ <br>
+Returns:<br>
+ An object of the form<br>
+ <br>
+ {<br>
+ "mimeType": "A String", # The mimetype of the file<br>
+ "selfLink": "A String", # A link back to this file.<br>
+ "kind": "drive#file", # The type of file. This is always drive#file<br>
+ "description": "A String", # A short description of the file<br>
+ "title": "A String", # The title of this file.<br>
+ "modifiedByMeDate": "A String", # Last time this file was modified by the user (formatted <a href="http://www.rfc-editor.org/rfc/rfc3339.txt">RFC 3339</a> timestamp).<br>
+ "labels": { # Labels for the file.<br>
+ "hidden": True or False, # Whether this file is hidden from the user<br>
+ "starred": True or False, # Whether this file is starred by the user.<br>
+ "trashed": True or False, # Whether this file has been trashed.<br>
+ },<br>
+ "indexableText": { # Indexable text attributes for the file (can only be written)<br>
+ "text": "A String", # The text to be indexed for this file<br>
+ },<br>
+ "parentsCollection": [ # Collection of parent folders which contain this file.<br>
+ # On insert, setting this field will put the file in all of the provided folders. If no folders are provided, the file will be placed in the default root folder. On update, this field is ignored.<br>
+ {<br>
+ "parentLink": "A String", # A link to get the metadata for this parent<br>
+ "id": "A String", # The id of this parent<br>
+ },<br>
+ ],<br>
+ "downloadUrl": "A String", # Short term download URL for the file. This will only be populated on files with content stored in Drive.<br>
+ "userPermission": { # The permissions for the authenticated user on this file.<br>
+ "type": "A String", # The type of permission (For example: user, group etc).<br>
+ "kind": "drive#permission", # The kind of this permission. This is always drive#permission<br>
+ "etag": "A String", # An etag for this permission.<br>
+ "role": "A String", # The role that this permission describes. (For example: reader, writer, owner)<br>
+ "additionalRoles": [ # Any additional roles that this permission describes.<br>
+ "A String",<br>
+ ],<br>
+ },<br>
+ "etag": "A String", # ETag of the file.<br>
+ "fileSize": "A String", # The size of the file in bytes. This will only be populated on files with content stored in Drive.<br>
+ "createdDate": "A String", # Create time for this file (formatted ISO8601 timestamp).<br>
+ "fileExtension": "A String", # The file extension used when downloading this file. This field is read only. To set the extension, include it on title when creating the file. This will only be populated on files with content stored in Drive.<br>
+ "lastViewedDate": "A String", # Last time this file was viewed by anyone (formatted <a href="http://www.rfc-editor.org/rfc/rfc3339.txt">RFC 3339</a> timestamp).<br>
+ "id": "A String", # The id of the file.<br>
+ "md5Checksum": "A String", # An MD5 checksum for the content of this file. This will only be populated on files with content stored in Drive.<br>
+ "modifiedDate": "A String", # Last time this file was modified by anyone (formatted <a href="http://www.rfc-editor.org/rfc/rfc3339.txt">RFC 3339</a> timestamp).<br>
+ }</tt></dd></dl>
+
+<dl><dt><a name="Resource-patch"><strong>patch</strong></a> = method(self, **kwargs)</dt><dd><tt>Updates file metadata and/or content. This method supports patch semantics.<br>
+ <br>
+Args:<br>
+ body: object, The request body. (required)<br>
+ The object takes the form of:<br>
+ <br>
+{<br>
+ "mimeType": "A String", # The mimetype of the file<br>
+ "selfLink": "A String", # A link back to this file.<br>
+ "kind": "drive#file", # The type of file. This is always drive#file<br>
+ "description": "A String", # A short description of the file<br>
+ "title": "A String", # The title of this file.<br>
+ "modifiedByMeDate": "A String", # Last time this file was modified by the user (formatted <a href="http://www.rfc-editor.org/rfc/rfc3339.txt">RFC 3339</a> timestamp).<br>
+ "labels": { # Labels for the file.<br>
+ "hidden": True or False, # Whether this file is hidden from the user<br>
+ "starred": True or False, # Whether this file is starred by the user.<br>
+ "trashed": True or False, # Whether this file has been trashed.<br>
+ },<br>
+ "indexableText": { # Indexable text attributes for the file (can only be written)<br>
+ "text": "A String", # The text to be indexed for this file<br>
+ },<br>
+ "parentsCollection": [ # Collection of parent folders which contain this file.<br>
+ # On insert, setting this field will put the file in all of the provided folders. If no folders are provided, the file will be placed in the default root folder. On update, this field is ignored.<br>
+ {<br>
+ "parentLink": "A String", # A link to get the metadata for this parent<br>
+ "id": "A String", # The id of this parent<br>
+ },<br>
+ ],<br>
+ "downloadUrl": "A String", # Short term download URL for the file. This will only be populated on files with content stored in Drive.<br>
+ "userPermission": { # The permissions for the authenticated user on this file.<br>
+ "type": "A String", # The type of permission (For example: user, group etc).<br>
+ "kind": "drive#permission", # The kind of this permission. This is always drive#permission<br>
+ "etag": "A String", # An etag for this permission.<br>
+ "role": "A String", # The role that this permission describes. (For example: reader, writer, owner)<br>
+ "additionalRoles": [ # Any additional roles that this permission describes.<br>
+ "A String",<br>
+ ],<br>
+ },<br>
+ "etag": "A String", # ETag of the file.<br>
+ "fileSize": "A String", # The size of the file in bytes. This will only be populated on files with content stored in Drive.<br>
+ "createdDate": "A String", # Create time for this file (formatted ISO8601 timestamp).<br>
+ "fileExtension": "A String", # The file extension used when downloading this file. This field is read only. To set the extension, include it on title when creating the file. This will only be populated on files with content stored in Drive.<br>
+ "lastViewedDate": "A String", # Last time this file was viewed by anyone (formatted <a href="http://www.rfc-editor.org/rfc/rfc3339.txt">RFC 3339</a> timestamp).<br>
+ "id": "A String", # The id of the file.<br>
+ "md5Checksum": "A String", # An MD5 checksum for the content of this file. This will only be populated on files with content stored in Drive.<br>
+ "modifiedDate": "A String", # Last time this file was modified by anyone (formatted <a href="http://www.rfc-editor.org/rfc/rfc3339.txt">RFC 3339</a> timestamp).<br>
+ }<br>
+ <br>
+ pp: string, A parameter<br>
+ trace: string, A parameter<br>
+ newRevision: boolean, Whether a blob upload should create a new revision. If not set or false, the blob data in the current head revision will be replaced.<br>
+ strict: string, A parameter<br>
+ userip: string, A parameter<br>
+ updateViewedDate: boolean, Whether to update the view date after successfully updating the file.<br>
+ updateModifiedDate: boolean, Controls updating the modified date of the file. If true, the modified date will be updated to the current time, regardless of whether other changes are being made. If false, the modified date will only be updated to the current time if other changes are also being made (changing the title, for example).<br>
+ id: string, The id for the file in question. (required)<br>
+ <br>
+Returns:<br>
+ An object of the form<br>
+ <br>
+ {<br>
+ "mimeType": "A String", # The mimetype of the file<br>
+ "selfLink": "A String", # A link back to this file.<br>
+ "kind": "drive#file", # The type of file. This is always drive#file<br>
+ "description": "A String", # A short description of the file<br>
+ "title": "A String", # The title of this file.<br>
+ "modifiedByMeDate": "A String", # Last time this file was modified by the user (formatted <a href="http://www.rfc-editor.org/rfc/rfc3339.txt">RFC 3339</a> timestamp).<br>
+ "labels": { # Labels for the file.<br>
+ "hidden": True or False, # Whether this file is hidden from the user<br>
+ "starred": True or False, # Whether this file is starred by the user.<br>
+ "trashed": True or False, # Whether this file has been trashed.<br>
+ },<br>
+ "indexableText": { # Indexable text attributes for the file (can only be written)<br>
+ "text": "A String", # The text to be indexed for this file<br>
+ },<br>
+ "parentsCollection": [ # Collection of parent folders which contain this file.<br>
+ # On insert, setting this field will put the file in all of the provided folders. If no folders are provided, the file will be placed in the default root folder. On update, this field is ignored.<br>
+ {<br>
+ "parentLink": "A String", # A link to get the metadata for this parent<br>
+ "id": "A String", # The id of this parent<br>
+ },<br>
+ ],<br>
+ "downloadUrl": "A String", # Short term download URL for the file. This will only be populated on files with content stored in Drive.<br>
+ "userPermission": { # The permissions for the authenticated user on this file.<br>
+ "type": "A String", # The type of permission (For example: user, group etc).<br>
+ "kind": "drive#permission", # The kind of this permission. This is always drive#permission<br>
+ "etag": "A String", # An etag for this permission.<br>
+ "role": "A String", # The role that this permission describes. (For example: reader, writer, owner)<br>
+ "additionalRoles": [ # Any additional roles that this permission describes.<br>
+ "A String",<br>
+ ],<br>
+ },<br>
+ "etag": "A String", # ETag of the file.<br>
+ "fileSize": "A String", # The size of the file in bytes. This will only be populated on files with content stored in Drive.<br>
+ "createdDate": "A String", # Create time for this file (formatted ISO8601 timestamp).<br>
+ "fileExtension": "A String", # The file extension used when downloading this file. This field is read only. To set the extension, include it on title when creating the file. This will only be populated on files with content stored in Drive.<br>
+ "lastViewedDate": "A String", # Last time this file was viewed by anyone (formatted <a href="http://www.rfc-editor.org/rfc/rfc3339.txt">RFC 3339</a> timestamp).<br>
+ "id": "A String", # The id of the file.<br>
+ "md5Checksum": "A String", # An MD5 checksum for the content of this file. This will only be populated on files with content stored in Drive.<br>
+ "modifiedDate": "A String", # Last time this file was modified by anyone (formatted <a href="http://www.rfc-editor.org/rfc/rfc3339.txt">RFC 3339</a> timestamp).<br>
+ }</tt></dd></dl>
+
+<dl><dt><a name="Resource-update"><strong>update</strong></a> = method(self, **kwargs)</dt><dd><tt>Updates file metadata and/or content<br>
+ <br>
+Args:<br>
+ body: object, The request body.<br>
+ The object takes the form of:<br>
+ <br>
+{<br>
+ "mimeType": "A String", # The mimetype of the file<br>
+ "selfLink": "A String", # A link back to this file.<br>
+ "kind": "drive#file", # The type of file. This is always drive#file<br>
+ "description": "A String", # A short description of the file<br>
+ "title": "A String", # The title of this file.<br>
+ "modifiedByMeDate": "A String", # Last time this file was modified by the user (formatted <a href="http://www.rfc-editor.org/rfc/rfc3339.txt">RFC 3339</a> timestamp).<br>
+ "labels": { # Labels for the file.<br>
+ "hidden": True or False, # Whether this file is hidden from the user<br>
+ "starred": True or False, # Whether this file is starred by the user.<br>
+ "trashed": True or False, # Whether this file has been trashed.<br>
+ },<br>
+ "indexableText": { # Indexable text attributes for the file (can only be written)<br>
+ "text": "A String", # The text to be indexed for this file<br>
+ },<br>
+ "parentsCollection": [ # Collection of parent folders which contain this file.<br>
+ # On insert, setting this field will put the file in all of the provided folders. If no folders are provided, the file will be placed in the default root folder. On update, this field is ignored.<br>
+ {<br>
+ "parentLink": "A String", # A link to get the metadata for this parent<br>
+ "id": "A String", # The id of this parent<br>
+ },<br>
+ ],<br>
+ "downloadUrl": "A String", # Short term download URL for the file. This will only be populated on files with content stored in Drive.<br>
+ "userPermission": { # The permissions for the authenticated user on this file.<br>
+ "type": "A String", # The type of permission (For example: user, group etc).<br>
+ "kind": "drive#permission", # The kind of this permission. This is always drive#permission<br>
+ "etag": "A String", # An etag for this permission.<br>
+ "role": "A String", # The role that this permission describes. (For example: reader, writer, owner)<br>
+ "additionalRoles": [ # Any additional roles that this permission describes.<br>
+ "A String",<br>
+ ],<br>
+ },<br>
+ "etag": "A String", # ETag of the file.<br>
+ "fileSize": "A String", # The size of the file in bytes. This will only be populated on files with content stored in Drive.<br>
+ "createdDate": "A String", # Create time for this file (formatted ISO8601 timestamp).<br>
+ "fileExtension": "A String", # The file extension used when downloading this file. This field is read only. To set the extension, include it on title when creating the file. This will only be populated on files with content stored in Drive.<br>
+ "lastViewedDate": "A String", # Last time this file was viewed by anyone (formatted <a href="http://www.rfc-editor.org/rfc/rfc3339.txt">RFC 3339</a> timestamp).<br>
+ "id": "A String", # The id of the file.<br>
+ "md5Checksum": "A String", # An MD5 checksum for the content of this file. This will only be populated on files with content stored in Drive.<br>
+ "modifiedDate": "A String", # Last time this file was modified by anyone (formatted <a href="http://www.rfc-editor.org/rfc/rfc3339.txt">RFC 3339</a> timestamp).<br>
+ }<br>
+ <br>
+ media_body: string, The filename of the media request body.<br>
+ pp: string, A parameter<br>
+ trace: string, A parameter<br>
+ newRevision: boolean, Whether a blob upload should create a new revision. If not set or false, the blob data in the current head revision will be replaced.<br>
+ strict: string, A parameter<br>
+ userip: string, A parameter<br>
+ updateViewedDate: boolean, Whether to update the view date after successfully updating the file.<br>
+ updateModifiedDate: boolean, Controls updating the modified date of the file. If true, the modified date will be updated to the current time, regardless of whether other changes are being made. If false, the modified date will only be updated to the current time if other changes are also being made (changing the title, for example).<br>
+ id: string, The id for the file in question. (required)<br>
+ <br>
+Returns:<br>
+ An object of the form<br>
+ <br>
+ {<br>
+ "mimeType": "A String", # The mimetype of the file<br>
+ "selfLink": "A String", # A link back to this file.<br>
+ "kind": "drive#file", # The type of file. This is always drive#file<br>
+ "description": "A String", # A short description of the file<br>
+ "title": "A String", # The title of this file.<br>
+ "modifiedByMeDate": "A String", # Last time this file was modified by the user (formatted <a href="http://www.rfc-editor.org/rfc/rfc3339.txt">RFC 3339</a> timestamp).<br>
+ "labels": { # Labels for the file.<br>
+ "hidden": True or False, # Whether this file is hidden from the user<br>
+ "starred": True or False, # Whether this file is starred by the user.<br>
+ "trashed": True or False, # Whether this file has been trashed.<br>
+ },<br>
+ "indexableText": { # Indexable text attributes for the file (can only be written)<br>
+ "text": "A String", # The text to be indexed for this file<br>
+ },<br>
+ "parentsCollection": [ # Collection of parent folders which contain this file.<br>
+ # On insert, setting this field will put the file in all of the provided folders. If no folders are provided, the file will be placed in the default root folder. On update, this field is ignored.<br>
+ {<br>
+ "parentLink": "A String", # A link to get the metadata for this parent<br>
+ "id": "A String", # The id of this parent<br>
+ },<br>
+ ],<br>
+ "downloadUrl": "A String", # Short term download URL for the file. This will only be populated on files with content stored in Drive.<br>
+ "userPermission": { # The permissions for the authenticated user on this file.<br>
+ "type": "A String", # The type of permission (For example: user, group etc).<br>
+ "kind": "drive#permission", # The kind of this permission. This is always drive#permission<br>
+ "etag": "A String", # An etag for this permission.<br>
+ "role": "A String", # The role that this permission describes. (For example: reader, writer, owner)<br>
+ "additionalRoles": [ # Any additional roles that this permission describes.<br>
+ "A String",<br>
+ ],<br>
+ },<br>
+ "etag": "A String", # ETag of the file.<br>
+ "fileSize": "A String", # The size of the file in bytes. This will only be populated on files with content stored in Drive.<br>
+ "createdDate": "A String", # Create time for this file (formatted ISO8601 timestamp).<br>
+ "fileExtension": "A String", # The file extension used when downloading this file. This field is read only. To set the extension, include it on title when creating the file. This will only be populated on files with content stored in Drive.<br>
+ "lastViewedDate": "A String", # Last time this file was viewed by anyone (formatted <a href="http://www.rfc-editor.org/rfc/rfc3339.txt">RFC 3339</a> timestamp).<br>
+ "id": "A String", # The id of the file.<br>
+ "md5Checksum": "A String", # An MD5 checksum for the content of this file. This will only be populated on files with content stored in Drive.<br>
+ "modifiedDate": "A String", # Last time this file was modified by anyone (formatted <a href="http://www.rfc-editor.org/rfc/rfc3339.txt">RFC 3339</a> timestamp).<br>
+ }</tt></dd></dl>
+
+<hr>
+Data descriptors defined here:<br>
+<dl><dt><strong>__dict__</strong></dt>
+<dd><tt>dictionary for instance variables (if defined)</tt></dd>
+</dl>
+<dl><dt><strong>__weakref__</strong></dt>
+<dd><tt>list of weak references to the object (if defined)</tt></dd>
+</dl>
+</td></tr></table>
+</body></html>
\ No newline at end of file
diff --git a/docs/dyn/drive.v1.html b/docs/dyn/drive.v1.html
new file mode 100644
index 0000000..e7879c9
--- /dev/null
+++ b/docs/dyn/drive.v1.html
@@ -0,0 +1,28 @@
+
+<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
+<html><head><title>Python: class Resource</title>
+</head><body bgcolor="#f0f0f8">
+<p>
+<table width="100%" cellspacing=0 cellpadding=2 border=0 summary="section">
+<tr bgcolor="#ffc8d8">
+<td colspan=3 valign=bottom> <br>
+<font color="#000000" face="helvetica, arial"><a name="Resource">class <strong>Resource</strong></a>(<a href="__builtin__.html#object">__builtin__.object</a>)</font></td></tr>
+
+<tr bgcolor="#ffc8d8"><td rowspan=2><tt> </tt></td>
+<td colspan=2><tt>A class for interacting with a resource.<br> </tt></td></tr>
+<tr><td> </td>
+<td width="100%">Methods defined here:<br>
+<dl><dt><a name="Resource-__init__"><strong>__init__</strong></a>(self)</dt></dl>
+
+<dl><dt><a name="Resource-files"><strong><a href="drive.v1.files.html">files</a></strong></a> = methodResource(self)</dt><dd><tt>A collection resource.</tt></dd></dl>
+
+<hr>
+Data descriptors defined here:<br>
+<dl><dt><strong>__dict__</strong></dt>
+<dd><tt>dictionary for instance variables (if defined)</tt></dd>
+</dl>
+<dl><dt><strong>__weakref__</strong></dt>
+<dd><tt>list of weak references to the object (if defined)</tt></dd>
+</dl>
+</td></tr></table>
+</body></html>
\ No newline at end of file
diff --git a/docs/dyn/freebase.v1.html b/docs/dyn/freebase.v1.html
index 67876b6..00e9e69 100644
--- a/docs/dyn/freebase.v1.html
+++ b/docs/dyn/freebase.v1.html
@@ -17,8 +17,12 @@
<dl><dt><a name="Resource-image"><strong>image</strong></a> = method(self, **kwargs)</dt><dd><tt>Returns the scaled/cropped image attached to a freebase node.<br>
<br>
Args:<br>
+ pp: string, A parameter<br>
maxwidth: integer, Maximum width in pixels for resulting image.<br>
+ trace: string, A parameter<br>
maxheight: integer, Maximum height in pixels for resulting image.<br>
+ strict: string, A parameter<br>
+ userip: string, A parameter<br>
fallbackid: string, Use the image associated with this secondary id if no image is associated with the primary id.<br>
pad: boolean, A boolean specifying whether the resulting image should be padded up to the requested dimensions.<br>
mode: string, Method used to scale or crop image.<br>
@@ -33,8 +37,9 @@
<br>
Args:<br>
lang: string, The language of the results - an id of a /type/lang object.<br>
- cursor: string, The mql cursor.<br>
+ pp: string, A parameter<br>
indent: integer, How many spaces to indent the json.<br>
+ trace: string, A parameter<br>
callback: string, JS method name for JSONP callbacks.<br>
uniqueness_failure: string, How MQL responds to uniqueness failures.<br>
Allowed values<br>
@@ -42,8 +47,11 @@
soft - Just return the first encountered object.<br>
dateline: string, The dateline that you get in a mqlwrite response to ensure consistent results.<br>
html_escape: boolean, Whether or not to escape entities.<br>
+ cursor: string, The mql cursor.<br>
cost: boolean, Show the costs or not.<br>
+ userip: string, A parameter<br>
query: string, An envelope containing a single MQL query. (required)<br>
+ strict: string, A parameter<br>
as_of_time: string, Run the query as it would've been run at the specified point in time.</tt></dd></dl>
<dl><dt><a name="Resource-text"><strong><a href="freebase.v1.text.html">text</a></strong></a> = methodResource(self)</dt><dd><tt>A collection resource.</tt></dd></dl>
diff --git a/docs/dyn/freebase.v1.text.html b/docs/dyn/freebase.v1.text.html
index 1909ab8..4a8e575 100644
--- a/docs/dyn/freebase.v1.text.html
+++ b/docs/dyn/freebase.v1.text.html
@@ -17,12 +17,16 @@
<dl><dt><a name="Resource-get"><strong>get</strong></a> = method(self, **kwargs)</dt><dd><tt>Returns blob attached to node at specified id as HTML<br>
<br>
Args:<br>
+ pp: string, A parameter<br>
+ trace: string, A parameter<br>
format: string, Sanitizing transformation.<br>
Allowed values<br>
html - Return valid, sanitized html.<br>
plain - Return plain text - strip html tags.<br>
raw - Return the entire content as-is.<br>
+ strict: string, A parameter<br>
maxlength: integer, The max number of characters to return. Valid only for 'plain' format.<br>
+ userip: string, A parameter<br>
id: string, The id of the item that you want data about (required) (repeated)<br>
<br>
Returns:<br>
diff --git a/docs/dyn/gan.v1beta1.advertisers.html b/docs/dyn/gan.v1beta1.advertisers.html
index 5d33040..8b454b8 100644
--- a/docs/dyn/gan.v1beta1.advertisers.html
+++ b/docs/dyn/gan.v1beta1.advertisers.html
@@ -17,20 +17,24 @@
<dl><dt><a name="Resource-get"><strong>get</strong></a> = method(self, **kwargs)</dt><dd><tt>Retrieves data about a single advertiser if that the requesting advertiser/publisher has access to it. Only publishers can lookup advertisers. Advertisers can request information about themselves by omitting the advertiserId query parameter.<br>
<br>
Args:<br>
- roleId: string, The ID of the requesting advertiser or publisher. (required)<br>
advertiserId: string, The ID of the advertiser to look up. Optional.<br>
+ pp: string, A parameter<br>
+ trace: string, A parameter<br>
+ roleId: string, The ID of the requesting advertiser or publisher. (required)<br>
+ strict: string, A parameter<br>
role: string, The role of the requester. Valid values: 'advertisers' or 'publishers'. (required)<br>
Allowed values<br>
advertisers - The requester is requesting as an advertiser.<br>
publishers - The requester is requesting as a publisher.<br>
+ userip: string, A parameter<br>
<br>
Returns:<br>
An object of the form<br>
<br>
{ # An AdvertiserResource.<br>
"category": "A String", # Category that this advertiser belongs to. A valid list of categories can be found here: <a href="http://www.google.com/support/affiliatenetwork/advertiser/bin/answer.py?hl=en&answer=107581">http://www.google.com/support/affiliatenetwork/advertiser/bin/answer.py?hl=en&answer=107581</a><br>
- "productFeedsEnabled": True or False, # Allows advertisers to submit product listings to Google Product Search.<br>
- "kind": "gan#advertiser", # The kind for an advertiser. The kind for one entity.<br>
+ "contactEmail": "A String", # Email that this advertiser would like publishers to contact them with.<br>
+ "kind": "gan#advertiser", # The kind for an advertiser.<br>
"siteUrl": "A String", # URL of the website this advertiser advertises from.<br>
"contactPhone": "A String", # Phone that this advertiser would like publishers to contact them with.<br>
"description": "A String", # Description of the website the advertiser advertises from.<br>
@@ -45,11 +49,12 @@
"amount": 3.14, # The amount of money.<br>
"currencyCode": "A String", # The 3-letter code of the currency in question.<br>
},<br>
- "contactEmail": "A String", # Email that this advertiser would like publishers to contact them with.<br>
+ "allowPublisherCreatedLinks": True or False, # True if the advertiser allows publisher created links, otherwise false.<br>
"item": # Object with schema name: Advertiser # The requested advertiser.<br>
"joinDate": "A String", # Date that this advertiser was approved as a Google Affiliate Network advertiser.<br>
"logoUrl": "A String", # URL to the logo this advertiser uses on the Google Affiliate Network.<br>
"id": "A String", # The ID of this advertiser.<br>
+ "productFeedsEnabled": True or False, # Allows advertisers to submit product listings to Google Product Search.<br>
"name": "A String", # The name of this advertiser.<br>
}</tt></dd></dl>
@@ -63,16 +68,20 @@
deactivated - Deactivated means either the advertiser has removed you from their program, or it could also mean that you chose to remove yourself from the advertiser's program.<br>
declined - An advertiser that did not approve your application.<br>
pending - An advertiser program that you've already applied to, but they haven't yet decided to approve or decline your application.<br>
- roleId: string, The ID of the requesting advertiser or publisher. (required)<br>
- minNinetyDayEpc: number, Filters out all advertisers that have a ninety day EPC average lower than the given value (inclusive). Min value: 0.0. Optional.<br>
- advertiserCategory: string, Caret(^) delimted list of advertiser categories. Valid categories are defined here: <a href="http://www.google.com/support/affiliatenetwork/advertiser/bin/answer.py?hl=en&answer=107581">http://www.google.com/support/affiliatenetwork/advertiser/bin/answer.py?hl=en&answer=107581</a>. Filters out all advertisers not in one of the given advertiser categories. Optional.<br>
+ trace: string, A parameter<br>
pageToken: string, The value of 'nextPageToken' from the previous page. Optional.<br>
+ pp: string, A parameter<br>
+ roleId: string, The ID of the requesting advertiser or publisher. (required)<br>
+ advertiserCategory: string, Caret(^) delimted list of advertiser categories. Valid categories are defined here: <a href="http://www.google.com/support/affiliatenetwork/advertiser/bin/answer.py?hl=en&answer=107581">http://www.google.com/support/affiliatenetwork/advertiser/bin/answer.py?hl=en&answer=107581</a>. Filters out all advertisers not in one of the given advertiser categories. Optional.<br>
+ minNinetyDayEpc: number, Filters out all advertisers that have a ninety day EPC average lower than the given value (inclusive). Min value: 0.0. Optional.<br>
+ strict: string, A parameter<br>
role: string, The role of the requester. Valid values: 'advertisers' or 'publishers'. (required)<br>
Allowed values<br>
advertisers - The requester is requesting as an advertiser.<br>
publishers - The requester is requesting as a publisher.<br>
maxResults: integer, Max number of items to return in this page. Optional. Defaults to 20.<br>
minSevenDayEpc: number, Filters out all advertisers that have a seven day EPC average lower than the given value (inclusive). Min value: 0.0. Optional.<br>
+ userip: string, A parameter<br>
minPayoutRank: integer, A value between 1 and 4, where 1 represents the quartile of advertisers with the lowest ranks and 4 represents the quartile of advertisers with the highest ranks. Filters out all advertisers with a lower rank than the given quartile. For example if a 2 was given only advertisers with a payout rank of 25 or higher would be included. Optional.<br>
<br>
Returns:<br>
@@ -83,8 +92,8 @@
"items": [ # The advertiser list.<br>
{ # An AdvertiserResource.<br>
"category": "A String", # Category that this advertiser belongs to. A valid list of categories can be found here: <a href="http://www.google.com/support/affiliatenetwork/advertiser/bin/answer.py?hl=en&answer=107581">http://www.google.com/support/affiliatenetwork/advertiser/bin/answer.py?hl=en&answer=107581</a><br>
- "productFeedsEnabled": True or False, # Allows advertisers to submit product listings to Google Product Search.<br>
- "kind": "gan#advertiser", # The kind for an advertiser. The kind for one entity.<br>
+ "contactEmail": "A String", # Email that this advertiser would like publishers to contact them with.<br>
+ "kind": "gan#advertiser", # The kind for an advertiser.<br>
"siteUrl": "A String", # URL of the website this advertiser advertises from.<br>
"contactPhone": "A String", # Phone that this advertiser would like publishers to contact them with.<br>
"description": "A String", # Description of the website the advertiser advertises from.<br>
@@ -99,11 +108,12 @@
"amount": 3.14, # The amount of money.<br>
"currencyCode": "A String", # The 3-letter code of the currency in question.<br>
},<br>
- "contactEmail": "A String", # Email that this advertiser would like publishers to contact them with.<br>
+ "allowPublisherCreatedLinks": True or False, # True if the advertiser allows publisher created links, otherwise false.<br>
"item": # Object with schema name: Advertiser # The requested advertiser.<br>
"joinDate": "A String", # Date that this advertiser was approved as a Google Affiliate Network advertiser.<br>
"logoUrl": "A String", # URL to the logo this advertiser uses on the Google Affiliate Network.<br>
"id": "A String", # The ID of this advertiser.<br>
+ "productFeedsEnabled": True or False, # Allows advertisers to submit product listings to Google Product Search.<br>
"name": "A String", # The name of this advertiser.<br>
},<br>
],<br>
diff --git a/docs/dyn/gan.v1beta1.ccOffers.html b/docs/dyn/gan.v1beta1.ccOffers.html
index 6ec8e7e..76a5297 100644
--- a/docs/dyn/gan.v1beta1.ccOffers.html
+++ b/docs/dyn/gan.v1beta1.ccOffers.html
@@ -18,11 +18,15 @@
<br>
Args:<br>
advertiser: string, The advertiser ID of a card issuer whose offers to include. Optional, may be repeated. (repeated)<br>
+ pp: string, A parameter<br>
projection: string, The set of fields to return.<br>
Allowed values<br>
- full - Include all offer fields<br>
- summary - Include only the basic fields needed to display an offer. This is the default.<br>
+ full - Include all offer fields. This is the default.<br>
+ summary - Include only the basic fields needed to display an offer.<br>
publisher: string, The ID of the publisher in question. (required)<br>
+ userip: string, A parameter<br>
+ trace: string, A parameter<br>
+ strict: string, A parameter<br>
<br>
Returns:<br>
An object of the form<br>
@@ -66,7 +70,6 @@
"prohibitedCategories": [ # Categories in which the issuer does not wish the card to be displayed. A summary field.<br>
"A String",<br>
],<br>
- "creditRatingDisplay": "A String", # Text describing the credit ratings required for recipients of this card, for example "Excellent/Good." A summary field.<br>
"fraudLiability": "A String", # If you get coverage when you use the card for the given activity, this field describes it.<br>
"cashAdvanceTerms": "A String", # Text describing the terms for cash advances. A summary field.<br>
"landingPageUrl": "A String", # The link to the issuer's page for this card. A summary field.<br>
@@ -82,6 +85,7 @@
},<br>
],<br>
"extendedWarranty": "A String", # If you get coverage when you use the card for the given activity, this field describes it.<br>
+ "emergencyInsurance": "A String", # If you get coverage when you use the card for the given activity, this field describes it.<br>
"firstYearAnnualFee": 3.14, # The annual fee for the first year, if different from the ongoing fee. Optional.<br>
"trackingUrl": "A String", # The link to ping to register a click on this offer. A summary field.<br>
"latePaymentFee": "A String", # Text describing how much a late payment will cost, eg "up to $35." A summary field.<br>
@@ -101,6 +105,7 @@
"A String",<br>
],<br>
"ageMinimum": 3.14, # The youngest a recipient of this card may be.<br>
+ "balanceComputationMethod": "A String", # Text describing how the balance is computed. A summary field.<br>
"aprDisplay": "A String", # Text describing the purchase APR. A summary field.<br>
"additionalCardHolderFee": "A String", # Any extra fees levied on card holders.<br>
"variableRatesLastUpdated": "A String", # When variable rates were last updated.<br>
@@ -108,7 +113,7 @@
"purchaseRateType": "A String", # Fixed or variable.<br>
"statementCopyFee": "A String", # Fee for requesting a copy of your statement.<br>
"rewardsHaveBlackoutDates": True or False, # For airline miles rewards, tells whether blackout dates apply to the miles.<br>
- "emergencyInsurance": "A String", # If you get coverage when you use the card for the given activity, this field describes it.<br>
+ "creditRatingDisplay": "A String", # Text describing the credit ratings required for recipients of this card, for example "Excellent/Good." A summary field.<br>
"flightAccidentInsurance": "A String", # If you get coverage when you use the card for the given activity, this field describes it.<br>
"annualRewardMaximum": 3.14, # The largest number of units you may accumulate in a year.<br>
"balanceTransferTerms": "A String", # Text describing the terms for balance transfers. A summary field.<br>
diff --git a/docs/dyn/gan.v1beta1.events.html b/docs/dyn/gan.v1beta1.events.html
index f01361c..894a0a8 100644
--- a/docs/dyn/gan.v1beta1.events.html
+++ b/docs/dyn/gan.v1beta1.events.html
@@ -18,12 +18,23 @@
<br>
Args:<br>
orderId: string, Caret(^) delimited list of order IDs. Filters out all events that do not reference one of the given order IDs. Optional.<br>
+ chargeType: string, Filters out all charge events that are not of the given charge type. Valid values: 'other', 'slotting_fee', 'monthly_minimum', 'tier_bonus', 'credit', 'debit'. Optional.<br>
+ Allowed values<br>
+ credit - A credit increases the publisher's payout amount and decreases the advertiser's invoice amount.<br>
+ debit - A debit reduces the publisher's payout and increases the advertiser's invoice amount.<br>
+ monthly_minimum - A payment made to Google by an advertiser as a minimum monthly network fee.<br>
+ other - Catch all. Default if unset<br>
+ slotting_fee - A one time payment made from an advertiser to a publisher.<br>
+ tier_bonus - A payment from an advertiser to a publisher for the publisher maintaining a high tier level<br>
linkId: string, Caret(^) delimited list of link IDs. Filters out all events that do not reference one of the given link IDs. Optional.<br>
advertiserId: string, Caret(^) delimited list of advertiser IDs. Filters out all events that do not reference one of the given advertiser IDs. Only used when under publishers role. Optional.<br>
sku: string, Caret(^) delimited list of SKUs. Filters out all events that do not reference one of the given SKU. Optional.<br>
+ pp: string, A parameter<br>
+ trace: string, A parameter<br>
+ pageToken: string, The value of 'nextPageToken' from the previous page. Optional.<br>
roleId: string, The ID of the requesting advertiser or publisher. (required)<br>
productCategory: string, Caret(^) delimited list of product categories. Filters out all events that do not reference a product in one of the given product categories. Optional.<br>
- pageToken: string, The value of 'nextPageToken' from the previous page. Optional.<br>
+ strict: string, A parameter<br>
role: string, The role of the requester. Valid values: 'advertisers' or 'publishers'. (required)<br>
Allowed values<br>
advertisers - The requester is requesting as an advertiser.<br>
@@ -41,16 +52,9 @@
modifyDateMax: string, Filters out all events modified later than given date. Optional. Defaults to 24 hours after modifyDateMin, if modifyDateMin is explicitly set.<br>
eventDateMin: string, Filters out all events earlier than given date. Optional. Defaults to 24 hours from current date/time.<br>
maxResults: integer, Max number of offers to return in this page. Optional. Defaults to 20.<br>
- chargeType: string, Filters out all charge events that are not of the given charge type. Valid values: 'other', 'slotting_fee', 'monthly_minimum', 'tier_bonus', 'credit', 'debit'. Optional.<br>
- Allowed values<br>
- credit - A credit increases the publisher's payout amount and decreases the advertiser's invoice amount.<br>
- debit - A debit reduces the publisher's payout and increases the advertiser's invoice amount.<br>
- monthly_minimum - A payment made to Google by an advertiser as a minimum monthly network fee.<br>
- other - Catch all. Default if unset<br>
- slotting_fee - A one time payment made from an advertiser to a publisher.<br>
- tier_bonus - A payment from an advertiser to a publisher for the publisher maintaining a high tier level<br>
eventDateMax: string, Filters out all events later than given date. Optional. Defaults to 24 hours after eventMin.<br>
memberId: string, Caret(^) delimited list of member IDs. Filters out all events that do not reference one of the given member IDs. Optional.<br>
+ userip: string, A parameter<br>
publisherId: string, Caret(^) delimited list of publisher IDs. Filters out all events that do not reference one of the given publishers IDs. Only used when under advertiser role. Optional.<br>
<br>
Returns:<br>
diff --git a/docs/dyn/gan.v1beta1.html b/docs/dyn/gan.v1beta1.html
index e4ce028..f1d4fe5 100644
--- a/docs/dyn/gan.v1beta1.html
+++ b/docs/dyn/gan.v1beta1.html
@@ -20,6 +20,8 @@
<dl><dt><a name="Resource-events"><strong><a href="gan.v1beta1.events.html">events</a></strong></a> = methodResource(self)</dt><dd><tt>A collection resource.</tt></dd></dl>
+<dl><dt><a name="Resource-links"><strong><a href="gan.v1beta1.links.html">links</a></strong></a> = methodResource(self)</dt><dd><tt>A collection resource.</tt></dd></dl>
+
<dl><dt><a name="Resource-publishers"><strong><a href="gan.v1beta1.publishers.html">publishers</a></strong></a> = methodResource(self)</dt><dd><tt>A collection resource.</tt></dd></dl>
<hr>
diff --git a/docs/dyn/gan.v1beta1.links.html b/docs/dyn/gan.v1beta1.links.html
new file mode 100644
index 0000000..a413ff6
--- /dev/null
+++ b/docs/dyn/gan.v1beta1.links.html
@@ -0,0 +1,244 @@
+
+<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
+<html><head><title>Python: class Resource</title>
+</head><body bgcolor="#f0f0f8">
+<p>
+<table width="100%" cellspacing=0 cellpadding=2 border=0 summary="section">
+<tr bgcolor="#ffc8d8">
+<td colspan=3 valign=bottom> <br>
+<font color="#000000" face="helvetica, arial"><a name="Resource">class <strong>Resource</strong></a>(<a href="__builtin__.html#object">__builtin__.object</a>)</font></td></tr>
+
+<tr bgcolor="#ffc8d8"><td rowspan=2><tt> </tt></td>
+<td colspan=2><tt>A class for interacting with a resource.<br> </tt></td></tr>
+<tr><td> </td>
+<td width="100%">Methods defined here:<br>
+<dl><dt><a name="Resource-__init__"><strong>__init__</strong></a>(self)</dt></dl>
+
+<dl><dt><a name="Resource-get"><strong>get</strong></a> = method(self, **kwargs)</dt><dd><tt>Retrieves data about a single link if the requesting advertiser/publisher has access to it. Advertisers can look up their own links. Publishers can look up visible links or links belonging to advertisers they are in a relationship with.<br>
+ <br>
+Args:<br>
+ pp: string, A parameter<br>
+ trace: string, A parameter<br>
+ roleId: string, The ID of the requesting advertiser or publisher. (required)<br>
+ strict: string, A parameter<br>
+ role: string, The role of the requester. Valid values: 'advertisers' or 'publishers'. (required)<br>
+ Allowed values<br>
+ advertisers - The requester is requesting as an advertiser.<br>
+ publishers - The requester is requesting as a publisher.<br>
+ linkId: string, The ID of the link to look up. (required)<br>
+ userip: string, A parameter<br>
+ <br>
+Returns:<br>
+ An object of the form<br>
+ <br>
+ { # A LinkResource.<br>
+ "startDate": "A String", # Date that this link becomes active.<br>
+ "kind": "gan#link", # The kind for one entity.<br>
+ "endDate": "A String", # Date that this link becomes inactive.<br>
+ "description": "A String", # Description.<br>
+ "name": "A String", # The logical name for this link.<br>
+ "createDate": "A String", # Date that this link was created.<br>
+ "imageAltText": "A String", # image alt text.<br>
+ "id": "A String", # The ID of this link.<br>
+ "advertiserId": "A String", # The advertiser id for the advertiser who owns this link.<br>
+ "creativeType": "A String", # Creative Type.<br>
+ "promotionType": "A String", # Promotion Type<br>
+ "duration": "A String", # Duration<br>
+ "authorship": "A String", # Authorship<br>
+ "availability": "A String", # Availability.<br>
+ "isActive": True or False, # Flag for if this link is active.<br>
+ "destinationUrl": "A String", # The destination URL for the link.<br>
+ }</tt></dd></dl>
+
+<dl><dt><a name="Resource-insert"><strong>insert</strong></a> = method(self, **kwargs)</dt><dd><tt>Inserts a new link.<br>
+ <br>
+Args:<br>
+ body: object, The request body. (required)<br>
+ The object takes the form of:<br>
+ <br>
+{ # A LinkResource.<br>
+ "startDate": "A String", # Date that this link becomes active.<br>
+ "kind": "gan#link", # The kind for one entity.<br>
+ "endDate": "A String", # Date that this link becomes inactive.<br>
+ "description": "A String", # Description.<br>
+ "name": "A String", # The logical name for this link.<br>
+ "createDate": "A String", # Date that this link was created.<br>
+ "imageAltText": "A String", # image alt text.<br>
+ "id": "A String", # The ID of this link.<br>
+ "advertiserId": "A String", # The advertiser id for the advertiser who owns this link.<br>
+ "creativeType": "A String", # Creative Type.<br>
+ "promotionType": "A String", # Promotion Type<br>
+ "duration": "A String", # Duration<br>
+ "authorship": "A String", # Authorship<br>
+ "availability": "A String", # Availability.<br>
+ "isActive": True or False, # Flag for if this link is active.<br>
+ "destinationUrl": "A String", # The destination URL for the link.<br>
+ }<br>
+ <br>
+ pp: string, A parameter<br>
+ trace: string, A parameter<br>
+ roleId: string, The ID of the requesting advertiser or publisher. (required)<br>
+ strict: string, A parameter<br>
+ role: string, The role of the requester. Valid values: 'advertisers' or 'publishers'. (required)<br>
+ Allowed values<br>
+ advertisers - The requester is requesting as an advertiser.<br>
+ publishers - The requester is requesting as a publisher.<br>
+ userip: string, A parameter<br>
+ <br>
+Returns:<br>
+ An object of the form<br>
+ <br>
+ { # A LinkResource.<br>
+ "startDate": "A String", # Date that this link becomes active.<br>
+ "kind": "gan#link", # The kind for one entity.<br>
+ "endDate": "A String", # Date that this link becomes inactive.<br>
+ "description": "A String", # Description.<br>
+ "name": "A String", # The logical name for this link.<br>
+ "createDate": "A String", # Date that this link was created.<br>
+ "imageAltText": "A String", # image alt text.<br>
+ "id": "A String", # The ID of this link.<br>
+ "advertiserId": "A String", # The advertiser id for the advertiser who owns this link.<br>
+ "creativeType": "A String", # Creative Type.<br>
+ "promotionType": "A String", # Promotion Type<br>
+ "duration": "A String", # Duration<br>
+ "authorship": "A String", # Authorship<br>
+ "availability": "A String", # Availability.<br>
+ "isActive": True or False, # Flag for if this link is active.<br>
+ "destinationUrl": "A String", # The destination URL for the link.<br>
+ }</tt></dd></dl>
+
+<dl><dt><a name="Resource-list"><strong>list</strong></a> = method(self, **kwargs)</dt><dd><tt>Retrieves all links that match the query parameters.<br>
+ <br>
+Args:<br>
+ linkType: string, The type of the link.<br>
+ Allowed values<br>
+ banner - <br>
+ text - <br>
+ promotionType: string, The promotion type. (repeated)<br>
+ Allowed values<br>
+ buy_get - <br>
+ coupon - <br>
+ free_gift - <br>
+ free_gift_wrap - <br>
+ free_shipping - <br>
+ none - <br>
+ ongoing - <br>
+ percent_off - <br>
+ price_cut - <br>
+ product_promotion - <br>
+ sale - <br>
+ sweepstakes - <br>
+ advertiserId: string, Limits the resulting links to the ones belonging to the listed advertisers. (repeated)<br>
+ pp: string, A parameter<br>
+ trace: string, A parameter<br>
+ strict: string, A parameter<br>
+ roleId: string, The ID of the requesting advertiser or publisher. (required)<br>
+ pageToken: string, The value of 'nextPageToken' from the previous page. Optional.<br>
+ role: string, The role of the requester. Valid values: 'advertisers' or 'publishers'. (required)<br>
+ Allowed values<br>
+ advertisers - The requester is requesting as an advertiser.<br>
+ publishers - The requester is requesting as a publisher.<br>
+ relationshipStatus: string, The status of the relationship.<br>
+ Allowed values<br>
+ approved - <br>
+ available - <br>
+ maxResults: integer, Max number of items to return in this page. Optional. Defaults to 20.<br>
+ advertiserCategory: string, The advertiser's primary vertical. (repeated)<br>
+ Allowed values<br>
+ apparel_accessories - <br>
+ appliances_electronics - <br>
+ auto_dealer - <br>
+ automotive - <br>
+ babies_kids - <br>
+ blogs_personal_sites - <br>
+ books_magazines - <br>
+ computers - <br>
+ dating - <br>
+ department_stores - <br>
+ education - <br>
+ employment - <br>
+ financial_credit_cards - <br>
+ financial_other - <br>
+ flowers_gifts - <br>
+ grocery - <br>
+ health_beauty - <br>
+ home_garden - <br>
+ hosting_domain - <br>
+ internet_providers - <br>
+ legal - <br>
+ media_entertainment - <br>
+ medical - <br>
+ movies_games - <br>
+ music - <br>
+ nonprofit - <br>
+ office_supplies - <br>
+ online_games - <br>
+ outdoor - <br>
+ pets - <br>
+ real_estate - <br>
+ restaurants - <br>
+ sport_fitness - <br>
+ telecom - <br>
+ ticketing - <br>
+ toys_hobbies - <br>
+ travel - <br>
+ utilities - <br>
+ wholesale_relationship - <br>
+ wine_spirits - <br>
+ authorship: string, The role of the author of the link.<br>
+ Allowed values<br>
+ advertiser - <br>
+ publisher - <br>
+ startDateMin: string, The beginning of the start date range.<br>
+ assetSize: string, The size of the given asset. (repeated)<br>
+ startDateMax: string, The end of the start date range.<br>
+ userip: string, A parameter<br>
+ <br>
+Returns:<br>
+ An object of the form<br>
+ <br>
+ {<br>
+ "nextPageToken": "A String", # The next page token.<br>
+ "items": [ # The links.<br>
+ { # A LinkResource.<br>
+ "startDate": "A String", # Date that this link becomes active.<br>
+ "kind": "gan#link", # The kind for one entity.<br>
+ "endDate": "A String", # Date that this link becomes inactive.<br>
+ "description": "A String", # Description.<br>
+ "name": "A String", # The logical name for this link.<br>
+ "createDate": "A String", # Date that this link was created.<br>
+ "imageAltText": "A String", # image alt text.<br>
+ "id": "A String", # The ID of this link.<br>
+ "advertiserId": "A String", # The advertiser id for the advertiser who owns this link.<br>
+ "creativeType": "A String", # Creative Type.<br>
+ "promotionType": "A String", # Promotion Type<br>
+ "duration": "A String", # Duration<br>
+ "authorship": "A String", # Authorship<br>
+ "availability": "A String", # Availability.<br>
+ "isActive": True or False, # Flag for if this link is active.<br>
+ "destinationUrl": "A String", # The destination URL for the link.<br>
+ },<br>
+ ],<br>
+ "kind": "gan#links", # The kind for a page of links.<br>
+ }</tt></dd></dl>
+
+<dl><dt><a name="Resource-list_next"><strong>list_next</strong></a> = methodNext(self, previous_request, previous_response)</dt><dd><tt>Retrieves the next page of results.<br>
+ <br>
+Args:<br>
+ previous_request: The request for the previous page.<br>
+ previous_response: The response from the request for the previous page.<br>
+ <br>
+Returns:<br>
+ A request object that you can call 'execute()' on to request the next<br>
+ page. Returns None if there are no more items in the collection.</tt></dd></dl>
+
+<hr>
+Data descriptors defined here:<br>
+<dl><dt><strong>__dict__</strong></dt>
+<dd><tt>dictionary for instance variables (if defined)</tt></dd>
+</dl>
+<dl><dt><strong>__weakref__</strong></dt>
+<dd><tt>list of weak references to the object (if defined)</tt></dd>
+</dl>
+</td></tr></table>
+</body></html>
\ No newline at end of file
diff --git a/docs/dyn/gan.v1beta1.publishers.html b/docs/dyn/gan.v1beta1.publishers.html
index 1f2f736..26aec1d 100644
--- a/docs/dyn/gan.v1beta1.publishers.html
+++ b/docs/dyn/gan.v1beta1.publishers.html
@@ -17,11 +17,15 @@
<dl><dt><a name="Resource-get"><strong>get</strong></a> = method(self, **kwargs)</dt><dd><tt>Retrieves data about a single advertiser if that the requesting advertiser/publisher has access to it. Only advertisers can look up publishers. Publishers can request information about themselves by omitting the publisherId query parameter.<br>
<br>
Args:<br>
+ pp: string, A parameter<br>
+ trace: string, A parameter<br>
+ strict: string, A parameter<br>
role: string, The role of the requester. Valid values: 'advertisers' or 'publishers'. (required)<br>
Allowed values<br>
advertisers - The requester is requesting as an advertiser.<br>
publishers - The requester is requesting as a publisher.<br>
roleId: string, The ID of the requesting advertiser or publisher. (required)<br>
+ userip: string, A parameter<br>
publisherId: string, The ID of the publisher to look up. Optional.<br>
<br>
Returns:<br>
@@ -29,7 +33,7 @@
<br>
{ # A PublisherResource.<br>
"status": "A String", # The status of the requesting advertiser's relationship with this publisher.<br>
- "kind": "gan#publisher", # The kind for one publisher. The kind for a publisher.<br>
+ "kind": "gan#publisher", # The kind for a publisher.<br>
"name": "A String", # The name of this publisher.<br>
"classification": "A String", # Classification that this publisher belongs to. See this link for all publisher classifications: <a href="http://www.google.com/support/affiliatenetwork/advertiser/bin/answer.py?hl=en&answer=107625&ctx=cb&src=cb&cbid=-k5fihzthfaik&cbrank=4">http://www.google.com/support/affiliatenetwork/advertiser/bin/answer.py?hl=en&answer=107625&ctx=cb&src=cb&cbid=-k5fihzthfaik&cbrank=4</a><br>
"epcSevenDayAverage": { # An ApiMoneyProto. # The sum of fees paid to this publisher divided by the total number of clicks over the past seven days. Values are multiplied by 100 for display purposes.<br>
@@ -60,15 +64,19 @@
deactivated - A publisher that you terminated from your program. Publishers also have the ability to remove themselves from your program.<br>
declined - A publisher that you did not approve to your program.<br>
pending - Publishers that have applied to your program. We recommend reviewing and deciding on pending publishers on a weekly basis.<br>
- roleId: string, The ID of the requesting advertiser or publisher. (required)<br>
+ trace: string, A parameter<br>
pageToken: string, The value of 'nextPageToken' from the previous page. Optional.<br>
minSevenDayEpc: number, Filters out all publishers that have a seven day EPC average lower than the given value (inclusive). Min value 0.0. Optional.<br>
+ roleId: string, The ID of the requesting advertiser or publisher. (required)<br>
+ pp: string, A parameter<br>
minNinetyDayEpc: number, Filters out all publishers that have a ninety day EPC average lower than the given value (inclusive). Min value: 0.0. Optional.<br>
+ strict: string, A parameter<br>
role: string, The role of the requester. Valid values: 'advertisers' or 'publishers'. (required)<br>
Allowed values<br>
advertisers - The requester is requesting as an advertiser.<br>
publishers - The requester is requesting as a publisher.<br>
maxResults: integer, Max number of items to return in this page. Optional. Defaults to 20.<br>
+ userip: string, A parameter<br>
minPayoutRank: integer, A value between 1 and 4, where 1 represents the quartile of publishers with the lowest ranks and 4 represents the quartile of publishers with the highest ranks. Filters out all publishers with a lower rank than the given quartile. For example if a 2 was given only publishers with a payout rank of 25 or higher would be included. Optional.<br>
<br>
Returns:<br>
@@ -79,7 +87,7 @@
"items": [ # The entity list.<br>
{ # A PublisherResource.<br>
"status": "A String", # The status of the requesting advertiser's relationship with this publisher.<br>
- "kind": "gan#publisher", # The kind for one publisher. The kind for a publisher.<br>
+ "kind": "gan#publisher", # The kind for a publisher.<br>
"name": "A String", # The name of this publisher.<br>
"classification": "A String", # Classification that this publisher belongs to. See this link for all publisher classifications: <a href="http://www.google.com/support/affiliatenetwork/advertiser/bin/answer.py?hl=en&answer=107625&ctx=cb&src=cb&cbid=-k5fihzthfaik&cbrank=4">http://www.google.com/support/affiliatenetwork/advertiser/bin/answer.py?hl=en&answer=107625&ctx=cb&src=cb&cbid=-k5fihzthfaik&cbrank=4</a><br>
"epcSevenDayAverage": { # An ApiMoneyProto. # The sum of fees paid to this publisher divided by the total number of clicks over the past seven days. Values are multiplied by 100 for display purposes.<br>
diff --git a/docs/dyn/groupssettings.v1.groups.html b/docs/dyn/groupssettings.v1.groups.html
index 5eef93c..b84125d 100644
--- a/docs/dyn/groupssettings.v1.groups.html
+++ b/docs/dyn/groupssettings.v1.groups.html
@@ -17,7 +17,11 @@
<dl><dt><a name="Resource-get"><strong>get</strong></a> = method(self, **kwargs)</dt><dd><tt>Gets one resource by id.<br>
<br>
Args:<br>
+ pp: string, A parameter<br>
+ trace: string, A parameter<br>
+ strict: string, A parameter<br>
groupUniqueId: string, The resource ID (required)<br>
+ userip: string, A parameter<br>
<br>
Returns:<br>
An object of the form<br>
@@ -82,7 +86,11 @@
"allowGoogleCommunication": "A String", # Is google allowed to contact admins.<br>
}<br>
<br>
+ pp: string, A parameter<br>
+ trace: string, A parameter<br>
+ strict: string, A parameter<br>
groupUniqueId: string, The resource ID (required)<br>
+ userip: string, A parameter<br>
<br>
Returns:<br>
An object of the form<br>
@@ -147,7 +155,11 @@
"allowGoogleCommunication": "A String", # Is google allowed to contact admins.<br>
}<br>
<br>
+ pp: string, A parameter<br>
+ trace: string, A parameter<br>
+ strict: string, A parameter<br>
groupUniqueId: string, The resource ID (required)<br>
+ userip: string, A parameter<br>
<br>
Returns:<br>
An object of the form<br>
diff --git a/docs/dyn/latitude.v1.currentLocation.html b/docs/dyn/latitude.v1.currentLocation.html
index bf0cda4..3969cc1 100644
--- a/docs/dyn/latitude.v1.currentLocation.html
+++ b/docs/dyn/latitude.v1.currentLocation.html
@@ -16,12 +16,23 @@
<dl><dt><a name="Resource-delete"><strong>delete</strong></a> = method(self, **kwargs)</dt><dd><tt>Deletes the authenticated user's current location.<br>
<br>
-Args:</tt></dd></dl>
+Args:<br>
+ pp: string, A parameter<br>
+ trace: string, A parameter<br>
+ strict: string, A parameter<br>
+ userip: string, A parameter</tt></dd></dl>
<dl><dt><a name="Resource-get"><strong>get</strong></a> = method(self, **kwargs)</dt><dd><tt>Returns the authenticated user's current location.<br>
<br>
Args:<br>
+ pp: string, A parameter<br>
+ trace: string, A parameter<br>
+ strict: string, A parameter<br>
granularity: string, Granularity of the requested location.<br>
+ Allowed values<br>
+ best - Request best available granularity.<br>
+ city - Request city-level granularty.<br>
+ userip: string, A parameter<br>
<br>
Returns:<br>
An object of the form<br>
@@ -58,6 +69,10 @@
"accuracy": "", # Accuracy of the latitude and longitude coordinates, in non-negative meters. Optional.<br>
}<br>
<br>
+ pp: string, A parameter<br>
+ trace: string, A parameter<br>
+ strict: string, A parameter<br>
+ userip: string, A parameter<br>
<br>
Returns:<br>
An object of the form<br>
diff --git a/docs/dyn/latitude.v1.location.html b/docs/dyn/latitude.v1.location.html
index e0f2b0a..7165067 100644
--- a/docs/dyn/latitude.v1.location.html
+++ b/docs/dyn/latitude.v1.location.html
@@ -17,13 +17,24 @@
<dl><dt><a name="Resource-delete"><strong>delete</strong></a> = method(self, **kwargs)</dt><dd><tt>Deletes a location from the user's location history.<br>
<br>
Args:<br>
- locationId: string, Timestamp of the location to delete (ms since epoch). (required)</tt></dd></dl>
+ pp: string, A parameter<br>
+ trace: string, A parameter<br>
+ strict: string, A parameter<br>
+ locationId: string, Timestamp of the location to delete (ms since epoch). (required)<br>
+ userip: string, A parameter</tt></dd></dl>
<dl><dt><a name="Resource-get"><strong>get</strong></a> = method(self, **kwargs)</dt><dd><tt>Reads a location from the user's location history.<br>
<br>
Args:<br>
+ pp: string, A parameter<br>
+ trace: string, A parameter<br>
+ strict: string, A parameter<br>
locationId: string, Timestamp of the location to read (ms since epoch). (required)<br>
granularity: string, Granularity of the location to return.<br>
+ Allowed values<br>
+ best - Request best available granularity.<br>
+ city - Request city-level granularty.<br>
+ userip: string, A parameter<br>
<br>
Returns:<br>
An object of the form<br>
@@ -60,6 +71,10 @@
"accuracy": "", # Accuracy of the latitude and longitude coordinates, in non-negative meters. Optional.<br>
}<br>
<br>
+ pp: string, A parameter<br>
+ trace: string, A parameter<br>
+ strict: string, A parameter<br>
+ userip: string, A parameter<br>
<br>
Returns:<br>
An object of the form<br>
@@ -80,10 +95,17 @@
<dl><dt><a name="Resource-list"><strong>list</strong></a> = method(self, **kwargs)</dt><dd><tt>Lists the user's location history.<br>
<br>
Args:<br>
+ pp: string, A parameter<br>
+ trace: string, A parameter<br>
min_time: string, Minimum timestamp of locations to return (ms since epoch).<br>
+ userip: string, A parameter<br>
+ strict: string, A parameter<br>
max_results: string, Maximum number of locations to return.<br>
- max_time: string, Maximum timestamp of locations to return (ms since epoch).<br>
granularity: string, Granularity of the requested locations.<br>
+ Allowed values<br>
+ best - Request best available granularity.<br>
+ city - Request city-level granularty.<br>
+ max_time: string, Maximum timestamp of locations to return (ms since epoch).<br>
<br>
Returns:<br>
An object of the form<br>
diff --git a/docs/dyn/moderator.v1.featured.series.html b/docs/dyn/moderator.v1.featured.series.html
index 84f141a..176cc67 100644
--- a/docs/dyn/moderator.v1.featured.series.html
+++ b/docs/dyn/moderator.v1.featured.series.html
@@ -17,6 +17,10 @@
<dl><dt><a name="Resource-list"><strong>list</strong></a> = method(self, **kwargs)</dt><dd><tt>Lists the featured series.<br>
<br>
Args:<br>
+ pp: string, A parameter<br>
+ trace: string, A parameter<br>
+ strict: string, A parameter<br>
+ userip: string, A parameter<br>
<br>
Returns:<br>
An object of the form<br>
diff --git a/docs/dyn/moderator.v1.my.series.html b/docs/dyn/moderator.v1.my.series.html
index afdfa3e..5dec8db 100644
--- a/docs/dyn/moderator.v1.my.series.html
+++ b/docs/dyn/moderator.v1.my.series.html
@@ -17,6 +17,10 @@
<dl><dt><a name="Resource-list"><strong>list</strong></a> = method(self, **kwargs)</dt><dd><tt>Lists all series created by the authenticated user.<br>
<br>
Args:<br>
+ pp: string, A parameter<br>
+ trace: string, A parameter<br>
+ strict: string, A parameter<br>
+ userip: string, A parameter<br>
<br>
Returns:<br>
An object of the form<br>
diff --git a/docs/dyn/moderator.v1.myrecent.series.html b/docs/dyn/moderator.v1.myrecent.series.html
index d43402c..2c7ef2f 100644
--- a/docs/dyn/moderator.v1.myrecent.series.html
+++ b/docs/dyn/moderator.v1.myrecent.series.html
@@ -17,6 +17,10 @@
<dl><dt><a name="Resource-list"><strong>list</strong></a> = method(self, **kwargs)</dt><dd><tt>Lists the series the authenticated user has visited.<br>
<br>
Args:<br>
+ pp: string, A parameter<br>
+ trace: string, A parameter<br>
+ strict: string, A parameter<br>
+ userip: string, A parameter<br>
<br>
Returns:<br>
An object of the form<br>
diff --git a/docs/dyn/moderator.v1.profiles.html b/docs/dyn/moderator.v1.profiles.html
index c4a6a64..ad1b463 100644
--- a/docs/dyn/moderator.v1.profiles.html
+++ b/docs/dyn/moderator.v1.profiles.html
@@ -17,6 +17,10 @@
<dl><dt><a name="Resource-get"><strong>get</strong></a> = method(self, **kwargs)</dt><dd><tt>Returns the profile information for the authenticated user.<br>
<br>
Args:<br>
+ pp: string, A parameter<br>
+ trace: string, A parameter<br>
+ strict: string, A parameter<br>
+ userip: string, A parameter<br>
<br>
Returns:<br>
An object of the form<br>
@@ -61,6 +65,10 @@
},<br>
}<br>
<br>
+ pp: string, A parameter<br>
+ trace: string, A parameter<br>
+ strict: string, A parameter<br>
+ userip: string, A parameter<br>
<br>
Returns:<br>
An object of the form<br>
@@ -105,6 +113,10 @@
},<br>
}<br>
<br>
+ pp: string, A parameter<br>
+ trace: string, A parameter<br>
+ strict: string, A parameter<br>
+ userip: string, A parameter<br>
<br>
Returns:<br>
An object of the form<br>
diff --git a/docs/dyn/moderator.v1.responses.html b/docs/dyn/moderator.v1.responses.html
index 075a827..2709e12 100644
--- a/docs/dyn/moderator.v1.responses.html
+++ b/docs/dyn/moderator.v1.responses.html
@@ -19,8 +19,9 @@
Args:<br>
seriesId: integer, The decimal ID of the Series. (required)<br>
topicId: integer, The decimal ID of the Topic within the Series. (required)<br>
+ pp: string, A parameter<br>
unauthToken: string, User identifier for unauthenticated usage mode<br>
- parentSubmissionId: integer, The decimal ID of the parent Submission within the Series. (required)<br>
+ strict: string, A parameter<br>
body: object, The request body. (required)<br>
The object takes the form of:<br>
<br>
@@ -73,6 +74,9 @@
},<br>
}<br>
<br>
+ parentSubmissionId: integer, The decimal ID of the parent Submission within the Series. (required)<br>
+ userip: string, A parameter<br>
+ trace: string, A parameter<br>
anonymous: boolean, Set to true to mark the new submission as anonymous.<br>
<br>
Returns:<br>
@@ -132,11 +136,15 @@
Args:<br>
sort: string, Sort order.<br>
seriesId: integer, The decimal ID of the Series. (required)<br>
+ pp: string, A parameter<br>
+ trace: string, A parameter<br>
author: string, Restricts the results to submissions by a specific author.<br>
submissionId: integer, The decimal ID of the Submission within the Series. (required)<br>
q: string, Search query.<br>
+ strict: string, A parameter<br>
max_results: integer, Maximum number of results to return.<br>
hasAttachedVideo: boolean, Specifies whether to restrict to submissions that have videos attached.<br>
+ userip: string, A parameter<br>
start_index: integer, Index of the first result to be retrieved.<br>
<br>
Returns:<br>
diff --git a/docs/dyn/moderator.v1.series.html b/docs/dyn/moderator.v1.series.html
index c81c7c7..2d01c50 100644
--- a/docs/dyn/moderator.v1.series.html
+++ b/docs/dyn/moderator.v1.series.html
@@ -18,6 +18,10 @@
<br>
Args:<br>
seriesId: integer, The decimal ID of the Series. (required)<br>
+ pp: string, A parameter<br>
+ trace: string, A parameter<br>
+ strict: string, A parameter<br>
+ userip: string, A parameter<br>
<br>
Returns:<br>
An object of the form<br>
@@ -94,6 +98,10 @@
},<br>
}<br>
<br>
+ pp: string, A parameter<br>
+ trace: string, A parameter<br>
+ strict: string, A parameter<br>
+ userip: string, A parameter<br>
<br>
Returns:<br>
An object of the form<br>
@@ -135,7 +143,11 @@
<br>
Args:<br>
q: string, Search query.<br>
+ pp: string, A parameter<br>
+ trace: string, A parameter<br>
+ strict: string, A parameter<br>
max_results: integer, Maximum number of results to return.<br>
+ userip: string, A parameter<br>
start_index: integer, Index of the first result to be retrieved.<br>
<br>
Returns:<br>
@@ -219,6 +231,10 @@
},<br>
}<br>
<br>
+ pp: string, A parameter<br>
+ trace: string, A parameter<br>
+ strict: string, A parameter<br>
+ userip: string, A parameter<br>
<br>
Returns:<br>
An object of the form<br>
@@ -300,6 +316,10 @@
},<br>
}<br>
<br>
+ pp: string, A parameter<br>
+ trace: string, A parameter<br>
+ strict: string, A parameter<br>
+ userip: string, A parameter<br>
<br>
Returns:<br>
An object of the form<br>
diff --git a/docs/dyn/moderator.v1.series.responses.html b/docs/dyn/moderator.v1.series.responses.html
index 14557cb..8adbb4b 100644
--- a/docs/dyn/moderator.v1.series.responses.html
+++ b/docs/dyn/moderator.v1.series.responses.html
@@ -19,10 +19,14 @@
Args:<br>
sort: string, Sort order.<br>
seriesId: integer, The decimal ID of the Series. (required)<br>
+ pp: string, A parameter<br>
+ trace: string, A parameter<br>
author: string, Restricts the results to submissions by a specific author.<br>
q: string, Search query.<br>
+ strict: string, A parameter<br>
max_results: integer, Maximum number of results to return.<br>
hasAttachedVideo: boolean, Specifies whether to restrict to submissions that have videos attached.<br>
+ userip: string, A parameter<br>
start_index: integer, Index of the first result to be retrieved.<br>
<br>
Returns:<br>
diff --git a/docs/dyn/moderator.v1.series.submissions.html b/docs/dyn/moderator.v1.series.submissions.html
index b487362..7c06e50 100644
--- a/docs/dyn/moderator.v1.series.submissions.html
+++ b/docs/dyn/moderator.v1.series.submissions.html
@@ -19,11 +19,15 @@
Args:<br>
lang: string, The language code for the language the client prefers resuls in.<br>
seriesId: integer, The decimal ID of the Series. (required)<br>
+ pp: string, A parameter<br>
+ trace: string, A parameter<br>
includeVotes: boolean, Specifies whether to include the current user's vote<br>
author: string, Restricts the results to submissions by a specific author.<br>
sort: string, Sort order.<br>
+ strict: string, A parameter<br>
max_results: integer, Maximum number of results to return.<br>
q: string, Search query.<br>
+ userip: string, A parameter<br>
start_index: integer, Index of the first result to be retrieved.<br>
hasAttachedVideo: boolean, Specifies whether to restrict to submissions that have videos attached.<br>
<br>
diff --git a/docs/dyn/moderator.v1.submissions.html b/docs/dyn/moderator.v1.submissions.html
index 5e84d61..68fc830 100644
--- a/docs/dyn/moderator.v1.submissions.html
+++ b/docs/dyn/moderator.v1.submissions.html
@@ -19,8 +19,12 @@
Args:<br>
lang: string, The language code for the language the client prefers resuls in.<br>
seriesId: integer, The decimal ID of the Series. (required)<br>
+ pp: string, A parameter<br>
+ trace: string, A parameter<br>
includeVotes: boolean, Specifies whether to include the current user's vote<br>
submissionId: integer, The decimal ID of the Submission within the Series. (required)<br>
+ userip: string, A parameter<br>
+ strict: string, A parameter<br>
<br>
Returns:<br>
An object of the form<br>
@@ -79,7 +83,9 @@
Args:<br>
seriesId: integer, The decimal ID of the Series. (required)<br>
topicId: integer, The decimal ID of the Topic within the Series. (required)<br>
+ pp: string, A parameter<br>
unauthToken: string, User identifier for unauthenticated usage mode<br>
+ strict: string, A parameter<br>
body: object, The request body. (required)<br>
The object takes the form of:<br>
<br>
@@ -132,6 +138,8 @@
},<br>
}<br>
<br>
+ userip: string, A parameter<br>
+ trace: string, A parameter<br>
anonymous: boolean, Set to true to mark the new submission as anonymous.<br>
<br>
Returns:<br>
diff --git a/docs/dyn/moderator.v1.tags.html b/docs/dyn/moderator.v1.tags.html
index 58254a5..dae06b5 100644
--- a/docs/dyn/moderator.v1.tags.html
+++ b/docs/dyn/moderator.v1.tags.html
@@ -18,8 +18,12 @@
<br>
Args:<br>
seriesId: integer, The decimal ID of the Series. (required)<br>
+ pp: string, A parameter<br>
+ trace: string, A parameter<br>
tagId: string, A parameter (required)<br>
- submissionId: integer, The decimal ID of the Submission within the Series. (required)</tt></dd></dl>
+ submissionId: integer, The decimal ID of the Submission within the Series. (required)<br>
+ strict: string, A parameter<br>
+ userip: string, A parameter</tt></dd></dl>
<dl><dt><a name="Resource-insert"><strong>insert</strong></a> = method(self, **kwargs)</dt><dd><tt>Inserts a new tag for the specified submission within the specified series.<br>
<br>
@@ -38,7 +42,11 @@
},<br>
}<br>
<br>
+ pp: string, A parameter<br>
+ trace: string, A parameter<br>
submissionId: integer, The decimal ID of the Submission within the Series. (required)<br>
+ strict: string, A parameter<br>
+ userip: string, A parameter<br>
<br>
Returns:<br>
An object of the form<br>
@@ -57,7 +65,11 @@
<br>
Args:<br>
seriesId: integer, The decimal ID of the Series. (required)<br>
+ pp: string, A parameter<br>
+ trace: string, A parameter<br>
submissionId: integer, The decimal ID of the Submission within the Series. (required)<br>
+ strict: string, A parameter<br>
+ userip: string, A parameter<br>
<br>
Returns:<br>
An object of the form<br>
diff --git a/docs/dyn/moderator.v1.topics.html b/docs/dyn/moderator.v1.topics.html
index 614246b..234af04 100644
--- a/docs/dyn/moderator.v1.topics.html
+++ b/docs/dyn/moderator.v1.topics.html
@@ -19,6 +19,10 @@
Args:<br>
seriesId: integer, The decimal ID of the Series. (required)<br>
topicId: integer, The decimal ID of the Topic within the Series. (required)<br>
+ pp: string, A parameter<br>
+ trace: string, A parameter<br>
+ strict: string, A parameter<br>
+ userip: string, A parameter<br>
<br>
Returns:<br>
An object of the form<br>
@@ -184,6 +188,10 @@
"name": "A String",<br>
}<br>
<br>
+ pp: string, A parameter<br>
+ trace: string, A parameter<br>
+ strict: string, A parameter<br>
+ userip: string, A parameter<br>
<br>
Returns:<br>
An object of the form<br>
@@ -270,8 +278,12 @@
Args:<br>
seriesId: integer, The decimal ID of the Series. (required)<br>
q: string, Search query.<br>
+ pp: string, A parameter<br>
+ trace: string, A parameter<br>
+ strict: string, A parameter<br>
max_results: integer, Maximum number of results to return.<br>
mode: string, A parameter<br>
+ userip: string, A parameter<br>
start_index: integer, Index of the first result to be retrieved.<br>
<br>
Returns:<br>
@@ -366,6 +378,8 @@
Args:<br>
seriesId: integer, The decimal ID of the Series. (required)<br>
topicId: integer, The decimal ID of the Topic within the Series. (required)<br>
+ pp: string, A parameter<br>
+ trace: string, A parameter<br>
body: object, The request body. (required)<br>
The object takes the form of:<br>
<br>
@@ -446,6 +460,8 @@
"name": "A String",<br>
}<br>
<br>
+ strict: string, A parameter<br>
+ userip: string, A parameter<br>
<br>
Returns:<br>
An object of the form<br>
diff --git a/docs/dyn/moderator.v1.topics.submissions.html b/docs/dyn/moderator.v1.topics.submissions.html
index 4808b2a..5e1e9c9 100644
--- a/docs/dyn/moderator.v1.topics.submissions.html
+++ b/docs/dyn/moderator.v1.topics.submissions.html
@@ -19,11 +19,15 @@
Args:<br>
seriesId: integer, The decimal ID of the Series. (required)<br>
topicId: integer, The decimal ID of the Topic within the Series. (required)<br>
+ pp: string, A parameter<br>
+ trace: string, A parameter<br>
includeVotes: boolean, Specifies whether to include the current user's vote<br>
author: string, Restricts the results to submissions by a specific author.<br>
sort: string, Sort order.<br>
+ strict: string, A parameter<br>
max_results: integer, Maximum number of results to return.<br>
q: string, Search query.<br>
+ userip: string, A parameter<br>
start_index: integer, Index of the first result to be retrieved.<br>
hasAttachedVideo: boolean, Specifies whether to restrict to submissions that have videos attached.<br>
<br>
diff --git a/docs/dyn/moderator.v1.votes.html b/docs/dyn/moderator.v1.votes.html
index 0827d74..dd6e7ad 100644
--- a/docs/dyn/moderator.v1.votes.html
+++ b/docs/dyn/moderator.v1.votes.html
@@ -18,9 +18,13 @@
<br>
Args:<br>
seriesId: integer, The decimal ID of the Series. (required)<br>
+ pp: string, A parameter<br>
unauthToken: string, User identifier for unauthenticated usage mode<br>
userId: string, A parameter<br>
submissionId: integer, The decimal ID of the Submission within the Series. (required)<br>
+ strict: string, A parameter<br>
+ userip: string, A parameter<br>
+ trace: string, A parameter<br>
<br>
Returns:<br>
An object of the form<br>
@@ -52,8 +56,12 @@
"kind": "moderator#vote",<br>
}<br>
<br>
+ pp: string, A parameter<br>
unauthToken: string, User identifier for unauthenticated usage mode<br>
submissionId: integer, The decimal ID of the Submission within the Series. (required)<br>
+ strict: string, A parameter<br>
+ userip: string, A parameter<br>
+ trace: string, A parameter<br>
<br>
Returns:<br>
An object of the form<br>
@@ -72,7 +80,11 @@
<br>
Args:<br>
seriesId: integer, The decimal ID of the Series. (required)<br>
+ pp: string, A parameter<br>
+ trace: string, A parameter<br>
+ strict: string, A parameter<br>
max_results: integer, Maximum number of results to return.<br>
+ userip: string, A parameter<br>
start_index: integer, Index of the first result to be retrieved.<br>
<br>
Returns:<br>
@@ -110,9 +122,13 @@
"kind": "moderator#vote",<br>
}<br>
<br>
+ pp: string, A parameter<br>
unauthToken: string, User identifier for unauthenticated usage mode<br>
userId: string, A parameter<br>
submissionId: integer, The decimal ID of the Submission within the Series. (required)<br>
+ strict: string, A parameter<br>
+ userip: string, A parameter<br>
+ trace: string, A parameter<br>
<br>
Returns:<br>
An object of the form<br>
@@ -144,9 +160,13 @@
"kind": "moderator#vote",<br>
}<br>
<br>
+ pp: string, A parameter<br>
unauthToken: string, User identifier for unauthenticated usage mode<br>
userId: string, A parameter<br>
submissionId: integer, The decimal ID of the Submission within the Series. (required)<br>
+ strict: string, A parameter<br>
+ userip: string, A parameter<br>
+ trace: string, A parameter<br>
<br>
Returns:<br>
An object of the form<br>
diff --git a/docs/dyn/oauth2.v2.html b/docs/dyn/oauth2.v2.html
index 4101f69..f463774 100644
--- a/docs/dyn/oauth2.v2.html
+++ b/docs/dyn/oauth2.v2.html
@@ -14,48 +14,15 @@
<td width="100%">Methods defined here:<br>
<dl><dt><a name="Resource-__init__"><strong>__init__</strong></a>(self)</dt></dl>
-<dl><dt><a name="Resource-issueTokenGet"><strong>issueTokenGet</strong></a> = method(self, **kwargs)</dt><dd><tt>A description of how to use this function<br>
- <br>
-Args:<br>
- origin: string, A parameter<br>
- force: boolean, A parameter<br>
- client_id: string, A parameter (required)<br>
- alg: string, A parameter<br>
- app_id: string, A parameter<br>
- android_device_id: string, A parameter<br>
- audience: string, A parameter<br>
- hl: string, A parameter<br>
- scope: string, A parameter (required)<br>
- response_type: string, A parameter (required)<br>
- <br>
-Returns:<br>
- An object of the form<br>
- <br>
- {<br>
- "consent": {<br>
- "scopes": [<br>
- {<br>
- "description": "A String",<br>
- "detail": "A String",<br>
- },<br>
- ],<br>
- "oauthClient": {<br>
- "iconUri": "A String",<br>
- "developerEmail": "A String",<br>
- "name": "A String",<br>
- },<br>
- },<br>
- "token": "A String",<br>
- "code": "A String",<br>
- "issueAdvice": "A String",<br>
- "idToken": "A String",<br>
- }</tt></dd></dl>
-
<dl><dt><a name="Resource-tokeninfo"><strong>tokeninfo</strong></a> = method(self, **kwargs)</dt><dd><tt>A description of how to use this function<br>
<br>
Args:<br>
+ pp: string, A parameter<br>
+ trace: string, A parameter<br>
access_token: string, A parameter<br>
id_token: string, A parameter<br>
+ strict: string, A parameter<br>
+ userip: string, A parameter<br>
<br>
Returns:<br>
An object of the form<br>
@@ -64,7 +31,7 @@
"issued_to": "A String", # To whom was the token issued to. In general the same as audience.<br>
"user_id": "A String", # The Gaia obfuscated user id.<br>
"expires_in": 42, # The expiry time of the token, as number of seconds left until expiry.<br>
- "access_type": "A String", # The access type granted with this toke. It can be offline or online.<br>
+ "access_type": "A String", # The access type granted with this token. It can be offline or online.<br>
"audience": "A String", # Who is the intended audience for this token. In general the same as issued_to.<br>
"scope": "A String", # The space separated list of scopes granted to this token.<br>
"email": "A String", # The email address of the user. Present only if the email scope is present in the request.<br>
diff --git a/docs/dyn/oauth2.v2.userinfo.html b/docs/dyn/oauth2.v2.userinfo.html
index a6bd5d5..696d0d3 100644
--- a/docs/dyn/oauth2.v2.userinfo.html
+++ b/docs/dyn/oauth2.v2.userinfo.html
@@ -17,23 +17,27 @@
<dl><dt><a name="Resource-get"><strong>get</strong></a> = method(self, **kwargs)</dt><dd><tt>A description of how to use this function<br>
<br>
Args:<br>
+ pp: string, A parameter<br>
+ trace: string, A parameter<br>
+ strict: string, A parameter<br>
+ userip: string, A parameter<br>
<br>
Returns:<br>
An object of the form<br>
<br>
{<br>
- "family_name": "A String",<br>
- "name": "A String",<br>
- "picture": "A String",<br>
- "locale": "A String",<br>
- "gender": "A String",<br>
- "email": "A String",<br>
- "birthday": "A String",<br>
- "link": "A String",<br>
- "given_name": "A String",<br>
- "timezone": "A String",<br>
- "id": "A String",<br>
- "verified_email": True or False,<br>
+ "family_name": "A String", # The user's last name.<br>
+ "name": "A String", # The user's full name.<br>
+ "picture": "A String", # URL of the user's picture image.<br>
+ "locale": "A String", # The user's default locale.<br>
+ "gender": "A String", # The user's gender.<br>
+ "email": "A String", # The user's email address.<br>
+ "birthday": "A String", # The user's birthday. The year is not present.<br>
+ "link": "A String", # URL of the profile page.<br>
+ "given_name": "A String", # The user's first name.<br>
+ "timezone": "A String", # The user's default timezone.<br>
+ "id": "A String", # The focus obfuscated gaia id of the user.<br>
+ "verified_email": True or False, # Boolean flag which is true if the email address is verified.<br>
}</tt></dd></dl>
<dl><dt><a name="Resource-v2"><strong><a href="oauth2.v2.userinfo.v2.html">v2</a></strong></a> = methodResource(self)</dt><dd><tt>A collection resource.</tt></dd></dl>
diff --git a/docs/dyn/oauth2.v2.userinfo.v2.me.html b/docs/dyn/oauth2.v2.userinfo.v2.me.html
index ee10991..db42d92 100644
--- a/docs/dyn/oauth2.v2.userinfo.v2.me.html
+++ b/docs/dyn/oauth2.v2.userinfo.v2.me.html
@@ -17,23 +17,27 @@
<dl><dt><a name="Resource-get"><strong>get</strong></a> = method(self, **kwargs)</dt><dd><tt>A description of how to use this function<br>
<br>
Args:<br>
+ pp: string, A parameter<br>
+ trace: string, A parameter<br>
+ strict: string, A parameter<br>
+ userip: string, A parameter<br>
<br>
Returns:<br>
An object of the form<br>
<br>
{<br>
- "family_name": "A String",<br>
- "name": "A String",<br>
- "picture": "A String",<br>
- "locale": "A String",<br>
- "gender": "A String",<br>
- "email": "A String",<br>
- "birthday": "A String",<br>
- "link": "A String",<br>
- "given_name": "A String",<br>
- "timezone": "A String",<br>
- "id": "A String",<br>
- "verified_email": True or False,<br>
+ "family_name": "A String", # The user's last name.<br>
+ "name": "A String", # The user's full name.<br>
+ "picture": "A String", # URL of the user's picture image.<br>
+ "locale": "A String", # The user's default locale.<br>
+ "gender": "A String", # The user's gender.<br>
+ "email": "A String", # The user's email address.<br>
+ "birthday": "A String", # The user's birthday. The year is not present.<br>
+ "link": "A String", # URL of the profile page.<br>
+ "given_name": "A String", # The user's first name.<br>
+ "timezone": "A String", # The user's default timezone.<br>
+ "id": "A String", # The focus obfuscated gaia id of the user.<br>
+ "verified_email": True or False, # Boolean flag which is true if the email address is verified.<br>
}</tt></dd></dl>
<hr>
diff --git a/docs/dyn/orkut.v2.acl.html b/docs/dyn/orkut.v2.acl.html
index 905d92e..86ed494 100644
--- a/docs/dyn/orkut.v2.acl.html
+++ b/docs/dyn/orkut.v2.acl.html
@@ -17,8 +17,12 @@
<dl><dt><a name="Resource-delete"><strong>delete</strong></a> = method(self, **kwargs)</dt><dd><tt>Excludes an element from the ACL of the activity.<br>
<br>
Args:<br>
+ pp: string, A parameter<br>
+ trace: string, A parameter<br>
userId: string, ID of the user to be removed from the activity. (required)<br>
- activityId: string, ID of the activity. (required)</tt></dd></dl>
+ strict: string, A parameter<br>
+ activityId: string, ID of the activity. (required)<br>
+ userip: string, A parameter</tt></dd></dl>
<hr>
Data descriptors defined here:<br>
diff --git a/docs/dyn/orkut.v2.activities.html b/docs/dyn/orkut.v2.activities.html
index 339bee1..5538185 100644
--- a/docs/dyn/orkut.v2.activities.html
+++ b/docs/dyn/orkut.v2.activities.html
@@ -17,20 +17,28 @@
<dl><dt><a name="Resource-delete"><strong>delete</strong></a> = method(self, **kwargs)</dt><dd><tt>Deletes an existing activity, if the access controls allow it.<br>
<br>
Args:<br>
- activityId: string, ID of the activity to remove. (required)</tt></dd></dl>
+ pp: string, A parameter<br>
+ trace: string, A parameter<br>
+ strict: string, A parameter<br>
+ activityId: string, ID of the activity to remove. (required)<br>
+ userip: string, A parameter</tt></dd></dl>
<dl><dt><a name="Resource-list"><strong>list</strong></a> = method(self, **kwargs)</dt><dd><tt>Retrieves a list of activities.<br>
<br>
Args:<br>
+ pp: string, A parameter<br>
+ trace: string, A parameter<br>
pageToken: string, A continuation token that allows pagination.<br>
+ hl: string, Specifies the interface language (host language) of your user interface.<br>
userId: string, The ID of the user whose activities will be listed. Can be me to refer to the viewer (i.e. the authenticated user). (required)<br>
maxResults: integer, The maximum number of activities to include in the response.<br>
+ strict: string, A parameter<br>
collection: string, The collection of activities to list. (required)<br>
Allowed values<br>
all - All activities created by the specified user that the authenticated user is authorized to view.<br>
scraps - The specified user's scrapbook.<br>
stream - The specified user's stream feed, intended for consumption. This includes activities posted by people that the user is following, and activities in which the user has been mentioned.<br>
- hl: string, Specifies the interface language (host language) of your user interface.<br>
+ userip: string, A parameter<br>
<br>
Returns:<br>
An object of the form<br>
diff --git a/docs/dyn/orkut.v2.activityVisibility.html b/docs/dyn/orkut.v2.activityVisibility.html
index ce76a76..d78be34 100644
--- a/docs/dyn/orkut.v2.activityVisibility.html
+++ b/docs/dyn/orkut.v2.activityVisibility.html
@@ -17,7 +17,11 @@
<dl><dt><a name="Resource-get"><strong>get</strong></a> = method(self, **kwargs)</dt><dd><tt>Gets the visibility of an existing activity.<br>
<br>
Args:<br>
+ pp: string, A parameter<br>
+ trace: string, A parameter<br>
+ strict: string, A parameter<br>
activityId: string, ID of the activity to get the visibility. (required)<br>
+ userip: string, A parameter<br>
<br>
Returns:<br>
An object of the form<br>
@@ -58,7 +62,11 @@
],<br>
}<br>
<br>
+ pp: string, A parameter<br>
+ trace: string, A parameter<br>
+ strict: string, A parameter<br>
activityId: string, ID of the activity. (required)<br>
+ userip: string, A parameter<br>
<br>
Returns:<br>
An object of the form<br>
@@ -99,7 +107,11 @@
],<br>
}<br>
<br>
+ pp: string, A parameter<br>
+ trace: string, A parameter<br>
+ strict: string, A parameter<br>
activityId: string, ID of the activity. (required)<br>
+ userip: string, A parameter<br>
<br>
Returns:<br>
An object of the form<br>
diff --git a/docs/dyn/orkut.v2.badges.html b/docs/dyn/orkut.v2.badges.html
index 97f8884..0e0eae6 100644
--- a/docs/dyn/orkut.v2.badges.html
+++ b/docs/dyn/orkut.v2.badges.html
@@ -17,8 +17,12 @@
<dl><dt><a name="Resource-get"><strong>get</strong></a> = method(self, **kwargs)</dt><dd><tt>Retrieves a badge from a user.<br>
<br>
Args:<br>
+ pp: string, A parameter<br>
badgeId: string, The ID of the badge that will be retrieved. (required)<br>
+ trace: string, A parameter<br>
userId: string, The ID of the user whose badges will be listed. Can be me to refer to caller. (required)<br>
+ strict: string, A parameter<br>
+ userip: string, A parameter<br>
<br>
Returns:<br>
An object of the form<br>
@@ -38,7 +42,11 @@
<dl><dt><a name="Resource-list"><strong>list</strong></a> = method(self, **kwargs)</dt><dd><tt>Retrieves the list of visible badges of a user.<br>
<br>
Args:<br>
+ pp: string, A parameter<br>
+ trace: string, A parameter<br>
userId: string, The id of the user whose badges will be listed. Can be me to refer to caller. (required)<br>
+ strict: string, A parameter<br>
+ userip: string, A parameter<br>
<br>
Returns:<br>
An object of the form<br>
diff --git a/docs/dyn/orkut.v2.comments.html b/docs/dyn/orkut.v2.comments.html
index 5b697de..9498f55 100644
--- a/docs/dyn/orkut.v2.comments.html
+++ b/docs/dyn/orkut.v2.comments.html
@@ -17,12 +17,20 @@
<dl><dt><a name="Resource-delete"><strong>delete</strong></a> = method(self, **kwargs)</dt><dd><tt>Deletes an existing comment.<br>
<br>
Args:<br>
+ pp: string, A parameter<br>
+ trace: string, A parameter<br>
+ strict: string, A parameter<br>
+ userip: string, A parameter<br>
commentId: string, ID of the comment to remove. (required)</tt></dd></dl>
<dl><dt><a name="Resource-get"><strong>get</strong></a> = method(self, **kwargs)</dt><dd><tt>Retrieves an existing comment.<br>
<br>
Args:<br>
+ pp: string, A parameter<br>
+ trace: string, A parameter<br>
hl: string, Specifies the interface language (host language) of your user interface.<br>
+ strict: string, A parameter<br>
+ userip: string, A parameter<br>
commentId: string, ID of the comment to get. (required)<br>
<br>
Returns:<br>
@@ -92,7 +100,11 @@
"id": "A String", # The unique ID for the comment.<br>
}<br>
<br>
+ pp: string, A parameter<br>
+ trace: string, A parameter<br>
+ strict: string, A parameter<br>
activityId: string, The ID of the activity to contain the new comment. (required)<br>
+ userip: string, A parameter<br>
<br>
Returns:<br>
An object of the form<br>
@@ -133,10 +145,14 @@
Allowed values<br>
ascending - Use ascending sort order.<br>
descending - Use descending sort order.<br>
+ pp: string, A parameter<br>
+ trace: string, A parameter<br>
pageToken: string, A continuation token that allows pagination.<br>
- maxResults: integer, The maximum number of activities to include in the response.<br>
- activityId: string, The ID of the activity containing the comments. (required)<br>
hl: string, Specifies the interface language (host language) of your user interface.<br>
+ maxResults: integer, The maximum number of activities to include in the response.<br>
+ strict: string, A parameter<br>
+ activityId: string, The ID of the activity containing the comments. (required)<br>
+ userip: string, A parameter<br>
<br>
Returns:<br>
An object of the form<br>
diff --git a/docs/dyn/orkut.v2.communities.html b/docs/dyn/orkut.v2.communities.html
index acfc834..d7576d8 100644
--- a/docs/dyn/orkut.v2.communities.html
+++ b/docs/dyn/orkut.v2.communities.html
@@ -17,7 +17,11 @@
<dl><dt><a name="Resource-get"><strong>get</strong></a> = method(self, **kwargs)</dt><dd><tt>Retrieves the basic information (aka. profile) of a community.<br>
<br>
Args:<br>
+ pp: string, A parameter<br>
+ trace: string, A parameter<br>
hl: string, Specifies the interface language (host language) of your user interface.<br>
+ strict: string, A parameter<br>
+ userip: string, A parameter<br>
communityId: integer, The ID of the community to get. (required)<br>
<br>
Returns:<br>
@@ -79,9 +83,13 @@
Allowed values<br>
id - Returns the communities sorted by a fixed, natural order.<br>
ranked - Returns the communities ranked accordingly to how they are displayed on the orkut web application.<br>
+ pp: string, A parameter<br>
+ trace: string, A parameter<br>
+ hl: string, Specifies the interface language (host language) of your user interface.<br>
userId: string, The ID of the user whose communities will be listed. Can be me to refer to caller. (required)<br>
maxResults: integer, The maximum number of communities to include in the response.<br>
- hl: string, Specifies the interface language (host language) of your user interface.<br>
+ strict: string, A parameter<br>
+ userip: string, A parameter<br>
<br>
Returns:<br>
An object of the form<br>
diff --git a/docs/dyn/orkut.v2.communityFollow.html b/docs/dyn/orkut.v2.communityFollow.html
index 5e51c46..93caaa0 100644
--- a/docs/dyn/orkut.v2.communityFollow.html
+++ b/docs/dyn/orkut.v2.communityFollow.html
@@ -17,13 +17,21 @@
<dl><dt><a name="Resource-delete"><strong>delete</strong></a> = method(self, **kwargs)</dt><dd><tt>Removes a user from the followers of a community.<br>
<br>
Args:<br>
+ pp: string, A parameter<br>
+ trace: string, A parameter<br>
userId: string, ID of the user. (required)<br>
+ strict: string, A parameter<br>
+ userip: string, A parameter<br>
communityId: integer, ID of the community. (required)</tt></dd></dl>
<dl><dt><a name="Resource-insert"><strong>insert</strong></a> = method(self, **kwargs)</dt><dd><tt>Adds a user as a follower of a community.<br>
<br>
Args:<br>
+ pp: string, A parameter<br>
+ trace: string, A parameter<br>
userId: string, ID of the user. (required)<br>
+ strict: string, A parameter<br>
+ userip: string, A parameter<br>
communityId: integer, ID of the community. (required)<br>
<br>
Returns:<br>
diff --git a/docs/dyn/orkut.v2.communityMembers.html b/docs/dyn/orkut.v2.communityMembers.html
index bd9b26c..4306414 100644
--- a/docs/dyn/orkut.v2.communityMembers.html
+++ b/docs/dyn/orkut.v2.communityMembers.html
@@ -17,14 +17,22 @@
<dl><dt><a name="Resource-delete"><strong>delete</strong></a> = method(self, **kwargs)</dt><dd><tt>Makes the user leave a community.<br>
<br>
Args:<br>
+ pp: string, A parameter<br>
+ trace: string, A parameter<br>
userId: string, ID of the user. (required)<br>
+ strict: string, A parameter<br>
+ userip: string, A parameter<br>
communityId: integer, ID of the community. (required)</tt></dd></dl>
<dl><dt><a name="Resource-get"><strong>get</strong></a> = method(self, **kwargs)</dt><dd><tt>Retrieves the relationship between a user and a community.<br>
<br>
Args:<br>
- userId: string, ID of the user. (required)<br>
+ pp: string, A parameter<br>
+ trace: string, A parameter<br>
hl: string, Specifies the interface language (host language) of your user interface.<br>
+ userId: string, ID of the user. (required)<br>
+ strict: string, A parameter<br>
+ userip: string, A parameter<br>
communityId: integer, ID of the community. (required)<br>
<br>
Returns:<br>
@@ -63,7 +71,11 @@
<dl><dt><a name="Resource-insert"><strong>insert</strong></a> = method(self, **kwargs)</dt><dd><tt>Makes the user join a community.<br>
<br>
Args:<br>
+ pp: string, A parameter<br>
+ trace: string, A parameter<br>
userId: string, ID of the user. (required)<br>
+ strict: string, A parameter<br>
+ userip: string, A parameter<br>
communityId: integer, ID of the community. (required)<br>
<br>
Returns:<br>
@@ -103,9 +115,13 @@
<br>
Args:<br>
friendsOnly: boolean, Whether to list only community members who are friends of the user.<br>
+ trace: string, A parameter<br>
pageToken: string, A continuation token that allows pagination.<br>
- maxResults: integer, The maximum number of members to include in the response.<br>
hl: string, Specifies the interface language (host language) of your user interface.<br>
+ pp: string, A parameter<br>
+ maxResults: integer, The maximum number of members to include in the response.<br>
+ strict: string, A parameter<br>
+ userip: string, A parameter<br>
communityId: integer, The ID of the community whose members will be listed. (required)<br>
<br>
Returns:<br>
diff --git a/docs/dyn/orkut.v2.communityMessages.html b/docs/dyn/orkut.v2.communityMessages.html
index 42551c3..7fb6101 100644
--- a/docs/dyn/orkut.v2.communityMessages.html
+++ b/docs/dyn/orkut.v2.communityMessages.html
@@ -18,7 +18,11 @@
<br>
Args:<br>
topicId: string, The ID of the topic whose message will be moved to the trash folder. (required)<br>
+ pp: string, A parameter<br>
+ trace: string, A parameter<br>
+ strict: string, A parameter<br>
messageId: string, The ID of the message to be moved to the trash folder. (required)<br>
+ userip: string, A parameter<br>
communityId: integer, The ID of the community whose message will be moved to the trash folder. (required)</tt></dd></dl>
<dl><dt><a name="Resource-insert"><strong>insert</strong></a> = method(self, **kwargs)</dt><dd><tt>Adds a message to a given community topic.<br>
@@ -53,6 +57,10 @@
}<br>
<br>
topicId: string, The ID of the topic the message should be added to. (required)<br>
+ pp: string, A parameter<br>
+ trace: string, A parameter<br>
+ strict: string, A parameter<br>
+ userip: string, A parameter<br>
communityId: integer, The ID of the community the message should be added to. (required)<br>
<br>
Returns:<br>
@@ -87,9 +95,13 @@
<br>
Args:<br>
topicId: string, The ID of the topic which messages will be listed. (required)<br>
+ pp: string, A parameter<br>
+ trace: string, A parameter<br>
pageToken: string, A continuation token that allows pagination.<br>
- maxResults: integer, The maximum number of messages to include in the response.<br>
hl: string, Specifies the interface language (host language) of your user interface.<br>
+ maxResults: integer, The maximum number of messages to include in the response.<br>
+ strict: string, A parameter<br>
+ userip: string, A parameter<br>
communityId: integer, The ID of the community which messages will be listed. (required)<br>
<br>
Returns:<br>
diff --git a/docs/dyn/orkut.v2.communityPollComments.html b/docs/dyn/orkut.v2.communityPollComments.html
index a1fde17..41021d7 100644
--- a/docs/dyn/orkut.v2.communityPollComments.html
+++ b/docs/dyn/orkut.v2.communityPollComments.html
@@ -35,6 +35,10 @@
},<br>
}<br>
<br>
+ pp: string, A parameter<br>
+ trace: string, A parameter<br>
+ strict: string, A parameter<br>
+ userip: string, A parameter<br>
communityId: integer, The ID of the community whose poll is being commented. (required)<br>
pollId: string, The ID of the poll being commented. (required)<br>
<br>
@@ -59,9 +63,13 @@
<dl><dt><a name="Resource-list"><strong>list</strong></a> = method(self, **kwargs)</dt><dd><tt>Retrieves the comments of a community poll.<br>
<br>
Args:<br>
+ pp: string, A parameter<br>
+ trace: string, A parameter<br>
pageToken: string, A continuation token that allows pagination.<br>
- maxResults: integer, The maximum number of comments to include in the response.<br>
hl: string, Specifies the interface language (host language) of your user interface.<br>
+ maxResults: integer, The maximum number of comments to include in the response.<br>
+ strict: string, A parameter<br>
+ userip: string, A parameter<br>
communityId: integer, The ID of the community whose poll is having its comments listed. (required)<br>
pollId: string, The ID of the community whose polls will be listed. (required)<br>
<br>
diff --git a/docs/dyn/orkut.v2.communityPollVotes.html b/docs/dyn/orkut.v2.communityPollVotes.html
index aead915..d9f1c32 100644
--- a/docs/dyn/orkut.v2.communityPollVotes.html
+++ b/docs/dyn/orkut.v2.communityPollVotes.html
@@ -28,6 +28,10 @@
"isVotevisible": True or False, # Whether this vote is visible to other users or not.<br>
}<br>
<br>
+ pp: string, A parameter<br>
+ trace: string, A parameter<br>
+ strict: string, A parameter<br>
+ userip: string, A parameter<br>
communityId: integer, The ID of the community whose poll is being voted. (required)<br>
pollId: string, The ID of the poll being voted. (required)<br>
<br>
diff --git a/docs/dyn/orkut.v2.communityPolls.html b/docs/dyn/orkut.v2.communityPolls.html
index c2e559d..b40677d 100644
--- a/docs/dyn/orkut.v2.communityPolls.html
+++ b/docs/dyn/orkut.v2.communityPolls.html
@@ -17,7 +17,11 @@
<dl><dt><a name="Resource-get"><strong>get</strong></a> = method(self, **kwargs)</dt><dd><tt>Retrieves one specific poll of a community.<br>
<br>
Args:<br>
+ pp: string, A parameter<br>
+ trace: string, A parameter<br>
hl: string, Specifies the interface language (host language) of your user interface.<br>
+ strict: string, A parameter<br>
+ userip: string, A parameter<br>
communityId: integer, The ID of the community for whose poll will be retrieved. (required)<br>
pollId: string, The ID of the poll to get. (required)<br>
<br>
@@ -79,9 +83,13 @@
<dl><dt><a name="Resource-list"><strong>list</strong></a> = method(self, **kwargs)</dt><dd><tt>Retrieves the polls of a community.<br>
<br>
Args:<br>
+ pp: string, A parameter<br>
+ trace: string, A parameter<br>
pageToken: string, A continuation token that allows pagination.<br>
- maxResults: integer, The maximum number of polls to include in the response.<br>
hl: string, Specifies the interface language (host language) of your user interface.<br>
+ maxResults: integer, The maximum number of polls to include in the response.<br>
+ strict: string, A parameter<br>
+ userip: string, A parameter<br>
communityId: integer, The ID of the community which polls will be listed. (required)<br>
<br>
Returns:<br>
diff --git a/docs/dyn/orkut.v2.communityRelated.html b/docs/dyn/orkut.v2.communityRelated.html
index d4d20e6..56e005a 100644
--- a/docs/dyn/orkut.v2.communityRelated.html
+++ b/docs/dyn/orkut.v2.communityRelated.html
@@ -17,7 +17,11 @@
<dl><dt><a name="Resource-list"><strong>list</strong></a> = method(self, **kwargs)</dt><dd><tt>Retrieves the communities related to another one.<br>
<br>
Args:<br>
+ pp: string, A parameter<br>
+ trace: string, A parameter<br>
hl: string, Specifies the interface language (host language) of your user interface.<br>
+ strict: string, A parameter<br>
+ userip: string, A parameter<br>
communityId: integer, The ID of the community whose related communities will be listed. (required)<br>
<br>
Returns:<br>
diff --git a/docs/dyn/orkut.v2.communityTopics.html b/docs/dyn/orkut.v2.communityTopics.html
index c3d2b55..f822fc8 100644
--- a/docs/dyn/orkut.v2.communityTopics.html
+++ b/docs/dyn/orkut.v2.communityTopics.html
@@ -18,13 +18,21 @@
<br>
Args:<br>
topicId: string, The ID of the topic to be moved to the trash folder. (required)<br>
+ pp: string, A parameter<br>
+ trace: string, A parameter<br>
+ strict: string, A parameter<br>
+ userip: string, A parameter<br>
communityId: integer, The ID of the community whose topic will be moved to the trash folder. (required)</tt></dd></dl>
<dl><dt><a name="Resource-get"><strong>get</strong></a> = method(self, **kwargs)</dt><dd><tt>Retrieves a topic of a community.<br>
<br>
Args:<br>
topicId: string, The ID of the topic to get. (required)<br>
+ pp: string, A parameter<br>
+ trace: string, A parameter<br>
hl: string, Specifies the interface language (host language) of your user interface.<br>
+ strict: string, A parameter<br>
+ userip: string, A parameter<br>
communityId: integer, The ID of the community whose topic will be retrieved. (required)<br>
<br>
Returns:<br>
@@ -142,7 +150,11 @@
"id": "A String", # The ID of the topic.<br>
}<br>
<br>
+ pp: string, A parameter<br>
+ trace: string, A parameter<br>
isShout: boolean, Whether this topic is a shout.<br>
+ strict: string, A parameter<br>
+ userip: string, A parameter<br>
communityId: integer, The ID of the community the topic should be added to. (required)<br>
<br>
Returns:<br>
@@ -204,9 +216,13 @@
<dl><dt><a name="Resource-list"><strong>list</strong></a> = method(self, **kwargs)</dt><dd><tt>Retrieves the topics of a community.<br>
<br>
Args:<br>
+ pp: string, A parameter<br>
+ trace: string, A parameter<br>
pageToken: string, A continuation token that allows pagination.<br>
- maxResults: integer, The maximum number of topics to include in the response.<br>
hl: string, Specifies the interface language (host language) of your user interface.<br>
+ maxResults: integer, The maximum number of topics to include in the response.<br>
+ strict: string, A parameter<br>
+ userip: string, A parameter<br>
communityId: integer, The ID of the community which topics will be listed. (required)<br>
<br>
Returns:<br>
diff --git a/docs/dyn/orkut.v2.counters.html b/docs/dyn/orkut.v2.counters.html
index 174e4ca..b0f200b 100644
--- a/docs/dyn/orkut.v2.counters.html
+++ b/docs/dyn/orkut.v2.counters.html
@@ -17,7 +17,11 @@
<dl><dt><a name="Resource-list"><strong>list</strong></a> = method(self, **kwargs)</dt><dd><tt>Retrieves the counters of a user.<br>
<br>
Args:<br>
+ pp: string, A parameter<br>
+ trace: string, A parameter<br>
userId: string, The ID of the user whose counters will be listed. Can be me to refer to caller. (required)<br>
+ strict: string, A parameter<br>
+ userip: string, A parameter<br>
<br>
Returns:<br>
An object of the form<br>
diff --git a/docs/dyn/orkut.v2.scraps.html b/docs/dyn/orkut.v2.scraps.html
index 3c2604d..9f3aac2 100644
--- a/docs/dyn/orkut.v2.scraps.html
+++ b/docs/dyn/orkut.v2.scraps.html
@@ -176,6 +176,10 @@
"id": "A String", # The ID for the activity.<br>
}<br>
<br>
+ pp: string, A parameter<br>
+ trace: string, A parameter<br>
+ strict: string, A parameter<br>
+ userip: string, A parameter<br>
<br>
Returns:<br>
An object of the form<br>
diff --git a/docs/dyn/pagespeedonline.v1.pagespeedapi.html b/docs/dyn/pagespeedonline.v1.pagespeedapi.html
index 8c85adf..e1d37b3 100644
--- a/docs/dyn/pagespeedonline.v1.pagespeedapi.html
+++ b/docs/dyn/pagespeedonline.v1.pagespeedapi.html
@@ -17,13 +17,17 @@
<dl><dt><a name="Resource-runpagespeed"><strong>runpagespeed</strong></a> = method(self, **kwargs)</dt><dd><tt>Runs Page Speed analysis on the page at the specified URL, and returns a Page Speed score, a list of suggestions to make that page faster, and other information.<br>
<br>
Args:<br>
+ pp: string, A parameter<br>
+ trace: string, A parameter<br>
locale: string, The locale used to localize formatted results<br>
rule: string, A Page Speed rule to run; if none are given, all rules are run (repeated)<br>
strategy: string, The analysis strategy to use<br>
Allowed values<br>
desktop - Fetch and analyze the URL for desktop browsers<br>
mobile - Fetch and analyze the URL for mobile devices<br>
+ strict: string, A parameter<br>
url: string, The URL to fetch and analyze (required)<br>
+ userip: string, A parameter<br>
<br>
Returns:<br>
An object of the form<br>
diff --git a/docs/dyn/plus.v1.activities.html b/docs/dyn/plus.v1.activities.html
index 984dc04..97b4bf1 100644
--- a/docs/dyn/plus.v1.activities.html
+++ b/docs/dyn/plus.v1.activities.html
@@ -17,10 +17,11 @@
<dl><dt><a name="Resource-get"><strong>get</strong></a> = method(self, **kwargs)</dt><dd><tt>Get an activity.<br>
<br>
Args:<br>
+ pp: string, A parameter<br>
+ trace: string, A parameter<br>
+ strict: string, A parameter<br>
activityId: string, The ID of the activity to get. (required)<br>
- alt: string, Specifies an alternative representation type.<br>
- Allowed values<br>
- json - Use JSON format<br>
+ userip: string, A parameter<br>
<br>
Returns:<br>
An object of the form<br>
@@ -129,7 +130,6 @@
"radius": "A String", # Radius, in meters, of the region where this activity occurred, centered at the latitude and longitude identified in geocode.<br>
"address": "A String", # Street address where this activity occurred.<br>
"crosspostSource": "A String", # If this activity is a crosspost from another system, this property specifies the ID of the original activity.<br>
- "placeholder": True or False, # True if this activity is a placeholder.<br>
"annotation": "A String", # Additional content added by the person who shared this activity, applicable only when resharing an activity.<br>
"published": "A String", # The time at which this activity was initially published. Formatted as an <a href="http://www.rfc-editor.org/rfc/rfc3339.txt">RFC 3339</a> timestamp.<br>
}</tt></dd></dl>
@@ -137,15 +137,16 @@
<dl><dt><a name="Resource-list"><strong>list</strong></a> = method(self, **kwargs)</dt><dd><tt>List all of the activities in the specified collection for a particular user.<br>
<br>
Args:<br>
+ pp: string, A parameter<br>
+ trace: string, A parameter<br>
pageToken: string, The continuation token, used to page through large result sets. To get the next page of results, set this parameter to the value of "nextPageToken" from the previous response.<br>
userId: string, The ID of the user to get activities for. The special value "me" can be used to indicate the authenticated user. (required)<br>
maxResults: integer, The maximum number of activities to include in the response, used for paging. For any response, the actual number returned may be less than the specified maxResults.<br>
+ strict: string, A parameter<br>
collection: string, The collection of activities to list. (required)<br>
Allowed values<br>
public - All public activities created by the specified user.<br>
- alt: string, Specifies an alternative representation type.<br>
- Allowed values<br>
- json - Use JSON format<br>
+ userip: string, A parameter<br>
<br>
Returns:<br>
An object of the form<br>
@@ -259,7 +260,6 @@
"radius": "A String", # Radius, in meters, of the region where this activity occurred, centered at the latitude and longitude identified in geocode.<br>
"address": "A String", # Street address where this activity occurred.<br>
"crosspostSource": "A String", # If this activity is a crosspost from another system, this property specifies the ID of the original activity.<br>
- "placeholder": True or False, # True if this activity is a placeholder.<br>
"annotation": "A String", # Additional content added by the person who shared this activity, applicable only when resharing an activity.<br>
"published": "A String", # The time at which this activity was initially published. Formatted as an <a href="http://www.rfc-editor.org/rfc/rfc3339.txt">RFC 3339</a> timestamp.<br>
},<br>
@@ -288,9 +288,13 @@
Allowed values<br>
best - Sort activities by relevance to the user, most relevant first.<br>
recent - Sort activities by published date, most recent first.<br>
+ pp: string, A parameter<br>
language: string, Specify the preferred language to search with. See search language codes for available values.<br>
pageToken: string, The continuation token, used to page through large result sets. To get the next page of results, set this parameter to the value of "nextPageToken" from the previous response. This token may be of any length.<br>
maxResults: integer, The maximum number of activities to include in the response, used for paging. For any response, the actual number returned may be less than the specified maxResults.<br>
+ strict: string, A parameter<br>
+ userip: string, A parameter<br>
+ trace: string, A parameter<br>
query: string, Full-text search query string. (required)<br>
<br>
Returns:<br>
@@ -405,7 +409,6 @@
"radius": "A String", # Radius, in meters, of the region where this activity occurred, centered at the latitude and longitude identified in geocode.<br>
"address": "A String", # Street address where this activity occurred.<br>
"crosspostSource": "A String", # If this activity is a crosspost from another system, this property specifies the ID of the original activity.<br>
- "placeholder": True or False, # True if this activity is a placeholder.<br>
"annotation": "A String", # Additional content added by the person who shared this activity, applicable only when resharing an activity.<br>
"published": "A String", # The time at which this activity was initially published. Formatted as an <a href="http://www.rfc-editor.org/rfc/rfc3339.txt">RFC 3339</a> timestamp.<br>
},<br>
diff --git a/docs/dyn/plus.v1.comments.html b/docs/dyn/plus.v1.comments.html
index 1fb8562..316273c 100644
--- a/docs/dyn/plus.v1.comments.html
+++ b/docs/dyn/plus.v1.comments.html
@@ -17,6 +17,10 @@
<dl><dt><a name="Resource-get"><strong>get</strong></a> = method(self, **kwargs)</dt><dd><tt>Get a comment.<br>
<br>
Args:<br>
+ pp: string, A parameter<br>
+ trace: string, A parameter<br>
+ strict: string, A parameter<br>
+ userip: string, A parameter<br>
commentId: string, The ID of the comment to get. (required)<br>
<br>
Returns:<br>
@@ -55,16 +59,17 @@
<dl><dt><a name="Resource-list"><strong>list</strong></a> = method(self, **kwargs)</dt><dd><tt>List all of the comments for an activity.<br>
<br>
Args:<br>
+ pp: string, A parameter<br>
+ trace: string, A parameter<br>
pageToken: string, The continuation token, used to page through large result sets. To get the next page of results, set this parameter to the value of "nextPageToken" from the previous response.<br>
maxResults: integer, The maximum number of comments to include in the response, used for paging. For any response, the actual number returned may be less than the specified maxResults.<br>
+ strict: string, A parameter<br>
activityId: string, The ID of the activity to get comments for. (required)<br>
sortOrder: string, The order in which to sort the list of comments.<br>
Allowed values<br>
ascending - Sort oldest comments first.<br>
descending - Sort newest comments first.<br>
- alt: string, Specifies an alternative representation type.<br>
- Allowed values<br>
- json - Use JSON format<br>
+ userip: string, A parameter<br>
<br>
Returns:<br>
An object of the form<br>
diff --git a/docs/dyn/plus.v1.people.html b/docs/dyn/plus.v1.people.html
index 2eeac13..9f0a405 100644
--- a/docs/dyn/plus.v1.people.html
+++ b/docs/dyn/plus.v1.people.html
@@ -17,7 +17,11 @@
<dl><dt><a name="Resource-get"><strong>get</strong></a> = method(self, **kwargs)</dt><dd><tt>Get a person's profile.<br>
<br>
Args:<br>
+ pp: string, A parameter<br>
+ trace: string, A parameter<br>
userId: string, The ID of the person to get the profile for. The special value "me" can be used to indicate the authenticated user. (required)<br>
+ strict: string, A parameter<br>
+ userip: string, A parameter<br>
<br>
Returns:<br>
An object of the form<br>
@@ -113,13 +117,17 @@
<dl><dt><a name="Resource-listByActivity"><strong>listByActivity</strong></a> = method(self, **kwargs)</dt><dd><tt>List all of the people in the specified collection for a particular activity.<br>
<br>
Args:<br>
+ pp: string, A parameter<br>
+ trace: string, A parameter<br>
pageToken: string, The continuation token, used to page through large result sets. To get the next page of results, set this parameter to the value of "nextPageToken" from the previous response.<br>
maxResults: integer, The maximum number of people to include in the response, used for paging. For any response, the actual number returned may be less than the specified maxResults.<br>
+ strict: string, A parameter<br>
activityId: string, The ID of the activity to get the list of people for. (required)<br>
collection: string, The collection of people to list. (required)<br>
Allowed values<br>
plusoners - List all people who have +1'd this activity.<br>
resharers - List all people who have reshared this activity.<br>
+ userip: string, A parameter<br>
<br>
Returns:<br>
An object of the form<br>
@@ -234,10 +242,14 @@
<dl><dt><a name="Resource-search"><strong>search</strong></a> = method(self, **kwargs)</dt><dd><tt>Search all public profiles.<br>
<br>
Args:<br>
- language: string, Specify the preferred language to search with. See search language codes for available values.<br>
+ pp: string, A parameter<br>
+ trace: string, A parameter<br>
pageToken: string, The continuation token, used to page through large result sets. To get the next page of results, set this parameter to the value of "nextPageToken" from the previous response. This token may be of any length.<br>
+ language: string, Specify the preferred language to search with. See search language codes for available values.<br>
maxResults: integer, The maximum number of people to include in the response, used for paging. For any response, the actual number returned may be less than the specified maxResults.<br>
- query: string, Full-text search query string. (required)<br>
+ strict: string, A parameter<br>
+ userip: string, A parameter<br>
+ query: string, Specify a query string for full text search of public text in all profiles. (required)<br>
<br>
Returns:<br>
An object of the form<br>
diff --git a/docs/dyn/prediction.v1.5.hostedmodels.html b/docs/dyn/prediction.v1.5.hostedmodels.html
index 8f54203..3f7254d 100644
--- a/docs/dyn/prediction.v1.5.hostedmodels.html
+++ b/docs/dyn/prediction.v1.5.hostedmodels.html
@@ -28,6 +28,10 @@
},<br>
}<br>
<br>
+ pp: string, A parameter<br>
+ trace: string, A parameter<br>
+ strict: string, A parameter<br>
+ userip: string, A parameter<br>
hostedModelName: string, The name of a hosted model. (required)<br>
<br>
Returns:<br>
diff --git a/docs/dyn/prediction.v1.5.trainedmodels.html b/docs/dyn/prediction.v1.5.trainedmodels.html
index 8aa06c0..1942b7f 100644
--- a/docs/dyn/prediction.v1.5.trainedmodels.html
+++ b/docs/dyn/prediction.v1.5.trainedmodels.html
@@ -17,6 +17,10 @@
<dl><dt><a name="Resource-analyze"><strong>analyze</strong></a> = method(self, **kwargs)</dt><dd><tt>Get analysis of the model and the data the model was trained on.<br>
<br>
Args:<br>
+ pp: string, A parameter<br>
+ trace: string, A parameter<br>
+ strict: string, A parameter<br>
+ userip: string, A parameter<br>
id: string, The unique name for the predictive model. (required)<br>
<br>
Returns:<br>
@@ -101,11 +105,19 @@
<dl><dt><a name="Resource-delete"><strong>delete</strong></a> = method(self, **kwargs)</dt><dd><tt>Delete a trained model.<br>
<br>
Args:<br>
+ pp: string, A parameter<br>
+ trace: string, A parameter<br>
+ strict: string, A parameter<br>
+ userip: string, A parameter<br>
id: string, The unique name for the predictive model. (required)</tt></dd></dl>
<dl><dt><a name="Resource-get"><strong>get</strong></a> = method(self, **kwargs)</dt><dd><tt>Check training status of your model.<br>
<br>
Args:<br>
+ pp: string, A parameter<br>
+ trace: string, A parameter<br>
+ strict: string, A parameter<br>
+ userip: string, A parameter<br>
id: string, The unique name for the predictive model. (required)<br>
<br>
Returns:<br>
@@ -165,6 +177,10 @@
],<br>
}<br>
<br>
+ pp: string, A parameter<br>
+ trace: string, A parameter<br>
+ strict: string, A parameter<br>
+ userip: string, A parameter<br>
<br>
Returns:<br>
An object of the form<br>
@@ -196,8 +212,12 @@
<dl><dt><a name="Resource-list"><strong>list</strong></a> = method(self, **kwargs)</dt><dd><tt>List available models.<br>
<br>
Args:<br>
+ pp: string, A parameter<br>
+ trace: string, A parameter<br>
pageToken: string, Pagination token<br>
maxResults: integer, Maximum number of results to return<br>
+ strict: string, A parameter<br>
+ userip: string, A parameter<br>
<br>
Returns:<br>
An object of the form<br>
@@ -257,6 +277,10 @@
},<br>
}<br>
<br>
+ pp: string, A parameter<br>
+ trace: string, A parameter<br>
+ strict: string, A parameter<br>
+ userip: string, A parameter<br>
id: string, The unique name for the predictive model. (required)<br>
<br>
Returns:<br>
@@ -289,6 +313,10 @@
"label": "A String", # The true class label of this instance<br>
}<br>
<br>
+ pp: string, A parameter<br>
+ trace: string, A parameter<br>
+ strict: string, A parameter<br>
+ userip: string, A parameter<br>
id: string, The unique name for the predictive model. (required)<br>
<br>
Returns:<br>
diff --git a/docs/dyn/shopping.v1.products.html b/docs/dyn/shopping.v1.products.html
index fb00bf0..38c1ae0 100644
--- a/docs/dyn/shopping.v1.products.html
+++ b/docs/dyn/shopping.v1.products.html
@@ -20,32 +20,37 @@
taxonomy: string, Merchant taxonomy<br>
recommendations_useGcsConfig: boolean, This parameter is currently ignored<br>
accountId: integer, Merchant center account id (required)<br>
+ pp: string, A parameter<br>
+ trace: string, A parameter<br>
plusOne_enabled: boolean, Whether to return +1 button code<br>
- plusOne_options: string, +1 button rendering specification<br>
recommendations_include: string, Recommendation specification<br>
source: string, Query source (required)<br>
location: string, Location used to determine tax and shipping<br>
+ strict: string, A parameter<br>
productId: string, Id of product (required)<br>
productIdType: string, Type of productId (required)<br>
recommendations_enabled: boolean, Whether to return recommendation information<br>
categories_enabled: boolean, Whether to return category information<br>
attributeFilter: string, Comma separated list of attributes to return<br>
categories_useGcsConfig: boolean, This parameter is currently ignored<br>
+ plusOne_styles: string, +1 button rendering styles<br>
thumbnails: string, Thumbnail specification<br>
categories_include: string, Category specification<br>
plusOne_useGcsConfig: boolean, Whether to use +1 button styles configured in the GCS account<br>
+ userip: string, A parameter<br>
<br>
Returns:<br>
An object of the form<br>
<br>
{<br>
- "selfLink": "A String", # Self link of product.<br>
+ "selfLink": "A String",<br>
"kind": "shopping#product", # The kind of item, always shopping#product.<br>
"product": { # Product.<br>
"queryMatched": True or False, # Whether this product matched the user query. Only set for the variant offers (if any) attached to a product offer.<br>
"gtin": "A String", # The first GTIN of the product. Deprecated in favor of "gtins".<br>
"images": [ # Images of product.<br>
{<br>
+ "status": "A String",<br>
"link": "A String", # Link to product image.<br>
"thumbnails": [ # Thumbnails of product image.<br>
{<br>
@@ -59,15 +64,21 @@
],<br>
"inventories": [ # Inventories of product.<br>
{<br>
+ "installmentPrice": 3.14, # Installment price of product inventory.<br>
+ "installmentMonths": 42, # Number of months for installment price.<br>
"distance": 3.14, # Distance of product inventory.<br>
"price": 3.14, # Price of product inventory.<br>
"storeId": "A String", # Store ID of product inventory.<br>
"tax": 3.14, # Tax of product inventory.<br>
"shipping": 3.14, # Shipping cost of product inventory.<br>
"currency": "A String", # Currency of product inventory (an ISO 4217 alphabetic code).<br>
+ "salePrice": 3.14, # Sale price of product inventory.<br>
+ "originalPrice": 3.14, # Original price of product inventory. Only returned for products that are on sale.<br>
"distanceUnit": "A String", # Distance unit of product inventory.<br>
+ "saleStartDate": "A String", # Sale start date.<br>
"availability": "A String", # Availability of product inventory.<br>
"channel": "A String", # Channel of product inventory (one of: online, local).<br>
+ "saleEndDate": "A String", # Sale end date.<br>
},<br>
],<br>
"author": { # Author of product.<br>
@@ -143,6 +154,7 @@
"gtin": "A String", # The first GTIN of the product. Deprecated in favor of "gtins".<br>
"images": [ # Images of product.<br>
{<br>
+ "status": "A String",<br>
"link": "A String", # Link to product image.<br>
"thumbnails": [ # Thumbnails of product image.<br>
{<br>
@@ -156,15 +168,21 @@
],<br>
"inventories": [ # Inventories of product.<br>
{<br>
+ "installmentPrice": 3.14, # Installment price of product inventory.<br>
+ "installmentMonths": 42, # Number of months for installment price.<br>
"distance": 3.14, # Distance of product inventory.<br>
"price": 3.14, # Price of product inventory.<br>
"storeId": "A String", # Store ID of product inventory.<br>
"tax": 3.14, # Tax of product inventory.<br>
"shipping": 3.14, # Shipping cost of product inventory.<br>
"currency": "A String", # Currency of product inventory (an ISO 4217 alphabetic code).<br>
+ "salePrice": 3.14, # Sale price of product inventory.<br>
+ "originalPrice": 3.14, # Original price of product inventory. Only returned for products that are on sale.<br>
"distanceUnit": "A String", # Distance unit of product inventory.<br>
+ "saleStartDate": "A String", # Sale start date.<br>
"availability": "A String", # Availability of product inventory.<br>
"channel": "A String", # Channel of product inventory (one of: online, local).<br>
+ "saleEndDate": "A String", # Sale end date.<br>
},<br>
],<br>
"author": { # Author of product.<br>
@@ -277,25 +295,29 @@
availability: string, Comma separated list of availabilities (outOfStock, limited, inStock, backOrder, preOrder, onDisplayToOrder) to return<br>
crowdBy: string, Crowding specification<br>
spelling_enabled: boolean, Whether to return spelling suggestions<br>
+ pp: string, A parameter<br>
categoryRecommendations_category: string, Category for which to retrieve recommendations<br>
source: string, Query source (required)<br>
- categories_useGcsConfig: boolean, This parameter is currently ignored<br>
categoryRecommendations_enabled: boolean, Whether to return category recommendation information<br>
spelling_useGcsConfig: boolean, This parameter is currently ignored<br>
plusOne_enabled: boolean, Whether to return +1 button code<br>
useCase: string, One of CommerceSearchUseCase, ShoppingApiUseCase<br>
location: string, Location used to determine tax and shipping<br>
maxVariants: integer, Maximum number of variant results to return per result<br>
+ plusOne_styles: string, +1 button rendering styles<br>
+ strict: string, A parameter<br>
relatedQueries_enabled: boolean, Whether to return related queries<br>
facets_useGcsConfig: boolean, Whether to return facet information as configured in the GCS account<br>
categoryRecommendations_useGcsConfig: boolean, This parameter is currently ignored<br>
boostBy: string, Boosting specification<br>
+ trace: string, A parameter<br>
safe: boolean, Whether safe search is enabled. Default: true<br>
maxResults: integer, Maximum number of results to return<br>
categories_enabled: boolean, Whether to return category information<br>
attributeFilter: string, Comma separated list of attributes to return<br>
categoryRecommendations_include: string, Category recommendation specification<br>
- plusOne_options: string, +1 button rendering specification<br>
+ categories_useGcsConfig: boolean, This parameter is currently ignored<br>
+ clickTracking: boolean, Whether to add a click tracking parameter to offer URLs<br>
facets_include: string, Facets to include (applies when useGcsConfig == false)<br>
thumbnails: string, Image thumbnails specification<br>
language: string, Language restriction (BCP 47)<br>
@@ -306,6 +328,7 @@
q: string, Search query<br>
redirects_useGcsConfig: boolean, Whether to return redirect information as configured in the GCS account<br>
plusOne_useGcsConfig: boolean, Whether to use +1 button styles configured in the GCS account<br>
+ userip: string, A parameter<br>
relatedQueries_useGcsConfig: boolean, This parameter is currently ignored<br>
promotions_useGcsConfig: boolean, Whether to return promotion information as configured in the GCS account<br>
country: string, Country restriction (ISO 3166)<br>
@@ -321,6 +344,7 @@
"gtin": "A String", # The first GTIN of the product. Deprecated in favor of "gtins".<br>
"images": [ # Images of product.<br>
{<br>
+ "status": "A String",<br>
"link": "A String", # Link to product image.<br>
"thumbnails": [ # Thumbnails of product image.<br>
{<br>
@@ -334,15 +358,21 @@
],<br>
"inventories": [ # Inventories of product.<br>
{<br>
+ "installmentPrice": 3.14, # Installment price of product inventory.<br>
+ "installmentMonths": 42, # Number of months for installment price.<br>
"distance": 3.14, # Distance of product inventory.<br>
"price": 3.14, # Price of product inventory.<br>
"storeId": "A String", # Store ID of product inventory.<br>
"tax": 3.14, # Tax of product inventory.<br>
"shipping": 3.14, # Shipping cost of product inventory.<br>
"currency": "A String", # Currency of product inventory (an ISO 4217 alphabetic code).<br>
+ "salePrice": 3.14, # Sale price of product inventory.<br>
+ "originalPrice": 3.14, # Original price of product inventory. Only returned for products that are on sale.<br>
"distanceUnit": "A String", # Distance unit of product inventory.<br>
+ "saleStartDate": "A String", # Sale start date.<br>
"availability": "A String", # Availability of product inventory.<br>
"channel": "A String", # Channel of product inventory (one of: online, local).<br>
+ "saleEndDate": "A String", # Sale end date.<br>
},<br>
],<br>
"author": { # Author of product.<br>
@@ -412,7 +442,6 @@
"imageLink": "A String", # Link to promotion image (omitted if type is not standard).<br>
"destLink": "A String", # Link to promotion (omitted if type is not standard).<br>
"customHtml": "A String", # Custom HTML of promotion (omitted if type is not custom).<br>
- "link": "A String", # Link to promotion without scheme. DEPRECATED. WILL BE REMOVED SOON. USE destLink.<br>
"customFields": [ # List of custom fields of promotion.<br>
{<br>
"name": "A String", # Name of field.<br>
@@ -439,13 +468,14 @@
"currentItemCount": 42, # Current item count.<br>
"items": [ # List of returned products.<br>
{<br>
- "selfLink": "A String", # Self link of product.<br>
+ "selfLink": "A String",<br>
"kind": "shopping#product", # The kind of item, always shopping#product.<br>
"product": { # Product.<br>
"queryMatched": True or False, # Whether this product matched the user query. Only set for the variant offers (if any) attached to a product offer.<br>
"gtin": "A String", # The first GTIN of the product. Deprecated in favor of "gtins".<br>
"images": [ # Images of product.<br>
{<br>
+ "status": "A String",<br>
"link": "A String", # Link to product image.<br>
"thumbnails": [ # Thumbnails of product image.<br>
{<br>
@@ -459,15 +489,21 @@
],<br>
"inventories": [ # Inventories of product.<br>
{<br>
+ "installmentPrice": 3.14, # Installment price of product inventory.<br>
+ "installmentMonths": 42, # Number of months for installment price.<br>
"distance": 3.14, # Distance of product inventory.<br>
"price": 3.14, # Price of product inventory.<br>
"storeId": "A String", # Store ID of product inventory.<br>
"tax": 3.14, # Tax of product inventory.<br>
"shipping": 3.14, # Shipping cost of product inventory.<br>
"currency": "A String", # Currency of product inventory (an ISO 4217 alphabetic code).<br>
+ "salePrice": 3.14, # Sale price of product inventory.<br>
+ "originalPrice": 3.14, # Original price of product inventory. Only returned for products that are on sale.<br>
"distanceUnit": "A String", # Distance unit of product inventory.<br>
+ "saleStartDate": "A String", # Sale start date.<br>
"availability": "A String", # Availability of product inventory.<br>
"channel": "A String", # Channel of product inventory (one of: online, local).<br>
+ "saleEndDate": "A String", # Sale end date.<br>
},<br>
],<br>
"author": { # Author of product.<br>
@@ -543,6 +579,7 @@
"gtin": "A String", # The first GTIN of the product. Deprecated in favor of "gtins".<br>
"images": [ # Images of product.<br>
{<br>
+ "status": "A String",<br>
"link": "A String", # Link to product image.<br>
"thumbnails": [ # Thumbnails of product image.<br>
{<br>
@@ -556,15 +593,21 @@
],<br>
"inventories": [ # Inventories of product.<br>
{<br>
+ "installmentPrice": 3.14, # Installment price of product inventory.<br>
+ "installmentMonths": 42, # Number of months for installment price.<br>
"distance": 3.14, # Distance of product inventory.<br>
"price": 3.14, # Price of product inventory.<br>
"storeId": "A String", # Store ID of product inventory.<br>
"tax": 3.14, # Tax of product inventory.<br>
"shipping": 3.14, # Shipping cost of product inventory.<br>
"currency": "A String", # Currency of product inventory (an ISO 4217 alphabetic code).<br>
+ "salePrice": 3.14, # Sale price of product inventory.<br>
+ "originalPrice": 3.14, # Original price of product inventory. Only returned for products that are on sale.<br>
"distanceUnit": "A String", # Distance unit of product inventory.<br>
+ "saleStartDate": "A String", # Sale start date.<br>
"availability": "A String", # Availability of product inventory.<br>
"channel": "A String", # Channel of product inventory (one of: online, local).<br>
+ "saleEndDate": "A String", # Sale end date.<br>
},<br>
],<br>
"author": { # Author of product.<br>
@@ -705,6 +748,7 @@
"gtin": "A String", # The first GTIN of the product. Deprecated in favor of "gtins".<br>
"images": [ # Images of product.<br>
{<br>
+ "status": "A String",<br>
"link": "A String", # Link to product image.<br>
"thumbnails": [ # Thumbnails of product image.<br>
{<br>
@@ -718,15 +762,21 @@
],<br>
"inventories": [ # Inventories of product.<br>
{<br>
+ "installmentPrice": 3.14, # Installment price of product inventory.<br>
+ "installmentMonths": 42, # Number of months for installment price.<br>
"distance": 3.14, # Distance of product inventory.<br>
"price": 3.14, # Price of product inventory.<br>
"storeId": "A String", # Store ID of product inventory.<br>
"tax": 3.14, # Tax of product inventory.<br>
"shipping": 3.14, # Shipping cost of product inventory.<br>
"currency": "A String", # Currency of product inventory (an ISO 4217 alphabetic code).<br>
+ "salePrice": 3.14, # Sale price of product inventory.<br>
+ "originalPrice": 3.14, # Original price of product inventory. Only returned for products that are on sale.<br>
"distanceUnit": "A String", # Distance unit of product inventory.<br>
+ "saleStartDate": "A String", # Sale start date.<br>
"availability": "A String", # Availability of product inventory.<br>
"channel": "A String", # Channel of product inventory (one of: online, local).<br>
+ "saleEndDate": "A String", # Sale end date.<br>
},<br>
],<br>
"author": { # Author of product.<br>
diff --git a/docs/dyn/siteVerification.v1.webResource.html b/docs/dyn/siteVerification.v1.webResource.html
index 03c0c71..826e173 100644
--- a/docs/dyn/siteVerification.v1.webResource.html
+++ b/docs/dyn/siteVerification.v1.webResource.html
@@ -17,11 +17,19 @@
<dl><dt><a name="Resource-delete"><strong>delete</strong></a> = method(self, **kwargs)</dt><dd><tt>Relinquish ownership of a website or domain.<br>
<br>
Args:<br>
+ pp: string, A parameter<br>
+ trace: string, A parameter<br>
+ strict: string, A parameter<br>
+ userip: string, A parameter<br>
id: string, The id of a verified site or domain. (required)</tt></dd></dl>
<dl><dt><a name="Resource-get"><strong>get</strong></a> = method(self, **kwargs)</dt><dd><tt>Get the most current data for a website or domain.<br>
<br>
Args:<br>
+ pp: string, A parameter<br>
+ trace: string, A parameter<br>
+ strict: string, A parameter<br>
+ userip: string, A parameter<br>
id: string, The id of a verified site or domain. (required)<br>
<br>
Returns:<br>
@@ -52,6 +60,10 @@
},<br>
}<br>
<br>
+ pp: string, A parameter<br>
+ trace: string, A parameter<br>
+ strict: string, A parameter<br>
+ userip: string, A parameter<br>
<br>
Returns:<br>
An object of the form<br>
@@ -78,7 +90,11 @@
},<br>
}<br>
<br>
+ pp: string, A parameter<br>
+ trace: string, A parameter<br>
verificationMethod: string, The method to use for verifying a site or domain. (required)<br>
+ strict: string, A parameter<br>
+ userip: string, A parameter<br>
<br>
Returns:<br>
An object of the form<br>
@@ -97,6 +113,10 @@
<dl><dt><a name="Resource-list"><strong>list</strong></a> = method(self, **kwargs)</dt><dd><tt>Get the list of your verified websites and domains.<br>
<br>
Args:<br>
+ pp: string, A parameter<br>
+ trace: string, A parameter<br>
+ strict: string, A parameter<br>
+ userip: string, A parameter<br>
<br>
Returns:<br>
An object of the form<br>
@@ -133,6 +153,10 @@
},<br>
}<br>
<br>
+ pp: string, A parameter<br>
+ trace: string, A parameter<br>
+ strict: string, A parameter<br>
+ userip: string, A parameter<br>
id: string, The id of a verified site or domain. (required)<br>
<br>
Returns:<br>
@@ -166,6 +190,10 @@
},<br>
}<br>
<br>
+ pp: string, A parameter<br>
+ trace: string, A parameter<br>
+ strict: string, A parameter<br>
+ userip: string, A parameter<br>
id: string, The id of a verified site or domain. (required)<br>
<br>
Returns:<br>
diff --git a/docs/dyn/taskqueue.v1beta2.html b/docs/dyn/taskqueue.v1beta2.html
new file mode 100644
index 0000000..de5877c
--- /dev/null
+++ b/docs/dyn/taskqueue.v1beta2.html
@@ -0,0 +1,30 @@
+
+<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
+<html><head><title>Python: class Resource</title>
+</head><body bgcolor="#f0f0f8">
+<p>
+<table width="100%" cellspacing=0 cellpadding=2 border=0 summary="section">
+<tr bgcolor="#ffc8d8">
+<td colspan=3 valign=bottom> <br>
+<font color="#000000" face="helvetica, arial"><a name="Resource">class <strong>Resource</strong></a>(<a href="__builtin__.html#object">__builtin__.object</a>)</font></td></tr>
+
+<tr bgcolor="#ffc8d8"><td rowspan=2><tt> </tt></td>
+<td colspan=2><tt>A class for interacting with a resource.<br> </tt></td></tr>
+<tr><td> </td>
+<td width="100%">Methods defined here:<br>
+<dl><dt><a name="Resource-__init__"><strong>__init__</strong></a>(self)</dt></dl>
+
+<dl><dt><a name="Resource-taskqueues"><strong><a href="taskqueue.v1beta2.taskqueues.html">taskqueues</a></strong></a> = methodResource(self)</dt><dd><tt>A collection resource.</tt></dd></dl>
+
+<dl><dt><a name="Resource-tasks"><strong><a href="taskqueue.v1beta2.tasks.html">tasks</a></strong></a> = methodResource(self)</dt><dd><tt>A collection resource.</tt></dd></dl>
+
+<hr>
+Data descriptors defined here:<br>
+<dl><dt><strong>__dict__</strong></dt>
+<dd><tt>dictionary for instance variables (if defined)</tt></dd>
+</dl>
+<dl><dt><strong>__weakref__</strong></dt>
+<dd><tt>list of weak references to the object (if defined)</tt></dd>
+</dl>
+</td></tr></table>
+</body></html>
\ No newline at end of file
diff --git a/docs/dyn/taskqueue.v1beta2.taskqueues.html b/docs/dyn/taskqueue.v1beta2.taskqueues.html
new file mode 100644
index 0000000..e3a9d0c
--- /dev/null
+++ b/docs/dyn/taskqueue.v1beta2.taskqueues.html
@@ -0,0 +1,63 @@
+
+<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
+<html><head><title>Python: class Resource</title>
+</head><body bgcolor="#f0f0f8">
+<p>
+<table width="100%" cellspacing=0 cellpadding=2 border=0 summary="section">
+<tr bgcolor="#ffc8d8">
+<td colspan=3 valign=bottom> <br>
+<font color="#000000" face="helvetica, arial"><a name="Resource">class <strong>Resource</strong></a>(<a href="__builtin__.html#object">__builtin__.object</a>)</font></td></tr>
+
+<tr bgcolor="#ffc8d8"><td rowspan=2><tt> </tt></td>
+<td colspan=2><tt>A class for interacting with a resource.<br> </tt></td></tr>
+<tr><td> </td>
+<td width="100%">Methods defined here:<br>
+<dl><dt><a name="Resource-__init__"><strong>__init__</strong></a>(self)</dt></dl>
+
+<dl><dt><a name="Resource-get"><strong>get</strong></a> = method(self, **kwargs)</dt><dd><tt>Get detailed information about a TaskQueue.<br>
+ <br>
+Args:<br>
+ project: string, The project under which the queue lies. (required)<br>
+ pp: string, A parameter<br>
+ trace: string, A parameter<br>
+ taskqueue: string, The id of the taskqueue to get the properties of. (required)<br>
+ strict: string, A parameter<br>
+ getStats: boolean, Whether to get stats. Optional.<br>
+ userip: string, A parameter<br>
+ <br>
+Returns:<br>
+ An object of the form<br>
+ <br>
+ {<br>
+ "kind": "taskqueues#taskqueue", # The kind of REST object returned, in this case taskqueue.<br>
+ "stats": { # Statistics for the TaskQueue object in question.<br>
+ "oldestTask": "A String", # The timestamp (in seconds since the epoch) of the oldest unfinished task.<br>
+ "leasedLastMinute": "A String", # Number of tasks leased in the last minute.<br>
+ "totalTasks": 42, # Number of tasks in the queue.<br>
+ "leasedLastHour": "A String", # Number of tasks leased in the last hour.<br>
+ },<br>
+ "id": "A String", # Name of the taskqueue.<br>
+ "maxLeases": 42, # The number of times we should lease out tasks before giving up on them. If unset we lease them out forever until a worker deletes the task.<br>
+ "acl": { # ACLs that are applicable to this TaskQueue object.<br>
+ "consumerEmails": [ # Email addresses of users who can "consume" tasks from the TaskQueue. This means they can Dequeue and Delete tasks from the queue.<br>
+ "A String",<br>
+ ],<br>
+ "producerEmails": [ # Email addresses of users who can "produce" tasks into the TaskQueue. This means they can Insert tasks into the queue.<br>
+ "A String",<br>
+ ],<br>
+ "adminEmails": [ # Email addresses of users who are "admins" of the TaskQueue. This means they can control the queue, eg set ACLs for the queue.<br>
+ "A String",<br>
+ ],<br>
+ },<br>
+ }</tt></dd></dl>
+
+<hr>
+Data descriptors defined here:<br>
+<dl><dt><strong>__dict__</strong></dt>
+<dd><tt>dictionary for instance variables (if defined)</tt></dd>
+</dl>
+<dl><dt><strong>__weakref__</strong></dt>
+<dd><tt>list of weak references to the object (if defined)</tt></dd>
+</dl>
+</td></tr></table>
+</body></html>
\ No newline at end of file
diff --git a/docs/dyn/taskqueue.v1beta2.tasks.html b/docs/dyn/taskqueue.v1beta2.tasks.html
new file mode 100644
index 0000000..94af291
--- /dev/null
+++ b/docs/dyn/taskqueue.v1beta2.tasks.html
@@ -0,0 +1,233 @@
+
+<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
+<html><head><title>Python: class Resource</title>
+</head><body bgcolor="#f0f0f8">
+<p>
+<table width="100%" cellspacing=0 cellpadding=2 border=0 summary="section">
+<tr bgcolor="#ffc8d8">
+<td colspan=3 valign=bottom> <br>
+<font color="#000000" face="helvetica, arial"><a name="Resource">class <strong>Resource</strong></a>(<a href="__builtin__.html#object">__builtin__.object</a>)</font></td></tr>
+
+<tr bgcolor="#ffc8d8"><td rowspan=2><tt> </tt></td>
+<td colspan=2><tt>A class for interacting with a resource.<br> </tt></td></tr>
+<tr><td> </td>
+<td width="100%">Methods defined here:<br>
+<dl><dt><a name="Resource-__init__"><strong>__init__</strong></a>(self)</dt></dl>
+
+<dl><dt><a name="Resource-delete"><strong>delete</strong></a> = method(self, **kwargs)</dt><dd><tt>Delete a task from a TaskQueue.<br>
+ <br>
+Args:<br>
+ project: string, The project under which the queue lies. (required)<br>
+ pp: string, A parameter<br>
+ task: string, The id of the task to delete. (required)<br>
+ trace: string, A parameter<br>
+ taskqueue: string, The taskqueue to delete a task from. (required)<br>
+ strict: string, A parameter<br>
+ userip: string, A parameter</tt></dd></dl>
+
+<dl><dt><a name="Resource-get"><strong>get</strong></a> = method(self, **kwargs)</dt><dd><tt>Get a particular task from a TaskQueue.<br>
+ <br>
+Args:<br>
+ project: string, The project under which the queue lies. (required)<br>
+ pp: string, A parameter<br>
+ task: string, The task to get properties of. (required)<br>
+ trace: string, A parameter<br>
+ taskqueue: string, The taskqueue in which the task belongs. (required)<br>
+ strict: string, A parameter<br>
+ userip: string, A parameter<br>
+ <br>
+Returns:<br>
+ An object of the form<br>
+ <br>
+ {<br>
+ "kind": "taskqueues#task", # The kind of object returned, in this case set to task.<br>
+ "leaseTimestamp": "A String", # Time (in seconds since the epoch) at which the task lease will expire. This value is 0 if the task isnt currently leased out to a worker.<br>
+ "id": "A String", # Name of the task.<br>
+ "tag": "A String", # Tag for the task, could be used later to lease tasks grouped by a specific tag.<br>
+ "payloadBase64": "A String", # A bag of bytes which is the task payload. The payload on the JSON side is always Base64 encoded.<br>
+ "queueName": "A String", # Name of the queue that the task is in.<br>
+ "enqueueTimestamp": "A String", # Time (in seconds since the epoch) at which the task was enqueued.<br>
+ }</tt></dd></dl>
+
+<dl><dt><a name="Resource-insert"><strong>insert</strong></a> = method(self, **kwargs)</dt><dd><tt>Insert a new task in a TaskQueue<br>
+ <br>
+Args:<br>
+ body: object, The request body. (required)<br>
+ The object takes the form of:<br>
+ <br>
+{<br>
+ "kind": "taskqueues#task", # The kind of object returned, in this case set to task.<br>
+ "leaseTimestamp": "A String", # Time (in seconds since the epoch) at which the task lease will expire. This value is 0 if the task isnt currently leased out to a worker.<br>
+ "id": "A String", # Name of the task.<br>
+ "tag": "A String", # Tag for the task, could be used later to lease tasks grouped by a specific tag.<br>
+ "payloadBase64": "A String", # A bag of bytes which is the task payload. The payload on the JSON side is always Base64 encoded.<br>
+ "queueName": "A String", # Name of the queue that the task is in.<br>
+ "enqueueTimestamp": "A String", # Time (in seconds since the epoch) at which the task was enqueued.<br>
+ }<br>
+ <br>
+ project: string, The project under which the queue lies (required)<br>
+ pp: string, A parameter<br>
+ trace: string, A parameter<br>
+ taskqueue: string, The taskqueue to insert the task into (required)<br>
+ strict: string, A parameter<br>
+ userip: string, A parameter<br>
+ <br>
+Returns:<br>
+ An object of the form<br>
+ <br>
+ {<br>
+ "kind": "taskqueues#task", # The kind of object returned, in this case set to task.<br>
+ "leaseTimestamp": "A String", # Time (in seconds since the epoch) at which the task lease will expire. This value is 0 if the task isnt currently leased out to a worker.<br>
+ "id": "A String", # Name of the task.<br>
+ "tag": "A String", # Tag for the task, could be used later to lease tasks grouped by a specific tag.<br>
+ "payloadBase64": "A String", # A bag of bytes which is the task payload. The payload on the JSON side is always Base64 encoded.<br>
+ "queueName": "A String", # Name of the queue that the task is in.<br>
+ "enqueueTimestamp": "A String", # Time (in seconds since the epoch) at which the task was enqueued.<br>
+ }</tt></dd></dl>
+
+<dl><dt><a name="Resource-lease"><strong>lease</strong></a> = method(self, **kwargs)</dt><dd><tt>Lease 1 or more tasks from a TaskQueue.<br>
+ <br>
+Args:<br>
+ groupByTag: boolean, When true, all returned tasks will have the same tag<br>
+ project: string, The project under which the queue lies. (required)<br>
+ pp: string, A parameter<br>
+ leaseSecs: integer, The lease in seconds. (required)<br>
+ taskqueue: string, The taskqueue to lease a task from. (required)<br>
+ strict: string, A parameter<br>
+ userip: string, A parameter<br>
+ tag: string, The tag allowed for tasks in the response. Must only be specified if group_by_tag is true. If group_by_tag is true and tag is not specified the tag will be that of the oldest task by eta, i.e. the first available tag<br>
+ trace: string, A parameter<br>
+ numTasks: integer, The number of tasks to lease. (required)<br>
+ <br>
+Returns:<br>
+ An object of the form<br>
+ <br>
+ {<br>
+ "items": [ # The actual list of tasks returned as a result of the lease operation.<br>
+ {<br>
+ "kind": "taskqueues#task", # The kind of object returned, in this case set to task.<br>
+ "leaseTimestamp": "A String", # Time (in seconds since the epoch) at which the task lease will expire. This value is 0 if the task isnt currently leased out to a worker.<br>
+ "id": "A String", # Name of the task.<br>
+ "tag": "A String", # Tag for the task, could be used later to lease tasks grouped by a specific tag.<br>
+ "payloadBase64": "A String", # A bag of bytes which is the task payload. The payload on the JSON side is always Base64 encoded.<br>
+ "queueName": "A String", # Name of the queue that the task is in.<br>
+ "enqueueTimestamp": "A String", # Time (in seconds since the epoch) at which the task was enqueued.<br>
+ },<br>
+ ],<br>
+ "kind": "taskqueue#tasks", # The kind of object returned, a list of tasks.<br>
+ }</tt></dd></dl>
+
+<dl><dt><a name="Resource-list"><strong>list</strong></a> = method(self, **kwargs)</dt><dd><tt>List Tasks in a TaskQueue<br>
+ <br>
+Args:<br>
+ project: string, The project under which the queue lies. (required)<br>
+ pp: string, A parameter<br>
+ trace: string, A parameter<br>
+ taskqueue: string, The id of the taskqueue to list tasks from. (required)<br>
+ strict: string, A parameter<br>
+ userip: string, A parameter<br>
+ <br>
+Returns:<br>
+ An object of the form<br>
+ <br>
+ {<br>
+ "items": [ # The actual list of tasks currently active in the TaskQueue.<br>
+ {<br>
+ "kind": "taskqueues#task", # The kind of object returned, in this case set to task.<br>
+ "leaseTimestamp": "A String", # Time (in seconds since the epoch) at which the task lease will expire. This value is 0 if the task isnt currently leased out to a worker.<br>
+ "id": "A String", # Name of the task.<br>
+ "tag": "A String", # Tag for the task, could be used later to lease tasks grouped by a specific tag.<br>
+ "payloadBase64": "A String", # A bag of bytes which is the task payload. The payload on the JSON side is always Base64 encoded.<br>
+ "queueName": "A String", # Name of the queue that the task is in.<br>
+ "enqueueTimestamp": "A String", # Time (in seconds since the epoch) at which the task was enqueued.<br>
+ },<br>
+ ],<br>
+ "kind": "taskqueues#tasks", # The kind of object returned, a list of tasks.<br>
+ }</tt></dd></dl>
+
+<dl><dt><a name="Resource-patch"><strong>patch</strong></a> = method(self, **kwargs)</dt><dd><tt>Update tasks that are leased out of a TaskQueue. This method supports patch semantics.<br>
+ <br>
+Args:<br>
+ body: object, The request body. (required)<br>
+ The object takes the form of:<br>
+ <br>
+{<br>
+ "kind": "taskqueues#task", # The kind of object returned, in this case set to task.<br>
+ "leaseTimestamp": "A String", # Time (in seconds since the epoch) at which the task lease will expire. This value is 0 if the task isnt currently leased out to a worker.<br>
+ "id": "A String", # Name of the task.<br>
+ "tag": "A String", # Tag for the task, could be used later to lease tasks grouped by a specific tag.<br>
+ "payloadBase64": "A String", # A bag of bytes which is the task payload. The payload on the JSON side is always Base64 encoded.<br>
+ "queueName": "A String", # Name of the queue that the task is in.<br>
+ "enqueueTimestamp": "A String", # Time (in seconds since the epoch) at which the task was enqueued.<br>
+ }<br>
+ <br>
+ project: string, The project under which the queue lies. (required)<br>
+ pp: string, A parameter<br>
+ task: string, A parameter (required)<br>
+ newLeaseSeconds: integer, The new lease in seconds. (required)<br>
+ trace: string, A parameter<br>
+ taskqueue: string, A parameter (required)<br>
+ strict: string, A parameter<br>
+ userip: string, A parameter<br>
+ <br>
+Returns:<br>
+ An object of the form<br>
+ <br>
+ {<br>
+ "kind": "taskqueues#task", # The kind of object returned, in this case set to task.<br>
+ "leaseTimestamp": "A String", # Time (in seconds since the epoch) at which the task lease will expire. This value is 0 if the task isnt currently leased out to a worker.<br>
+ "id": "A String", # Name of the task.<br>
+ "tag": "A String", # Tag for the task, could be used later to lease tasks grouped by a specific tag.<br>
+ "payloadBase64": "A String", # A bag of bytes which is the task payload. The payload on the JSON side is always Base64 encoded.<br>
+ "queueName": "A String", # Name of the queue that the task is in.<br>
+ "enqueueTimestamp": "A String", # Time (in seconds since the epoch) at which the task was enqueued.<br>
+ }</tt></dd></dl>
+
+<dl><dt><a name="Resource-update"><strong>update</strong></a> = method(self, **kwargs)</dt><dd><tt>Update tasks that are leased out of a TaskQueue.<br>
+ <br>
+Args:<br>
+ body: object, The request body. (required)<br>
+ The object takes the form of:<br>
+ <br>
+{<br>
+ "kind": "taskqueues#task", # The kind of object returned, in this case set to task.<br>
+ "leaseTimestamp": "A String", # Time (in seconds since the epoch) at which the task lease will expire. This value is 0 if the task isnt currently leased out to a worker.<br>
+ "id": "A String", # Name of the task.<br>
+ "tag": "A String", # Tag for the task, could be used later to lease tasks grouped by a specific tag.<br>
+ "payloadBase64": "A String", # A bag of bytes which is the task payload. The payload on the JSON side is always Base64 encoded.<br>
+ "queueName": "A String", # Name of the queue that the task is in.<br>
+ "enqueueTimestamp": "A String", # Time (in seconds since the epoch) at which the task was enqueued.<br>
+ }<br>
+ <br>
+ project: string, The project under which the queue lies. (required)<br>
+ pp: string, A parameter<br>
+ task: string, A parameter (required)<br>
+ newLeaseSeconds: integer, The new lease in seconds. (required)<br>
+ trace: string, A parameter<br>
+ taskqueue: string, A parameter (required)<br>
+ strict: string, A parameter<br>
+ userip: string, A parameter<br>
+ <br>
+Returns:<br>
+ An object of the form<br>
+ <br>
+ {<br>
+ "kind": "taskqueues#task", # The kind of object returned, in this case set to task.<br>
+ "leaseTimestamp": "A String", # Time (in seconds since the epoch) at which the task lease will expire. This value is 0 if the task isnt currently leased out to a worker.<br>
+ "id": "A String", # Name of the task.<br>
+ "tag": "A String", # Tag for the task, could be used later to lease tasks grouped by a specific tag.<br>
+ "payloadBase64": "A String", # A bag of bytes which is the task payload. The payload on the JSON side is always Base64 encoded.<br>
+ "queueName": "A String", # Name of the queue that the task is in.<br>
+ "enqueueTimestamp": "A String", # Time (in seconds since the epoch) at which the task was enqueued.<br>
+ }</tt></dd></dl>
+
+<hr>
+Data descriptors defined here:<br>
+<dl><dt><strong>__dict__</strong></dt>
+<dd><tt>dictionary for instance variables (if defined)</tt></dd>
+</dl>
+<dl><dt><strong>__weakref__</strong></dt>
+<dd><tt>list of weak references to the object (if defined)</tt></dd>
+</dl>
+</td></tr></table>
+</body></html>
\ No newline at end of file
diff --git a/docs/dyn/tasks.v1.tasklists.html b/docs/dyn/tasks.v1.tasklists.html
index c7ce7a2..9434b71 100644
--- a/docs/dyn/tasks.v1.tasklists.html
+++ b/docs/dyn/tasks.v1.tasklists.html
@@ -17,12 +17,20 @@
<dl><dt><a name="Resource-delete"><strong>delete</strong></a> = method(self, **kwargs)</dt><dd><tt>Deletes the authenticated user's specified task list.<br>
<br>
Args:<br>
- tasklist: string, Task list identifier. (required)</tt></dd></dl>
+ pp: string, A parameter<br>
+ tasklist: string, Task list identifier. (required)<br>
+ trace: string, A parameter<br>
+ strict: string, A parameter<br>
+ userip: string, A parameter</tt></dd></dl>
<dl><dt><a name="Resource-get"><strong>get</strong></a> = method(self, **kwargs)</dt><dd><tt>Returns the authenticated user's specified task list.<br>
<br>
Args:<br>
+ pp: string, A parameter<br>
tasklist: string, Task list identifier. (required)<br>
+ trace: string, A parameter<br>
+ strict: string, A parameter<br>
+ userip: string, A parameter<br>
<br>
Returns:<br>
An object of the form<br>
@@ -51,6 +59,10 @@
"selfLink": "A String", # URL pointing to this task list. Used to retrieve, update, or delete this task list.<br>
}<br>
<br>
+ pp: string, A parameter<br>
+ trace: string, A parameter<br>
+ strict: string, A parameter<br>
+ userip: string, A parameter<br>
<br>
Returns:<br>
An object of the form<br>
@@ -67,8 +79,12 @@
<dl><dt><a name="Resource-list"><strong>list</strong></a> = method(self, **kwargs)</dt><dd><tt>Returns all the authenticated user's task lists.<br>
<br>
Args:<br>
+ pp: string, A parameter<br>
+ trace: string, A parameter<br>
pageToken: string, Token specifying the result page to return. Optional.<br>
maxResults: string, Maximum number of task lists returned on one page. Optional. The default is 100.<br>
+ strict: string, A parameter<br>
+ userip: string, A parameter<br>
<br>
Returns:<br>
An object of the form<br>
@@ -114,7 +130,11 @@
"selfLink": "A String", # URL pointing to this task list. Used to retrieve, update, or delete this task list.<br>
}<br>
<br>
+ pp: string, A parameter<br>
tasklist: string, Task list identifier. (required)<br>
+ trace: string, A parameter<br>
+ strict: string, A parameter<br>
+ userip: string, A parameter<br>
<br>
Returns:<br>
An object of the form<br>
@@ -143,7 +163,11 @@
"selfLink": "A String", # URL pointing to this task list. Used to retrieve, update, or delete this task list.<br>
}<br>
<br>
+ pp: string, A parameter<br>
tasklist: string, Task list identifier. (required)<br>
+ trace: string, A parameter<br>
+ strict: string, A parameter<br>
+ userip: string, A parameter<br>
<br>
Returns:<br>
An object of the form<br>
diff --git a/docs/dyn/tasks.v1.tasks.html b/docs/dyn/tasks.v1.tasks.html
index 83b9b96..f9effc4 100644
--- a/docs/dyn/tasks.v1.tasks.html
+++ b/docs/dyn/tasks.v1.tasks.html
@@ -17,19 +17,31 @@
<dl><dt><a name="Resource-clear"><strong>clear</strong></a> = method(self, **kwargs)</dt><dd><tt>Clears all completed tasks from the specified task list. The affected tasks will be marked as 'hidden' and no longer be returned by default when retrieving all tasks for a task list.<br>
<br>
Args:<br>
- tasklist: string, Task list identifier. (required)</tt></dd></dl>
+ pp: string, A parameter<br>
+ tasklist: string, Task list identifier. (required)<br>
+ trace: string, A parameter<br>
+ strict: string, A parameter<br>
+ userip: string, A parameter</tt></dd></dl>
<dl><dt><a name="Resource-delete"><strong>delete</strong></a> = method(self, **kwargs)</dt><dd><tt>Deletes the specified task from the task list.<br>
<br>
Args:<br>
+ pp: string, A parameter<br>
tasklist: string, Task list identifier. (required)<br>
- task: string, Task identifier. (required)</tt></dd></dl>
+ trace: string, A parameter<br>
+ strict: string, A parameter<br>
+ task: string, Task identifier. (required)<br>
+ userip: string, A parameter</tt></dd></dl>
<dl><dt><a name="Resource-get"><strong>get</strong></a> = method(self, **kwargs)</dt><dd><tt>Returns the specified task.<br>
<br>
Args:<br>
+ pp: string, A parameter<br>
tasklist: string, Task list identifier. (required)<br>
+ trace: string, A parameter<br>
+ strict: string, A parameter<br>
task: string, Task identifier. (required)<br>
+ userip: string, A parameter<br>
<br>
Returns:<br>
An object of the form<br>
@@ -88,8 +100,12 @@
"selfLink": "A String", # URL pointing to this task. Used to retrieve, update, or delete this task.<br>
}<br>
<br>
+ pp: string, A parameter<br>
tasklist: string, Task list identifier. (required)<br>
parent: string, Parent task identifier. If the task is created at the top level, this parameter is omitted. Optional.<br>
+ strict: string, A parameter<br>
+ userip: string, A parameter<br>
+ trace: string, A parameter<br>
previous: string, Previous sibling task identifier. If the task is created at the first position among its siblings, this parameter is omitted. Optional.<br>
<br>
Returns:<br>
@@ -122,17 +138,21 @@
<dl><dt><a name="Resource-list"><strong>list</strong></a> = method(self, **kwargs)</dt><dd><tt>Returns all tasks in the specified task list.<br>
<br>
Args:<br>
- dueMax: string, Upper bound for a task's due date (as a <a href="http://www.rfc-editor.org/rfc/rfc3339.txt">RFC 3339</a> timestamp) to filter by. Optional. The default is not to filter by due date.<br>
- tasklist: string, Task list identifier. (required)<br>
- pageToken: string, Token specifying the result page to return. Optional.<br>
- updatedMin: string, Lower bound for a task's last modification time (as a <a href="http://www.rfc-editor.org/rfc/rfc3339.txt">RFC 3339</a> timestamp) to filter by. Optional. The default is not to filter by last modification time.<br>
- maxResults: string, Maximum number of task lists returned on one page. Optional. The default is 100.<br>
- completedMin: string, Lower bound for a task's completion date (as a <a href="http://www.rfc-editor.org/rfc/rfc3339.txt">RFC 3339</a> timestamp) to filter by. Optional. The default is not to filter by completion date.<br>
- showDeleted: boolean, Flag indicating whether deleted tasks are returned in the result. Optional. The default is False.<br>
- completedMax: string, Upper bound for a task's completion date (as a <a href="http://www.rfc-editor.org/rfc/rfc3339.txt">RFC 3339</a> timestamp) to filter by. Optional. The default is not to filter by completion date.<br>
- showHidden: boolean, Flag indicating whether hidden tasks are returned in the result. Optional. The default is False.<br>
showCompleted: boolean, Flag indicating whether completed tasks are returned in the result. Optional. The default is True.<br>
dueMin: string, Lower bound for a task's due date (as a <a href="http://www.rfc-editor.org/rfc/rfc3339.txt">RFC 3339</a> timestamp) to filter by. Optional. The default is not to filter by due date.<br>
+ dueMax: string, Upper bound for a task's due date (as a <a href="http://www.rfc-editor.org/rfc/rfc3339.txt">RFC 3339</a> timestamp) to filter by. Optional. The default is not to filter by due date.<br>
+ pageToken: string, Token specifying the result page to return. Optional.<br>
+ updatedMin: string, Lower bound for a task's last modification time (as a <a href="http://www.rfc-editor.org/rfc/rfc3339.txt">RFC 3339</a> timestamp) to filter by. Optional. The default is not to filter by last modification time.<br>
+ showDeleted: boolean, Flag indicating whether deleted tasks are returned in the result. Optional. The default is False.<br>
+ completedMax: string, Upper bound for a task's completion date (as a <a href="http://www.rfc-editor.org/rfc/rfc3339.txt">RFC 3339</a> timestamp) to filter by. Optional. The default is not to filter by completion date.<br>
+ strict: string, A parameter<br>
+ tasklist: string, Task list identifier. (required)<br>
+ trace: string, A parameter<br>
+ pp: string, A parameter<br>
+ maxResults: string, Maximum number of task lists returned on one page. Optional. The default is 100.<br>
+ completedMin: string, Lower bound for a task's completion date (as a <a href="http://www.rfc-editor.org/rfc/rfc3339.txt">RFC 3339</a> timestamp) to filter by. Optional. The default is not to filter by completion date.<br>
+ showHidden: boolean, Flag indicating whether hidden tasks are returned in the result. Optional. The default is False.<br>
+ userip: string, A parameter<br>
<br>
Returns:<br>
An object of the form<br>
@@ -181,9 +201,13 @@
<dl><dt><a name="Resource-move"><strong>move</strong></a> = method(self, **kwargs)</dt><dd><tt>Moves the specified task to another position in the task list. This can include putting it as a child task under a new parent and/or move it to a different position among its sibling tasks.<br>
<br>
Args:<br>
+ pp: string, A parameter<br>
tasklist: string, Task list identifier. (required)<br>
parent: string, New parent task identifier. If the task is moved to the top level, this parameter is omitted. Optional.<br>
+ strict: string, A parameter<br>
+ userip: string, A parameter<br>
task: string, Task identifier. (required)<br>
+ trace: string, A parameter<br>
previous: string, New previous sibling task identifier. If the task is moved to the first position among its siblings, this parameter is omitted. Optional.<br>
<br>
Returns:<br>
@@ -243,8 +267,12 @@
"selfLink": "A String", # URL pointing to this task. Used to retrieve, update, or delete this task.<br>
}<br>
<br>
+ pp: string, A parameter<br>
tasklist: string, Task list identifier. (required)<br>
+ trace: string, A parameter<br>
+ strict: string, A parameter<br>
task: string, Task identifier. (required)<br>
+ userip: string, A parameter<br>
<br>
Returns:<br>
An object of the form<br>
@@ -303,8 +331,12 @@
"selfLink": "A String", # URL pointing to this task. Used to retrieve, update, or delete this task.<br>
}<br>
<br>
+ pp: string, A parameter<br>
tasklist: string, Task list identifier. (required)<br>
+ trace: string, A parameter<br>
+ strict: string, A parameter<br>
task: string, Task identifier. (required)<br>
+ userip: string, A parameter<br>
<br>
Returns:<br>
An object of the form<br>
diff --git a/docs/dyn/translate.v2.detections.html b/docs/dyn/translate.v2.detections.html
index d384d00..b0dd6f6 100644
--- a/docs/dyn/translate.v2.detections.html
+++ b/docs/dyn/translate.v2.detections.html
@@ -18,6 +18,10 @@
<br>
Args:<br>
q: string, The text to detect (required) (repeated)<br>
+ pp: string, A parameter<br>
+ trace: string, A parameter<br>
+ strict: string, A parameter<br>
+ userip: string, A parameter<br>
<br>
Returns:<br>
An object of the form<br>
diff --git a/docs/dyn/translate.v2.languages.html b/docs/dyn/translate.v2.languages.html
index 4178c45..cbcc451 100644
--- a/docs/dyn/translate.v2.languages.html
+++ b/docs/dyn/translate.v2.languages.html
@@ -17,7 +17,11 @@
<dl><dt><a name="Resource-list"><strong>list</strong></a> = method(self, **kwargs)</dt><dd><tt>List the source/target languages supported by the API<br>
<br>
Args:<br>
+ pp: string, A parameter<br>
target: string, the language and collation in which the localized results should be returned<br>
+ trace: string, A parameter<br>
+ strict: string, A parameter<br>
+ userip: string, A parameter<br>
<br>
Returns:<br>
An object of the form<br>
diff --git a/docs/dyn/translate.v2.translations.html b/docs/dyn/translate.v2.translations.html
index 8992683..aa78ba9 100644
--- a/docs/dyn/translate.v2.translations.html
+++ b/docs/dyn/translate.v2.translations.html
@@ -17,14 +17,18 @@
<dl><dt><a name="Resource-list"><strong>list</strong></a> = method(self, **kwargs)</dt><dd><tt>Returns text translations from one language to another.<br>
<br>
Args:<br>
+ q: string, The text to translate (required) (repeated)<br>
+ pp: string, A parameter<br>
target: string, The target language into which the text should be translated (required)<br>
- cid: string, The customization id for translate (repeated)<br>
format: string, The format of the text<br>
Allowed values<br>
html - Specifies the input is in HTML<br>
text - Specifies the input is in plain textual format<br>
- q: string, The text to translate (required) (repeated)<br>
+ cid: string, The customization id for translate (repeated)<br>
source: string, The source language of the text<br>
+ userip: string, A parameter<br>
+ trace: string, A parameter<br>
+ strict: string, A parameter<br>
<br>
Returns:<br>
An object of the form<br>
diff --git a/docs/dyn/urlshortener.v1.url.html b/docs/dyn/urlshortener.v1.url.html
index 48cbe55..f8bc0b5 100644
--- a/docs/dyn/urlshortener.v1.url.html
+++ b/docs/dyn/urlshortener.v1.url.html
@@ -17,12 +17,16 @@
<dl><dt><a name="Resource-get"><strong>get</strong></a> = method(self, **kwargs)</dt><dd><tt>Expands a short URL or gets creation time and analytics.<br>
<br>
Args:<br>
+ pp: string, A parameter<br>
projection: string, Additional information to return.<br>
Allowed values<br>
ANALYTICS_CLICKS - Returns only click counts.<br>
ANALYTICS_TOP_STRINGS - Returns only top string counts.<br>
FULL - Returns the creation timestamp and all available analytics.<br>
+ trace: string, A parameter<br>
shortUrl: string, The short URL, including the protocol. (required)<br>
+ strict: string, A parameter<br>
+ userip: string, A parameter<br>
<br>
Returns:<br>
An object of the form<br>
@@ -333,6 +337,10 @@
"id": "A String", # Short URL, e.g. "<a href="http://goo.gl/l6MS">http://goo.gl/l6MS</a>".<br>
}<br>
<br>
+ pp: string, A parameter<br>
+ trace: string, A parameter<br>
+ strict: string, A parameter<br>
+ userip: string, A parameter<br>
<br>
Returns:<br>
An object of the form<br>
@@ -491,10 +499,14 @@
<br>
Args:<br>
start_token: string, Token for requesting successive pages of results.<br>
+ pp: string, A parameter<br>
projection: string, Additional information to return.<br>
Allowed values<br>
ANALYTICS_CLICKS - Returns short URL click counts.<br>
FULL - Returns short URL click counts.<br>
+ trace: string, A parameter<br>
+ strict: string, A parameter<br>
+ userip: string, A parameter<br>
<br>
Returns:<br>
An object of the form<br>
diff --git a/docs/dyn/webfonts.v1.webfonts.html b/docs/dyn/webfonts.v1.webfonts.html
index 5df6ea9..a3e7e68 100644
--- a/docs/dyn/webfonts.v1.webfonts.html
+++ b/docs/dyn/webfonts.v1.webfonts.html
@@ -24,6 +24,10 @@
popularity - Sort by popularity<br>
style - Sort by number of styles<br>
trending - Sort by trending<br>
+ pp: string, A parameter<br>
+ trace: string, A parameter<br>
+ strict: string, A parameter<br>
+ userip: string, A parameter<br>
<br>
Returns:<br>
An object of the form<br>
diff --git a/docs/epy/api-objects.txt b/docs/epy/api-objects.txt
index ad81fdb..e1bef82 100644
--- a/docs/epy/api-objects.txt
+++ b/docs/epy/api-objects.txt
@@ -1,13 +1,6 @@
apiclient apiclient-module.html
apiclient.__package__ apiclient-module.html#__package__
-apiclient.contrib apiclient.contrib-module.html
-apiclient.contrib.__package__ apiclient.contrib-module.html#__package__
-apiclient.contrib.latitude apiclient.contrib.latitude-module.html
-apiclient.contrib.latitude.__package__ apiclient.contrib.latitude-module.html#__package__
-apiclient.contrib.moderator apiclient.contrib.moderator-module.html
-apiclient.contrib.moderator.__package__ apiclient.contrib.moderator-module.html#__package__
apiclient.discovery apiclient.discovery-module.html
-apiclient.discovery._fix_method_name apiclient.discovery-module.html#_fix_method_name
apiclient.discovery.VARNAME apiclient.discovery-module.html#VARNAME
apiclient.discovery._cast apiclient.discovery-module.html#_cast
apiclient.discovery.MULTIPLIERS apiclient.discovery-module.html#MULTIPLIERS
@@ -22,7 +15,7 @@
apiclient.discovery.logger apiclient.discovery-module.html#logger
apiclient.discovery.DEFAULT_METHOD_DOC apiclient.discovery-module.html#DEFAULT_METHOD_DOC
apiclient.discovery.STACK_QUERY_PARAMETERS apiclient.discovery-module.html#STACK_QUERY_PARAMETERS
-apiclient.discovery._write_headers apiclient.discovery-module.html#_write_headers
+apiclient.discovery.fix_method_name apiclient.discovery-module.html#fix_method_name
apiclient.discovery.DISCOVERY_URI apiclient.discovery-module.html#DISCOVERY_URI
apiclient.discovery.URITEMPLATE apiclient.discovery-module.html#URITEMPLATE
apiclient.errors apiclient.errors-module.html
@@ -32,6 +25,7 @@
apiclient.http apiclient.http-module.html
apiclient.http.set_user_agent apiclient.http-module.html#set_user_agent
apiclient.http.tunnel_patch apiclient.http-module.html#tunnel_patch
+apiclient.http.DEFAULT_CHUNK_SIZE apiclient.http-module.html#DEFAULT_CHUNK_SIZE
apiclient.http.__package__ apiclient.http-module.html#__package__
apiclient.mimeparse apiclient.mimeparse-module.html
apiclient.mimeparse.__credits__ apiclient.mimeparse-module.html#__credits__
@@ -65,10 +59,12 @@
oauth2client.client._extract_id_token oauth2client.client-module.html#_extract_id_token
oauth2client.client._cached_http oauth2client.client-module.html#_cached_http
oauth2client.client.ID_TOKEN_VERIFICATON_CERTS oauth2client.client-module.html#ID_TOKEN_VERIFICATON_CERTS
-oauth2client.client.flow_from_clientsecrets oauth2client.client-module.html#flow_from_clientsecrets
+oauth2client.client.credentials_from_clientsecrets_and_code oauth2client.client-module.html#credentials_from_clientsecrets_and_code
oauth2client.client.__package__ oauth2client.client-module.html#__package__
-oauth2client.client.logger oauth2client.client-module.html#logger
+oauth2client.client.flow_from_clientsecrets oauth2client.client-module.html#flow_from_clientsecrets
+oauth2client.client.credentials_from_code oauth2client.client-module.html#credentials_from_code
oauth2client.client._abstract oauth2client.client-module.html#_abstract
+oauth2client.client.logger oauth2client.client-module.html#logger
oauth2client.client.OOB_CALLBACK_URN oauth2client.client-module.html#OOB_CALLBACK_URN
oauth2client.client.HAS_OPENSSL oauth2client.client-module.html#HAS_OPENSSL
oauth2client.client.EXPIRY_FORMAT oauth2client.client-module.html#EXPIRY_FORMAT
@@ -99,6 +95,9 @@
oauth2client.django_orm.__package__ oauth2client.django_orm-module.html#__package__
oauth2client.file oauth2client.file-module.html
oauth2client.file.__package__ oauth2client.file-module.html#__package__
+oauth2client.locked_file oauth2client.locked_file-module.html
+oauth2client.locked_file.logger oauth2client.locked_file-module.html#logger
+oauth2client.locked_file.__package__ oauth2client.locked_file-module.html#__package__
oauth2client.multistore_file oauth2client.multistore_file-module.html
oauth2client.multistore_file._multistores_lock oauth2client.multistore_file-module.html#_multistores_lock
oauth2client.multistore_file.get_credential_storage oauth2client.multistore_file-module.html#get_credential_storage
@@ -150,6 +149,7 @@
apiclient.http.HttpRequest apiclient.http.HttpRequest-class.html
apiclient.http.HttpRequest.from_json apiclient.http.HttpRequest-class.html#from_json
apiclient.http.HttpRequest.execute apiclient.http.HttpRequest-class.html#execute
+apiclient.http.HttpRequest._process_response apiclient.http.HttpRequest-class.html#_process_response
apiclient.http.HttpRequest.next_chunk apiclient.http.HttpRequest-class.html#next_chunk
apiclient.http.HttpRequest.to_json apiclient.http.HttpRequest-class.html#to_json
apiclient.http.HttpRequest.__init__ apiclient.http.HttpRequest-class.html#__init__
@@ -178,6 +178,16 @@
apiclient.http.MediaInMemoryUpload.getbytes apiclient.http.MediaInMemoryUpload-class.html#getbytes
apiclient.http.MediaInMemoryUpload.mimetype apiclient.http.MediaInMemoryUpload-class.html#mimetype
apiclient.http.MediaInMemoryUpload.resumable apiclient.http.MediaInMemoryUpload-class.html#resumable
+apiclient.http.MediaIoBaseUpload apiclient.http.MediaIoBaseUpload-class.html
+apiclient.http.MediaIoBaseUpload.to_json apiclient.http.MediaIoBaseUpload-class.html#to_json
+apiclient.http.MediaUpload.new_from_json apiclient.http.MediaUpload-class.html#new_from_json
+apiclient.http.MediaIoBaseUpload.__init__ apiclient.http.MediaIoBaseUpload-class.html#__init__
+apiclient.http.MediaIoBaseUpload.size apiclient.http.MediaIoBaseUpload-class.html#size
+apiclient.http.MediaUpload._to_json apiclient.http.MediaUpload-class.html#_to_json
+apiclient.http.MediaIoBaseUpload.chunksize apiclient.http.MediaIoBaseUpload-class.html#chunksize
+apiclient.http.MediaIoBaseUpload.getbytes apiclient.http.MediaIoBaseUpload-class.html#getbytes
+apiclient.http.MediaIoBaseUpload.mimetype apiclient.http.MediaIoBaseUpload-class.html#mimetype
+apiclient.http.MediaIoBaseUpload.resumable apiclient.http.MediaIoBaseUpload-class.html#resumable
apiclient.http.MediaUpload apiclient.http.MediaUpload-class.html
apiclient.http.MediaUpload.to_json apiclient.http.MediaUpload-class.html#to_json
apiclient.http.MediaUpload.new_from_json apiclient.http.MediaUpload-class.html#new_from_json
@@ -500,6 +510,36 @@
oauth2client.client.Storage.put oauth2client.client.Storage-class.html#put
oauth2client.file.Storage.release_lock oauth2client.file.Storage-class.html#release_lock
oauth2client.client.Storage.delete oauth2client.client.Storage-class.html#delete
+oauth2client.locked_file.AlreadyLockedException oauth2client.locked_file.AlreadyLockedException-class.html
+oauth2client.locked_file.LockedFile oauth2client.locked_file.LockedFile-class.html
+oauth2client.locked_file.LockedFile.open_and_lock oauth2client.locked_file.LockedFile-class.html#open_and_lock
+oauth2client.locked_file.LockedFile.file_handle oauth2client.locked_file.LockedFile-class.html#file_handle
+oauth2client.locked_file.LockedFile.is_locked oauth2client.locked_file.LockedFile-class.html#is_locked
+oauth2client.locked_file.LockedFile.unlock_and_close oauth2client.locked_file.LockedFile-class.html#unlock_and_close
+oauth2client.locked_file.LockedFile.filename oauth2client.locked_file.LockedFile-class.html#filename
+oauth2client.locked_file.LockedFile.__init__ oauth2client.locked_file.LockedFile-class.html#__init__
+oauth2client.locked_file._FcntlOpener oauth2client.locked_file._FcntlOpener-class.html
+oauth2client.locked_file._FcntlOpener.open_and_lock oauth2client.locked_file._FcntlOpener-class.html#open_and_lock
+oauth2client.locked_file._Opener.file_handle oauth2client.locked_file._Opener-class.html#file_handle
+oauth2client.locked_file._Opener.is_locked oauth2client.locked_file._Opener-class.html#is_locked
+oauth2client.locked_file._Opener.filename oauth2client.locked_file._Opener-class.html#filename
+oauth2client.locked_file._FcntlOpener.unlock_and_close oauth2client.locked_file._FcntlOpener-class.html#unlock_and_close
+oauth2client.locked_file._Opener.__init__ oauth2client.locked_file._Opener-class.html#__init__
+oauth2client.locked_file._Opener oauth2client.locked_file._Opener-class.html
+oauth2client.locked_file._Opener.open_and_lock oauth2client.locked_file._Opener-class.html#open_and_lock
+oauth2client.locked_file._Opener.file_handle oauth2client.locked_file._Opener-class.html#file_handle
+oauth2client.locked_file._Opener.is_locked oauth2client.locked_file._Opener-class.html#is_locked
+oauth2client.locked_file._Opener.unlock_and_close oauth2client.locked_file._Opener-class.html#unlock_and_close
+oauth2client.locked_file._Opener.filename oauth2client.locked_file._Opener-class.html#filename
+oauth2client.locked_file._Opener.__init__ oauth2client.locked_file._Opener-class.html#__init__
+oauth2client.locked_file._PosixOpener oauth2client.locked_file._PosixOpener-class.html
+oauth2client.locked_file._PosixOpener.open_and_lock oauth2client.locked_file._PosixOpener-class.html#open_and_lock
+oauth2client.locked_file._Opener.file_handle oauth2client.locked_file._Opener-class.html#file_handle
+oauth2client.locked_file._Opener.is_locked oauth2client.locked_file._Opener-class.html#is_locked
+oauth2client.locked_file._PosixOpener._posix_lockfile oauth2client.locked_file._PosixOpener-class.html#_posix_lockfile
+oauth2client.locked_file._Opener.filename oauth2client.locked_file._Opener-class.html#filename
+oauth2client.locked_file._PosixOpener.unlock_and_close oauth2client.locked_file._PosixOpener-class.html#unlock_and_close
+oauth2client.locked_file._Opener.__init__ oauth2client.locked_file._Opener-class.html#__init__
oauth2client.multistore_file.Error oauth2client.multistore_file.Error-class.html
oauth2client.multistore_file.NewerCredentialStoreError oauth2client.multistore_file.NewerCredentialStoreError-class.html
oauth2client.multistore_file._MultiStore oauth2client.multistore_file._MultiStore-class.html
diff --git a/docs/epy/apiclient-module.html b/docs/epy/apiclient-module.html
index 043bb97..9116cb7 100644
--- a/docs/epy/apiclient-module.html
+++ b/docs/epy/apiclient-module.html
@@ -75,12 +75,6 @@
</tr>
<tr><td class="summary">
<ul class="nomargin">
- <li> <strong class="uidlink"><a href="apiclient.contrib-module.html">apiclient.contrib</a></strong>
- <ul>
- <li> <strong class="uidlink"><a href="apiclient.contrib.latitude-module.html">apiclient.contrib.latitude</a></strong> </li>
- <li> <strong class="uidlink"><a href="apiclient.contrib.moderator-module.html">apiclient.contrib.moderator</a></strong> </li>
- </ul>
- </li>
<li> <strong class="uidlink"><a href="apiclient.discovery-module.html">apiclient.discovery</a></strong>: <em class="summary">Client for discovery based APIs</em> </li>
<li> <strong class="uidlink"><a href="apiclient.errors-module.html">apiclient.errors</a></strong>: <em class="summary">Errors for the library.</em> </li>
<li> <strong class="uidlink"><a href="apiclient.ext-module.html">apiclient.ext</a></strong> </li>
@@ -140,7 +134,7 @@
<table border="0" cellpadding="0" cellspacing="0" width="100%%">
<tr>
<td align="left" class="footer">
- Generated by Epydoc 3.0.1 on Tue Jun 5 09:03:05 2012
+ Generated by Epydoc 3.0.1 on Thu Jun 14 08:01:54 2012
</td>
<td align="right" class="footer">
<a target="mainFrame" href="http://epydoc.sourceforge.net"
diff --git a/docs/epy/apiclient-pysrc.html b/docs/epy/apiclient-pysrc.html
index bb61bcf..d8535a7 100644
--- a/docs/epy/apiclient-pysrc.html
+++ b/docs/epy/apiclient-pysrc.html
@@ -83,7 +83,7 @@
<table border="0" cellpadding="0" cellspacing="0" width="100%%">
<tr>
<td align="left" class="footer">
- Generated by Epydoc 3.0.1 on Tue Jun 5 09:03:11 2012
+ Generated by Epydoc 3.0.1 on Thu Jun 14 08:01:59 2012
</td>
<td align="right" class="footer">
<a target="mainFrame" href="http://epydoc.sourceforge.net"
diff --git a/docs/epy/apiclient.discovery-module.html b/docs/epy/apiclient.discovery-module.html
index cabbe2c..63b3efa 100644
--- a/docs/epy/apiclient.discovery-module.html
+++ b/docs/epy/apiclient.discovery-module.html
@@ -87,25 +87,10 @@
</td><td class="summary">
<table width="100%" cellpadding="0" cellspacing="0" border="0">
<tr>
- <td><span class="summary-sig"><a name="_fix_method_name"></a><span class="summary-sig-name">_fix_method_name</span>(<span class="summary-sig-arg">name</span>)</span></td>
+ <td><span class="summary-sig"><a href="apiclient.discovery-module.html#fix_method_name" class="summary-sig-name" onclick="show_private();">fix_method_name</a>(<span class="summary-sig-arg">name</span>)</span><br />
+ Fix method names to avoid reserved word conflicts.</td>
<td align="right" valign="top">
- <span class="codelink"><a href="apiclient.discovery-pysrc.html#_fix_method_name">source code</a></span>
-
- </td>
- </tr>
- </table>
-
- </td>
- </tr>
-<tr class="private">
- <td width="15%" align="right" valign="top" class="summary">
- <span class="summary-type"> </span>
- </td><td class="summary">
- <table width="100%" cellpadding="0" cellspacing="0" border="0">
- <tr>
- <td><span class="summary-sig"><a name="_write_headers"></a><span class="summary-sig-name">_write_headers</span>(<span class="summary-sig-arg">self</span>)</span></td>
- <td align="right" valign="top">
- <span class="codelink"><a href="apiclient.discovery-pysrc.html#_write_headers">source code</a></span>
+ <span class="codelink"><a href="apiclient.discovery-pysrc.html#fix_method_name">source code</a></span>
</td>
</tr>
@@ -132,13 +117,13 @@
</td>
</tr>
-<tr class="private">
+<tr>
<td width="15%" align="right" valign="top" class="summary">
<span class="summary-type"> </span>
</td><td class="summary">
<table width="100%" cellpadding="0" cellspacing="0" border="0">
<tr>
- <td><span class="summary-sig"><a href="apiclient.discovery-module.html#key2param" class="summary-sig-name" onclick="show_private();">key2param</a>(<span class="summary-sig-arg">key</span>)</span><br />
+ <td><span class="summary-sig"><a href="apiclient.discovery-module.html#key2param" class="summary-sig-name">key2param</a>(<span class="summary-sig-arg">key</span>)</span><br />
Converts key names into parameter names.</td>
<td align="right" valign="top">
<span class="codelink"><a href="apiclient.discovery-pysrc.html#key2param">source code</a></span>
@@ -172,13 +157,13 @@
</td>
</tr>
-<tr>
+<tr class="private">
<td width="15%" align="right" valign="top" class="summary">
<span class="summary-type"> </span>
</td><td class="summary">
<table width="100%" cellpadding="0" cellspacing="0" border="0">
<tr>
- <td><span class="summary-sig"><a href="apiclient.discovery-module.html#build_from_document" class="summary-sig-name">build_from_document</a>(<span class="summary-sig-arg">service</span>,
+ <td><span class="summary-sig"><a href="apiclient.discovery-module.html#build_from_document" class="summary-sig-name" onclick="show_private();">build_from_document</a>(<span class="summary-sig-arg">service</span>,
<span class="summary-sig-arg">base</span>,
<span class="summary-sig-arg">future</span>=<span class="summary-sig-default">None</span>,
<span class="summary-sig-arg">http</span>=<span class="summary-sig-default">None</span>,
@@ -219,7 +204,7 @@
</td><td class="summary">
<table width="100%" cellpadding="0" cellspacing="0" border="0">
<tr>
- <td><span class="summary-sig"><a name="_media_size_to_long"></a><span class="summary-sig-name">_media_size_to_long</span>(<span class="summary-sig-arg">maxSize</span>)</span><br />
+ <td><span class="summary-sig"><a href="apiclient.discovery-module.html#_media_size_to_long" class="summary-sig-name" onclick="show_private();">_media_size_to_long</a>(<span class="summary-sig-arg">maxSize</span>)</span><br />
Convert a string media size, such as 10GB or 3TB into an integer.</td>
<td align="right" valign="top">
<span class="codelink"><a href="apiclient.discovery-pysrc.html#_media_size_to_long">source code</a></span>
@@ -236,14 +221,15 @@
</td><td class="summary">
<table width="100%" cellpadding="0" cellspacing="0" border="0">
<tr>
- <td><span class="summary-sig"><a name="createResource"></a><span class="summary-sig-name">createResource</span>(<span class="summary-sig-arg">http</span>,
+ <td><span class="summary-sig"><a href="apiclient.discovery-module.html#createResource" class="summary-sig-name" onclick="show_private();">createResource</a>(<span class="summary-sig-arg">http</span>,
<span class="summary-sig-arg">baseUrl</span>,
<span class="summary-sig-arg">model</span>,
<span class="summary-sig-arg">requestBuilder</span>,
<span class="summary-sig-arg">developerKey</span>,
<span class="summary-sig-arg">resourceDesc</span>,
- <span class="summary-sig-arg">futureDesc</span>,
- <span class="summary-sig-arg">schema</span>)</span></td>
+ <span class="summary-sig-arg">rootDesc</span>,
+ <span class="summary-sig-arg">schema</span>)</span><br />
+ Build a Resource from the API description.</td>
<td align="right" valign="top">
<span class="codelink"><a href="apiclient.discovery-pysrc.html#createResource">source code</a></span>
@@ -310,7 +296,7 @@
<td width="15%" align="right" valign="top" class="summary">
<span class="summary-type"> </span>
</td><td class="summary">
- <a href="apiclient.discovery-module.html#STACK_QUERY_PARAMETERS" class="summary-name" onclick="show_private();">STACK_QUERY_PARAMETERS</a> = <code title="['trace', 'fields', 'pp', 'prettyPrint', 'userIp', 'userip', 'strict']"><code class="variable-group">[</code><code class="variable-quote">'</code><code class="variable-string">trace</code><code class="variable-quote">'</code><code class="variable-op">, </code><code class="variable-quote">'</code><code class="variable-string">fields</code><code class="variable-quote">'</code><code class="variable-op">, </code><code class="variable-quote">'</code><code class="variable-string">pp</code><code class="variable-quote">'</code><code class="variable-op">, </code><code class="variable-quote">'</code><code class="variable-string">prettyPrin</code><code class="variable-ellipsis">...</code></code>
+ <a name="STACK_QUERY_PARAMETERS"></a><span class="summary-name">STACK_QUERY_PARAMETERS</span> = <code title="['trace', 'pp', 'userip', 'strict']"><code class="variable-group">[</code><code class="variable-quote">'</code><code class="variable-string">trace</code><code class="variable-quote">'</code><code class="variable-op">, </code><code class="variable-quote">'</code><code class="variable-string">pp</code><code class="variable-quote">'</code><code class="variable-op">, </code><code class="variable-quote">'</code><code class="variable-string">userip</code><code class="variable-quote">'</code><code class="variable-op">, </code><code class="variable-quote">'</code><code class="variable-string">strict</code><code class="variable-quote">'</code><code class="variable-group">]</code></code>
</td>
</tr>
<tr class="private">
@@ -361,6 +347,34 @@
</td>
</tr>
</table>
+<a name="fix_method_name"></a>
+<div class="private">
+<table class="details" border="1" cellpadding="3"
+ cellspacing="0" width="100%" bgcolor="white">
+<tr><td>
+ <table width="100%" cellpadding="0" cellspacing="0" border="0">
+ <tr valign="top"><td>
+ <h3 class="epydoc"><span class="sig"><span class="sig-name">fix_method_name</span>(<span class="sig-arg">name</span>)</span>
+ </h3>
+ </td><td align="right" valign="top"
+ ><span class="codelink"><a href="apiclient.discovery-pysrc.html#fix_method_name">source code</a></span>
+ </td>
+ </tr></table>
+
+ <pre class="literalblock">
+Fix method names to avoid reserved word conflicts.
+
+Args:
+ name: string, method name.
+
+Returns:
+ The name with a '_' prefixed if the name is a reserved word.
+
+</pre>
+ <dl class="fields">
+ </dl>
+</td></tr></table>
+</div>
<a name="_add_query_parameter"></a>
<div class="private">
<table class="details" border="1" cellpadding="3"
@@ -396,7 +410,7 @@
</td></tr></table>
</div>
<a name="key2param"></a>
-<div class="private">
+<div>
<table class="details" border="1" cellpadding="3"
cellspacing="0" width="100%" bgcolor="white">
<tr><td>
@@ -414,6 +428,12 @@
For example, converting "max-results" -> "max_results"
+Args:
+ key: string, the method key name.
+
+Returns:
+ A safe method name based on the key name.
+
</pre>
<dl class="fields">
</dl>
@@ -442,29 +462,26 @@
<pre class="literalblock">
Construct a Resource for interacting with an API.
-Construct a Resource object for interacting with
-an API. The serviceName and version are the
-names from the Discovery service.
+Construct a Resource object for interacting with an API. The serviceName and
+version are the names from the Discovery service.
Args:
- serviceName: string, name of the service
- version: string, the version of the service
+ serviceName: string, name of the service.
+ version: string, the version of the service.
http: httplib2.Http, An instance of httplib2.Http or something that acts
like it that HTTP requests will be made through.
- discoveryServiceUrl: string, a URI Template that points to
- the location of the discovery service. It should have two
- parameters {api} and {apiVersion} that when filled in
- produce an absolute URI to the discovery document for
- that service.
- developerKey: string, key obtained
- from https://code.google.com/apis/console
- model: apiclient.Model, converts to and from the wire format
- requestBuilder: apiclient.http.HttpRequest, encapsulator for
- an HTTP request
+ discoveryServiceUrl: string, a URI Template that points to the location of
+ the discovery service. It should have two parameters {api} and
+ {apiVersion} that when filled in produce an absolute URI to the discovery
+ document for that service.
+ developerKey: string, key obtained from
+ https://code.google.com/apis/console.
+ model: apiclient.Model, converts to and from the wire format.
+ requestBuilder: apiclient.http.HttpRequest, encapsulator for an HTTP
+ request.
Returns:
- A Resource object with methods for interacting with
- the service.
+ A Resource object with methods for interacting with the service.
</pre>
<dl class="fields">
@@ -472,7 +489,7 @@
</td></tr></table>
</div>
<a name="build_from_document"></a>
-<div>
+<div class="private">
<table class="details" border="1" cellpadding="3"
cellspacing="0" width="100%" bgcolor="white">
<tr><td>
@@ -494,26 +511,23 @@
<pre class="literalblock">
Create a Resource for interacting with an API.
-Same as `build()`, but constructs the Resource object
-from a discovery document that is it given, as opposed to
-retrieving one over HTTP.
+Same as `build()`, but constructs the Resource object from a discovery
+document that is it given, as opposed to retrieving one over HTTP.
Args:
- service: string, discovery document
- base: string, base URI for all HTTP requests, usually the discovery URI
- future: string, discovery document with future capabilities
- auth_discovery: dict, information about the authentication the API supports
+ service: string, discovery document.
+ base: string, base URI for all HTTP requests, usually the discovery URI.
+ future: string, discovery document with future capabilities (deprecated).
http: httplib2.Http, An instance of httplib2.Http or something that acts
like it that HTTP requests will be made through.
developerKey: string, Key for controlling API usage, generated
from the API Console.
- model: Model class instance that serializes and
- de-serializes requests and responses.
+ model: Model class instance that serializes and de-serializes requests and
+ responses.
requestBuilder: Takes an http request and packages it up to be executed.
Returns:
- A Resource object with methods for interacting with
- the service.
+ A Resource object with methods for interacting with the service.
</pre>
<dl class="fields">
@@ -553,6 +567,82 @@
</dl>
</td></tr></table>
</div>
+<a name="_media_size_to_long"></a>
+<div class="private">
+<table class="details" border="1" cellpadding="3"
+ cellspacing="0" width="100%" bgcolor="white">
+<tr><td>
+ <table width="100%" cellpadding="0" cellspacing="0" border="0">
+ <tr valign="top"><td>
+ <h3 class="epydoc"><span class="sig"><span class="sig-name">_media_size_to_long</span>(<span class="sig-arg">maxSize</span>)</span>
+ </h3>
+ </td><td align="right" valign="top"
+ ><span class="codelink"><a href="apiclient.discovery-pysrc.html#_media_size_to_long">source code</a></span>
+ </td>
+ </tr></table>
+
+ <pre class="literalblock">
+Convert a string media size, such as 10GB or 3TB into an integer.
+
+Args:
+ maxSize: string, size as a string, such as 2MB or 7GB.
+
+Returns:
+ The size as an integer value.
+
+</pre>
+ <dl class="fields">
+ </dl>
+</td></tr></table>
+</div>
+<a name="createResource"></a>
+<div class="private">
+<table class="details" border="1" cellpadding="3"
+ cellspacing="0" width="100%" bgcolor="white">
+<tr><td>
+ <table width="100%" cellpadding="0" cellspacing="0" border="0">
+ <tr valign="top"><td>
+ <h3 class="epydoc"><span class="sig"><span class="sig-name">createResource</span>(<span class="sig-arg">http</span>,
+ <span class="sig-arg">baseUrl</span>,
+ <span class="sig-arg">model</span>,
+ <span class="sig-arg">requestBuilder</span>,
+ <span class="sig-arg">developerKey</span>,
+ <span class="sig-arg">resourceDesc</span>,
+ <span class="sig-arg">rootDesc</span>,
+ <span class="sig-arg">schema</span>)</span>
+ </h3>
+ </td><td align="right" valign="top"
+ ><span class="codelink"><a href="apiclient.discovery-pysrc.html#createResource">source code</a></span>
+ </td>
+ </tr></table>
+
+ <pre class="literalblock">
+Build a Resource from the API description.
+
+Args:
+ http: httplib2.Http, Object to make http requests with.
+ baseUrl: string, base URL for the API. All requests are relative to this
+ URI.
+ model: apiclient.Model, converts to and from the wire format.
+ requestBuilder: class or callable that instantiates an
+ apiclient.HttpRequest object.
+ developerKey: string, key obtained from
+ https://code.google.com/apis/console
+ resourceDesc: object, section of deserialized discovery document that
+ describes a resource. Note that the top level discovery document
+ is considered a resource.
+ rootDesc: object, the entire deserialized discovery document.
+ schema: object, mapping of schema names to schema descriptions.
+
+Returns:
+ An instance of Resource with all the methods attached for interacting with
+ that resource.
+
+</pre>
+ <dl class="fields">
+ </dl>
+</td></tr></table>
+</div>
<br />
<!-- ==================== VARIABLES DETAILS ==================== -->
<a name="section-VariablesDetails"></a>
@@ -590,24 +680,6 @@
</dl>
</td></tr></table>
</div>
-<a name="STACK_QUERY_PARAMETERS"></a>
-<div class="private">
-<table class="details" border="1" cellpadding="3"
- cellspacing="0" width="100%" bgcolor="white">
-<tr><td>
- <h3 class="epydoc">STACK_QUERY_PARAMETERS</h3>
-
- <dl class="fields">
- </dl>
- <dl class="fields">
- <dt>Value:</dt>
- <dd><table><tr><td><pre class="variable">
-<code class="variable-group">[</code><code class="variable-quote">'</code><code class="variable-string">trace</code><code class="variable-quote">'</code><code class="variable-op">, </code><code class="variable-quote">'</code><code class="variable-string">fields</code><code class="variable-quote">'</code><code class="variable-op">, </code><code class="variable-quote">'</code><code class="variable-string">pp</code><code class="variable-quote">'</code><code class="variable-op">, </code><code class="variable-quote">'</code><code class="variable-string">prettyPrint</code><code class="variable-quote">'</code><code class="variable-op">, </code><code class="variable-quote">'</code><code class="variable-string">userIp</code><code class="variable-quote">'</code><code class="variable-op">, </code><code class="variable-quote">'</code><code class="variable-string">userip</code><code class="variable-quote">'</code><code class="variable-op">, </code><code class="variable-quote">'</code><code class="variable-string">strict</code><code class="variable-quote">'</code><code class="variable-group">]</code>
-</pre></td></tr></table>
-</dd>
- </dl>
-</td></tr></table>
-</div>
<a name="RESERVED_WORDS"></a>
<div class="private">
<table class="details" border="1" cellpadding="3"
@@ -676,7 +748,7 @@
<table border="0" cellpadding="0" cellspacing="0" width="100%%">
<tr>
<td align="left" class="footer">
- Generated by Epydoc 3.0.1 on Tue Jun 5 09:03:05 2012
+ Generated by Epydoc 3.0.1 on Thu Jun 14 08:01:54 2012
</td>
<td align="right" class="footer">
<a target="mainFrame" href="http://epydoc.sourceforge.net"
diff --git a/docs/epy/apiclient.discovery-pysrc.html b/docs/epy/apiclient.discovery-pysrc.html
index 32e29d0..39d80c1 100644
--- a/docs/epy/apiclient.discovery-pysrc.html
+++ b/docs/epy/apiclient.discovery-pysrc.html
@@ -74,206 +74,210 @@
<a name="L19"></a><tt class="py-lineno"> 19</tt> <tt class="py-line"> </tt>
<a name="L20"></a><tt class="py-lineno"> 20</tt> <tt class="py-line"><tt class="py-name">__author__</tt> <tt class="py-op">=</tt> <tt class="py-string">'jcgregorio@google.com (Joe Gregorio)'</tt> </tt>
<a name="L21"></a><tt class="py-lineno"> 21</tt> <tt class="py-line"><tt class="py-name">__all__</tt> <tt class="py-op">=</tt> <tt class="py-op">[</tt> </tt>
-<a name="L22"></a><tt class="py-lineno"> 22</tt> <tt class="py-line"> <tt class="py-string">'build'</tt><tt class="py-op">,</tt> <tt class="py-string">'build_from_document'</tt> </tt>
-<a name="L23"></a><tt class="py-lineno"> 23</tt> <tt class="py-line"> <tt class="py-op">]</tt> </tt>
-<a name="L24"></a><tt class="py-lineno"> 24</tt> <tt class="py-line"> </tt>
-<a name="L25"></a><tt class="py-lineno"> 25</tt> <tt class="py-line"><tt class="py-keyword">import</tt> <tt class="py-name">copy</tt> </tt>
-<a name="L26"></a><tt class="py-lineno"> 26</tt> <tt class="py-line"><tt class="py-keyword">import</tt> <tt class="py-name">httplib2</tt> </tt>
-<a name="L27"></a><tt class="py-lineno"> 27</tt> <tt class="py-line"><tt class="py-keyword">import</tt> <tt class="py-name">logging</tt> </tt>
-<a name="L28"></a><tt class="py-lineno"> 28</tt> <tt class="py-line"><tt class="py-keyword">import</tt> <tt class="py-name">os</tt> </tt>
-<a name="L29"></a><tt class="py-lineno"> 29</tt> <tt class="py-line"><tt class="py-keyword">import</tt> <tt class="py-name">random</tt> </tt>
-<a name="L30"></a><tt class="py-lineno"> 30</tt> <tt class="py-line"><tt class="py-keyword">import</tt> <tt class="py-name">re</tt> </tt>
-<a name="L31"></a><tt class="py-lineno"> 31</tt> <tt class="py-line"><tt class="py-keyword">import</tt> <tt class="py-name">uritemplate</tt> </tt>
-<a name="L32"></a><tt class="py-lineno"> 32</tt> <tt class="py-line"><tt class="py-keyword">import</tt> <tt class="py-name">urllib</tt> </tt>
-<a name="L33"></a><tt class="py-lineno"> 33</tt> <tt class="py-line"><tt class="py-keyword">import</tt> <tt class="py-name">urlparse</tt> </tt>
-<a name="L34"></a><tt class="py-lineno"> 34</tt> <tt class="py-line"><tt class="py-keyword">import</tt> <tt id="link-0" class="py-name" targets="Module apiclient.mimeparse=apiclient.mimeparse-module.html"><a title="apiclient.mimeparse" class="py-name" href="#" onclick="return doclink('link-0', 'mimeparse', 'link-0');">mimeparse</a></tt> </tt>
-<a name="L35"></a><tt class="py-lineno"> 35</tt> <tt class="py-line"><tt class="py-keyword">import</tt> <tt class="py-name">mimetypes</tt> </tt>
-<a name="L36"></a><tt class="py-lineno"> 36</tt> <tt class="py-line"> </tt>
-<a name="L37"></a><tt class="py-lineno"> 37</tt> <tt class="py-line"><tt class="py-keyword">try</tt><tt class="py-op">:</tt> </tt>
-<a name="L38"></a><tt class="py-lineno"> 38</tt> <tt class="py-line"> <tt class="py-keyword">from</tt> <tt class="py-name">urlparse</tt> <tt class="py-keyword">import</tt> <tt class="py-name">parse_qsl</tt> </tt>
-<a name="L39"></a><tt class="py-lineno"> 39</tt> <tt class="py-line"><tt class="py-keyword">except</tt> <tt class="py-name">ImportError</tt><tt class="py-op">:</tt> </tt>
-<a name="L40"></a><tt class="py-lineno"> 40</tt> <tt class="py-line"> <tt class="py-keyword">from</tt> <tt class="py-name">cgi</tt> <tt class="py-keyword">import</tt> <tt class="py-name">parse_qsl</tt> </tt>
-<a name="L41"></a><tt class="py-lineno"> 41</tt> <tt class="py-line"> </tt>
-<a name="L42"></a><tt class="py-lineno"> 42</tt> <tt class="py-line"><tt class="py-keyword">from</tt> <tt id="link-1" class="py-name" targets="Package apiclient=apiclient-module.html"><a title="apiclient" class="py-name" href="#" onclick="return doclink('link-1', 'apiclient', 'link-1');">apiclient</a></tt><tt class="py-op">.</tt><tt id="link-2" class="py-name" targets="Module apiclient.errors=apiclient.errors-module.html"><a title="apiclient.errors" class="py-name" href="#" onclick="return doclink('link-2', 'errors', 'link-2');">errors</a></tt> <tt class="py-keyword">import</tt> <tt id="link-3" class="py-name" targets="Class apiclient.errors.HttpError=apiclient.errors.HttpError-class.html"><a title="apiclient.errors.HttpError" class="py-name" href="#" onclick="return doclink('link-3', 'HttpError', 'link-3');">HttpError</a></tt> </tt>
-<a name="L43"></a><tt class="py-lineno"> 43</tt> <tt class="py-line"><tt class="py-keyword">from</tt> <tt id="link-4" class="py-name"><a title="apiclient" class="py-name" href="#" onclick="return doclink('link-4', 'apiclient', 'link-1');">apiclient</a></tt><tt class="py-op">.</tt><tt id="link-5" class="py-name"><a title="apiclient.errors" class="py-name" href="#" onclick="return doclink('link-5', 'errors', 'link-2');">errors</a></tt> <tt class="py-keyword">import</tt> <tt id="link-6" class="py-name" targets="Class apiclient.errors.InvalidJsonError=apiclient.errors.InvalidJsonError-class.html"><a title="apiclient.errors.InvalidJsonError" class="py-name" href="#" onclick="return doclink('link-6', 'InvalidJsonError', 'link-6');">InvalidJsonError</a></tt> </tt>
-<a name="L44"></a><tt class="py-lineno"> 44</tt> <tt class="py-line"><tt class="py-keyword">from</tt> <tt id="link-7" class="py-name"><a title="apiclient" class="py-name" href="#" onclick="return doclink('link-7', 'apiclient', 'link-1');">apiclient</a></tt><tt class="py-op">.</tt><tt id="link-8" class="py-name"><a title="apiclient.errors" class="py-name" href="#" onclick="return doclink('link-8', 'errors', 'link-2');">errors</a></tt> <tt class="py-keyword">import</tt> <tt id="link-9" class="py-name" targets="Class apiclient.errors.MediaUploadSizeError=apiclient.errors.MediaUploadSizeError-class.html"><a title="apiclient.errors.MediaUploadSizeError" class="py-name" href="#" onclick="return doclink('link-9', 'MediaUploadSizeError', 'link-9');">MediaUploadSizeError</a></tt> </tt>
-<a name="L45"></a><tt class="py-lineno"> 45</tt> <tt class="py-line"><tt class="py-keyword">from</tt> <tt id="link-10" class="py-name"><a title="apiclient" class="py-name" href="#" onclick="return doclink('link-10', 'apiclient', 'link-1');">apiclient</a></tt><tt class="py-op">.</tt><tt id="link-11" class="py-name"><a title="apiclient.errors" class="py-name" href="#" onclick="return doclink('link-11', 'errors', 'link-2');">errors</a></tt> <tt class="py-keyword">import</tt> <tt id="link-12" class="py-name" targets="Class apiclient.errors.UnacceptableMimeTypeError=apiclient.errors.UnacceptableMimeTypeError-class.html"><a title="apiclient.errors.UnacceptableMimeTypeError" class="py-name" href="#" onclick="return doclink('link-12', 'UnacceptableMimeTypeError', 'link-12');">UnacceptableMimeTypeError</a></tt> </tt>
-<a name="L46"></a><tt class="py-lineno"> 46</tt> <tt class="py-line"><tt class="py-keyword">from</tt> <tt id="link-13" class="py-name"><a title="apiclient" class="py-name" href="#" onclick="return doclink('link-13', 'apiclient', 'link-1');">apiclient</a></tt><tt class="py-op">.</tt><tt id="link-14" class="py-name"><a title="apiclient.errors" class="py-name" href="#" onclick="return doclink('link-14', 'errors', 'link-2');">errors</a></tt> <tt class="py-keyword">import</tt> <tt id="link-15" class="py-name" targets="Class apiclient.errors.UnknownApiNameOrVersion=apiclient.errors.UnknownApiNameOrVersion-class.html"><a title="apiclient.errors.UnknownApiNameOrVersion" class="py-name" href="#" onclick="return doclink('link-15', 'UnknownApiNameOrVersion', 'link-15');">UnknownApiNameOrVersion</a></tt> </tt>
-<a name="L47"></a><tt class="py-lineno"> 47</tt> <tt class="py-line"><tt class="py-keyword">from</tt> <tt id="link-16" class="py-name"><a title="apiclient" class="py-name" href="#" onclick="return doclink('link-16', 'apiclient', 'link-1');">apiclient</a></tt><tt class="py-op">.</tt><tt id="link-17" class="py-name"><a title="apiclient.errors" class="py-name" href="#" onclick="return doclink('link-17', 'errors', 'link-2');">errors</a></tt> <tt class="py-keyword">import</tt> <tt id="link-18" class="py-name" targets="Class apiclient.errors.UnknownLinkType=apiclient.errors.UnknownLinkType-class.html"><a title="apiclient.errors.UnknownLinkType" class="py-name" href="#" onclick="return doclink('link-18', 'UnknownLinkType', 'link-18');">UnknownLinkType</a></tt> </tt>
-<a name="L48"></a><tt class="py-lineno"> 48</tt> <tt class="py-line"><tt class="py-keyword">from</tt> <tt id="link-19" class="py-name"><a title="apiclient" class="py-name" href="#" onclick="return doclink('link-19', 'apiclient', 'link-1');">apiclient</a></tt><tt class="py-op">.</tt><tt id="link-20" class="py-name" targets="Module apiclient.http=apiclient.http-module.html,Method oauth2client.appengine.OAuth2Decorator.http()=oauth2client.appengine.OAuth2Decorator-class.html#http"><a title="apiclient.http
+<a name="L22"></a><tt class="py-lineno"> 22</tt> <tt class="py-line"> <tt class="py-string">'build'</tt><tt class="py-op">,</tt> </tt>
+<a name="L23"></a><tt class="py-lineno"> 23</tt> <tt class="py-line"> <tt class="py-string">'build_from_document'</tt> </tt>
+<a name="L24"></a><tt class="py-lineno"> 24</tt> <tt class="py-line"> <tt class="py-string">'fix_method_name'</tt><tt class="py-op">,</tt> </tt>
+<a name="L25"></a><tt class="py-lineno"> 25</tt> <tt class="py-line"> <tt class="py-string">'key2param'</tt> </tt>
+<a name="L26"></a><tt class="py-lineno"> 26</tt> <tt class="py-line"> <tt class="py-op">]</tt> </tt>
+<a name="L27"></a><tt class="py-lineno"> 27</tt> <tt class="py-line"> </tt>
+<a name="L28"></a><tt class="py-lineno"> 28</tt> <tt class="py-line"><tt class="py-keyword">import</tt> <tt class="py-name">copy</tt> </tt>
+<a name="L29"></a><tt class="py-lineno"> 29</tt> <tt class="py-line"><tt class="py-keyword">import</tt> <tt class="py-name">httplib2</tt> </tt>
+<a name="L30"></a><tt class="py-lineno"> 30</tt> <tt class="py-line"><tt class="py-keyword">import</tt> <tt class="py-name">logging</tt> </tt>
+<a name="L31"></a><tt class="py-lineno"> 31</tt> <tt class="py-line"><tt class="py-keyword">import</tt> <tt class="py-name">os</tt> </tt>
+<a name="L32"></a><tt class="py-lineno"> 32</tt> <tt class="py-line"><tt class="py-keyword">import</tt> <tt class="py-name">random</tt> </tt>
+<a name="L33"></a><tt class="py-lineno"> 33</tt> <tt class="py-line"><tt class="py-keyword">import</tt> <tt class="py-name">re</tt> </tt>
+<a name="L34"></a><tt class="py-lineno"> 34</tt> <tt class="py-line"><tt class="py-keyword">import</tt> <tt class="py-name">uritemplate</tt> </tt>
+<a name="L35"></a><tt class="py-lineno"> 35</tt> <tt class="py-line"><tt class="py-keyword">import</tt> <tt class="py-name">urllib</tt> </tt>
+<a name="L36"></a><tt class="py-lineno"> 36</tt> <tt class="py-line"><tt class="py-keyword">import</tt> <tt class="py-name">urlparse</tt> </tt>
+<a name="L37"></a><tt class="py-lineno"> 37</tt> <tt class="py-line"><tt class="py-keyword">import</tt> <tt id="link-0" class="py-name" targets="Module apiclient.mimeparse=apiclient.mimeparse-module.html"><a title="apiclient.mimeparse" class="py-name" href="#" onclick="return doclink('link-0', 'mimeparse', 'link-0');">mimeparse</a></tt> </tt>
+<a name="L38"></a><tt class="py-lineno"> 38</tt> <tt class="py-line"><tt class="py-keyword">import</tt> <tt class="py-name">mimetypes</tt> </tt>
+<a name="L39"></a><tt class="py-lineno"> 39</tt> <tt class="py-line"> </tt>
+<a name="L40"></a><tt class="py-lineno"> 40</tt> <tt class="py-line"><tt class="py-keyword">try</tt><tt class="py-op">:</tt> </tt>
+<a name="L41"></a><tt class="py-lineno"> 41</tt> <tt class="py-line"> <tt class="py-keyword">from</tt> <tt class="py-name">urlparse</tt> <tt class="py-keyword">import</tt> <tt class="py-name">parse_qsl</tt> </tt>
+<a name="L42"></a><tt class="py-lineno"> 42</tt> <tt class="py-line"><tt class="py-keyword">except</tt> <tt class="py-name">ImportError</tt><tt class="py-op">:</tt> </tt>
+<a name="L43"></a><tt class="py-lineno"> 43</tt> <tt class="py-line"> <tt class="py-keyword">from</tt> <tt class="py-name">cgi</tt> <tt class="py-keyword">import</tt> <tt class="py-name">parse_qsl</tt> </tt>
+<a name="L44"></a><tt class="py-lineno"> 44</tt> <tt class="py-line"> </tt>
+<a name="L45"></a><tt class="py-lineno"> 45</tt> <tt class="py-line"><tt class="py-keyword">from</tt> <tt id="link-1" class="py-name" targets="Package apiclient=apiclient-module.html"><a title="apiclient" class="py-name" href="#" onclick="return doclink('link-1', 'apiclient', 'link-1');">apiclient</a></tt><tt class="py-op">.</tt><tt id="link-2" class="py-name" targets="Module apiclient.errors=apiclient.errors-module.html"><a title="apiclient.errors" class="py-name" href="#" onclick="return doclink('link-2', 'errors', 'link-2');">errors</a></tt> <tt class="py-keyword">import</tt> <tt id="link-3" class="py-name" targets="Class apiclient.errors.HttpError=apiclient.errors.HttpError-class.html"><a title="apiclient.errors.HttpError" class="py-name" href="#" onclick="return doclink('link-3', 'HttpError', 'link-3');">HttpError</a></tt> </tt>
+<a name="L46"></a><tt class="py-lineno"> 46</tt> <tt class="py-line"><tt class="py-keyword">from</tt> <tt id="link-4" class="py-name"><a title="apiclient" class="py-name" href="#" onclick="return doclink('link-4', 'apiclient', 'link-1');">apiclient</a></tt><tt class="py-op">.</tt><tt id="link-5" class="py-name"><a title="apiclient.errors" class="py-name" href="#" onclick="return doclink('link-5', 'errors', 'link-2');">errors</a></tt> <tt class="py-keyword">import</tt> <tt id="link-6" class="py-name" targets="Class apiclient.errors.InvalidJsonError=apiclient.errors.InvalidJsonError-class.html"><a title="apiclient.errors.InvalidJsonError" class="py-name" href="#" onclick="return doclink('link-6', 'InvalidJsonError', 'link-6');">InvalidJsonError</a></tt> </tt>
+<a name="L47"></a><tt class="py-lineno"> 47</tt> <tt class="py-line"><tt class="py-keyword">from</tt> <tt id="link-7" class="py-name"><a title="apiclient" class="py-name" href="#" onclick="return doclink('link-7', 'apiclient', 'link-1');">apiclient</a></tt><tt class="py-op">.</tt><tt id="link-8" class="py-name"><a title="apiclient.errors" class="py-name" href="#" onclick="return doclink('link-8', 'errors', 'link-2');">errors</a></tt> <tt class="py-keyword">import</tt> <tt id="link-9" class="py-name" targets="Class apiclient.errors.MediaUploadSizeError=apiclient.errors.MediaUploadSizeError-class.html"><a title="apiclient.errors.MediaUploadSizeError" class="py-name" href="#" onclick="return doclink('link-9', 'MediaUploadSizeError', 'link-9');">MediaUploadSizeError</a></tt> </tt>
+<a name="L48"></a><tt class="py-lineno"> 48</tt> <tt class="py-line"><tt class="py-keyword">from</tt> <tt id="link-10" class="py-name"><a title="apiclient" class="py-name" href="#" onclick="return doclink('link-10', 'apiclient', 'link-1');">apiclient</a></tt><tt class="py-op">.</tt><tt id="link-11" class="py-name"><a title="apiclient.errors" class="py-name" href="#" onclick="return doclink('link-11', 'errors', 'link-2');">errors</a></tt> <tt class="py-keyword">import</tt> <tt id="link-12" class="py-name" targets="Class apiclient.errors.UnacceptableMimeTypeError=apiclient.errors.UnacceptableMimeTypeError-class.html"><a title="apiclient.errors.UnacceptableMimeTypeError" class="py-name" href="#" onclick="return doclink('link-12', 'UnacceptableMimeTypeError', 'link-12');">UnacceptableMimeTypeError</a></tt> </tt>
+<a name="L49"></a><tt class="py-lineno"> 49</tt> <tt class="py-line"><tt class="py-keyword">from</tt> <tt id="link-13" class="py-name"><a title="apiclient" class="py-name" href="#" onclick="return doclink('link-13', 'apiclient', 'link-1');">apiclient</a></tt><tt class="py-op">.</tt><tt id="link-14" class="py-name"><a title="apiclient.errors" class="py-name" href="#" onclick="return doclink('link-14', 'errors', 'link-2');">errors</a></tt> <tt class="py-keyword">import</tt> <tt id="link-15" class="py-name" targets="Class apiclient.errors.UnknownApiNameOrVersion=apiclient.errors.UnknownApiNameOrVersion-class.html"><a title="apiclient.errors.UnknownApiNameOrVersion" class="py-name" href="#" onclick="return doclink('link-15', 'UnknownApiNameOrVersion', 'link-15');">UnknownApiNameOrVersion</a></tt> </tt>
+<a name="L50"></a><tt class="py-lineno"> 50</tt> <tt class="py-line"><tt class="py-keyword">from</tt> <tt id="link-16" class="py-name"><a title="apiclient" class="py-name" href="#" onclick="return doclink('link-16', 'apiclient', 'link-1');">apiclient</a></tt><tt class="py-op">.</tt><tt id="link-17" class="py-name"><a title="apiclient.errors" class="py-name" href="#" onclick="return doclink('link-17', 'errors', 'link-2');">errors</a></tt> <tt class="py-keyword">import</tt> <tt id="link-18" class="py-name" targets="Class apiclient.errors.UnknownLinkType=apiclient.errors.UnknownLinkType-class.html"><a title="apiclient.errors.UnknownLinkType" class="py-name" href="#" onclick="return doclink('link-18', 'UnknownLinkType', 'link-18');">UnknownLinkType</a></tt> </tt>
+<a name="L51"></a><tt class="py-lineno"> 51</tt> <tt class="py-line"><tt class="py-keyword">from</tt> <tt id="link-19" class="py-name"><a title="apiclient" class="py-name" href="#" onclick="return doclink('link-19', 'apiclient', 'link-1');">apiclient</a></tt><tt class="py-op">.</tt><tt id="link-20" class="py-name" targets="Module apiclient.http=apiclient.http-module.html,Method oauth2client.appengine.OAuth2Decorator.http()=oauth2client.appengine.OAuth2Decorator-class.html#http"><a title="apiclient.http
oauth2client.appengine.OAuth2Decorator.http" class="py-name" href="#" onclick="return doclink('link-20', 'http', 'link-20');">http</a></tt> <tt class="py-keyword">import</tt> <tt id="link-21" class="py-name" targets="Class apiclient.http.HttpRequest=apiclient.http.HttpRequest-class.html"><a title="apiclient.http.HttpRequest" class="py-name" href="#" onclick="return doclink('link-21', 'HttpRequest', 'link-21');">HttpRequest</a></tt> </tt>
-<a name="L49"></a><tt class="py-lineno"> 49</tt> <tt class="py-line"><tt class="py-keyword">from</tt> <tt id="link-22" class="py-name"><a title="apiclient" class="py-name" href="#" onclick="return doclink('link-22', 'apiclient', 'link-1');">apiclient</a></tt><tt class="py-op">.</tt><tt id="link-23" class="py-name"><a title="apiclient.http
+<a name="L52"></a><tt class="py-lineno"> 52</tt> <tt class="py-line"><tt class="py-keyword">from</tt> <tt id="link-22" class="py-name"><a title="apiclient" class="py-name" href="#" onclick="return doclink('link-22', 'apiclient', 'link-1');">apiclient</a></tt><tt class="py-op">.</tt><tt id="link-23" class="py-name"><a title="apiclient.http
oauth2client.appengine.OAuth2Decorator.http" class="py-name" href="#" onclick="return doclink('link-23', 'http', 'link-20');">http</a></tt> <tt class="py-keyword">import</tt> <tt id="link-24" class="py-name" targets="Class apiclient.http.MediaFileUpload=apiclient.http.MediaFileUpload-class.html"><a title="apiclient.http.MediaFileUpload" class="py-name" href="#" onclick="return doclink('link-24', 'MediaFileUpload', 'link-24');">MediaFileUpload</a></tt> </tt>
-<a name="L50"></a><tt class="py-lineno"> 50</tt> <tt class="py-line"><tt class="py-keyword">from</tt> <tt id="link-25" class="py-name"><a title="apiclient" class="py-name" href="#" onclick="return doclink('link-25', 'apiclient', 'link-1');">apiclient</a></tt><tt class="py-op">.</tt><tt id="link-26" class="py-name"><a title="apiclient.http
+<a name="L53"></a><tt class="py-lineno"> 53</tt> <tt class="py-line"><tt class="py-keyword">from</tt> <tt id="link-25" class="py-name"><a title="apiclient" class="py-name" href="#" onclick="return doclink('link-25', 'apiclient', 'link-1');">apiclient</a></tt><tt class="py-op">.</tt><tt id="link-26" class="py-name"><a title="apiclient.http
oauth2client.appengine.OAuth2Decorator.http" class="py-name" href="#" onclick="return doclink('link-26', 'http', 'link-20');">http</a></tt> <tt class="py-keyword">import</tt> <tt id="link-27" class="py-name" targets="Class apiclient.http.MediaUpload=apiclient.http.MediaUpload-class.html"><a title="apiclient.http.MediaUpload" class="py-name" href="#" onclick="return doclink('link-27', 'MediaUpload', 'link-27');">MediaUpload</a></tt> </tt>
-<a name="L51"></a><tt class="py-lineno"> 51</tt> <tt class="py-line"><tt class="py-keyword">from</tt> <tt id="link-28" class="py-name"><a title="apiclient" class="py-name" href="#" onclick="return doclink('link-28', 'apiclient', 'link-1');">apiclient</a></tt><tt class="py-op">.</tt><tt id="link-29" class="py-name" targets="Module apiclient.model=apiclient.model-module.html"><a title="apiclient.model" class="py-name" href="#" onclick="return doclink('link-29', 'model', 'link-29');">model</a></tt> <tt class="py-keyword">import</tt> <tt id="link-30" class="py-name" targets="Class apiclient.model.JsonModel=apiclient.model.JsonModel-class.html"><a title="apiclient.model.JsonModel" class="py-name" href="#" onclick="return doclink('link-30', 'JsonModel', 'link-30');">JsonModel</a></tt> </tt>
-<a name="L52"></a><tt class="py-lineno"> 52</tt> <tt class="py-line"><tt class="py-keyword">from</tt> <tt id="link-31" class="py-name"><a title="apiclient" class="py-name" href="#" onclick="return doclink('link-31', 'apiclient', 'link-1');">apiclient</a></tt><tt class="py-op">.</tt><tt id="link-32" class="py-name"><a title="apiclient.model" class="py-name" href="#" onclick="return doclink('link-32', 'model', 'link-29');">model</a></tt> <tt class="py-keyword">import</tt> <tt id="link-33" class="py-name" targets="Class apiclient.model.RawModel=apiclient.model.RawModel-class.html"><a title="apiclient.model.RawModel" class="py-name" href="#" onclick="return doclink('link-33', 'RawModel', 'link-33');">RawModel</a></tt> </tt>
-<a name="L53"></a><tt class="py-lineno"> 53</tt> <tt class="py-line"><tt class="py-keyword">from</tt> <tt id="link-34" class="py-name"><a title="apiclient" class="py-name" href="#" onclick="return doclink('link-34', 'apiclient', 'link-1');">apiclient</a></tt><tt class="py-op">.</tt><tt id="link-35" class="py-name" targets="Module apiclient.schema=apiclient.schema-module.html"><a title="apiclient.schema" class="py-name" href="#" onclick="return doclink('link-35', 'schema', 'link-35');">schema</a></tt> <tt class="py-keyword">import</tt> <tt id="link-36" class="py-name" targets="Class apiclient.schema.Schemas=apiclient.schema.Schemas-class.html"><a title="apiclient.schema.Schemas" class="py-name" href="#" onclick="return doclink('link-36', 'Schemas', 'link-36');">Schemas</a></tt> </tt>
-<a name="L54"></a><tt class="py-lineno"> 54</tt> <tt class="py-line"><tt class="py-keyword">from</tt> <tt class="py-name">email</tt><tt class="py-op">.</tt><tt class="py-name">mime</tt><tt class="py-op">.</tt><tt class="py-name">multipart</tt> <tt class="py-keyword">import</tt> <tt class="py-name">MIMEMultipart</tt> </tt>
-<a name="L55"></a><tt class="py-lineno"> 55</tt> <tt class="py-line"><tt class="py-keyword">from</tt> <tt class="py-name">email</tt><tt class="py-op">.</tt><tt class="py-name">mime</tt><tt class="py-op">.</tt><tt class="py-name">nonmultipart</tt> <tt class="py-keyword">import</tt> <tt class="py-name">MIMENonMultipart</tt> </tt>
-<a name="L56"></a><tt class="py-lineno"> 56</tt> <tt class="py-line"><tt class="py-keyword">from</tt> <tt id="link-37" class="py-name" targets="Package oauth2client=oauth2client-module.html"><a title="oauth2client" class="py-name" href="#" onclick="return doclink('link-37', 'oauth2client', 'link-37');">oauth2client</a></tt><tt class="py-op">.</tt><tt id="link-38" class="py-name" targets="Module oauth2client.anyjson=oauth2client.anyjson-module.html"><a title="oauth2client.anyjson" class="py-name" href="#" onclick="return doclink('link-38', 'anyjson', 'link-38');">anyjson</a></tt> <tt class="py-keyword">import</tt> <tt class="py-name">simplejson</tt> </tt>
-<a name="L57"></a><tt class="py-lineno"> 57</tt> <tt class="py-line"> </tt>
-<a name="L58"></a><tt class="py-lineno"> 58</tt> <tt class="py-line"><tt id="link-39" class="py-name" targets="Variable apiclient.discovery.logger=apiclient.discovery-module.html#logger,Variable oauth2client.client.logger=oauth2client.client-module.html#logger,Variable oauth2client.multistore_file.logger=oauth2client.multistore_file-module.html#logger"><a title="apiclient.discovery.logger
+<a name="L54"></a><tt class="py-lineno"> 54</tt> <tt class="py-line"><tt class="py-keyword">from</tt> <tt id="link-28" class="py-name"><a title="apiclient" class="py-name" href="#" onclick="return doclink('link-28', 'apiclient', 'link-1');">apiclient</a></tt><tt class="py-op">.</tt><tt id="link-29" class="py-name" targets="Module apiclient.model=apiclient.model-module.html"><a title="apiclient.model" class="py-name" href="#" onclick="return doclink('link-29', 'model', 'link-29');">model</a></tt> <tt class="py-keyword">import</tt> <tt id="link-30" class="py-name" targets="Class apiclient.model.JsonModel=apiclient.model.JsonModel-class.html"><a title="apiclient.model.JsonModel" class="py-name" href="#" onclick="return doclink('link-30', 'JsonModel', 'link-30');">JsonModel</a></tt> </tt>
+<a name="L55"></a><tt class="py-lineno"> 55</tt> <tt class="py-line"><tt class="py-keyword">from</tt> <tt id="link-31" class="py-name"><a title="apiclient" class="py-name" href="#" onclick="return doclink('link-31', 'apiclient', 'link-1');">apiclient</a></tt><tt class="py-op">.</tt><tt id="link-32" class="py-name"><a title="apiclient.model" class="py-name" href="#" onclick="return doclink('link-32', 'model', 'link-29');">model</a></tt> <tt class="py-keyword">import</tt> <tt id="link-33" class="py-name" targets="Class apiclient.model.RawModel=apiclient.model.RawModel-class.html"><a title="apiclient.model.RawModel" class="py-name" href="#" onclick="return doclink('link-33', 'RawModel', 'link-33');">RawModel</a></tt> </tt>
+<a name="L56"></a><tt class="py-lineno"> 56</tt> <tt class="py-line"><tt class="py-keyword">from</tt> <tt id="link-34" class="py-name"><a title="apiclient" class="py-name" href="#" onclick="return doclink('link-34', 'apiclient', 'link-1');">apiclient</a></tt><tt class="py-op">.</tt><tt id="link-35" class="py-name" targets="Module apiclient.schema=apiclient.schema-module.html"><a title="apiclient.schema" class="py-name" href="#" onclick="return doclink('link-35', 'schema', 'link-35');">schema</a></tt> <tt class="py-keyword">import</tt> <tt id="link-36" class="py-name" targets="Class apiclient.schema.Schemas=apiclient.schema.Schemas-class.html"><a title="apiclient.schema.Schemas" class="py-name" href="#" onclick="return doclink('link-36', 'Schemas', 'link-36');">Schemas</a></tt> </tt>
+<a name="L57"></a><tt class="py-lineno"> 57</tt> <tt class="py-line"><tt class="py-keyword">from</tt> <tt class="py-name">email</tt><tt class="py-op">.</tt><tt class="py-name">mime</tt><tt class="py-op">.</tt><tt class="py-name">multipart</tt> <tt class="py-keyword">import</tt> <tt class="py-name">MIMEMultipart</tt> </tt>
+<a name="L58"></a><tt class="py-lineno"> 58</tt> <tt class="py-line"><tt class="py-keyword">from</tt> <tt class="py-name">email</tt><tt class="py-op">.</tt><tt class="py-name">mime</tt><tt class="py-op">.</tt><tt class="py-name">nonmultipart</tt> <tt class="py-keyword">import</tt> <tt class="py-name">MIMENonMultipart</tt> </tt>
+<a name="L59"></a><tt class="py-lineno"> 59</tt> <tt class="py-line"><tt class="py-keyword">from</tt> <tt id="link-37" class="py-name" targets="Package oauth2client=oauth2client-module.html"><a title="oauth2client" class="py-name" href="#" onclick="return doclink('link-37', 'oauth2client', 'link-37');">oauth2client</a></tt><tt class="py-op">.</tt><tt id="link-38" class="py-name" targets="Module oauth2client.anyjson=oauth2client.anyjson-module.html"><a title="oauth2client.anyjson" class="py-name" href="#" onclick="return doclink('link-38', 'anyjson', 'link-38');">anyjson</a></tt> <tt class="py-keyword">import</tt> <tt class="py-name">simplejson</tt> </tt>
+<a name="L60"></a><tt class="py-lineno"> 60</tt> <tt class="py-line"> </tt>
+<a name="L61"></a><tt class="py-lineno"> 61</tt> <tt class="py-line"><tt id="link-39" class="py-name" targets="Variable apiclient.discovery.logger=apiclient.discovery-module.html#logger,Variable oauth2client.client.logger=oauth2client.client-module.html#logger,Variable oauth2client.locked_file.logger=oauth2client.locked_file-module.html#logger,Variable oauth2client.multistore_file.logger=oauth2client.multistore_file-module.html#logger"><a title="apiclient.discovery.logger
oauth2client.client.logger
+oauth2client.locked_file.logger
oauth2client.multistore_file.logger" class="py-name" href="#" onclick="return doclink('link-39', 'logger', 'link-39');">logger</a></tt> <tt class="py-op">=</tt> <tt class="py-name">logging</tt><tt class="py-op">.</tt><tt class="py-name">getLogger</tt><tt class="py-op">(</tt><tt class="py-name">__name__</tt><tt class="py-op">)</tt> </tt>
-<a name="L59"></a><tt class="py-lineno"> 59</tt> <tt class="py-line"> </tt>
-<a name="L60"></a><tt class="py-lineno"> 60</tt> <tt class="py-line"><tt id="link-40" class="py-name" targets="Variable apiclient.discovery.URITEMPLATE=apiclient.discovery-module.html#URITEMPLATE"><a title="apiclient.discovery.URITEMPLATE" class="py-name" href="#" onclick="return doclink('link-40', 'URITEMPLATE', 'link-40');">URITEMPLATE</a></tt> <tt class="py-op">=</tt> <tt class="py-name">re</tt><tt class="py-op">.</tt><tt class="py-name">compile</tt><tt class="py-op">(</tt><tt class="py-string">'{[^}]*}'</tt><tt class="py-op">)</tt> </tt>
-<a name="L61"></a><tt class="py-lineno"> 61</tt> <tt class="py-line"><tt id="link-41" class="py-name" targets="Variable apiclient.discovery.VARNAME=apiclient.discovery-module.html#VARNAME"><a title="apiclient.discovery.VARNAME" class="py-name" href="#" onclick="return doclink('link-41', 'VARNAME', 'link-41');">VARNAME</a></tt> <tt class="py-op">=</tt> <tt class="py-name">re</tt><tt class="py-op">.</tt><tt class="py-name">compile</tt><tt class="py-op">(</tt><tt class="py-string">'[a-zA-Z0-9_-]+'</tt><tt class="py-op">)</tt> </tt>
-<a name="L62"></a><tt class="py-lineno"> 62</tt> <tt class="py-line"><tt id="link-42" class="py-name" targets="Variable apiclient.discovery.DISCOVERY_URI=apiclient.discovery-module.html#DISCOVERY_URI"><a title="apiclient.discovery.DISCOVERY_URI" class="py-name" href="#" onclick="return doclink('link-42', 'DISCOVERY_URI', 'link-42');">DISCOVERY_URI</a></tt> <tt class="py-op">=</tt> <tt class="py-op">(</tt><tt class="py-string">'https://www.googleapis.com/discovery/v1/apis/'</tt> </tt>
-<a name="L63"></a><tt class="py-lineno"> 63</tt> <tt class="py-line"> <tt class="py-string">'{api}/{apiVersion}/rest'</tt><tt class="py-op">)</tt> </tt>
-<a name="L64"></a><tt class="py-lineno"> 64</tt> <tt class="py-line"><tt id="link-43" class="py-name" targets="Variable apiclient.discovery.DEFAULT_METHOD_DOC=apiclient.discovery-module.html#DEFAULT_METHOD_DOC"><a title="apiclient.discovery.DEFAULT_METHOD_DOC" class="py-name" href="#" onclick="return doclink('link-43', 'DEFAULT_METHOD_DOC', 'link-43');">DEFAULT_METHOD_DOC</a></tt> <tt class="py-op">=</tt> <tt class="py-string">'A description of how to use this function'</tt> </tt>
-<a name="L65"></a><tt class="py-lineno"> 65</tt> <tt class="py-line"> </tt>
-<a name="L66"></a><tt class="py-lineno"> 66</tt> <tt class="py-line"><tt class="py-comment"># Query parameters that work, but don't appear in discovery</tt> </tt>
-<a name="L67"></a><tt class="py-lineno"> 67</tt> <tt class="py-line"><tt id="link-44" class="py-name" targets="Variable apiclient.discovery.STACK_QUERY_PARAMETERS=apiclient.discovery-module.html#STACK_QUERY_PARAMETERS"><a title="apiclient.discovery.STACK_QUERY_PARAMETERS" class="py-name" href="#" onclick="return doclink('link-44', 'STACK_QUERY_PARAMETERS', 'link-44');">STACK_QUERY_PARAMETERS</a></tt> <tt class="py-op">=</tt> <tt class="py-op">[</tt><tt class="py-string">'trace'</tt><tt class="py-op">,</tt> <tt class="py-string">'fields'</tt><tt class="py-op">,</tt> <tt class="py-string">'pp'</tt><tt class="py-op">,</tt> <tt class="py-string">'prettyPrint'</tt><tt class="py-op">,</tt> <tt class="py-string">'userIp'</tt><tt class="py-op">,</tt> </tt>
-<a name="L68"></a><tt class="py-lineno"> 68</tt> <tt class="py-line"> <tt class="py-string">'userip'</tt><tt class="py-op">,</tt> <tt class="py-string">'strict'</tt><tt class="py-op">]</tt> </tt>
-<a name="L69"></a><tt class="py-lineno"> 69</tt> <tt class="py-line"> </tt>
-<a name="L70"></a><tt class="py-lineno"> 70</tt> <tt class="py-line"><tt id="link-45" class="py-name" targets="Variable apiclient.discovery.RESERVED_WORDS=apiclient.discovery-module.html#RESERVED_WORDS"><a title="apiclient.discovery.RESERVED_WORDS" class="py-name" href="#" onclick="return doclink('link-45', 'RESERVED_WORDS', 'link-45');">RESERVED_WORDS</a></tt> <tt class="py-op">=</tt> <tt class="py-op">[</tt><tt class="py-string">'and'</tt><tt class="py-op">,</tt> <tt class="py-string">'assert'</tt><tt class="py-op">,</tt> <tt class="py-string">'break'</tt><tt class="py-op">,</tt> <tt class="py-string">'class'</tt><tt class="py-op">,</tt> <tt class="py-string">'continue'</tt><tt class="py-op">,</tt> <tt class="py-string">'def'</tt><tt class="py-op">,</tt> <tt class="py-string">'del'</tt><tt class="py-op">,</tt> </tt>
-<a name="L71"></a><tt class="py-lineno"> 71</tt> <tt class="py-line"> <tt class="py-string">'elif'</tt><tt class="py-op">,</tt> <tt class="py-string">'else'</tt><tt class="py-op">,</tt> <tt class="py-string">'except'</tt><tt class="py-op">,</tt> <tt class="py-string">'exec'</tt><tt class="py-op">,</tt> <tt class="py-string">'finally'</tt><tt class="py-op">,</tt> <tt class="py-string">'for'</tt><tt class="py-op">,</tt> <tt class="py-string">'from'</tt><tt class="py-op">,</tt> </tt>
-<a name="L72"></a><tt class="py-lineno"> 72</tt> <tt class="py-line"> <tt class="py-string">'global'</tt><tt class="py-op">,</tt> <tt class="py-string">'if'</tt><tt class="py-op">,</tt> <tt class="py-string">'import'</tt><tt class="py-op">,</tt> <tt class="py-string">'in'</tt><tt class="py-op">,</tt> <tt class="py-string">'is'</tt><tt class="py-op">,</tt> <tt class="py-string">'lambda'</tt><tt class="py-op">,</tt> <tt class="py-string">'not'</tt><tt class="py-op">,</tt> <tt class="py-string">'or'</tt><tt class="py-op">,</tt> </tt>
-<a name="L73"></a><tt class="py-lineno"> 73</tt> <tt class="py-line"> <tt class="py-string">'pass'</tt><tt class="py-op">,</tt> <tt class="py-string">'print'</tt><tt class="py-op">,</tt> <tt class="py-string">'raise'</tt><tt class="py-op">,</tt> <tt class="py-string">'return'</tt><tt class="py-op">,</tt> <tt class="py-string">'try'</tt><tt class="py-op">,</tt> <tt class="py-string">'while'</tt> <tt class="py-op">]</tt> </tt>
-<a name="L74"></a><tt class="py-lineno"> 74</tt> <tt class="py-line"> </tt>
-<a name="L75"></a><tt class="py-lineno"> 75</tt> <tt class="py-line"> </tt>
-<a name="_fix_method_name"></a><div id="_fix_method_name-def"><a name="L76"></a><tt class="py-lineno"> 76</tt> <a class="py-toggle" href="#" id="_fix_method_name-toggle" onclick="return toggle('_fix_method_name');">-</a><tt class="py-line"><tt class="py-keyword">def</tt> <a class="py-def-name" href="apiclient.discovery-module.html#_fix_method_name">_fix_method_name</a><tt class="py-op">(</tt><tt class="py-param">name</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-</div><div id="_fix_method_name-collapsed" style="display:none;" pad="+++" indent="++++"></div><div id="_fix_method_name-expanded"><a name="L77"></a><tt class="py-lineno"> 77</tt> <tt class="py-line"> <tt class="py-keyword">if</tt> <tt class="py-name">name</tt> <tt class="py-keyword">in</tt> <tt id="link-46" class="py-name"><a title="apiclient.discovery.RESERVED_WORDS" class="py-name" href="#" onclick="return doclink('link-46', 'RESERVED_WORDS', 'link-45');">RESERVED_WORDS</a></tt><tt class="py-op">:</tt> </tt>
-<a name="L78"></a><tt class="py-lineno"> 78</tt> <tt class="py-line"> <tt class="py-keyword">return</tt> <tt class="py-name">name</tt> <tt class="py-op">+</tt> <tt class="py-string">'_'</tt> </tt>
-<a name="L79"></a><tt class="py-lineno"> 79</tt> <tt class="py-line"> <tt class="py-keyword">else</tt><tt class="py-op">:</tt> </tt>
-<a name="L80"></a><tt class="py-lineno"> 80</tt> <tt class="py-line"> <tt class="py-keyword">return</tt> <tt class="py-name">name</tt> </tt>
-</div><a name="L81"></a><tt class="py-lineno"> 81</tt> <tt class="py-line"> </tt>
-<a name="L82"></a><tt class="py-lineno"> 82</tt> <tt class="py-line"> </tt>
-<a name="_write_headers"></a><div id="_write_headers-def"><a name="L83"></a><tt class="py-lineno"> 83</tt> <a class="py-toggle" href="#" id="_write_headers-toggle" onclick="return toggle('_write_headers');">-</a><tt class="py-line"><tt class="py-keyword">def</tt> <a class="py-def-name" href="apiclient.discovery-module.html#_write_headers">_write_headers</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-</div><div id="_write_headers-collapsed" style="display:none;" pad="+++" indent="++++"></div><div id="_write_headers-expanded"><a name="L84"></a><tt class="py-lineno"> 84</tt> <tt class="py-line"> <tt class="py-comment"># Utility no-op method for multipart media handling</tt> </tt>
-<a name="L85"></a><tt class="py-lineno"> 85</tt> <tt class="py-line"> <tt class="py-keyword">pass</tt> </tt>
-</div><a name="L86"></a><tt class="py-lineno"> 86</tt> <tt class="py-line"> </tt>
-<a name="L87"></a><tt class="py-lineno"> 87</tt> <tt class="py-line"> </tt>
-<a name="_add_query_parameter"></a><div id="_add_query_parameter-def"><a name="L88"></a><tt class="py-lineno"> 88</tt> <a class="py-toggle" href="#" id="_add_query_parameter-toggle" onclick="return toggle('_add_query_parameter');">-</a><tt class="py-line"><tt class="py-keyword">def</tt> <a class="py-def-name" href="apiclient.discovery-module.html#_add_query_parameter">_add_query_parameter</a><tt class="py-op">(</tt><tt class="py-param">url</tt><tt class="py-op">,</tt> <tt class="py-param">name</tt><tt class="py-op">,</tt> <tt class="py-param">value</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-</div><div id="_add_query_parameter-collapsed" style="display:none;" pad="+++" indent="++++"></div><div id="_add_query_parameter-expanded"><a name="L89"></a><tt class="py-lineno"> 89</tt> <tt class="py-line"> <tt class="py-docstring">"""Adds a query parameter to a url.</tt> </tt>
-<a name="L90"></a><tt class="py-lineno"> 90</tt> <tt class="py-line"><tt class="py-docstring"></tt> </tt>
-<a name="L91"></a><tt class="py-lineno"> 91</tt> <tt class="py-line"><tt class="py-docstring"> Replaces the current value if it already exists in the URL.</tt> </tt>
-<a name="L92"></a><tt class="py-lineno"> 92</tt> <tt class="py-line"><tt class="py-docstring"></tt> </tt>
-<a name="L93"></a><tt class="py-lineno"> 93</tt> <tt class="py-line"><tt class="py-docstring"> Args:</tt> </tt>
-<a name="L94"></a><tt class="py-lineno"> 94</tt> <tt class="py-line"><tt class="py-docstring"> url: string, url to add the query parameter to.</tt> </tt>
-<a name="L95"></a><tt class="py-lineno"> 95</tt> <tt class="py-line"><tt class="py-docstring"> name: string, query parameter name.</tt> </tt>
-<a name="L96"></a><tt class="py-lineno"> 96</tt> <tt class="py-line"><tt class="py-docstring"> value: string, query parameter value.</tt> </tt>
-<a name="L97"></a><tt class="py-lineno"> 97</tt> <tt class="py-line"><tt class="py-docstring"></tt> </tt>
-<a name="L98"></a><tt class="py-lineno"> 98</tt> <tt class="py-line"><tt class="py-docstring"> Returns:</tt> </tt>
-<a name="L99"></a><tt class="py-lineno"> 99</tt> <tt class="py-line"><tt class="py-docstring"> Updated query parameter. Does not update the url if value is None.</tt> </tt>
-<a name="L100"></a><tt class="py-lineno">100</tt> <tt class="py-line"><tt class="py-docstring"> """</tt> </tt>
-<a name="L101"></a><tt class="py-lineno">101</tt> <tt class="py-line"> <tt class="py-keyword">if</tt> <tt class="py-name">value</tt> <tt class="py-keyword">is</tt> <tt class="py-name">None</tt><tt class="py-op">:</tt> </tt>
-<a name="L102"></a><tt class="py-lineno">102</tt> <tt class="py-line"> <tt class="py-keyword">return</tt> <tt class="py-name">url</tt> </tt>
-<a name="L103"></a><tt class="py-lineno">103</tt> <tt class="py-line"> <tt class="py-keyword">else</tt><tt class="py-op">:</tt> </tt>
-<a name="L104"></a><tt class="py-lineno">104</tt> <tt class="py-line"> <tt class="py-name">parsed</tt> <tt class="py-op">=</tt> <tt class="py-name">list</tt><tt class="py-op">(</tt><tt class="py-name">urlparse</tt><tt class="py-op">.</tt><tt class="py-name">urlparse</tt><tt class="py-op">(</tt><tt class="py-name">url</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
-<a name="L105"></a><tt class="py-lineno">105</tt> <tt class="py-line"> <tt class="py-name">q</tt> <tt class="py-op">=</tt> <tt class="py-name">dict</tt><tt class="py-op">(</tt><tt class="py-name">parse_qsl</tt><tt class="py-op">(</tt><tt class="py-name">parsed</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-op">)</tt> </tt>
-<a name="L106"></a><tt class="py-lineno">106</tt> <tt class="py-line"> <tt class="py-name">q</tt><tt class="py-op">[</tt><tt class="py-name">name</tt><tt class="py-op">]</tt> <tt class="py-op">=</tt> <tt class="py-name">value</tt> </tt>
-<a name="L107"></a><tt class="py-lineno">107</tt> <tt class="py-line"> <tt class="py-name">parsed</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">q</tt><tt class="py-op">)</tt> </tt>
-<a name="L108"></a><tt class="py-lineno">108</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">parsed</tt><tt class="py-op">)</tt> </tt>
-</div><a name="L109"></a><tt class="py-lineno">109</tt> <tt class="py-line"> </tt>
-<a name="L110"></a><tt class="py-lineno">110</tt> <tt class="py-line"> </tt>
-<a name="key2param"></a><div id="key2param-def"><a name="L111"></a><tt class="py-lineno">111</tt> <a class="py-toggle" href="#" id="key2param-toggle" onclick="return toggle('key2param');">-</a><tt class="py-line"><tt class="py-keyword">def</tt> <a class="py-def-name" href="apiclient.discovery-module.html#key2param">key2param</a><tt class="py-op">(</tt><tt class="py-param">key</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-</div><div id="key2param-collapsed" style="display:none;" pad="+++" indent="++++"></div><div id="key2param-expanded"><a name="L112"></a><tt class="py-lineno">112</tt> <tt class="py-line"> <tt class="py-docstring">"""Converts key names into parameter names.</tt> </tt>
-<a name="L113"></a><tt class="py-lineno">113</tt> <tt class="py-line"><tt class="py-docstring"></tt> </tt>
-<a name="L114"></a><tt class="py-lineno">114</tt> <tt class="py-line"><tt class="py-docstring"> For example, converting "max-results" -> "max_results"</tt> </tt>
-<a name="L115"></a><tt class="py-lineno">115</tt> <tt class="py-line"><tt class="py-docstring"> """</tt> </tt>
-<a name="L116"></a><tt class="py-lineno">116</tt> <tt class="py-line"> <tt class="py-name">result</tt> <tt class="py-op">=</tt> <tt class="py-op">[</tt><tt class="py-op">]</tt> </tt>
-<a name="L117"></a><tt class="py-lineno">117</tt> <tt class="py-line"> <tt class="py-name">key</tt> <tt class="py-op">=</tt> <tt class="py-name">list</tt><tt class="py-op">(</tt><tt class="py-name">key</tt><tt class="py-op">)</tt> </tt>
-<a name="L118"></a><tt class="py-lineno">118</tt> <tt class="py-line"> <tt class="py-keyword">if</tt> <tt class="py-keyword">not</tt> <tt class="py-name">key</tt><tt class="py-op">[</tt><tt class="py-number">0</tt><tt class="py-op">]</tt><tt class="py-op">.</tt><tt class="py-name">isalpha</tt><tt class="py-op">(</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-<a name="L119"></a><tt class="py-lineno">119</tt> <tt class="py-line"> <tt class="py-name">result</tt><tt class="py-op">.</tt><tt class="py-name">append</tt><tt class="py-op">(</tt><tt class="py-string">'x'</tt><tt class="py-op">)</tt> </tt>
-<a name="L120"></a><tt class="py-lineno">120</tt> <tt class="py-line"> <tt class="py-keyword">for</tt> <tt class="py-name">c</tt> <tt class="py-keyword">in</tt> <tt class="py-name">key</tt><tt class="py-op">:</tt> </tt>
-<a name="L121"></a><tt class="py-lineno">121</tt> <tt class="py-line"> <tt class="py-keyword">if</tt> <tt class="py-name">c</tt><tt class="py-op">.</tt><tt class="py-name">isalnum</tt><tt class="py-op">(</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-<a name="L122"></a><tt class="py-lineno">122</tt> <tt class="py-line"> <tt class="py-name">result</tt><tt class="py-op">.</tt><tt class="py-name">append</tt><tt class="py-op">(</tt><tt class="py-name">c</tt><tt class="py-op">)</tt> </tt>
-<a name="L123"></a><tt class="py-lineno">123</tt> <tt class="py-line"> <tt class="py-keyword">else</tt><tt class="py-op">:</tt> </tt>
-<a name="L124"></a><tt class="py-lineno">124</tt> <tt class="py-line"> <tt class="py-name">result</tt><tt class="py-op">.</tt><tt class="py-name">append</tt><tt class="py-op">(</tt><tt class="py-string">'_'</tt><tt class="py-op">)</tt> </tt>
-<a name="L125"></a><tt class="py-lineno">125</tt> <tt class="py-line"> </tt>
-<a name="L126"></a><tt class="py-lineno">126</tt> <tt class="py-line"> <tt class="py-keyword">return</tt> <tt class="py-string">''</tt><tt class="py-op">.</tt><tt class="py-name">join</tt><tt class="py-op">(</tt><tt class="py-name">result</tt><tt class="py-op">)</tt> </tt>
-</div><a name="L127"></a><tt class="py-lineno">127</tt> <tt class="py-line"> </tt>
-<a name="L128"></a><tt class="py-lineno">128</tt> <tt class="py-line"> </tt>
-<a name="build"></a><div id="build-def"><a name="L129"></a><tt class="py-lineno">129</tt> <a class="py-toggle" href="#" id="build-toggle" onclick="return toggle('build');">-</a><tt class="py-line"><tt class="py-keyword">def</tt> <a class="py-def-name" href="apiclient.discovery-module.html#build">build</a><tt class="py-op">(</tt><tt class="py-param">serviceName</tt><tt class="py-op">,</tt> </tt>
-<a name="L130"></a><tt class="py-lineno">130</tt> <tt class="py-line"> <tt class="py-param">version</tt><tt class="py-op">,</tt> </tt>
-<a name="L131"></a><tt class="py-lineno">131</tt> <tt class="py-line"> <tt class="py-param">http</tt><tt class="py-op">=</tt><tt class="py-name">None</tt><tt class="py-op">,</tt> </tt>
-<a name="L132"></a><tt class="py-lineno">132</tt> <tt class="py-line"> <tt class="py-param">discoveryServiceUrl</tt><tt class="py-op">=</tt><tt id="link-47" class="py-name"><a title="apiclient.discovery.DISCOVERY_URI" class="py-name" href="#" onclick="return doclink('link-47', 'DISCOVERY_URI', 'link-42');">DISCOVERY_URI</a></tt><tt class="py-op">,</tt> </tt>
-<a name="L133"></a><tt class="py-lineno">133</tt> <tt class="py-line"> <tt class="py-param">developerKey</tt><tt class="py-op">=</tt><tt class="py-name">None</tt><tt class="py-op">,</tt> </tt>
-<a name="L134"></a><tt class="py-lineno">134</tt> <tt class="py-line"> <tt class="py-param">model</tt><tt class="py-op">=</tt><tt class="py-name">None</tt><tt class="py-op">,</tt> </tt>
-<a name="L135"></a><tt class="py-lineno">135</tt> <tt class="py-line"> <tt class="py-param">requestBuilder</tt><tt class="py-op">=</tt><tt id="link-48" class="py-name"><a title="apiclient.http.HttpRequest" class="py-name" href="#" onclick="return doclink('link-48', 'HttpRequest', 'link-21');">HttpRequest</a></tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-</div><div id="build-collapsed" style="display:none;" pad="+++" indent="++++"></div><div id="build-expanded"><a name="L136"></a><tt class="py-lineno">136</tt> <tt class="py-line"> <tt class="py-docstring">"""Construct a Resource for interacting with an API.</tt> </tt>
-<a name="L137"></a><tt class="py-lineno">137</tt> <tt class="py-line"><tt class="py-docstring"></tt> </tt>
-<a name="L138"></a><tt class="py-lineno">138</tt> <tt class="py-line"><tt class="py-docstring"> Construct a Resource object for interacting with</tt> </tt>
-<a name="L139"></a><tt class="py-lineno">139</tt> <tt class="py-line"><tt class="py-docstring"> an API. The serviceName and version are the</tt> </tt>
-<a name="L140"></a><tt class="py-lineno">140</tt> <tt class="py-line"><tt class="py-docstring"> names from the Discovery service.</tt> </tt>
-<a name="L141"></a><tt class="py-lineno">141</tt> <tt class="py-line"><tt class="py-docstring"></tt> </tt>
-<a name="L142"></a><tt class="py-lineno">142</tt> <tt class="py-line"><tt class="py-docstring"> Args:</tt> </tt>
-<a name="L143"></a><tt class="py-lineno">143</tt> <tt class="py-line"><tt class="py-docstring"> serviceName: string, name of the service</tt> </tt>
-<a name="L144"></a><tt class="py-lineno">144</tt> <tt class="py-line"><tt class="py-docstring"> version: string, the version of the service</tt> </tt>
-<a name="L145"></a><tt class="py-lineno">145</tt> <tt class="py-line"><tt class="py-docstring"> http: httplib2.Http, An instance of httplib2.Http or something that acts</tt> </tt>
-<a name="L146"></a><tt class="py-lineno">146</tt> <tt class="py-line"><tt class="py-docstring"> like it that HTTP requests will be made through.</tt> </tt>
-<a name="L147"></a><tt class="py-lineno">147</tt> <tt class="py-line"><tt class="py-docstring"> discoveryServiceUrl: string, a URI Template that points to</tt> </tt>
-<a name="L148"></a><tt class="py-lineno">148</tt> <tt class="py-line"><tt class="py-docstring"> the location of the discovery service. It should have two</tt> </tt>
-<a name="L149"></a><tt class="py-lineno">149</tt> <tt class="py-line"><tt class="py-docstring"> parameters {api} and {apiVersion} that when filled in</tt> </tt>
-<a name="L150"></a><tt class="py-lineno">150</tt> <tt class="py-line"><tt class="py-docstring"> produce an absolute URI to the discovery document for</tt> </tt>
-<a name="L151"></a><tt class="py-lineno">151</tt> <tt class="py-line"><tt class="py-docstring"> that service.</tt> </tt>
-<a name="L152"></a><tt class="py-lineno">152</tt> <tt class="py-line"><tt class="py-docstring"> developerKey: string, key obtained</tt> </tt>
-<a name="L153"></a><tt class="py-lineno">153</tt> <tt class="py-line"><tt class="py-docstring"> from https://code.google.com/apis/console</tt> </tt>
-<a name="L154"></a><tt class="py-lineno">154</tt> <tt class="py-line"><tt class="py-docstring"> model: apiclient.Model, converts to and from the wire format</tt> </tt>
-<a name="L155"></a><tt class="py-lineno">155</tt> <tt class="py-line"><tt class="py-docstring"> requestBuilder: apiclient.http.HttpRequest, encapsulator for</tt> </tt>
-<a name="L156"></a><tt class="py-lineno">156</tt> <tt class="py-line"><tt class="py-docstring"> an HTTP request</tt> </tt>
-<a name="L157"></a><tt class="py-lineno">157</tt> <tt class="py-line"><tt class="py-docstring"></tt> </tt>
-<a name="L158"></a><tt class="py-lineno">158</tt> <tt class="py-line"><tt class="py-docstring"> Returns:</tt> </tt>
-<a name="L159"></a><tt class="py-lineno">159</tt> <tt class="py-line"><tt class="py-docstring"> A Resource object with methods for interacting with</tt> </tt>
-<a name="L160"></a><tt class="py-lineno">160</tt> <tt class="py-line"><tt class="py-docstring"> the service.</tt> </tt>
-<a name="L161"></a><tt class="py-lineno">161</tt> <tt class="py-line"><tt class="py-docstring"> """</tt> </tt>
-<a name="L162"></a><tt class="py-lineno">162</tt> <tt class="py-line"> <tt class="py-name">params</tt> <tt class="py-op">=</tt> <tt class="py-op">{</tt> </tt>
-<a name="L163"></a><tt class="py-lineno">163</tt> <tt class="py-line"> <tt class="py-string">'api'</tt><tt class="py-op">:</tt> <tt class="py-name">serviceName</tt><tt class="py-op">,</tt> </tt>
-<a name="L164"></a><tt class="py-lineno">164</tt> <tt class="py-line"> <tt class="py-string">'apiVersion'</tt><tt class="py-op">:</tt> <tt class="py-name">version</tt> </tt>
-<a name="L165"></a><tt class="py-lineno">165</tt> <tt class="py-line"> <tt class="py-op">}</tt> </tt>
-<a name="L166"></a><tt class="py-lineno">166</tt> <tt class="py-line"> </tt>
-<a name="L167"></a><tt class="py-lineno">167</tt> <tt class="py-line"> <tt class="py-keyword">if</tt> <tt id="link-49" class="py-name"><a title="apiclient.http
+<a name="L62"></a><tt class="py-lineno"> 62</tt> <tt class="py-line"> </tt>
+<a name="L63"></a><tt class="py-lineno"> 63</tt> <tt class="py-line"><tt id="link-40" class="py-name" targets="Variable apiclient.discovery.URITEMPLATE=apiclient.discovery-module.html#URITEMPLATE"><a title="apiclient.discovery.URITEMPLATE" class="py-name" href="#" onclick="return doclink('link-40', 'URITEMPLATE', 'link-40');">URITEMPLATE</a></tt> <tt class="py-op">=</tt> <tt class="py-name">re</tt><tt class="py-op">.</tt><tt class="py-name">compile</tt><tt class="py-op">(</tt><tt class="py-string">'{[^}]*}'</tt><tt class="py-op">)</tt> </tt>
+<a name="L64"></a><tt class="py-lineno"> 64</tt> <tt class="py-line"><tt id="link-41" class="py-name" targets="Variable apiclient.discovery.VARNAME=apiclient.discovery-module.html#VARNAME"><a title="apiclient.discovery.VARNAME" class="py-name" href="#" onclick="return doclink('link-41', 'VARNAME', 'link-41');">VARNAME</a></tt> <tt class="py-op">=</tt> <tt class="py-name">re</tt><tt class="py-op">.</tt><tt class="py-name">compile</tt><tt class="py-op">(</tt><tt class="py-string">'[a-zA-Z0-9_-]+'</tt><tt class="py-op">)</tt> </tt>
+<a name="L65"></a><tt class="py-lineno"> 65</tt> <tt class="py-line"><tt id="link-42" class="py-name" targets="Variable apiclient.discovery.DISCOVERY_URI=apiclient.discovery-module.html#DISCOVERY_URI"><a title="apiclient.discovery.DISCOVERY_URI" class="py-name" href="#" onclick="return doclink('link-42', 'DISCOVERY_URI', 'link-42');">DISCOVERY_URI</a></tt> <tt class="py-op">=</tt> <tt class="py-op">(</tt><tt class="py-string">'https://www.googleapis.com/discovery/v1/apis/'</tt> </tt>
+<a name="L66"></a><tt class="py-lineno"> 66</tt> <tt class="py-line"> <tt class="py-string">'{api}/{apiVersion}/rest'</tt><tt class="py-op">)</tt> </tt>
+<a name="L67"></a><tt class="py-lineno"> 67</tt> <tt class="py-line"><tt id="link-43" class="py-name" targets="Variable apiclient.discovery.DEFAULT_METHOD_DOC=apiclient.discovery-module.html#DEFAULT_METHOD_DOC"><a title="apiclient.discovery.DEFAULT_METHOD_DOC" class="py-name" href="#" onclick="return doclink('link-43', 'DEFAULT_METHOD_DOC', 'link-43');">DEFAULT_METHOD_DOC</a></tt> <tt class="py-op">=</tt> <tt class="py-string">'A description of how to use this function'</tt> </tt>
+<a name="L68"></a><tt class="py-lineno"> 68</tt> <tt class="py-line"> </tt>
+<a name="L69"></a><tt class="py-lineno"> 69</tt> <tt class="py-line"><tt class="py-comment"># Parameters accepted by the stack, but not visible via discovery.</tt> </tt>
+<a name="L70"></a><tt class="py-lineno"> 70</tt> <tt class="py-line"><tt id="link-44" class="py-name" targets="Variable apiclient.discovery.STACK_QUERY_PARAMETERS=apiclient.discovery-module.html#STACK_QUERY_PARAMETERS"><a title="apiclient.discovery.STACK_QUERY_PARAMETERS" class="py-name" href="#" onclick="return doclink('link-44', 'STACK_QUERY_PARAMETERS', 'link-44');">STACK_QUERY_PARAMETERS</a></tt> <tt class="py-op">=</tt> <tt class="py-op">[</tt><tt class="py-string">'trace'</tt><tt class="py-op">,</tt> <tt class="py-string">'pp'</tt><tt class="py-op">,</tt> <tt class="py-string">'userip'</tt><tt class="py-op">,</tt> <tt class="py-string">'strict'</tt><tt class="py-op">]</tt> </tt>
+<a name="L71"></a><tt class="py-lineno"> 71</tt> <tt class="py-line"> </tt>
+<a name="L72"></a><tt class="py-lineno"> 72</tt> <tt class="py-line"><tt class="py-comment"># Python reserved words.</tt> </tt>
+<a name="L73"></a><tt class="py-lineno"> 73</tt> <tt class="py-line"><tt id="link-45" class="py-name" targets="Variable apiclient.discovery.RESERVED_WORDS=apiclient.discovery-module.html#RESERVED_WORDS"><a title="apiclient.discovery.RESERVED_WORDS" class="py-name" href="#" onclick="return doclink('link-45', 'RESERVED_WORDS', 'link-45');">RESERVED_WORDS</a></tt> <tt class="py-op">=</tt> <tt class="py-op">[</tt><tt class="py-string">'and'</tt><tt class="py-op">,</tt> <tt class="py-string">'assert'</tt><tt class="py-op">,</tt> <tt class="py-string">'break'</tt><tt class="py-op">,</tt> <tt class="py-string">'class'</tt><tt class="py-op">,</tt> <tt class="py-string">'continue'</tt><tt class="py-op">,</tt> <tt class="py-string">'def'</tt><tt class="py-op">,</tt> <tt class="py-string">'del'</tt><tt class="py-op">,</tt> </tt>
+<a name="L74"></a><tt class="py-lineno"> 74</tt> <tt class="py-line"> <tt class="py-string">'elif'</tt><tt class="py-op">,</tt> <tt class="py-string">'else'</tt><tt class="py-op">,</tt> <tt class="py-string">'except'</tt><tt class="py-op">,</tt> <tt class="py-string">'exec'</tt><tt class="py-op">,</tt> <tt class="py-string">'finally'</tt><tt class="py-op">,</tt> <tt class="py-string">'for'</tt><tt class="py-op">,</tt> <tt class="py-string">'from'</tt><tt class="py-op">,</tt> </tt>
+<a name="L75"></a><tt class="py-lineno"> 75</tt> <tt class="py-line"> <tt class="py-string">'global'</tt><tt class="py-op">,</tt> <tt class="py-string">'if'</tt><tt class="py-op">,</tt> <tt class="py-string">'import'</tt><tt class="py-op">,</tt> <tt class="py-string">'in'</tt><tt class="py-op">,</tt> <tt class="py-string">'is'</tt><tt class="py-op">,</tt> <tt class="py-string">'lambda'</tt><tt class="py-op">,</tt> <tt class="py-string">'not'</tt><tt class="py-op">,</tt> <tt class="py-string">'or'</tt><tt class="py-op">,</tt> </tt>
+<a name="L76"></a><tt class="py-lineno"> 76</tt> <tt class="py-line"> <tt class="py-string">'pass'</tt><tt class="py-op">,</tt> <tt class="py-string">'print'</tt><tt class="py-op">,</tt> <tt class="py-string">'raise'</tt><tt class="py-op">,</tt> <tt class="py-string">'return'</tt><tt class="py-op">,</tt> <tt class="py-string">'try'</tt><tt class="py-op">,</tt> <tt class="py-string">'while'</tt> <tt class="py-op">]</tt> </tt>
+<a name="L77"></a><tt class="py-lineno"> 77</tt> <tt class="py-line"> </tt>
+<a name="L78"></a><tt class="py-lineno"> 78</tt> <tt class="py-line"> </tt>
+<a name="fix_method_name"></a><div id="fix_method_name-def"><a name="L79"></a><tt class="py-lineno"> 79</tt> <a class="py-toggle" href="#" id="fix_method_name-toggle" onclick="return toggle('fix_method_name');">-</a><tt class="py-line"><tt class="py-keyword">def</tt> <a class="py-def-name" href="apiclient.discovery-module.html#fix_method_name">fix_method_name</a><tt class="py-op">(</tt><tt class="py-param">name</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+</div><div id="fix_method_name-collapsed" style="display:none;" pad="+++" indent="++++"></div><div id="fix_method_name-expanded"><a name="L80"></a><tt class="py-lineno"> 80</tt> <tt class="py-line"> <tt class="py-docstring">"""Fix method names to avoid reserved word conflicts.</tt> </tt>
+<a name="L81"></a><tt class="py-lineno"> 81</tt> <tt class="py-line"><tt class="py-docstring"></tt> </tt>
+<a name="L82"></a><tt class="py-lineno"> 82</tt> <tt class="py-line"><tt class="py-docstring"> Args:</tt> </tt>
+<a name="L83"></a><tt class="py-lineno"> 83</tt> <tt class="py-line"><tt class="py-docstring"> name: string, method name.</tt> </tt>
+<a name="L84"></a><tt class="py-lineno"> 84</tt> <tt class="py-line"><tt class="py-docstring"></tt> </tt>
+<a name="L85"></a><tt class="py-lineno"> 85</tt> <tt class="py-line"><tt class="py-docstring"> Returns:</tt> </tt>
+<a name="L86"></a><tt class="py-lineno"> 86</tt> <tt class="py-line"><tt class="py-docstring"> The name with a '_' prefixed if the name is a reserved word.</tt> </tt>
+<a name="L87"></a><tt class="py-lineno"> 87</tt> <tt class="py-line"><tt class="py-docstring"> """</tt> </tt>
+<a name="L88"></a><tt class="py-lineno"> 88</tt> <tt class="py-line"> <tt class="py-keyword">if</tt> <tt class="py-name">name</tt> <tt class="py-keyword">in</tt> <tt id="link-46" class="py-name"><a title="apiclient.discovery.RESERVED_WORDS" class="py-name" href="#" onclick="return doclink('link-46', 'RESERVED_WORDS', 'link-45');">RESERVED_WORDS</a></tt><tt class="py-op">:</tt> </tt>
+<a name="L89"></a><tt class="py-lineno"> 89</tt> <tt class="py-line"> <tt class="py-keyword">return</tt> <tt class="py-name">name</tt> <tt class="py-op">+</tt> <tt class="py-string">'_'</tt> </tt>
+<a name="L90"></a><tt class="py-lineno"> 90</tt> <tt class="py-line"> <tt class="py-keyword">else</tt><tt class="py-op">:</tt> </tt>
+<a name="L91"></a><tt class="py-lineno"> 91</tt> <tt class="py-line"> <tt class="py-keyword">return</tt> <tt class="py-name">name</tt> </tt>
+</div><a name="L92"></a><tt class="py-lineno"> 92</tt> <tt class="py-line"> </tt>
+<a name="L93"></a><tt class="py-lineno"> 93</tt> <tt class="py-line"> </tt>
+<a name="_add_query_parameter"></a><div id="_add_query_parameter-def"><a name="L94"></a><tt class="py-lineno"> 94</tt> <a class="py-toggle" href="#" id="_add_query_parameter-toggle" onclick="return toggle('_add_query_parameter');">-</a><tt class="py-line"><tt class="py-keyword">def</tt> <a class="py-def-name" href="apiclient.discovery-module.html#_add_query_parameter">_add_query_parameter</a><tt class="py-op">(</tt><tt class="py-param">url</tt><tt class="py-op">,</tt> <tt class="py-param">name</tt><tt class="py-op">,</tt> <tt class="py-param">value</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+</div><div id="_add_query_parameter-collapsed" style="display:none;" pad="+++" indent="++++"></div><div id="_add_query_parameter-expanded"><a name="L95"></a><tt class="py-lineno"> 95</tt> <tt class="py-line"> <tt class="py-docstring">"""Adds a query parameter to a url.</tt> </tt>
+<a name="L96"></a><tt class="py-lineno"> 96</tt> <tt class="py-line"><tt class="py-docstring"></tt> </tt>
+<a name="L97"></a><tt class="py-lineno"> 97</tt> <tt class="py-line"><tt class="py-docstring"> Replaces the current value if it already exists in the URL.</tt> </tt>
+<a name="L98"></a><tt class="py-lineno"> 98</tt> <tt class="py-line"><tt class="py-docstring"></tt> </tt>
+<a name="L99"></a><tt class="py-lineno"> 99</tt> <tt class="py-line"><tt class="py-docstring"> Args:</tt> </tt>
+<a name="L100"></a><tt class="py-lineno">100</tt> <tt class="py-line"><tt class="py-docstring"> url: string, url to add the query parameter to.</tt> </tt>
+<a name="L101"></a><tt class="py-lineno">101</tt> <tt class="py-line"><tt class="py-docstring"> name: string, query parameter name.</tt> </tt>
+<a name="L102"></a><tt class="py-lineno">102</tt> <tt class="py-line"><tt class="py-docstring"> value: string, query parameter value.</tt> </tt>
+<a name="L103"></a><tt class="py-lineno">103</tt> <tt class="py-line"><tt class="py-docstring"></tt> </tt>
+<a name="L104"></a><tt class="py-lineno">104</tt> <tt class="py-line"><tt class="py-docstring"> Returns:</tt> </tt>
+<a name="L105"></a><tt class="py-lineno">105</tt> <tt class="py-line"><tt class="py-docstring"> Updated query parameter. Does not update the url if value is None.</tt> </tt>
+<a name="L106"></a><tt class="py-lineno">106</tt> <tt class="py-line"><tt class="py-docstring"> """</tt> </tt>
+<a name="L107"></a><tt class="py-lineno">107</tt> <tt class="py-line"> <tt class="py-keyword">if</tt> <tt class="py-name">value</tt> <tt class="py-keyword">is</tt> <tt class="py-name">None</tt><tt class="py-op">:</tt> </tt>
+<a name="L108"></a><tt class="py-lineno">108</tt> <tt class="py-line"> <tt class="py-keyword">return</tt> <tt class="py-name">url</tt> </tt>
+<a name="L109"></a><tt class="py-lineno">109</tt> <tt class="py-line"> <tt class="py-keyword">else</tt><tt class="py-op">:</tt> </tt>
+<a name="L110"></a><tt class="py-lineno">110</tt> <tt class="py-line"> <tt class="py-name">parsed</tt> <tt class="py-op">=</tt> <tt class="py-name">list</tt><tt class="py-op">(</tt><tt class="py-name">urlparse</tt><tt class="py-op">.</tt><tt class="py-name">urlparse</tt><tt class="py-op">(</tt><tt class="py-name">url</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
+<a name="L111"></a><tt class="py-lineno">111</tt> <tt class="py-line"> <tt class="py-name">q</tt> <tt class="py-op">=</tt> <tt class="py-name">dict</tt><tt class="py-op">(</tt><tt class="py-name">parse_qsl</tt><tt class="py-op">(</tt><tt class="py-name">parsed</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-op">)</tt> </tt>
+<a name="L112"></a><tt class="py-lineno">112</tt> <tt class="py-line"> <tt class="py-name">q</tt><tt class="py-op">[</tt><tt class="py-name">name</tt><tt class="py-op">]</tt> <tt class="py-op">=</tt> <tt class="py-name">value</tt> </tt>
+<a name="L113"></a><tt class="py-lineno">113</tt> <tt class="py-line"> <tt class="py-name">parsed</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">q</tt><tt class="py-op">)</tt> </tt>
+<a name="L114"></a><tt class="py-lineno">114</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">parsed</tt><tt class="py-op">)</tt> </tt>
+</div><a name="L115"></a><tt class="py-lineno">115</tt> <tt class="py-line"> </tt>
+<a name="L116"></a><tt class="py-lineno">116</tt> <tt class="py-line"> </tt>
+<a name="key2param"></a><div id="key2param-def"><a name="L117"></a><tt class="py-lineno">117</tt> <a class="py-toggle" href="#" id="key2param-toggle" onclick="return toggle('key2param');">-</a><tt class="py-line"><tt class="py-keyword">def</tt> <a class="py-def-name" href="apiclient.discovery-module.html#key2param">key2param</a><tt class="py-op">(</tt><tt class="py-param">key</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+</div><div id="key2param-collapsed" style="display:none;" pad="+++" indent="++++"></div><div id="key2param-expanded"><a name="L118"></a><tt class="py-lineno">118</tt> <tt class="py-line"> <tt class="py-docstring">"""Converts key names into parameter names.</tt> </tt>
+<a name="L119"></a><tt class="py-lineno">119</tt> <tt class="py-line"><tt class="py-docstring"></tt> </tt>
+<a name="L120"></a><tt class="py-lineno">120</tt> <tt class="py-line"><tt class="py-docstring"> For example, converting "max-results" -> "max_results"</tt> </tt>
+<a name="L121"></a><tt class="py-lineno">121</tt> <tt class="py-line"><tt class="py-docstring"></tt> </tt>
+<a name="L122"></a><tt class="py-lineno">122</tt> <tt class="py-line"><tt class="py-docstring"> Args:</tt> </tt>
+<a name="L123"></a><tt class="py-lineno">123</tt> <tt class="py-line"><tt class="py-docstring"> key: string, the method key name.</tt> </tt>
+<a name="L124"></a><tt class="py-lineno">124</tt> <tt class="py-line"><tt class="py-docstring"></tt> </tt>
+<a name="L125"></a><tt class="py-lineno">125</tt> <tt class="py-line"><tt class="py-docstring"> Returns:</tt> </tt>
+<a name="L126"></a><tt class="py-lineno">126</tt> <tt class="py-line"><tt class="py-docstring"> A safe method name based on the key name.</tt> </tt>
+<a name="L127"></a><tt class="py-lineno">127</tt> <tt class="py-line"><tt class="py-docstring"> """</tt> </tt>
+<a name="L128"></a><tt class="py-lineno">128</tt> <tt class="py-line"> <tt class="py-name">result</tt> <tt class="py-op">=</tt> <tt class="py-op">[</tt><tt class="py-op">]</tt> </tt>
+<a name="L129"></a><tt class="py-lineno">129</tt> <tt class="py-line"> <tt class="py-name">key</tt> <tt class="py-op">=</tt> <tt class="py-name">list</tt><tt class="py-op">(</tt><tt class="py-name">key</tt><tt class="py-op">)</tt> </tt>
+<a name="L130"></a><tt class="py-lineno">130</tt> <tt class="py-line"> <tt class="py-keyword">if</tt> <tt class="py-keyword">not</tt> <tt class="py-name">key</tt><tt class="py-op">[</tt><tt class="py-number">0</tt><tt class="py-op">]</tt><tt class="py-op">.</tt><tt class="py-name">isalpha</tt><tt class="py-op">(</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+<a name="L131"></a><tt class="py-lineno">131</tt> <tt class="py-line"> <tt class="py-name">result</tt><tt class="py-op">.</tt><tt class="py-name">append</tt><tt class="py-op">(</tt><tt class="py-string">'x'</tt><tt class="py-op">)</tt> </tt>
+<a name="L132"></a><tt class="py-lineno">132</tt> <tt class="py-line"> <tt class="py-keyword">for</tt> <tt class="py-name">c</tt> <tt class="py-keyword">in</tt> <tt class="py-name">key</tt><tt class="py-op">:</tt> </tt>
+<a name="L133"></a><tt class="py-lineno">133</tt> <tt class="py-line"> <tt class="py-keyword">if</tt> <tt class="py-name">c</tt><tt class="py-op">.</tt><tt class="py-name">isalnum</tt><tt class="py-op">(</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+<a name="L134"></a><tt class="py-lineno">134</tt> <tt class="py-line"> <tt class="py-name">result</tt><tt class="py-op">.</tt><tt class="py-name">append</tt><tt class="py-op">(</tt><tt class="py-name">c</tt><tt class="py-op">)</tt> </tt>
+<a name="L135"></a><tt class="py-lineno">135</tt> <tt class="py-line"> <tt class="py-keyword">else</tt><tt class="py-op">:</tt> </tt>
+<a name="L136"></a><tt class="py-lineno">136</tt> <tt class="py-line"> <tt class="py-name">result</tt><tt class="py-op">.</tt><tt class="py-name">append</tt><tt class="py-op">(</tt><tt class="py-string">'_'</tt><tt class="py-op">)</tt> </tt>
+<a name="L137"></a><tt class="py-lineno">137</tt> <tt class="py-line"> </tt>
+<a name="L138"></a><tt class="py-lineno">138</tt> <tt class="py-line"> <tt class="py-keyword">return</tt> <tt class="py-string">''</tt><tt class="py-op">.</tt><tt class="py-name">join</tt><tt class="py-op">(</tt><tt class="py-name">result</tt><tt class="py-op">)</tt> </tt>
+</div><a name="L139"></a><tt class="py-lineno">139</tt> <tt class="py-line"> </tt>
+<a name="L140"></a><tt class="py-lineno">140</tt> <tt class="py-line"> </tt>
+<a name="build"></a><div id="build-def"><a name="L141"></a><tt class="py-lineno">141</tt> <a class="py-toggle" href="#" id="build-toggle" onclick="return toggle('build');">-</a><tt class="py-line"><tt class="py-keyword">def</tt> <a class="py-def-name" href="apiclient.discovery-module.html#build">build</a><tt class="py-op">(</tt><tt class="py-param">serviceName</tt><tt class="py-op">,</tt> </tt>
+<a name="L142"></a><tt class="py-lineno">142</tt> <tt class="py-line"> <tt class="py-param">version</tt><tt class="py-op">,</tt> </tt>
+<a name="L143"></a><tt class="py-lineno">143</tt> <tt class="py-line"> <tt class="py-param">http</tt><tt class="py-op">=</tt><tt class="py-name">None</tt><tt class="py-op">,</tt> </tt>
+<a name="L144"></a><tt class="py-lineno">144</tt> <tt class="py-line"> <tt class="py-param">discoveryServiceUrl</tt><tt class="py-op">=</tt><tt id="link-47" class="py-name"><a title="apiclient.discovery.DISCOVERY_URI" class="py-name" href="#" onclick="return doclink('link-47', 'DISCOVERY_URI', 'link-42');">DISCOVERY_URI</a></tt><tt class="py-op">,</tt> </tt>
+<a name="L145"></a><tt class="py-lineno">145</tt> <tt class="py-line"> <tt class="py-param">developerKey</tt><tt class="py-op">=</tt><tt class="py-name">None</tt><tt class="py-op">,</tt> </tt>
+<a name="L146"></a><tt class="py-lineno">146</tt> <tt class="py-line"> <tt class="py-param">model</tt><tt class="py-op">=</tt><tt class="py-name">None</tt><tt class="py-op">,</tt> </tt>
+<a name="L147"></a><tt class="py-lineno">147</tt> <tt class="py-line"> <tt class="py-param">requestBuilder</tt><tt class="py-op">=</tt><tt id="link-48" class="py-name"><a title="apiclient.http.HttpRequest" class="py-name" href="#" onclick="return doclink('link-48', 'HttpRequest', 'link-21');">HttpRequest</a></tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+</div><div id="build-collapsed" style="display:none;" pad="+++" indent="++++"></div><div id="build-expanded"><a name="L148"></a><tt class="py-lineno">148</tt> <tt class="py-line"> <tt class="py-docstring">"""Construct a Resource for interacting with an API.</tt> </tt>
+<a name="L149"></a><tt class="py-lineno">149</tt> <tt class="py-line"><tt class="py-docstring"></tt> </tt>
+<a name="L150"></a><tt class="py-lineno">150</tt> <tt class="py-line"><tt class="py-docstring"> Construct a Resource object for interacting with an API. The serviceName and</tt> </tt>
+<a name="L151"></a><tt class="py-lineno">151</tt> <tt class="py-line"><tt class="py-docstring"> version are the names from the Discovery service.</tt> </tt>
+<a name="L152"></a><tt class="py-lineno">152</tt> <tt class="py-line"><tt class="py-docstring"></tt> </tt>
+<a name="L153"></a><tt class="py-lineno">153</tt> <tt class="py-line"><tt class="py-docstring"> Args:</tt> </tt>
+<a name="L154"></a><tt class="py-lineno">154</tt> <tt class="py-line"><tt class="py-docstring"> serviceName: string, name of the service.</tt> </tt>
+<a name="L155"></a><tt class="py-lineno">155</tt> <tt class="py-line"><tt class="py-docstring"> version: string, the version of the service.</tt> </tt>
+<a name="L156"></a><tt class="py-lineno">156</tt> <tt class="py-line"><tt class="py-docstring"> http: httplib2.Http, An instance of httplib2.Http or something that acts</tt> </tt>
+<a name="L157"></a><tt class="py-lineno">157</tt> <tt class="py-line"><tt class="py-docstring"> like it that HTTP requests will be made through.</tt> </tt>
+<a name="L158"></a><tt class="py-lineno">158</tt> <tt class="py-line"><tt class="py-docstring"> discoveryServiceUrl: string, a URI Template that points to the location of</tt> </tt>
+<a name="L159"></a><tt class="py-lineno">159</tt> <tt class="py-line"><tt class="py-docstring"> the discovery service. It should have two parameters {api} and</tt> </tt>
+<a name="L160"></a><tt class="py-lineno">160</tt> <tt class="py-line"><tt class="py-docstring"> {apiVersion} that when filled in produce an absolute URI to the discovery</tt> </tt>
+<a name="L161"></a><tt class="py-lineno">161</tt> <tt class="py-line"><tt class="py-docstring"> document for that service.</tt> </tt>
+<a name="L162"></a><tt class="py-lineno">162</tt> <tt class="py-line"><tt class="py-docstring"> developerKey: string, key obtained from</tt> </tt>
+<a name="L163"></a><tt class="py-lineno">163</tt> <tt class="py-line"><tt class="py-docstring"> https://code.google.com/apis/console.</tt> </tt>
+<a name="L164"></a><tt class="py-lineno">164</tt> <tt class="py-line"><tt class="py-docstring"> model: apiclient.Model, converts to and from the wire format.</tt> </tt>
+<a name="L165"></a><tt class="py-lineno">165</tt> <tt class="py-line"><tt class="py-docstring"> requestBuilder: apiclient.http.HttpRequest, encapsulator for an HTTP</tt> </tt>
+<a name="L166"></a><tt class="py-lineno">166</tt> <tt class="py-line"><tt class="py-docstring"> request.</tt> </tt>
+<a name="L167"></a><tt class="py-lineno">167</tt> <tt class="py-line"><tt class="py-docstring"></tt> </tt>
+<a name="L168"></a><tt class="py-lineno">168</tt> <tt class="py-line"><tt class="py-docstring"> Returns:</tt> </tt>
+<a name="L169"></a><tt class="py-lineno">169</tt> <tt class="py-line"><tt class="py-docstring"> A Resource object with methods for interacting with the service.</tt> </tt>
+<a name="L170"></a><tt class="py-lineno">170</tt> <tt class="py-line"><tt class="py-docstring"> """</tt> </tt>
+<a name="L171"></a><tt class="py-lineno">171</tt> <tt class="py-line"> <tt class="py-name">params</tt> <tt class="py-op">=</tt> <tt class="py-op">{</tt> </tt>
+<a name="L172"></a><tt class="py-lineno">172</tt> <tt class="py-line"> <tt class="py-string">'api'</tt><tt class="py-op">:</tt> <tt class="py-name">serviceName</tt><tt class="py-op">,</tt> </tt>
+<a name="L173"></a><tt class="py-lineno">173</tt> <tt class="py-line"> <tt class="py-string">'apiVersion'</tt><tt class="py-op">:</tt> <tt class="py-name">version</tt> </tt>
+<a name="L174"></a><tt class="py-lineno">174</tt> <tt class="py-line"> <tt class="py-op">}</tt> </tt>
+<a name="L175"></a><tt class="py-lineno">175</tt> <tt class="py-line"> </tt>
+<a name="L176"></a><tt class="py-lineno">176</tt> <tt class="py-line"> <tt class="py-keyword">if</tt> <tt id="link-49" class="py-name"><a title="apiclient.http
oauth2client.appengine.OAuth2Decorator.http" class="py-name" href="#" onclick="return doclink('link-49', 'http', 'link-20');">http</a></tt> <tt class="py-keyword">is</tt> <tt class="py-name">None</tt><tt class="py-op">:</tt> </tt>
-<a name="L168"></a><tt class="py-lineno">168</tt> <tt class="py-line"> <tt id="link-50" class="py-name"><a title="apiclient.http
+<a name="L177"></a><tt class="py-lineno">177</tt> <tt class="py-line"> <tt id="link-50" class="py-name"><a title="apiclient.http
oauth2client.appengine.OAuth2Decorator.http" class="py-name" href="#" onclick="return doclink('link-50', 'http', 'link-20');">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="L169"></a><tt class="py-lineno">169</tt> <tt class="py-line"> </tt>
-<a name="L170"></a><tt class="py-lineno">170</tt> <tt class="py-line"> <tt class="py-name">requested_url</tt> <tt class="py-op">=</tt> <tt class="py-name">uritemplate</tt><tt class="py-op">.</tt><tt class="py-name">expand</tt><tt class="py-op">(</tt><tt class="py-name">discoveryServiceUrl</tt><tt class="py-op">,</tt> <tt class="py-name">params</tt><tt class="py-op">)</tt> </tt>
-<a name="L171"></a><tt class="py-lineno">171</tt> <tt class="py-line"> </tt>
-<a name="L172"></a><tt class="py-lineno">172</tt> <tt class="py-line"> <tt class="py-comment"># REMOTE_ADDR is defined by the CGI spec [RFC3875] as the environment</tt> </tt>
-<a name="L173"></a><tt class="py-lineno">173</tt> <tt class="py-line"> <tt class="py-comment"># variable that contains the network address of the client sending the</tt> </tt>
-<a name="L174"></a><tt class="py-lineno">174</tt> <tt class="py-line"> <tt class="py-comment"># request. If it exists then add that to the request for the discovery</tt> </tt>
-<a name="L175"></a><tt class="py-lineno">175</tt> <tt class="py-line"> <tt class="py-comment"># document to avoid exceeding the quota on discovery requests.</tt> </tt>
-<a name="L176"></a><tt class="py-lineno">176</tt> <tt class="py-line"> <tt class="py-keyword">if</tt> <tt class="py-string">'REMOTE_ADDR'</tt> <tt class="py-keyword">in</tt> <tt class="py-name">os</tt><tt class="py-op">.</tt><tt class="py-name">environ</tt><tt class="py-op">:</tt> </tt>
-<a name="L177"></a><tt class="py-lineno">177</tt> <tt class="py-line"> <tt class="py-name">requested_url</tt> <tt class="py-op">=</tt> <tt id="link-51" class="py-name" targets="Function apiclient.discovery._add_query_parameter()=apiclient.discovery-module.html#_add_query_parameter"><a title="apiclient.discovery._add_query_parameter" class="py-name" href="#" onclick="return doclink('link-51', '_add_query_parameter', 'link-51');">_add_query_parameter</a></tt><tt class="py-op">(</tt><tt class="py-name">requested_url</tt><tt class="py-op">,</tt> <tt class="py-string">'userIp'</tt><tt class="py-op">,</tt> </tt>
-<a name="L178"></a><tt class="py-lineno">178</tt> <tt class="py-line"> <tt class="py-name">os</tt><tt class="py-op">.</tt><tt class="py-name">environ</tt><tt class="py-op">[</tt><tt class="py-string">'REMOTE_ADDR'</tt><tt class="py-op">]</tt><tt class="py-op">)</tt> </tt>
-<a name="L179"></a><tt class="py-lineno">179</tt> <tt class="py-line"> <tt id="link-52" class="py-name"><a title="apiclient.discovery.logger
-oauth2client.client.logger
-oauth2client.multistore_file.logger" class="py-name" href="#" onclick="return doclink('link-52', 'logger', 'link-39');">logger</a></tt><tt class="py-op">.</tt><tt class="py-name">info</tt><tt class="py-op">(</tt><tt class="py-string">'URL being requested: %s'</tt> <tt class="py-op">%</tt> <tt class="py-name">requested_url</tt><tt class="py-op">)</tt> </tt>
+<a name="L178"></a><tt class="py-lineno">178</tt> <tt class="py-line"> </tt>
+<a name="L179"></a><tt class="py-lineno">179</tt> <tt class="py-line"> <tt class="py-name">requested_url</tt> <tt class="py-op">=</tt> <tt class="py-name">uritemplate</tt><tt class="py-op">.</tt><tt class="py-name">expand</tt><tt class="py-op">(</tt><tt class="py-name">discoveryServiceUrl</tt><tt class="py-op">,</tt> <tt class="py-name">params</tt><tt class="py-op">)</tt> </tt>
<a name="L180"></a><tt class="py-lineno">180</tt> <tt class="py-line"> </tt>
-<a name="L181"></a><tt class="py-lineno">181</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-53" class="py-name"><a title="apiclient.http
+<a name="L181"></a><tt class="py-lineno">181</tt> <tt class="py-line"> <tt class="py-comment"># REMOTE_ADDR is defined by the CGI spec [RFC3875] as the environment</tt> </tt>
+<a name="L182"></a><tt class="py-lineno">182</tt> <tt class="py-line"> <tt class="py-comment"># variable that contains the network address of the client sending the</tt> </tt>
+<a name="L183"></a><tt class="py-lineno">183</tt> <tt class="py-line"> <tt class="py-comment"># request. If it exists then add that to the request for the discovery</tt> </tt>
+<a name="L184"></a><tt class="py-lineno">184</tt> <tt class="py-line"> <tt class="py-comment"># document to avoid exceeding the quota on discovery requests.</tt> </tt>
+<a name="L185"></a><tt class="py-lineno">185</tt> <tt class="py-line"> <tt class="py-keyword">if</tt> <tt class="py-string">'REMOTE_ADDR'</tt> <tt class="py-keyword">in</tt> <tt class="py-name">os</tt><tt class="py-op">.</tt><tt class="py-name">environ</tt><tt class="py-op">:</tt> </tt>
+<a name="L186"></a><tt class="py-lineno">186</tt> <tt class="py-line"> <tt class="py-name">requested_url</tt> <tt class="py-op">=</tt> <tt id="link-51" class="py-name" targets="Function apiclient.discovery._add_query_parameter()=apiclient.discovery-module.html#_add_query_parameter"><a title="apiclient.discovery._add_query_parameter" class="py-name" href="#" onclick="return doclink('link-51', '_add_query_parameter', 'link-51');">_add_query_parameter</a></tt><tt class="py-op">(</tt><tt class="py-name">requested_url</tt><tt class="py-op">,</tt> <tt class="py-string">'userIp'</tt><tt class="py-op">,</tt> </tt>
+<a name="L187"></a><tt class="py-lineno">187</tt> <tt class="py-line"> <tt class="py-name">os</tt><tt class="py-op">.</tt><tt class="py-name">environ</tt><tt class="py-op">[</tt><tt class="py-string">'REMOTE_ADDR'</tt><tt class="py-op">]</tt><tt class="py-op">)</tt> </tt>
+<a name="L188"></a><tt class="py-lineno">188</tt> <tt class="py-line"> <tt id="link-52" 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-52', 'logger', 'link-39');">logger</a></tt><tt class="py-op">.</tt><tt class="py-name">info</tt><tt class="py-op">(</tt><tt class="py-string">'URL being requested: %s'</tt> <tt class="py-op">%</tt> <tt class="py-name">requested_url</tt><tt class="py-op">)</tt> </tt>
+<a name="L189"></a><tt class="py-lineno">189</tt> <tt class="py-line"> </tt>
+<a name="L190"></a><tt class="py-lineno">190</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-53" class="py-name"><a title="apiclient.http
oauth2client.appengine.OAuth2Decorator.http" class="py-name" href="#" onclick="return doclink('link-53', 'http', 'link-20');">http</a></tt><tt class="py-op">.</tt><tt id="link-54" class="py-name" targets="Method apiclient.http.HttpMock.request()=apiclient.http.HttpMock-class.html#request,Method apiclient.http.HttpMockSequence.request()=apiclient.http.HttpMockSequence-class.html#request,Method apiclient.model.BaseModel.request()=apiclient.model.BaseModel-class.html#request,Method apiclient.model.Model.request()=apiclient.model.Model-class.html#request"><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-54', 'request', 'link-54');">request</a></tt><tt class="py-op">(</tt><tt class="py-name">requested_url</tt><tt class="py-op">)</tt> </tt>
-<a name="L182"></a><tt class="py-lineno">182</tt> <tt class="py-line"> </tt>
-<a name="L183"></a><tt class="py-lineno">183</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">404</tt><tt class="py-op">:</tt> </tt>
-<a name="L184"></a><tt class="py-lineno">184</tt> <tt class="py-line"> <tt class="py-keyword">raise</tt> <tt id="link-55" class="py-name"><a title="apiclient.errors.UnknownApiNameOrVersion" class="py-name" href="#" onclick="return doclink('link-55', 'UnknownApiNameOrVersion', 'link-15');">UnknownApiNameOrVersion</a></tt><tt class="py-op">(</tt><tt class="py-string">"name: %s version: %s"</tt> <tt class="py-op">%</tt> <tt class="py-op">(</tt><tt class="py-name">serviceName</tt><tt class="py-op">,</tt> </tt>
-<a name="L185"></a><tt class="py-lineno">185</tt> <tt class="py-line"> <tt class="py-name">version</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
-<a name="L186"></a><tt class="py-lineno">186</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">400</tt><tt class="py-op">:</tt> </tt>
-<a name="L187"></a><tt class="py-lineno">187</tt> <tt class="py-line"> <tt class="py-keyword">raise</tt> <tt id="link-56" class="py-name"><a title="apiclient.errors.HttpError" class="py-name" href="#" onclick="return doclink('link-56', 'HttpError', 'link-3');">HttpError</a></tt><tt class="py-op">(</tt><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">requested_url</tt><tt class="py-op">)</tt> </tt>
-<a name="L188"></a><tt class="py-lineno">188</tt> <tt class="py-line"> </tt>
-<a name="L189"></a><tt class="py-lineno">189</tt> <tt class="py-line"> <tt class="py-keyword">try</tt><tt class="py-op">:</tt> </tt>
-<a name="L190"></a><tt class="py-lineno">190</tt> <tt class="py-line"> <tt class="py-name">service</tt> <tt class="py-op">=</tt> <tt class="py-name">simplejson</tt><tt class="py-op">.</tt><tt id="link-57" class="py-name" targets="Function oauth2client.clientsecrets.loads()=oauth2client.clientsecrets-module.html#loads"><a title="oauth2client.clientsecrets.loads" class="py-name" href="#" onclick="return doclink('link-57', 'loads', 'link-57');">loads</a></tt><tt class="py-op">(</tt><tt class="py-name">content</tt><tt class="py-op">)</tt> </tt>
-<a name="L191"></a><tt class="py-lineno">191</tt> <tt class="py-line"> <tt class="py-keyword">except</tt> <tt class="py-name">ValueError</tt><tt class="py-op">,</tt> <tt class="py-name">e</tt><tt class="py-op">:</tt> </tt>
-<a name="L192"></a><tt class="py-lineno">192</tt> <tt class="py-line"> <tt id="link-58" class="py-name"><a title="apiclient.discovery.logger
+<a name="L191"></a><tt class="py-lineno">191</tt> <tt class="py-line"> </tt>
+<a name="L192"></a><tt class="py-lineno">192</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">404</tt><tt class="py-op">:</tt> </tt>
+<a name="L193"></a><tt class="py-lineno">193</tt> <tt class="py-line"> <tt class="py-keyword">raise</tt> <tt id="link-55" class="py-name"><a title="apiclient.errors.UnknownApiNameOrVersion" class="py-name" href="#" onclick="return doclink('link-55', 'UnknownApiNameOrVersion', 'link-15');">UnknownApiNameOrVersion</a></tt><tt class="py-op">(</tt><tt class="py-string">"name: %s version: %s"</tt> <tt class="py-op">%</tt> <tt class="py-op">(</tt><tt class="py-name">serviceName</tt><tt class="py-op">,</tt> </tt>
+<a name="L194"></a><tt class="py-lineno">194</tt> <tt class="py-line"> <tt class="py-name">version</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
+<a name="L195"></a><tt class="py-lineno">195</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">400</tt><tt class="py-op">:</tt> </tt>
+<a name="L196"></a><tt class="py-lineno">196</tt> <tt class="py-line"> <tt class="py-keyword">raise</tt> <tt id="link-56" class="py-name"><a title="apiclient.errors.HttpError" class="py-name" href="#" onclick="return doclink('link-56', 'HttpError', 'link-3');">HttpError</a></tt><tt class="py-op">(</tt><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">requested_url</tt><tt class="py-op">)</tt> </tt>
+<a name="L197"></a><tt class="py-lineno">197</tt> <tt class="py-line"> </tt>
+<a name="L198"></a><tt class="py-lineno">198</tt> <tt class="py-line"> <tt class="py-keyword">try</tt><tt class="py-op">:</tt> </tt>
+<a name="L199"></a><tt class="py-lineno">199</tt> <tt class="py-line"> <tt class="py-name">service</tt> <tt class="py-op">=</tt> <tt class="py-name">simplejson</tt><tt class="py-op">.</tt><tt id="link-57" class="py-name" targets="Function oauth2client.clientsecrets.loads()=oauth2client.clientsecrets-module.html#loads"><a title="oauth2client.clientsecrets.loads" class="py-name" href="#" onclick="return doclink('link-57', 'loads', 'link-57');">loads</a></tt><tt class="py-op">(</tt><tt class="py-name">content</tt><tt class="py-op">)</tt> </tt>
+<a name="L200"></a><tt class="py-lineno">200</tt> <tt class="py-line"> <tt class="py-keyword">except</tt> <tt class="py-name">ValueError</tt><tt class="py-op">,</tt> <tt class="py-name">e</tt><tt class="py-op">:</tt> </tt>
+<a name="L201"></a><tt class="py-lineno">201</tt> <tt class="py-line"> <tt id="link-58" 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-58', 'logger', 'link-39');">logger</a></tt><tt class="py-op">.</tt><tt class="py-name">error</tt><tt class="py-op">(</tt><tt class="py-string">'Failed to parse as JSON: '</tt> <tt class="py-op">+</tt> <tt class="py-name">content</tt><tt class="py-op">)</tt> </tt>
-<a name="L193"></a><tt class="py-lineno">193</tt> <tt class="py-line"> <tt class="py-keyword">raise</tt> <tt id="link-59" class="py-name"><a title="apiclient.errors.InvalidJsonError" class="py-name" href="#" onclick="return doclink('link-59', 'InvalidJsonError', 'link-6');">InvalidJsonError</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
-<a name="L194"></a><tt class="py-lineno">194</tt> <tt class="py-line"> </tt>
-<a name="L195"></a><tt class="py-lineno">195</tt> <tt class="py-line"> <tt class="py-name">filename</tt> <tt class="py-op">=</tt> <tt class="py-name">os</tt><tt class="py-op">.</tt><tt class="py-name">path</tt><tt class="py-op">.</tt><tt class="py-name">join</tt><tt class="py-op">(</tt><tt class="py-name">os</tt><tt class="py-op">.</tt><tt class="py-name">path</tt><tt class="py-op">.</tt><tt class="py-name">dirname</tt><tt class="py-op">(</tt><tt class="py-name">__file__</tt><tt class="py-op">)</tt><tt class="py-op">,</tt> <tt class="py-string">'contrib'</tt><tt class="py-op">,</tt> </tt>
-<a name="L196"></a><tt class="py-lineno">196</tt> <tt class="py-line"> <tt class="py-name">serviceName</tt><tt class="py-op">,</tt> <tt class="py-string">'future.json'</tt><tt class="py-op">)</tt> </tt>
-<a name="L197"></a><tt class="py-lineno">197</tt> <tt class="py-line"> <tt class="py-keyword">try</tt><tt class="py-op">:</tt> </tt>
-<a name="L198"></a><tt class="py-lineno">198</tt> <tt class="py-line"> <tt class="py-name">f</tt> <tt class="py-op">=</tt> <tt id="link-60" class="py-name" targets="Module oauth2client.file=oauth2client.file-module.html"><a title="oauth2client.file" class="py-name" href="#" onclick="return doclink('link-60', 'file', 'link-60');">file</a></tt><tt class="py-op">(</tt><tt class="py-name">filename</tt><tt class="py-op">,</tt> <tt class="py-string">'r'</tt><tt class="py-op">)</tt> </tt>
-<a name="L199"></a><tt class="py-lineno">199</tt> <tt class="py-line"> <tt class="py-name">future</tt> <tt class="py-op">=</tt> <tt class="py-name">f</tt><tt class="py-op">.</tt><tt class="py-name">read</tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
-<a name="L200"></a><tt class="py-lineno">200</tt> <tt class="py-line"> <tt class="py-name">f</tt><tt class="py-op">.</tt><tt class="py-name">close</tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
-<a name="L201"></a><tt class="py-lineno">201</tt> <tt class="py-line"> <tt class="py-keyword">except</tt> <tt class="py-name">IOError</tt><tt class="py-op">:</tt> </tt>
-<a name="L202"></a><tt class="py-lineno">202</tt> <tt class="py-line"> <tt class="py-name">future</tt> <tt class="py-op">=</tt> <tt class="py-name">None</tt> </tt>
+<a name="L202"></a><tt class="py-lineno">202</tt> <tt class="py-line"> <tt class="py-keyword">raise</tt> <tt id="link-59" class="py-name"><a title="apiclient.errors.InvalidJsonError" class="py-name" href="#" onclick="return doclink('link-59', 'InvalidJsonError', 'link-6');">InvalidJsonError</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
<a name="L203"></a><tt class="py-lineno">203</tt> <tt class="py-line"> </tt>
-<a name="L204"></a><tt class="py-lineno">204</tt> <tt class="py-line"> <tt class="py-keyword">return</tt> <tt id="link-61" class="py-name" targets="Function apiclient.discovery.build_from_document()=apiclient.discovery-module.html#build_from_document"><a title="apiclient.discovery.build_from_document" class="py-name" href="#" onclick="return doclink('link-61', 'build_from_document', 'link-61');">build_from_document</a></tt><tt class="py-op">(</tt><tt class="py-name">content</tt><tt class="py-op">,</tt> <tt class="py-name">discoveryServiceUrl</tt><tt class="py-op">,</tt> <tt class="py-name">future</tt><tt class="py-op">,</tt> </tt>
-<a name="L205"></a><tt class="py-lineno">205</tt> <tt class="py-line"> <tt id="link-62" class="py-name"><a title="apiclient.http
-oauth2client.appengine.OAuth2Decorator.http" class="py-name" href="#" onclick="return doclink('link-62', 'http', 'link-20');">http</a></tt><tt class="py-op">,</tt> <tt class="py-name">developerKey</tt><tt class="py-op">,</tt> <tt id="link-63" class="py-name"><a title="apiclient.model" class="py-name" href="#" onclick="return doclink('link-63', 'model', 'link-29');">model</a></tt><tt class="py-op">,</tt> <tt class="py-name">requestBuilder</tt><tt class="py-op">)</tt> </tt>
+<a name="L204"></a><tt class="py-lineno">204</tt> <tt class="py-line"> <tt class="py-keyword">return</tt> <tt id="link-60" class="py-name" targets="Function apiclient.discovery.build_from_document()=apiclient.discovery-module.html#build_from_document"><a title="apiclient.discovery.build_from_document" class="py-name" href="#" onclick="return doclink('link-60', 'build_from_document', 'link-60');">build_from_document</a></tt><tt class="py-op">(</tt><tt class="py-name">content</tt><tt class="py-op">,</tt> <tt class="py-name">discoveryServiceUrl</tt><tt class="py-op">,</tt> <tt id="link-61" class="py-name"><a title="apiclient.http
+oauth2client.appengine.OAuth2Decorator.http" class="py-name" href="#" onclick="return doclink('link-61', 'http', 'link-20');">http</a></tt><tt class="py-op">=</tt><tt id="link-62" class="py-name"><a title="apiclient.http
+oauth2client.appengine.OAuth2Decorator.http" class="py-name" href="#" onclick="return doclink('link-62', 'http', 'link-20');">http</a></tt><tt class="py-op">,</tt> </tt>
+<a name="L205"></a><tt class="py-lineno">205</tt> <tt class="py-line"> <tt class="py-name">developerKey</tt><tt class="py-op">=</tt><tt class="py-name">developerKey</tt><tt class="py-op">,</tt> <tt id="link-63" class="py-name"><a title="apiclient.model" class="py-name" href="#" onclick="return doclink('link-63', 'model', 'link-29');">model</a></tt><tt class="py-op">=</tt><tt id="link-64" class="py-name"><a title="apiclient.model" class="py-name" href="#" onclick="return doclink('link-64', 'model', 'link-29');">model</a></tt><tt class="py-op">,</tt> <tt class="py-name">requestBuilder</tt><tt class="py-op">=</tt><tt class="py-name">requestBuilder</tt><tt class="py-op">)</tt> </tt>
</div><a name="L206"></a><tt class="py-lineno">206</tt> <tt class="py-line"> </tt>
<a name="L207"></a><tt class="py-lineno">207</tt> <tt class="py-line"> </tt>
<a name="build_from_document"></a><div id="build_from_document-def"><a name="L208"></a><tt class="py-lineno">208</tt> <a class="py-toggle" href="#" id="build_from_document-toggle" onclick="return toggle('build_from_document');">-</a><tt class="py-line"><tt class="py-keyword">def</tt> <a class="py-def-name" href="apiclient.discovery-module.html#build_from_document">build_from_document</a><tt class="py-op">(</tt> </tt>
@@ -283,659 +287,660 @@
<a name="L212"></a><tt class="py-lineno">212</tt> <tt class="py-line"> <tt class="py-param">http</tt><tt class="py-op">=</tt><tt class="py-name">None</tt><tt class="py-op">,</tt> </tt>
<a name="L213"></a><tt class="py-lineno">213</tt> <tt class="py-line"> <tt class="py-param">developerKey</tt><tt class="py-op">=</tt><tt class="py-name">None</tt><tt class="py-op">,</tt> </tt>
<a name="L214"></a><tt class="py-lineno">214</tt> <tt class="py-line"> <tt class="py-param">model</tt><tt class="py-op">=</tt><tt class="py-name">None</tt><tt class="py-op">,</tt> </tt>
-<a name="L215"></a><tt class="py-lineno">215</tt> <tt class="py-line"> <tt class="py-param">requestBuilder</tt><tt class="py-op">=</tt><tt id="link-64" class="py-name"><a title="apiclient.http.HttpRequest" class="py-name" href="#" onclick="return doclink('link-64', 'HttpRequest', 'link-21');">HttpRequest</a></tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+<a name="L215"></a><tt class="py-lineno">215</tt> <tt class="py-line"> <tt class="py-param">requestBuilder</tt><tt class="py-op">=</tt><tt id="link-65" class="py-name"><a title="apiclient.http.HttpRequest" class="py-name" href="#" onclick="return doclink('link-65', 'HttpRequest', 'link-21');">HttpRequest</a></tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
</div><div id="build_from_document-collapsed" style="display:none;" pad="+++" indent="++++"></div><div id="build_from_document-expanded"><a name="L216"></a><tt class="py-lineno">216</tt> <tt class="py-line"> <tt class="py-docstring">"""Create a Resource for interacting with an API.</tt> </tt>
<a name="L217"></a><tt class="py-lineno">217</tt> <tt class="py-line"><tt class="py-docstring"></tt> </tt>
-<a name="L218"></a><tt class="py-lineno">218</tt> <tt class="py-line"><tt class="py-docstring"> Same as `build()`, but constructs the Resource object</tt> </tt>
-<a name="L219"></a><tt class="py-lineno">219</tt> <tt class="py-line"><tt class="py-docstring"> from a discovery document that is it given, as opposed to</tt> </tt>
-<a name="L220"></a><tt class="py-lineno">220</tt> <tt class="py-line"><tt class="py-docstring"> retrieving one over HTTP.</tt> </tt>
-<a name="L221"></a><tt class="py-lineno">221</tt> <tt class="py-line"><tt class="py-docstring"></tt> </tt>
-<a name="L222"></a><tt class="py-lineno">222</tt> <tt class="py-line"><tt class="py-docstring"> Args:</tt> </tt>
-<a name="L223"></a><tt class="py-lineno">223</tt> <tt class="py-line"><tt class="py-docstring"> service: string, discovery document</tt> </tt>
-<a name="L224"></a><tt class="py-lineno">224</tt> <tt class="py-line"><tt class="py-docstring"> base: string, base URI for all HTTP requests, usually the discovery URI</tt> </tt>
-<a name="L225"></a><tt class="py-lineno">225</tt> <tt class="py-line"><tt class="py-docstring"> future: string, discovery document with future capabilities</tt> </tt>
-<a name="L226"></a><tt class="py-lineno">226</tt> <tt class="py-line"><tt class="py-docstring"> auth_discovery: dict, information about the authentication the API supports</tt> </tt>
-<a name="L227"></a><tt class="py-lineno">227</tt> <tt class="py-line"><tt class="py-docstring"> http: httplib2.Http, An instance of httplib2.Http or something that acts</tt> </tt>
-<a name="L228"></a><tt class="py-lineno">228</tt> <tt class="py-line"><tt class="py-docstring"> like it that HTTP requests will be made through.</tt> </tt>
-<a name="L229"></a><tt class="py-lineno">229</tt> <tt class="py-line"><tt class="py-docstring"> developerKey: string, Key for controlling API usage, generated</tt> </tt>
-<a name="L230"></a><tt class="py-lineno">230</tt> <tt class="py-line"><tt class="py-docstring"> from the API Console.</tt> </tt>
-<a name="L231"></a><tt class="py-lineno">231</tt> <tt class="py-line"><tt class="py-docstring"> model: Model class instance that serializes and</tt> </tt>
-<a name="L232"></a><tt class="py-lineno">232</tt> <tt class="py-line"><tt class="py-docstring"> de-serializes requests and responses.</tt> </tt>
-<a name="L233"></a><tt class="py-lineno">233</tt> <tt class="py-line"><tt class="py-docstring"> requestBuilder: Takes an http request and packages it up to be executed.</tt> </tt>
-<a name="L234"></a><tt class="py-lineno">234</tt> <tt class="py-line"><tt class="py-docstring"></tt> </tt>
-<a name="L235"></a><tt class="py-lineno">235</tt> <tt class="py-line"><tt class="py-docstring"> Returns:</tt> </tt>
-<a name="L236"></a><tt class="py-lineno">236</tt> <tt class="py-line"><tt class="py-docstring"> A Resource object with methods for interacting with</tt> </tt>
-<a name="L237"></a><tt class="py-lineno">237</tt> <tt class="py-line"><tt class="py-docstring"> the service.</tt> </tt>
-<a name="L238"></a><tt class="py-lineno">238</tt> <tt class="py-line"><tt class="py-docstring"> """</tt> </tt>
+<a name="L218"></a><tt class="py-lineno">218</tt> <tt class="py-line"><tt class="py-docstring"> Same as `build()`, but constructs the Resource object from a discovery</tt> </tt>
+<a name="L219"></a><tt class="py-lineno">219</tt> <tt class="py-line"><tt class="py-docstring"> document that is it given, as opposed to retrieving one over HTTP.</tt> </tt>
+<a name="L220"></a><tt class="py-lineno">220</tt> <tt class="py-line"><tt class="py-docstring"></tt> </tt>
+<a name="L221"></a><tt class="py-lineno">221</tt> <tt class="py-line"><tt class="py-docstring"> Args:</tt> </tt>
+<a name="L222"></a><tt class="py-lineno">222</tt> <tt class="py-line"><tt class="py-docstring"> service: string, discovery document.</tt> </tt>
+<a name="L223"></a><tt class="py-lineno">223</tt> <tt class="py-line"><tt class="py-docstring"> base: string, base URI for all HTTP requests, usually the discovery URI.</tt> </tt>
+<a name="L224"></a><tt class="py-lineno">224</tt> <tt class="py-line"><tt class="py-docstring"> future: string, discovery document with future capabilities (deprecated).</tt> </tt>
+<a name="L225"></a><tt class="py-lineno">225</tt> <tt class="py-line"><tt class="py-docstring"> http: httplib2.Http, An instance of httplib2.Http or something that acts</tt> </tt>
+<a name="L226"></a><tt class="py-lineno">226</tt> <tt class="py-line"><tt class="py-docstring"> like it that HTTP requests will be made through.</tt> </tt>
+<a name="L227"></a><tt class="py-lineno">227</tt> <tt class="py-line"><tt class="py-docstring"> developerKey: string, Key for controlling API usage, generated</tt> </tt>
+<a name="L228"></a><tt class="py-lineno">228</tt> <tt class="py-line"><tt class="py-docstring"> from the API Console.</tt> </tt>
+<a name="L229"></a><tt class="py-lineno">229</tt> <tt class="py-line"><tt class="py-docstring"> model: Model class instance that serializes and de-serializes requests and</tt> </tt>
+<a name="L230"></a><tt class="py-lineno">230</tt> <tt class="py-line"><tt class="py-docstring"> responses.</tt> </tt>
+<a name="L231"></a><tt class="py-lineno">231</tt> <tt class="py-line"><tt class="py-docstring"> requestBuilder: Takes an http request and packages it up to be executed.</tt> </tt>
+<a name="L232"></a><tt class="py-lineno">232</tt> <tt class="py-line"><tt class="py-docstring"></tt> </tt>
+<a name="L233"></a><tt class="py-lineno">233</tt> <tt class="py-line"><tt class="py-docstring"> Returns:</tt> </tt>
+<a name="L234"></a><tt class="py-lineno">234</tt> <tt class="py-line"><tt class="py-docstring"> A Resource object with methods for interacting with the service.</tt> </tt>
+<a name="L235"></a><tt class="py-lineno">235</tt> <tt class="py-line"><tt class="py-docstring"> """</tt> </tt>
+<a name="L236"></a><tt class="py-lineno">236</tt> <tt class="py-line"> </tt>
+<a name="L237"></a><tt class="py-lineno">237</tt> <tt class="py-line"> <tt class="py-comment"># future is no longer used.</tt> </tt>
+<a name="L238"></a><tt class="py-lineno">238</tt> <tt class="py-line"> <tt class="py-name">future</tt> <tt class="py-op">=</tt> <tt class="py-op">{</tt><tt class="py-op">}</tt> </tt>
<a name="L239"></a><tt class="py-lineno">239</tt> <tt class="py-line"> </tt>
-<a name="L240"></a><tt class="py-lineno">240</tt> <tt class="py-line"> <tt class="py-name">service</tt> <tt class="py-op">=</tt> <tt class="py-name">simplejson</tt><tt class="py-op">.</tt><tt id="link-65" class="py-name"><a title="oauth2client.clientsecrets.loads" class="py-name" href="#" onclick="return doclink('link-65', 'loads', 'link-57');">loads</a></tt><tt class="py-op">(</tt><tt class="py-name">service</tt><tt class="py-op">)</tt> </tt>
+<a name="L240"></a><tt class="py-lineno">240</tt> <tt class="py-line"> <tt class="py-name">service</tt> <tt class="py-op">=</tt> <tt class="py-name">simplejson</tt><tt class="py-op">.</tt><tt id="link-66" class="py-name"><a title="oauth2client.clientsecrets.loads" class="py-name" href="#" onclick="return doclink('link-66', 'loads', 'link-57');">loads</a></tt><tt class="py-op">(</tt><tt class="py-name">service</tt><tt class="py-op">)</tt> </tt>
<a name="L241"></a><tt class="py-lineno">241</tt> <tt class="py-line"> <tt class="py-name">base</tt> <tt class="py-op">=</tt> <tt class="py-name">urlparse</tt><tt class="py-op">.</tt><tt class="py-name">urljoin</tt><tt class="py-op">(</tt><tt class="py-name">base</tt><tt class="py-op">,</tt> <tt class="py-name">service</tt><tt class="py-op">[</tt><tt class="py-string">'basePath'</tt><tt class="py-op">]</tt><tt class="py-op">)</tt> </tt>
-<a name="L242"></a><tt class="py-lineno">242</tt> <tt class="py-line"> <tt class="py-keyword">if</tt> <tt class="py-name">future</tt><tt class="py-op">:</tt> </tt>
-<a name="L243"></a><tt class="py-lineno">243</tt> <tt class="py-line"> <tt class="py-name">future</tt> <tt class="py-op">=</tt> <tt class="py-name">simplejson</tt><tt class="py-op">.</tt><tt id="link-66" class="py-name"><a title="oauth2client.clientsecrets.loads" class="py-name" href="#" onclick="return doclink('link-66', 'loads', 'link-57');">loads</a></tt><tt class="py-op">(</tt><tt class="py-name">future</tt><tt class="py-op">)</tt> </tt>
-<a name="L244"></a><tt class="py-lineno">244</tt> <tt class="py-line"> <tt class="py-name">auth_discovery</tt> <tt class="py-op">=</tt> <tt class="py-name">future</tt><tt class="py-op">.</tt><tt id="link-67" class="py-name" targets="Method apiclient.schema.Schemas.get()=apiclient.schema.Schemas-class.html#get,Method oauth2client.appengine.OAuth2Handler.get()=oauth2client.appengine.OAuth2Handler-class.html#get,Method oauth2client.client.MemoryCache.get()=oauth2client.client.MemoryCache-class.html#get,Method oauth2client.client.Storage.get()=oauth2client.client.Storage-class.html#get"><a title="apiclient.schema.Schemas.get
+<a name="L242"></a><tt class="py-lineno">242</tt> <tt class="py-line"> <tt id="link-67" class="py-name"><a title="apiclient.schema" class="py-name" href="#" onclick="return doclink('link-67', 'schema', 'link-35');">schema</a></tt> <tt class="py-op">=</tt> <tt id="link-68" class="py-name"><a title="apiclient.schema.Schemas" class="py-name" href="#" onclick="return doclink('link-68', 'Schemas', 'link-36');">Schemas</a></tt><tt class="py-op">(</tt><tt class="py-name">service</tt><tt class="py-op">)</tt> </tt>
+<a name="L243"></a><tt class="py-lineno">243</tt> <tt class="py-line"> </tt>
+<a name="L244"></a><tt class="py-lineno">244</tt> <tt class="py-line"> <tt class="py-keyword">if</tt> <tt id="link-69" class="py-name"><a title="apiclient.model" class="py-name" href="#" onclick="return doclink('link-69', 'model', 'link-29');">model</a></tt> <tt class="py-keyword">is</tt> <tt class="py-name">None</tt><tt class="py-op">:</tt> </tt>
+<a name="L245"></a><tt class="py-lineno">245</tt> <tt class="py-line"> <tt class="py-name">features</tt> <tt class="py-op">=</tt> <tt class="py-name">service</tt><tt class="py-op">.</tt><tt id="link-70" class="py-name" targets="Method apiclient.schema.Schemas.get()=apiclient.schema.Schemas-class.html#get,Method oauth2client.appengine.OAuth2Handler.get()=oauth2client.appengine.OAuth2Handler-class.html#get,Method oauth2client.client.MemoryCache.get()=oauth2client.client.MemoryCache-class.html#get,Method oauth2client.client.Storage.get()=oauth2client.client.Storage-class.html#get"><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-67', 'get', 'link-67');">get</a></tt><tt class="py-op">(</tt><tt class="py-string">'auth'</tt><tt class="py-op">,</tt> <tt class="py-op">{</tt><tt class="py-op">}</tt><tt class="py-op">)</tt> </tt>
-<a name="L245"></a><tt class="py-lineno">245</tt> <tt class="py-line"> <tt class="py-keyword">else</tt><tt class="py-op">:</tt> </tt>
-<a name="L246"></a><tt class="py-lineno">246</tt> <tt class="py-line"> <tt class="py-name">future</tt> <tt class="py-op">=</tt> <tt class="py-op">{</tt><tt class="py-op">}</tt> </tt>
-<a name="L247"></a><tt class="py-lineno">247</tt> <tt class="py-line"> <tt class="py-name">auth_discovery</tt> <tt class="py-op">=</tt> <tt class="py-op">{</tt><tt class="py-op">}</tt> </tt>
-<a name="L248"></a><tt class="py-lineno">248</tt> <tt class="py-line"> <tt id="link-68" class="py-name"><a title="apiclient.schema" class="py-name" href="#" onclick="return doclink('link-68', 'schema', 'link-35');">schema</a></tt> <tt class="py-op">=</tt> <tt id="link-69" class="py-name"><a title="apiclient.schema.Schemas" class="py-name" href="#" onclick="return doclink('link-69', 'Schemas', 'link-36');">Schemas</a></tt><tt class="py-op">(</tt><tt class="py-name">service</tt><tt class="py-op">)</tt> </tt>
+oauth2client.client.Storage.get" class="py-name" href="#" onclick="return doclink('link-70', 'get', 'link-70');">get</a></tt><tt class="py-op">(</tt><tt class="py-string">'features'</tt><tt class="py-op">,</tt> <tt class="py-op">[</tt><tt class="py-op">]</tt><tt class="py-op">)</tt> </tt>
+<a name="L246"></a><tt class="py-lineno">246</tt> <tt class="py-line"> <tt id="link-71" class="py-name"><a title="apiclient.model" class="py-name" href="#" onclick="return doclink('link-71', 'model', 'link-29');">model</a></tt> <tt class="py-op">=</tt> <tt id="link-72" class="py-name"><a title="apiclient.model.JsonModel" class="py-name" href="#" onclick="return doclink('link-72', 'JsonModel', 'link-30');">JsonModel</a></tt><tt class="py-op">(</tt><tt class="py-string">'dataWrapper'</tt> <tt class="py-keyword">in</tt> <tt class="py-name">features</tt><tt class="py-op">)</tt> </tt>
+<a name="L247"></a><tt class="py-lineno">247</tt> <tt class="py-line"> <tt class="py-name">resource</tt> <tt class="py-op">=</tt> <tt id="link-73" class="py-name" targets="Function apiclient.discovery.createResource()=apiclient.discovery-module.html#createResource"><a title="apiclient.discovery.createResource" class="py-name" href="#" onclick="return doclink('link-73', 'createResource', 'link-73');">createResource</a></tt><tt class="py-op">(</tt><tt id="link-74" class="py-name"><a title="apiclient.http
+oauth2client.appengine.OAuth2Decorator.http" class="py-name" href="#" onclick="return doclink('link-74', 'http', 'link-20');">http</a></tt><tt class="py-op">,</tt> <tt class="py-name">base</tt><tt class="py-op">,</tt> <tt id="link-75" class="py-name"><a title="apiclient.model" class="py-name" href="#" onclick="return doclink('link-75', 'model', 'link-29');">model</a></tt><tt class="py-op">,</tt> <tt class="py-name">requestBuilder</tt><tt class="py-op">,</tt> <tt class="py-name">developerKey</tt><tt class="py-op">,</tt> </tt>
+<a name="L248"></a><tt class="py-lineno">248</tt> <tt class="py-line"> <tt class="py-name">service</tt><tt class="py-op">,</tt> <tt class="py-name">service</tt><tt class="py-op">,</tt> <tt id="link-76" class="py-name"><a title="apiclient.schema" class="py-name" href="#" onclick="return doclink('link-76', 'schema', 'link-35');">schema</a></tt><tt class="py-op">)</tt> </tt>
<a name="L249"></a><tt class="py-lineno">249</tt> <tt class="py-line"> </tt>
-<a name="L250"></a><tt class="py-lineno">250</tt> <tt class="py-line"> <tt class="py-keyword">if</tt> <tt id="link-70" class="py-name"><a title="apiclient.model" class="py-name" href="#" onclick="return doclink('link-70', 'model', 'link-29');">model</a></tt> <tt class="py-keyword">is</tt> <tt class="py-name">None</tt><tt class="py-op">:</tt> </tt>
-<a name="L251"></a><tt class="py-lineno">251</tt> <tt class="py-line"> <tt class="py-name">features</tt> <tt class="py-op">=</tt> <tt class="py-name">service</tt><tt class="py-op">.</tt><tt id="link-71" class="py-name"><a title="apiclient.schema.Schemas.get
+<a name="L250"></a><tt class="py-lineno">250</tt> <tt class="py-line"> <tt class="py-keyword">return</tt> <tt class="py-name">resource</tt> </tt>
+</div><a name="L251"></a><tt class="py-lineno">251</tt> <tt class="py-line"> </tt>
+<a name="L252"></a><tt class="py-lineno">252</tt> <tt class="py-line"> </tt>
+<a name="_cast"></a><div id="_cast-def"><a name="L253"></a><tt class="py-lineno">253</tt> <a class="py-toggle" href="#" id="_cast-toggle" onclick="return toggle('_cast');">-</a><tt class="py-line"><tt class="py-keyword">def</tt> <a class="py-def-name" href="apiclient.discovery-module.html#_cast">_cast</a><tt class="py-op">(</tt><tt class="py-param">value</tt><tt class="py-op">,</tt> <tt class="py-param">schema_type</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+</div><div id="_cast-collapsed" style="display:none;" pad="+++" indent="++++"></div><div id="_cast-expanded"><a name="L254"></a><tt class="py-lineno">254</tt> <tt class="py-line"> <tt class="py-docstring">"""Convert value to a string based on JSON Schema type.</tt> </tt>
+<a name="L255"></a><tt class="py-lineno">255</tt> <tt class="py-line"><tt class="py-docstring"></tt> </tt>
+<a name="L256"></a><tt class="py-lineno">256</tt> <tt class="py-line"><tt class="py-docstring"> See http://tools.ietf.org/html/draft-zyp-json-schema-03 for more details on</tt> </tt>
+<a name="L257"></a><tt class="py-lineno">257</tt> <tt class="py-line"><tt class="py-docstring"> JSON Schema.</tt> </tt>
+<a name="L258"></a><tt class="py-lineno">258</tt> <tt class="py-line"><tt class="py-docstring"></tt> </tt>
+<a name="L259"></a><tt class="py-lineno">259</tt> <tt class="py-line"><tt class="py-docstring"> Args:</tt> </tt>
+<a name="L260"></a><tt class="py-lineno">260</tt> <tt class="py-line"><tt class="py-docstring"> value: any, the value to convert</tt> </tt>
+<a name="L261"></a><tt class="py-lineno">261</tt> <tt class="py-line"><tt class="py-docstring"> schema_type: string, the type that value should be interpreted as</tt> </tt>
+<a name="L262"></a><tt class="py-lineno">262</tt> <tt class="py-line"><tt class="py-docstring"></tt> </tt>
+<a name="L263"></a><tt class="py-lineno">263</tt> <tt class="py-line"><tt class="py-docstring"> Returns:</tt> </tt>
+<a name="L264"></a><tt class="py-lineno">264</tt> <tt class="py-line"><tt class="py-docstring"> A string representation of 'value' based on the schema_type.</tt> </tt>
+<a name="L265"></a><tt class="py-lineno">265</tt> <tt class="py-line"><tt class="py-docstring"> """</tt> </tt>
+<a name="L266"></a><tt class="py-lineno">266</tt> <tt class="py-line"> <tt class="py-keyword">if</tt> <tt class="py-name">schema_type</tt> <tt class="py-op">==</tt> <tt class="py-string">'string'</tt><tt class="py-op">:</tt> </tt>
+<a name="L267"></a><tt class="py-lineno">267</tt> <tt class="py-line"> <tt class="py-keyword">if</tt> <tt class="py-name">type</tt><tt class="py-op">(</tt><tt class="py-name">value</tt><tt class="py-op">)</tt> <tt class="py-op">==</tt> <tt class="py-name">type</tt><tt class="py-op">(</tt><tt class="py-string">''</tt><tt class="py-op">)</tt> <tt class="py-keyword">or</tt> <tt class="py-name">type</tt><tt class="py-op">(</tt><tt class="py-name">value</tt><tt class="py-op">)</tt> <tt class="py-op">==</tt> <tt class="py-name">type</tt><tt class="py-op">(</tt><tt class="py-string">u''</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+<a name="L268"></a><tt class="py-lineno">268</tt> <tt class="py-line"> <tt class="py-keyword">return</tt> <tt class="py-name">value</tt> </tt>
+<a name="L269"></a><tt class="py-lineno">269</tt> <tt class="py-line"> <tt class="py-keyword">else</tt><tt class="py-op">:</tt> </tt>
+<a name="L270"></a><tt class="py-lineno">270</tt> <tt class="py-line"> <tt class="py-keyword">return</tt> <tt class="py-name">str</tt><tt class="py-op">(</tt><tt class="py-name">value</tt><tt class="py-op">)</tt> </tt>
+<a name="L271"></a><tt class="py-lineno">271</tt> <tt class="py-line"> <tt class="py-keyword">elif</tt> <tt class="py-name">schema_type</tt> <tt class="py-op">==</tt> <tt class="py-string">'integer'</tt><tt class="py-op">:</tt> </tt>
+<a name="L272"></a><tt class="py-lineno">272</tt> <tt class="py-line"> <tt class="py-keyword">return</tt> <tt class="py-name">str</tt><tt class="py-op">(</tt><tt class="py-name">int</tt><tt class="py-op">(</tt><tt class="py-name">value</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
+<a name="L273"></a><tt class="py-lineno">273</tt> <tt class="py-line"> <tt class="py-keyword">elif</tt> <tt class="py-name">schema_type</tt> <tt class="py-op">==</tt> <tt class="py-string">'number'</tt><tt class="py-op">:</tt> </tt>
+<a name="L274"></a><tt class="py-lineno">274</tt> <tt class="py-line"> <tt class="py-keyword">return</tt> <tt class="py-name">str</tt><tt class="py-op">(</tt><tt class="py-name">float</tt><tt class="py-op">(</tt><tt class="py-name">value</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
+<a name="L275"></a><tt class="py-lineno">275</tt> <tt class="py-line"> <tt class="py-keyword">elif</tt> <tt class="py-name">schema_type</tt> <tt class="py-op">==</tt> <tt class="py-string">'boolean'</tt><tt class="py-op">:</tt> </tt>
+<a name="L276"></a><tt class="py-lineno">276</tt> <tt class="py-line"> <tt class="py-keyword">return</tt> <tt class="py-name">str</tt><tt class="py-op">(</tt><tt class="py-name">bool</tt><tt class="py-op">(</tt><tt class="py-name">value</tt><tt class="py-op">)</tt><tt class="py-op">)</tt><tt class="py-op">.</tt><tt class="py-name">lower</tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
+<a name="L277"></a><tt class="py-lineno">277</tt> <tt class="py-line"> <tt class="py-keyword">else</tt><tt class="py-op">:</tt> </tt>
+<a name="L278"></a><tt class="py-lineno">278</tt> <tt class="py-line"> <tt class="py-keyword">if</tt> <tt class="py-name">type</tt><tt class="py-op">(</tt><tt class="py-name">value</tt><tt class="py-op">)</tt> <tt class="py-op">==</tt> <tt class="py-name">type</tt><tt class="py-op">(</tt><tt class="py-string">''</tt><tt class="py-op">)</tt> <tt class="py-keyword">or</tt> <tt class="py-name">type</tt><tt class="py-op">(</tt><tt class="py-name">value</tt><tt class="py-op">)</tt> <tt class="py-op">==</tt> <tt class="py-name">type</tt><tt class="py-op">(</tt><tt class="py-string">u''</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+<a name="L279"></a><tt class="py-lineno">279</tt> <tt class="py-line"> <tt class="py-keyword">return</tt> <tt class="py-name">value</tt> </tt>
+<a name="L280"></a><tt class="py-lineno">280</tt> <tt class="py-line"> <tt class="py-keyword">else</tt><tt class="py-op">:</tt> </tt>
+<a name="L281"></a><tt class="py-lineno">281</tt> <tt class="py-line"> <tt class="py-keyword">return</tt> <tt class="py-name">str</tt><tt class="py-op">(</tt><tt class="py-name">value</tt><tt class="py-op">)</tt> </tt>
+</div><a name="L282"></a><tt class="py-lineno">282</tt> <tt class="py-line"> </tt>
+<a name="L283"></a><tt class="py-lineno">283</tt> <tt class="py-line"> </tt>
+<a name="L284"></a><tt class="py-lineno">284</tt> <tt class="py-line"><tt id="link-77" class="py-name" targets="Variable apiclient.discovery.MULTIPLIERS=apiclient.discovery-module.html#MULTIPLIERS"><a title="apiclient.discovery.MULTIPLIERS" class="py-name" href="#" onclick="return doclink('link-77', 'MULTIPLIERS', 'link-77');">MULTIPLIERS</a></tt> <tt class="py-op">=</tt> <tt class="py-op">{</tt> </tt>
+<a name="L285"></a><tt class="py-lineno">285</tt> <tt class="py-line"> <tt class="py-string">"KB"</tt><tt class="py-op">:</tt> <tt class="py-number">2</tt> <tt class="py-op">**</tt> <tt class="py-number">10</tt><tt class="py-op">,</tt> </tt>
+<a name="L286"></a><tt class="py-lineno">286</tt> <tt class="py-line"> <tt class="py-string">"MB"</tt><tt class="py-op">:</tt> <tt class="py-number">2</tt> <tt class="py-op">**</tt> <tt class="py-number">20</tt><tt class="py-op">,</tt> </tt>
+<a name="L287"></a><tt class="py-lineno">287</tt> <tt class="py-line"> <tt class="py-string">"GB"</tt><tt class="py-op">:</tt> <tt class="py-number">2</tt> <tt class="py-op">**</tt> <tt class="py-number">30</tt><tt class="py-op">,</tt> </tt>
+<a name="L288"></a><tt class="py-lineno">288</tt> <tt class="py-line"> <tt class="py-string">"TB"</tt><tt class="py-op">:</tt> <tt class="py-number">2</tt> <tt class="py-op">**</tt> <tt class="py-number">40</tt><tt class="py-op">,</tt> </tt>
+<a name="L289"></a><tt class="py-lineno">289</tt> <tt class="py-line"> <tt class="py-op">}</tt> </tt>
+<a name="L290"></a><tt class="py-lineno">290</tt> <tt class="py-line"> </tt>
+<a name="L291"></a><tt class="py-lineno">291</tt> <tt class="py-line"> </tt>
+<a name="_media_size_to_long"></a><div id="_media_size_to_long-def"><a name="L292"></a><tt class="py-lineno">292</tt> <a class="py-toggle" href="#" id="_media_size_to_long-toggle" onclick="return toggle('_media_size_to_long');">-</a><tt class="py-line"><tt class="py-keyword">def</tt> <a class="py-def-name" href="apiclient.discovery-module.html#_media_size_to_long">_media_size_to_long</a><tt class="py-op">(</tt><tt class="py-param">maxSize</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+</div><div id="_media_size_to_long-collapsed" style="display:none;" pad="+++" indent="++++"></div><div id="_media_size_to_long-expanded"><a name="L293"></a><tt class="py-lineno">293</tt> <tt class="py-line"> <tt class="py-docstring">"""Convert a string media size, such as 10GB or 3TB into an integer.</tt> </tt>
+<a name="L294"></a><tt class="py-lineno">294</tt> <tt class="py-line"><tt class="py-docstring"></tt> </tt>
+<a name="L295"></a><tt class="py-lineno">295</tt> <tt class="py-line"><tt class="py-docstring"> Args:</tt> </tt>
+<a name="L296"></a><tt class="py-lineno">296</tt> <tt class="py-line"><tt class="py-docstring"> maxSize: string, size as a string, such as 2MB or 7GB.</tt> </tt>
+<a name="L297"></a><tt class="py-lineno">297</tt> <tt class="py-line"><tt class="py-docstring"></tt> </tt>
+<a name="L298"></a><tt class="py-lineno">298</tt> <tt class="py-line"><tt class="py-docstring"> Returns:</tt> </tt>
+<a name="L299"></a><tt class="py-lineno">299</tt> <tt class="py-line"><tt class="py-docstring"> The size as an integer value.</tt> </tt>
+<a name="L300"></a><tt class="py-lineno">300</tt> <tt class="py-line"><tt class="py-docstring"> """</tt> </tt>
+<a name="L301"></a><tt class="py-lineno">301</tt> <tt class="py-line"> <tt class="py-keyword">if</tt> <tt class="py-name">len</tt><tt class="py-op">(</tt><tt class="py-name">maxSize</tt><tt class="py-op">)</tt> <tt class="py-op"><</tt> <tt class="py-number">2</tt><tt class="py-op">:</tt> </tt>
+<a name="L302"></a><tt class="py-lineno">302</tt> <tt class="py-line"> <tt class="py-keyword">return</tt> <tt class="py-number">0</tt> </tt>
+<a name="L303"></a><tt class="py-lineno">303</tt> <tt class="py-line"> <tt class="py-name">units</tt> <tt class="py-op">=</tt> <tt class="py-name">maxSize</tt><tt class="py-op">[</tt><tt class="py-op">-</tt><tt class="py-number">2</tt><tt class="py-op">:</tt><tt class="py-op">]</tt><tt class="py-op">.</tt><tt class="py-name">upper</tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
+<a name="L304"></a><tt class="py-lineno">304</tt> <tt class="py-line"> <tt class="py-name">multiplier</tt> <tt class="py-op">=</tt> <tt id="link-78" class="py-name"><a title="apiclient.discovery.MULTIPLIERS" class="py-name" href="#" onclick="return doclink('link-78', 'MULTIPLIERS', 'link-77');">MULTIPLIERS</a></tt><tt class="py-op">.</tt><tt id="link-79" 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-71', 'get', 'link-67');">get</a></tt><tt class="py-op">(</tt><tt class="py-string">'features'</tt><tt class="py-op">,</tt> <tt class="py-op">[</tt><tt class="py-op">]</tt><tt class="py-op">)</tt> </tt>
-<a name="L252"></a><tt class="py-lineno">252</tt> <tt class="py-line"> <tt id="link-72" class="py-name"><a title="apiclient.model" class="py-name" href="#" onclick="return doclink('link-72', 'model', 'link-29');">model</a></tt> <tt class="py-op">=</tt> <tt id="link-73" class="py-name"><a title="apiclient.model.JsonModel" class="py-name" href="#" onclick="return doclink('link-73', 'JsonModel', 'link-30');">JsonModel</a></tt><tt class="py-op">(</tt><tt class="py-string">'dataWrapper'</tt> <tt class="py-keyword">in</tt> <tt class="py-name">features</tt><tt class="py-op">)</tt> </tt>
-<a name="L253"></a><tt class="py-lineno">253</tt> <tt class="py-line"> <tt class="py-name">resource</tt> <tt class="py-op">=</tt> <tt id="link-74" class="py-name" targets="Function apiclient.discovery.createResource()=apiclient.discovery-module.html#createResource"><a title="apiclient.discovery.createResource" class="py-name" href="#" onclick="return doclink('link-74', 'createResource', 'link-74');">createResource</a></tt><tt class="py-op">(</tt><tt id="link-75" class="py-name"><a title="apiclient.http
-oauth2client.appengine.OAuth2Decorator.http" class="py-name" href="#" onclick="return doclink('link-75', 'http', 'link-20');">http</a></tt><tt class="py-op">,</tt> <tt class="py-name">base</tt><tt class="py-op">,</tt> <tt id="link-76" class="py-name"><a title="apiclient.model" class="py-name" href="#" onclick="return doclink('link-76', 'model', 'link-29');">model</a></tt><tt class="py-op">,</tt> <tt class="py-name">requestBuilder</tt><tt class="py-op">,</tt> <tt class="py-name">developerKey</tt><tt class="py-op">,</tt> </tt>
-<a name="L254"></a><tt class="py-lineno">254</tt> <tt class="py-line"> <tt class="py-name">service</tt><tt class="py-op">,</tt> <tt class="py-name">future</tt><tt class="py-op">,</tt> <tt id="link-77" class="py-name"><a title="apiclient.schema" class="py-name" href="#" onclick="return doclink('link-77', 'schema', 'link-35');">schema</a></tt><tt class="py-op">)</tt> </tt>
-<a name="L255"></a><tt class="py-lineno">255</tt> <tt class="py-line"> </tt>
-<a name="L256"></a><tt class="py-lineno">256</tt> <tt class="py-line"> <tt class="py-keyword">def</tt> <tt class="py-def-name">auth_method</tt><tt class="py-op">(</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-<a name="L257"></a><tt class="py-lineno">257</tt> <tt class="py-line"> <tt class="py-docstring">"""Discovery information about the authentication the API uses."""</tt> </tt>
-<a name="L258"></a><tt class="py-lineno">258</tt> <tt class="py-line"> <tt class="py-keyword">return</tt> <tt class="py-name">auth_discovery</tt> </tt>
-</div><a name="L259"></a><tt class="py-lineno">259</tt> <tt class="py-line"> </tt>
-<a name="L260"></a><tt class="py-lineno">260</tt> <tt class="py-line"> <tt class="py-name">setattr</tt><tt class="py-op">(</tt><tt class="py-name">resource</tt><tt class="py-op">,</tt> <tt class="py-string">'auth_discovery'</tt><tt class="py-op">,</tt> <tt class="py-name">auth_method</tt><tt class="py-op">)</tt> </tt>
-<a name="L261"></a><tt class="py-lineno">261</tt> <tt class="py-line"> </tt>
-<a name="L262"></a><tt class="py-lineno">262</tt> <tt class="py-line"> <tt class="py-keyword">return</tt> <tt class="py-name">resource</tt> </tt>
-</div><a name="L263"></a><tt class="py-lineno">263</tt> <tt class="py-line"> </tt>
-<a name="L264"></a><tt class="py-lineno">264</tt> <tt class="py-line"> </tt>
-<a name="_cast"></a><div id="_cast-def"><a name="L265"></a><tt class="py-lineno">265</tt> <a class="py-toggle" href="#" id="_cast-toggle" onclick="return toggle('_cast');">-</a><tt class="py-line"><tt class="py-keyword">def</tt> <a class="py-def-name" href="apiclient.discovery-module.html#_cast">_cast</a><tt class="py-op">(</tt><tt class="py-param">value</tt><tt class="py-op">,</tt> <tt class="py-param">schema_type</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-</div><div id="_cast-collapsed" style="display:none;" pad="+++" indent="++++"></div><div id="_cast-expanded"><a name="L266"></a><tt class="py-lineno">266</tt> <tt class="py-line"> <tt class="py-docstring">"""Convert value to a string based on JSON Schema type.</tt> </tt>
-<a name="L267"></a><tt class="py-lineno">267</tt> <tt class="py-line"><tt class="py-docstring"></tt> </tt>
-<a name="L268"></a><tt class="py-lineno">268</tt> <tt class="py-line"><tt class="py-docstring"> See http://tools.ietf.org/html/draft-zyp-json-schema-03 for more details on</tt> </tt>
-<a name="L269"></a><tt class="py-lineno">269</tt> <tt class="py-line"><tt class="py-docstring"> JSON Schema.</tt> </tt>
-<a name="L270"></a><tt class="py-lineno">270</tt> <tt class="py-line"><tt class="py-docstring"></tt> </tt>
-<a name="L271"></a><tt class="py-lineno">271</tt> <tt class="py-line"><tt class="py-docstring"> Args:</tt> </tt>
-<a name="L272"></a><tt class="py-lineno">272</tt> <tt class="py-line"><tt class="py-docstring"> value: any, the value to convert</tt> </tt>
-<a name="L273"></a><tt class="py-lineno">273</tt> <tt class="py-line"><tt class="py-docstring"> schema_type: string, the type that value should be interpreted as</tt> </tt>
-<a name="L274"></a><tt class="py-lineno">274</tt> <tt class="py-line"><tt class="py-docstring"></tt> </tt>
-<a name="L275"></a><tt class="py-lineno">275</tt> <tt class="py-line"><tt class="py-docstring"> Returns:</tt> </tt>
-<a name="L276"></a><tt class="py-lineno">276</tt> <tt class="py-line"><tt class="py-docstring"> A string representation of 'value' based on the schema_type.</tt> </tt>
-<a name="L277"></a><tt class="py-lineno">277</tt> <tt class="py-line"><tt class="py-docstring"> """</tt> </tt>
-<a name="L278"></a><tt class="py-lineno">278</tt> <tt class="py-line"> <tt class="py-keyword">if</tt> <tt class="py-name">schema_type</tt> <tt class="py-op">==</tt> <tt class="py-string">'string'</tt><tt class="py-op">:</tt> </tt>
-<a name="L279"></a><tt class="py-lineno">279</tt> <tt class="py-line"> <tt class="py-keyword">if</tt> <tt class="py-name">type</tt><tt class="py-op">(</tt><tt class="py-name">value</tt><tt class="py-op">)</tt> <tt class="py-op">==</tt> <tt class="py-name">type</tt><tt class="py-op">(</tt><tt class="py-string">''</tt><tt class="py-op">)</tt> <tt class="py-keyword">or</tt> <tt class="py-name">type</tt><tt class="py-op">(</tt><tt class="py-name">value</tt><tt class="py-op">)</tt> <tt class="py-op">==</tt> <tt class="py-name">type</tt><tt class="py-op">(</tt><tt class="py-string">u''</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-<a name="L280"></a><tt class="py-lineno">280</tt> <tt class="py-line"> <tt class="py-keyword">return</tt> <tt class="py-name">value</tt> </tt>
-<a name="L281"></a><tt class="py-lineno">281</tt> <tt class="py-line"> <tt class="py-keyword">else</tt><tt class="py-op">:</tt> </tt>
-<a name="L282"></a><tt class="py-lineno">282</tt> <tt class="py-line"> <tt class="py-keyword">return</tt> <tt class="py-name">str</tt><tt class="py-op">(</tt><tt class="py-name">value</tt><tt class="py-op">)</tt> </tt>
-<a name="L283"></a><tt class="py-lineno">283</tt> <tt class="py-line"> <tt class="py-keyword">elif</tt> <tt class="py-name">schema_type</tt> <tt class="py-op">==</tt> <tt class="py-string">'integer'</tt><tt class="py-op">:</tt> </tt>
-<a name="L284"></a><tt class="py-lineno">284</tt> <tt class="py-line"> <tt class="py-keyword">return</tt> <tt class="py-name">str</tt><tt class="py-op">(</tt><tt class="py-name">int</tt><tt class="py-op">(</tt><tt class="py-name">value</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
-<a name="L285"></a><tt class="py-lineno">285</tt> <tt class="py-line"> <tt class="py-keyword">elif</tt> <tt class="py-name">schema_type</tt> <tt class="py-op">==</tt> <tt class="py-string">'number'</tt><tt class="py-op">:</tt> </tt>
-<a name="L286"></a><tt class="py-lineno">286</tt> <tt class="py-line"> <tt class="py-keyword">return</tt> <tt class="py-name">str</tt><tt class="py-op">(</tt><tt class="py-name">float</tt><tt class="py-op">(</tt><tt class="py-name">value</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
-<a name="L287"></a><tt class="py-lineno">287</tt> <tt class="py-line"> <tt class="py-keyword">elif</tt> <tt class="py-name">schema_type</tt> <tt class="py-op">==</tt> <tt class="py-string">'boolean'</tt><tt class="py-op">:</tt> </tt>
-<a name="L288"></a><tt class="py-lineno">288</tt> <tt class="py-line"> <tt class="py-keyword">return</tt> <tt class="py-name">str</tt><tt class="py-op">(</tt><tt class="py-name">bool</tt><tt class="py-op">(</tt><tt class="py-name">value</tt><tt class="py-op">)</tt><tt class="py-op">)</tt><tt class="py-op">.</tt><tt class="py-name">lower</tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
-<a name="L289"></a><tt class="py-lineno">289</tt> <tt class="py-line"> <tt class="py-keyword">else</tt><tt class="py-op">:</tt> </tt>
-<a name="L290"></a><tt class="py-lineno">290</tt> <tt class="py-line"> <tt class="py-keyword">if</tt> <tt class="py-name">type</tt><tt class="py-op">(</tt><tt class="py-name">value</tt><tt class="py-op">)</tt> <tt class="py-op">==</tt> <tt class="py-name">type</tt><tt class="py-op">(</tt><tt class="py-string">''</tt><tt class="py-op">)</tt> <tt class="py-keyword">or</tt> <tt class="py-name">type</tt><tt class="py-op">(</tt><tt class="py-name">value</tt><tt class="py-op">)</tt> <tt class="py-op">==</tt> <tt class="py-name">type</tt><tt class="py-op">(</tt><tt class="py-string">u''</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-<a name="L291"></a><tt class="py-lineno">291</tt> <tt class="py-line"> <tt class="py-keyword">return</tt> <tt class="py-name">value</tt> </tt>
-<a name="L292"></a><tt class="py-lineno">292</tt> <tt class="py-line"> <tt class="py-keyword">else</tt><tt class="py-op">:</tt> </tt>
-<a name="L293"></a><tt class="py-lineno">293</tt> <tt class="py-line"> <tt class="py-keyword">return</tt> <tt class="py-name">str</tt><tt class="py-op">(</tt><tt class="py-name">value</tt><tt class="py-op">)</tt> </tt>
-</div><a name="L294"></a><tt class="py-lineno">294</tt> <tt class="py-line"> </tt>
-<a name="L295"></a><tt class="py-lineno">295</tt> <tt class="py-line"><tt id="link-78" class="py-name" targets="Variable apiclient.discovery.MULTIPLIERS=apiclient.discovery-module.html#MULTIPLIERS"><a title="apiclient.discovery.MULTIPLIERS" class="py-name" href="#" onclick="return doclink('link-78', 'MULTIPLIERS', 'link-78');">MULTIPLIERS</a></tt> <tt class="py-op">=</tt> <tt class="py-op">{</tt> </tt>
-<a name="L296"></a><tt class="py-lineno">296</tt> <tt class="py-line"> <tt class="py-string">"KB"</tt><tt class="py-op">:</tt> <tt class="py-number">2</tt> <tt class="py-op">**</tt> <tt class="py-number">10</tt><tt class="py-op">,</tt> </tt>
-<a name="L297"></a><tt class="py-lineno">297</tt> <tt class="py-line"> <tt class="py-string">"MB"</tt><tt class="py-op">:</tt> <tt class="py-number">2</tt> <tt class="py-op">**</tt> <tt class="py-number">20</tt><tt class="py-op">,</tt> </tt>
-<a name="L298"></a><tt class="py-lineno">298</tt> <tt class="py-line"> <tt class="py-string">"GB"</tt><tt class="py-op">:</tt> <tt class="py-number">2</tt> <tt class="py-op">**</tt> <tt class="py-number">30</tt><tt class="py-op">,</tt> </tt>
-<a name="L299"></a><tt class="py-lineno">299</tt> <tt class="py-line"> <tt class="py-string">"TB"</tt><tt class="py-op">:</tt> <tt class="py-number">2</tt> <tt class="py-op">**</tt> <tt class="py-number">40</tt><tt class="py-op">,</tt> </tt>
-<a name="L300"></a><tt class="py-lineno">300</tt> <tt class="py-line"> <tt class="py-op">}</tt> </tt>
-<a name="L301"></a><tt class="py-lineno">301</tt> <tt class="py-line"> </tt>
-<a name="L302"></a><tt class="py-lineno">302</tt> <tt class="py-line"> </tt>
-<a name="_media_size_to_long"></a><div id="_media_size_to_long-def"><a name="L303"></a><tt class="py-lineno">303</tt> <a class="py-toggle" href="#" id="_media_size_to_long-toggle" onclick="return toggle('_media_size_to_long');">-</a><tt class="py-line"><tt class="py-keyword">def</tt> <a class="py-def-name" href="apiclient.discovery-module.html#_media_size_to_long">_media_size_to_long</a><tt class="py-op">(</tt><tt class="py-param">maxSize</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-</div><div id="_media_size_to_long-collapsed" style="display:none;" pad="+++" indent="++++"></div><div id="_media_size_to_long-expanded"><a name="L304"></a><tt class="py-lineno">304</tt> <tt class="py-line"> <tt class="py-docstring">"""Convert a string media size, such as 10GB or 3TB into an integer."""</tt> </tt>
-<a name="L305"></a><tt class="py-lineno">305</tt> <tt class="py-line"> <tt class="py-keyword">if</tt> <tt class="py-name">len</tt><tt class="py-op">(</tt><tt class="py-name">maxSize</tt><tt class="py-op">)</tt> <tt class="py-op"><</tt> <tt class="py-number">2</tt><tt class="py-op">:</tt> </tt>
-<a name="L306"></a><tt class="py-lineno">306</tt> <tt class="py-line"> <tt class="py-keyword">return</tt> <tt class="py-number">0</tt> </tt>
-<a name="L307"></a><tt class="py-lineno">307</tt> <tt class="py-line"> <tt class="py-name">units</tt> <tt class="py-op">=</tt> <tt class="py-name">maxSize</tt><tt class="py-op">[</tt><tt class="py-op">-</tt><tt class="py-number">2</tt><tt class="py-op">:</tt><tt class="py-op">]</tt><tt class="py-op">.</tt><tt class="py-name">upper</tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
-<a name="L308"></a><tt class="py-lineno">308</tt> <tt class="py-line"> <tt class="py-name">multiplier</tt> <tt class="py-op">=</tt> <tt id="link-79" class="py-name"><a title="apiclient.discovery.MULTIPLIERS" class="py-name" href="#" onclick="return doclink('link-79', 'MULTIPLIERS', 'link-78');">MULTIPLIERS</a></tt><tt class="py-op">.</tt><tt id="link-80" 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-80', 'get', 'link-67');">get</a></tt><tt class="py-op">(</tt><tt class="py-name">units</tt><tt class="py-op">,</tt> <tt class="py-number">0</tt><tt class="py-op">)</tt> </tt>
-<a name="L309"></a><tt class="py-lineno">309</tt> <tt class="py-line"> <tt class="py-keyword">if</tt> <tt class="py-name">multiplier</tt><tt class="py-op">:</tt> </tt>
-<a name="L310"></a><tt class="py-lineno">310</tt> <tt class="py-line"> <tt class="py-keyword">return</tt> <tt class="py-name">int</tt><tt class="py-op">(</tt><tt class="py-name">maxSize</tt><tt class="py-op">[</tt><tt class="py-op">:</tt><tt class="py-op">-</tt><tt class="py-number">2</tt><tt class="py-op">]</tt><tt class="py-op">)</tt> <tt class="py-op">*</tt> <tt class="py-name">multiplier</tt> </tt>
-<a name="L311"></a><tt class="py-lineno">311</tt> <tt class="py-line"> <tt class="py-keyword">else</tt><tt class="py-op">:</tt> </tt>
-<a name="L312"></a><tt class="py-lineno">312</tt> <tt class="py-line"> <tt class="py-keyword">return</tt> <tt class="py-name">int</tt><tt class="py-op">(</tt><tt class="py-name">maxSize</tt><tt class="py-op">)</tt> </tt>
-</div><a name="L313"></a><tt class="py-lineno">313</tt> <tt class="py-line"> </tt>
-<a name="L314"></a><tt class="py-lineno">314</tt> <tt class="py-line"> </tt>
-<a name="createResource"></a><div id="createResource-def"><a name="L315"></a><tt class="py-lineno">315</tt> <a class="py-toggle" href="#" id="createResource-toggle" onclick="return toggle('createResource');">-</a><tt class="py-line"><tt class="py-keyword">def</tt> <a class="py-def-name" href="apiclient.discovery-module.html#createResource">createResource</a><tt class="py-op">(</tt><tt class="py-param">http</tt><tt class="py-op">,</tt> <tt class="py-param">baseUrl</tt><tt class="py-op">,</tt> <tt class="py-param">model</tt><tt class="py-op">,</tt> <tt class="py-param">requestBuilder</tt><tt class="py-op">,</tt> </tt>
-<a name="L316"></a><tt class="py-lineno">316</tt> <tt class="py-line"> <tt class="py-param">developerKey</tt><tt class="py-op">,</tt> <tt class="py-param">resourceDesc</tt><tt class="py-op">,</tt> <tt class="py-param">futureDesc</tt><tt class="py-op">,</tt> <tt class="py-param">schema</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-</div><div id="createResource-collapsed" style="display:none;" pad="+++" indent="++++"></div><div id="createResource-expanded"><a name="L317"></a><tt class="py-lineno">317</tt> <tt class="py-line"> </tt>
-<a name="L318"></a><tt class="py-lineno">318</tt> <tt class="py-line"> <tt class="py-keyword">class</tt> <tt class="py-def-name">Resource</tt><tt class="py-op">(</tt><tt class="py-base-class">object</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-<a name="L319"></a><tt class="py-lineno">319</tt> <tt class="py-line"> <tt class="py-docstring">"""A class for interacting with a resource."""</tt> </tt>
-<a name="L320"></a><tt class="py-lineno">320</tt> <tt class="py-line"> </tt>
-<a name="L321"></a><tt class="py-lineno">321</tt> <tt class="py-line"> <tt class="py-keyword">def</tt> <tt class="py-def-name">__init__</tt><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-<a name="L322"></a><tt class="py-lineno">322</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">_http</tt> <tt class="py-op">=</tt> <tt id="link-81" class="py-name"><a title="apiclient.http
-oauth2client.appengine.OAuth2Decorator.http" class="py-name" href="#" onclick="return doclink('link-81', 'http', 'link-20');">http</a></tt> </tt>
-<a name="L323"></a><tt class="py-lineno">323</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">_baseUrl</tt> <tt class="py-op">=</tt> <tt class="py-name">baseUrl</tt> </tt>
-<a name="L324"></a><tt class="py-lineno">324</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">_model</tt> <tt class="py-op">=</tt> <tt id="link-82" class="py-name"><a title="apiclient.model" class="py-name" href="#" onclick="return doclink('link-82', 'model', 'link-29');">model</a></tt> </tt>
-<a name="L325"></a><tt class="py-lineno">325</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">_developerKey</tt> <tt class="py-op">=</tt> <tt class="py-name">developerKey</tt> </tt>
-<a name="L326"></a><tt class="py-lineno">326</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">_requestBuilder</tt> <tt class="py-op">=</tt> <tt class="py-name">requestBuilder</tt> </tt>
-</div></div><a name="L327"></a><tt class="py-lineno">327</tt> <tt class="py-line"> </tt>
-<a name="L328"></a><tt class="py-lineno">328</tt> <tt class="py-line"> <tt class="py-keyword">def</tt> <tt class="py-def-name">createMethod</tt><tt class="py-op">(</tt><tt class="py-param">theclass</tt><tt class="py-op">,</tt> <tt class="py-param">methodName</tt><tt class="py-op">,</tt> <tt class="py-param">methodDesc</tt><tt class="py-op">,</tt> <tt class="py-param">futureDesc</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-<a name="L329"></a><tt class="py-lineno">329</tt> <tt class="py-line"> <tt class="py-name">methodName</tt> <tt class="py-op">=</tt> <tt id="link-83" class="py-name" targets="Function apiclient.discovery._fix_method_name()=apiclient.discovery-module.html#_fix_method_name"><a title="apiclient.discovery._fix_method_name" class="py-name" href="#" onclick="return doclink('link-83', '_fix_method_name', 'link-83');">_fix_method_name</a></tt><tt class="py-op">(</tt><tt class="py-name">methodName</tt><tt class="py-op">)</tt> </tt>
-<a name="L330"></a><tt class="py-lineno">330</tt> <tt class="py-line"> <tt class="py-name">pathUrl</tt> <tt class="py-op">=</tt> <tt class="py-name">methodDesc</tt><tt class="py-op">[</tt><tt class="py-string">'path'</tt><tt class="py-op">]</tt> </tt>
-<a name="L331"></a><tt class="py-lineno">331</tt> <tt class="py-line"> <tt class="py-name">httpMethod</tt> <tt class="py-op">=</tt> <tt class="py-name">methodDesc</tt><tt class="py-op">[</tt><tt class="py-string">'httpMethod'</tt><tt class="py-op">]</tt> </tt>
-<a name="L332"></a><tt class="py-lineno">332</tt> <tt class="py-line"> <tt class="py-name">methodId</tt> <tt class="py-op">=</tt> <tt class="py-name">methodDesc</tt><tt class="py-op">[</tt><tt class="py-string">'id'</tt><tt class="py-op">]</tt> </tt>
-<a name="L333"></a><tt class="py-lineno">333</tt> <tt class="py-line"> </tt>
-<a name="L334"></a><tt class="py-lineno">334</tt> <tt class="py-line"> <tt class="py-name">mediaPathUrl</tt> <tt class="py-op">=</tt> <tt class="py-name">None</tt> </tt>
-<a name="L335"></a><tt class="py-lineno">335</tt> <tt class="py-line"> <tt id="link-84" class="py-name" targets="Variable apiclient.model.BaseModel.accept=apiclient.model.BaseModel-class.html#accept,Variable apiclient.model.JsonModel.accept=apiclient.model.JsonModel-class.html#accept,Variable apiclient.model.ProtocolBufferModel.accept=apiclient.model.ProtocolBufferModel-class.html#accept,Variable apiclient.model.RawModel.accept=apiclient.model.RawModel-class.html#accept"><a title="apiclient.model.BaseModel.accept
+oauth2client.client.Storage.get" class="py-name" href="#" onclick="return doclink('link-79', 'get', 'link-70');">get</a></tt><tt class="py-op">(</tt><tt class="py-name">units</tt><tt class="py-op">,</tt> <tt class="py-number">0</tt><tt class="py-op">)</tt> </tt>
+<a name="L305"></a><tt class="py-lineno">305</tt> <tt class="py-line"> <tt class="py-keyword">if</tt> <tt class="py-name">multiplier</tt><tt class="py-op">:</tt> </tt>
+<a name="L306"></a><tt class="py-lineno">306</tt> <tt class="py-line"> <tt class="py-keyword">return</tt> <tt class="py-name">int</tt><tt class="py-op">(</tt><tt class="py-name">maxSize</tt><tt class="py-op">[</tt><tt class="py-op">:</tt><tt class="py-op">-</tt><tt class="py-number">2</tt><tt class="py-op">]</tt><tt class="py-op">)</tt> <tt class="py-op">*</tt> <tt class="py-name">multiplier</tt> </tt>
+<a name="L307"></a><tt class="py-lineno">307</tt> <tt class="py-line"> <tt class="py-keyword">else</tt><tt class="py-op">:</tt> </tt>
+<a name="L308"></a><tt class="py-lineno">308</tt> <tt class="py-line"> <tt class="py-keyword">return</tt> <tt class="py-name">int</tt><tt class="py-op">(</tt><tt class="py-name">maxSize</tt><tt class="py-op">)</tt> </tt>
+</div><a name="L309"></a><tt class="py-lineno">309</tt> <tt class="py-line"> </tt>
+<a name="L310"></a><tt class="py-lineno">310</tt> <tt class="py-line"> </tt>
+<a name="createResource"></a><div id="createResource-def"><a name="L311"></a><tt class="py-lineno">311</tt> <a class="py-toggle" href="#" id="createResource-toggle" onclick="return toggle('createResource');">-</a><tt class="py-line"><tt class="py-keyword">def</tt> <a class="py-def-name" href="apiclient.discovery-module.html#createResource">createResource</a><tt class="py-op">(</tt><tt class="py-param">http</tt><tt class="py-op">,</tt> <tt class="py-param">baseUrl</tt><tt class="py-op">,</tt> <tt class="py-param">model</tt><tt class="py-op">,</tt> <tt class="py-param">requestBuilder</tt><tt class="py-op">,</tt> </tt>
+<a name="L312"></a><tt class="py-lineno">312</tt> <tt class="py-line"> <tt class="py-param">developerKey</tt><tt class="py-op">,</tt> <tt class="py-param">resourceDesc</tt><tt class="py-op">,</tt> <tt class="py-param">rootDesc</tt><tt class="py-op">,</tt> <tt class="py-param">schema</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+</div><div id="createResource-collapsed" style="display:none;" pad="+++" indent="++++"></div><div id="createResource-expanded"><a name="L313"></a><tt class="py-lineno">313</tt> <tt class="py-line"> <tt class="py-docstring">"""Build a Resource from the API description.</tt> </tt>
+<a name="L314"></a><tt class="py-lineno">314</tt> <tt class="py-line"><tt class="py-docstring"></tt> </tt>
+<a name="L315"></a><tt class="py-lineno">315</tt> <tt class="py-line"><tt class="py-docstring"> Args:</tt> </tt>
+<a name="L316"></a><tt class="py-lineno">316</tt> <tt class="py-line"><tt class="py-docstring"> http: httplib2.Http, Object to make http requests with.</tt> </tt>
+<a name="L317"></a><tt class="py-lineno">317</tt> <tt class="py-line"><tt class="py-docstring"> baseUrl: string, base URL for the API. All requests are relative to this</tt> </tt>
+<a name="L318"></a><tt class="py-lineno">318</tt> <tt class="py-line"><tt class="py-docstring"> URI.</tt> </tt>
+<a name="L319"></a><tt class="py-lineno">319</tt> <tt class="py-line"><tt class="py-docstring"> model: apiclient.Model, converts to and from the wire format.</tt> </tt>
+<a name="L320"></a><tt class="py-lineno">320</tt> <tt class="py-line"><tt class="py-docstring"> requestBuilder: class or callable that instantiates an</tt> </tt>
+<a name="L321"></a><tt class="py-lineno">321</tt> <tt class="py-line"><tt class="py-docstring"> apiclient.HttpRequest object.</tt> </tt>
+<a name="L322"></a><tt class="py-lineno">322</tt> <tt class="py-line"><tt class="py-docstring"> developerKey: string, key obtained from</tt> </tt>
+<a name="L323"></a><tt class="py-lineno">323</tt> <tt class="py-line"><tt class="py-docstring"> https://code.google.com/apis/console</tt> </tt>
+<a name="L324"></a><tt class="py-lineno">324</tt> <tt class="py-line"><tt class="py-docstring"> resourceDesc: object, section of deserialized discovery document that</tt> </tt>
+<a name="L325"></a><tt class="py-lineno">325</tt> <tt class="py-line"><tt class="py-docstring"> describes a resource. Note that the top level discovery document</tt> </tt>
+<a name="L326"></a><tt class="py-lineno">326</tt> <tt class="py-line"><tt class="py-docstring"> is considered a resource.</tt> </tt>
+<a name="L327"></a><tt class="py-lineno">327</tt> <tt class="py-line"><tt class="py-docstring"> rootDesc: object, the entire deserialized discovery document.</tt> </tt>
+<a name="L328"></a><tt class="py-lineno">328</tt> <tt class="py-line"><tt class="py-docstring"> schema: object, mapping of schema names to schema descriptions.</tt> </tt>
+<a name="L329"></a><tt class="py-lineno">329</tt> <tt class="py-line"><tt class="py-docstring"></tt> </tt>
+<a name="L330"></a><tt class="py-lineno">330</tt> <tt class="py-line"><tt class="py-docstring"> Returns:</tt> </tt>
+<a name="L331"></a><tt class="py-lineno">331</tt> <tt class="py-line"><tt class="py-docstring"> An instance of Resource with all the methods attached for interacting with</tt> </tt>
+<a name="L332"></a><tt class="py-lineno">332</tt> <tt class="py-line"><tt class="py-docstring"> that resource.</tt> </tt>
+<a name="L333"></a><tt class="py-lineno">333</tt> <tt class="py-line"><tt class="py-docstring"> """</tt> </tt>
+<a name="L334"></a><tt class="py-lineno">334</tt> <tt class="py-line"> </tt>
+<a name="L335"></a><tt class="py-lineno">335</tt> <tt class="py-line"> <tt class="py-keyword">class</tt> <tt class="py-def-name">Resource</tt><tt class="py-op">(</tt><tt class="py-base-class">object</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+<a name="L336"></a><tt class="py-lineno">336</tt> <tt class="py-line"> <tt class="py-docstring">"""A class for interacting with a resource."""</tt> </tt>
+<a name="L337"></a><tt class="py-lineno">337</tt> <tt class="py-line"> </tt>
+<a name="L338"></a><tt class="py-lineno">338</tt> <tt class="py-line"> <tt class="py-keyword">def</tt> <tt class="py-def-name">__init__</tt><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+<a name="L339"></a><tt class="py-lineno">339</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">_http</tt> <tt class="py-op">=</tt> <tt id="link-80" class="py-name"><a title="apiclient.http
+oauth2client.appengine.OAuth2Decorator.http" class="py-name" href="#" onclick="return doclink('link-80', 'http', 'link-20');">http</a></tt> </tt>
+<a name="L340"></a><tt class="py-lineno">340</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">_baseUrl</tt> <tt class="py-op">=</tt> <tt class="py-name">baseUrl</tt> </tt>
+<a name="L341"></a><tt class="py-lineno">341</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">_model</tt> <tt class="py-op">=</tt> <tt id="link-81" class="py-name"><a title="apiclient.model" class="py-name" href="#" onclick="return doclink('link-81', 'model', 'link-29');">model</a></tt> </tt>
+<a name="L342"></a><tt class="py-lineno">342</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">_developerKey</tt> <tt class="py-op">=</tt> <tt class="py-name">developerKey</tt> </tt>
+<a name="L343"></a><tt class="py-lineno">343</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">_requestBuilder</tt> <tt class="py-op">=</tt> <tt class="py-name">requestBuilder</tt> </tt>
+</div></div><a name="L344"></a><tt class="py-lineno">344</tt> <tt class="py-line"> </tt>
+<a name="L345"></a><tt class="py-lineno">345</tt> <tt class="py-line"> <tt class="py-keyword">def</tt> <tt class="py-def-name">createMethod</tt><tt class="py-op">(</tt><tt class="py-param">theclass</tt><tt class="py-op">,</tt> <tt class="py-param">methodName</tt><tt class="py-op">,</tt> <tt class="py-param">methodDesc</tt><tt class="py-op">,</tt> <tt class="py-param">rootDesc</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+<a name="L346"></a><tt class="py-lineno">346</tt> <tt class="py-line"> <tt class="py-docstring">"""Creates a method for attaching to a Resource.</tt> </tt>
+<a name="L347"></a><tt class="py-lineno">347</tt> <tt class="py-line"><tt class="py-docstring"></tt> </tt>
+<a name="L348"></a><tt class="py-lineno">348</tt> <tt class="py-line"><tt class="py-docstring"> Args:</tt> </tt>
+<a name="L349"></a><tt class="py-lineno">349</tt> <tt class="py-line"><tt class="py-docstring"> theclass: type, the class to attach methods to.</tt> </tt>
+<a name="L350"></a><tt class="py-lineno">350</tt> <tt class="py-line"><tt class="py-docstring"> methodName: string, name of the method to use.</tt> </tt>
+<a name="L351"></a><tt class="py-lineno">351</tt> <tt class="py-line"><tt class="py-docstring"> methodDesc: object, fragment of deserialized discovery document that</tt> </tt>
+<a name="L352"></a><tt class="py-lineno">352</tt> <tt class="py-line"><tt class="py-docstring"> describes the method.</tt> </tt>
+<a name="L353"></a><tt class="py-lineno">353</tt> <tt class="py-line"><tt class="py-docstring"> rootDesc: object, the entire deserialized discovery document.</tt> </tt>
+<a name="L354"></a><tt class="py-lineno">354</tt> <tt class="py-line"><tt class="py-docstring"> """</tt> </tt>
+<a name="L355"></a><tt class="py-lineno">355</tt> <tt class="py-line"> <tt class="py-name">methodName</tt> <tt class="py-op">=</tt> <tt id="link-82" class="py-name" targets="Function apiclient.discovery.fix_method_name()=apiclient.discovery-module.html#fix_method_name"><a title="apiclient.discovery.fix_method_name" class="py-name" href="#" onclick="return doclink('link-82', 'fix_method_name', 'link-82');">fix_method_name</a></tt><tt class="py-op">(</tt><tt class="py-name">methodName</tt><tt class="py-op">)</tt> </tt>
+<a name="L356"></a><tt class="py-lineno">356</tt> <tt class="py-line"> <tt class="py-name">pathUrl</tt> <tt class="py-op">=</tt> <tt class="py-name">methodDesc</tt><tt class="py-op">[</tt><tt class="py-string">'path'</tt><tt class="py-op">]</tt> </tt>
+<a name="L357"></a><tt class="py-lineno">357</tt> <tt class="py-line"> <tt class="py-name">httpMethod</tt> <tt class="py-op">=</tt> <tt class="py-name">methodDesc</tt><tt class="py-op">[</tt><tt class="py-string">'httpMethod'</tt><tt class="py-op">]</tt> </tt>
+<a name="L358"></a><tt class="py-lineno">358</tt> <tt class="py-line"> <tt class="py-name">methodId</tt> <tt class="py-op">=</tt> <tt class="py-name">methodDesc</tt><tt class="py-op">[</tt><tt class="py-string">'id'</tt><tt class="py-op">]</tt> </tt>
+<a name="L359"></a><tt class="py-lineno">359</tt> <tt class="py-line"> </tt>
+<a name="L360"></a><tt class="py-lineno">360</tt> <tt class="py-line"> <tt class="py-name">mediaPathUrl</tt> <tt class="py-op">=</tt> <tt class="py-name">None</tt> </tt>
+<a name="L361"></a><tt class="py-lineno">361</tt> <tt class="py-line"> <tt id="link-83" class="py-name" targets="Variable apiclient.model.BaseModel.accept=apiclient.model.BaseModel-class.html#accept,Variable apiclient.model.JsonModel.accept=apiclient.model.JsonModel-class.html#accept,Variable apiclient.model.ProtocolBufferModel.accept=apiclient.model.ProtocolBufferModel-class.html#accept,Variable apiclient.model.RawModel.accept=apiclient.model.RawModel-class.html#accept"><a title="apiclient.model.BaseModel.accept
apiclient.model.JsonModel.accept
apiclient.model.ProtocolBufferModel.accept
-apiclient.model.RawModel.accept" class="py-name" href="#" onclick="return doclink('link-84', 'accept', 'link-84');">accept</a></tt> <tt class="py-op">=</tt> <tt class="py-op">[</tt><tt class="py-op">]</tt> </tt>
-<a name="L336"></a><tt class="py-lineno">336</tt> <tt class="py-line"> <tt class="py-name">maxSize</tt> <tt class="py-op">=</tt> <tt class="py-number">0</tt> </tt>
-<a name="L337"></a><tt class="py-lineno">337</tt> <tt class="py-line"> <tt class="py-keyword">if</tt> <tt class="py-string">'mediaUpload'</tt> <tt class="py-keyword">in</tt> <tt class="py-name">methodDesc</tt><tt class="py-op">:</tt> </tt>
-<a name="L338"></a><tt class="py-lineno">338</tt> <tt class="py-line"> <tt class="py-name">mediaUpload</tt> <tt class="py-op">=</tt> <tt class="py-name">methodDesc</tt><tt class="py-op">[</tt><tt class="py-string">'mediaUpload'</tt><tt class="py-op">]</tt> </tt>
-<a name="L339"></a><tt class="py-lineno">339</tt> <tt class="py-line"> <tt class="py-comment"># TODO(jcgregorio) Use URLs from discovery once it is updated.</tt> </tt>
-<a name="L340"></a><tt class="py-lineno">340</tt> <tt class="py-line"> <tt class="py-name">parsed</tt> <tt class="py-op">=</tt> <tt class="py-name">list</tt><tt class="py-op">(</tt><tt class="py-name">urlparse</tt><tt class="py-op">.</tt><tt class="py-name">urlparse</tt><tt class="py-op">(</tt><tt class="py-name">baseUrl</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
-<a name="L341"></a><tt class="py-lineno">341</tt> <tt class="py-line"> <tt class="py-name">basePath</tt> <tt class="py-op">=</tt> <tt class="py-name">parsed</tt><tt class="py-op">[</tt><tt class="py-number">2</tt><tt class="py-op">]</tt> </tt>
-<a name="L342"></a><tt class="py-lineno">342</tt> <tt class="py-line"> <tt class="py-name">mediaPathUrl</tt> <tt class="py-op">=</tt> <tt class="py-string">'/upload'</tt> <tt class="py-op">+</tt> <tt class="py-name">basePath</tt> <tt class="py-op">+</tt> <tt class="py-name">pathUrl</tt> </tt>
-<a name="L343"></a><tt class="py-lineno">343</tt> <tt class="py-line"> <tt id="link-85" class="py-name"><a title="apiclient.model.BaseModel.accept
+apiclient.model.RawModel.accept" class="py-name" href="#" onclick="return doclink('link-83', 'accept', 'link-83');">accept</a></tt> <tt class="py-op">=</tt> <tt class="py-op">[</tt><tt class="py-op">]</tt> </tt>
+<a name="L362"></a><tt class="py-lineno">362</tt> <tt class="py-line"> <tt class="py-name">maxSize</tt> <tt class="py-op">=</tt> <tt class="py-number">0</tt> </tt>
+<a name="L363"></a><tt class="py-lineno">363</tt> <tt class="py-line"> <tt class="py-keyword">if</tt> <tt class="py-string">'mediaUpload'</tt> <tt class="py-keyword">in</tt> <tt class="py-name">methodDesc</tt><tt class="py-op">:</tt> </tt>
+<a name="L364"></a><tt class="py-lineno">364</tt> <tt class="py-line"> <tt class="py-name">mediaUpload</tt> <tt class="py-op">=</tt> <tt class="py-name">methodDesc</tt><tt class="py-op">[</tt><tt class="py-string">'mediaUpload'</tt><tt class="py-op">]</tt> </tt>
+<a name="L365"></a><tt class="py-lineno">365</tt> <tt class="py-line"> <tt class="py-comment"># TODO(jcgregorio) Use URLs from discovery once it is updated.</tt> </tt>
+<a name="L366"></a><tt class="py-lineno">366</tt> <tt class="py-line"> <tt class="py-name">parsed</tt> <tt class="py-op">=</tt> <tt class="py-name">list</tt><tt class="py-op">(</tt><tt class="py-name">urlparse</tt><tt class="py-op">.</tt><tt class="py-name">urlparse</tt><tt class="py-op">(</tt><tt class="py-name">baseUrl</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
+<a name="L367"></a><tt class="py-lineno">367</tt> <tt class="py-line"> <tt class="py-name">basePath</tt> <tt class="py-op">=</tt> <tt class="py-name">parsed</tt><tt class="py-op">[</tt><tt class="py-number">2</tt><tt class="py-op">]</tt> </tt>
+<a name="L368"></a><tt class="py-lineno">368</tt> <tt class="py-line"> <tt class="py-name">mediaPathUrl</tt> <tt class="py-op">=</tt> <tt class="py-string">'/upload'</tt> <tt class="py-op">+</tt> <tt class="py-name">basePath</tt> <tt class="py-op">+</tt> <tt class="py-name">pathUrl</tt> </tt>
+<a name="L369"></a><tt class="py-lineno">369</tt> <tt class="py-line"> <tt id="link-84" class="py-name"><a title="apiclient.model.BaseModel.accept
apiclient.model.JsonModel.accept
apiclient.model.ProtocolBufferModel.accept
-apiclient.model.RawModel.accept" class="py-name" href="#" onclick="return doclink('link-85', 'accept', 'link-84');">accept</a></tt> <tt class="py-op">=</tt> <tt class="py-name">mediaUpload</tt><tt class="py-op">[</tt><tt class="py-string">'accept'</tt><tt class="py-op">]</tt> </tt>
-<a name="L344"></a><tt class="py-lineno">344</tt> <tt class="py-line"> <tt class="py-name">maxSize</tt> <tt class="py-op">=</tt> <tt id="link-86" class="py-name" targets="Function apiclient.discovery._media_size_to_long()=apiclient.discovery-module.html#_media_size_to_long"><a title="apiclient.discovery._media_size_to_long" class="py-name" href="#" onclick="return doclink('link-86', '_media_size_to_long', 'link-86');">_media_size_to_long</a></tt><tt class="py-op">(</tt><tt class="py-name">mediaUpload</tt><tt class="py-op">.</tt><tt id="link-87" class="py-name"><a title="apiclient.schema.Schemas.get
+apiclient.model.RawModel.accept" class="py-name" href="#" onclick="return doclink('link-84', 'accept', 'link-83');">accept</a></tt> <tt class="py-op">=</tt> <tt class="py-name">mediaUpload</tt><tt class="py-op">[</tt><tt class="py-string">'accept'</tt><tt class="py-op">]</tt> </tt>
+<a name="L370"></a><tt class="py-lineno">370</tt> <tt class="py-line"> <tt class="py-name">maxSize</tt> <tt class="py-op">=</tt> <tt id="link-85" class="py-name" targets="Function apiclient.discovery._media_size_to_long()=apiclient.discovery-module.html#_media_size_to_long"><a title="apiclient.discovery._media_size_to_long" class="py-name" href="#" onclick="return doclink('link-85', '_media_size_to_long', 'link-85');">_media_size_to_long</a></tt><tt class="py-op">(</tt><tt class="py-name">mediaUpload</tt><tt class="py-op">.</tt><tt id="link-86" 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-87', 'get', 'link-67');">get</a></tt><tt class="py-op">(</tt><tt class="py-string">'maxSize'</tt><tt class="py-op">,</tt> <tt class="py-string">''</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
-<a name="L345"></a><tt class="py-lineno">345</tt> <tt class="py-line"> </tt>
-<a name="L346"></a><tt class="py-lineno">346</tt> <tt class="py-line"> <tt class="py-keyword">if</tt> <tt class="py-string">'parameters'</tt> <tt class="py-keyword">not</tt> <tt class="py-keyword">in</tt> <tt class="py-name">methodDesc</tt><tt class="py-op">:</tt> </tt>
-<a name="L347"></a><tt class="py-lineno">347</tt> <tt class="py-line"> <tt class="py-name">methodDesc</tt><tt class="py-op">[</tt><tt class="py-string">'parameters'</tt><tt class="py-op">]</tt> <tt class="py-op">=</tt> <tt class="py-op">{</tt><tt class="py-op">}</tt> </tt>
-<a name="L348"></a><tt class="py-lineno">348</tt> <tt class="py-line"> <tt class="py-keyword">for</tt> <tt class="py-name">name</tt> <tt class="py-keyword">in</tt> <tt id="link-88" class="py-name"><a title="apiclient.discovery.STACK_QUERY_PARAMETERS" class="py-name" href="#" onclick="return doclink('link-88', 'STACK_QUERY_PARAMETERS', 'link-44');">STACK_QUERY_PARAMETERS</a></tt><tt class="py-op">:</tt> </tt>
-<a name="L349"></a><tt class="py-lineno">349</tt> <tt class="py-line"> <tt class="py-name">methodDesc</tt><tt class="py-op">[</tt><tt class="py-string">'parameters'</tt><tt class="py-op">]</tt><tt class="py-op">[</tt><tt class="py-name">name</tt><tt class="py-op">]</tt> <tt class="py-op">=</tt> <tt class="py-op">{</tt> </tt>
-<a name="L350"></a><tt class="py-lineno">350</tt> <tt class="py-line"> <tt class="py-string">'type'</tt><tt class="py-op">:</tt> <tt class="py-string">'string'</tt><tt class="py-op">,</tt> </tt>
-<a name="L351"></a><tt class="py-lineno">351</tt> <tt class="py-line"> <tt class="py-string">'location'</tt><tt class="py-op">:</tt> <tt class="py-string">'query'</tt> </tt>
-<a name="L352"></a><tt class="py-lineno">352</tt> <tt class="py-line"> <tt class="py-op">}</tt> </tt>
-<a name="L353"></a><tt class="py-lineno">353</tt> <tt class="py-line"> </tt>
-<a name="L354"></a><tt class="py-lineno">354</tt> <tt class="py-line"> <tt class="py-keyword">if</tt> <tt class="py-name">httpMethod</tt> <tt class="py-keyword">in</tt> <tt class="py-op">[</tt><tt class="py-string">'PUT'</tt><tt class="py-op">,</tt> <tt class="py-string">'POST'</tt><tt class="py-op">,</tt> <tt class="py-string">'PATCH'</tt><tt class="py-op">]</tt> <tt class="py-keyword">and</tt> <tt class="py-string">'request'</tt> <tt class="py-keyword">in</tt> <tt class="py-name">methodDesc</tt><tt class="py-op">:</tt> </tt>
-<a name="L355"></a><tt class="py-lineno">355</tt> <tt class="py-line"> <tt class="py-name">methodDesc</tt><tt class="py-op">[</tt><tt class="py-string">'parameters'</tt><tt class="py-op">]</tt><tt class="py-op">[</tt><tt class="py-string">'body'</tt><tt class="py-op">]</tt> <tt class="py-op">=</tt> <tt class="py-op">{</tt> </tt>
-<a name="L356"></a><tt class="py-lineno">356</tt> <tt class="py-line"> <tt class="py-string">'description'</tt><tt class="py-op">:</tt> <tt class="py-string">'The request body.'</tt><tt class="py-op">,</tt> </tt>
-<a name="L357"></a><tt class="py-lineno">357</tt> <tt class="py-line"> <tt class="py-string">'type'</tt><tt class="py-op">:</tt> <tt class="py-string">'object'</tt><tt class="py-op">,</tt> </tt>
-<a name="L358"></a><tt class="py-lineno">358</tt> <tt class="py-line"> <tt class="py-string">'required'</tt><tt class="py-op">:</tt> <tt class="py-name">True</tt><tt class="py-op">,</tt> </tt>
-<a name="L359"></a><tt class="py-lineno">359</tt> <tt class="py-line"> <tt class="py-op">}</tt> </tt>
-<a name="L360"></a><tt class="py-lineno">360</tt> <tt class="py-line"> <tt class="py-keyword">if</tt> <tt class="py-string">'request'</tt> <tt class="py-keyword">in</tt> <tt class="py-name">methodDesc</tt><tt class="py-op">:</tt> </tt>
-<a name="L361"></a><tt class="py-lineno">361</tt> <tt class="py-line"> <tt class="py-name">methodDesc</tt><tt class="py-op">[</tt><tt class="py-string">'parameters'</tt><tt class="py-op">]</tt><tt class="py-op">[</tt><tt class="py-string">'body'</tt><tt class="py-op">]</tt><tt class="py-op">.</tt><tt class="py-name">update</tt><tt class="py-op">(</tt><tt class="py-name">methodDesc</tt><tt class="py-op">[</tt><tt class="py-string">'request'</tt><tt class="py-op">]</tt><tt class="py-op">)</tt> </tt>
-<a name="L362"></a><tt class="py-lineno">362</tt> <tt class="py-line"> <tt class="py-keyword">else</tt><tt class="py-op">:</tt> </tt>
-<a name="L363"></a><tt class="py-lineno">363</tt> <tt class="py-line"> <tt class="py-name">methodDesc</tt><tt class="py-op">[</tt><tt class="py-string">'parameters'</tt><tt class="py-op">]</tt><tt class="py-op">[</tt><tt class="py-string">'body'</tt><tt class="py-op">]</tt><tt class="py-op">[</tt><tt class="py-string">'type'</tt><tt class="py-op">]</tt> <tt class="py-op">=</tt> <tt class="py-string">'object'</tt> </tt>
-<a name="L364"></a><tt class="py-lineno">364</tt> <tt class="py-line"> <tt class="py-keyword">if</tt> <tt class="py-string">'mediaUpload'</tt> <tt class="py-keyword">in</tt> <tt class="py-name">methodDesc</tt><tt class="py-op">:</tt> </tt>
-<a name="L365"></a><tt class="py-lineno">365</tt> <tt class="py-line"> <tt class="py-name">methodDesc</tt><tt class="py-op">[</tt><tt class="py-string">'parameters'</tt><tt class="py-op">]</tt><tt class="py-op">[</tt><tt class="py-string">'media_body'</tt><tt class="py-op">]</tt> <tt class="py-op">=</tt> <tt class="py-op">{</tt> </tt>
-<a name="L366"></a><tt class="py-lineno">366</tt> <tt class="py-line"> <tt class="py-string">'description'</tt><tt class="py-op">:</tt> <tt class="py-string">'The filename of the media request body.'</tt><tt class="py-op">,</tt> </tt>
-<a name="L367"></a><tt class="py-lineno">367</tt> <tt class="py-line"> <tt class="py-string">'type'</tt><tt class="py-op">:</tt> <tt class="py-string">'string'</tt><tt class="py-op">,</tt> </tt>
-<a name="L368"></a><tt class="py-lineno">368</tt> <tt class="py-line"> <tt class="py-string">'required'</tt><tt class="py-op">:</tt> <tt class="py-name">False</tt><tt class="py-op">,</tt> </tt>
-<a name="L369"></a><tt class="py-lineno">369</tt> <tt class="py-line"> <tt class="py-op">}</tt> </tt>
-<a name="L370"></a><tt class="py-lineno">370</tt> <tt class="py-line"> <tt class="py-keyword">if</tt> <tt class="py-string">'body'</tt> <tt class="py-keyword">in</tt> <tt class="py-name">methodDesc</tt><tt class="py-op">[</tt><tt class="py-string">'parameters'</tt><tt class="py-op">]</tt><tt class="py-op">:</tt> </tt>
-<a name="L371"></a><tt class="py-lineno">371</tt> <tt class="py-line"> <tt class="py-name">methodDesc</tt><tt class="py-op">[</tt><tt class="py-string">'parameters'</tt><tt class="py-op">]</tt><tt class="py-op">[</tt><tt class="py-string">'body'</tt><tt class="py-op">]</tt><tt class="py-op">[</tt><tt class="py-string">'required'</tt><tt class="py-op">]</tt> <tt class="py-op">=</tt> <tt class="py-name">False</tt> </tt>
-<a name="L372"></a><tt class="py-lineno">372</tt> <tt class="py-line"> </tt>
-<a name="L373"></a><tt class="py-lineno">373</tt> <tt class="py-line"> <tt class="py-name">argmap</tt> <tt class="py-op">=</tt> <tt class="py-op">{</tt><tt class="py-op">}</tt> <tt class="py-comment"># Map from method parameter name to query parameter name</tt> </tt>
-<a name="L374"></a><tt class="py-lineno">374</tt> <tt class="py-line"> <tt class="py-name">required_params</tt> <tt class="py-op">=</tt> <tt class="py-op">[</tt><tt class="py-op">]</tt> <tt class="py-comment"># Required parameters</tt> </tt>
-<a name="L375"></a><tt class="py-lineno">375</tt> <tt class="py-line"> <tt class="py-name">repeated_params</tt> <tt class="py-op">=</tt> <tt class="py-op">[</tt><tt class="py-op">]</tt> <tt class="py-comment"># Repeated parameters</tt> </tt>
-<a name="L376"></a><tt class="py-lineno">376</tt> <tt class="py-line"> <tt class="py-name">pattern_params</tt> <tt class="py-op">=</tt> <tt class="py-op">{</tt><tt class="py-op">}</tt> <tt class="py-comment"># Parameters that must match a regex</tt> </tt>
-<a name="L377"></a><tt class="py-lineno">377</tt> <tt class="py-line"> <tt id="link-89" class="py-name" targets="Variable oauth2client.tools.ClientRedirectServer.query_params=oauth2client.tools.ClientRedirectServer-class.html#query_params"><a title="oauth2client.tools.ClientRedirectServer.query_params" class="py-name" href="#" onclick="return doclink('link-89', 'query_params', 'link-89');">query_params</a></tt> <tt class="py-op">=</tt> <tt class="py-op">[</tt><tt class="py-op">]</tt> <tt class="py-comment"># Parameters that will be used in the query string</tt> </tt>
-<a name="L378"></a><tt class="py-lineno">378</tt> <tt class="py-line"> <tt class="py-name">path_params</tt> <tt class="py-op">=</tt> <tt class="py-op">{</tt><tt class="py-op">}</tt> <tt class="py-comment"># Parameters that will be used in the base URL</tt> </tt>
-<a name="L379"></a><tt class="py-lineno">379</tt> <tt class="py-line"> <tt class="py-name">param_type</tt> <tt class="py-op">=</tt> <tt class="py-op">{</tt><tt class="py-op">}</tt> <tt class="py-comment"># The type of the parameter</tt> </tt>
-<a name="L380"></a><tt class="py-lineno">380</tt> <tt class="py-line"> <tt class="py-name">enum_params</tt> <tt class="py-op">=</tt> <tt class="py-op">{</tt><tt class="py-op">}</tt> <tt class="py-comment"># Allowable enumeration values for each parameter</tt> </tt>
-<a name="L381"></a><tt class="py-lineno">381</tt> <tt class="py-line"> </tt>
-<a name="L382"></a><tt class="py-lineno">382</tt> <tt class="py-line"> </tt>
-<a name="L383"></a><tt class="py-lineno">383</tt> <tt class="py-line"> <tt class="py-keyword">if</tt> <tt class="py-string">'parameters'</tt> <tt class="py-keyword">in</tt> <tt class="py-name">methodDesc</tt><tt class="py-op">:</tt> </tt>
-<a name="L384"></a><tt class="py-lineno">384</tt> <tt class="py-line"> <tt class="py-keyword">for</tt> <tt class="py-name">arg</tt><tt class="py-op">,</tt> <tt class="py-name">desc</tt> <tt class="py-keyword">in</tt> <tt class="py-name">methodDesc</tt><tt class="py-op">[</tt><tt class="py-string">'parameters'</tt><tt class="py-op">]</tt><tt class="py-op">.</tt><tt class="py-name">iteritems</tt><tt class="py-op">(</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-<a name="L385"></a><tt class="py-lineno">385</tt> <tt class="py-line"> <tt class="py-name">param</tt> <tt class="py-op">=</tt> <tt id="link-90" class="py-name" targets="Function apiclient.discovery.key2param()=apiclient.discovery-module.html#key2param"><a title="apiclient.discovery.key2param" class="py-name" href="#" onclick="return doclink('link-90', 'key2param', 'link-90');">key2param</a></tt><tt class="py-op">(</tt><tt class="py-name">arg</tt><tt class="py-op">)</tt> </tt>
-<a name="L386"></a><tt class="py-lineno">386</tt> <tt class="py-line"> <tt class="py-name">argmap</tt><tt class="py-op">[</tt><tt class="py-name">param</tt><tt class="py-op">]</tt> <tt class="py-op">=</tt> <tt class="py-name">arg</tt> </tt>
-<a name="L387"></a><tt class="py-lineno">387</tt> <tt class="py-line"> </tt>
-<a name="L388"></a><tt class="py-lineno">388</tt> <tt class="py-line"> <tt class="py-keyword">if</tt> <tt class="py-name">desc</tt><tt class="py-op">.</tt><tt id="link-91" class="py-name"><a title="apiclient.schema.Schemas.get
+oauth2client.client.Storage.get" class="py-name" href="#" onclick="return doclink('link-86', 'get', 'link-70');">get</a></tt><tt class="py-op">(</tt><tt class="py-string">'maxSize'</tt><tt class="py-op">,</tt> <tt class="py-string">''</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
+<a name="L371"></a><tt class="py-lineno">371</tt> <tt class="py-line"> </tt>
+<a name="L372"></a><tt class="py-lineno">372</tt> <tt class="py-line"> <tt class="py-keyword">if</tt> <tt class="py-string">'parameters'</tt> <tt class="py-keyword">not</tt> <tt class="py-keyword">in</tt> <tt class="py-name">methodDesc</tt><tt class="py-op">:</tt> </tt>
+<a name="L373"></a><tt class="py-lineno">373</tt> <tt class="py-line"> <tt class="py-name">methodDesc</tt><tt class="py-op">[</tt><tt class="py-string">'parameters'</tt><tt class="py-op">]</tt> <tt class="py-op">=</tt> <tt class="py-op">{</tt><tt class="py-op">}</tt> </tt>
+<a name="L374"></a><tt class="py-lineno">374</tt> <tt class="py-line"> </tt>
+<a name="L375"></a><tt class="py-lineno">375</tt> <tt class="py-line"> <tt class="py-comment"># Add in the parameters common to all methods.</tt> </tt>
+<a name="L376"></a><tt class="py-lineno">376</tt> <tt class="py-line"> <tt class="py-keyword">for</tt> <tt class="py-name">name</tt><tt class="py-op">,</tt> <tt class="py-name">desc</tt> <tt class="py-keyword">in</tt> <tt class="py-name">rootDesc</tt><tt class="py-op">.</tt><tt id="link-87" 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-91', 'get', 'link-67');">get</a></tt><tt class="py-op">(</tt><tt class="py-string">'pattern'</tt><tt class="py-op">,</tt> <tt class="py-string">''</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-<a name="L389"></a><tt class="py-lineno">389</tt> <tt class="py-line"> <tt class="py-name">pattern_params</tt><tt class="py-op">[</tt><tt class="py-name">param</tt><tt class="py-op">]</tt> <tt class="py-op">=</tt> <tt class="py-name">desc</tt><tt class="py-op">[</tt><tt class="py-string">'pattern'</tt><tt class="py-op">]</tt> </tt>
-<a name="L390"></a><tt class="py-lineno">390</tt> <tt class="py-line"> <tt class="py-keyword">if</tt> <tt class="py-name">desc</tt><tt class="py-op">.</tt><tt id="link-92" 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-92', 'get', 'link-67');">get</a></tt><tt class="py-op">(</tt><tt class="py-string">'enum'</tt><tt class="py-op">,</tt> <tt class="py-string">''</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-<a name="L391"></a><tt class="py-lineno">391</tt> <tt class="py-line"> <tt class="py-name">enum_params</tt><tt class="py-op">[</tt><tt class="py-name">param</tt><tt class="py-op">]</tt> <tt class="py-op">=</tt> <tt class="py-name">desc</tt><tt class="py-op">[</tt><tt class="py-string">'enum'</tt><tt class="py-op">]</tt> </tt>
-<a name="L392"></a><tt class="py-lineno">392</tt> <tt class="py-line"> <tt class="py-keyword">if</tt> <tt class="py-name">desc</tt><tt class="py-op">.</tt><tt id="link-93" 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-93', 'get', 'link-67');">get</a></tt><tt class="py-op">(</tt><tt class="py-string">'required'</tt><tt class="py-op">,</tt> <tt class="py-name">False</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-<a name="L393"></a><tt class="py-lineno">393</tt> <tt class="py-line"> <tt class="py-name">required_params</tt><tt class="py-op">.</tt><tt class="py-name">append</tt><tt class="py-op">(</tt><tt class="py-name">param</tt><tt class="py-op">)</tt> </tt>
-<a name="L394"></a><tt class="py-lineno">394</tt> <tt class="py-line"> <tt class="py-keyword">if</tt> <tt class="py-name">desc</tt><tt class="py-op">.</tt><tt id="link-94" 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-94', 'get', 'link-67');">get</a></tt><tt class="py-op">(</tt><tt class="py-string">'repeated'</tt><tt class="py-op">,</tt> <tt class="py-name">False</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-<a name="L395"></a><tt class="py-lineno">395</tt> <tt class="py-line"> <tt class="py-name">repeated_params</tt><tt class="py-op">.</tt><tt class="py-name">append</tt><tt class="py-op">(</tt><tt class="py-name">param</tt><tt class="py-op">)</tt> </tt>
-<a name="L396"></a><tt class="py-lineno">396</tt> <tt class="py-line"> <tt class="py-keyword">if</tt> <tt class="py-name">desc</tt><tt class="py-op">.</tt><tt id="link-95" 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-95', 'get', 'link-67');">get</a></tt><tt class="py-op">(</tt><tt class="py-string">'location'</tt><tt class="py-op">)</tt> <tt class="py-op">==</tt> <tt class="py-string">'query'</tt><tt class="py-op">:</tt> </tt>
-<a name="L397"></a><tt class="py-lineno">397</tt> <tt class="py-line"> <tt id="link-96" class="py-name"><a title="oauth2client.tools.ClientRedirectServer.query_params" class="py-name" href="#" onclick="return doclink('link-96', 'query_params', 'link-89');">query_params</a></tt><tt class="py-op">.</tt><tt class="py-name">append</tt><tt class="py-op">(</tt><tt class="py-name">param</tt><tt class="py-op">)</tt> </tt>
-<a name="L398"></a><tt class="py-lineno">398</tt> <tt class="py-line"> <tt class="py-keyword">if</tt> <tt class="py-name">desc</tt><tt class="py-op">.</tt><tt id="link-97" 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-97', 'get', 'link-67');">get</a></tt><tt class="py-op">(</tt><tt class="py-string">'location'</tt><tt class="py-op">)</tt> <tt class="py-op">==</tt> <tt class="py-string">'path'</tt><tt class="py-op">:</tt> </tt>
-<a name="L399"></a><tt class="py-lineno">399</tt> <tt class="py-line"> <tt class="py-name">path_params</tt><tt class="py-op">[</tt><tt class="py-name">param</tt><tt class="py-op">]</tt> <tt class="py-op">=</tt> <tt class="py-name">param</tt> </tt>
-<a name="L400"></a><tt class="py-lineno">400</tt> <tt class="py-line"> <tt class="py-name">param_type</tt><tt class="py-op">[</tt><tt class="py-name">param</tt><tt class="py-op">]</tt> <tt class="py-op">=</tt> <tt class="py-name">desc</tt><tt class="py-op">.</tt><tt id="link-98" 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-98', 'get', 'link-67');">get</a></tt><tt class="py-op">(</tt><tt class="py-string">'type'</tt><tt class="py-op">,</tt> <tt class="py-string">'string'</tt><tt class="py-op">)</tt> </tt>
-<a name="L401"></a><tt class="py-lineno">401</tt> <tt class="py-line"> </tt>
-<a name="L402"></a><tt class="py-lineno">402</tt> <tt class="py-line"> <tt class="py-keyword">for</tt> <tt class="py-name">match</tt> <tt class="py-keyword">in</tt> <tt id="link-99" class="py-name"><a title="apiclient.discovery.URITEMPLATE" class="py-name" href="#" onclick="return doclink('link-99', 'URITEMPLATE', 'link-40');">URITEMPLATE</a></tt><tt class="py-op">.</tt><tt class="py-name">finditer</tt><tt class="py-op">(</tt><tt class="py-name">pathUrl</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-<a name="L403"></a><tt class="py-lineno">403</tt> <tt class="py-line"> <tt class="py-keyword">for</tt> <tt class="py-name">namematch</tt> <tt class="py-keyword">in</tt> <tt id="link-100" class="py-name"><a title="apiclient.discovery.VARNAME" class="py-name" href="#" onclick="return doclink('link-100', 'VARNAME', 'link-41');">VARNAME</a></tt><tt class="py-op">.</tt><tt class="py-name">finditer</tt><tt class="py-op">(</tt><tt class="py-name">match</tt><tt class="py-op">.</tt><tt class="py-name">group</tt><tt class="py-op">(</tt><tt class="py-number">0</tt><tt class="py-op">)</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-<a name="L404"></a><tt class="py-lineno">404</tt> <tt class="py-line"> <tt class="py-name">name</tt> <tt class="py-op">=</tt> <tt id="link-101" class="py-name"><a title="apiclient.discovery.key2param" class="py-name" href="#" onclick="return doclink('link-101', 'key2param', 'link-90');">key2param</a></tt><tt class="py-op">(</tt><tt class="py-name">namematch</tt><tt class="py-op">.</tt><tt class="py-name">group</tt><tt class="py-op">(</tt><tt class="py-number">0</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
-<a name="L405"></a><tt class="py-lineno">405</tt> <tt class="py-line"> <tt class="py-name">path_params</tt><tt class="py-op">[</tt><tt class="py-name">name</tt><tt class="py-op">]</tt> <tt class="py-op">=</tt> <tt class="py-name">name</tt> </tt>
-<a name="L406"></a><tt class="py-lineno">406</tt> <tt class="py-line"> <tt class="py-keyword">if</tt> <tt class="py-name">name</tt> <tt class="py-keyword">in</tt> <tt id="link-102" class="py-name"><a title="oauth2client.tools.ClientRedirectServer.query_params" class="py-name" href="#" onclick="return doclink('link-102', 'query_params', 'link-89');">query_params</a></tt><tt class="py-op">:</tt> </tt>
-<a name="L407"></a><tt class="py-lineno">407</tt> <tt class="py-line"> <tt id="link-103" class="py-name"><a title="oauth2client.tools.ClientRedirectServer.query_params" class="py-name" href="#" onclick="return doclink('link-103', 'query_params', 'link-89');">query_params</a></tt><tt class="py-op">.</tt><tt class="py-name">remove</tt><tt class="py-op">(</tt><tt class="py-name">name</tt><tt class="py-op">)</tt> </tt>
-<a name="L408"></a><tt class="py-lineno">408</tt> <tt class="py-line"> </tt>
-<a name="L409"></a><tt class="py-lineno">409</tt> <tt class="py-line"> <tt class="py-keyword">def</tt> <tt class="py-def-name">method</tt><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">,</tt> <tt class="py-op">**</tt><tt class="py-param">kwargs</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-<a name="L410"></a><tt class="py-lineno">410</tt> <tt class="py-line"> <tt class="py-keyword">for</tt> <tt class="py-name">name</tt> <tt class="py-keyword">in</tt> <tt class="py-name">kwargs</tt><tt class="py-op">.</tt><tt class="py-name">iterkeys</tt><tt class="py-op">(</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-<a name="L411"></a><tt class="py-lineno">411</tt> <tt class="py-line"> <tt class="py-keyword">if</tt> <tt class="py-name">name</tt> <tt class="py-keyword">not</tt> <tt class="py-keyword">in</tt> <tt class="py-name">argmap</tt><tt class="py-op">:</tt> </tt>
-<a name="L412"></a><tt class="py-lineno">412</tt> <tt class="py-line"> <tt class="py-keyword">raise</tt> <tt class="py-name">TypeError</tt><tt class="py-op">(</tt><tt class="py-string">'Got an unexpected keyword argument "%s"'</tt> <tt class="py-op">%</tt> <tt class="py-name">name</tt><tt class="py-op">)</tt> </tt>
+oauth2client.client.Storage.get" class="py-name" href="#" onclick="return doclink('link-87', 'get', 'link-70');">get</a></tt><tt class="py-op">(</tt><tt class="py-string">'parameters'</tt><tt class="py-op">,</tt> <tt class="py-op">{</tt><tt class="py-op">}</tt><tt class="py-op">)</tt><tt class="py-op">.</tt><tt class="py-name">iteritems</tt><tt class="py-op">(</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+<a name="L377"></a><tt class="py-lineno">377</tt> <tt class="py-line"> <tt class="py-name">methodDesc</tt><tt class="py-op">[</tt><tt class="py-string">'parameters'</tt><tt class="py-op">]</tt><tt class="py-op">[</tt><tt class="py-name">name</tt><tt class="py-op">]</tt> <tt class="py-op">=</tt> <tt class="py-name">desc</tt> </tt>
+<a name="L378"></a><tt class="py-lineno">378</tt> <tt class="py-line"> </tt>
+<a name="L379"></a><tt class="py-lineno">379</tt> <tt class="py-line"> <tt class="py-comment"># Add in undocumented query parameters.</tt> </tt>
+<a name="L380"></a><tt class="py-lineno">380</tt> <tt class="py-line"> <tt class="py-keyword">for</tt> <tt class="py-name">name</tt> <tt class="py-keyword">in</tt> <tt id="link-88" class="py-name"><a title="apiclient.discovery.STACK_QUERY_PARAMETERS" class="py-name" href="#" onclick="return doclink('link-88', 'STACK_QUERY_PARAMETERS', 'link-44');">STACK_QUERY_PARAMETERS</a></tt><tt class="py-op">:</tt> </tt>
+<a name="L381"></a><tt class="py-lineno">381</tt> <tt class="py-line"> <tt class="py-name">methodDesc</tt><tt class="py-op">[</tt><tt class="py-string">'parameters'</tt><tt class="py-op">]</tt><tt class="py-op">[</tt><tt class="py-name">name</tt><tt class="py-op">]</tt> <tt class="py-op">=</tt> <tt class="py-op">{</tt> </tt>
+<a name="L382"></a><tt class="py-lineno">382</tt> <tt class="py-line"> <tt class="py-string">'type'</tt><tt class="py-op">:</tt> <tt class="py-string">'string'</tt><tt class="py-op">,</tt> </tt>
+<a name="L383"></a><tt class="py-lineno">383</tt> <tt class="py-line"> <tt class="py-string">'location'</tt><tt class="py-op">:</tt> <tt class="py-string">'query'</tt> </tt>
+<a name="L384"></a><tt class="py-lineno">384</tt> <tt class="py-line"> <tt class="py-op">}</tt> </tt>
+<a name="L385"></a><tt class="py-lineno">385</tt> <tt class="py-line"> </tt>
+<a name="L386"></a><tt class="py-lineno">386</tt> <tt class="py-line"> <tt class="py-keyword">if</tt> <tt class="py-name">httpMethod</tt> <tt class="py-keyword">in</tt> <tt class="py-op">[</tt><tt class="py-string">'PUT'</tt><tt class="py-op">,</tt> <tt class="py-string">'POST'</tt><tt class="py-op">,</tt> <tt class="py-string">'PATCH'</tt><tt class="py-op">]</tt> <tt class="py-keyword">and</tt> <tt class="py-string">'request'</tt> <tt class="py-keyword">in</tt> <tt class="py-name">methodDesc</tt><tt class="py-op">:</tt> </tt>
+<a name="L387"></a><tt class="py-lineno">387</tt> <tt class="py-line"> <tt class="py-name">methodDesc</tt><tt class="py-op">[</tt><tt class="py-string">'parameters'</tt><tt class="py-op">]</tt><tt class="py-op">[</tt><tt class="py-string">'body'</tt><tt class="py-op">]</tt> <tt class="py-op">=</tt> <tt class="py-op">{</tt> </tt>
+<a name="L388"></a><tt class="py-lineno">388</tt> <tt class="py-line"> <tt class="py-string">'description'</tt><tt class="py-op">:</tt> <tt class="py-string">'The request body.'</tt><tt class="py-op">,</tt> </tt>
+<a name="L389"></a><tt class="py-lineno">389</tt> <tt class="py-line"> <tt class="py-string">'type'</tt><tt class="py-op">:</tt> <tt class="py-string">'object'</tt><tt class="py-op">,</tt> </tt>
+<a name="L390"></a><tt class="py-lineno">390</tt> <tt class="py-line"> <tt class="py-string">'required'</tt><tt class="py-op">:</tt> <tt class="py-name">True</tt><tt class="py-op">,</tt> </tt>
+<a name="L391"></a><tt class="py-lineno">391</tt> <tt class="py-line"> <tt class="py-op">}</tt> </tt>
+<a name="L392"></a><tt class="py-lineno">392</tt> <tt class="py-line"> <tt class="py-keyword">if</tt> <tt class="py-string">'request'</tt> <tt class="py-keyword">in</tt> <tt class="py-name">methodDesc</tt><tt class="py-op">:</tt> </tt>
+<a name="L393"></a><tt class="py-lineno">393</tt> <tt class="py-line"> <tt class="py-name">methodDesc</tt><tt class="py-op">[</tt><tt class="py-string">'parameters'</tt><tt class="py-op">]</tt><tt class="py-op">[</tt><tt class="py-string">'body'</tt><tt class="py-op">]</tt><tt class="py-op">.</tt><tt class="py-name">update</tt><tt class="py-op">(</tt><tt class="py-name">methodDesc</tt><tt class="py-op">[</tt><tt class="py-string">'request'</tt><tt class="py-op">]</tt><tt class="py-op">)</tt> </tt>
+<a name="L394"></a><tt class="py-lineno">394</tt> <tt class="py-line"> <tt class="py-keyword">else</tt><tt class="py-op">:</tt> </tt>
+<a name="L395"></a><tt class="py-lineno">395</tt> <tt class="py-line"> <tt class="py-name">methodDesc</tt><tt class="py-op">[</tt><tt class="py-string">'parameters'</tt><tt class="py-op">]</tt><tt class="py-op">[</tt><tt class="py-string">'body'</tt><tt class="py-op">]</tt><tt class="py-op">[</tt><tt class="py-string">'type'</tt><tt class="py-op">]</tt> <tt class="py-op">=</tt> <tt class="py-string">'object'</tt> </tt>
+<a name="L396"></a><tt class="py-lineno">396</tt> <tt class="py-line"> <tt class="py-keyword">if</tt> <tt class="py-string">'mediaUpload'</tt> <tt class="py-keyword">in</tt> <tt class="py-name">methodDesc</tt><tt class="py-op">:</tt> </tt>
+<a name="L397"></a><tt class="py-lineno">397</tt> <tt class="py-line"> <tt class="py-name">methodDesc</tt><tt class="py-op">[</tt><tt class="py-string">'parameters'</tt><tt class="py-op">]</tt><tt class="py-op">[</tt><tt class="py-string">'media_body'</tt><tt class="py-op">]</tt> <tt class="py-op">=</tt> <tt class="py-op">{</tt> </tt>
+<a name="L398"></a><tt class="py-lineno">398</tt> <tt class="py-line"> <tt class="py-string">'description'</tt><tt class="py-op">:</tt> <tt class="py-string">'The filename of the media request body.'</tt><tt class="py-op">,</tt> </tt>
+<a name="L399"></a><tt class="py-lineno">399</tt> <tt class="py-line"> <tt class="py-string">'type'</tt><tt class="py-op">:</tt> <tt class="py-string">'string'</tt><tt class="py-op">,</tt> </tt>
+<a name="L400"></a><tt class="py-lineno">400</tt> <tt class="py-line"> <tt class="py-string">'required'</tt><tt class="py-op">:</tt> <tt class="py-name">False</tt><tt class="py-op">,</tt> </tt>
+<a name="L401"></a><tt class="py-lineno">401</tt> <tt class="py-line"> <tt class="py-op">}</tt> </tt>
+<a name="L402"></a><tt class="py-lineno">402</tt> <tt class="py-line"> <tt class="py-keyword">if</tt> <tt class="py-string">'body'</tt> <tt class="py-keyword">in</tt> <tt class="py-name">methodDesc</tt><tt class="py-op">[</tt><tt class="py-string">'parameters'</tt><tt class="py-op">]</tt><tt class="py-op">:</tt> </tt>
+<a name="L403"></a><tt class="py-lineno">403</tt> <tt class="py-line"> <tt class="py-name">methodDesc</tt><tt class="py-op">[</tt><tt class="py-string">'parameters'</tt><tt class="py-op">]</tt><tt class="py-op">[</tt><tt class="py-string">'body'</tt><tt class="py-op">]</tt><tt class="py-op">[</tt><tt class="py-string">'required'</tt><tt class="py-op">]</tt> <tt class="py-op">=</tt> <tt class="py-name">False</tt> </tt>
+<a name="L404"></a><tt class="py-lineno">404</tt> <tt class="py-line"> </tt>
+<a name="L405"></a><tt class="py-lineno">405</tt> <tt class="py-line"> <tt class="py-name">argmap</tt> <tt class="py-op">=</tt> <tt class="py-op">{</tt><tt class="py-op">}</tt> <tt class="py-comment"># Map from method parameter name to query parameter name</tt> </tt>
+<a name="L406"></a><tt class="py-lineno">406</tt> <tt class="py-line"> <tt class="py-name">required_params</tt> <tt class="py-op">=</tt> <tt class="py-op">[</tt><tt class="py-op">]</tt> <tt class="py-comment"># Required parameters</tt> </tt>
+<a name="L407"></a><tt class="py-lineno">407</tt> <tt class="py-line"> <tt class="py-name">repeated_params</tt> <tt class="py-op">=</tt> <tt class="py-op">[</tt><tt class="py-op">]</tt> <tt class="py-comment"># Repeated parameters</tt> </tt>
+<a name="L408"></a><tt class="py-lineno">408</tt> <tt class="py-line"> <tt class="py-name">pattern_params</tt> <tt class="py-op">=</tt> <tt class="py-op">{</tt><tt class="py-op">}</tt> <tt class="py-comment"># Parameters that must match a regex</tt> </tt>
+<a name="L409"></a><tt class="py-lineno">409</tt> <tt class="py-line"> <tt id="link-89" class="py-name" targets="Variable oauth2client.tools.ClientRedirectServer.query_params=oauth2client.tools.ClientRedirectServer-class.html#query_params"><a title="oauth2client.tools.ClientRedirectServer.query_params" class="py-name" href="#" onclick="return doclink('link-89', 'query_params', 'link-89');">query_params</a></tt> <tt class="py-op">=</tt> <tt class="py-op">[</tt><tt class="py-op">]</tt> <tt class="py-comment"># Parameters that will be used in the query string</tt> </tt>
+<a name="L410"></a><tt class="py-lineno">410</tt> <tt class="py-line"> <tt class="py-name">path_params</tt> <tt class="py-op">=</tt> <tt class="py-op">{</tt><tt class="py-op">}</tt> <tt class="py-comment"># Parameters that will be used in the base URL</tt> </tt>
+<a name="L411"></a><tt class="py-lineno">411</tt> <tt class="py-line"> <tt class="py-name">param_type</tt> <tt class="py-op">=</tt> <tt class="py-op">{</tt><tt class="py-op">}</tt> <tt class="py-comment"># The type of the parameter</tt> </tt>
+<a name="L412"></a><tt class="py-lineno">412</tt> <tt class="py-line"> <tt class="py-name">enum_params</tt> <tt class="py-op">=</tt> <tt class="py-op">{</tt><tt class="py-op">}</tt> <tt class="py-comment"># Allowable enumeration values for each parameter</tt> </tt>
<a name="L413"></a><tt class="py-lineno">413</tt> <tt class="py-line"> </tt>
-<a name="L414"></a><tt class="py-lineno">414</tt> <tt class="py-line"> <tt class="py-keyword">for</tt> <tt class="py-name">name</tt> <tt class="py-keyword">in</tt> <tt class="py-name">required_params</tt><tt class="py-op">:</tt> </tt>
-<a name="L415"></a><tt class="py-lineno">415</tt> <tt class="py-line"> <tt class="py-keyword">if</tt> <tt class="py-name">name</tt> <tt class="py-keyword">not</tt> <tt class="py-keyword">in</tt> <tt class="py-name">kwargs</tt><tt class="py-op">:</tt> </tt>
-<a name="L416"></a><tt class="py-lineno">416</tt> <tt class="py-line"> <tt class="py-keyword">raise</tt> <tt class="py-name">TypeError</tt><tt class="py-op">(</tt><tt class="py-string">'Missing required parameter "%s"'</tt> <tt class="py-op">%</tt> <tt class="py-name">name</tt><tt class="py-op">)</tt> </tt>
-<a name="L417"></a><tt class="py-lineno">417</tt> <tt class="py-line"> </tt>
-<a name="L418"></a><tt class="py-lineno">418</tt> <tt class="py-line"> <tt class="py-keyword">for</tt> <tt class="py-name">name</tt><tt class="py-op">,</tt> <tt class="py-name">regex</tt> <tt class="py-keyword">in</tt> <tt class="py-name">pattern_params</tt><tt class="py-op">.</tt><tt class="py-name">iteritems</tt><tt class="py-op">(</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-<a name="L419"></a><tt class="py-lineno">419</tt> <tt class="py-line"> <tt class="py-keyword">if</tt> <tt class="py-name">name</tt> <tt class="py-keyword">in</tt> <tt class="py-name">kwargs</tt><tt class="py-op">:</tt> </tt>
-<a name="L420"></a><tt class="py-lineno">420</tt> <tt class="py-line"> <tt class="py-keyword">if</tt> <tt class="py-name">isinstance</tt><tt class="py-op">(</tt><tt class="py-name">kwargs</tt><tt class="py-op">[</tt><tt class="py-name">name</tt><tt class="py-op">]</tt><tt class="py-op">,</tt> <tt class="py-name">basestring</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-<a name="L421"></a><tt class="py-lineno">421</tt> <tt class="py-line"> <tt class="py-name">pvalues</tt> <tt class="py-op">=</tt> <tt class="py-op">[</tt><tt class="py-name">kwargs</tt><tt class="py-op">[</tt><tt class="py-name">name</tt><tt class="py-op">]</tt><tt class="py-op">]</tt> </tt>
-<a name="L422"></a><tt class="py-lineno">422</tt> <tt class="py-line"> <tt class="py-keyword">else</tt><tt class="py-op">:</tt> </tt>
-<a name="L423"></a><tt class="py-lineno">423</tt> <tt class="py-line"> <tt class="py-name">pvalues</tt> <tt class="py-op">=</tt> <tt class="py-name">kwargs</tt><tt class="py-op">[</tt><tt class="py-name">name</tt><tt class="py-op">]</tt> </tt>
-<a name="L424"></a><tt class="py-lineno">424</tt> <tt class="py-line"> <tt class="py-keyword">for</tt> <tt class="py-name">pvalue</tt> <tt class="py-keyword">in</tt> <tt class="py-name">pvalues</tt><tt class="py-op">:</tt> </tt>
-<a name="L425"></a><tt class="py-lineno">425</tt> <tt class="py-line"> <tt class="py-keyword">if</tt> <tt class="py-name">re</tt><tt class="py-op">.</tt><tt class="py-name">match</tt><tt class="py-op">(</tt><tt class="py-name">regex</tt><tt class="py-op">,</tt> <tt class="py-name">pvalue</tt><tt class="py-op">)</tt> <tt class="py-keyword">is</tt> <tt class="py-name">None</tt><tt class="py-op">:</tt> </tt>
-<a name="L426"></a><tt class="py-lineno">426</tt> <tt class="py-line"> <tt class="py-keyword">raise</tt> <tt class="py-name">TypeError</tt><tt class="py-op">(</tt> </tt>
-<a name="L427"></a><tt class="py-lineno">427</tt> <tt class="py-line"> <tt class="py-string">'Parameter "%s" value "%s" does not match the pattern "%s"'</tt> <tt class="py-op">%</tt> </tt>
-<a name="L428"></a><tt class="py-lineno">428</tt> <tt class="py-line"> <tt class="py-op">(</tt><tt class="py-name">name</tt><tt class="py-op">,</tt> <tt class="py-name">pvalue</tt><tt class="py-op">,</tt> <tt class="py-name">regex</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
-<a name="L429"></a><tt class="py-lineno">429</tt> <tt class="py-line"> </tt>
-<a name="L430"></a><tt class="py-lineno">430</tt> <tt class="py-line"> <tt class="py-keyword">for</tt> <tt class="py-name">name</tt><tt class="py-op">,</tt> <tt class="py-name">enums</tt> <tt class="py-keyword">in</tt> <tt class="py-name">enum_params</tt><tt class="py-op">.</tt><tt class="py-name">iteritems</tt><tt class="py-op">(</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-<a name="L431"></a><tt class="py-lineno">431</tt> <tt class="py-line"> <tt class="py-keyword">if</tt> <tt class="py-name">name</tt> <tt class="py-keyword">in</tt> <tt class="py-name">kwargs</tt><tt class="py-op">:</tt> </tt>
-<a name="L432"></a><tt class="py-lineno">432</tt> <tt class="py-line"> <tt class="py-comment"># We need to handle the case of a repeated enum</tt> </tt>
-<a name="L433"></a><tt class="py-lineno">433</tt> <tt class="py-line"> <tt class="py-comment"># name differently, since we want to handle both</tt> </tt>
-<a name="L434"></a><tt class="py-lineno">434</tt> <tt class="py-line"> <tt class="py-comment"># arg='value' and arg=['value1', 'value2']</tt> </tt>
-<a name="L435"></a><tt class="py-lineno">435</tt> <tt class="py-line"> <tt class="py-keyword">if</tt> <tt class="py-op">(</tt><tt class="py-name">name</tt> <tt class="py-keyword">in</tt> <tt class="py-name">repeated_params</tt> <tt class="py-keyword">and</tt> </tt>
-<a name="L436"></a><tt class="py-lineno">436</tt> <tt class="py-line"> <tt class="py-keyword">not</tt> <tt class="py-name">isinstance</tt><tt class="py-op">(</tt><tt class="py-name">kwargs</tt><tt class="py-op">[</tt><tt class="py-name">name</tt><tt class="py-op">]</tt><tt class="py-op">,</tt> <tt class="py-name">basestring</tt><tt class="py-op">)</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-<a name="L437"></a><tt class="py-lineno">437</tt> <tt class="py-line"> <tt class="py-name">values</tt> <tt class="py-op">=</tt> <tt class="py-name">kwargs</tt><tt class="py-op">[</tt><tt class="py-name">name</tt><tt class="py-op">]</tt> </tt>
-<a name="L438"></a><tt class="py-lineno">438</tt> <tt class="py-line"> <tt class="py-keyword">else</tt><tt class="py-op">:</tt> </tt>
-<a name="L439"></a><tt class="py-lineno">439</tt> <tt class="py-line"> <tt class="py-name">values</tt> <tt class="py-op">=</tt> <tt class="py-op">[</tt><tt class="py-name">kwargs</tt><tt class="py-op">[</tt><tt class="py-name">name</tt><tt class="py-op">]</tt><tt class="py-op">]</tt> </tt>
-<a name="L440"></a><tt class="py-lineno">440</tt> <tt class="py-line"> <tt class="py-keyword">for</tt> <tt class="py-name">value</tt> <tt class="py-keyword">in</tt> <tt class="py-name">values</tt><tt class="py-op">:</tt> </tt>
-<a name="L441"></a><tt class="py-lineno">441</tt> <tt class="py-line"> <tt class="py-keyword">if</tt> <tt class="py-name">value</tt> <tt class="py-keyword">not</tt> <tt class="py-keyword">in</tt> <tt class="py-name">enums</tt><tt class="py-op">:</tt> </tt>
-<a name="L442"></a><tt class="py-lineno">442</tt> <tt class="py-line"> <tt class="py-keyword">raise</tt> <tt class="py-name">TypeError</tt><tt class="py-op">(</tt> </tt>
-<a name="L443"></a><tt class="py-lineno">443</tt> <tt class="py-line"> <tt class="py-string">'Parameter "%s" value "%s" is not an allowed value in "%s"'</tt> <tt class="py-op">%</tt> </tt>
-<a name="L444"></a><tt class="py-lineno">444</tt> <tt class="py-line"> <tt class="py-op">(</tt><tt class="py-name">name</tt><tt class="py-op">,</tt> <tt class="py-name">value</tt><tt class="py-op">,</tt> <tt class="py-name">str</tt><tt class="py-op">(</tt><tt class="py-name">enums</tt><tt class="py-op">)</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
-<a name="L445"></a><tt class="py-lineno">445</tt> <tt class="py-line"> </tt>
-<a name="L446"></a><tt class="py-lineno">446</tt> <tt class="py-line"> <tt class="py-name">actual_query_params</tt> <tt class="py-op">=</tt> <tt class="py-op">{</tt><tt class="py-op">}</tt> </tt>
-<a name="L447"></a><tt class="py-lineno">447</tt> <tt class="py-line"> <tt class="py-name">actual_path_params</tt> <tt class="py-op">=</tt> <tt class="py-op">{</tt><tt class="py-op">}</tt> </tt>
-<a name="L448"></a><tt class="py-lineno">448</tt> <tt class="py-line"> <tt class="py-keyword">for</tt> <tt class="py-name">key</tt><tt class="py-op">,</tt> <tt class="py-name">value</tt> <tt class="py-keyword">in</tt> <tt class="py-name">kwargs</tt><tt class="py-op">.</tt><tt class="py-name">iteritems</tt><tt class="py-op">(</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-<a name="L449"></a><tt class="py-lineno">449</tt> <tt class="py-line"> <tt class="py-name">to_type</tt> <tt class="py-op">=</tt> <tt class="py-name">param_type</tt><tt class="py-op">.</tt><tt id="link-104" class="py-name"><a title="apiclient.schema.Schemas.get
+<a name="L414"></a><tt class="py-lineno">414</tt> <tt class="py-line"> </tt>
+<a name="L415"></a><tt class="py-lineno">415</tt> <tt class="py-line"> <tt class="py-keyword">if</tt> <tt class="py-string">'parameters'</tt> <tt class="py-keyword">in</tt> <tt class="py-name">methodDesc</tt><tt class="py-op">:</tt> </tt>
+<a name="L416"></a><tt class="py-lineno">416</tt> <tt class="py-line"> <tt class="py-keyword">for</tt> <tt class="py-name">arg</tt><tt class="py-op">,</tt> <tt class="py-name">desc</tt> <tt class="py-keyword">in</tt> <tt class="py-name">methodDesc</tt><tt class="py-op">[</tt><tt class="py-string">'parameters'</tt><tt class="py-op">]</tt><tt class="py-op">.</tt><tt class="py-name">iteritems</tt><tt class="py-op">(</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+<a name="L417"></a><tt class="py-lineno">417</tt> <tt class="py-line"> <tt class="py-name">param</tt> <tt class="py-op">=</tt> <tt id="link-90" class="py-name" targets="Function apiclient.discovery.key2param()=apiclient.discovery-module.html#key2param"><a title="apiclient.discovery.key2param" class="py-name" href="#" onclick="return doclink('link-90', 'key2param', 'link-90');">key2param</a></tt><tt class="py-op">(</tt><tt class="py-name">arg</tt><tt class="py-op">)</tt> </tt>
+<a name="L418"></a><tt class="py-lineno">418</tt> <tt class="py-line"> <tt class="py-name">argmap</tt><tt class="py-op">[</tt><tt class="py-name">param</tt><tt class="py-op">]</tt> <tt class="py-op">=</tt> <tt class="py-name">arg</tt> </tt>
+<a name="L419"></a><tt class="py-lineno">419</tt> <tt class="py-line"> </tt>
+<a name="L420"></a><tt class="py-lineno">420</tt> <tt class="py-line"> <tt class="py-keyword">if</tt> <tt class="py-name">desc</tt><tt class="py-op">.</tt><tt id="link-91" 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-104', 'get', 'link-67');">get</a></tt><tt class="py-op">(</tt><tt class="py-name">key</tt><tt class="py-op">,</tt> <tt class="py-string">'string'</tt><tt class="py-op">)</tt> </tt>
-<a name="L450"></a><tt class="py-lineno">450</tt> <tt class="py-line"> <tt class="py-comment"># For repeated parameters we cast each member of the list.</tt> </tt>
-<a name="L451"></a><tt class="py-lineno">451</tt> <tt class="py-line"> <tt class="py-keyword">if</tt> <tt class="py-name">key</tt> <tt class="py-keyword">in</tt> <tt class="py-name">repeated_params</tt> <tt class="py-keyword">and</tt> <tt class="py-name">type</tt><tt class="py-op">(</tt><tt class="py-name">value</tt><tt class="py-op">)</tt> <tt class="py-op">==</tt> <tt class="py-name">type</tt><tt class="py-op">(</tt><tt class="py-op">[</tt><tt class="py-op">]</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-<a name="L452"></a><tt class="py-lineno">452</tt> <tt class="py-line"> <tt class="py-name">cast_value</tt> <tt class="py-op">=</tt> <tt class="py-op">[</tt><tt id="link-105" class="py-name" targets="Function apiclient.discovery._cast()=apiclient.discovery-module.html#_cast"><a title="apiclient.discovery._cast" class="py-name" href="#" onclick="return doclink('link-105', '_cast', 'link-105');">_cast</a></tt><tt class="py-op">(</tt><tt class="py-name">x</tt><tt class="py-op">,</tt> <tt class="py-name">to_type</tt><tt class="py-op">)</tt> <tt class="py-keyword">for</tt> <tt class="py-name">x</tt> <tt class="py-keyword">in</tt> <tt class="py-name">value</tt><tt class="py-op">]</tt> </tt>
-<a name="L453"></a><tt class="py-lineno">453</tt> <tt class="py-line"> <tt class="py-keyword">else</tt><tt class="py-op">:</tt> </tt>
-<a name="L454"></a><tt class="py-lineno">454</tt> <tt class="py-line"> <tt class="py-name">cast_value</tt> <tt class="py-op">=</tt> <tt id="link-106" class="py-name"><a title="apiclient.discovery._cast" class="py-name" href="#" onclick="return doclink('link-106', '_cast', 'link-105');">_cast</a></tt><tt class="py-op">(</tt><tt class="py-name">value</tt><tt class="py-op">,</tt> <tt class="py-name">to_type</tt><tt class="py-op">)</tt> </tt>
-<a name="L455"></a><tt class="py-lineno">455</tt> <tt class="py-line"> <tt class="py-keyword">if</tt> <tt class="py-name">key</tt> <tt class="py-keyword">in</tt> <tt id="link-107" class="py-name"><a title="oauth2client.tools.ClientRedirectServer.query_params" class="py-name" href="#" onclick="return doclink('link-107', 'query_params', 'link-89');">query_params</a></tt><tt class="py-op">:</tt> </tt>
-<a name="L456"></a><tt class="py-lineno">456</tt> <tt class="py-line"> <tt class="py-name">actual_query_params</tt><tt class="py-op">[</tt><tt class="py-name">argmap</tt><tt class="py-op">[</tt><tt class="py-name">key</tt><tt class="py-op">]</tt><tt class="py-op">]</tt> <tt class="py-op">=</tt> <tt class="py-name">cast_value</tt> </tt>
-<a name="L457"></a><tt class="py-lineno">457</tt> <tt class="py-line"> <tt class="py-keyword">if</tt> <tt class="py-name">key</tt> <tt class="py-keyword">in</tt> <tt class="py-name">path_params</tt><tt class="py-op">:</tt> </tt>
-<a name="L458"></a><tt class="py-lineno">458</tt> <tt class="py-line"> <tt class="py-name">actual_path_params</tt><tt class="py-op">[</tt><tt class="py-name">argmap</tt><tt class="py-op">[</tt><tt class="py-name">key</tt><tt class="py-op">]</tt><tt class="py-op">]</tt> <tt class="py-op">=</tt> <tt class="py-name">cast_value</tt> </tt>
-<a name="L459"></a><tt class="py-lineno">459</tt> <tt class="py-line"> <tt class="py-name">body_value</tt> <tt class="py-op">=</tt> <tt class="py-name">kwargs</tt><tt class="py-op">.</tt><tt id="link-108" class="py-name"><a title="apiclient.schema.Schemas.get
+oauth2client.client.Storage.get" class="py-name" href="#" onclick="return doclink('link-91', 'get', 'link-70');">get</a></tt><tt class="py-op">(</tt><tt class="py-string">'pattern'</tt><tt class="py-op">,</tt> <tt class="py-string">''</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+<a name="L421"></a><tt class="py-lineno">421</tt> <tt class="py-line"> <tt class="py-name">pattern_params</tt><tt class="py-op">[</tt><tt class="py-name">param</tt><tt class="py-op">]</tt> <tt class="py-op">=</tt> <tt class="py-name">desc</tt><tt class="py-op">[</tt><tt class="py-string">'pattern'</tt><tt class="py-op">]</tt> </tt>
+<a name="L422"></a><tt class="py-lineno">422</tt> <tt class="py-line"> <tt class="py-keyword">if</tt> <tt class="py-name">desc</tt><tt class="py-op">.</tt><tt id="link-92" 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-108', 'get', 'link-67');">get</a></tt><tt class="py-op">(</tt><tt class="py-string">'body'</tt><tt class="py-op">,</tt> <tt class="py-name">None</tt><tt class="py-op">)</tt> </tt>
-<a name="L460"></a><tt class="py-lineno">460</tt> <tt class="py-line"> <tt class="py-name">media_filename</tt> <tt class="py-op">=</tt> <tt class="py-name">kwargs</tt><tt class="py-op">.</tt><tt id="link-109" class="py-name"><a title="apiclient.schema.Schemas.get
+oauth2client.client.Storage.get" class="py-name" href="#" onclick="return doclink('link-92', 'get', 'link-70');">get</a></tt><tt class="py-op">(</tt><tt class="py-string">'enum'</tt><tt class="py-op">,</tt> <tt class="py-string">''</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+<a name="L423"></a><tt class="py-lineno">423</tt> <tt class="py-line"> <tt class="py-name">enum_params</tt><tt class="py-op">[</tt><tt class="py-name">param</tt><tt class="py-op">]</tt> <tt class="py-op">=</tt> <tt class="py-name">desc</tt><tt class="py-op">[</tt><tt class="py-string">'enum'</tt><tt class="py-op">]</tt> </tt>
+<a name="L424"></a><tt class="py-lineno">424</tt> <tt class="py-line"> <tt class="py-keyword">if</tt> <tt class="py-name">desc</tt><tt class="py-op">.</tt><tt id="link-93" 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-109', 'get', 'link-67');">get</a></tt><tt class="py-op">(</tt><tt class="py-string">'media_body'</tt><tt class="py-op">,</tt> <tt class="py-name">None</tt><tt class="py-op">)</tt> </tt>
-<a name="L461"></a><tt class="py-lineno">461</tt> <tt class="py-line"> </tt>
-<a name="L462"></a><tt class="py-lineno">462</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">_developerKey</tt><tt class="py-op">:</tt> </tt>
-<a name="L463"></a><tt class="py-lineno">463</tt> <tt class="py-line"> <tt class="py-name">actual_query_params</tt><tt class="py-op">[</tt><tt class="py-string">'key'</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">_developerKey</tt> </tt>
-<a name="L464"></a><tt class="py-lineno">464</tt> <tt class="py-line"> </tt>
-<a name="L465"></a><tt class="py-lineno">465</tt> <tt class="py-line"> <tt id="link-110" class="py-name"><a title="apiclient.model" class="py-name" href="#" onclick="return doclink('link-110', 'model', 'link-29');">model</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">_model</tt> </tt>
-<a name="L466"></a><tt class="py-lineno">466</tt> <tt class="py-line"> <tt class="py-comment"># If there is no schema for the response then presume a binary blob.</tt> </tt>
-<a name="L467"></a><tt class="py-lineno">467</tt> <tt class="py-line"> <tt class="py-keyword">if</tt> <tt class="py-string">'response'</tt> <tt class="py-keyword">not</tt> <tt class="py-keyword">in</tt> <tt class="py-name">methodDesc</tt><tt class="py-op">:</tt> </tt>
-<a name="L468"></a><tt class="py-lineno">468</tt> <tt class="py-line"> <tt id="link-111" class="py-name"><a title="apiclient.model" class="py-name" href="#" onclick="return doclink('link-111', 'model', 'link-29');">model</a></tt> <tt class="py-op">=</tt> <tt id="link-112" class="py-name"><a title="apiclient.model.RawModel" class="py-name" href="#" onclick="return doclink('link-112', 'RawModel', 'link-33');">RawModel</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
-<a name="L469"></a><tt class="py-lineno">469</tt> <tt class="py-line"> </tt>
-<a name="L470"></a><tt class="py-lineno">470</tt> <tt class="py-line"> <tt class="py-name">headers</tt> <tt class="py-op">=</tt> <tt class="py-op">{</tt><tt class="py-op">}</tt> </tt>
-<a name="L471"></a><tt class="py-lineno">471</tt> <tt class="py-line"> <tt class="py-name">headers</tt><tt class="py-op">,</tt> <tt class="py-name">params</tt><tt class="py-op">,</tt> <tt class="py-name">query</tt><tt class="py-op">,</tt> <tt class="py-name">body</tt> <tt class="py-op">=</tt> <tt id="link-113" class="py-name"><a title="apiclient.model" class="py-name" href="#" onclick="return doclink('link-113', 'model', 'link-29');">model</a></tt><tt class="py-op">.</tt><tt id="link-114" class="py-name"><a title="apiclient.http.HttpMock.request
+oauth2client.client.Storage.get" class="py-name" href="#" onclick="return doclink('link-93', 'get', 'link-70');">get</a></tt><tt class="py-op">(</tt><tt class="py-string">'required'</tt><tt class="py-op">,</tt> <tt class="py-name">False</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+<a name="L425"></a><tt class="py-lineno">425</tt> <tt class="py-line"> <tt class="py-name">required_params</tt><tt class="py-op">.</tt><tt class="py-name">append</tt><tt class="py-op">(</tt><tt class="py-name">param</tt><tt class="py-op">)</tt> </tt>
+<a name="L426"></a><tt class="py-lineno">426</tt> <tt class="py-line"> <tt class="py-keyword">if</tt> <tt class="py-name">desc</tt><tt class="py-op">.</tt><tt id="link-94" 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-94', 'get', 'link-70');">get</a></tt><tt class="py-op">(</tt><tt class="py-string">'repeated'</tt><tt class="py-op">,</tt> <tt class="py-name">False</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+<a name="L427"></a><tt class="py-lineno">427</tt> <tt class="py-line"> <tt class="py-name">repeated_params</tt><tt class="py-op">.</tt><tt class="py-name">append</tt><tt class="py-op">(</tt><tt class="py-name">param</tt><tt class="py-op">)</tt> </tt>
+<a name="L428"></a><tt class="py-lineno">428</tt> <tt class="py-line"> <tt class="py-keyword">if</tt> <tt class="py-name">desc</tt><tt class="py-op">.</tt><tt id="link-95" 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-95', 'get', 'link-70');">get</a></tt><tt class="py-op">(</tt><tt class="py-string">'location'</tt><tt class="py-op">)</tt> <tt class="py-op">==</tt> <tt class="py-string">'query'</tt><tt class="py-op">:</tt> </tt>
+<a name="L429"></a><tt class="py-lineno">429</tt> <tt class="py-line"> <tt id="link-96" class="py-name"><a title="oauth2client.tools.ClientRedirectServer.query_params" class="py-name" href="#" onclick="return doclink('link-96', 'query_params', 'link-89');">query_params</a></tt><tt class="py-op">.</tt><tt class="py-name">append</tt><tt class="py-op">(</tt><tt class="py-name">param</tt><tt class="py-op">)</tt> </tt>
+<a name="L430"></a><tt class="py-lineno">430</tt> <tt class="py-line"> <tt class="py-keyword">if</tt> <tt class="py-name">desc</tt><tt class="py-op">.</tt><tt id="link-97" 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-97', 'get', 'link-70');">get</a></tt><tt class="py-op">(</tt><tt class="py-string">'location'</tt><tt class="py-op">)</tt> <tt class="py-op">==</tt> <tt class="py-string">'path'</tt><tt class="py-op">:</tt> </tt>
+<a name="L431"></a><tt class="py-lineno">431</tt> <tt class="py-line"> <tt class="py-name">path_params</tt><tt class="py-op">[</tt><tt class="py-name">param</tt><tt class="py-op">]</tt> <tt class="py-op">=</tt> <tt class="py-name">param</tt> </tt>
+<a name="L432"></a><tt class="py-lineno">432</tt> <tt class="py-line"> <tt class="py-name">param_type</tt><tt class="py-op">[</tt><tt class="py-name">param</tt><tt class="py-op">]</tt> <tt class="py-op">=</tt> <tt class="py-name">desc</tt><tt class="py-op">.</tt><tt id="link-98" 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-98', 'get', 'link-70');">get</a></tt><tt class="py-op">(</tt><tt class="py-string">'type'</tt><tt class="py-op">,</tt> <tt class="py-string">'string'</tt><tt class="py-op">)</tt> </tt>
+<a name="L433"></a><tt class="py-lineno">433</tt> <tt class="py-line"> </tt>
+<a name="L434"></a><tt class="py-lineno">434</tt> <tt class="py-line"> <tt class="py-keyword">for</tt> <tt class="py-name">match</tt> <tt class="py-keyword">in</tt> <tt id="link-99" class="py-name"><a title="apiclient.discovery.URITEMPLATE" class="py-name" href="#" onclick="return doclink('link-99', 'URITEMPLATE', 'link-40');">URITEMPLATE</a></tt><tt class="py-op">.</tt><tt class="py-name">finditer</tt><tt class="py-op">(</tt><tt class="py-name">pathUrl</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+<a name="L435"></a><tt class="py-lineno">435</tt> <tt class="py-line"> <tt class="py-keyword">for</tt> <tt class="py-name">namematch</tt> <tt class="py-keyword">in</tt> <tt id="link-100" class="py-name"><a title="apiclient.discovery.VARNAME" class="py-name" href="#" onclick="return doclink('link-100', 'VARNAME', 'link-41');">VARNAME</a></tt><tt class="py-op">.</tt><tt class="py-name">finditer</tt><tt class="py-op">(</tt><tt class="py-name">match</tt><tt class="py-op">.</tt><tt class="py-name">group</tt><tt class="py-op">(</tt><tt class="py-number">0</tt><tt class="py-op">)</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+<a name="L436"></a><tt class="py-lineno">436</tt> <tt class="py-line"> <tt class="py-name">name</tt> <tt class="py-op">=</tt> <tt id="link-101" class="py-name"><a title="apiclient.discovery.key2param" class="py-name" href="#" onclick="return doclink('link-101', 'key2param', 'link-90');">key2param</a></tt><tt class="py-op">(</tt><tt class="py-name">namematch</tt><tt class="py-op">.</tt><tt class="py-name">group</tt><tt class="py-op">(</tt><tt class="py-number">0</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
+<a name="L437"></a><tt class="py-lineno">437</tt> <tt class="py-line"> <tt class="py-name">path_params</tt><tt class="py-op">[</tt><tt class="py-name">name</tt><tt class="py-op">]</tt> <tt class="py-op">=</tt> <tt class="py-name">name</tt> </tt>
+<a name="L438"></a><tt class="py-lineno">438</tt> <tt class="py-line"> <tt class="py-keyword">if</tt> <tt class="py-name">name</tt> <tt class="py-keyword">in</tt> <tt id="link-102" class="py-name"><a title="oauth2client.tools.ClientRedirectServer.query_params" class="py-name" href="#" onclick="return doclink('link-102', 'query_params', 'link-89');">query_params</a></tt><tt class="py-op">:</tt> </tt>
+<a name="L439"></a><tt class="py-lineno">439</tt> <tt class="py-line"> <tt id="link-103" class="py-name"><a title="oauth2client.tools.ClientRedirectServer.query_params" class="py-name" href="#" onclick="return doclink('link-103', 'query_params', 'link-89');">query_params</a></tt><tt class="py-op">.</tt><tt class="py-name">remove</tt><tt class="py-op">(</tt><tt class="py-name">name</tt><tt class="py-op">)</tt> </tt>
+<a name="L440"></a><tt class="py-lineno">440</tt> <tt class="py-line"> </tt>
+<a name="L441"></a><tt class="py-lineno">441</tt> <tt class="py-line"> <tt class="py-keyword">def</tt> <tt class="py-def-name">method</tt><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">,</tt> <tt class="py-op">**</tt><tt class="py-param">kwargs</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+<a name="L442"></a><tt class="py-lineno">442</tt> <tt class="py-line"> <tt class="py-comment"># Don't bother with doc string, it will be over-written by createMethod.</tt> </tt>
+<a name="L443"></a><tt class="py-lineno">443</tt> <tt class="py-line"> <tt class="py-keyword">for</tt> <tt class="py-name">name</tt> <tt class="py-keyword">in</tt> <tt class="py-name">kwargs</tt><tt class="py-op">.</tt><tt class="py-name">iterkeys</tt><tt class="py-op">(</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+<a name="L444"></a><tt class="py-lineno">444</tt> <tt class="py-line"> <tt class="py-keyword">if</tt> <tt class="py-name">name</tt> <tt class="py-keyword">not</tt> <tt class="py-keyword">in</tt> <tt class="py-name">argmap</tt><tt class="py-op">:</tt> </tt>
+<a name="L445"></a><tt class="py-lineno">445</tt> <tt class="py-line"> <tt class="py-keyword">raise</tt> <tt class="py-name">TypeError</tt><tt class="py-op">(</tt><tt class="py-string">'Got an unexpected keyword argument "%s"'</tt> <tt class="py-op">%</tt> <tt class="py-name">name</tt><tt class="py-op">)</tt> </tt>
+<a name="L446"></a><tt class="py-lineno">446</tt> <tt class="py-line"> </tt>
+<a name="L447"></a><tt class="py-lineno">447</tt> <tt class="py-line"> <tt class="py-keyword">for</tt> <tt class="py-name">name</tt> <tt class="py-keyword">in</tt> <tt class="py-name">required_params</tt><tt class="py-op">:</tt> </tt>
+<a name="L448"></a><tt class="py-lineno">448</tt> <tt class="py-line"> <tt class="py-keyword">if</tt> <tt class="py-name">name</tt> <tt class="py-keyword">not</tt> <tt class="py-keyword">in</tt> <tt class="py-name">kwargs</tt><tt class="py-op">:</tt> </tt>
+<a name="L449"></a><tt class="py-lineno">449</tt> <tt class="py-line"> <tt class="py-keyword">raise</tt> <tt class="py-name">TypeError</tt><tt class="py-op">(</tt><tt class="py-string">'Missing required parameter "%s"'</tt> <tt class="py-op">%</tt> <tt class="py-name">name</tt><tt class="py-op">)</tt> </tt>
+<a name="L450"></a><tt class="py-lineno">450</tt> <tt class="py-line"> </tt>
+<a name="L451"></a><tt class="py-lineno">451</tt> <tt class="py-line"> <tt class="py-keyword">for</tt> <tt class="py-name">name</tt><tt class="py-op">,</tt> <tt class="py-name">regex</tt> <tt class="py-keyword">in</tt> <tt class="py-name">pattern_params</tt><tt class="py-op">.</tt><tt class="py-name">iteritems</tt><tt class="py-op">(</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+<a name="L452"></a><tt class="py-lineno">452</tt> <tt class="py-line"> <tt class="py-keyword">if</tt> <tt class="py-name">name</tt> <tt class="py-keyword">in</tt> <tt class="py-name">kwargs</tt><tt class="py-op">:</tt> </tt>
+<a name="L453"></a><tt class="py-lineno">453</tt> <tt class="py-line"> <tt class="py-keyword">if</tt> <tt class="py-name">isinstance</tt><tt class="py-op">(</tt><tt class="py-name">kwargs</tt><tt class="py-op">[</tt><tt class="py-name">name</tt><tt class="py-op">]</tt><tt class="py-op">,</tt> <tt class="py-name">basestring</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+<a name="L454"></a><tt class="py-lineno">454</tt> <tt class="py-line"> <tt class="py-name">pvalues</tt> <tt class="py-op">=</tt> <tt class="py-op">[</tt><tt class="py-name">kwargs</tt><tt class="py-op">[</tt><tt class="py-name">name</tt><tt class="py-op">]</tt><tt class="py-op">]</tt> </tt>
+<a name="L455"></a><tt class="py-lineno">455</tt> <tt class="py-line"> <tt class="py-keyword">else</tt><tt class="py-op">:</tt> </tt>
+<a name="L456"></a><tt class="py-lineno">456</tt> <tt class="py-line"> <tt class="py-name">pvalues</tt> <tt class="py-op">=</tt> <tt class="py-name">kwargs</tt><tt class="py-op">[</tt><tt class="py-name">name</tt><tt class="py-op">]</tt> </tt>
+<a name="L457"></a><tt class="py-lineno">457</tt> <tt class="py-line"> <tt class="py-keyword">for</tt> <tt class="py-name">pvalue</tt> <tt class="py-keyword">in</tt> <tt class="py-name">pvalues</tt><tt class="py-op">:</tt> </tt>
+<a name="L458"></a><tt class="py-lineno">458</tt> <tt class="py-line"> <tt class="py-keyword">if</tt> <tt class="py-name">re</tt><tt class="py-op">.</tt><tt class="py-name">match</tt><tt class="py-op">(</tt><tt class="py-name">regex</tt><tt class="py-op">,</tt> <tt class="py-name">pvalue</tt><tt class="py-op">)</tt> <tt class="py-keyword">is</tt> <tt class="py-name">None</tt><tt class="py-op">:</tt> </tt>
+<a name="L459"></a><tt class="py-lineno">459</tt> <tt class="py-line"> <tt class="py-keyword">raise</tt> <tt class="py-name">TypeError</tt><tt class="py-op">(</tt> </tt>
+<a name="L460"></a><tt class="py-lineno">460</tt> <tt class="py-line"> <tt class="py-string">'Parameter "%s" value "%s" does not match the pattern "%s"'</tt> <tt class="py-op">%</tt> </tt>
+<a name="L461"></a><tt class="py-lineno">461</tt> <tt class="py-line"> <tt class="py-op">(</tt><tt class="py-name">name</tt><tt class="py-op">,</tt> <tt class="py-name">pvalue</tt><tt class="py-op">,</tt> <tt class="py-name">regex</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
+<a name="L462"></a><tt class="py-lineno">462</tt> <tt class="py-line"> </tt>
+<a name="L463"></a><tt class="py-lineno">463</tt> <tt class="py-line"> <tt class="py-keyword">for</tt> <tt class="py-name">name</tt><tt class="py-op">,</tt> <tt class="py-name">enums</tt> <tt class="py-keyword">in</tt> <tt class="py-name">enum_params</tt><tt class="py-op">.</tt><tt class="py-name">iteritems</tt><tt class="py-op">(</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+<a name="L464"></a><tt class="py-lineno">464</tt> <tt class="py-line"> <tt class="py-keyword">if</tt> <tt class="py-name">name</tt> <tt class="py-keyword">in</tt> <tt class="py-name">kwargs</tt><tt class="py-op">:</tt> </tt>
+<a name="L465"></a><tt class="py-lineno">465</tt> <tt class="py-line"> <tt class="py-comment"># We need to handle the case of a repeated enum</tt> </tt>
+<a name="L466"></a><tt class="py-lineno">466</tt> <tt class="py-line"> <tt class="py-comment"># name differently, since we want to handle both</tt> </tt>
+<a name="L467"></a><tt class="py-lineno">467</tt> <tt class="py-line"> <tt class="py-comment"># arg='value' and arg=['value1', 'value2']</tt> </tt>
+<a name="L468"></a><tt class="py-lineno">468</tt> <tt class="py-line"> <tt class="py-keyword">if</tt> <tt class="py-op">(</tt><tt class="py-name">name</tt> <tt class="py-keyword">in</tt> <tt class="py-name">repeated_params</tt> <tt class="py-keyword">and</tt> </tt>
+<a name="L469"></a><tt class="py-lineno">469</tt> <tt class="py-line"> <tt class="py-keyword">not</tt> <tt class="py-name">isinstance</tt><tt class="py-op">(</tt><tt class="py-name">kwargs</tt><tt class="py-op">[</tt><tt class="py-name">name</tt><tt class="py-op">]</tt><tt class="py-op">,</tt> <tt class="py-name">basestring</tt><tt class="py-op">)</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+<a name="L470"></a><tt class="py-lineno">470</tt> <tt class="py-line"> <tt class="py-name">values</tt> <tt class="py-op">=</tt> <tt class="py-name">kwargs</tt><tt class="py-op">[</tt><tt class="py-name">name</tt><tt class="py-op">]</tt> </tt>
+<a name="L471"></a><tt class="py-lineno">471</tt> <tt class="py-line"> <tt class="py-keyword">else</tt><tt class="py-op">:</tt> </tt>
+<a name="L472"></a><tt class="py-lineno">472</tt> <tt class="py-line"> <tt class="py-name">values</tt> <tt class="py-op">=</tt> <tt class="py-op">[</tt><tt class="py-name">kwargs</tt><tt class="py-op">[</tt><tt class="py-name">name</tt><tt class="py-op">]</tt><tt class="py-op">]</tt> </tt>
+<a name="L473"></a><tt class="py-lineno">473</tt> <tt class="py-line"> <tt class="py-keyword">for</tt> <tt class="py-name">value</tt> <tt class="py-keyword">in</tt> <tt class="py-name">values</tt><tt class="py-op">:</tt> </tt>
+<a name="L474"></a><tt class="py-lineno">474</tt> <tt class="py-line"> <tt class="py-keyword">if</tt> <tt class="py-name">value</tt> <tt class="py-keyword">not</tt> <tt class="py-keyword">in</tt> <tt class="py-name">enums</tt><tt class="py-op">:</tt> </tt>
+<a name="L475"></a><tt class="py-lineno">475</tt> <tt class="py-line"> <tt class="py-keyword">raise</tt> <tt class="py-name">TypeError</tt><tt class="py-op">(</tt> </tt>
+<a name="L476"></a><tt class="py-lineno">476</tt> <tt class="py-line"> <tt class="py-string">'Parameter "%s" value "%s" is not an allowed value in "%s"'</tt> <tt class="py-op">%</tt> </tt>
+<a name="L477"></a><tt class="py-lineno">477</tt> <tt class="py-line"> <tt class="py-op">(</tt><tt class="py-name">name</tt><tt class="py-op">,</tt> <tt class="py-name">value</tt><tt class="py-op">,</tt> <tt class="py-name">str</tt><tt class="py-op">(</tt><tt class="py-name">enums</tt><tt class="py-op">)</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
+<a name="L478"></a><tt class="py-lineno">478</tt> <tt class="py-line"> </tt>
+<a name="L479"></a><tt class="py-lineno">479</tt> <tt class="py-line"> <tt class="py-name">actual_query_params</tt> <tt class="py-op">=</tt> <tt class="py-op">{</tt><tt class="py-op">}</tt> </tt>
+<a name="L480"></a><tt class="py-lineno">480</tt> <tt class="py-line"> <tt class="py-name">actual_path_params</tt> <tt class="py-op">=</tt> <tt class="py-op">{</tt><tt class="py-op">}</tt> </tt>
+<a name="L481"></a><tt class="py-lineno">481</tt> <tt class="py-line"> <tt class="py-keyword">for</tt> <tt class="py-name">key</tt><tt class="py-op">,</tt> <tt class="py-name">value</tt> <tt class="py-keyword">in</tt> <tt class="py-name">kwargs</tt><tt class="py-op">.</tt><tt class="py-name">iteritems</tt><tt class="py-op">(</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+<a name="L482"></a><tt class="py-lineno">482</tt> <tt class="py-line"> <tt class="py-name">to_type</tt> <tt class="py-op">=</tt> <tt class="py-name">param_type</tt><tt class="py-op">.</tt><tt id="link-104" 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-104', 'get', 'link-70');">get</a></tt><tt class="py-op">(</tt><tt class="py-name">key</tt><tt class="py-op">,</tt> <tt class="py-string">'string'</tt><tt class="py-op">)</tt> </tt>
+<a name="L483"></a><tt class="py-lineno">483</tt> <tt class="py-line"> <tt class="py-comment"># For repeated parameters we cast each member of the list.</tt> </tt>
+<a name="L484"></a><tt class="py-lineno">484</tt> <tt class="py-line"> <tt class="py-keyword">if</tt> <tt class="py-name">key</tt> <tt class="py-keyword">in</tt> <tt class="py-name">repeated_params</tt> <tt class="py-keyword">and</tt> <tt class="py-name">type</tt><tt class="py-op">(</tt><tt class="py-name">value</tt><tt class="py-op">)</tt> <tt class="py-op">==</tt> <tt class="py-name">type</tt><tt class="py-op">(</tt><tt class="py-op">[</tt><tt class="py-op">]</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+<a name="L485"></a><tt class="py-lineno">485</tt> <tt class="py-line"> <tt class="py-name">cast_value</tt> <tt class="py-op">=</tt> <tt class="py-op">[</tt><tt id="link-105" class="py-name" targets="Function apiclient.discovery._cast()=apiclient.discovery-module.html#_cast"><a title="apiclient.discovery._cast" class="py-name" href="#" onclick="return doclink('link-105', '_cast', 'link-105');">_cast</a></tt><tt class="py-op">(</tt><tt class="py-name">x</tt><tt class="py-op">,</tt> <tt class="py-name">to_type</tt><tt class="py-op">)</tt> <tt class="py-keyword">for</tt> <tt class="py-name">x</tt> <tt class="py-keyword">in</tt> <tt class="py-name">value</tt><tt class="py-op">]</tt> </tt>
+<a name="L486"></a><tt class="py-lineno">486</tt> <tt class="py-line"> <tt class="py-keyword">else</tt><tt class="py-op">:</tt> </tt>
+<a name="L487"></a><tt class="py-lineno">487</tt> <tt class="py-line"> <tt class="py-name">cast_value</tt> <tt class="py-op">=</tt> <tt id="link-106" class="py-name"><a title="apiclient.discovery._cast" class="py-name" href="#" onclick="return doclink('link-106', '_cast', 'link-105');">_cast</a></tt><tt class="py-op">(</tt><tt class="py-name">value</tt><tt class="py-op">,</tt> <tt class="py-name">to_type</tt><tt class="py-op">)</tt> </tt>
+<a name="L488"></a><tt class="py-lineno">488</tt> <tt class="py-line"> <tt class="py-keyword">if</tt> <tt class="py-name">key</tt> <tt class="py-keyword">in</tt> <tt id="link-107" class="py-name"><a title="oauth2client.tools.ClientRedirectServer.query_params" class="py-name" href="#" onclick="return doclink('link-107', 'query_params', 'link-89');">query_params</a></tt><tt class="py-op">:</tt> </tt>
+<a name="L489"></a><tt class="py-lineno">489</tt> <tt class="py-line"> <tt class="py-name">actual_query_params</tt><tt class="py-op">[</tt><tt class="py-name">argmap</tt><tt class="py-op">[</tt><tt class="py-name">key</tt><tt class="py-op">]</tt><tt class="py-op">]</tt> <tt class="py-op">=</tt> <tt class="py-name">cast_value</tt> </tt>
+<a name="L490"></a><tt class="py-lineno">490</tt> <tt class="py-line"> <tt class="py-keyword">if</tt> <tt class="py-name">key</tt> <tt class="py-keyword">in</tt> <tt class="py-name">path_params</tt><tt class="py-op">:</tt> </tt>
+<a name="L491"></a><tt class="py-lineno">491</tt> <tt class="py-line"> <tt class="py-name">actual_path_params</tt><tt class="py-op">[</tt><tt class="py-name">argmap</tt><tt class="py-op">[</tt><tt class="py-name">key</tt><tt class="py-op">]</tt><tt class="py-op">]</tt> <tt class="py-op">=</tt> <tt class="py-name">cast_value</tt> </tt>
+<a name="L492"></a><tt class="py-lineno">492</tt> <tt class="py-line"> <tt class="py-name">body_value</tt> <tt class="py-op">=</tt> <tt class="py-name">kwargs</tt><tt class="py-op">.</tt><tt id="link-108" 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-108', 'get', 'link-70');">get</a></tt><tt class="py-op">(</tt><tt class="py-string">'body'</tt><tt class="py-op">,</tt> <tt class="py-name">None</tt><tt class="py-op">)</tt> </tt>
+<a name="L493"></a><tt class="py-lineno">493</tt> <tt class="py-line"> <tt class="py-name">media_filename</tt> <tt class="py-op">=</tt> <tt class="py-name">kwargs</tt><tt class="py-op">.</tt><tt id="link-109" 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-109', 'get', 'link-70');">get</a></tt><tt class="py-op">(</tt><tt class="py-string">'media_body'</tt><tt class="py-op">,</tt> <tt class="py-name">None</tt><tt class="py-op">)</tt> </tt>
+<a name="L494"></a><tt class="py-lineno">494</tt> <tt class="py-line"> </tt>
+<a name="L495"></a><tt class="py-lineno">495</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">_developerKey</tt><tt class="py-op">:</tt> </tt>
+<a name="L496"></a><tt class="py-lineno">496</tt> <tt class="py-line"> <tt class="py-name">actual_query_params</tt><tt class="py-op">[</tt><tt class="py-string">'key'</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">_developerKey</tt> </tt>
+<a name="L497"></a><tt class="py-lineno">497</tt> <tt class="py-line"> </tt>
+<a name="L498"></a><tt class="py-lineno">498</tt> <tt class="py-line"> <tt id="link-110" class="py-name"><a title="apiclient.model" class="py-name" href="#" onclick="return doclink('link-110', 'model', 'link-29');">model</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">_model</tt> </tt>
+<a name="L499"></a><tt class="py-lineno">499</tt> <tt class="py-line"> <tt class="py-comment"># If there is no schema for the response then presume a binary blob.</tt> </tt>
+<a name="L500"></a><tt class="py-lineno">500</tt> <tt class="py-line"> <tt class="py-keyword">if</tt> <tt class="py-string">'response'</tt> <tt class="py-keyword">not</tt> <tt class="py-keyword">in</tt> <tt class="py-name">methodDesc</tt><tt class="py-op">:</tt> </tt>
+<a name="L501"></a><tt class="py-lineno">501</tt> <tt class="py-line"> <tt id="link-111" class="py-name"><a title="apiclient.model" class="py-name" href="#" onclick="return doclink('link-111', 'model', 'link-29');">model</a></tt> <tt class="py-op">=</tt> <tt id="link-112" class="py-name"><a title="apiclient.model.RawModel" class="py-name" href="#" onclick="return doclink('link-112', 'RawModel', 'link-33');">RawModel</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
+<a name="L502"></a><tt class="py-lineno">502</tt> <tt class="py-line"> </tt>
+<a name="L503"></a><tt class="py-lineno">503</tt> <tt class="py-line"> <tt class="py-name">headers</tt> <tt class="py-op">=</tt> <tt class="py-op">{</tt><tt class="py-op">}</tt> </tt>
+<a name="L504"></a><tt class="py-lineno">504</tt> <tt class="py-line"> <tt class="py-name">headers</tt><tt class="py-op">,</tt> <tt class="py-name">params</tt><tt class="py-op">,</tt> <tt class="py-name">query</tt><tt class="py-op">,</tt> <tt class="py-name">body</tt> <tt class="py-op">=</tt> <tt id="link-113" class="py-name"><a title="apiclient.model" class="py-name" href="#" onclick="return doclink('link-113', 'model', 'link-29');">model</a></tt><tt class="py-op">.</tt><tt id="link-114" 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-114', 'request', 'link-54');">request</a></tt><tt class="py-op">(</tt><tt class="py-name">headers</tt><tt class="py-op">,</tt> </tt>
-<a name="L472"></a><tt class="py-lineno">472</tt> <tt class="py-line"> <tt class="py-name">actual_path_params</tt><tt class="py-op">,</tt> <tt class="py-name">actual_query_params</tt><tt class="py-op">,</tt> <tt class="py-name">body_value</tt><tt class="py-op">)</tt> </tt>
-<a name="L473"></a><tt class="py-lineno">473</tt> <tt class="py-line"> </tt>
-<a name="L474"></a><tt class="py-lineno">474</tt> <tt class="py-line"> <tt class="py-name">expanded_url</tt> <tt class="py-op">=</tt> <tt class="py-name">uritemplate</tt><tt class="py-op">.</tt><tt class="py-name">expand</tt><tt class="py-op">(</tt><tt class="py-name">pathUrl</tt><tt class="py-op">,</tt> <tt class="py-name">params</tt><tt class="py-op">)</tt> </tt>
-<a name="L475"></a><tt class="py-lineno">475</tt> <tt class="py-line"> <tt class="py-name">url</tt> <tt class="py-op">=</tt> <tt class="py-name">urlparse</tt><tt class="py-op">.</tt><tt class="py-name">urljoin</tt><tt class="py-op">(</tt><tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">_baseUrl</tt><tt class="py-op">,</tt> <tt class="py-name">expanded_url</tt> <tt class="py-op">+</tt> <tt class="py-name">query</tt><tt class="py-op">)</tt> </tt>
-<a name="L476"></a><tt class="py-lineno">476</tt> <tt class="py-line"> </tt>
-<a name="L477"></a><tt class="py-lineno">477</tt> <tt class="py-line"> <tt id="link-115" class="py-name" targets="Method apiclient.http.MediaFileUpload.resumable()=apiclient.http.MediaFileUpload-class.html#resumable,Method apiclient.http.MediaInMemoryUpload.resumable()=apiclient.http.MediaInMemoryUpload-class.html#resumable,Method apiclient.http.MediaUpload.resumable()=apiclient.http.MediaUpload-class.html#resumable"><a title="apiclient.http.MediaFileUpload.resumable
+<a name="L505"></a><tt class="py-lineno">505</tt> <tt class="py-line"> <tt class="py-name">actual_path_params</tt><tt class="py-op">,</tt> <tt class="py-name">actual_query_params</tt><tt class="py-op">,</tt> <tt class="py-name">body_value</tt><tt class="py-op">)</tt> </tt>
+<a name="L506"></a><tt class="py-lineno">506</tt> <tt class="py-line"> </tt>
+<a name="L507"></a><tt class="py-lineno">507</tt> <tt class="py-line"> <tt class="py-name">expanded_url</tt> <tt class="py-op">=</tt> <tt class="py-name">uritemplate</tt><tt class="py-op">.</tt><tt class="py-name">expand</tt><tt class="py-op">(</tt><tt class="py-name">pathUrl</tt><tt class="py-op">,</tt> <tt class="py-name">params</tt><tt class="py-op">)</tt> </tt>
+<a name="L508"></a><tt class="py-lineno">508</tt> <tt class="py-line"> <tt class="py-name">url</tt> <tt class="py-op">=</tt> <tt class="py-name">urlparse</tt><tt class="py-op">.</tt><tt class="py-name">urljoin</tt><tt class="py-op">(</tt><tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">_baseUrl</tt><tt class="py-op">,</tt> <tt class="py-name">expanded_url</tt> <tt class="py-op">+</tt> <tt class="py-name">query</tt><tt class="py-op">)</tt> </tt>
+<a name="L509"></a><tt class="py-lineno">509</tt> <tt class="py-line"> </tt>
+<a name="L510"></a><tt class="py-lineno">510</tt> <tt class="py-line"> <tt id="link-115" class="py-name" targets="Method apiclient.http.MediaFileUpload.resumable()=apiclient.http.MediaFileUpload-class.html#resumable,Method apiclient.http.MediaInMemoryUpload.resumable()=apiclient.http.MediaInMemoryUpload-class.html#resumable,Method apiclient.http.MediaIoBaseUpload.resumable()=apiclient.http.MediaIoBaseUpload-class.html#resumable,Method apiclient.http.MediaUpload.resumable()=apiclient.http.MediaUpload-class.html#resumable"><a title="apiclient.http.MediaFileUpload.resumable
apiclient.http.MediaInMemoryUpload.resumable
+apiclient.http.MediaIoBaseUpload.resumable
apiclient.http.MediaUpload.resumable" class="py-name" href="#" onclick="return doclink('link-115', 'resumable', 'link-115');">resumable</a></tt> <tt class="py-op">=</tt> <tt class="py-name">None</tt> </tt>
-<a name="L478"></a><tt class="py-lineno">478</tt> <tt class="py-line"> <tt class="py-name">multipart_boundary</tt> <tt class="py-op">=</tt> <tt class="py-string">''</tt> </tt>
-<a name="L479"></a><tt class="py-lineno">479</tt> <tt class="py-line"> </tt>
-<a name="L480"></a><tt class="py-lineno">480</tt> <tt class="py-line"> <tt class="py-keyword">if</tt> <tt class="py-name">media_filename</tt><tt class="py-op">:</tt> </tt>
-<a name="L481"></a><tt class="py-lineno">481</tt> <tt class="py-line"> <tt class="py-comment"># Ensure we end up with a valid MediaUpload object.</tt> </tt>
-<a name="L482"></a><tt class="py-lineno">482</tt> <tt class="py-line"> <tt class="py-keyword">if</tt> <tt class="py-name">isinstance</tt><tt class="py-op">(</tt><tt class="py-name">media_filename</tt><tt class="py-op">,</tt> <tt class="py-name">basestring</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-<a name="L483"></a><tt class="py-lineno">483</tt> <tt class="py-line"> <tt class="py-op">(</tt><tt class="py-name">media_mime_type</tt><tt class="py-op">,</tt> <tt class="py-name">encoding</tt><tt class="py-op">)</tt> <tt class="py-op">=</tt> <tt class="py-name">mimetypes</tt><tt class="py-op">.</tt><tt class="py-name">guess_type</tt><tt class="py-op">(</tt><tt class="py-name">media_filename</tt><tt class="py-op">)</tt> </tt>
-<a name="L484"></a><tt class="py-lineno">484</tt> <tt class="py-line"> <tt class="py-keyword">if</tt> <tt class="py-name">media_mime_type</tt> <tt class="py-keyword">is</tt> <tt class="py-name">None</tt><tt class="py-op">:</tt> </tt>
-<a name="L485"></a><tt class="py-lineno">485</tt> <tt class="py-line"> <tt class="py-keyword">raise</tt> <tt class="py-name">UnknownFileType</tt><tt class="py-op">(</tt><tt class="py-name">media_filename</tt><tt class="py-op">)</tt> </tt>
-<a name="L486"></a><tt class="py-lineno">486</tt> <tt class="py-line"> <tt class="py-keyword">if</tt> <tt class="py-keyword">not</tt> <tt id="link-116" class="py-name"><a title="apiclient.mimeparse" class="py-name" href="#" onclick="return doclink('link-116', 'mimeparse', 'link-0');">mimeparse</a></tt><tt class="py-op">.</tt><tt id="link-117" class="py-name" targets="Function apiclient.mimeparse.best_match()=apiclient.mimeparse-module.html#best_match"><a title="apiclient.mimeparse.best_match" class="py-name" href="#" onclick="return doclink('link-117', 'best_match', 'link-117');">best_match</a></tt><tt class="py-op">(</tt><tt class="py-op">[</tt><tt class="py-name">media_mime_type</tt><tt class="py-op">]</tt><tt class="py-op">,</tt> <tt class="py-string">','</tt><tt class="py-op">.</tt><tt class="py-name">join</tt><tt class="py-op">(</tt><tt id="link-118" class="py-name"><a title="apiclient.model.BaseModel.accept
+<a name="L511"></a><tt class="py-lineno">511</tt> <tt class="py-line"> <tt class="py-name">multipart_boundary</tt> <tt class="py-op">=</tt> <tt class="py-string">''</tt> </tt>
+<a name="L512"></a><tt class="py-lineno">512</tt> <tt class="py-line"> </tt>
+<a name="L513"></a><tt class="py-lineno">513</tt> <tt class="py-line"> <tt class="py-keyword">if</tt> <tt class="py-name">media_filename</tt><tt class="py-op">:</tt> </tt>
+<a name="L514"></a><tt class="py-lineno">514</tt> <tt class="py-line"> <tt class="py-comment"># Ensure we end up with a valid MediaUpload object.</tt> </tt>
+<a name="L515"></a><tt class="py-lineno">515</tt> <tt class="py-line"> <tt class="py-keyword">if</tt> <tt class="py-name">isinstance</tt><tt class="py-op">(</tt><tt class="py-name">media_filename</tt><tt class="py-op">,</tt> <tt class="py-name">basestring</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+<a name="L516"></a><tt class="py-lineno">516</tt> <tt class="py-line"> <tt class="py-op">(</tt><tt class="py-name">media_mime_type</tt><tt class="py-op">,</tt> <tt class="py-name">encoding</tt><tt class="py-op">)</tt> <tt class="py-op">=</tt> <tt class="py-name">mimetypes</tt><tt class="py-op">.</tt><tt class="py-name">guess_type</tt><tt class="py-op">(</tt><tt class="py-name">media_filename</tt><tt class="py-op">)</tt> </tt>
+<a name="L517"></a><tt class="py-lineno">517</tt> <tt class="py-line"> <tt class="py-keyword">if</tt> <tt class="py-name">media_mime_type</tt> <tt class="py-keyword">is</tt> <tt class="py-name">None</tt><tt class="py-op">:</tt> </tt>
+<a name="L518"></a><tt class="py-lineno">518</tt> <tt class="py-line"> <tt class="py-keyword">raise</tt> <tt class="py-name">UnknownFileType</tt><tt class="py-op">(</tt><tt class="py-name">media_filename</tt><tt class="py-op">)</tt> </tt>
+<a name="L519"></a><tt class="py-lineno">519</tt> <tt class="py-line"> <tt class="py-keyword">if</tt> <tt class="py-keyword">not</tt> <tt id="link-116" class="py-name"><a title="apiclient.mimeparse" class="py-name" href="#" onclick="return doclink('link-116', 'mimeparse', 'link-0');">mimeparse</a></tt><tt class="py-op">.</tt><tt id="link-117" class="py-name" targets="Function apiclient.mimeparse.best_match()=apiclient.mimeparse-module.html#best_match"><a title="apiclient.mimeparse.best_match" class="py-name" href="#" onclick="return doclink('link-117', 'best_match', 'link-117');">best_match</a></tt><tt class="py-op">(</tt><tt class="py-op">[</tt><tt class="py-name">media_mime_type</tt><tt class="py-op">]</tt><tt class="py-op">,</tt> <tt class="py-string">','</tt><tt class="py-op">.</tt><tt class="py-name">join</tt><tt class="py-op">(</tt><tt id="link-118" class="py-name"><a title="apiclient.model.BaseModel.accept
apiclient.model.JsonModel.accept
apiclient.model.ProtocolBufferModel.accept
-apiclient.model.RawModel.accept" class="py-name" href="#" onclick="return doclink('link-118', 'accept', 'link-84');">accept</a></tt><tt class="py-op">)</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-<a name="L487"></a><tt class="py-lineno">487</tt> <tt class="py-line"> <tt class="py-keyword">raise</tt> <tt id="link-119" class="py-name"><a title="apiclient.errors.UnacceptableMimeTypeError" class="py-name" href="#" onclick="return doclink('link-119', 'UnacceptableMimeTypeError', 'link-12');">UnacceptableMimeTypeError</a></tt><tt class="py-op">(</tt><tt class="py-name">media_mime_type</tt><tt class="py-op">)</tt> </tt>
-<a name="L488"></a><tt class="py-lineno">488</tt> <tt class="py-line"> <tt class="py-name">media_upload</tt> <tt class="py-op">=</tt> <tt id="link-120" class="py-name"><a title="apiclient.http.MediaFileUpload" class="py-name" href="#" onclick="return doclink('link-120', 'MediaFileUpload', 'link-24');">MediaFileUpload</a></tt><tt class="py-op">(</tt><tt class="py-name">media_filename</tt><tt class="py-op">,</tt> <tt class="py-name">media_mime_type</tt><tt class="py-op">)</tt> </tt>
-<a name="L489"></a><tt class="py-lineno">489</tt> <tt class="py-line"> <tt class="py-keyword">elif</tt> <tt class="py-name">isinstance</tt><tt class="py-op">(</tt><tt class="py-name">media_filename</tt><tt class="py-op">,</tt> <tt id="link-121" class="py-name"><a title="apiclient.http.MediaUpload" class="py-name" href="#" onclick="return doclink('link-121', 'MediaUpload', 'link-27');">MediaUpload</a></tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-<a name="L490"></a><tt class="py-lineno">490</tt> <tt class="py-line"> <tt class="py-name">media_upload</tt> <tt class="py-op">=</tt> <tt class="py-name">media_filename</tt> </tt>
-<a name="L491"></a><tt class="py-lineno">491</tt> <tt class="py-line"> <tt class="py-keyword">else</tt><tt class="py-op">:</tt> </tt>
-<a name="L492"></a><tt class="py-lineno">492</tt> <tt class="py-line"> <tt class="py-keyword">raise</tt> <tt class="py-name">TypeError</tt><tt class="py-op">(</tt><tt class="py-string">'media_filename must be str or MediaUpload.'</tt><tt class="py-op">)</tt> </tt>
-<a name="L493"></a><tt class="py-lineno">493</tt> <tt class="py-line"> </tt>
-<a name="L494"></a><tt class="py-lineno">494</tt> <tt class="py-line"> <tt class="py-comment"># Check the maxSize</tt> </tt>
-<a name="L495"></a><tt class="py-lineno">495</tt> <tt class="py-line"> <tt class="py-keyword">if</tt> <tt class="py-name">maxSize</tt> <tt class="py-op">></tt> <tt class="py-number">0</tt> <tt class="py-keyword">and</tt> <tt class="py-name">media_upload</tt><tt class="py-op">.</tt><tt id="link-122" class="py-name" targets="Method apiclient.http.MediaFileUpload.size()=apiclient.http.MediaFileUpload-class.html#size,Method apiclient.http.MediaInMemoryUpload.size()=apiclient.http.MediaInMemoryUpload-class.html#size,Method apiclient.http.MediaUpload.size()=apiclient.http.MediaUpload-class.html#size"><a title="apiclient.http.MediaFileUpload.size
+apiclient.model.RawModel.accept" class="py-name" href="#" onclick="return doclink('link-118', 'accept', 'link-83');">accept</a></tt><tt class="py-op">)</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+<a name="L520"></a><tt class="py-lineno">520</tt> <tt class="py-line"> <tt class="py-keyword">raise</tt> <tt id="link-119" class="py-name"><a title="apiclient.errors.UnacceptableMimeTypeError" class="py-name" href="#" onclick="return doclink('link-119', 'UnacceptableMimeTypeError', 'link-12');">UnacceptableMimeTypeError</a></tt><tt class="py-op">(</tt><tt class="py-name">media_mime_type</tt><tt class="py-op">)</tt> </tt>
+<a name="L521"></a><tt class="py-lineno">521</tt> <tt class="py-line"> <tt class="py-name">media_upload</tt> <tt class="py-op">=</tt> <tt id="link-120" class="py-name"><a title="apiclient.http.MediaFileUpload" class="py-name" href="#" onclick="return doclink('link-120', 'MediaFileUpload', 'link-24');">MediaFileUpload</a></tt><tt class="py-op">(</tt><tt class="py-name">media_filename</tt><tt class="py-op">,</tt> <tt class="py-name">media_mime_type</tt><tt class="py-op">)</tt> </tt>
+<a name="L522"></a><tt class="py-lineno">522</tt> <tt class="py-line"> <tt class="py-keyword">elif</tt> <tt class="py-name">isinstance</tt><tt class="py-op">(</tt><tt class="py-name">media_filename</tt><tt class="py-op">,</tt> <tt id="link-121" class="py-name"><a title="apiclient.http.MediaUpload" class="py-name" href="#" onclick="return doclink('link-121', 'MediaUpload', 'link-27');">MediaUpload</a></tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+<a name="L523"></a><tt class="py-lineno">523</tt> <tt class="py-line"> <tt class="py-name">media_upload</tt> <tt class="py-op">=</tt> <tt class="py-name">media_filename</tt> </tt>
+<a name="L524"></a><tt class="py-lineno">524</tt> <tt class="py-line"> <tt class="py-keyword">else</tt><tt class="py-op">:</tt> </tt>
+<a name="L525"></a><tt class="py-lineno">525</tt> <tt class="py-line"> <tt class="py-keyword">raise</tt> <tt class="py-name">TypeError</tt><tt class="py-op">(</tt><tt class="py-string">'media_filename must be str or MediaUpload.'</tt><tt class="py-op">)</tt> </tt>
+<a name="L526"></a><tt class="py-lineno">526</tt> <tt class="py-line"> </tt>
+<a name="L527"></a><tt class="py-lineno">527</tt> <tt class="py-line"> <tt class="py-comment"># Check the maxSize</tt> </tt>
+<a name="L528"></a><tt class="py-lineno">528</tt> <tt class="py-line"> <tt class="py-keyword">if</tt> <tt class="py-name">maxSize</tt> <tt class="py-op">></tt> <tt class="py-number">0</tt> <tt class="py-keyword">and</tt> <tt class="py-name">media_upload</tt><tt class="py-op">.</tt><tt id="link-122" class="py-name" targets="Method apiclient.http.MediaFileUpload.size()=apiclient.http.MediaFileUpload-class.html#size,Method apiclient.http.MediaInMemoryUpload.size()=apiclient.http.MediaInMemoryUpload-class.html#size,Method apiclient.http.MediaIoBaseUpload.size()=apiclient.http.MediaIoBaseUpload-class.html#size,Method apiclient.http.MediaUpload.size()=apiclient.http.MediaUpload-class.html#size"><a title="apiclient.http.MediaFileUpload.size
apiclient.http.MediaInMemoryUpload.size
+apiclient.http.MediaIoBaseUpload.size
apiclient.http.MediaUpload.size" class="py-name" href="#" onclick="return doclink('link-122', 'size', 'link-122');">size</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt> <tt class="py-op">></tt> <tt class="py-name">maxSize</tt><tt class="py-op">:</tt> </tt>
-<a name="L496"></a><tt class="py-lineno">496</tt> <tt class="py-line"> <tt class="py-keyword">raise</tt> <tt id="link-123" class="py-name"><a title="apiclient.errors.MediaUploadSizeError" class="py-name" href="#" onclick="return doclink('link-123', 'MediaUploadSizeError', 'link-9');">MediaUploadSizeError</a></tt><tt class="py-op">(</tt><tt class="py-string">"Media larger than: %s"</tt> <tt class="py-op">%</tt> <tt class="py-name">maxSize</tt><tt class="py-op">)</tt> </tt>
-<a name="L497"></a><tt class="py-lineno">497</tt> <tt class="py-line"> </tt>
-<a name="L498"></a><tt class="py-lineno">498</tt> <tt class="py-line"> <tt class="py-comment"># Use the media path uri for media uploads</tt> </tt>
-<a name="L499"></a><tt class="py-lineno">499</tt> <tt class="py-line"> <tt class="py-name">expanded_url</tt> <tt class="py-op">=</tt> <tt class="py-name">uritemplate</tt><tt class="py-op">.</tt><tt class="py-name">expand</tt><tt class="py-op">(</tt><tt class="py-name">mediaPathUrl</tt><tt class="py-op">,</tt> <tt class="py-name">params</tt><tt class="py-op">)</tt> </tt>
-<a name="L500"></a><tt class="py-lineno">500</tt> <tt class="py-line"> <tt class="py-name">url</tt> <tt class="py-op">=</tt> <tt class="py-name">urlparse</tt><tt class="py-op">.</tt><tt class="py-name">urljoin</tt><tt class="py-op">(</tt><tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">_baseUrl</tt><tt class="py-op">,</tt> <tt class="py-name">expanded_url</tt> <tt class="py-op">+</tt> <tt class="py-name">query</tt><tt class="py-op">)</tt> </tt>
-<a name="L501"></a><tt class="py-lineno">501</tt> <tt class="py-line"> <tt class="py-keyword">if</tt> <tt class="py-name">media_upload</tt><tt class="py-op">.</tt><tt id="link-124" class="py-name"><a title="apiclient.http.MediaFileUpload.resumable
+<a name="L529"></a><tt class="py-lineno">529</tt> <tt class="py-line"> <tt class="py-keyword">raise</tt> <tt id="link-123" class="py-name"><a title="apiclient.errors.MediaUploadSizeError" class="py-name" href="#" onclick="return doclink('link-123', 'MediaUploadSizeError', 'link-9');">MediaUploadSizeError</a></tt><tt class="py-op">(</tt><tt class="py-string">"Media larger than: %s"</tt> <tt class="py-op">%</tt> <tt class="py-name">maxSize</tt><tt class="py-op">)</tt> </tt>
+<a name="L530"></a><tt class="py-lineno">530</tt> <tt class="py-line"> </tt>
+<a name="L531"></a><tt class="py-lineno">531</tt> <tt class="py-line"> <tt class="py-comment"># Use the media path uri for media uploads</tt> </tt>
+<a name="L532"></a><tt class="py-lineno">532</tt> <tt class="py-line"> <tt class="py-name">expanded_url</tt> <tt class="py-op">=</tt> <tt class="py-name">uritemplate</tt><tt class="py-op">.</tt><tt class="py-name">expand</tt><tt class="py-op">(</tt><tt class="py-name">mediaPathUrl</tt><tt class="py-op">,</tt> <tt class="py-name">params</tt><tt class="py-op">)</tt> </tt>
+<a name="L533"></a><tt class="py-lineno">533</tt> <tt class="py-line"> <tt class="py-name">url</tt> <tt class="py-op">=</tt> <tt class="py-name">urlparse</tt><tt class="py-op">.</tt><tt class="py-name">urljoin</tt><tt class="py-op">(</tt><tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">_baseUrl</tt><tt class="py-op">,</tt> <tt class="py-name">expanded_url</tt> <tt class="py-op">+</tt> <tt class="py-name">query</tt><tt class="py-op">)</tt> </tt>
+<a name="L534"></a><tt class="py-lineno">534</tt> <tt class="py-line"> <tt class="py-keyword">if</tt> <tt class="py-name">media_upload</tt><tt class="py-op">.</tt><tt id="link-124" class="py-name"><a title="apiclient.http.MediaFileUpload.resumable
apiclient.http.MediaInMemoryUpload.resumable
+apiclient.http.MediaIoBaseUpload.resumable
apiclient.http.MediaUpload.resumable" class="py-name" href="#" onclick="return doclink('link-124', 'resumable', 'link-115');">resumable</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-<a name="L502"></a><tt class="py-lineno">502</tt> <tt class="py-line"> <tt class="py-name">url</tt> <tt class="py-op">=</tt> <tt id="link-125" class="py-name"><a title="apiclient.discovery._add_query_parameter" class="py-name" href="#" onclick="return doclink('link-125', '_add_query_parameter', 'link-51');">_add_query_parameter</a></tt><tt class="py-op">(</tt><tt class="py-name">url</tt><tt class="py-op">,</tt> <tt class="py-string">'uploadType'</tt><tt class="py-op">,</tt> <tt class="py-string">'resumable'</tt><tt class="py-op">)</tt> </tt>
-<a name="L503"></a><tt class="py-lineno">503</tt> <tt class="py-line"> </tt>
-<a name="L504"></a><tt class="py-lineno">504</tt> <tt class="py-line"> <tt class="py-keyword">if</tt> <tt class="py-name">media_upload</tt><tt class="py-op">.</tt><tt id="link-126" class="py-name"><a title="apiclient.http.MediaFileUpload.resumable
+<a name="L535"></a><tt class="py-lineno">535</tt> <tt class="py-line"> <tt class="py-name">url</tt> <tt class="py-op">=</tt> <tt id="link-125" class="py-name"><a title="apiclient.discovery._add_query_parameter" class="py-name" href="#" onclick="return doclink('link-125', '_add_query_parameter', 'link-51');">_add_query_parameter</a></tt><tt class="py-op">(</tt><tt class="py-name">url</tt><tt class="py-op">,</tt> <tt class="py-string">'uploadType'</tt><tt class="py-op">,</tt> <tt class="py-string">'resumable'</tt><tt class="py-op">)</tt> </tt>
+<a name="L536"></a><tt class="py-lineno">536</tt> <tt class="py-line"> </tt>
+<a name="L537"></a><tt class="py-lineno">537</tt> <tt class="py-line"> <tt class="py-keyword">if</tt> <tt class="py-name">media_upload</tt><tt class="py-op">.</tt><tt id="link-126" class="py-name"><a title="apiclient.http.MediaFileUpload.resumable
apiclient.http.MediaInMemoryUpload.resumable
+apiclient.http.MediaIoBaseUpload.resumable
apiclient.http.MediaUpload.resumable" class="py-name" href="#" onclick="return doclink('link-126', 'resumable', 'link-115');">resumable</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-<a name="L505"></a><tt class="py-lineno">505</tt> <tt class="py-line"> <tt class="py-comment"># This is all we need to do for resumable, if the body exists it gets</tt> </tt>
-<a name="L506"></a><tt class="py-lineno">506</tt> <tt class="py-line"> <tt class="py-comment"># sent in the first request, otherwise an empty body is sent.</tt> </tt>
-<a name="L507"></a><tt class="py-lineno">507</tt> <tt class="py-line"> <tt id="link-127" class="py-name"><a title="apiclient.http.MediaFileUpload.resumable
+<a name="L538"></a><tt class="py-lineno">538</tt> <tt class="py-line"> <tt class="py-comment"># This is all we need to do for resumable, if the body exists it gets</tt> </tt>
+<a name="L539"></a><tt class="py-lineno">539</tt> <tt class="py-line"> <tt class="py-comment"># sent in the first request, otherwise an empty body is sent.</tt> </tt>
+<a name="L540"></a><tt class="py-lineno">540</tt> <tt class="py-line"> <tt id="link-127" class="py-name"><a title="apiclient.http.MediaFileUpload.resumable
apiclient.http.MediaInMemoryUpload.resumable
+apiclient.http.MediaIoBaseUpload.resumable
apiclient.http.MediaUpload.resumable" class="py-name" href="#" onclick="return doclink('link-127', 'resumable', 'link-115');">resumable</a></tt> <tt class="py-op">=</tt> <tt class="py-name">media_upload</tt> </tt>
-<a name="L508"></a><tt class="py-lineno">508</tt> <tt class="py-line"> <tt class="py-keyword">else</tt><tt class="py-op">:</tt> </tt>
-<a name="L509"></a><tt class="py-lineno">509</tt> <tt class="py-line"> <tt class="py-comment"># A non-resumable upload</tt> </tt>
-<a name="L510"></a><tt class="py-lineno">510</tt> <tt class="py-line"> <tt class="py-keyword">if</tt> <tt class="py-name">body</tt> <tt class="py-keyword">is</tt> <tt class="py-name">None</tt><tt class="py-op">:</tt> </tt>
-<a name="L511"></a><tt class="py-lineno">511</tt> <tt class="py-line"> <tt class="py-comment"># This is a simple media upload</tt> </tt>
-<a name="L512"></a><tt class="py-lineno">512</tt> <tt class="py-line"> <tt class="py-name">headers</tt><tt class="py-op">[</tt><tt class="py-string">'content-type'</tt><tt class="py-op">]</tt> <tt class="py-op">=</tt> <tt class="py-name">media_upload</tt><tt class="py-op">.</tt><tt id="link-128" class="py-name" targets="Method apiclient.http.MediaFileUpload.mimetype()=apiclient.http.MediaFileUpload-class.html#mimetype,Method apiclient.http.MediaInMemoryUpload.mimetype()=apiclient.http.MediaInMemoryUpload-class.html#mimetype,Method apiclient.http.MediaUpload.mimetype()=apiclient.http.MediaUpload-class.html#mimetype"><a title="apiclient.http.MediaFileUpload.mimetype
+<a name="L541"></a><tt class="py-lineno">541</tt> <tt class="py-line"> <tt class="py-keyword">else</tt><tt class="py-op">:</tt> </tt>
+<a name="L542"></a><tt class="py-lineno">542</tt> <tt class="py-line"> <tt class="py-comment"># A non-resumable upload</tt> </tt>
+<a name="L543"></a><tt class="py-lineno">543</tt> <tt class="py-line"> <tt class="py-keyword">if</tt> <tt class="py-name">body</tt> <tt class="py-keyword">is</tt> <tt class="py-name">None</tt><tt class="py-op">:</tt> </tt>
+<a name="L544"></a><tt class="py-lineno">544</tt> <tt class="py-line"> <tt class="py-comment"># This is a simple media upload</tt> </tt>
+<a name="L545"></a><tt class="py-lineno">545</tt> <tt class="py-line"> <tt class="py-name">headers</tt><tt class="py-op">[</tt><tt class="py-string">'content-type'</tt><tt class="py-op">]</tt> <tt class="py-op">=</tt> <tt class="py-name">media_upload</tt><tt class="py-op">.</tt><tt id="link-128" class="py-name" targets="Method apiclient.http.MediaFileUpload.mimetype()=apiclient.http.MediaFileUpload-class.html#mimetype,Method apiclient.http.MediaInMemoryUpload.mimetype()=apiclient.http.MediaInMemoryUpload-class.html#mimetype,Method apiclient.http.MediaIoBaseUpload.mimetype()=apiclient.http.MediaIoBaseUpload-class.html#mimetype,Method apiclient.http.MediaUpload.mimetype()=apiclient.http.MediaUpload-class.html#mimetype"><a title="apiclient.http.MediaFileUpload.mimetype
apiclient.http.MediaInMemoryUpload.mimetype
+apiclient.http.MediaIoBaseUpload.mimetype
apiclient.http.MediaUpload.mimetype" class="py-name" href="#" onclick="return doclink('link-128', 'mimetype', 'link-128');">mimetype</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
-<a name="L513"></a><tt class="py-lineno">513</tt> <tt class="py-line"> <tt class="py-name">body</tt> <tt class="py-op">=</tt> <tt class="py-name">media_upload</tt><tt class="py-op">.</tt><tt id="link-129" class="py-name" targets="Method apiclient.http.MediaFileUpload.getbytes()=apiclient.http.MediaFileUpload-class.html#getbytes,Method apiclient.http.MediaInMemoryUpload.getbytes()=apiclient.http.MediaInMemoryUpload-class.html#getbytes,Method apiclient.http.MediaUpload.getbytes()=apiclient.http.MediaUpload-class.html#getbytes"><a title="apiclient.http.MediaFileUpload.getbytes
+<a name="L546"></a><tt class="py-lineno">546</tt> <tt class="py-line"> <tt class="py-name">body</tt> <tt class="py-op">=</tt> <tt class="py-name">media_upload</tt><tt class="py-op">.</tt><tt id="link-129" class="py-name" targets="Method apiclient.http.MediaFileUpload.getbytes()=apiclient.http.MediaFileUpload-class.html#getbytes,Method apiclient.http.MediaInMemoryUpload.getbytes()=apiclient.http.MediaInMemoryUpload-class.html#getbytes,Method apiclient.http.MediaIoBaseUpload.getbytes()=apiclient.http.MediaIoBaseUpload-class.html#getbytes,Method apiclient.http.MediaUpload.getbytes()=apiclient.http.MediaUpload-class.html#getbytes"><a title="apiclient.http.MediaFileUpload.getbytes
apiclient.http.MediaInMemoryUpload.getbytes
+apiclient.http.MediaIoBaseUpload.getbytes
apiclient.http.MediaUpload.getbytes" class="py-name" href="#" onclick="return doclink('link-129', 'getbytes', 'link-129');">getbytes</a></tt><tt class="py-op">(</tt><tt class="py-number">0</tt><tt class="py-op">,</tt> <tt class="py-name">media_upload</tt><tt class="py-op">.</tt><tt id="link-130" class="py-name"><a title="apiclient.http.MediaFileUpload.size
apiclient.http.MediaInMemoryUpload.size
+apiclient.http.MediaIoBaseUpload.size
apiclient.http.MediaUpload.size" class="py-name" href="#" onclick="return doclink('link-130', 'size', 'link-122');">size</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
-<a name="L514"></a><tt class="py-lineno">514</tt> <tt class="py-line"> <tt class="py-name">url</tt> <tt class="py-op">=</tt> <tt id="link-131" class="py-name"><a title="apiclient.discovery._add_query_parameter" class="py-name" href="#" onclick="return doclink('link-131', '_add_query_parameter', 'link-51');">_add_query_parameter</a></tt><tt class="py-op">(</tt><tt class="py-name">url</tt><tt class="py-op">,</tt> <tt class="py-string">'uploadType'</tt><tt class="py-op">,</tt> <tt class="py-string">'media'</tt><tt class="py-op">)</tt> </tt>
-<a name="L515"></a><tt class="py-lineno">515</tt> <tt class="py-line"> <tt class="py-keyword">else</tt><tt class="py-op">:</tt> </tt>
-<a name="L516"></a><tt class="py-lineno">516</tt> <tt class="py-line"> <tt class="py-comment"># This is a multipart/related upload.</tt> </tt>
-<a name="L517"></a><tt class="py-lineno">517</tt> <tt class="py-line"> <tt class="py-name">msgRoot</tt> <tt class="py-op">=</tt> <tt class="py-name">MIMEMultipart</tt><tt class="py-op">(</tt><tt class="py-string">'related'</tt><tt class="py-op">)</tt> </tt>
-<a name="L518"></a><tt class="py-lineno">518</tt> <tt class="py-line"> <tt class="py-comment"># msgRoot should not write out it's own headers</tt> </tt>
-<a name="L519"></a><tt class="py-lineno">519</tt> <tt class="py-line"> <tt class="py-name">setattr</tt><tt class="py-op">(</tt><tt class="py-name">msgRoot</tt><tt class="py-op">,</tt> <tt class="py-string">'_write_headers'</tt><tt class="py-op">,</tt> <tt class="py-keyword">lambda</tt> <tt class="py-name">self</tt><tt class="py-op">:</tt> <tt class="py-name">None</tt><tt class="py-op">)</tt> </tt>
-<a name="L520"></a><tt class="py-lineno">520</tt> <tt class="py-line"> </tt>
-<a name="L521"></a><tt class="py-lineno">521</tt> <tt class="py-line"> <tt class="py-comment"># attach the body as one part</tt> </tt>
-<a name="L522"></a><tt class="py-lineno">522</tt> <tt class="py-line"> <tt class="py-name">msg</tt> <tt class="py-op">=</tt> <tt class="py-name">MIMENonMultipart</tt><tt class="py-op">(</tt><tt class="py-op">*</tt><tt class="py-name">headers</tt><tt class="py-op">[</tt><tt class="py-string">'content-type'</tt><tt class="py-op">]</tt><tt class="py-op">.</tt><tt class="py-name">split</tt><tt class="py-op">(</tt><tt class="py-string">'/'</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
-<a name="L523"></a><tt class="py-lineno">523</tt> <tt class="py-line"> <tt class="py-name">msg</tt><tt class="py-op">.</tt><tt class="py-name">set_payload</tt><tt class="py-op">(</tt><tt class="py-name">body</tt><tt class="py-op">)</tt> </tt>
-<a name="L524"></a><tt class="py-lineno">524</tt> <tt class="py-line"> <tt class="py-name">msgRoot</tt><tt class="py-op">.</tt><tt class="py-name">attach</tt><tt class="py-op">(</tt><tt class="py-name">msg</tt><tt class="py-op">)</tt> </tt>
-<a name="L525"></a><tt class="py-lineno">525</tt> <tt class="py-line"> </tt>
-<a name="L526"></a><tt class="py-lineno">526</tt> <tt class="py-line"> <tt class="py-comment"># attach the media as the second part</tt> </tt>
-<a name="L527"></a><tt class="py-lineno">527</tt> <tt class="py-line"> <tt class="py-name">msg</tt> <tt class="py-op">=</tt> <tt class="py-name">MIMENonMultipart</tt><tt class="py-op">(</tt><tt class="py-op">*</tt><tt class="py-name">media_upload</tt><tt class="py-op">.</tt><tt id="link-132" class="py-name"><a title="apiclient.http.MediaFileUpload.mimetype
+<a name="L547"></a><tt class="py-lineno">547</tt> <tt class="py-line"> <tt class="py-name">url</tt> <tt class="py-op">=</tt> <tt id="link-131" class="py-name"><a title="apiclient.discovery._add_query_parameter" class="py-name" href="#" onclick="return doclink('link-131', '_add_query_parameter', 'link-51');">_add_query_parameter</a></tt><tt class="py-op">(</tt><tt class="py-name">url</tt><tt class="py-op">,</tt> <tt class="py-string">'uploadType'</tt><tt class="py-op">,</tt> <tt class="py-string">'media'</tt><tt class="py-op">)</tt> </tt>
+<a name="L548"></a><tt class="py-lineno">548</tt> <tt class="py-line"> <tt class="py-keyword">else</tt><tt class="py-op">:</tt> </tt>
+<a name="L549"></a><tt class="py-lineno">549</tt> <tt class="py-line"> <tt class="py-comment"># This is a multipart/related upload.</tt> </tt>
+<a name="L550"></a><tt class="py-lineno">550</tt> <tt class="py-line"> <tt class="py-name">msgRoot</tt> <tt class="py-op">=</tt> <tt class="py-name">MIMEMultipart</tt><tt class="py-op">(</tt><tt class="py-string">'related'</tt><tt class="py-op">)</tt> </tt>
+<a name="L551"></a><tt class="py-lineno">551</tt> <tt class="py-line"> <tt class="py-comment"># msgRoot should not write out it's own headers</tt> </tt>
+<a name="L552"></a><tt class="py-lineno">552</tt> <tt class="py-line"> <tt class="py-name">setattr</tt><tt class="py-op">(</tt><tt class="py-name">msgRoot</tt><tt class="py-op">,</tt> <tt class="py-string">'_write_headers'</tt><tt class="py-op">,</tt> <tt class="py-keyword">lambda</tt> <tt class="py-name">self</tt><tt class="py-op">:</tt> <tt class="py-name">None</tt><tt class="py-op">)</tt> </tt>
+<a name="L553"></a><tt class="py-lineno">553</tt> <tt class="py-line"> </tt>
+<a name="L554"></a><tt class="py-lineno">554</tt> <tt class="py-line"> <tt class="py-comment"># attach the body as one part</tt> </tt>
+<a name="L555"></a><tt class="py-lineno">555</tt> <tt class="py-line"> <tt class="py-name">msg</tt> <tt class="py-op">=</tt> <tt class="py-name">MIMENonMultipart</tt><tt class="py-op">(</tt><tt class="py-op">*</tt><tt class="py-name">headers</tt><tt class="py-op">[</tt><tt class="py-string">'content-type'</tt><tt class="py-op">]</tt><tt class="py-op">.</tt><tt class="py-name">split</tt><tt class="py-op">(</tt><tt class="py-string">'/'</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
+<a name="L556"></a><tt class="py-lineno">556</tt> <tt class="py-line"> <tt class="py-name">msg</tt><tt class="py-op">.</tt><tt class="py-name">set_payload</tt><tt class="py-op">(</tt><tt class="py-name">body</tt><tt class="py-op">)</tt> </tt>
+<a name="L557"></a><tt class="py-lineno">557</tt> <tt class="py-line"> <tt class="py-name">msgRoot</tt><tt class="py-op">.</tt><tt class="py-name">attach</tt><tt class="py-op">(</tt><tt class="py-name">msg</tt><tt class="py-op">)</tt> </tt>
+<a name="L558"></a><tt class="py-lineno">558</tt> <tt class="py-line"> </tt>
+<a name="L559"></a><tt class="py-lineno">559</tt> <tt class="py-line"> <tt class="py-comment"># attach the media as the second part</tt> </tt>
+<a name="L560"></a><tt class="py-lineno">560</tt> <tt class="py-line"> <tt class="py-name">msg</tt> <tt class="py-op">=</tt> <tt class="py-name">MIMENonMultipart</tt><tt class="py-op">(</tt><tt class="py-op">*</tt><tt class="py-name">media_upload</tt><tt class="py-op">.</tt><tt id="link-132" class="py-name"><a title="apiclient.http.MediaFileUpload.mimetype
apiclient.http.MediaInMemoryUpload.mimetype
+apiclient.http.MediaIoBaseUpload.mimetype
apiclient.http.MediaUpload.mimetype" class="py-name" href="#" onclick="return doclink('link-132', 'mimetype', 'link-128');">mimetype</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt><tt class="py-op">.</tt><tt class="py-name">split</tt><tt class="py-op">(</tt><tt class="py-string">'/'</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
-<a name="L528"></a><tt class="py-lineno">528</tt> <tt class="py-line"> <tt class="py-name">msg</tt><tt class="py-op">[</tt><tt class="py-string">'Content-Transfer-Encoding'</tt><tt class="py-op">]</tt> <tt class="py-op">=</tt> <tt class="py-string">'binary'</tt> </tt>
-<a name="L529"></a><tt class="py-lineno">529</tt> <tt class="py-line"> </tt>
-<a name="L530"></a><tt class="py-lineno">530</tt> <tt class="py-line"> <tt class="py-name">payload</tt> <tt class="py-op">=</tt> <tt class="py-name">media_upload</tt><tt class="py-op">.</tt><tt id="link-133" class="py-name"><a title="apiclient.http.MediaFileUpload.getbytes
+<a name="L561"></a><tt class="py-lineno">561</tt> <tt class="py-line"> <tt class="py-name">msg</tt><tt class="py-op">[</tt><tt class="py-string">'Content-Transfer-Encoding'</tt><tt class="py-op">]</tt> <tt class="py-op">=</tt> <tt class="py-string">'binary'</tt> </tt>
+<a name="L562"></a><tt class="py-lineno">562</tt> <tt class="py-line"> </tt>
+<a name="L563"></a><tt class="py-lineno">563</tt> <tt class="py-line"> <tt class="py-name">payload</tt> <tt class="py-op">=</tt> <tt class="py-name">media_upload</tt><tt class="py-op">.</tt><tt id="link-133" class="py-name"><a title="apiclient.http.MediaFileUpload.getbytes
apiclient.http.MediaInMemoryUpload.getbytes
+apiclient.http.MediaIoBaseUpload.getbytes
apiclient.http.MediaUpload.getbytes" class="py-name" href="#" onclick="return doclink('link-133', 'getbytes', 'link-129');">getbytes</a></tt><tt class="py-op">(</tt><tt class="py-number">0</tt><tt class="py-op">,</tt> <tt class="py-name">media_upload</tt><tt class="py-op">.</tt><tt id="link-134" class="py-name"><a title="apiclient.http.MediaFileUpload.size
apiclient.http.MediaInMemoryUpload.size
+apiclient.http.MediaIoBaseUpload.size
apiclient.http.MediaUpload.size" class="py-name" href="#" onclick="return doclink('link-134', 'size', 'link-122');">size</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
-<a name="L531"></a><tt class="py-lineno">531</tt> <tt class="py-line"> <tt class="py-name">msg</tt><tt class="py-op">.</tt><tt class="py-name">set_payload</tt><tt class="py-op">(</tt><tt class="py-name">payload</tt><tt class="py-op">)</tt> </tt>
-<a name="L532"></a><tt class="py-lineno">532</tt> <tt class="py-line"> <tt class="py-name">msgRoot</tt><tt class="py-op">.</tt><tt class="py-name">attach</tt><tt class="py-op">(</tt><tt class="py-name">msg</tt><tt class="py-op">)</tt> </tt>
-<a name="L533"></a><tt class="py-lineno">533</tt> <tt class="py-line"> <tt class="py-name">body</tt> <tt class="py-op">=</tt> <tt class="py-name">msgRoot</tt><tt class="py-op">.</tt><tt class="py-name">as_string</tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
-<a name="L534"></a><tt class="py-lineno">534</tt> <tt class="py-line"> </tt>
-<a name="L535"></a><tt class="py-lineno">535</tt> <tt class="py-line"> <tt class="py-name">multipart_boundary</tt> <tt class="py-op">=</tt> <tt class="py-name">msgRoot</tt><tt class="py-op">.</tt><tt class="py-name">get_boundary</tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
-<a name="L536"></a><tt class="py-lineno">536</tt> <tt class="py-line"> <tt class="py-name">headers</tt><tt class="py-op">[</tt><tt class="py-string">'content-type'</tt><tt class="py-op">]</tt> <tt class="py-op">=</tt> <tt class="py-op">(</tt><tt class="py-string">'multipart/related; '</tt> </tt>
-<a name="L537"></a><tt class="py-lineno">537</tt> <tt class="py-line"> <tt class="py-string">'boundary="%s"'</tt><tt class="py-op">)</tt> <tt class="py-op">%</tt> <tt class="py-name">multipart_boundary</tt> </tt>
-<a name="L538"></a><tt class="py-lineno">538</tt> <tt class="py-line"> <tt class="py-name">url</tt> <tt class="py-op">=</tt> <tt id="link-135" class="py-name"><a title="apiclient.discovery._add_query_parameter" class="py-name" href="#" onclick="return doclink('link-135', '_add_query_parameter', 'link-51');">_add_query_parameter</a></tt><tt class="py-op">(</tt><tt class="py-name">url</tt><tt class="py-op">,</tt> <tt class="py-string">'uploadType'</tt><tt class="py-op">,</tt> <tt class="py-string">'multipart'</tt><tt class="py-op">)</tt> </tt>
-<a name="L539"></a><tt class="py-lineno">539</tt> <tt class="py-line"> </tt>
-<a name="L540"></a><tt class="py-lineno">540</tt> <tt class="py-line"> <tt id="link-136" class="py-name"><a title="apiclient.discovery.logger
+<a name="L564"></a><tt class="py-lineno">564</tt> <tt class="py-line"> <tt class="py-name">msg</tt><tt class="py-op">.</tt><tt class="py-name">set_payload</tt><tt class="py-op">(</tt><tt class="py-name">payload</tt><tt class="py-op">)</tt> </tt>
+<a name="L565"></a><tt class="py-lineno">565</tt> <tt class="py-line"> <tt class="py-name">msgRoot</tt><tt class="py-op">.</tt><tt class="py-name">attach</tt><tt class="py-op">(</tt><tt class="py-name">msg</tt><tt class="py-op">)</tt> </tt>
+<a name="L566"></a><tt class="py-lineno">566</tt> <tt class="py-line"> <tt class="py-name">body</tt> <tt class="py-op">=</tt> <tt class="py-name">msgRoot</tt><tt class="py-op">.</tt><tt class="py-name">as_string</tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
+<a name="L567"></a><tt class="py-lineno">567</tt> <tt class="py-line"> </tt>
+<a name="L568"></a><tt class="py-lineno">568</tt> <tt class="py-line"> <tt class="py-name">multipart_boundary</tt> <tt class="py-op">=</tt> <tt class="py-name">msgRoot</tt><tt class="py-op">.</tt><tt class="py-name">get_boundary</tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
+<a name="L569"></a><tt class="py-lineno">569</tt> <tt class="py-line"> <tt class="py-name">headers</tt><tt class="py-op">[</tt><tt class="py-string">'content-type'</tt><tt class="py-op">]</tt> <tt class="py-op">=</tt> <tt class="py-op">(</tt><tt class="py-string">'multipart/related; '</tt> </tt>
+<a name="L570"></a><tt class="py-lineno">570</tt> <tt class="py-line"> <tt class="py-string">'boundary="%s"'</tt><tt class="py-op">)</tt> <tt class="py-op">%</tt> <tt class="py-name">multipart_boundary</tt> </tt>
+<a name="L571"></a><tt class="py-lineno">571</tt> <tt class="py-line"> <tt class="py-name">url</tt> <tt class="py-op">=</tt> <tt id="link-135" class="py-name"><a title="apiclient.discovery._add_query_parameter" class="py-name" href="#" onclick="return doclink('link-135', '_add_query_parameter', 'link-51');">_add_query_parameter</a></tt><tt class="py-op">(</tt><tt class="py-name">url</tt><tt class="py-op">,</tt> <tt class="py-string">'uploadType'</tt><tt class="py-op">,</tt> <tt class="py-string">'multipart'</tt><tt class="py-op">)</tt> </tt>
+<a name="L572"></a><tt class="py-lineno">572</tt> <tt class="py-line"> </tt>
+<a name="L573"></a><tt class="py-lineno">573</tt> <tt class="py-line"> <tt id="link-136" 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-136', 'logger', 'link-39');">logger</a></tt><tt class="py-op">.</tt><tt class="py-name">info</tt><tt class="py-op">(</tt><tt class="py-string">'URL being requested: %s'</tt> <tt class="py-op">%</tt> <tt class="py-name">url</tt><tt class="py-op">)</tt> </tt>
-<a name="L541"></a><tt class="py-lineno">541</tt> <tt class="py-line"> <tt class="py-keyword">return</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">_requestBuilder</tt><tt class="py-op">(</tt><tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">_http</tt><tt class="py-op">,</tt> </tt>
-<a name="L542"></a><tt class="py-lineno">542</tt> <tt class="py-line"> <tt id="link-137" class="py-name"><a title="apiclient.model" class="py-name" href="#" onclick="return doclink('link-137', 'model', 'link-29');">model</a></tt><tt class="py-op">.</tt><tt id="link-138" class="py-name" targets="Method apiclient.model.BaseModel.response()=apiclient.model.BaseModel-class.html#response,Method apiclient.model.Model.response()=apiclient.model.Model-class.html#response"><a title="apiclient.model.BaseModel.response
+<a name="L574"></a><tt class="py-lineno">574</tt> <tt class="py-line"> <tt class="py-keyword">return</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">_requestBuilder</tt><tt class="py-op">(</tt><tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">_http</tt><tt class="py-op">,</tt> </tt>
+<a name="L575"></a><tt class="py-lineno">575</tt> <tt class="py-line"> <tt id="link-137" class="py-name"><a title="apiclient.model" class="py-name" href="#" onclick="return doclink('link-137', 'model', 'link-29');">model</a></tt><tt class="py-op">.</tt><tt id="link-138" class="py-name" targets="Method apiclient.model.BaseModel.response()=apiclient.model.BaseModel-class.html#response,Method apiclient.model.Model.response()=apiclient.model.Model-class.html#response"><a title="apiclient.model.BaseModel.response
apiclient.model.Model.response" class="py-name" href="#" onclick="return doclink('link-138', 'response', 'link-138');">response</a></tt><tt class="py-op">,</tt> </tt>
-<a name="L543"></a><tt class="py-lineno">543</tt> <tt class="py-line"> <tt class="py-name">url</tt><tt class="py-op">,</tt> </tt>
-<a name="L544"></a><tt class="py-lineno">544</tt> <tt class="py-line"> <tt class="py-name">method</tt><tt class="py-op">=</tt><tt class="py-name">httpMethod</tt><tt class="py-op">,</tt> </tt>
-<a name="L545"></a><tt class="py-lineno">545</tt> <tt class="py-line"> <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="L546"></a><tt class="py-lineno">546</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="L547"></a><tt class="py-lineno">547</tt> <tt class="py-line"> <tt class="py-name">methodId</tt><tt class="py-op">=</tt><tt class="py-name">methodId</tt><tt class="py-op">,</tt> </tt>
-<a name="L548"></a><tt class="py-lineno">548</tt> <tt class="py-line"> <tt id="link-139" class="py-name"><a title="apiclient.http.MediaFileUpload.resumable
+<a name="L576"></a><tt class="py-lineno">576</tt> <tt class="py-line"> <tt class="py-name">url</tt><tt class="py-op">,</tt> </tt>
+<a name="L577"></a><tt class="py-lineno">577</tt> <tt class="py-line"> <tt class="py-name">method</tt><tt class="py-op">=</tt><tt class="py-name">httpMethod</tt><tt class="py-op">,</tt> </tt>
+<a name="L578"></a><tt class="py-lineno">578</tt> <tt class="py-line"> <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="L579"></a><tt class="py-lineno">579</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="L580"></a><tt class="py-lineno">580</tt> <tt class="py-line"> <tt class="py-name">methodId</tt><tt class="py-op">=</tt><tt class="py-name">methodId</tt><tt class="py-op">,</tt> </tt>
+<a name="L581"></a><tt class="py-lineno">581</tt> <tt class="py-line"> <tt id="link-139" class="py-name"><a title="apiclient.http.MediaFileUpload.resumable
apiclient.http.MediaInMemoryUpload.resumable
+apiclient.http.MediaIoBaseUpload.resumable
apiclient.http.MediaUpload.resumable" class="py-name" href="#" onclick="return doclink('link-139', 'resumable', 'link-115');">resumable</a></tt><tt class="py-op">=</tt><tt id="link-140" class="py-name"><a title="apiclient.http.MediaFileUpload.resumable
apiclient.http.MediaInMemoryUpload.resumable
+apiclient.http.MediaIoBaseUpload.resumable
apiclient.http.MediaUpload.resumable" class="py-name" href="#" onclick="return doclink('link-140', 'resumable', 'link-115');">resumable</a></tt><tt class="py-op">)</tt> </tt>
-</div><a name="L549"></a><tt class="py-lineno">549</tt> <tt class="py-line"> </tt>
-<a name="L550"></a><tt class="py-lineno">550</tt> <tt class="py-line"> <tt class="py-name">docs</tt> <tt class="py-op">=</tt> <tt class="py-op">[</tt><tt class="py-name">methodDesc</tt><tt class="py-op">.</tt><tt id="link-141" class="py-name"><a title="apiclient.schema.Schemas.get
+</div><a name="L582"></a><tt class="py-lineno">582</tt> <tt class="py-line"> </tt>
+<a name="L583"></a><tt class="py-lineno">583</tt> <tt class="py-line"> <tt class="py-name">docs</tt> <tt class="py-op">=</tt> <tt class="py-op">[</tt><tt class="py-name">methodDesc</tt><tt class="py-op">.</tt><tt id="link-141" 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-141', 'get', 'link-67');">get</a></tt><tt class="py-op">(</tt><tt class="py-string">'description'</tt><tt class="py-op">,</tt> <tt id="link-142" class="py-name"><a title="apiclient.discovery.DEFAULT_METHOD_DOC" class="py-name" href="#" onclick="return doclink('link-142', 'DEFAULT_METHOD_DOC', 'link-43');">DEFAULT_METHOD_DOC</a></tt><tt class="py-op">)</tt><tt class="py-op">,</tt> <tt class="py-string">'\n\n'</tt><tt class="py-op">]</tt> </tt>
-<a name="L551"></a><tt class="py-lineno">551</tt> <tt class="py-line"> <tt class="py-keyword">if</tt> <tt class="py-name">len</tt><tt class="py-op">(</tt><tt class="py-name">argmap</tt><tt class="py-op">)</tt> <tt class="py-op">></tt> <tt class="py-number">0</tt><tt class="py-op">:</tt> </tt>
-<a name="L552"></a><tt class="py-lineno">552</tt> <tt class="py-line"> <tt class="py-name">docs</tt><tt class="py-op">.</tt><tt class="py-name">append</tt><tt class="py-op">(</tt><tt class="py-string">'Args:\n'</tt><tt class="py-op">)</tt> </tt>
-<a name="L553"></a><tt class="py-lineno">553</tt> <tt class="py-line"> <tt class="py-keyword">for</tt> <tt class="py-name">arg</tt> <tt class="py-keyword">in</tt> <tt class="py-name">argmap</tt><tt class="py-op">.</tt><tt class="py-name">iterkeys</tt><tt class="py-op">(</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-<a name="L554"></a><tt class="py-lineno">554</tt> <tt class="py-line"> <tt class="py-keyword">if</tt> <tt class="py-name">arg</tt> <tt class="py-keyword">in</tt> <tt id="link-143" class="py-name"><a title="apiclient.discovery.STACK_QUERY_PARAMETERS" class="py-name" href="#" onclick="return doclink('link-143', 'STACK_QUERY_PARAMETERS', 'link-44');">STACK_QUERY_PARAMETERS</a></tt><tt class="py-op">:</tt> </tt>
-<a name="L555"></a><tt class="py-lineno">555</tt> <tt class="py-line"> <tt class="py-keyword">continue</tt> </tt>
-<a name="L556"></a><tt class="py-lineno">556</tt> <tt class="py-line"> <tt class="py-name">repeated</tt> <tt class="py-op">=</tt> <tt class="py-string">''</tt> </tt>
-<a name="L557"></a><tt class="py-lineno">557</tt> <tt class="py-line"> <tt class="py-keyword">if</tt> <tt class="py-name">arg</tt> <tt class="py-keyword">in</tt> <tt class="py-name">repeated_params</tt><tt class="py-op">:</tt> </tt>
-<a name="L558"></a><tt class="py-lineno">558</tt> <tt class="py-line"> <tt class="py-name">repeated</tt> <tt class="py-op">=</tt> <tt class="py-string">' (repeated)'</tt> </tt>
-<a name="L559"></a><tt class="py-lineno">559</tt> <tt class="py-line"> <tt class="py-name">required</tt> <tt class="py-op">=</tt> <tt class="py-string">''</tt> </tt>
-<a name="L560"></a><tt class="py-lineno">560</tt> <tt class="py-line"> <tt class="py-keyword">if</tt> <tt class="py-name">arg</tt> <tt class="py-keyword">in</tt> <tt class="py-name">required_params</tt><tt class="py-op">:</tt> </tt>
-<a name="L561"></a><tt class="py-lineno">561</tt> <tt class="py-line"> <tt class="py-name">required</tt> <tt class="py-op">=</tt> <tt class="py-string">' (required)'</tt> </tt>
-<a name="L562"></a><tt class="py-lineno">562</tt> <tt class="py-line"> <tt class="py-name">paramdesc</tt> <tt class="py-op">=</tt> <tt class="py-name">methodDesc</tt><tt class="py-op">[</tt><tt class="py-string">'parameters'</tt><tt class="py-op">]</tt><tt class="py-op">[</tt><tt class="py-name">argmap</tt><tt class="py-op">[</tt><tt class="py-name">arg</tt><tt class="py-op">]</tt><tt class="py-op">]</tt> </tt>
-<a name="L563"></a><tt class="py-lineno">563</tt> <tt class="py-line"> <tt class="py-name">paramdoc</tt> <tt class="py-op">=</tt> <tt class="py-name">paramdesc</tt><tt class="py-op">.</tt><tt id="link-144" class="py-name"><a title="apiclient.schema.Schemas.get
+oauth2client.client.Storage.get" class="py-name" href="#" onclick="return doclink('link-141', 'get', 'link-70');">get</a></tt><tt class="py-op">(</tt><tt class="py-string">'description'</tt><tt class="py-op">,</tt> <tt id="link-142" class="py-name"><a title="apiclient.discovery.DEFAULT_METHOD_DOC" class="py-name" href="#" onclick="return doclink('link-142', 'DEFAULT_METHOD_DOC', 'link-43');">DEFAULT_METHOD_DOC</a></tt><tt class="py-op">)</tt><tt class="py-op">,</tt> <tt class="py-string">'\n\n'</tt><tt class="py-op">]</tt> </tt>
+<a name="L584"></a><tt class="py-lineno">584</tt> <tt class="py-line"> <tt class="py-keyword">if</tt> <tt class="py-name">len</tt><tt class="py-op">(</tt><tt class="py-name">argmap</tt><tt class="py-op">)</tt> <tt class="py-op">></tt> <tt class="py-number">0</tt><tt class="py-op">:</tt> </tt>
+<a name="L585"></a><tt class="py-lineno">585</tt> <tt class="py-line"> <tt class="py-name">docs</tt><tt class="py-op">.</tt><tt class="py-name">append</tt><tt class="py-op">(</tt><tt class="py-string">'Args:\n'</tt><tt class="py-op">)</tt> </tt>
+<a name="L586"></a><tt class="py-lineno">586</tt> <tt class="py-line"> </tt>
+<a name="L587"></a><tt class="py-lineno">587</tt> <tt class="py-line"> <tt class="py-comment"># Skip undocumented params and params common to all methods.</tt> </tt>
+<a name="L588"></a><tt class="py-lineno">588</tt> <tt class="py-line"> <tt class="py-name">skip_parameters</tt> <tt class="py-op">=</tt> <tt class="py-name">rootDesc</tt><tt class="py-op">.</tt><tt id="link-143" 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-144', 'get', 'link-67');">get</a></tt><tt class="py-op">(</tt><tt class="py-string">'description'</tt><tt class="py-op">,</tt> <tt class="py-string">'A parameter'</tt><tt class="py-op">)</tt> </tt>
-<a name="L564"></a><tt class="py-lineno">564</tt> <tt class="py-line"> <tt class="py-keyword">if</tt> <tt class="py-string">'$ref'</tt> <tt class="py-keyword">in</tt> <tt class="py-name">paramdesc</tt><tt class="py-op">:</tt> </tt>
-<a name="L565"></a><tt class="py-lineno">565</tt> <tt class="py-line"> <tt class="py-name">docs</tt><tt class="py-op">.</tt><tt class="py-name">append</tt><tt class="py-op">(</tt> </tt>
-<a name="L566"></a><tt class="py-lineno">566</tt> <tt class="py-line"> <tt class="py-op">(</tt><tt class="py-string">' %s: object, %s%s%s\n The object takes the'</tt> </tt>
-<a name="L567"></a><tt class="py-lineno">567</tt> <tt class="py-line"> <tt class="py-string">' form of:\n\n%s\n\n'</tt><tt class="py-op">)</tt> <tt class="py-op">%</tt> <tt class="py-op">(</tt><tt class="py-name">arg</tt><tt class="py-op">,</tt> <tt class="py-name">paramdoc</tt><tt class="py-op">,</tt> <tt class="py-name">required</tt><tt class="py-op">,</tt> <tt class="py-name">repeated</tt><tt class="py-op">,</tt> </tt>
-<a name="L568"></a><tt class="py-lineno">568</tt> <tt class="py-line"> <tt id="link-145" class="py-name"><a title="apiclient.schema" class="py-name" href="#" onclick="return doclink('link-145', 'schema', 'link-35');">schema</a></tt><tt class="py-op">.</tt><tt id="link-146" class="py-name" targets="Method apiclient.schema.Schemas.prettyPrintByName()=apiclient.schema.Schemas-class.html#prettyPrintByName"><a title="apiclient.schema.Schemas.prettyPrintByName" class="py-name" href="#" onclick="return doclink('link-146', 'prettyPrintByName', 'link-146');">prettyPrintByName</a></tt><tt class="py-op">(</tt><tt class="py-name">paramdesc</tt><tt class="py-op">[</tt><tt class="py-string">'$ref'</tt><tt class="py-op">]</tt><tt class="py-op">)</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
-<a name="L569"></a><tt class="py-lineno">569</tt> <tt class="py-line"> <tt class="py-keyword">else</tt><tt class="py-op">:</tt> </tt>
-<a name="L570"></a><tt class="py-lineno">570</tt> <tt class="py-line"> <tt class="py-name">paramtype</tt> <tt class="py-op">=</tt> <tt class="py-name">paramdesc</tt><tt class="py-op">.</tt><tt id="link-147" class="py-name"><a title="apiclient.schema.Schemas.get
+oauth2client.client.Storage.get" class="py-name" href="#" onclick="return doclink('link-143', 'get', 'link-70');">get</a></tt><tt class="py-op">(</tt><tt class="py-string">'parameters'</tt><tt class="py-op">,</tt> <tt class="py-op">{</tt><tt class="py-op">}</tt><tt class="py-op">)</tt><tt class="py-op">.</tt><tt class="py-name">keys</tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
+<a name="L589"></a><tt class="py-lineno">589</tt> <tt class="py-line"> <tt class="py-name">skip_parameters</tt><tt class="py-op">.</tt><tt class="py-name">append</tt><tt class="py-op">(</tt><tt id="link-144" class="py-name"><a title="apiclient.discovery.STACK_QUERY_PARAMETERS" class="py-name" href="#" onclick="return doclink('link-144', 'STACK_QUERY_PARAMETERS', 'link-44');">STACK_QUERY_PARAMETERS</a></tt><tt class="py-op">)</tt> </tt>
+<a name="L590"></a><tt class="py-lineno">590</tt> <tt class="py-line"> </tt>
+<a name="L591"></a><tt class="py-lineno">591</tt> <tt class="py-line"> <tt class="py-keyword">for</tt> <tt class="py-name">arg</tt> <tt class="py-keyword">in</tt> <tt class="py-name">argmap</tt><tt class="py-op">.</tt><tt class="py-name">iterkeys</tt><tt class="py-op">(</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+<a name="L592"></a><tt class="py-lineno">592</tt> <tt class="py-line"> <tt class="py-keyword">if</tt> <tt class="py-name">arg</tt> <tt class="py-keyword">in</tt> <tt class="py-name">skip_parameters</tt><tt class="py-op">:</tt> </tt>
+<a name="L593"></a><tt class="py-lineno">593</tt> <tt class="py-line"> <tt class="py-keyword">continue</tt> </tt>
+<a name="L594"></a><tt class="py-lineno">594</tt> <tt class="py-line"> </tt>
+<a name="L595"></a><tt class="py-lineno">595</tt> <tt class="py-line"> <tt class="py-name">repeated</tt> <tt class="py-op">=</tt> <tt class="py-string">''</tt> </tt>
+<a name="L596"></a><tt class="py-lineno">596</tt> <tt class="py-line"> <tt class="py-keyword">if</tt> <tt class="py-name">arg</tt> <tt class="py-keyword">in</tt> <tt class="py-name">repeated_params</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">repeated</tt> <tt class="py-op">=</tt> <tt class="py-string">' (repeated)'</tt> </tt>
+<a name="L598"></a><tt class="py-lineno">598</tt> <tt class="py-line"> <tt class="py-name">required</tt> <tt class="py-op">=</tt> <tt class="py-string">''</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">arg</tt> <tt class="py-keyword">in</tt> <tt class="py-name">required_params</tt><tt class="py-op">:</tt> </tt>
+<a name="L600"></a><tt class="py-lineno">600</tt> <tt class="py-line"> <tt class="py-name">required</tt> <tt class="py-op">=</tt> <tt class="py-string">' (required)'</tt> </tt>
+<a name="L601"></a><tt class="py-lineno">601</tt> <tt class="py-line"> <tt class="py-name">paramdesc</tt> <tt class="py-op">=</tt> <tt class="py-name">methodDesc</tt><tt class="py-op">[</tt><tt class="py-string">'parameters'</tt><tt class="py-op">]</tt><tt class="py-op">[</tt><tt class="py-name">argmap</tt><tt class="py-op">[</tt><tt class="py-name">arg</tt><tt class="py-op">]</tt><tt class="py-op">]</tt> </tt>
+<a name="L602"></a><tt class="py-lineno">602</tt> <tt class="py-line"> <tt class="py-name">paramdoc</tt> <tt class="py-op">=</tt> <tt class="py-name">paramdesc</tt><tt class="py-op">.</tt><tt id="link-145" 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-147', 'get', 'link-67');">get</a></tt><tt class="py-op">(</tt><tt class="py-string">'type'</tt><tt class="py-op">,</tt> <tt class="py-string">'string'</tt><tt class="py-op">)</tt> </tt>
-<a name="L571"></a><tt class="py-lineno">571</tt> <tt class="py-line"> <tt class="py-name">docs</tt><tt class="py-op">.</tt><tt class="py-name">append</tt><tt class="py-op">(</tt><tt class="py-string">' %s: %s, %s%s%s\n'</tt> <tt class="py-op">%</tt> <tt class="py-op">(</tt><tt class="py-name">arg</tt><tt class="py-op">,</tt> <tt class="py-name">paramtype</tt><tt class="py-op">,</tt> <tt class="py-name">paramdoc</tt><tt class="py-op">,</tt> <tt class="py-name">required</tt><tt class="py-op">,</tt> </tt>
-<a name="L572"></a><tt class="py-lineno">572</tt> <tt class="py-line"> <tt class="py-name">repeated</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
-<a name="L573"></a><tt class="py-lineno">573</tt> <tt class="py-line"> <tt class="py-name">enum</tt> <tt class="py-op">=</tt> <tt class="py-name">paramdesc</tt><tt class="py-op">.</tt><tt id="link-148" class="py-name"><a title="apiclient.schema.Schemas.get
+oauth2client.client.Storage.get" class="py-name" href="#" onclick="return doclink('link-145', 'get', 'link-70');">get</a></tt><tt class="py-op">(</tt><tt class="py-string">'description'</tt><tt class="py-op">,</tt> <tt class="py-string">'A parameter'</tt><tt class="py-op">)</tt> </tt>
+<a name="L603"></a><tt class="py-lineno">603</tt> <tt class="py-line"> <tt class="py-keyword">if</tt> <tt class="py-string">'$ref'</tt> <tt class="py-keyword">in</tt> <tt class="py-name">paramdesc</tt><tt class="py-op">:</tt> </tt>
+<a name="L604"></a><tt class="py-lineno">604</tt> <tt class="py-line"> <tt class="py-name">docs</tt><tt class="py-op">.</tt><tt class="py-name">append</tt><tt class="py-op">(</tt> </tt>
+<a name="L605"></a><tt class="py-lineno">605</tt> <tt class="py-line"> <tt class="py-op">(</tt><tt class="py-string">' %s: object, %s%s%s\n The object takes the'</tt> </tt>
+<a name="L606"></a><tt class="py-lineno">606</tt> <tt class="py-line"> <tt class="py-string">' form of:\n\n%s\n\n'</tt><tt class="py-op">)</tt> <tt class="py-op">%</tt> <tt class="py-op">(</tt><tt class="py-name">arg</tt><tt class="py-op">,</tt> <tt class="py-name">paramdoc</tt><tt class="py-op">,</tt> <tt class="py-name">required</tt><tt class="py-op">,</tt> <tt class="py-name">repeated</tt><tt class="py-op">,</tt> </tt>
+<a name="L607"></a><tt class="py-lineno">607</tt> <tt class="py-line"> <tt id="link-146" class="py-name"><a title="apiclient.schema" class="py-name" href="#" onclick="return doclink('link-146', 'schema', 'link-35');">schema</a></tt><tt class="py-op">.</tt><tt id="link-147" class="py-name" targets="Method apiclient.schema.Schemas.prettyPrintByName()=apiclient.schema.Schemas-class.html#prettyPrintByName"><a title="apiclient.schema.Schemas.prettyPrintByName" class="py-name" href="#" onclick="return doclink('link-147', 'prettyPrintByName', 'link-147');">prettyPrintByName</a></tt><tt class="py-op">(</tt><tt class="py-name">paramdesc</tt><tt class="py-op">[</tt><tt class="py-string">'$ref'</tt><tt class="py-op">]</tt><tt class="py-op">)</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
+<a name="L608"></a><tt class="py-lineno">608</tt> <tt class="py-line"> <tt class="py-keyword">else</tt><tt class="py-op">:</tt> </tt>
+<a name="L609"></a><tt class="py-lineno">609</tt> <tt class="py-line"> <tt class="py-name">paramtype</tt> <tt class="py-op">=</tt> <tt class="py-name">paramdesc</tt><tt class="py-op">.</tt><tt id="link-148" 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-148', 'get', 'link-67');">get</a></tt><tt class="py-op">(</tt><tt class="py-string">'enum'</tt><tt class="py-op">,</tt> <tt class="py-op">[</tt><tt class="py-op">]</tt><tt class="py-op">)</tt> </tt>
-<a name="L574"></a><tt class="py-lineno">574</tt> <tt class="py-line"> <tt class="py-name">enumDesc</tt> <tt class="py-op">=</tt> <tt class="py-name">paramdesc</tt><tt class="py-op">.</tt><tt id="link-149" class="py-name"><a title="apiclient.schema.Schemas.get
+oauth2client.client.Storage.get" class="py-name" href="#" onclick="return doclink('link-148', 'get', 'link-70');">get</a></tt><tt class="py-op">(</tt><tt class="py-string">'type'</tt><tt class="py-op">,</tt> <tt class="py-string">'string'</tt><tt class="py-op">)</tt> </tt>
+<a name="L610"></a><tt class="py-lineno">610</tt> <tt class="py-line"> <tt class="py-name">docs</tt><tt class="py-op">.</tt><tt class="py-name">append</tt><tt class="py-op">(</tt><tt class="py-string">' %s: %s, %s%s%s\n'</tt> <tt class="py-op">%</tt> <tt class="py-op">(</tt><tt class="py-name">arg</tt><tt class="py-op">,</tt> <tt class="py-name">paramtype</tt><tt class="py-op">,</tt> <tt class="py-name">paramdoc</tt><tt class="py-op">,</tt> <tt class="py-name">required</tt><tt class="py-op">,</tt> </tt>
+<a name="L611"></a><tt class="py-lineno">611</tt> <tt class="py-line"> <tt class="py-name">repeated</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
+<a name="L612"></a><tt class="py-lineno">612</tt> <tt class="py-line"> <tt class="py-name">enum</tt> <tt class="py-op">=</tt> <tt class="py-name">paramdesc</tt><tt class="py-op">.</tt><tt id="link-149" 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-149', 'get', 'link-67');">get</a></tt><tt class="py-op">(</tt><tt class="py-string">'enumDescriptions'</tt><tt class="py-op">,</tt> <tt class="py-op">[</tt><tt class="py-op">]</tt><tt class="py-op">)</tt> </tt>
-<a name="L575"></a><tt class="py-lineno">575</tt> <tt class="py-line"> <tt class="py-keyword">if</tt> <tt class="py-name">enum</tt> <tt class="py-keyword">and</tt> <tt class="py-name">enumDesc</tt><tt class="py-op">:</tt> </tt>
-<a name="L576"></a><tt class="py-lineno">576</tt> <tt class="py-line"> <tt class="py-name">docs</tt><tt class="py-op">.</tt><tt class="py-name">append</tt><tt class="py-op">(</tt><tt class="py-string">' Allowed values\n'</tt><tt class="py-op">)</tt> </tt>
-<a name="L577"></a><tt class="py-lineno">577</tt> <tt class="py-line"> <tt class="py-keyword">for</tt> <tt class="py-op">(</tt><tt class="py-name">name</tt><tt class="py-op">,</tt> <tt class="py-name">desc</tt><tt class="py-op">)</tt> <tt class="py-keyword">in</tt> <tt class="py-name">zip</tt><tt class="py-op">(</tt><tt class="py-name">enum</tt><tt class="py-op">,</tt> <tt class="py-name">enumDesc</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-<a name="L578"></a><tt class="py-lineno">578</tt> <tt class="py-line"> <tt class="py-name">docs</tt><tt class="py-op">.</tt><tt class="py-name">append</tt><tt class="py-op">(</tt><tt class="py-string">' %s - %s\n'</tt> <tt class="py-op">%</tt> <tt class="py-op">(</tt><tt class="py-name">name</tt><tt class="py-op">,</tt> <tt class="py-name">desc</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
-<a name="L579"></a><tt class="py-lineno">579</tt> <tt class="py-line"> <tt class="py-keyword">if</tt> <tt class="py-string">'response'</tt> <tt class="py-keyword">in</tt> <tt class="py-name">methodDesc</tt><tt class="py-op">:</tt> </tt>
-<a name="L580"></a><tt class="py-lineno">580</tt> <tt class="py-line"> <tt class="py-name">docs</tt><tt class="py-op">.</tt><tt class="py-name">append</tt><tt class="py-op">(</tt><tt class="py-string">'\nReturns:\n An object of the form\n\n '</tt><tt class="py-op">)</tt> </tt>
-<a name="L581"></a><tt class="py-lineno">581</tt> <tt class="py-line"> <tt class="py-name">docs</tt><tt class="py-op">.</tt><tt class="py-name">append</tt><tt class="py-op">(</tt><tt id="link-150" class="py-name"><a title="apiclient.schema" class="py-name" href="#" onclick="return doclink('link-150', 'schema', 'link-35');">schema</a></tt><tt class="py-op">.</tt><tt id="link-151" class="py-name" targets="Method apiclient.schema.Schemas.prettyPrintSchema()=apiclient.schema.Schemas-class.html#prettyPrintSchema"><a title="apiclient.schema.Schemas.prettyPrintSchema" class="py-name" href="#" onclick="return doclink('link-151', 'prettyPrintSchema', 'link-151');">prettyPrintSchema</a></tt><tt class="py-op">(</tt><tt class="py-name">methodDesc</tt><tt class="py-op">[</tt><tt class="py-string">'response'</tt><tt class="py-op">]</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
-<a name="L582"></a><tt class="py-lineno">582</tt> <tt class="py-line"> </tt>
-<a name="L583"></a><tt class="py-lineno">583</tt> <tt class="py-line"> <tt class="py-name">setattr</tt><tt class="py-op">(</tt><tt class="py-name">method</tt><tt class="py-op">,</tt> <tt class="py-string">'__doc__'</tt><tt class="py-op">,</tt> <tt class="py-string">''</tt><tt class="py-op">.</tt><tt class="py-name">join</tt><tt class="py-op">(</tt><tt class="py-name">docs</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
-<a name="L584"></a><tt class="py-lineno">584</tt> <tt class="py-line"> <tt class="py-name">setattr</tt><tt class="py-op">(</tt><tt class="py-name">theclass</tt><tt class="py-op">,</tt> <tt class="py-name">methodName</tt><tt class="py-op">,</tt> <tt class="py-name">method</tt><tt class="py-op">)</tt> </tt>
-</div><a name="L585"></a><tt class="py-lineno">585</tt> <tt class="py-line"> </tt>
-<a name="L586"></a><tt class="py-lineno">586</tt> <tt class="py-line"> <tt class="py-keyword">def</tt> <tt class="py-def-name">createNextMethodFromFuture</tt><tt class="py-op">(</tt><tt class="py-param">theclass</tt><tt class="py-op">,</tt> <tt class="py-param">methodName</tt><tt class="py-op">,</tt> <tt class="py-param">methodDesc</tt><tt class="py-op">,</tt> <tt class="py-param">futureDesc</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-<a name="L587"></a><tt class="py-lineno">587</tt> <tt class="py-line"> <tt class="py-docstring">""" This is a legacy method, as only Buzz and Moderator use the future.json</tt> </tt>
-<a name="L588"></a><tt class="py-lineno">588</tt> <tt class="py-line"><tt class="py-docstring"> functionality for generating _next methods. It will be kept around as long</tt> </tt>
-<a name="L589"></a><tt class="py-lineno">589</tt> <tt class="py-line"><tt class="py-docstring"> as those API versions are around, but no new APIs should depend upon it.</tt> </tt>
-<a name="L590"></a><tt class="py-lineno">590</tt> <tt class="py-line"><tt class="py-docstring"> """</tt> </tt>
-<a name="L591"></a><tt class="py-lineno">591</tt> <tt class="py-line"> <tt class="py-name">methodName</tt> <tt class="py-op">=</tt> <tt id="link-152" class="py-name"><a title="apiclient.discovery._fix_method_name" class="py-name" href="#" onclick="return doclink('link-152', '_fix_method_name', 'link-83');">_fix_method_name</a></tt><tt class="py-op">(</tt><tt class="py-name">methodName</tt><tt class="py-op">)</tt> </tt>
-<a name="L592"></a><tt class="py-lineno">592</tt> <tt class="py-line"> <tt class="py-name">methodId</tt> <tt class="py-op">=</tt> <tt class="py-name">methodDesc</tt><tt class="py-op">[</tt><tt class="py-string">'id'</tt><tt class="py-op">]</tt> <tt class="py-op">+</tt> <tt class="py-string">'.next'</tt> </tt>
-<a name="L593"></a><tt class="py-lineno">593</tt> <tt class="py-line"> </tt>
-<a name="L594"></a><tt class="py-lineno">594</tt> <tt class="py-line"> <tt class="py-keyword">def</tt> <tt class="py-def-name">methodNext</tt><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">,</tt> <tt class="py-param">previous</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-<a name="L595"></a><tt class="py-lineno">595</tt> <tt class="py-line"> <tt class="py-docstring">"""Retrieve the next page of results.</tt> </tt>
-<a name="L596"></a><tt class="py-lineno">596</tt> <tt class="py-line"><tt class="py-docstring"></tt> </tt>
-<a name="L597"></a><tt class="py-lineno">597</tt> <tt class="py-line"><tt class="py-docstring"> Takes a single argument, 'body', which is the results</tt> </tt>
-<a name="L598"></a><tt class="py-lineno">598</tt> <tt class="py-line"><tt class="py-docstring"> from the last call, and returns the next set of items</tt> </tt>
-<a name="L599"></a><tt class="py-lineno">599</tt> <tt class="py-line"><tt class="py-docstring"> in the collection.</tt> </tt>
-<a name="L600"></a><tt class="py-lineno">600</tt> <tt class="py-line"><tt class="py-docstring"></tt> </tt>
-<a name="L601"></a><tt class="py-lineno">601</tt> <tt class="py-line"><tt class="py-docstring"> Returns:</tt> </tt>
-<a name="L602"></a><tt class="py-lineno">602</tt> <tt class="py-line"><tt class="py-docstring"> None if there are no more items in the collection.</tt> </tt>
-<a name="L603"></a><tt class="py-lineno">603</tt> <tt class="py-line"><tt class="py-docstring"> """</tt> </tt>
-<a name="L604"></a><tt class="py-lineno">604</tt> <tt class="py-line"> <tt class="py-keyword">if</tt> <tt class="py-name">futureDesc</tt><tt class="py-op">[</tt><tt class="py-string">'type'</tt><tt class="py-op">]</tt> <tt class="py-op">!=</tt> <tt class="py-string">'uri'</tt><tt class="py-op">:</tt> </tt>
-<a name="L605"></a><tt class="py-lineno">605</tt> <tt class="py-line"> <tt class="py-keyword">raise</tt> <tt id="link-153" class="py-name"><a title="apiclient.errors.UnknownLinkType" class="py-name" href="#" onclick="return doclink('link-153', 'UnknownLinkType', 'link-18');">UnknownLinkType</a></tt><tt class="py-op">(</tt><tt class="py-name">futureDesc</tt><tt class="py-op">[</tt><tt class="py-string">'type'</tt><tt class="py-op">]</tt><tt class="py-op">)</tt> </tt>
-<a name="L606"></a><tt class="py-lineno">606</tt> <tt class="py-line"> </tt>
-<a name="L607"></a><tt class="py-lineno">607</tt> <tt class="py-line"> <tt class="py-keyword">try</tt><tt class="py-op">:</tt> </tt>
-<a name="L608"></a><tt class="py-lineno">608</tt> <tt class="py-line"> <tt class="py-name">p</tt> <tt class="py-op">=</tt> <tt class="py-name">previous</tt> </tt>
-<a name="L609"></a><tt class="py-lineno">609</tt> <tt class="py-line"> <tt class="py-keyword">for</tt> <tt class="py-name">key</tt> <tt class="py-keyword">in</tt> <tt class="py-name">futureDesc</tt><tt class="py-op">[</tt><tt class="py-string">'location'</tt><tt class="py-op">]</tt><tt class="py-op">:</tt> </tt>
-<a name="L610"></a><tt class="py-lineno">610</tt> <tt class="py-line"> <tt class="py-name">p</tt> <tt class="py-op">=</tt> <tt class="py-name">p</tt><tt class="py-op">[</tt><tt class="py-name">key</tt><tt class="py-op">]</tt> </tt>
-<a name="L611"></a><tt class="py-lineno">611</tt> <tt class="py-line"> <tt class="py-name">url</tt> <tt class="py-op">=</tt> <tt class="py-name">p</tt> </tt>
-<a name="L612"></a><tt class="py-lineno">612</tt> <tt class="py-line"> <tt class="py-keyword">except</tt> <tt class="py-op">(</tt><tt class="py-name">KeyError</tt><tt class="py-op">,</tt> <tt class="py-name">TypeError</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-<a name="L613"></a><tt class="py-lineno">613</tt> <tt class="py-line"> <tt class="py-keyword">return</tt> <tt class="py-name">None</tt> </tt>
-<a name="L614"></a><tt class="py-lineno">614</tt> <tt class="py-line"> </tt>
-<a name="L615"></a><tt class="py-lineno">615</tt> <tt class="py-line"> <tt class="py-name">url</tt> <tt class="py-op">=</tt> <tt id="link-154" class="py-name"><a title="apiclient.discovery._add_query_parameter" class="py-name" href="#" onclick="return doclink('link-154', '_add_query_parameter', 'link-51');">_add_query_parameter</a></tt><tt class="py-op">(</tt><tt class="py-name">url</tt><tt class="py-op">,</tt> <tt class="py-string">'key'</tt><tt class="py-op">,</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">_developerKey</tt><tt class="py-op">)</tt> </tt>
-<a name="L616"></a><tt class="py-lineno">616</tt> <tt class="py-line"> </tt>
-<a name="L617"></a><tt class="py-lineno">617</tt> <tt class="py-line"> <tt class="py-name">headers</tt> <tt class="py-op">=</tt> <tt class="py-op">{</tt><tt class="py-op">}</tt> </tt>
-<a name="L618"></a><tt class="py-lineno">618</tt> <tt class="py-line"> <tt class="py-name">headers</tt><tt class="py-op">,</tt> <tt class="py-name">params</tt><tt class="py-op">,</tt> <tt class="py-name">query</tt><tt class="py-op">,</tt> <tt class="py-name">body</tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">_model</tt><tt class="py-op">.</tt><tt id="link-155" 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-155', 'request', 'link-54');">request</a></tt><tt class="py-op">(</tt><tt class="py-name">headers</tt><tt class="py-op">,</tt> <tt class="py-op">{</tt><tt class="py-op">}</tt><tt class="py-op">,</tt> <tt class="py-op">{</tt><tt class="py-op">}</tt><tt class="py-op">,</tt> <tt class="py-name">None</tt><tt class="py-op">)</tt> </tt>
-<a name="L619"></a><tt class="py-lineno">619</tt> <tt class="py-line"> </tt>
-<a name="L620"></a><tt class="py-lineno">620</tt> <tt class="py-line"> <tt id="link-156" class="py-name"><a title="apiclient.discovery.logger
-oauth2client.client.logger
-oauth2client.multistore_file.logger" class="py-name" href="#" onclick="return doclink('link-156', 'logger', 'link-39');">logger</a></tt><tt class="py-op">.</tt><tt class="py-name">info</tt><tt class="py-op">(</tt><tt class="py-string">'URL being requested: %s'</tt> <tt class="py-op">%</tt> <tt class="py-name">url</tt><tt class="py-op">)</tt> </tt>
-<a name="L621"></a><tt class="py-lineno">621</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">self</tt><tt class="py-op">.</tt><tt class="py-name">_http</tt><tt class="py-op">.</tt><tt id="link-157" 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-157', 'request', 'link-54');">request</a></tt><tt class="py-op">(</tt><tt class="py-name">url</tt><tt class="py-op">,</tt> <tt class="py-name">method</tt><tt class="py-op">=</tt><tt class="py-string">'GET'</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="L622"></a><tt class="py-lineno">622</tt> <tt class="py-line"> </tt>
-<a name="L623"></a><tt class="py-lineno">623</tt> <tt class="py-line"> <tt class="py-keyword">return</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">_requestBuilder</tt><tt class="py-op">(</tt><tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">_http</tt><tt class="py-op">,</tt> </tt>
-<a name="L624"></a><tt class="py-lineno">624</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">_model</tt><tt class="py-op">.</tt><tt id="link-158" class="py-name"><a title="apiclient.model.BaseModel.response
-apiclient.model.Model.response" class="py-name" href="#" onclick="return doclink('link-158', 'response', 'link-138');">response</a></tt><tt class="py-op">,</tt> </tt>
-<a name="L625"></a><tt class="py-lineno">625</tt> <tt class="py-line"> <tt class="py-name">url</tt><tt class="py-op">,</tt> </tt>
-<a name="L626"></a><tt class="py-lineno">626</tt> <tt class="py-line"> <tt class="py-name">method</tt><tt class="py-op">=</tt><tt class="py-string">'GET'</tt><tt class="py-op">,</tt> </tt>
-<a name="L627"></a><tt class="py-lineno">627</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="L628"></a><tt class="py-lineno">628</tt> <tt class="py-line"> <tt class="py-name">methodId</tt><tt class="py-op">=</tt><tt class="py-name">methodId</tt><tt class="py-op">)</tt> </tt>
-</div><a name="L629"></a><tt class="py-lineno">629</tt> <tt class="py-line"> </tt>
-<a name="L630"></a><tt class="py-lineno">630</tt> <tt class="py-line"> <tt class="py-name">setattr</tt><tt class="py-op">(</tt><tt class="py-name">theclass</tt><tt class="py-op">,</tt> <tt class="py-name">methodName</tt><tt class="py-op">,</tt> <tt class="py-name">methodNext</tt><tt class="py-op">)</tt> </tt>
-</div><a name="L631"></a><tt class="py-lineno">631</tt> <tt class="py-line"> </tt>
-<a name="L632"></a><tt class="py-lineno">632</tt> <tt class="py-line"> <tt class="py-keyword">def</tt> <tt class="py-def-name">createNextMethod</tt><tt class="py-op">(</tt><tt class="py-param">theclass</tt><tt class="py-op">,</tt> <tt class="py-param">methodName</tt><tt class="py-op">,</tt> <tt class="py-param">methodDesc</tt><tt class="py-op">,</tt> <tt class="py-param">futureDesc</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-<a name="L633"></a><tt class="py-lineno">633</tt> <tt class="py-line"> <tt class="py-name">methodName</tt> <tt class="py-op">=</tt> <tt id="link-159" class="py-name"><a title="apiclient.discovery._fix_method_name" class="py-name" href="#" onclick="return doclink('link-159', '_fix_method_name', 'link-83');">_fix_method_name</a></tt><tt class="py-op">(</tt><tt class="py-name">methodName</tt><tt class="py-op">)</tt> </tt>
-<a name="L634"></a><tt class="py-lineno">634</tt> <tt class="py-line"> <tt class="py-name">methodId</tt> <tt class="py-op">=</tt> <tt class="py-name">methodDesc</tt><tt class="py-op">[</tt><tt class="py-string">'id'</tt><tt class="py-op">]</tt> <tt class="py-op">+</tt> <tt class="py-string">'.next'</tt> </tt>
-<a name="L635"></a><tt class="py-lineno">635</tt> <tt class="py-line"> </tt>
-<a name="L636"></a><tt class="py-lineno">636</tt> <tt class="py-line"> <tt class="py-keyword">def</tt> <tt class="py-def-name">methodNext</tt><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">,</tt> <tt class="py-param">previous_request</tt><tt class="py-op">,</tt> <tt class="py-param">previous_response</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-<a name="L637"></a><tt class="py-lineno">637</tt> <tt class="py-line"> <tt class="py-docstring">"""Retrieves the next page of results.</tt> </tt>
-<a name="L638"></a><tt class="py-lineno">638</tt> <tt class="py-line"><tt class="py-docstring"></tt> </tt>
-<a name="L639"></a><tt class="py-lineno">639</tt> <tt class="py-line"><tt class="py-docstring"> Args:</tt> </tt>
-<a name="L640"></a><tt class="py-lineno">640</tt> <tt class="py-line"><tt class="py-docstring"> previous_request: The request for the previous page.</tt> </tt>
-<a name="L641"></a><tt class="py-lineno">641</tt> <tt class="py-line"><tt class="py-docstring"> previous_response: The response from the request for the previous page.</tt> </tt>
+oauth2client.client.Storage.get" class="py-name" href="#" onclick="return doclink('link-149', 'get', 'link-70');">get</a></tt><tt class="py-op">(</tt><tt class="py-string">'enum'</tt><tt class="py-op">,</tt> <tt class="py-op">[</tt><tt class="py-op">]</tt><tt class="py-op">)</tt> </tt>
+<a name="L613"></a><tt class="py-lineno">613</tt> <tt class="py-line"> <tt class="py-name">enumDesc</tt> <tt class="py-op">=</tt> <tt class="py-name">paramdesc</tt><tt class="py-op">.</tt><tt id="link-150" 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-150', 'get', 'link-70');">get</a></tt><tt class="py-op">(</tt><tt class="py-string">'enumDescriptions'</tt><tt class="py-op">,</tt> <tt class="py-op">[</tt><tt class="py-op">]</tt><tt class="py-op">)</tt> </tt>
+<a name="L614"></a><tt class="py-lineno">614</tt> <tt class="py-line"> <tt class="py-keyword">if</tt> <tt class="py-name">enum</tt> <tt class="py-keyword">and</tt> <tt class="py-name">enumDesc</tt><tt class="py-op">:</tt> </tt>
+<a name="L615"></a><tt class="py-lineno">615</tt> <tt class="py-line"> <tt class="py-name">docs</tt><tt class="py-op">.</tt><tt class="py-name">append</tt><tt class="py-op">(</tt><tt class="py-string">' Allowed values\n'</tt><tt class="py-op">)</tt> </tt>
+<a name="L616"></a><tt class="py-lineno">616</tt> <tt class="py-line"> <tt class="py-keyword">for</tt> <tt class="py-op">(</tt><tt class="py-name">name</tt><tt class="py-op">,</tt> <tt class="py-name">desc</tt><tt class="py-op">)</tt> <tt class="py-keyword">in</tt> <tt class="py-name">zip</tt><tt class="py-op">(</tt><tt class="py-name">enum</tt><tt class="py-op">,</tt> <tt class="py-name">enumDesc</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+<a name="L617"></a><tt class="py-lineno">617</tt> <tt class="py-line"> <tt class="py-name">docs</tt><tt class="py-op">.</tt><tt class="py-name">append</tt><tt class="py-op">(</tt><tt class="py-string">' %s - %s\n'</tt> <tt class="py-op">%</tt> <tt class="py-op">(</tt><tt class="py-name">name</tt><tt class="py-op">,</tt> <tt class="py-name">desc</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
+<a name="L618"></a><tt class="py-lineno">618</tt> <tt class="py-line"> <tt class="py-keyword">if</tt> <tt class="py-string">'response'</tt> <tt class="py-keyword">in</tt> <tt class="py-name">methodDesc</tt><tt class="py-op">:</tt> </tt>
+<a name="L619"></a><tt class="py-lineno">619</tt> <tt class="py-line"> <tt class="py-name">docs</tt><tt class="py-op">.</tt><tt class="py-name">append</tt><tt class="py-op">(</tt><tt class="py-string">'\nReturns:\n An object of the form\n\n '</tt><tt class="py-op">)</tt> </tt>
+<a name="L620"></a><tt class="py-lineno">620</tt> <tt class="py-line"> <tt class="py-name">docs</tt><tt class="py-op">.</tt><tt class="py-name">append</tt><tt class="py-op">(</tt><tt id="link-151" class="py-name"><a title="apiclient.schema" class="py-name" href="#" onclick="return doclink('link-151', 'schema', 'link-35');">schema</a></tt><tt class="py-op">.</tt><tt id="link-152" class="py-name" targets="Method apiclient.schema.Schemas.prettyPrintSchema()=apiclient.schema.Schemas-class.html#prettyPrintSchema"><a title="apiclient.schema.Schemas.prettyPrintSchema" class="py-name" href="#" onclick="return doclink('link-152', 'prettyPrintSchema', 'link-152');">prettyPrintSchema</a></tt><tt class="py-op">(</tt><tt class="py-name">methodDesc</tt><tt class="py-op">[</tt><tt class="py-string">'response'</tt><tt class="py-op">]</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
+<a name="L621"></a><tt class="py-lineno">621</tt> <tt class="py-line"> </tt>
+<a name="L622"></a><tt class="py-lineno">622</tt> <tt class="py-line"> <tt class="py-name">setattr</tt><tt class="py-op">(</tt><tt class="py-name">method</tt><tt class="py-op">,</tt> <tt class="py-string">'__doc__'</tt><tt class="py-op">,</tt> <tt class="py-string">''</tt><tt class="py-op">.</tt><tt class="py-name">join</tt><tt class="py-op">(</tt><tt class="py-name">docs</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
+<a name="L623"></a><tt class="py-lineno">623</tt> <tt class="py-line"> <tt class="py-name">setattr</tt><tt class="py-op">(</tt><tt class="py-name">theclass</tt><tt class="py-op">,</tt> <tt class="py-name">methodName</tt><tt class="py-op">,</tt> <tt class="py-name">method</tt><tt class="py-op">)</tt> </tt>
+</div><a name="L624"></a><tt class="py-lineno">624</tt> <tt class="py-line"> </tt>
+<a name="L625"></a><tt class="py-lineno">625</tt> <tt class="py-line"> <tt class="py-keyword">def</tt> <tt class="py-def-name">createNextMethod</tt><tt class="py-op">(</tt><tt class="py-param">theclass</tt><tt class="py-op">,</tt> <tt class="py-param">methodName</tt><tt class="py-op">,</tt> <tt class="py-param">methodDesc</tt><tt class="py-op">,</tt> <tt class="py-param">rootDesc</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+<a name="L626"></a><tt class="py-lineno">626</tt> <tt class="py-line"> <tt class="py-docstring">"""Creates any _next methods for attaching to a Resource.</tt> </tt>
+<a name="L627"></a><tt class="py-lineno">627</tt> <tt class="py-line"><tt class="py-docstring"></tt> </tt>
+<a name="L628"></a><tt class="py-lineno">628</tt> <tt class="py-line"><tt class="py-docstring"> The _next methods allow for easy iteration through list() responses.</tt> </tt>
+<a name="L629"></a><tt class="py-lineno">629</tt> <tt class="py-line"><tt class="py-docstring"></tt> </tt>
+<a name="L630"></a><tt class="py-lineno">630</tt> <tt class="py-line"><tt class="py-docstring"> Args:</tt> </tt>
+<a name="L631"></a><tt class="py-lineno">631</tt> <tt class="py-line"><tt class="py-docstring"> theclass: type, the class to attach methods to.</tt> </tt>
+<a name="L632"></a><tt class="py-lineno">632</tt> <tt class="py-line"><tt class="py-docstring"> methodName: string, name of the method to use.</tt> </tt>
+<a name="L633"></a><tt class="py-lineno">633</tt> <tt class="py-line"><tt class="py-docstring"> methodDesc: object, fragment of deserialized discovery document that</tt> </tt>
+<a name="L634"></a><tt class="py-lineno">634</tt> <tt class="py-line"><tt class="py-docstring"> describes the method.</tt> </tt>
+<a name="L635"></a><tt class="py-lineno">635</tt> <tt class="py-line"><tt class="py-docstring"> rootDesc: object, the entire deserialized discovery document.</tt> </tt>
+<a name="L636"></a><tt class="py-lineno">636</tt> <tt class="py-line"><tt class="py-docstring"> """</tt> </tt>
+<a name="L637"></a><tt class="py-lineno">637</tt> <tt class="py-line"> <tt class="py-name">methodName</tt> <tt class="py-op">=</tt> <tt id="link-153" class="py-name"><a title="apiclient.discovery.fix_method_name" class="py-name" href="#" onclick="return doclink('link-153', 'fix_method_name', 'link-82');">fix_method_name</a></tt><tt class="py-op">(</tt><tt class="py-name">methodName</tt><tt class="py-op">)</tt> </tt>
+<a name="L638"></a><tt class="py-lineno">638</tt> <tt class="py-line"> <tt class="py-name">methodId</tt> <tt class="py-op">=</tt> <tt class="py-name">methodDesc</tt><tt class="py-op">[</tt><tt class="py-string">'id'</tt><tt class="py-op">]</tt> <tt class="py-op">+</tt> <tt class="py-string">'.next'</tt> </tt>
+<a name="L639"></a><tt class="py-lineno">639</tt> <tt class="py-line"> </tt>
+<a name="L640"></a><tt class="py-lineno">640</tt> <tt class="py-line"> <tt class="py-keyword">def</tt> <tt class="py-def-name">methodNext</tt><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">,</tt> <tt class="py-param">previous_request</tt><tt class="py-op">,</tt> <tt class="py-param">previous_response</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+<a name="L641"></a><tt class="py-lineno">641</tt> <tt class="py-line"> <tt class="py-docstring">"""Retrieves the next page of results.</tt> </tt>
<a name="L642"></a><tt class="py-lineno">642</tt> <tt class="py-line"><tt class="py-docstring"></tt> </tt>
-<a name="L643"></a><tt class="py-lineno">643</tt> <tt class="py-line"><tt class="py-docstring"> Returns:</tt> </tt>
-<a name="L644"></a><tt class="py-lineno">644</tt> <tt class="py-line"><tt class="py-docstring"> A request object that you can call 'execute()' on to request the next</tt> </tt>
-<a name="L645"></a><tt class="py-lineno">645</tt> <tt class="py-line"><tt class="py-docstring"> page. Returns None if there are no more items in the collection.</tt> </tt>
-<a name="L646"></a><tt class="py-lineno">646</tt> <tt class="py-line"><tt class="py-docstring"> """</tt> </tt>
-<a name="L647"></a><tt class="py-lineno">647</tt> <tt class="py-line"> <tt class="py-comment"># Retrieve nextPageToken from previous_response</tt> </tt>
-<a name="L648"></a><tt class="py-lineno">648</tt> <tt class="py-line"> <tt class="py-comment"># Use as pageToken in previous_request to create new request.</tt> </tt>
-<a name="L649"></a><tt class="py-lineno">649</tt> <tt class="py-line"> </tt>
-<a name="L650"></a><tt class="py-lineno">650</tt> <tt class="py-line"> <tt class="py-keyword">if</tt> <tt class="py-string">'nextPageToken'</tt> <tt class="py-keyword">not</tt> <tt class="py-keyword">in</tt> <tt class="py-name">previous_response</tt><tt class="py-op">:</tt> </tt>
-<a name="L651"></a><tt class="py-lineno">651</tt> <tt class="py-line"> <tt class="py-keyword">return</tt> <tt class="py-name">None</tt> </tt>
-<a name="L652"></a><tt class="py-lineno">652</tt> <tt class="py-line"> </tt>
-<a name="L653"></a><tt class="py-lineno">653</tt> <tt class="py-line"> <tt id="link-160" class="py-name"><a title="apiclient.http.HttpMock.request
+<a name="L643"></a><tt class="py-lineno">643</tt> <tt class="py-line"><tt class="py-docstring"> Args:</tt> </tt>
+<a name="L644"></a><tt class="py-lineno">644</tt> <tt class="py-line"><tt class="py-docstring"> previous_request: The request for the previous page.</tt> </tt>
+<a name="L645"></a><tt class="py-lineno">645</tt> <tt class="py-line"><tt class="py-docstring"> previous_response: The response from the request for the previous page.</tt> </tt>
+<a name="L646"></a><tt class="py-lineno">646</tt> <tt class="py-line"><tt class="py-docstring"></tt> </tt>
+<a name="L647"></a><tt class="py-lineno">647</tt> <tt class="py-line"><tt class="py-docstring"> Returns:</tt> </tt>
+<a name="L648"></a><tt class="py-lineno">648</tt> <tt class="py-line"><tt class="py-docstring"> A request object that you can call 'execute()' on to request the next</tt> </tt>
+<a name="L649"></a><tt class="py-lineno">649</tt> <tt class="py-line"><tt class="py-docstring"> page. Returns None if there are no more items in the collection.</tt> </tt>
+<a name="L650"></a><tt class="py-lineno">650</tt> <tt class="py-line"><tt class="py-docstring"> """</tt> </tt>
+<a name="L651"></a><tt class="py-lineno">651</tt> <tt class="py-line"> <tt class="py-comment"># Retrieve nextPageToken from previous_response</tt> </tt>
+<a name="L652"></a><tt class="py-lineno">652</tt> <tt class="py-line"> <tt class="py-comment"># Use as pageToken in previous_request to create new request.</tt> </tt>
+<a name="L653"></a><tt class="py-lineno">653</tt> <tt class="py-line"> </tt>
+<a name="L654"></a><tt class="py-lineno">654</tt> <tt class="py-line"> <tt class="py-keyword">if</tt> <tt class="py-string">'nextPageToken'</tt> <tt class="py-keyword">not</tt> <tt class="py-keyword">in</tt> <tt class="py-name">previous_response</tt><tt class="py-op">:</tt> </tt>
+<a name="L655"></a><tt class="py-lineno">655</tt> <tt class="py-line"> <tt class="py-keyword">return</tt> <tt class="py-name">None</tt> </tt>
+<a name="L656"></a><tt class="py-lineno">656</tt> <tt class="py-line"> </tt>
+<a name="L657"></a><tt class="py-lineno">657</tt> <tt class="py-line"> <tt id="link-154" 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-160', 'request', 'link-54');">request</a></tt> <tt class="py-op">=</tt> <tt class="py-name">copy</tt><tt class="py-op">.</tt><tt class="py-name">copy</tt><tt class="py-op">(</tt><tt class="py-name">previous_request</tt><tt class="py-op">)</tt> </tt>
-<a name="L654"></a><tt class="py-lineno">654</tt> <tt class="py-line"> </tt>
-<a name="L655"></a><tt class="py-lineno">655</tt> <tt class="py-line"> <tt class="py-name">pageToken</tt> <tt class="py-op">=</tt> <tt class="py-name">previous_response</tt><tt class="py-op">[</tt><tt class="py-string">'nextPageToken'</tt><tt class="py-op">]</tt> </tt>
-<a name="L656"></a><tt class="py-lineno">656</tt> <tt class="py-line"> <tt class="py-name">parsed</tt> <tt class="py-op">=</tt> <tt class="py-name">list</tt><tt class="py-op">(</tt><tt class="py-name">urlparse</tt><tt class="py-op">.</tt><tt class="py-name">urlparse</tt><tt class="py-op">(</tt><tt id="link-161" 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-161', 'request', 'link-54');">request</a></tt><tt class="py-op">.</tt><tt class="py-name">uri</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
-<a name="L657"></a><tt class="py-lineno">657</tt> <tt class="py-line"> <tt class="py-name">q</tt> <tt class="py-op">=</tt> <tt class="py-name">parse_qsl</tt><tt class="py-op">(</tt><tt class="py-name">parsed</tt><tt class="py-op">[</tt><tt class="py-number">4</tt><tt class="py-op">]</tt><tt class="py-op">)</tt> </tt>
+apiclient.model.Model.request" class="py-name" href="#" onclick="return doclink('link-154', 'request', 'link-54');">request</a></tt> <tt class="py-op">=</tt> <tt class="py-name">copy</tt><tt class="py-op">.</tt><tt class="py-name">copy</tt><tt class="py-op">(</tt><tt class="py-name">previous_request</tt><tt class="py-op">)</tt> </tt>
<a name="L658"></a><tt class="py-lineno">658</tt> <tt class="py-line"> </tt>
-<a name="L659"></a><tt class="py-lineno">659</tt> <tt class="py-line"> <tt class="py-comment"># Find and remove old 'pageToken' value from URI</tt> </tt>
-<a name="L660"></a><tt class="py-lineno">660</tt> <tt class="py-line"> <tt class="py-name">newq</tt> <tt class="py-op">=</tt> <tt class="py-op">[</tt><tt class="py-op">(</tt><tt class="py-name">key</tt><tt class="py-op">,</tt> <tt class="py-name">value</tt><tt class="py-op">)</tt> <tt class="py-keyword">for</tt> <tt class="py-op">(</tt><tt class="py-name">key</tt><tt class="py-op">,</tt> <tt class="py-name">value</tt><tt class="py-op">)</tt> <tt class="py-keyword">in</tt> <tt class="py-name">q</tt> <tt class="py-keyword">if</tt> <tt class="py-name">key</tt> <tt class="py-op">!=</tt> <tt class="py-string">'pageToken'</tt><tt class="py-op">]</tt> </tt>
-<a name="L661"></a><tt class="py-lineno">661</tt> <tt class="py-line"> <tt class="py-name">newq</tt><tt class="py-op">.</tt><tt class="py-name">append</tt><tt class="py-op">(</tt><tt class="py-op">(</tt><tt class="py-string">'pageToken'</tt><tt class="py-op">,</tt> <tt class="py-name">pageToken</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
-<a name="L662"></a><tt class="py-lineno">662</tt> <tt class="py-line"> <tt class="py-name">parsed</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">newq</tt><tt class="py-op">)</tt> </tt>
-<a name="L663"></a><tt class="py-lineno">663</tt> <tt class="py-line"> <tt class="py-name">uri</tt> <tt class="py-op">=</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">parsed</tt><tt class="py-op">)</tt> </tt>
-<a name="L664"></a><tt class="py-lineno">664</tt> <tt class="py-line"> </tt>
-<a name="L665"></a><tt class="py-lineno">665</tt> <tt class="py-line"> <tt id="link-162" class="py-name"><a title="apiclient.http.HttpMock.request
+<a name="L659"></a><tt class="py-lineno">659</tt> <tt class="py-line"> <tt class="py-name">pageToken</tt> <tt class="py-op">=</tt> <tt class="py-name">previous_response</tt><tt class="py-op">[</tt><tt class="py-string">'nextPageToken'</tt><tt class="py-op">]</tt> </tt>
+<a name="L660"></a><tt class="py-lineno">660</tt> <tt class="py-line"> <tt class="py-name">parsed</tt> <tt class="py-op">=</tt> <tt class="py-name">list</tt><tt class="py-op">(</tt><tt class="py-name">urlparse</tt><tt class="py-op">.</tt><tt class="py-name">urlparse</tt><tt class="py-op">(</tt><tt id="link-155" 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-162', 'request', 'link-54');">request</a></tt><tt class="py-op">.</tt><tt class="py-name">uri</tt> <tt class="py-op">=</tt> <tt class="py-name">uri</tt> </tt>
-<a name="L666"></a><tt class="py-lineno">666</tt> <tt class="py-line"> </tt>
-<a name="L667"></a><tt class="py-lineno">667</tt> <tt class="py-line"> <tt id="link-163" class="py-name"><a title="apiclient.discovery.logger
-oauth2client.client.logger
-oauth2client.multistore_file.logger" class="py-name" href="#" onclick="return doclink('link-163', 'logger', 'link-39');">logger</a></tt><tt class="py-op">.</tt><tt class="py-name">info</tt><tt class="py-op">(</tt><tt class="py-string">'URL being requested: %s'</tt> <tt class="py-op">%</tt> <tt class="py-name">uri</tt><tt class="py-op">)</tt> </tt>
+apiclient.model.Model.request" class="py-name" href="#" onclick="return doclink('link-155', 'request', 'link-54');">request</a></tt><tt class="py-op">.</tt><tt class="py-name">uri</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
+<a name="L661"></a><tt class="py-lineno">661</tt> <tt class="py-line"> <tt class="py-name">q</tt> <tt class="py-op">=</tt> <tt class="py-name">parse_qsl</tt><tt class="py-op">(</tt><tt class="py-name">parsed</tt><tt class="py-op">[</tt><tt class="py-number">4</tt><tt class="py-op">]</tt><tt class="py-op">)</tt> </tt>
+<a name="L662"></a><tt class="py-lineno">662</tt> <tt class="py-line"> </tt>
+<a name="L663"></a><tt class="py-lineno">663</tt> <tt class="py-line"> <tt class="py-comment"># Find and remove old 'pageToken' value from URI</tt> </tt>
+<a name="L664"></a><tt class="py-lineno">664</tt> <tt class="py-line"> <tt class="py-name">newq</tt> <tt class="py-op">=</tt> <tt class="py-op">[</tt><tt class="py-op">(</tt><tt class="py-name">key</tt><tt class="py-op">,</tt> <tt class="py-name">value</tt><tt class="py-op">)</tt> <tt class="py-keyword">for</tt> <tt class="py-op">(</tt><tt class="py-name">key</tt><tt class="py-op">,</tt> <tt class="py-name">value</tt><tt class="py-op">)</tt> <tt class="py-keyword">in</tt> <tt class="py-name">q</tt> <tt class="py-keyword">if</tt> <tt class="py-name">key</tt> <tt class="py-op">!=</tt> <tt class="py-string">'pageToken'</tt><tt class="py-op">]</tt> </tt>
+<a name="L665"></a><tt class="py-lineno">665</tt> <tt class="py-line"> <tt class="py-name">newq</tt><tt class="py-op">.</tt><tt class="py-name">append</tt><tt class="py-op">(</tt><tt class="py-op">(</tt><tt class="py-string">'pageToken'</tt><tt class="py-op">,</tt> <tt class="py-name">pageToken</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
+<a name="L666"></a><tt class="py-lineno">666</tt> <tt class="py-line"> <tt class="py-name">parsed</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">newq</tt><tt class="py-op">)</tt> </tt>
+<a name="L667"></a><tt class="py-lineno">667</tt> <tt class="py-line"> <tt class="py-name">uri</tt> <tt class="py-op">=</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">parsed</tt><tt class="py-op">)</tt> </tt>
<a name="L668"></a><tt class="py-lineno">668</tt> <tt class="py-line"> </tt>
-<a name="L669"></a><tt class="py-lineno">669</tt> <tt class="py-line"> <tt class="py-keyword">return</tt> <tt id="link-164" class="py-name"><a title="apiclient.http.HttpMock.request
+<a name="L669"></a><tt class="py-lineno">669</tt> <tt class="py-line"> <tt id="link-156" 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-164', 'request', 'link-54');">request</a></tt> </tt>
-</div><a name="L670"></a><tt class="py-lineno">670</tt> <tt class="py-line"> </tt>
-<a name="L671"></a><tt class="py-lineno">671</tt> <tt class="py-line"> <tt class="py-name">setattr</tt><tt class="py-op">(</tt><tt class="py-name">theclass</tt><tt class="py-op">,</tt> <tt class="py-name">methodName</tt><tt class="py-op">,</tt> <tt class="py-name">methodNext</tt><tt class="py-op">)</tt> </tt>
-</div><a name="L672"></a><tt class="py-lineno">672</tt> <tt class="py-line"> </tt>
-<a name="L673"></a><tt class="py-lineno">673</tt> <tt class="py-line"> <tt class="py-comment"># Add basic methods to Resource</tt> </tt>
-<a name="L674"></a><tt class="py-lineno">674</tt> <tt class="py-line"> <tt class="py-keyword">if</tt> <tt class="py-string">'methods'</tt> <tt class="py-keyword">in</tt> <tt class="py-name">resourceDesc</tt><tt class="py-op">:</tt> </tt>
-<a name="L675"></a><tt class="py-lineno">675</tt> <tt class="py-line"> <tt class="py-keyword">for</tt> <tt class="py-name">methodName</tt><tt class="py-op">,</tt> <tt class="py-name">methodDesc</tt> <tt class="py-keyword">in</tt> <tt class="py-name">resourceDesc</tt><tt class="py-op">[</tt><tt class="py-string">'methods'</tt><tt class="py-op">]</tt><tt class="py-op">.</tt><tt class="py-name">iteritems</tt><tt class="py-op">(</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-<a name="L676"></a><tt class="py-lineno">676</tt> <tt class="py-line"> <tt class="py-keyword">if</tt> <tt class="py-name">futureDesc</tt><tt class="py-op">:</tt> </tt>
-<a name="L677"></a><tt class="py-lineno">677</tt> <tt class="py-line"> <tt class="py-name">future</tt> <tt class="py-op">=</tt> <tt class="py-name">futureDesc</tt><tt class="py-op">[</tt><tt class="py-string">'methods'</tt><tt class="py-op">]</tt><tt class="py-op">.</tt><tt id="link-165" 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-165', 'get', 'link-67');">get</a></tt><tt class="py-op">(</tt><tt class="py-name">methodName</tt><tt class="py-op">,</tt> <tt class="py-op">{</tt><tt class="py-op">}</tt><tt class="py-op">)</tt> </tt>
-<a name="L678"></a><tt class="py-lineno">678</tt> <tt class="py-line"> <tt class="py-keyword">else</tt><tt class="py-op">:</tt> </tt>
-<a name="L679"></a><tt class="py-lineno">679</tt> <tt class="py-line"> <tt class="py-name">future</tt> <tt class="py-op">=</tt> <tt class="py-name">None</tt> </tt>
-<a name="L680"></a><tt class="py-lineno">680</tt> <tt class="py-line"> <tt class="py-name">createMethod</tt><tt class="py-op">(</tt><tt class="py-name">Resource</tt><tt class="py-op">,</tt> <tt class="py-name">methodName</tt><tt class="py-op">,</tt> <tt class="py-name">methodDesc</tt><tt class="py-op">,</tt> <tt class="py-name">future</tt><tt class="py-op">)</tt> </tt>
+apiclient.model.Model.request" class="py-name" href="#" onclick="return doclink('link-156', 'request', 'link-54');">request</a></tt><tt class="py-op">.</tt><tt class="py-name">uri</tt> <tt class="py-op">=</tt> <tt class="py-name">uri</tt> </tt>
+<a name="L670"></a><tt class="py-lineno">670</tt> <tt class="py-line"> </tt>
+<a name="L671"></a><tt class="py-lineno">671</tt> <tt class="py-line"> <tt id="link-157" 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-157', 'logger', 'link-39');">logger</a></tt><tt class="py-op">.</tt><tt class="py-name">info</tt><tt class="py-op">(</tt><tt class="py-string">'URL being requested: %s'</tt> <tt class="py-op">%</tt> <tt class="py-name">uri</tt><tt class="py-op">)</tt> </tt>
+<a name="L672"></a><tt class="py-lineno">672</tt> <tt class="py-line"> </tt>
+<a name="L673"></a><tt class="py-lineno">673</tt> <tt class="py-line"> <tt class="py-keyword">return</tt> <tt id="link-158" 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-158', 'request', 'link-54');">request</a></tt> </tt>
+</div><a name="L674"></a><tt class="py-lineno">674</tt> <tt class="py-line"> </tt>
+<a name="L675"></a><tt class="py-lineno">675</tt> <tt class="py-line"> <tt class="py-name">setattr</tt><tt class="py-op">(</tt><tt class="py-name">theclass</tt><tt class="py-op">,</tt> <tt class="py-name">methodName</tt><tt class="py-op">,</tt> <tt class="py-name">methodNext</tt><tt class="py-op">)</tt> </tt>
+</div><a name="L676"></a><tt class="py-lineno">676</tt> <tt class="py-line"> </tt>
+<a name="L677"></a><tt class="py-lineno">677</tt> <tt class="py-line"> <tt class="py-comment"># Add basic methods to Resource</tt> </tt>
+<a name="L678"></a><tt class="py-lineno">678</tt> <tt class="py-line"> <tt class="py-keyword">if</tt> <tt class="py-string">'methods'</tt> <tt class="py-keyword">in</tt> <tt class="py-name">resourceDesc</tt><tt class="py-op">:</tt> </tt>
+<a name="L679"></a><tt class="py-lineno">679</tt> <tt class="py-line"> <tt class="py-keyword">for</tt> <tt class="py-name">methodName</tt><tt class="py-op">,</tt> <tt class="py-name">methodDesc</tt> <tt class="py-keyword">in</tt> <tt class="py-name">resourceDesc</tt><tt class="py-op">[</tt><tt class="py-string">'methods'</tt><tt class="py-op">]</tt><tt class="py-op">.</tt><tt class="py-name">iteritems</tt><tt class="py-op">(</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+<a name="L680"></a><tt class="py-lineno">680</tt> <tt class="py-line"> <tt class="py-name">createMethod</tt><tt class="py-op">(</tt><tt class="py-name">Resource</tt><tt class="py-op">,</tt> <tt class="py-name">methodName</tt><tt class="py-op">,</tt> <tt class="py-name">methodDesc</tt><tt class="py-op">,</tt> <tt class="py-name">rootDesc</tt><tt class="py-op">)</tt> </tt>
<a name="L681"></a><tt class="py-lineno">681</tt> <tt class="py-line"> </tt>
<a name="L682"></a><tt class="py-lineno">682</tt> <tt class="py-line"> <tt class="py-comment"># Add in nested resources</tt> </tt>
<a name="L683"></a><tt class="py-lineno">683</tt> <tt class="py-line"> <tt class="py-keyword">if</tt> <tt class="py-string">'resources'</tt> <tt class="py-keyword">in</tt> <tt class="py-name">resourceDesc</tt><tt class="py-op">:</tt> </tt>
<a name="L684"></a><tt class="py-lineno">684</tt> <tt class="py-line"> </tt>
-<a name="L685"></a><tt class="py-lineno">685</tt> <tt class="py-line"> <tt class="py-keyword">def</tt> <tt class="py-def-name">createResourceMethod</tt><tt class="py-op">(</tt><tt class="py-param">theclass</tt><tt class="py-op">,</tt> <tt class="py-param">methodName</tt><tt class="py-op">,</tt> <tt class="py-param">methodDesc</tt><tt class="py-op">,</tt> <tt class="py-param">futureDesc</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-<a name="L686"></a><tt class="py-lineno">686</tt> <tt class="py-line"> <tt class="py-name">methodName</tt> <tt class="py-op">=</tt> <tt id="link-166" class="py-name"><a title="apiclient.discovery._fix_method_name" class="py-name" href="#" onclick="return doclink('link-166', '_fix_method_name', 'link-83');">_fix_method_name</a></tt><tt class="py-op">(</tt><tt class="py-name">methodName</tt><tt class="py-op">)</tt> </tt>
-<a name="L687"></a><tt class="py-lineno">687</tt> <tt class="py-line"> </tt>
-<a name="L688"></a><tt class="py-lineno">688</tt> <tt class="py-line"> <tt class="py-keyword">def</tt> <tt class="py-def-name">methodResource</tt><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-<a name="L689"></a><tt class="py-lineno">689</tt> <tt class="py-line"> <tt class="py-keyword">return</tt> <tt id="link-167" class="py-name"><a title="apiclient.discovery.createResource" class="py-name" href="#" onclick="return doclink('link-167', 'createResource', 'link-74');">createResource</a></tt><tt class="py-op">(</tt><tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">_http</tt><tt class="py-op">,</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">_baseUrl</tt><tt class="py-op">,</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">_model</tt><tt class="py-op">,</tt> </tt>
-<a name="L690"></a><tt class="py-lineno">690</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">_requestBuilder</tt><tt class="py-op">,</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">_developerKey</tt><tt class="py-op">,</tt> </tt>
-<a name="L691"></a><tt class="py-lineno">691</tt> <tt class="py-line"> <tt class="py-name">methodDesc</tt><tt class="py-op">,</tt> <tt class="py-name">futureDesc</tt><tt class="py-op">,</tt> <tt id="link-168" class="py-name"><a title="apiclient.schema" class="py-name" href="#" onclick="return doclink('link-168', 'schema', 'link-35');">schema</a></tt><tt class="py-op">)</tt> </tt>
-</div><a name="L692"></a><tt class="py-lineno">692</tt> <tt class="py-line"> </tt>
-<a name="L693"></a><tt class="py-lineno">693</tt> <tt class="py-line"> <tt class="py-name">setattr</tt><tt class="py-op">(</tt><tt class="py-name">methodResource</tt><tt class="py-op">,</tt> <tt class="py-string">'__doc__'</tt><tt class="py-op">,</tt> <tt class="py-string">'A collection resource.'</tt><tt class="py-op">)</tt> </tt>
-<a name="L694"></a><tt class="py-lineno">694</tt> <tt class="py-line"> <tt class="py-name">setattr</tt><tt class="py-op">(</tt><tt class="py-name">methodResource</tt><tt class="py-op">,</tt> <tt class="py-string">'__is_resource__'</tt><tt class="py-op">,</tt> <tt class="py-name">True</tt><tt class="py-op">)</tt> </tt>
-<a name="L695"></a><tt class="py-lineno">695</tt> <tt class="py-line"> <tt class="py-name">setattr</tt><tt class="py-op">(</tt><tt class="py-name">theclass</tt><tt class="py-op">,</tt> <tt class="py-name">methodName</tt><tt class="py-op">,</tt> <tt class="py-name">methodResource</tt><tt class="py-op">)</tt> </tt>
-</div><a name="L696"></a><tt class="py-lineno">696</tt> <tt class="py-line"> </tt>
-<a name="L697"></a><tt class="py-lineno">697</tt> <tt class="py-line"> <tt class="py-keyword">for</tt> <tt class="py-name">methodName</tt><tt class="py-op">,</tt> <tt class="py-name">methodDesc</tt> <tt class="py-keyword">in</tt> <tt class="py-name">resourceDesc</tt><tt class="py-op">[</tt><tt class="py-string">'resources'</tt><tt class="py-op">]</tt><tt class="py-op">.</tt><tt class="py-name">iteritems</tt><tt class="py-op">(</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-<a name="L698"></a><tt class="py-lineno">698</tt> <tt class="py-line"> <tt class="py-keyword">if</tt> <tt class="py-name">futureDesc</tt> <tt class="py-keyword">and</tt> <tt class="py-string">'resources'</tt> <tt class="py-keyword">in</tt> <tt class="py-name">futureDesc</tt><tt class="py-op">:</tt> </tt>
-<a name="L699"></a><tt class="py-lineno">699</tt> <tt class="py-line"> <tt class="py-name">future</tt> <tt class="py-op">=</tt> <tt class="py-name">futureDesc</tt><tt class="py-op">[</tt><tt class="py-string">'resources'</tt><tt class="py-op">]</tt><tt class="py-op">.</tt><tt id="link-169" class="py-name"><a title="apiclient.schema.Schemas.get
+<a name="L685"></a><tt class="py-lineno">685</tt> <tt class="py-line"> <tt class="py-keyword">def</tt> <tt class="py-def-name">createResourceMethod</tt><tt class="py-op">(</tt><tt class="py-param">theclass</tt><tt class="py-op">,</tt> <tt class="py-param">methodName</tt><tt class="py-op">,</tt> <tt class="py-param">methodDesc</tt><tt class="py-op">,</tt> <tt class="py-param">rootDesc</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+<a name="L686"></a><tt class="py-lineno">686</tt> <tt class="py-line"> <tt class="py-docstring">"""Create a method on the Resource to access a nested Resource.</tt> </tt>
+<a name="L687"></a><tt class="py-lineno">687</tt> <tt class="py-line"><tt class="py-docstring"></tt> </tt>
+<a name="L688"></a><tt class="py-lineno">688</tt> <tt class="py-line"><tt class="py-docstring"> Args:</tt> </tt>
+<a name="L689"></a><tt class="py-lineno">689</tt> <tt class="py-line"><tt class="py-docstring"> theclass: type, the class to attach methods to.</tt> </tt>
+<a name="L690"></a><tt class="py-lineno">690</tt> <tt class="py-line"><tt class="py-docstring"> methodName: string, name of the method to use.</tt> </tt>
+<a name="L691"></a><tt class="py-lineno">691</tt> <tt class="py-line"><tt class="py-docstring"> methodDesc: object, fragment of deserialized discovery document that</tt> </tt>
+<a name="L692"></a><tt class="py-lineno">692</tt> <tt class="py-line"><tt class="py-docstring"> describes the method.</tt> </tt>
+<a name="L693"></a><tt class="py-lineno">693</tt> <tt class="py-line"><tt class="py-docstring"> rootDesc: object, the entire deserialized discovery document.</tt> </tt>
+<a name="L694"></a><tt class="py-lineno">694</tt> <tt class="py-line"><tt class="py-docstring"> """</tt> </tt>
+<a name="L695"></a><tt class="py-lineno">695</tt> <tt class="py-line"> <tt class="py-name">methodName</tt> <tt class="py-op">=</tt> <tt id="link-159" class="py-name"><a title="apiclient.discovery.fix_method_name" class="py-name" href="#" onclick="return doclink('link-159', 'fix_method_name', 'link-82');">fix_method_name</a></tt><tt class="py-op">(</tt><tt class="py-name">methodName</tt><tt class="py-op">)</tt> </tt>
+<a name="L696"></a><tt class="py-lineno">696</tt> <tt class="py-line"> </tt>
+<a name="L697"></a><tt class="py-lineno">697</tt> <tt class="py-line"> <tt class="py-keyword">def</tt> <tt class="py-def-name">methodResource</tt><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+<a name="L698"></a><tt class="py-lineno">698</tt> <tt class="py-line"> <tt class="py-keyword">return</tt> <tt id="link-160" class="py-name"><a title="apiclient.discovery.createResource" class="py-name" href="#" onclick="return doclink('link-160', 'createResource', 'link-73');">createResource</a></tt><tt class="py-op">(</tt><tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">_http</tt><tt class="py-op">,</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">_baseUrl</tt><tt class="py-op">,</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">_model</tt><tt class="py-op">,</tt> </tt>
+<a name="L699"></a><tt class="py-lineno">699</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">_requestBuilder</tt><tt class="py-op">,</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">_developerKey</tt><tt class="py-op">,</tt> </tt>
+<a name="L700"></a><tt class="py-lineno">700</tt> <tt class="py-line"> <tt class="py-name">methodDesc</tt><tt class="py-op">,</tt> <tt class="py-name">rootDesc</tt><tt class="py-op">,</tt> <tt id="link-161" class="py-name"><a title="apiclient.schema" class="py-name" href="#" onclick="return doclink('link-161', 'schema', 'link-35');">schema</a></tt><tt class="py-op">)</tt> </tt>
+</div><a name="L701"></a><tt class="py-lineno">701</tt> <tt class="py-line"> </tt>
+<a name="L702"></a><tt class="py-lineno">702</tt> <tt class="py-line"> <tt class="py-name">setattr</tt><tt class="py-op">(</tt><tt class="py-name">methodResource</tt><tt class="py-op">,</tt> <tt class="py-string">'__doc__'</tt><tt class="py-op">,</tt> <tt class="py-string">'A collection resource.'</tt><tt class="py-op">)</tt> </tt>
+<a name="L703"></a><tt class="py-lineno">703</tt> <tt class="py-line"> <tt class="py-name">setattr</tt><tt class="py-op">(</tt><tt class="py-name">methodResource</tt><tt class="py-op">,</tt> <tt class="py-string">'__is_resource__'</tt><tt class="py-op">,</tt> <tt class="py-name">True</tt><tt class="py-op">)</tt> </tt>
+<a name="L704"></a><tt class="py-lineno">704</tt> <tt class="py-line"> <tt class="py-name">setattr</tt><tt class="py-op">(</tt><tt class="py-name">theclass</tt><tt class="py-op">,</tt> <tt class="py-name">methodName</tt><tt class="py-op">,</tt> <tt class="py-name">methodResource</tt><tt class="py-op">)</tt> </tt>
+</div><a name="L705"></a><tt class="py-lineno">705</tt> <tt class="py-line"> </tt>
+<a name="L706"></a><tt class="py-lineno">706</tt> <tt class="py-line"> <tt class="py-keyword">for</tt> <tt class="py-name">methodName</tt><tt class="py-op">,</tt> <tt class="py-name">methodDesc</tt> <tt class="py-keyword">in</tt> <tt class="py-name">resourceDesc</tt><tt class="py-op">[</tt><tt class="py-string">'resources'</tt><tt class="py-op">]</tt><tt class="py-op">.</tt><tt class="py-name">iteritems</tt><tt class="py-op">(</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+<a name="L707"></a><tt class="py-lineno">707</tt> <tt class="py-line"> <tt class="py-name">createResourceMethod</tt><tt class="py-op">(</tt><tt class="py-name">Resource</tt><tt class="py-op">,</tt> <tt class="py-name">methodName</tt><tt class="py-op">,</tt> <tt class="py-name">methodDesc</tt><tt class="py-op">,</tt> <tt class="py-name">rootDesc</tt><tt class="py-op">)</tt> </tt>
+<a name="L708"></a><tt class="py-lineno">708</tt> <tt class="py-line"> </tt>
+<a name="L709"></a><tt class="py-lineno">709</tt> <tt class="py-line"> <tt class="py-comment"># Add _next() methods</tt> </tt>
+<a name="L710"></a><tt class="py-lineno">710</tt> <tt class="py-line"> <tt class="py-comment"># Look for response bodies in schema that contain nextPageToken, and methods</tt> </tt>
+<a name="L711"></a><tt class="py-lineno">711</tt> <tt class="py-line"> <tt class="py-comment"># that take a pageToken parameter.</tt> </tt>
+<a name="L712"></a><tt class="py-lineno">712</tt> <tt class="py-line"> <tt class="py-keyword">if</tt> <tt class="py-string">'methods'</tt> <tt class="py-keyword">in</tt> <tt class="py-name">resourceDesc</tt><tt class="py-op">:</tt> </tt>
+<a name="L713"></a><tt class="py-lineno">713</tt> <tt class="py-line"> <tt class="py-keyword">for</tt> <tt class="py-name">methodName</tt><tt class="py-op">,</tt> <tt class="py-name">methodDesc</tt> <tt class="py-keyword">in</tt> <tt class="py-name">resourceDesc</tt><tt class="py-op">[</tt><tt class="py-string">'methods'</tt><tt class="py-op">]</tt><tt class="py-op">.</tt><tt class="py-name">iteritems</tt><tt class="py-op">(</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+<a name="L714"></a><tt class="py-lineno">714</tt> <tt class="py-line"> <tt class="py-keyword">if</tt> <tt class="py-string">'response'</tt> <tt class="py-keyword">in</tt> <tt class="py-name">methodDesc</tt><tt class="py-op">:</tt> </tt>
+<a name="L715"></a><tt class="py-lineno">715</tt> <tt class="py-line"> <tt class="py-name">responseSchema</tt> <tt class="py-op">=</tt> <tt class="py-name">methodDesc</tt><tt class="py-op">[</tt><tt class="py-string">'response'</tt><tt class="py-op">]</tt> </tt>
+<a name="L716"></a><tt class="py-lineno">716</tt> <tt class="py-line"> <tt class="py-keyword">if</tt> <tt class="py-string">'$ref'</tt> <tt class="py-keyword">in</tt> <tt class="py-name">responseSchema</tt><tt class="py-op">:</tt> </tt>
+<a name="L717"></a><tt class="py-lineno">717</tt> <tt class="py-line"> <tt class="py-name">responseSchema</tt> <tt class="py-op">=</tt> <tt id="link-162" class="py-name"><a title="apiclient.schema" class="py-name" href="#" onclick="return doclink('link-162', 'schema', 'link-35');">schema</a></tt><tt class="py-op">.</tt><tt id="link-163" 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-169', 'get', 'link-67');">get</a></tt><tt class="py-op">(</tt><tt class="py-name">methodName</tt><tt class="py-op">,</tt> <tt class="py-op">{</tt><tt class="py-op">}</tt><tt class="py-op">)</tt> </tt>
-<a name="L700"></a><tt class="py-lineno">700</tt> <tt class="py-line"> <tt class="py-keyword">else</tt><tt class="py-op">:</tt> </tt>
-<a name="L701"></a><tt class="py-lineno">701</tt> <tt class="py-line"> <tt class="py-name">future</tt> <tt class="py-op">=</tt> <tt class="py-op">{</tt><tt class="py-op">}</tt> </tt>
-<a name="L702"></a><tt class="py-lineno">702</tt> <tt class="py-line"> <tt class="py-name">createResourceMethod</tt><tt class="py-op">(</tt><tt class="py-name">Resource</tt><tt class="py-op">,</tt> <tt class="py-name">methodName</tt><tt class="py-op">,</tt> <tt class="py-name">methodDesc</tt><tt class="py-op">,</tt> <tt class="py-name">future</tt><tt class="py-op">)</tt> </tt>
-<a name="L703"></a><tt class="py-lineno">703</tt> <tt class="py-line"> </tt>
-<a name="L704"></a><tt class="py-lineno">704</tt> <tt class="py-line"> <tt class="py-comment"># Add <m>_next() methods to Resource</tt> </tt>
-<a name="L705"></a><tt class="py-lineno">705</tt> <tt class="py-line"> <tt class="py-keyword">if</tt> <tt class="py-name">futureDesc</tt> <tt class="py-keyword">and</tt> <tt class="py-string">'methods'</tt> <tt class="py-keyword">in</tt> <tt class="py-name">futureDesc</tt><tt class="py-op">:</tt> </tt>
-<a name="L706"></a><tt class="py-lineno">706</tt> <tt class="py-line"> <tt class="py-keyword">for</tt> <tt class="py-name">methodName</tt><tt class="py-op">,</tt> <tt class="py-name">methodDesc</tt> <tt class="py-keyword">in</tt> <tt class="py-name">futureDesc</tt><tt class="py-op">[</tt><tt class="py-string">'methods'</tt><tt class="py-op">]</tt><tt class="py-op">.</tt><tt class="py-name">iteritems</tt><tt class="py-op">(</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-<a name="L707"></a><tt class="py-lineno">707</tt> <tt class="py-line"> <tt class="py-keyword">if</tt> <tt class="py-string">'next'</tt> <tt class="py-keyword">in</tt> <tt class="py-name">methodDesc</tt> <tt class="py-keyword">and</tt> <tt class="py-name">methodName</tt> <tt class="py-keyword">in</tt> <tt class="py-name">resourceDesc</tt><tt class="py-op">[</tt><tt class="py-string">'methods'</tt><tt class="py-op">]</tt><tt class="py-op">:</tt> </tt>
-<a name="L708"></a><tt class="py-lineno">708</tt> <tt class="py-line"> <tt class="py-name">createNextMethodFromFuture</tt><tt class="py-op">(</tt><tt class="py-name">Resource</tt><tt class="py-op">,</tt> <tt class="py-name">methodName</tt> <tt class="py-op">+</tt> <tt class="py-string">'_next'</tt><tt class="py-op">,</tt> </tt>
-<a name="L709"></a><tt class="py-lineno">709</tt> <tt class="py-line"> <tt class="py-name">resourceDesc</tt><tt class="py-op">[</tt><tt class="py-string">'methods'</tt><tt class="py-op">]</tt><tt class="py-op">[</tt><tt class="py-name">methodName</tt><tt class="py-op">]</tt><tt class="py-op">,</tt> </tt>
-<a name="L710"></a><tt class="py-lineno">710</tt> <tt class="py-line"> <tt class="py-name">methodDesc</tt><tt class="py-op">[</tt><tt class="py-string">'next'</tt><tt class="py-op">]</tt><tt class="py-op">)</tt> </tt>
-<a name="L711"></a><tt class="py-lineno">711</tt> <tt class="py-line"> <tt class="py-comment"># Add _next() methods</tt> </tt>
-<a name="L712"></a><tt class="py-lineno">712</tt> <tt class="py-line"> <tt class="py-comment"># Look for response bodies in schema that contain nextPageToken, and methods</tt> </tt>
-<a name="L713"></a><tt class="py-lineno">713</tt> <tt class="py-line"> <tt class="py-comment"># that take a pageToken parameter.</tt> </tt>
-<a name="L714"></a><tt class="py-lineno">714</tt> <tt class="py-line"> <tt class="py-keyword">if</tt> <tt class="py-string">'methods'</tt> <tt class="py-keyword">in</tt> <tt class="py-name">resourceDesc</tt><tt class="py-op">:</tt> </tt>
-<a name="L715"></a><tt class="py-lineno">715</tt> <tt class="py-line"> <tt class="py-keyword">for</tt> <tt class="py-name">methodName</tt><tt class="py-op">,</tt> <tt class="py-name">methodDesc</tt> <tt class="py-keyword">in</tt> <tt class="py-name">resourceDesc</tt><tt class="py-op">[</tt><tt class="py-string">'methods'</tt><tt class="py-op">]</tt><tt class="py-op">.</tt><tt class="py-name">iteritems</tt><tt class="py-op">(</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-<a name="L716"></a><tt class="py-lineno">716</tt> <tt class="py-line"> <tt class="py-keyword">if</tt> <tt class="py-string">'response'</tt> <tt class="py-keyword">in</tt> <tt class="py-name">methodDesc</tt><tt class="py-op">:</tt> </tt>
-<a name="L717"></a><tt class="py-lineno">717</tt> <tt class="py-line"> <tt class="py-name">responseSchema</tt> <tt class="py-op">=</tt> <tt class="py-name">methodDesc</tt><tt class="py-op">[</tt><tt class="py-string">'response'</tt><tt class="py-op">]</tt> </tt>
-<a name="L718"></a><tt class="py-lineno">718</tt> <tt class="py-line"> <tt class="py-keyword">if</tt> <tt class="py-string">'$ref'</tt> <tt class="py-keyword">in</tt> <tt class="py-name">responseSchema</tt><tt class="py-op">:</tt> </tt>
-<a name="L719"></a><tt class="py-lineno">719</tt> <tt class="py-line"> <tt class="py-name">responseSchema</tt> <tt class="py-op">=</tt> <tt id="link-170" class="py-name"><a title="apiclient.schema" class="py-name" href="#" onclick="return doclink('link-170', 'schema', 'link-35');">schema</a></tt><tt class="py-op">.</tt><tt id="link-171" class="py-name"><a title="apiclient.schema.Schemas.get
+oauth2client.client.Storage.get" class="py-name" href="#" onclick="return doclink('link-163', 'get', 'link-70');">get</a></tt><tt class="py-op">(</tt><tt class="py-name">responseSchema</tt><tt class="py-op">[</tt><tt class="py-string">'$ref'</tt><tt class="py-op">]</tt><tt class="py-op">)</tt> </tt>
+<a name="L718"></a><tt class="py-lineno">718</tt> <tt class="py-line"> <tt class="py-name">hasNextPageToken</tt> <tt class="py-op">=</tt> <tt class="py-string">'nextPageToken'</tt> <tt class="py-keyword">in</tt> <tt class="py-name">responseSchema</tt><tt class="py-op">.</tt><tt id="link-164" 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-171', 'get', 'link-67');">get</a></tt><tt class="py-op">(</tt><tt class="py-name">responseSchema</tt><tt class="py-op">[</tt><tt class="py-string">'$ref'</tt><tt class="py-op">]</tt><tt class="py-op">)</tt> </tt>
-<a name="L720"></a><tt class="py-lineno">720</tt> <tt class="py-line"> <tt class="py-name">hasNextPageToken</tt> <tt class="py-op">=</tt> <tt class="py-string">'nextPageToken'</tt> <tt class="py-keyword">in</tt> <tt class="py-name">responseSchema</tt><tt class="py-op">.</tt><tt id="link-172" class="py-name"><a title="apiclient.schema.Schemas.get
+oauth2client.client.Storage.get" class="py-name" href="#" onclick="return doclink('link-164', 'get', 'link-70');">get</a></tt><tt class="py-op">(</tt><tt class="py-string">'properties'</tt><tt class="py-op">,</tt> </tt>
+<a name="L719"></a><tt class="py-lineno">719</tt> <tt class="py-line"> <tt class="py-op">{</tt><tt class="py-op">}</tt><tt class="py-op">)</tt> </tt>
+<a name="L720"></a><tt class="py-lineno">720</tt> <tt class="py-line"> <tt class="py-name">hasPageToken</tt> <tt class="py-op">=</tt> <tt class="py-string">'pageToken'</tt> <tt class="py-keyword">in</tt> <tt class="py-name">methodDesc</tt><tt class="py-op">.</tt><tt id="link-165" 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-172', 'get', 'link-67');">get</a></tt><tt class="py-op">(</tt><tt class="py-string">'properties'</tt><tt class="py-op">,</tt> </tt>
-<a name="L721"></a><tt class="py-lineno">721</tt> <tt class="py-line"> <tt class="py-op">{</tt><tt class="py-op">}</tt><tt class="py-op">)</tt> </tt>
-<a name="L722"></a><tt class="py-lineno">722</tt> <tt class="py-line"> <tt class="py-name">hasPageToken</tt> <tt class="py-op">=</tt> <tt class="py-string">'pageToken'</tt> <tt class="py-keyword">in</tt> <tt class="py-name">methodDesc</tt><tt class="py-op">.</tt><tt id="link-173" 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-173', 'get', 'link-67');">get</a></tt><tt class="py-op">(</tt><tt class="py-string">'parameters'</tt><tt class="py-op">,</tt> <tt class="py-op">{</tt><tt class="py-op">}</tt><tt class="py-op">)</tt> </tt>
-<a name="L723"></a><tt class="py-lineno">723</tt> <tt class="py-line"> <tt class="py-keyword">if</tt> <tt class="py-name">hasNextPageToken</tt> <tt class="py-keyword">and</tt> <tt class="py-name">hasPageToken</tt><tt class="py-op">:</tt> </tt>
-<a name="L724"></a><tt class="py-lineno">724</tt> <tt class="py-line"> <tt class="py-name">createNextMethod</tt><tt class="py-op">(</tt><tt class="py-name">Resource</tt><tt class="py-op">,</tt> <tt class="py-name">methodName</tt> <tt class="py-op">+</tt> <tt class="py-string">'_next'</tt><tt class="py-op">,</tt> </tt>
-<a name="L725"></a><tt class="py-lineno">725</tt> <tt class="py-line"> <tt class="py-name">resourceDesc</tt><tt class="py-op">[</tt><tt class="py-string">'methods'</tt><tt class="py-op">]</tt><tt class="py-op">[</tt><tt class="py-name">methodName</tt><tt class="py-op">]</tt><tt class="py-op">,</tt> </tt>
-<a name="L726"></a><tt class="py-lineno">726</tt> <tt class="py-line"> <tt class="py-name">methodName</tt><tt class="py-op">)</tt> </tt>
-<a name="L727"></a><tt class="py-lineno">727</tt> <tt class="py-line"> </tt>
-<a name="L728"></a><tt class="py-lineno">728</tt> <tt class="py-line"> <tt class="py-keyword">return</tt> <tt class="py-name">Resource</tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
-</div><a name="L729"></a><tt class="py-lineno">729</tt> <tt class="py-line"> </tt><script type="text/javascript">
+oauth2client.client.Storage.get" class="py-name" href="#" onclick="return doclink('link-165', 'get', 'link-70');">get</a></tt><tt class="py-op">(</tt><tt class="py-string">'parameters'</tt><tt class="py-op">,</tt> <tt class="py-op">{</tt><tt class="py-op">}</tt><tt class="py-op">)</tt> </tt>
+<a name="L721"></a><tt class="py-lineno">721</tt> <tt class="py-line"> <tt class="py-keyword">if</tt> <tt class="py-name">hasNextPageToken</tt> <tt class="py-keyword">and</tt> <tt class="py-name">hasPageToken</tt><tt class="py-op">:</tt> </tt>
+<a name="L722"></a><tt class="py-lineno">722</tt> <tt class="py-line"> <tt class="py-name">createNextMethod</tt><tt class="py-op">(</tt><tt class="py-name">Resource</tt><tt class="py-op">,</tt> <tt class="py-name">methodName</tt> <tt class="py-op">+</tt> <tt class="py-string">'_next'</tt><tt class="py-op">,</tt> </tt>
+<a name="L723"></a><tt class="py-lineno">723</tt> <tt class="py-line"> <tt class="py-name">resourceDesc</tt><tt class="py-op">[</tt><tt class="py-string">'methods'</tt><tt class="py-op">]</tt><tt class="py-op">[</tt><tt class="py-name">methodName</tt><tt class="py-op">]</tt><tt class="py-op">,</tt> </tt>
+<a name="L724"></a><tt class="py-lineno">724</tt> <tt class="py-line"> <tt class="py-name">methodName</tt><tt class="py-op">)</tt> </tt>
+<a name="L725"></a><tt class="py-lineno">725</tt> <tt class="py-line"> </tt>
+<a name="L726"></a><tt class="py-lineno">726</tt> <tt class="py-line"> <tt class="py-keyword">return</tt> <tt class="py-name">Resource</tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
+</div><a name="L727"></a><tt class="py-lineno">727</tt> <tt class="py-line"> </tt><script type="text/javascript">
<!--
expandto(location.href);
// -->
@@ -965,7 +970,7 @@
<table border="0" cellpadding="0" cellspacing="0" width="100%%">
<tr>
<td align="left" class="footer">
- Generated by Epydoc 3.0.1 on Tue Jun 5 09:03:12 2012
+ Generated by Epydoc 3.0.1 on Thu Jun 14 08:01:58 2012
</td>
<td align="right" class="footer">
<a target="mainFrame" href="http://epydoc.sourceforge.net"
diff --git a/docs/epy/apiclient.errors-module.html b/docs/epy/apiclient.errors-module.html
index 0e7f252..fe31bb1 100644
--- a/docs/epy/apiclient.errors-module.html
+++ b/docs/epy/apiclient.errors-module.html
@@ -219,7 +219,7 @@
<table border="0" cellpadding="0" cellspacing="0" width="100%%">
<tr>
<td align="left" class="footer">
- Generated by Epydoc 3.0.1 on Tue Jun 5 09:03:05 2012
+ Generated by Epydoc 3.0.1 on Thu Jun 14 08:01:54 2012
</td>
<td align="right" class="footer">
<a target="mainFrame" href="http://epydoc.sourceforge.net"
diff --git a/docs/epy/apiclient.errors-pysrc.html b/docs/epy/apiclient.errors-pysrc.html
index 1547d2d..622c715 100644
--- a/docs/epy/apiclient.errors-pysrc.html
+++ b/docs/epy/apiclient.errors-pysrc.html
@@ -170,7 +170,7 @@
<a name="L110"></a><tt class="py-lineno">110</tt> <tt class="py-line"> </tt>
<a name="UnexpectedMethodError.__init__"></a><div id="UnexpectedMethodError.__init__-def"><a name="L111"></a><tt class="py-lineno">111</tt> <a class="py-toggle" href="#" id="UnexpectedMethodError.__init__-toggle" onclick="return toggle('UnexpectedMethodError.__init__');">-</a><tt class="py-line"> <tt class="py-keyword">def</tt> <a class="py-def-name" href="apiclient.errors.UnexpectedMethodError-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">methodId</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="UnexpectedMethodError.__init__-collapsed" style="display:none;" pad="+++" indent="++++++"></div><div id="UnexpectedMethodError.__init__-expanded"><a name="L112"></a><tt class="py-lineno">112</tt> <tt class="py-line"> <tt class="py-docstring">"""Constructor for an UnexpectedMethodError."""</tt> </tt>
-<a name="L113"></a><tt class="py-lineno">113</tt> <tt class="py-line"> <tt class="py-name">super</tt><tt class="py-op">(</tt><tt id="link-8" class="py-name" targets="Class apiclient.errors.UnexpectedMethodError=apiclient.errors.UnexpectedMethodError-class.html"><a title="apiclient.errors.UnexpectedMethodError" class="py-name" href="#" onclick="return doclink('link-8', 'UnexpectedMethodError', 'link-8');">UnexpectedMethodError</a></tt><tt class="py-op">,</tt> <tt class="py-name">self</tt><tt class="py-op">)</tt><tt class="py-op">.</tt><tt id="link-9" class="py-name" targets="Method apiclient.errors.BatchError.__init__()=apiclient.errors.BatchError-class.html#__init__,Method apiclient.errors.HttpError.__init__()=apiclient.errors.HttpError-class.html#__init__,Method apiclient.errors.UnexpectedBodyError.__init__()=apiclient.errors.UnexpectedBodyError-class.html#__init__,Method apiclient.errors.UnexpectedMethodError.__init__()=apiclient.errors.UnexpectedMethodError-class.html#__init__,Method apiclient.http.BatchHttpRequest.__init__()=apiclient.http.BatchHttpRequest-class.html#__init__,Method apiclient.http.HttpMock.__init__()=apiclient.http.HttpMock-class.html#__init__,Method apiclient.http.HttpMockSequence.__init__()=apiclient.http.HttpMockSequence-class.html#__init__,Method apiclient.http.HttpRequest.__init__()=apiclient.http.HttpRequest-class.html#__init__,Method apiclient.http.HttpRequestMock.__init__()=apiclient.http.HttpRequestMock-class.html#__init__,Method apiclient.http.MediaFileUpload.__init__()=apiclient.http.MediaFileUpload-class.html#__init__,Method apiclient.http.MediaInMemoryUpload.__init__()=apiclient.http.MediaInMemoryUpload-class.html#__init__,Method apiclient.http.MediaUploadProgress.__init__()=apiclient.http.MediaUploadProgress-class.html#__init__,Method apiclient.http.RequestMockBuilder.__init__()=apiclient.http.RequestMockBuilder-class.html#__init__,Method apiclient.model.JsonModel.__init__()=apiclient.model.JsonModel-class.html#__init__,Method apiclient.model.ProtocolBufferModel.__init__()=apiclient.model.ProtocolBufferModel-class.html#__init__,Method apiclient.schema.Schemas.__init__()=apiclient.schema.Schemas-class.html#__init__,Method apiclient.schema._SchemaToStruct.__init__()=apiclient.schema._SchemaToStruct-class.html#__init__,Method oauth2client.appengine.AppAssertionCredentials.__init__()=oauth2client.appengine.AppAssertionCredentials-class.html#__init__,Method oauth2client.appengine.OAuth2Decorator.__init__()=oauth2client.appengine.OAuth2Decorator-class.html#__init__,Method oauth2client.appengine.OAuth2DecoratorFromClientSecrets.__init__()=oauth2client.appengine.OAuth2DecoratorFromClientSecrets-class.html#__init__,Method oauth2client.appengine.StorageByKeyName.__init__()=oauth2client.appengine.StorageByKeyName-class.html#__init__,Method oauth2client.client.AccessTokenCredentials.__init__()=oauth2client.client.AccessTokenCredentials-class.html#__init__,Method oauth2client.client.AssertionCredentials.__init__()=oauth2client.client.AssertionCredentials-class.html#__init__,Method oauth2client.client.MemoryCache.__init__()=oauth2client.client.MemoryCache-class.html#__init__,Method oauth2client.client.OAuth2Credentials.__init__()=oauth2client.client.OAuth2Credentials-class.html#__init__,Method oauth2client.client.OAuth2WebServerFlow.__init__()=oauth2client.client.OAuth2WebServerFlow-class.html#__init__,Method oauth2client.client.SignedJwtAssertionCredentials.__init__()=oauth2client.client.SignedJwtAssertionCredentials-class.html#__init__,Method oauth2client.crypt.Signer.__init__()=oauth2client.crypt.Signer-class.html#__init__,Method oauth2client.crypt.Verifier.__init__()=oauth2client.crypt.Verifier-class.html#__init__,Method oauth2client.django_orm.Storage.__init__()=oauth2client.django_orm.Storage-class.html#__init__,Method oauth2client.file.Storage.__init__()=oauth2client.file.Storage-class.html#__init__,Method oauth2client.multistore_file._MultiStore._Storage.__init__()=oauth2client.multistore_file._MultiStore._Storage-class.html#__init__,Method oauth2client.multistore_file._MultiStore.__init__()=oauth2client.multistore_file._MultiStore-class.html#__init__"><a title="apiclient.errors.BatchError.__init__
+<a name="L113"></a><tt class="py-lineno">113</tt> <tt class="py-line"> <tt class="py-name">super</tt><tt class="py-op">(</tt><tt id="link-8" class="py-name" targets="Class apiclient.errors.UnexpectedMethodError=apiclient.errors.UnexpectedMethodError-class.html"><a title="apiclient.errors.UnexpectedMethodError" class="py-name" href="#" onclick="return doclink('link-8', 'UnexpectedMethodError', 'link-8');">UnexpectedMethodError</a></tt><tt class="py-op">,</tt> <tt class="py-name">self</tt><tt class="py-op">)</tt><tt class="py-op">.</tt><tt id="link-9" class="py-name" targets="Method apiclient.errors.BatchError.__init__()=apiclient.errors.BatchError-class.html#__init__,Method apiclient.errors.HttpError.__init__()=apiclient.errors.HttpError-class.html#__init__,Method apiclient.errors.UnexpectedBodyError.__init__()=apiclient.errors.UnexpectedBodyError-class.html#__init__,Method apiclient.errors.UnexpectedMethodError.__init__()=apiclient.errors.UnexpectedMethodError-class.html#__init__,Method apiclient.http.BatchHttpRequest.__init__()=apiclient.http.BatchHttpRequest-class.html#__init__,Method apiclient.http.HttpMock.__init__()=apiclient.http.HttpMock-class.html#__init__,Method apiclient.http.HttpMockSequence.__init__()=apiclient.http.HttpMockSequence-class.html#__init__,Method apiclient.http.HttpRequest.__init__()=apiclient.http.HttpRequest-class.html#__init__,Method apiclient.http.HttpRequestMock.__init__()=apiclient.http.HttpRequestMock-class.html#__init__,Method apiclient.http.MediaFileUpload.__init__()=apiclient.http.MediaFileUpload-class.html#__init__,Method apiclient.http.MediaInMemoryUpload.__init__()=apiclient.http.MediaInMemoryUpload-class.html#__init__,Method apiclient.http.MediaIoBaseUpload.__init__()=apiclient.http.MediaIoBaseUpload-class.html#__init__,Method apiclient.http.MediaUploadProgress.__init__()=apiclient.http.MediaUploadProgress-class.html#__init__,Method apiclient.http.RequestMockBuilder.__init__()=apiclient.http.RequestMockBuilder-class.html#__init__,Method apiclient.model.JsonModel.__init__()=apiclient.model.JsonModel-class.html#__init__,Method apiclient.model.ProtocolBufferModel.__init__()=apiclient.model.ProtocolBufferModel-class.html#__init__,Method apiclient.schema.Schemas.__init__()=apiclient.schema.Schemas-class.html#__init__,Method apiclient.schema._SchemaToStruct.__init__()=apiclient.schema._SchemaToStruct-class.html#__init__,Method oauth2client.appengine.AppAssertionCredentials.__init__()=oauth2client.appengine.AppAssertionCredentials-class.html#__init__,Method oauth2client.appengine.OAuth2Decorator.__init__()=oauth2client.appengine.OAuth2Decorator-class.html#__init__,Method oauth2client.appengine.OAuth2DecoratorFromClientSecrets.__init__()=oauth2client.appengine.OAuth2DecoratorFromClientSecrets-class.html#__init__,Method oauth2client.appengine.StorageByKeyName.__init__()=oauth2client.appengine.StorageByKeyName-class.html#__init__,Method oauth2client.client.AccessTokenCredentials.__init__()=oauth2client.client.AccessTokenCredentials-class.html#__init__,Method oauth2client.client.AssertionCredentials.__init__()=oauth2client.client.AssertionCredentials-class.html#__init__,Method oauth2client.client.MemoryCache.__init__()=oauth2client.client.MemoryCache-class.html#__init__,Method oauth2client.client.OAuth2Credentials.__init__()=oauth2client.client.OAuth2Credentials-class.html#__init__,Method oauth2client.client.OAuth2WebServerFlow.__init__()=oauth2client.client.OAuth2WebServerFlow-class.html#__init__,Method oauth2client.client.SignedJwtAssertionCredentials.__init__()=oauth2client.client.SignedJwtAssertionCredentials-class.html#__init__,Method oauth2client.crypt.Signer.__init__()=oauth2client.crypt.Signer-class.html#__init__,Method oauth2client.crypt.Verifier.__init__()=oauth2client.crypt.Verifier-class.html#__init__,Method oauth2client.django_orm.Storage.__init__()=oauth2client.django_orm.Storage-class.html#__init__,Method oauth2client.file.Storage.__init__()=oauth2client.file.Storage-class.html#__init__,Method oauth2client.locked_file.LockedFile.__init__()=oauth2client.locked_file.LockedFile-class.html#__init__,Method oauth2client.locked_file._Opener.__init__()=oauth2client.locked_file._Opener-class.html#__init__,Method oauth2client.multistore_file._MultiStore._Storage.__init__()=oauth2client.multistore_file._MultiStore._Storage-class.html#__init__,Method oauth2client.multistore_file._MultiStore.__init__()=oauth2client.multistore_file._MultiStore-class.html#__init__"><a title="apiclient.errors.BatchError.__init__
apiclient.errors.HttpError.__init__
apiclient.errors.UnexpectedBodyError.__init__
apiclient.errors.UnexpectedMethodError.__init__
@@ -181,6 +181,7 @@
apiclient.http.HttpRequestMock.__init__
apiclient.http.MediaFileUpload.__init__
apiclient.http.MediaInMemoryUpload.__init__
+apiclient.http.MediaIoBaseUpload.__init__
apiclient.http.MediaUploadProgress.__init__
apiclient.http.RequestMockBuilder.__init__
apiclient.model.JsonModel.__init__
@@ -201,6 +202,8 @@
oauth2client.crypt.Verifier.__init__
oauth2client.django_orm.Storage.__init__
oauth2client.file.Storage.__init__
+oauth2client.locked_file.LockedFile.__init__
+oauth2client.locked_file._Opener.__init__
oauth2client.multistore_file._MultiStore._Storage.__init__
oauth2client.multistore_file._MultiStore.__init__" class="py-name" href="#" onclick="return doclink('link-9', '__init__', 'link-9');">__init__</a></tt><tt class="py-op">(</tt> </tt>
<a name="L114"></a><tt class="py-lineno">114</tt> <tt class="py-line"> <tt class="py-string">'Received unexpected call %s'</tt> <tt class="py-op">%</tt> <tt class="py-name">methodId</tt><tt class="py-op">)</tt> </tt>
@@ -222,6 +225,7 @@
apiclient.http.HttpRequestMock.__init__
apiclient.http.MediaFileUpload.__init__
apiclient.http.MediaInMemoryUpload.__init__
+apiclient.http.MediaIoBaseUpload.__init__
apiclient.http.MediaUploadProgress.__init__
apiclient.http.RequestMockBuilder.__init__
apiclient.model.JsonModel.__init__
@@ -242,6 +246,8 @@
oauth2client.crypt.Verifier.__init__
oauth2client.django_orm.Storage.__init__
oauth2client.file.Storage.__init__
+oauth2client.locked_file.LockedFile.__init__
+oauth2client.locked_file._Opener.__init__
oauth2client.multistore_file._MultiStore._Storage.__init__
oauth2client.multistore_file._MultiStore.__init__" class="py-name" href="#" onclick="return doclink('link-11', '__init__', 'link-9');">__init__</a></tt><tt class="py-op">(</tt> </tt>
<a name="L123"></a><tt class="py-lineno">123</tt> <tt class="py-line"> <tt class="py-string">'Expected: [%s] - Provided: [%s]'</tt> <tt class="py-op">%</tt> <tt class="py-op">(</tt><tt class="py-name">expected</tt><tt class="py-op">,</tt> <tt class="py-name">provided</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
@@ -275,7 +281,7 @@
<table border="0" cellpadding="0" cellspacing="0" width="100%%">
<tr>
<td align="left" class="footer">
- Generated by Epydoc 3.0.1 on Tue Jun 5 09:03:12 2012
+ Generated by Epydoc 3.0.1 on Thu Jun 14 08:01:59 2012
</td>
<td align="right" class="footer">
<a target="mainFrame" href="http://epydoc.sourceforge.net"
diff --git a/docs/epy/apiclient.errors.BatchError-class.html b/docs/epy/apiclient.errors.BatchError-class.html
index 9d6f830..972a84b 100644
--- a/docs/epy/apiclient.errors.BatchError-class.html
+++ b/docs/epy/apiclient.errors.BatchError-class.html
@@ -61,6 +61,9 @@
<area shape="rect" href="apiclient.errors.BatchError-class.html#__str__" title="str(x)" alt="" coords="17,508,303,527"/>
<area shape="rect" href="apiclient.errors.BatchError-class.html" title="Error occured during batch operations." alt="" coords="16,445,304,528"/>
<area shape="rect" href="apiclient.errors.HttpError-class.html" title="HTTP data was invalid or unexpected." alt="" coords="132,384,188,416"/>
+<area shape="rect" href="apiclient.errors.Error-class.html" title="Base error for this module." alt="" coords="144,323,176,355"/>
+<area shape="rect" href="javascript:void(0);" title="exceptions.Exception.__new__" alt="" coords="97,273,223,292"/>
+<area shape="rect" href="javascript:void(0);" title="Common base class for all non-exit exceptions." alt="" coords="96,248,224,293"/>
<area shape="rect" href="javascript:void(0);" title="exceptions.BaseException.args" alt="" coords="83,28,237,47"/>
<area shape="rect" href="javascript:void(0);" title="exceptions.BaseException.message" alt="" coords="83,47,237,65"/>
<area shape="rect" href="javascript:void(0);" title="x.__delattr__('name') <==> del x.name" alt="" coords="83,68,237,87"/>
@@ -72,9 +75,6 @@
<area shape="rect" href="javascript:void(0);" title="exceptions.BaseException.__setstate__" alt="" coords="83,180,237,199"/>
<area shape="rect" href="javascript:void(0);" title="exceptions.BaseException.__unicode__" alt="" coords="83,199,237,217"/>
<area shape="rect" href="javascript:void(0);" title="Common base class for all exceptions" alt="" coords="81,11,239,219"/>
-<area shape="rect" href="javascript:void(0);" title="exceptions.Exception.__new__" alt="" coords="97,273,223,292"/>
-<area shape="rect" href="javascript:void(0);" title="Common base class for all non-exit exceptions." alt="" coords="96,248,224,293"/>
-<area shape="rect" href="apiclient.errors.Error-class.html" title="Base error for this module." alt="" coords="144,323,176,355"/>
</map>
<img src="uml_class_diagram_for_apiclien.gif" alt='' usemap="#uml_class_diagram_for_apiclien" ismap="ismap" class="graph-without-title" />
</center>
@@ -339,7 +339,7 @@
<table border="0" cellpadding="0" cellspacing="0" width="100%%">
<tr>
<td align="left" class="footer">
- Generated by Epydoc 3.0.1 on Tue Jun 5 09:03:05 2012
+ Generated by Epydoc 3.0.1 on Thu Jun 14 08:01:55 2012
</td>
<td align="right" class="footer">
<a target="mainFrame" href="http://epydoc.sourceforge.net"
diff --git a/docs/epy/apiclient.errors.Error-class.html b/docs/epy/apiclient.errors.Error-class.html
index 8197ba8..8ea95b3 100644
--- a/docs/epy/apiclient.errors.Error-class.html
+++ b/docs/epy/apiclient.errors.Error-class.html
@@ -56,33 +56,33 @@
<h1 class="epydoc">Class Error</h1><p class="nomargin-top"><span class="codelink"><a href="apiclient.errors-pysrc.html#Error">source code</a></span></p>
<center>
<center> <map id="uml_class_diagram_for_apiclien_2" name="uml_class_diagram_for_apiclien_2">
-<area shape="rect" href="javascript:void(0);" title="x.__init__(...) initializes x; see x.__class__.__doc__ for signature" alt="" coords="731,311,856,329"/>
-<area shape="rect" href="javascript:void(0);" title="exceptions.Exception.__new__" alt="" coords="731,329,856,348"/>
-<area shape="rect" href="javascript:void(0);" title="Common base class for all non-exit exceptions." alt="" coords="729,285,857,349"/>
-<area shape="rect" href="apiclient.errors.Error-class.html" title="Base error for this module." alt="" coords="777,379,809,411"/>
-<area shape="rect" href="apiclient.errors.HttpError-class.html" title="HTTP data was invalid or unexpected." alt="" coords="21,440,88,467"/>
-<area shape="rect" href="apiclient.errors.BatchError-class.html" title="Error occured during batch operations." alt="" coords="16,496,93,523"/>
-<area shape="rect" href="javascript:void(0);" title="exceptions.BaseException.args" alt="" coords="716,28,871,47"/>
-<area shape="rect" href="javascript:void(0);" title="exceptions.BaseException.message" alt="" coords="716,47,871,65"/>
-<area shape="rect" href="javascript:void(0);" title="x.__delattr__('name') <==> del x.name" alt="" coords="716,68,871,87"/>
-<area shape="rect" href="javascript:void(0);" title="x.__getattribute__('name') <==> x.name" alt="" coords="716,87,871,105"/>
-<area shape="rect" href="javascript:void(0);" title="x[y]" alt="" coords="716,105,871,124"/>
-<area shape="rect" href="javascript:void(0);" title="x[i:j]" alt="" coords="716,124,871,143"/>
-<area shape="rect" href="javascript:void(0);" title="helper for pickle" alt="" coords="716,143,871,161"/>
-<area shape="rect" href="javascript:void(0);" title="repr(x)" alt="" coords="716,161,871,180"/>
-<area shape="rect" href="javascript:void(0);" title="x.__setattr__('name', value) <==> x.name = value" alt="" coords="716,180,871,199"/>
-<area shape="rect" href="javascript:void(0);" title="exceptions.BaseException.__setstate__" alt="" coords="716,199,871,217"/>
-<area shape="rect" href="javascript:void(0);" title="str(x)" alt="" coords="716,217,871,236"/>
-<area shape="rect" href="javascript:void(0);" title="exceptions.BaseException.__unicode__" alt="" coords="716,236,871,255"/>
-<area shape="rect" href="javascript:void(0);" title="Common base class for all exceptions" alt="" coords="715,11,872,256"/>
-<area shape="rect" href="apiclient.errors.ResumableUploadError-class.html" title="Error occured during resumable upload." alt="" coords="139,440,285,467"/>
-<area shape="rect" href="apiclient.errors.InvalidJsonError-class.html" title="The JSON returned could not be parsed." alt="" coords="336,440,440,467"/>
-<area shape="rect" href="apiclient.errors.UnacceptableMimeTypeError-class.html" title="That is an unacceptable mimetype for this operation." alt="" coords="491,440,672,467"/>
-<area shape="rect" href="apiclient.errors.UnexpectedBodyError-class.html" title="Exception raised by RequestMockBuilder on unexpected bodies." alt="" coords="723,440,864,467"/>
-<area shape="rect" href="apiclient.errors.UnknownLinkType-class.html" title="Link type unknown or unexpected." alt="" coords="915,440,1035,467"/>
-<area shape="rect" href="apiclient.errors.UnknownApiNameOrVersion-class.html" title="No API with that name and version exists." alt="" coords="1085,440,1264,467"/>
-<area shape="rect" href="apiclient.errors.MediaUploadSizeError-class.html" title="Media is larger than the method can accept." alt="" coords="1315,440,1459,467"/>
-<area shape="rect" href="apiclient.errors.UnexpectedMethodError-class.html" title="Exception raised by RequestMockBuilder on unexpected calls." alt="" coords="1509,440,1664,467"/>
+<area shape="rect" href="javascript:void(0);" title="x.__init__(...) initializes x; see x.__class__.__doc__ for signature" alt="" coords="823,311,948,329"/>
+<area shape="rect" href="javascript:void(0);" title="exceptions.Exception.__new__" alt="" coords="823,329,948,348"/>
+<area shape="rect" href="javascript:void(0);" title="Common base class for all non-exit exceptions." alt="" coords="821,285,949,349"/>
+<area shape="rect" href="apiclient.errors.Error-class.html" title="Base error for this module." alt="" coords="869,379,901,411"/>
+<area shape="rect" href="apiclient.errors.MediaUploadSizeError-class.html" title="Media is larger than the method can accept." alt="" coords="16,440,160,467"/>
+<area shape="rect" href="apiclient.errors.BatchError-class.html" title="Error occured during batch operations." alt="" coords="1587,496,1664,523"/>
+<area shape="rect" href="apiclient.errors.UnknownApiNameOrVersion-class.html" title="No API with that name and version exists." alt="" coords="211,440,389,467"/>
+<area shape="rect" href="apiclient.errors.UnknownLinkType-class.html" title="Link type unknown or unexpected." alt="" coords="440,440,560,467"/>
+<area shape="rect" href="apiclient.errors.ResumableUploadError-class.html" title="Error occured during resumable upload." alt="" coords="611,440,757,467"/>
+<area shape="rect" href="apiclient.errors.UnexpectedMethodError-class.html" title="Exception raised by RequestMockBuilder on unexpected calls." alt="" coords="808,440,963,467"/>
+<area shape="rect" href="apiclient.errors.UnexpectedBodyError-class.html" title="Exception raised by RequestMockBuilder on unexpected bodies." alt="" coords="1013,440,1155,467"/>
+<area shape="rect" href="apiclient.errors.InvalidJsonError-class.html" title="The JSON returned could not be parsed." alt="" coords="1205,440,1309,467"/>
+<area shape="rect" href="javascript:void(0);" title="exceptions.BaseException.args" alt="" coords="808,28,963,47"/>
+<area shape="rect" href="javascript:void(0);" title="exceptions.BaseException.message" alt="" coords="808,47,963,65"/>
+<area shape="rect" href="javascript:void(0);" title="x.__delattr__('name') <==> del x.name" alt="" coords="808,68,963,87"/>
+<area shape="rect" href="javascript:void(0);" title="x.__getattribute__('name') <==> x.name" alt="" coords="808,87,963,105"/>
+<area shape="rect" href="javascript:void(0);" title="x[y]" alt="" coords="808,105,963,124"/>
+<area shape="rect" href="javascript:void(0);" title="x[i:j]" alt="" coords="808,124,963,143"/>
+<area shape="rect" href="javascript:void(0);" title="helper for pickle" alt="" coords="808,143,963,161"/>
+<area shape="rect" href="javascript:void(0);" title="repr(x)" alt="" coords="808,161,963,180"/>
+<area shape="rect" href="javascript:void(0);" title="x.__setattr__('name', value) <==> x.name = value" alt="" coords="808,180,963,199"/>
+<area shape="rect" href="javascript:void(0);" title="exceptions.BaseException.__setstate__" alt="" coords="808,199,963,217"/>
+<area shape="rect" href="javascript:void(0);" title="str(x)" alt="" coords="808,217,963,236"/>
+<area shape="rect" href="javascript:void(0);" title="exceptions.BaseException.__unicode__" alt="" coords="808,236,963,255"/>
+<area shape="rect" href="javascript:void(0);" title="Common base class for all exceptions" alt="" coords="807,11,964,256"/>
+<area shape="rect" href="apiclient.errors.UnacceptableMimeTypeError-class.html" title="That is an unacceptable mimetype for this operation." alt="" coords="1360,440,1541,467"/>
+<area shape="rect" href="apiclient.errors.HttpError-class.html" title="HTTP data was invalid or unexpected." alt="" coords="1592,440,1659,467"/>
</map>
<img src="uml_class_diagram_for_apiclien_2.gif" alt='' usemap="#uml_class_diagram_for_apiclien_2" ismap="ismap" class="graph-without-title" />
</center>
@@ -190,7 +190,7 @@
<table border="0" cellpadding="0" cellspacing="0" width="100%%">
<tr>
<td align="left" class="footer">
- Generated by Epydoc 3.0.1 on Tue Jun 5 09:03:05 2012
+ Generated by Epydoc 3.0.1 on Thu Jun 14 08:01:55 2012
</td>
<td align="right" class="footer">
<a target="mainFrame" href="http://epydoc.sourceforge.net"
diff --git a/docs/epy/apiclient.errors.HttpError-class.html b/docs/epy/apiclient.errors.HttpError-class.html
index 1d1ad95..2b7e8c4 100644
--- a/docs/epy/apiclient.errors.HttpError-class.html
+++ b/docs/epy/apiclient.errors.HttpError-class.html
@@ -62,6 +62,8 @@
<area shape="rect" href="apiclient.errors.HttpError-class.html" title="HTTP data was invalid or unexpected." alt="" coords="16,384,243,467"/>
<area shape="rect" href="apiclient.errors.BatchError-class.html" title="Error occured during batch operations." alt="" coords="91,496,168,523"/>
<area shape="rect" href="apiclient.errors.Error-class.html" title="Base error for this module." alt="" coords="113,323,145,355"/>
+<area shape="rect" href="javascript:void(0);" title="exceptions.Exception.__new__" alt="" coords="67,273,192,292"/>
+<area shape="rect" href="javascript:void(0);" title="Common base class for all non-exit exceptions." alt="" coords="65,248,193,293"/>
<area shape="rect" href="javascript:void(0);" title="exceptions.BaseException.args" alt="" coords="52,28,207,47"/>
<area shape="rect" href="javascript:void(0);" title="exceptions.BaseException.message" alt="" coords="52,47,207,65"/>
<area shape="rect" href="javascript:void(0);" title="x.__delattr__('name') <==> del x.name" alt="" coords="52,68,207,87"/>
@@ -73,8 +75,6 @@
<area shape="rect" href="javascript:void(0);" title="exceptions.BaseException.__setstate__" alt="" coords="52,180,207,199"/>
<area shape="rect" href="javascript:void(0);" title="exceptions.BaseException.__unicode__" alt="" coords="52,199,207,217"/>
<area shape="rect" href="javascript:void(0);" title="Common base class for all exceptions" alt="" coords="51,11,208,219"/>
-<area shape="rect" href="javascript:void(0);" title="exceptions.Exception.__new__" alt="" coords="67,273,192,292"/>
-<area shape="rect" href="javascript:void(0);" title="Common base class for all non-exit exceptions." alt="" coords="65,248,193,293"/>
</map>
<img src="uml_class_diagram_for_apiclien_3.gif" alt='' usemap="#uml_class_diagram_for_apiclien_3" ismap="ismap" class="graph-without-title" />
</center>
@@ -353,7 +353,7 @@
<table border="0" cellpadding="0" cellspacing="0" width="100%%">
<tr>
<td align="left" class="footer">
- Generated by Epydoc 3.0.1 on Tue Jun 5 09:03:05 2012
+ Generated by Epydoc 3.0.1 on Thu Jun 14 08:01:55 2012
</td>
<td align="right" class="footer">
<a target="mainFrame" href="http://epydoc.sourceforge.net"
diff --git a/docs/epy/apiclient.errors.InvalidJsonError-class.html b/docs/epy/apiclient.errors.InvalidJsonError-class.html
index 71f1963..be33205 100644
--- a/docs/epy/apiclient.errors.InvalidJsonError-class.html
+++ b/docs/epy/apiclient.errors.InvalidJsonError-class.html
@@ -58,6 +58,9 @@
<center> <map id="uml_class_diagram_for_apiclien_4" name="uml_class_diagram_for_apiclien_4">
<area shape="rect" href="apiclient.errors.InvalidJsonError-class.html" title="The JSON returned could not be parsed." alt="" coords="48,440,141,472"/>
<area shape="rect" href="apiclient.errors.Error-class.html" title="Base error for this module." alt="" coords="79,379,111,411"/>
+<area shape="rect" href="javascript:void(0);" title="x.__init__(...) initializes x; see x.__class__.__doc__ for signature" alt="" coords="32,311,157,329"/>
+<area shape="rect" href="javascript:void(0);" title="exceptions.Exception.__new__" alt="" coords="32,329,157,348"/>
+<area shape="rect" href="javascript:void(0);" title="Common base class for all non-exit exceptions." alt="" coords="31,285,159,349"/>
<area shape="rect" href="javascript:void(0);" title="exceptions.BaseException.args" alt="" coords="17,28,172,47"/>
<area shape="rect" href="javascript:void(0);" title="exceptions.BaseException.message" alt="" coords="17,47,172,65"/>
<area shape="rect" href="javascript:void(0);" title="x.__delattr__('name') <==> del x.name" alt="" coords="17,68,172,87"/>
@@ -71,9 +74,6 @@
<area shape="rect" href="javascript:void(0);" title="str(x)" alt="" coords="17,217,172,236"/>
<area shape="rect" href="javascript:void(0);" title="exceptions.BaseException.__unicode__" alt="" coords="17,236,172,255"/>
<area shape="rect" href="javascript:void(0);" title="Common base class for all exceptions" alt="" coords="16,11,173,256"/>
-<area shape="rect" href="javascript:void(0);" title="x.__init__(...) initializes x; see x.__class__.__doc__ for signature" alt="" coords="32,311,157,329"/>
-<area shape="rect" href="javascript:void(0);" title="exceptions.Exception.__new__" alt="" coords="32,329,157,348"/>
-<area shape="rect" href="javascript:void(0);" title="Common base class for all non-exit exceptions." alt="" coords="31,285,159,349"/>
</map>
<img src="uml_class_diagram_for_apiclien_4.gif" alt='' usemap="#uml_class_diagram_for_apiclien_4" ismap="ismap" class="graph-without-title" />
</center>
@@ -181,7 +181,7 @@
<table border="0" cellpadding="0" cellspacing="0" width="100%%">
<tr>
<td align="left" class="footer">
- Generated by Epydoc 3.0.1 on Tue Jun 5 09:03:05 2012
+ Generated by Epydoc 3.0.1 on Thu Jun 14 08:01:55 2012
</td>
<td align="right" class="footer">
<a target="mainFrame" href="http://epydoc.sourceforge.net"
diff --git a/docs/epy/apiclient.errors.MediaUploadSizeError-class.html b/docs/epy/apiclient.errors.MediaUploadSizeError-class.html
index 36a16c1..df3c965 100644
--- a/docs/epy/apiclient.errors.MediaUploadSizeError-class.html
+++ b/docs/epy/apiclient.errors.MediaUploadSizeError-class.html
@@ -58,6 +58,9 @@
<center> <map id="uml_class_diagram_for_apiclien_5" name="uml_class_diagram_for_apiclien_5">
<area shape="rect" href="apiclient.errors.MediaUploadSizeError-class.html" title="Media is larger than the method can accept." alt="" coords="28,440,161,472"/>
<area shape="rect" href="apiclient.errors.Error-class.html" title="Base error for this module." alt="" coords="79,379,111,411"/>
+<area shape="rect" href="javascript:void(0);" title="x.__init__(...) initializes x; see x.__class__.__doc__ for signature" alt="" coords="32,311,157,329"/>
+<area shape="rect" href="javascript:void(0);" title="exceptions.Exception.__new__" alt="" coords="32,329,157,348"/>
+<area shape="rect" href="javascript:void(0);" title="Common base class for all non-exit exceptions." alt="" coords="31,285,159,349"/>
<area shape="rect" href="javascript:void(0);" title="exceptions.BaseException.args" alt="" coords="17,28,172,47"/>
<area shape="rect" href="javascript:void(0);" title="exceptions.BaseException.message" alt="" coords="17,47,172,65"/>
<area shape="rect" href="javascript:void(0);" title="x.__delattr__('name') <==> del x.name" alt="" coords="17,68,172,87"/>
@@ -71,9 +74,6 @@
<area shape="rect" href="javascript:void(0);" title="str(x)" alt="" coords="17,217,172,236"/>
<area shape="rect" href="javascript:void(0);" title="exceptions.BaseException.__unicode__" alt="" coords="17,236,172,255"/>
<area shape="rect" href="javascript:void(0);" title="Common base class for all exceptions" alt="" coords="16,11,173,256"/>
-<area shape="rect" href="javascript:void(0);" title="x.__init__(...) initializes x; see x.__class__.__doc__ for signature" alt="" coords="32,311,157,329"/>
-<area shape="rect" href="javascript:void(0);" title="exceptions.Exception.__new__" alt="" coords="32,329,157,348"/>
-<area shape="rect" href="javascript:void(0);" title="Common base class for all non-exit exceptions." alt="" coords="31,285,159,349"/>
</map>
<img src="uml_class_diagram_for_apiclien_5.gif" alt='' usemap="#uml_class_diagram_for_apiclien_5" ismap="ismap" class="graph-without-title" />
</center>
@@ -181,7 +181,7 @@
<table border="0" cellpadding="0" cellspacing="0" width="100%%">
<tr>
<td align="left" class="footer">
- Generated by Epydoc 3.0.1 on Tue Jun 5 09:03:05 2012
+ Generated by Epydoc 3.0.1 on Thu Jun 14 08:01:56 2012
</td>
<td align="right" class="footer">
<a target="mainFrame" href="http://epydoc.sourceforge.net"
diff --git a/docs/epy/apiclient.errors.ResumableUploadError-class.html b/docs/epy/apiclient.errors.ResumableUploadError-class.html
index 695062b..9157f46 100644
--- a/docs/epy/apiclient.errors.ResumableUploadError-class.html
+++ b/docs/epy/apiclient.errors.ResumableUploadError-class.html
@@ -58,6 +58,9 @@
<center> <map id="uml_class_diagram_for_apiclien_6" name="uml_class_diagram_for_apiclien_6">
<area shape="rect" href="apiclient.errors.ResumableUploadError-class.html" title="Error occured during resumable upload." alt="" coords="27,440,163,472"/>
<area shape="rect" href="apiclient.errors.Error-class.html" title="Base error for this module." alt="" coords="79,379,111,411"/>
+<area shape="rect" href="javascript:void(0);" title="x.__init__(...) initializes x; see x.__class__.__doc__ for signature" alt="" coords="32,311,157,329"/>
+<area shape="rect" href="javascript:void(0);" title="exceptions.Exception.__new__" alt="" coords="32,329,157,348"/>
+<area shape="rect" href="javascript:void(0);" title="Common base class for all non-exit exceptions." alt="" coords="31,285,159,349"/>
<area shape="rect" href="javascript:void(0);" title="exceptions.BaseException.args" alt="" coords="17,28,172,47"/>
<area shape="rect" href="javascript:void(0);" title="exceptions.BaseException.message" alt="" coords="17,47,172,65"/>
<area shape="rect" href="javascript:void(0);" title="x.__delattr__('name') <==> del x.name" alt="" coords="17,68,172,87"/>
@@ -71,9 +74,6 @@
<area shape="rect" href="javascript:void(0);" title="str(x)" alt="" coords="17,217,172,236"/>
<area shape="rect" href="javascript:void(0);" title="exceptions.BaseException.__unicode__" alt="" coords="17,236,172,255"/>
<area shape="rect" href="javascript:void(0);" title="Common base class for all exceptions" alt="" coords="16,11,173,256"/>
-<area shape="rect" href="javascript:void(0);" title="x.__init__(...) initializes x; see x.__class__.__doc__ for signature" alt="" coords="32,311,157,329"/>
-<area shape="rect" href="javascript:void(0);" title="exceptions.Exception.__new__" alt="" coords="32,329,157,348"/>
-<area shape="rect" href="javascript:void(0);" title="Common base class for all non-exit exceptions." alt="" coords="31,285,159,349"/>
</map>
<img src="uml_class_diagram_for_apiclien_6.gif" alt='' usemap="#uml_class_diagram_for_apiclien_6" ismap="ismap" class="graph-without-title" />
</center>
@@ -181,7 +181,7 @@
<table border="0" cellpadding="0" cellspacing="0" width="100%%">
<tr>
<td align="left" class="footer">
- Generated by Epydoc 3.0.1 on Tue Jun 5 09:03:05 2012
+ Generated by Epydoc 3.0.1 on Thu Jun 14 08:01:56 2012
</td>
<td align="right" class="footer">
<a target="mainFrame" href="http://epydoc.sourceforge.net"
diff --git a/docs/epy/apiclient.errors.UnacceptableMimeTypeError-class.html b/docs/epy/apiclient.errors.UnacceptableMimeTypeError-class.html
index f771e6a..1ffa5cf 100644
--- a/docs/epy/apiclient.errors.UnacceptableMimeTypeError-class.html
+++ b/docs/epy/apiclient.errors.UnacceptableMimeTypeError-class.html
@@ -58,6 +58,9 @@
<center> <map id="uml_class_diagram_for_apiclien_7" name="uml_class_diagram_for_apiclien_7">
<area shape="rect" href="apiclient.errors.UnacceptableMimeTypeError-class.html" title="That is an unacceptable mimetype for this operation." alt="" coords="16,440,187,472"/>
<area shape="rect" href="apiclient.errors.Error-class.html" title="Base error for this module." alt="" coords="85,379,117,411"/>
+<area shape="rect" href="javascript:void(0);" title="x.__init__(...) initializes x; see x.__class__.__doc__ for signature" alt="" coords="39,311,164,329"/>
+<area shape="rect" href="javascript:void(0);" title="exceptions.Exception.__new__" alt="" coords="39,329,164,348"/>
+<area shape="rect" href="javascript:void(0);" title="Common base class for all non-exit exceptions." alt="" coords="37,285,165,349"/>
<area shape="rect" href="javascript:void(0);" title="exceptions.BaseException.args" alt="" coords="24,28,179,47"/>
<area shape="rect" href="javascript:void(0);" title="exceptions.BaseException.message" alt="" coords="24,47,179,65"/>
<area shape="rect" href="javascript:void(0);" title="x.__delattr__('name') <==> del x.name" alt="" coords="24,68,179,87"/>
@@ -71,9 +74,6 @@
<area shape="rect" href="javascript:void(0);" title="str(x)" alt="" coords="24,217,179,236"/>
<area shape="rect" href="javascript:void(0);" title="exceptions.BaseException.__unicode__" alt="" coords="24,236,179,255"/>
<area shape="rect" href="javascript:void(0);" title="Common base class for all exceptions" alt="" coords="23,11,180,256"/>
-<area shape="rect" href="javascript:void(0);" title="x.__init__(...) initializes x; see x.__class__.__doc__ for signature" alt="" coords="39,311,164,329"/>
-<area shape="rect" href="javascript:void(0);" title="exceptions.Exception.__new__" alt="" coords="39,329,164,348"/>
-<area shape="rect" href="javascript:void(0);" title="Common base class for all non-exit exceptions." alt="" coords="37,285,165,349"/>
</map>
<img src="uml_class_diagram_for_apiclien_7.gif" alt='' usemap="#uml_class_diagram_for_apiclien_7" ismap="ismap" class="graph-without-title" />
</center>
@@ -181,7 +181,7 @@
<table border="0" cellpadding="0" cellspacing="0" width="100%%">
<tr>
<td align="left" class="footer">
- Generated by Epydoc 3.0.1 on Tue Jun 5 09:03:06 2012
+ Generated by Epydoc 3.0.1 on Thu Jun 14 08:01:56 2012
</td>
<td align="right" class="footer">
<a target="mainFrame" href="http://epydoc.sourceforge.net"
diff --git a/docs/epy/apiclient.errors.UnexpectedBodyError-class.html b/docs/epy/apiclient.errors.UnexpectedBodyError-class.html
index 16ae078..33de0a8 100644
--- a/docs/epy/apiclient.errors.UnexpectedBodyError-class.html
+++ b/docs/epy/apiclient.errors.UnexpectedBodyError-class.html
@@ -59,6 +59,8 @@
<area shape="rect" href="apiclient.errors.UnexpectedBodyError-class.html#__init__" title="Constructor for an UnexpectedMethodError." alt="" coords="17,447,212,465"/>
<area shape="rect" href="apiclient.errors.UnexpectedBodyError-class.html" title="Exception raised by RequestMockBuilder on unexpected bodies." alt="" coords="16,421,213,467"/>
<area shape="rect" href="apiclient.errors.Error-class.html" title="Base error for this module." alt="" coords="99,360,131,392"/>
+<area shape="rect" href="javascript:void(0);" title="exceptions.Exception.__new__" alt="" coords="52,311,177,329"/>
+<area shape="rect" href="javascript:void(0);" title="Common base class for all non-exit exceptions." alt="" coords="51,285,179,331"/>
<area shape="rect" href="javascript:void(0);" title="exceptions.BaseException.args" alt="" coords="37,28,192,47"/>
<area shape="rect" href="javascript:void(0);" title="exceptions.BaseException.message" alt="" coords="37,47,192,65"/>
<area shape="rect" href="javascript:void(0);" title="x.__delattr__('name') <==> del x.name" alt="" coords="37,68,192,87"/>
@@ -72,8 +74,6 @@
<area shape="rect" href="javascript:void(0);" title="str(x)" alt="" coords="37,217,192,236"/>
<area shape="rect" href="javascript:void(0);" title="exceptions.BaseException.__unicode__" alt="" coords="37,236,192,255"/>
<area shape="rect" href="javascript:void(0);" title="Common base class for all exceptions" alt="" coords="36,11,193,256"/>
-<area shape="rect" href="javascript:void(0);" title="exceptions.Exception.__new__" alt="" coords="52,311,177,329"/>
-<area shape="rect" href="javascript:void(0);" title="Common base class for all non-exit exceptions." alt="" coords="51,285,179,331"/>
</map>
<img src="uml_class_diagram_for_apiclien_8.gif" alt='' usemap="#uml_class_diagram_for_apiclien_8" ismap="ismap" class="graph-without-title" />
</center>
@@ -246,7 +246,7 @@
<table border="0" cellpadding="0" cellspacing="0" width="100%%">
<tr>
<td align="left" class="footer">
- Generated by Epydoc 3.0.1 on Tue Jun 5 09:03:06 2012
+ Generated by Epydoc 3.0.1 on Thu Jun 14 08:01:56 2012
</td>
<td align="right" class="footer">
<a target="mainFrame" href="http://epydoc.sourceforge.net"
diff --git a/docs/epy/apiclient.errors.UnexpectedMethodError-class.html b/docs/epy/apiclient.errors.UnexpectedMethodError-class.html
index db6b8af..4cac4c9 100644
--- a/docs/epy/apiclient.errors.UnexpectedMethodError-class.html
+++ b/docs/epy/apiclient.errors.UnexpectedMethodError-class.html
@@ -59,6 +59,8 @@
<area shape="rect" href="apiclient.errors.UnexpectedMethodError-class.html#__init__" title="Constructor for an UnexpectedMethodError." alt="" coords="17,447,196,465"/>
<area shape="rect" href="apiclient.errors.UnexpectedMethodError-class.html" title="Exception raised by RequestMockBuilder on unexpected calls." alt="" coords="16,421,197,467"/>
<area shape="rect" href="apiclient.errors.Error-class.html" title="Base error for this module." alt="" coords="91,360,123,392"/>
+<area shape="rect" href="javascript:void(0);" title="exceptions.Exception.__new__" alt="" coords="44,311,169,329"/>
+<area shape="rect" href="javascript:void(0);" title="Common base class for all non-exit exceptions." alt="" coords="43,285,171,331"/>
<area shape="rect" href="javascript:void(0);" title="exceptions.BaseException.args" alt="" coords="29,28,184,47"/>
<area shape="rect" href="javascript:void(0);" title="exceptions.BaseException.message" alt="" coords="29,47,184,65"/>
<area shape="rect" href="javascript:void(0);" title="x.__delattr__('name') <==> del x.name" alt="" coords="29,68,184,87"/>
@@ -72,8 +74,6 @@
<area shape="rect" href="javascript:void(0);" title="str(x)" alt="" coords="29,217,184,236"/>
<area shape="rect" href="javascript:void(0);" title="exceptions.BaseException.__unicode__" alt="" coords="29,236,184,255"/>
<area shape="rect" href="javascript:void(0);" title="Common base class for all exceptions" alt="" coords="28,11,185,256"/>
-<area shape="rect" href="javascript:void(0);" title="exceptions.Exception.__new__" alt="" coords="44,311,169,329"/>
-<area shape="rect" href="javascript:void(0);" title="Common base class for all non-exit exceptions." alt="" coords="43,285,171,331"/>
</map>
<img src="uml_class_diagram_for_apiclien_9.gif" alt='' usemap="#uml_class_diagram_for_apiclien_9" ismap="ismap" class="graph-without-title" />
</center>
@@ -244,7 +244,7 @@
<table border="0" cellpadding="0" cellspacing="0" width="100%%">
<tr>
<td align="left" class="footer">
- Generated by Epydoc 3.0.1 on Tue Jun 5 09:03:06 2012
+ Generated by Epydoc 3.0.1 on Thu Jun 14 08:01:56 2012
</td>
<td align="right" class="footer">
<a target="mainFrame" href="http://epydoc.sourceforge.net"
diff --git a/docs/epy/apiclient.errors.UnknownApiNameOrVersion-class.html b/docs/epy/apiclient.errors.UnknownApiNameOrVersion-class.html
index 321899a..12a6683 100644
--- a/docs/epy/apiclient.errors.UnknownApiNameOrVersion-class.html
+++ b/docs/epy/apiclient.errors.UnknownApiNameOrVersion-class.html
@@ -58,6 +58,9 @@
<center> <map id="uml_class_diagram_for_apiclien_10" name="uml_class_diagram_for_apiclien_10">
<area shape="rect" href="apiclient.errors.UnknownApiNameOrVersion-class.html" title="No API with that name and version exists." alt="" coords="16,440,184,472"/>
<area shape="rect" href="apiclient.errors.Error-class.html" title="Base error for this module." alt="" coords="84,379,116,411"/>
+<area shape="rect" href="javascript:void(0);" title="x.__init__(...) initializes x; see x.__class__.__doc__ for signature" alt="" coords="37,311,163,329"/>
+<area shape="rect" href="javascript:void(0);" title="exceptions.Exception.__new__" alt="" coords="37,329,163,348"/>
+<area shape="rect" href="javascript:void(0);" title="Common base class for all non-exit exceptions." alt="" coords="36,285,164,349"/>
<area shape="rect" href="javascript:void(0);" title="exceptions.BaseException.args" alt="" coords="23,28,177,47"/>
<area shape="rect" href="javascript:void(0);" title="exceptions.BaseException.message" alt="" coords="23,47,177,65"/>
<area shape="rect" href="javascript:void(0);" title="x.__delattr__('name') <==> del x.name" alt="" coords="23,68,177,87"/>
@@ -71,9 +74,6 @@
<area shape="rect" href="javascript:void(0);" title="str(x)" alt="" coords="23,217,177,236"/>
<area shape="rect" href="javascript:void(0);" title="exceptions.BaseException.__unicode__" alt="" coords="23,236,177,255"/>
<area shape="rect" href="javascript:void(0);" title="Common base class for all exceptions" alt="" coords="21,11,179,256"/>
-<area shape="rect" href="javascript:void(0);" title="x.__init__(...) initializes x; see x.__class__.__doc__ for signature" alt="" coords="37,311,163,329"/>
-<area shape="rect" href="javascript:void(0);" title="exceptions.Exception.__new__" alt="" coords="37,329,163,348"/>
-<area shape="rect" href="javascript:void(0);" title="Common base class for all non-exit exceptions." alt="" coords="36,285,164,349"/>
</map>
<img src="uml_class_diagram_for_apiclien_10.gif" alt='' usemap="#uml_class_diagram_for_apiclien_10" ismap="ismap" class="graph-without-title" />
</center>
@@ -181,7 +181,7 @@
<table border="0" cellpadding="0" cellspacing="0" width="100%%">
<tr>
<td align="left" class="footer">
- Generated by Epydoc 3.0.1 on Tue Jun 5 09:03:06 2012
+ Generated by Epydoc 3.0.1 on Thu Jun 14 08:01:56 2012
</td>
<td align="right" class="footer">
<a target="mainFrame" href="http://epydoc.sourceforge.net"
diff --git a/docs/epy/apiclient.errors.UnknownLinkType-class.html b/docs/epy/apiclient.errors.UnknownLinkType-class.html
index a84b099..64134f2 100644
--- a/docs/epy/apiclient.errors.UnknownLinkType-class.html
+++ b/docs/epy/apiclient.errors.UnknownLinkType-class.html
@@ -58,6 +58,9 @@
<center> <map id="uml_class_diagram_for_apiclien_11" name="uml_class_diagram_for_apiclien_11">
<area shape="rect" href="apiclient.errors.UnknownLinkType-class.html" title="Link type unknown or unexpected." alt="" coords="40,440,149,472"/>
<area shape="rect" href="apiclient.errors.Error-class.html" title="Base error for this module." alt="" coords="79,379,111,411"/>
+<area shape="rect" href="javascript:void(0);" title="x.__init__(...) initializes x; see x.__class__.__doc__ for signature" alt="" coords="32,311,157,329"/>
+<area shape="rect" href="javascript:void(0);" title="exceptions.Exception.__new__" alt="" coords="32,329,157,348"/>
+<area shape="rect" href="javascript:void(0);" title="Common base class for all non-exit exceptions." alt="" coords="31,285,159,349"/>
<area shape="rect" href="javascript:void(0);" title="exceptions.BaseException.args" alt="" coords="17,28,172,47"/>
<area shape="rect" href="javascript:void(0);" title="exceptions.BaseException.message" alt="" coords="17,47,172,65"/>
<area shape="rect" href="javascript:void(0);" title="x.__delattr__('name') <==> del x.name" alt="" coords="17,68,172,87"/>
@@ -71,9 +74,6 @@
<area shape="rect" href="javascript:void(0);" title="str(x)" alt="" coords="17,217,172,236"/>
<area shape="rect" href="javascript:void(0);" title="exceptions.BaseException.__unicode__" alt="" coords="17,236,172,255"/>
<area shape="rect" href="javascript:void(0);" title="Common base class for all exceptions" alt="" coords="16,11,173,256"/>
-<area shape="rect" href="javascript:void(0);" title="x.__init__(...) initializes x; see x.__class__.__doc__ for signature" alt="" coords="32,311,157,329"/>
-<area shape="rect" href="javascript:void(0);" title="exceptions.Exception.__new__" alt="" coords="32,329,157,348"/>
-<area shape="rect" href="javascript:void(0);" title="Common base class for all non-exit exceptions." alt="" coords="31,285,159,349"/>
</map>
<img src="uml_class_diagram_for_apiclien_11.gif" alt='' usemap="#uml_class_diagram_for_apiclien_11" ismap="ismap" class="graph-without-title" />
</center>
@@ -181,7 +181,7 @@
<table border="0" cellpadding="0" cellspacing="0" width="100%%">
<tr>
<td align="left" class="footer">
- Generated by Epydoc 3.0.1 on Tue Jun 5 09:03:06 2012
+ Generated by Epydoc 3.0.1 on Thu Jun 14 08:01:56 2012
</td>
<td align="right" class="footer">
<a target="mainFrame" href="http://epydoc.sourceforge.net"
diff --git a/docs/epy/apiclient.ext-module.html b/docs/epy/apiclient.ext-module.html
index c8131f8..b61e927 100644
--- a/docs/epy/apiclient.ext-module.html
+++ b/docs/epy/apiclient.ext-module.html
@@ -101,7 +101,7 @@
<table border="0" cellpadding="0" cellspacing="0" width="100%%">
<tr>
<td align="left" class="footer">
- Generated by Epydoc 3.0.1 on Tue Jun 5 09:03:05 2012
+ Generated by Epydoc 3.0.1 on Thu Jun 14 08:01:54 2012
</td>
<td align="right" class="footer">
<a target="mainFrame" href="http://epydoc.sourceforge.net"
diff --git a/docs/epy/apiclient.ext-pysrc.html b/docs/epy/apiclient.ext-pysrc.html
index c03b0ee..32c633b 100644
--- a/docs/epy/apiclient.ext-pysrc.html
+++ b/docs/epy/apiclient.ext-pysrc.html
@@ -84,7 +84,7 @@
<table border="0" cellpadding="0" cellspacing="0" width="100%%">
<tr>
<td align="left" class="footer">
- Generated by Epydoc 3.0.1 on Tue Jun 5 09:03:11 2012
+ Generated by Epydoc 3.0.1 on Thu Jun 14 08:01:59 2012
</td>
<td align="right" class="footer">
<a target="mainFrame" href="http://epydoc.sourceforge.net"
diff --git a/docs/epy/apiclient.http-module.html b/docs/epy/apiclient.http-module.html
index a8f62dd..8cd7438 100644
--- a/docs/epy/apiclient.http-module.html
+++ b/docs/epy/apiclient.http-module.html
@@ -111,6 +111,14 @@
<td width="15%" align="right" valign="top" class="summary">
<span class="summary-type"> </span>
</td><td class="summary">
+ <a href="apiclient.http.MediaIoBaseUpload-class.html" class="summary-name">MediaIoBaseUpload</a><br />
+ A MediaUpload for a io.Base objects.
+ </td>
+ </tr>
+<tr>
+ <td width="15%" align="right" valign="top" class="summary">
+ <span class="summary-type"> </span>
+ </td><td class="summary">
<a href="apiclient.http.MediaInMemoryUpload-class.html" class="summary-name">MediaInMemoryUpload</a><br />
MediaUpload for a chunk of bytes.
</td>
@@ -238,6 +246,13 @@
<td width="15%" align="right" valign="top" class="summary">
<span class="summary-type"> </span>
</td><td class="summary">
+ <a name="DEFAULT_CHUNK_SIZE"></a><span class="summary-name">DEFAULT_CHUNK_SIZE</span> = <code title="524288">524288</code>
+ </td>
+ </tr>
+<tr>
+ <td width="15%" align="right" valign="top" class="summary">
+ <span class="summary-type"> </span>
+ </td><td class="summary">
<a name="__package__"></a><span class="summary-name">__package__</span> = <code title="'apiclient'"><code class="variable-quote">'</code><code class="variable-string">apiclient</code><code class="variable-quote">'</code></code>
</td>
</tr>
@@ -360,7 +375,7 @@
<table border="0" cellpadding="0" cellspacing="0" width="100%%">
<tr>
<td align="left" class="footer">
- Generated by Epydoc 3.0.1 on Tue Jun 5 09:03:05 2012
+ Generated by Epydoc 3.0.1 on Thu Jun 14 08:01:54 2012
</td>
<td align="right" class="footer">
<a target="mainFrame" href="http://epydoc.sourceforge.net"
diff --git a/docs/epy/apiclient.http-pysrc.html b/docs/epy/apiclient.http-pysrc.html
index cd9b743..2ead61e 100644
--- a/docs/epy/apiclient.http-pysrc.html
+++ b/docs/epy/apiclient.http-pysrc.html
@@ -53,7 +53,7 @@
</table>
<h1 class="epydoc">Source Code for <a href="apiclient.http-module.html">Module apiclient.http</a></h1>
<pre class="py-src">
-<a name="L1"></a><tt class="py-lineno"> 1</tt> <tt class="py-line"><tt class="py-comment"># Copyright (C) 2010 Google Inc.</tt> </tt>
+<a name="L1"></a><tt class="py-lineno"> 1</tt> <tt class="py-line"><tt class="py-comment"># Copyright (C) 2012 Google Inc.</tt> </tt>
<a name="L2"></a><tt class="py-lineno"> 2</tt> <tt class="py-line"><tt class="py-comment">#</tt> </tt>
<a name="L3"></a><tt class="py-lineno"> 3</tt> <tt class="py-line"><tt class="py-comment"># Licensed under the Apache License, Version 2.0 (the "License");</tt> </tt>
<a name="L4"></a><tt class="py-lineno"> 4</tt> <tt class="py-line"><tt class="py-comment"># you may not use this file except in compliance with the License.</tt> </tt>
@@ -99,1327 +99,1599 @@
<a name="L44"></a><tt class="py-lineno"> 44</tt> <tt class="py-line"><tt class="py-keyword">from</tt> <tt id="link-9" class="py-name"><a title="apiclient.errors" class="py-name" href="#" onclick="return doclink('link-9', 'errors', 'link-1');">errors</a></tt> <tt class="py-keyword">import</tt> <tt id="link-10" class="py-name" targets="Class apiclient.errors.UnexpectedMethodError=apiclient.errors.UnexpectedMethodError-class.html"><a title="apiclient.errors.UnexpectedMethodError" class="py-name" href="#" onclick="return doclink('link-10', 'UnexpectedMethodError', 'link-10');">UnexpectedMethodError</a></tt> </tt>
<a name="L45"></a><tt class="py-lineno"> 45</tt> <tt class="py-line"><tt class="py-keyword">from</tt> <tt id="link-11" class="py-name" targets="Module apiclient.model=apiclient.model-module.html"><a title="apiclient.model" class="py-name" href="#" onclick="return doclink('link-11', 'model', 'link-11');">model</a></tt> <tt class="py-keyword">import</tt> <tt id="link-12" class="py-name" targets="Class apiclient.model.JsonModel=apiclient.model.JsonModel-class.html"><a title="apiclient.model.JsonModel" class="py-name" href="#" onclick="return doclink('link-12', 'JsonModel', 'link-12');">JsonModel</a></tt> </tt>
<a name="L46"></a><tt class="py-lineno"> 46</tt> <tt class="py-line"><tt class="py-keyword">from</tt> <tt id="link-13" class="py-name" targets="Package oauth2client=oauth2client-module.html"><a title="oauth2client" class="py-name" href="#" onclick="return doclink('link-13', 'oauth2client', 'link-13');">oauth2client</a></tt><tt class="py-op">.</tt><tt id="link-14" class="py-name" targets="Module oauth2client.anyjson=oauth2client.anyjson-module.html"><a title="oauth2client.anyjson" class="py-name" href="#" onclick="return doclink('link-14', 'anyjson', 'link-14');">anyjson</a></tt> <tt class="py-keyword">import</tt> <tt class="py-name">simplejson</tt> </tt>
-<a name="MediaUploadProgress"></a><div id="MediaUploadProgress-def"><a name="L47"></a><tt class="py-lineno"> 47</tt> <tt class="py-line"> </tt>
+<a name="L47"></a><tt class="py-lineno"> 47</tt> <tt class="py-line"> </tt>
<a name="L48"></a><tt class="py-lineno"> 48</tt> <tt class="py-line"> </tt>
-<a name="L49"></a><tt class="py-lineno"> 49</tt> <a class="py-toggle" href="#" id="MediaUploadProgress-toggle" onclick="return toggle('MediaUploadProgress');">-</a><tt class="py-line"><tt class="py-keyword">class</tt> <a class="py-def-name" href="apiclient.http.MediaUploadProgress-class.html">MediaUploadProgress</a><tt class="py-op">(</tt><tt class="py-base-class">object</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-</div><div id="MediaUploadProgress-collapsed" style="display:none;" pad="++++" indent="++++"></div><div id="MediaUploadProgress-expanded"><a name="L50"></a><tt class="py-lineno"> 50</tt> <tt class="py-line"> <tt class="py-docstring">"""Status of a resumable upload."""</tt> </tt>
+<a name="L49"></a><tt class="py-lineno"> 49</tt> <tt class="py-line"><tt id="link-15" class="py-name" targets="Variable apiclient.http.DEFAULT_CHUNK_SIZE=apiclient.http-module.html#DEFAULT_CHUNK_SIZE"><a title="apiclient.http.DEFAULT_CHUNK_SIZE" class="py-name" href="#" onclick="return doclink('link-15', 'DEFAULT_CHUNK_SIZE', 'link-15');">DEFAULT_CHUNK_SIZE</a></tt> <tt class="py-op">=</tt> <tt class="py-number">512</tt><tt class="py-op">*</tt><tt class="py-number">1024</tt> </tt>
+<a name="MediaUploadProgress"></a><div id="MediaUploadProgress-def"><a name="L50"></a><tt class="py-lineno"> 50</tt> <tt class="py-line"> </tt>
<a name="L51"></a><tt class="py-lineno"> 51</tt> <tt class="py-line"> </tt>
-<a name="MediaUploadProgress.__init__"></a><div id="MediaUploadProgress.__init__-def"><a name="L52"></a><tt class="py-lineno"> 52</tt> <a class="py-toggle" href="#" id="MediaUploadProgress.__init__-toggle" onclick="return toggle('MediaUploadProgress.__init__');">-</a><tt class="py-line"> <tt class="py-keyword">def</tt> <a class="py-def-name" href="apiclient.http.MediaUploadProgress-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">resumable_progress</tt><tt class="py-op">,</tt> <tt class="py-param">total_size</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-</div><div id="MediaUploadProgress.__init__-collapsed" style="display:none;" pad="++++" indent="++++++"></div><div id="MediaUploadProgress.__init__-expanded"><a name="L53"></a><tt class="py-lineno"> 53</tt> <tt class="py-line"> <tt class="py-docstring">"""Constructor.</tt> </tt>
-<a name="L54"></a><tt class="py-lineno"> 54</tt> <tt class="py-line"><tt class="py-docstring"></tt> </tt>
-<a name="L55"></a><tt class="py-lineno"> 55</tt> <tt class="py-line"><tt class="py-docstring"> Args:</tt> </tt>
-<a name="L56"></a><tt class="py-lineno"> 56</tt> <tt class="py-line"><tt class="py-docstring"> resumable_progress: int, bytes sent so far.</tt> </tt>
-<a name="L57"></a><tt class="py-lineno"> 57</tt> <tt class="py-line"><tt class="py-docstring"> total_size: int, total bytes in complete upload.</tt> </tt>
-<a name="L58"></a><tt class="py-lineno"> 58</tt> <tt class="py-line"><tt class="py-docstring"> """</tt> </tt>
-<a name="L59"></a><tt class="py-lineno"> 59</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">resumable_progress</tt> <tt class="py-op">=</tt> <tt class="py-name">resumable_progress</tt> </tt>
-<a name="L60"></a><tt class="py-lineno"> 60</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">total_size</tt> <tt class="py-op">=</tt> <tt class="py-name">total_size</tt> </tt>
-</div><a name="L61"></a><tt class="py-lineno"> 61</tt> <tt class="py-line"> </tt>
-<a name="MediaUploadProgress.progress"></a><div id="MediaUploadProgress.progress-def"><a name="L62"></a><tt class="py-lineno"> 62</tt> <a class="py-toggle" href="#" id="MediaUploadProgress.progress-toggle" onclick="return toggle('MediaUploadProgress.progress');">-</a><tt class="py-line"> <tt class="py-keyword">def</tt> <a class="py-def-name" href="apiclient.http.MediaUploadProgress-class.html#progress">progress</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-</div><div id="MediaUploadProgress.progress-collapsed" style="display:none;" pad="++++" indent="++++++"></div><div id="MediaUploadProgress.progress-expanded"><a name="L63"></a><tt class="py-lineno"> 63</tt> <tt class="py-line"> <tt class="py-docstring">"""Percent of upload completed, as a float."""</tt> </tt>
-<a name="L64"></a><tt class="py-lineno"> 64</tt> <tt class="py-line"> <tt class="py-keyword">return</tt> <tt class="py-name">float</tt><tt class="py-op">(</tt><tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">resumable_progress</tt><tt class="py-op">)</tt> <tt class="py-op">/</tt> <tt class="py-name">float</tt><tt class="py-op">(</tt><tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">total_size</tt><tt class="py-op">)</tt> </tt>
-</div></div><a name="L65"></a><tt class="py-lineno"> 65</tt> <tt class="py-line"> </tt>
-<a name="MediaUpload"></a><div id="MediaUpload-def"><a name="L66"></a><tt class="py-lineno"> 66</tt> <tt class="py-line"> </tt>
-<a name="L67"></a><tt class="py-lineno"> 67</tt> <a class="py-toggle" href="#" id="MediaUpload-toggle" onclick="return toggle('MediaUpload');">-</a><tt class="py-line"><tt class="py-keyword">class</tt> <a class="py-def-name" href="apiclient.http.MediaUpload-class.html">MediaUpload</a><tt class="py-op">(</tt><tt class="py-base-class">object</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-</div><div id="MediaUpload-collapsed" style="display:none;" pad="++++" indent="++++"></div><div id="MediaUpload-expanded"><a name="L68"></a><tt class="py-lineno"> 68</tt> <tt class="py-line"> <tt class="py-docstring">"""Describes a media object to upload.</tt> </tt>
-<a name="L69"></a><tt class="py-lineno"> 69</tt> <tt class="py-line"><tt class="py-docstring"></tt> </tt>
-<a name="L70"></a><tt class="py-lineno"> 70</tt> <tt class="py-line"><tt class="py-docstring"> Base class that defines the interface of MediaUpload subclasses.</tt> </tt>
-<a name="L71"></a><tt class="py-lineno"> 71</tt> <tt class="py-line"><tt class="py-docstring"> """</tt> </tt>
-<a name="L72"></a><tt class="py-lineno"> 72</tt> <tt class="py-line"> </tt>
-<a name="MediaUpload.getbytes"></a><div id="MediaUpload.getbytes-def"><a name="L73"></a><tt class="py-lineno"> 73</tt> <a class="py-toggle" href="#" id="MediaUpload.getbytes-toggle" onclick="return toggle('MediaUpload.getbytes');">-</a><tt class="py-line"> <tt class="py-keyword">def</tt> <a class="py-def-name" href="apiclient.http.MediaUpload-class.html#getbytes">getbytes</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">,</tt> <tt class="py-param">begin</tt><tt class="py-op">,</tt> <tt class="py-param">end</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-</div><div id="MediaUpload.getbytes-collapsed" style="display:none;" pad="++++" indent="++++++"></div><div id="MediaUpload.getbytes-expanded"><a name="L74"></a><tt class="py-lineno"> 74</tt> <tt class="py-line"> <tt class="py-keyword">raise</tt> <tt class="py-name">NotImplementedError</tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
-</div><a name="L75"></a><tt class="py-lineno"> 75</tt> <tt class="py-line"> </tt>
-<a name="MediaUpload.size"></a><div id="MediaUpload.size-def"><a name="L76"></a><tt class="py-lineno"> 76</tt> <a class="py-toggle" href="#" id="MediaUpload.size-toggle" onclick="return toggle('MediaUpload.size');">-</a><tt class="py-line"> <tt class="py-keyword">def</tt> <a class="py-def-name" href="apiclient.http.MediaUpload-class.html#size">size</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-</div><div id="MediaUpload.size-collapsed" style="display:none;" pad="++++" indent="++++++"></div><div id="MediaUpload.size-expanded"><a name="L77"></a><tt class="py-lineno"> 77</tt> <tt class="py-line"> <tt class="py-keyword">raise</tt> <tt class="py-name">NotImplementedError</tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
-</div><a name="L78"></a><tt class="py-lineno"> 78</tt> <tt class="py-line"> </tt>
-<a name="MediaUpload.chunksize"></a><div id="MediaUpload.chunksize-def"><a name="L79"></a><tt class="py-lineno"> 79</tt> <a class="py-toggle" href="#" id="MediaUpload.chunksize-toggle" onclick="return toggle('MediaUpload.chunksize');">-</a><tt class="py-line"> <tt class="py-keyword">def</tt> <a class="py-def-name" href="apiclient.http.MediaUpload-class.html#chunksize">chunksize</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-</div><div id="MediaUpload.chunksize-collapsed" style="display:none;" pad="++++" indent="++++++"></div><div id="MediaUpload.chunksize-expanded"><a name="L80"></a><tt class="py-lineno"> 80</tt> <tt class="py-line"> <tt class="py-keyword">raise</tt> <tt class="py-name">NotImplementedError</tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
-</div><a name="L81"></a><tt class="py-lineno"> 81</tt> <tt class="py-line"> </tt>
-<a name="MediaUpload.mimetype"></a><div id="MediaUpload.mimetype-def"><a name="L82"></a><tt class="py-lineno"> 82</tt> <a class="py-toggle" href="#" id="MediaUpload.mimetype-toggle" onclick="return toggle('MediaUpload.mimetype');">-</a><tt class="py-line"> <tt class="py-keyword">def</tt> <a class="py-def-name" href="apiclient.http.MediaUpload-class.html#mimetype">mimetype</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-</div><div id="MediaUpload.mimetype-collapsed" style="display:none;" pad="++++" indent="++++++"></div><div id="MediaUpload.mimetype-expanded"><a name="L83"></a><tt class="py-lineno"> 83</tt> <tt class="py-line"> <tt class="py-keyword">return</tt> <tt class="py-string">'application/octet-stream'</tt> </tt>
-</div><a name="L84"></a><tt class="py-lineno"> 84</tt> <tt class="py-line"> </tt>
-<a name="MediaUpload.resumable"></a><div id="MediaUpload.resumable-def"><a name="L85"></a><tt class="py-lineno"> 85</tt> <a class="py-toggle" href="#" id="MediaUpload.resumable-toggle" onclick="return toggle('MediaUpload.resumable');">-</a><tt class="py-line"> <tt class="py-keyword">def</tt> <a class="py-def-name" href="apiclient.http.MediaUpload-class.html#resumable">resumable</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-</div><div id="MediaUpload.resumable-collapsed" style="display:none;" pad="++++" indent="++++++"></div><div id="MediaUpload.resumable-expanded"><a name="L86"></a><tt class="py-lineno"> 86</tt> <tt class="py-line"> <tt class="py-keyword">return</tt> <tt class="py-name">False</tt> </tt>
-</div><a name="L87"></a><tt class="py-lineno"> 87</tt> <tt class="py-line"> </tt>
-<a name="MediaUpload._to_json"></a><div id="MediaUpload._to_json-def"><a name="L88"></a><tt class="py-lineno"> 88</tt> <a class="py-toggle" href="#" id="MediaUpload._to_json-toggle" onclick="return toggle('MediaUpload._to_json');">-</a><tt class="py-line"> <tt class="py-keyword">def</tt> <a class="py-def-name" href="apiclient.http.MediaUpload-class.html#_to_json">_to_json</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">,</tt> <tt class="py-param">strip</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="MediaUpload._to_json-collapsed" style="display:none;" pad="++++" indent="++++++"></div><div id="MediaUpload._to_json-expanded"><a name="L89"></a><tt class="py-lineno"> 89</tt> <tt class="py-line"> <tt class="py-docstring">"""Utility function for creating a JSON representation of a MediaUpload.</tt> </tt>
-<a name="L90"></a><tt class="py-lineno"> 90</tt> <tt class="py-line"><tt class="py-docstring"></tt> </tt>
-<a name="L91"></a><tt class="py-lineno"> 91</tt> <tt class="py-line"><tt class="py-docstring"> Args:</tt> </tt>
-<a name="L92"></a><tt class="py-lineno"> 92</tt> <tt class="py-line"><tt class="py-docstring"> strip: array, An array of names of members to not include in the JSON.</tt> </tt>
-<a name="L93"></a><tt class="py-lineno"> 93</tt> <tt class="py-line"><tt class="py-docstring"></tt> </tt>
-<a name="L94"></a><tt class="py-lineno"> 94</tt> <tt class="py-line"><tt class="py-docstring"> Returns:</tt> </tt>
-<a name="L95"></a><tt class="py-lineno"> 95</tt> <tt class="py-line"><tt class="py-docstring"> string, a JSON representation of this instance, suitable to pass to</tt> </tt>
-<a name="L96"></a><tt class="py-lineno"> 96</tt> <tt class="py-line"><tt class="py-docstring"> from_json().</tt> </tt>
+<a name="L52"></a><tt class="py-lineno"> 52</tt> <a class="py-toggle" href="#" id="MediaUploadProgress-toggle" onclick="return toggle('MediaUploadProgress');">-</a><tt class="py-line"><tt class="py-keyword">class</tt> <a class="py-def-name" href="apiclient.http.MediaUploadProgress-class.html">MediaUploadProgress</a><tt class="py-op">(</tt><tt class="py-base-class">object</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+</div><div id="MediaUploadProgress-collapsed" style="display:none;" pad="++++" indent="++++"></div><div id="MediaUploadProgress-expanded"><a name="L53"></a><tt class="py-lineno"> 53</tt> <tt class="py-line"> <tt class="py-docstring">"""Status of a resumable upload."""</tt> </tt>
+<a name="L54"></a><tt class="py-lineno"> 54</tt> <tt class="py-line"> </tt>
+<a name="MediaUploadProgress.__init__"></a><div id="MediaUploadProgress.__init__-def"><a name="L55"></a><tt class="py-lineno"> 55</tt> <a class="py-toggle" href="#" id="MediaUploadProgress.__init__-toggle" onclick="return toggle('MediaUploadProgress.__init__');">-</a><tt class="py-line"> <tt class="py-keyword">def</tt> <a class="py-def-name" href="apiclient.http.MediaUploadProgress-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">resumable_progress</tt><tt class="py-op">,</tt> <tt class="py-param">total_size</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+</div><div id="MediaUploadProgress.__init__-collapsed" style="display:none;" pad="++++" indent="++++++"></div><div id="MediaUploadProgress.__init__-expanded"><a name="L56"></a><tt class="py-lineno"> 56</tt> <tt class="py-line"> <tt class="py-docstring">"""Constructor.</tt> </tt>
+<a name="L57"></a><tt class="py-lineno"> 57</tt> <tt class="py-line"><tt class="py-docstring"></tt> </tt>
+<a name="L58"></a><tt class="py-lineno"> 58</tt> <tt class="py-line"><tt class="py-docstring"> Args:</tt> </tt>
+<a name="L59"></a><tt class="py-lineno"> 59</tt> <tt class="py-line"><tt class="py-docstring"> resumable_progress: int, bytes sent so far.</tt> </tt>
+<a name="L60"></a><tt class="py-lineno"> 60</tt> <tt class="py-line"><tt class="py-docstring"> total_size: int, total bytes in complete upload, or None if the total</tt> </tt>
+<a name="L61"></a><tt class="py-lineno"> 61</tt> <tt class="py-line"><tt class="py-docstring"> upload size isn't known ahead of time.</tt> </tt>
+<a name="L62"></a><tt class="py-lineno"> 62</tt> <tt class="py-line"><tt class="py-docstring"> """</tt> </tt>
+<a name="L63"></a><tt class="py-lineno"> 63</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">resumable_progress</tt> <tt class="py-op">=</tt> <tt class="py-name">resumable_progress</tt> </tt>
+<a name="L64"></a><tt class="py-lineno"> 64</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">total_size</tt> <tt class="py-op">=</tt> <tt class="py-name">total_size</tt> </tt>
+</div><a name="L65"></a><tt class="py-lineno"> 65</tt> <tt class="py-line"> </tt>
+<a name="MediaUploadProgress.progress"></a><div id="MediaUploadProgress.progress-def"><a name="L66"></a><tt class="py-lineno"> 66</tt> <a class="py-toggle" href="#" id="MediaUploadProgress.progress-toggle" onclick="return toggle('MediaUploadProgress.progress');">-</a><tt class="py-line"> <tt class="py-keyword">def</tt> <a class="py-def-name" href="apiclient.http.MediaUploadProgress-class.html#progress">progress</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+</div><div id="MediaUploadProgress.progress-collapsed" style="display:none;" pad="++++" indent="++++++"></div><div id="MediaUploadProgress.progress-expanded"><a name="L67"></a><tt class="py-lineno"> 67</tt> <tt class="py-line"> <tt class="py-docstring">"""Percent of upload completed, as a float.</tt> </tt>
+<a name="L68"></a><tt class="py-lineno"> 68</tt> <tt class="py-line"><tt class="py-docstring"></tt> </tt>
+<a name="L69"></a><tt class="py-lineno"> 69</tt> <tt class="py-line"><tt class="py-docstring"> Returns:</tt> </tt>
+<a name="L70"></a><tt class="py-lineno"> 70</tt> <tt class="py-line"><tt class="py-docstring"> the percentage complete as a float, returning 0.0 if the total size of</tt> </tt>
+<a name="L71"></a><tt class="py-lineno"> 71</tt> <tt class="py-line"><tt class="py-docstring"> the upload is unknown.</tt> </tt>
+<a name="L72"></a><tt class="py-lineno"> 72</tt> <tt class="py-line"><tt class="py-docstring"> """</tt> </tt>
+<a name="L73"></a><tt class="py-lineno"> 73</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">total_size</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="L74"></a><tt class="py-lineno"> 74</tt> <tt class="py-line"> <tt class="py-keyword">return</tt> <tt class="py-name">float</tt><tt class="py-op">(</tt><tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">resumable_progress</tt><tt class="py-op">)</tt> <tt class="py-op">/</tt> <tt class="py-name">float</tt><tt class="py-op">(</tt><tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">total_size</tt><tt class="py-op">)</tt> </tt>
+<a name="L75"></a><tt class="py-lineno"> 75</tt> <tt class="py-line"> <tt class="py-keyword">else</tt><tt class="py-op">:</tt> </tt>
+<a name="L76"></a><tt class="py-lineno"> 76</tt> <tt class="py-line"> <tt class="py-keyword">return</tt> <tt class="py-number">0.0</tt> </tt>
+</div></div><a name="L77"></a><tt class="py-lineno"> 77</tt> <tt class="py-line"> </tt>
+<a name="MediaUpload"></a><div id="MediaUpload-def"><a name="L78"></a><tt class="py-lineno"> 78</tt> <tt class="py-line"> </tt>
+<a name="L79"></a><tt class="py-lineno"> 79</tt> <a class="py-toggle" href="#" id="MediaUpload-toggle" onclick="return toggle('MediaUpload');">-</a><tt class="py-line"><tt class="py-keyword">class</tt> <a class="py-def-name" href="apiclient.http.MediaUpload-class.html">MediaUpload</a><tt class="py-op">(</tt><tt class="py-base-class">object</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+</div><div id="MediaUpload-collapsed" style="display:none;" pad="++++" indent="++++"></div><div id="MediaUpload-expanded"><a name="L80"></a><tt class="py-lineno"> 80</tt> <tt class="py-line"> <tt class="py-docstring">"""Describes a media object to upload.</tt> </tt>
+<a name="L81"></a><tt class="py-lineno"> 81</tt> <tt class="py-line"><tt class="py-docstring"></tt> </tt>
+<a name="L82"></a><tt class="py-lineno"> 82</tt> <tt class="py-line"><tt class="py-docstring"> Base class that defines the interface of MediaUpload subclasses.</tt> </tt>
+<a name="L83"></a><tt class="py-lineno"> 83</tt> <tt class="py-line"><tt class="py-docstring"></tt> </tt>
+<a name="L84"></a><tt class="py-lineno"> 84</tt> <tt class="py-line"><tt class="py-docstring"> Note that subclasses of MediaUpload may allow you to control the chunksize</tt> </tt>
+<a name="L85"></a><tt class="py-lineno"> 85</tt> <tt class="py-line"><tt class="py-docstring"> when upload a media object. It is important to keep the size of the chunk as</tt> </tt>
+<a name="L86"></a><tt class="py-lineno"> 86</tt> <tt class="py-line"><tt class="py-docstring"> large as possible to keep the upload efficient. Other factors may influence</tt> </tt>
+<a name="L87"></a><tt class="py-lineno"> 87</tt> <tt class="py-line"><tt class="py-docstring"> the size of the chunk you use, particularly if you are working in an</tt> </tt>
+<a name="L88"></a><tt class="py-lineno"> 88</tt> <tt class="py-line"><tt class="py-docstring"> environment where individual HTTP requests may have a hardcoded time limit,</tt> </tt>
+<a name="L89"></a><tt class="py-lineno"> 89</tt> <tt class="py-line"><tt class="py-docstring"> such as under certain classes of requests under Google App Engine.</tt> </tt>
+<a name="L90"></a><tt class="py-lineno"> 90</tt> <tt class="py-line"><tt class="py-docstring"> """</tt> </tt>
+<a name="L91"></a><tt class="py-lineno"> 91</tt> <tt class="py-line"> </tt>
+<a name="MediaUpload.chunksize"></a><div id="MediaUpload.chunksize-def"><a name="L92"></a><tt class="py-lineno"> 92</tt> <a class="py-toggle" href="#" id="MediaUpload.chunksize-toggle" onclick="return toggle('MediaUpload.chunksize');">-</a><tt class="py-line"> <tt class="py-keyword">def</tt> <a class="py-def-name" href="apiclient.http.MediaUpload-class.html#chunksize">chunksize</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+</div><div id="MediaUpload.chunksize-collapsed" style="display:none;" pad="++++" indent="++++++"></div><div id="MediaUpload.chunksize-expanded"><a name="L93"></a><tt class="py-lineno"> 93</tt> <tt class="py-line"> <tt class="py-docstring">"""Chunk size for resumable uploads.</tt> </tt>
+<a name="L94"></a><tt class="py-lineno"> 94</tt> <tt class="py-line"><tt class="py-docstring"></tt> </tt>
+<a name="L95"></a><tt class="py-lineno"> 95</tt> <tt class="py-line"><tt class="py-docstring"> Returns:</tt> </tt>
+<a name="L96"></a><tt class="py-lineno"> 96</tt> <tt class="py-line"><tt class="py-docstring"> Chunk size in bytes.</tt> </tt>
<a name="L97"></a><tt class="py-lineno"> 97</tt> <tt class="py-line"><tt class="py-docstring"> """</tt> </tt>
-<a name="L98"></a><tt class="py-lineno"> 98</tt> <tt class="py-line"> <tt class="py-name">t</tt> <tt class="py-op">=</tt> <tt class="py-name">type</tt><tt class="py-op">(</tt><tt class="py-name">self</tt><tt class="py-op">)</tt> </tt>
-<a name="L99"></a><tt class="py-lineno"> 99</tt> <tt class="py-line"> <tt class="py-name">d</tt> <tt class="py-op">=</tt> <tt class="py-name">copy</tt><tt class="py-op">.</tt><tt class="py-name">copy</tt><tt class="py-op">(</tt><tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">__dict__</tt><tt class="py-op">)</tt> </tt>
-<a name="L100"></a><tt class="py-lineno"> 100</tt> <tt class="py-line"> <tt class="py-keyword">if</tt> <tt class="py-name">strip</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="L101"></a><tt class="py-lineno"> 101</tt> <tt class="py-line"> <tt class="py-keyword">for</tt> <tt class="py-name">member</tt> <tt class="py-keyword">in</tt> <tt class="py-name">strip</tt><tt class="py-op">:</tt> </tt>
-<a name="L102"></a><tt class="py-lineno"> 102</tt> <tt class="py-line"> <tt class="py-keyword">del</tt> <tt class="py-name">d</tt><tt class="py-op">[</tt><tt class="py-name">member</tt><tt class="py-op">]</tt> </tt>
-<a name="L103"></a><tt class="py-lineno"> 103</tt> <tt class="py-line"> <tt class="py-name">d</tt><tt class="py-op">[</tt><tt class="py-string">'_class'</tt><tt class="py-op">]</tt> <tt class="py-op">=</tt> <tt class="py-name">t</tt><tt class="py-op">.</tt><tt class="py-name">__name__</tt> </tt>
-<a name="L104"></a><tt class="py-lineno"> 104</tt> <tt class="py-line"> <tt class="py-name">d</tt><tt class="py-op">[</tt><tt class="py-string">'_module'</tt><tt class="py-op">]</tt> <tt class="py-op">=</tt> <tt class="py-name">t</tt><tt class="py-op">.</tt><tt class="py-name">__module__</tt> </tt>
-<a name="L105"></a><tt class="py-lineno"> 105</tt> <tt class="py-line"> <tt class="py-keyword">return</tt> <tt class="py-name">simplejson</tt><tt class="py-op">.</tt><tt class="py-name">dumps</tt><tt class="py-op">(</tt><tt class="py-name">d</tt><tt class="py-op">)</tt> </tt>
-</div><a name="L106"></a><tt class="py-lineno"> 106</tt> <tt class="py-line"> </tt>
-<a name="MediaUpload.to_json"></a><div id="MediaUpload.to_json-def"><a name="L107"></a><tt class="py-lineno"> 107</tt> <a class="py-toggle" href="#" id="MediaUpload.to_json-toggle" onclick="return toggle('MediaUpload.to_json');">-</a><tt class="py-line"> <tt class="py-keyword">def</tt> <a class="py-def-name" href="apiclient.http.MediaUpload-class.html#to_json">to_json</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-</div><div id="MediaUpload.to_json-collapsed" style="display:none;" pad="++++" indent="++++++"></div><div id="MediaUpload.to_json-expanded"><a name="L108"></a><tt class="py-lineno"> 108</tt> <tt class="py-line"> <tt class="py-docstring">"""Create a JSON representation of an instance of MediaUpload.</tt> </tt>
-<a name="L109"></a><tt class="py-lineno"> 109</tt> <tt class="py-line"><tt class="py-docstring"></tt> </tt>
-<a name="L110"></a><tt class="py-lineno"> 110</tt> <tt class="py-line"><tt class="py-docstring"> Returns:</tt> </tt>
-<a name="L111"></a><tt class="py-lineno"> 111</tt> <tt class="py-line"><tt class="py-docstring"> string, a JSON representation of this instance, suitable to pass to</tt> </tt>
-<a name="L112"></a><tt class="py-lineno"> 112</tt> <tt class="py-line"><tt class="py-docstring"> from_json().</tt> </tt>
+<a name="L98"></a><tt class="py-lineno"> 98</tt> <tt class="py-line"> <tt class="py-keyword">raise</tt> <tt class="py-name">NotImplementedError</tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
+</div><a name="L99"></a><tt class="py-lineno"> 99</tt> <tt class="py-line"> </tt>
+<a name="MediaUpload.mimetype"></a><div id="MediaUpload.mimetype-def"><a name="L100"></a><tt class="py-lineno"> 100</tt> <a class="py-toggle" href="#" id="MediaUpload.mimetype-toggle" onclick="return toggle('MediaUpload.mimetype');">-</a><tt class="py-line"> <tt class="py-keyword">def</tt> <a class="py-def-name" href="apiclient.http.MediaUpload-class.html#mimetype">mimetype</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+</div><div id="MediaUpload.mimetype-collapsed" style="display:none;" pad="++++" indent="++++++"></div><div id="MediaUpload.mimetype-expanded"><a name="L101"></a><tt class="py-lineno"> 101</tt> <tt class="py-line"> <tt class="py-docstring">"""Mime type of the body.</tt> </tt>
+<a name="L102"></a><tt class="py-lineno"> 102</tt> <tt class="py-line"><tt class="py-docstring"></tt> </tt>
+<a name="L103"></a><tt class="py-lineno"> 103</tt> <tt class="py-line"><tt class="py-docstring"> Returns:</tt> </tt>
+<a name="L104"></a><tt class="py-lineno"> 104</tt> <tt class="py-line"><tt class="py-docstring"> Mime type.</tt> </tt>
+<a name="L105"></a><tt class="py-lineno"> 105</tt> <tt class="py-line"><tt class="py-docstring"> """</tt> </tt>
+<a name="L106"></a><tt class="py-lineno"> 106</tt> <tt class="py-line"> <tt class="py-keyword">return</tt> <tt class="py-string">'application/octet-stream'</tt> </tt>
+</div><a name="L107"></a><tt class="py-lineno"> 107</tt> <tt class="py-line"> </tt>
+<a name="MediaUpload.size"></a><div id="MediaUpload.size-def"><a name="L108"></a><tt class="py-lineno"> 108</tt> <a class="py-toggle" href="#" id="MediaUpload.size-toggle" onclick="return toggle('MediaUpload.size');">-</a><tt class="py-line"> <tt class="py-keyword">def</tt> <a class="py-def-name" href="apiclient.http.MediaUpload-class.html#size">size</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+</div><div id="MediaUpload.size-collapsed" style="display:none;" pad="++++" indent="++++++"></div><div id="MediaUpload.size-expanded"><a name="L109"></a><tt class="py-lineno"> 109</tt> <tt class="py-line"> <tt class="py-docstring">"""Size of upload.</tt> </tt>
+<a name="L110"></a><tt class="py-lineno"> 110</tt> <tt class="py-line"><tt class="py-docstring"></tt> </tt>
+<a name="L111"></a><tt class="py-lineno"> 111</tt> <tt class="py-line"><tt class="py-docstring"> Returns:</tt> </tt>
+<a name="L112"></a><tt class="py-lineno"> 112</tt> <tt class="py-line"><tt class="py-docstring"> Size of the body, or None of the size is unknown.</tt> </tt>
<a name="L113"></a><tt class="py-lineno"> 113</tt> <tt class="py-line"><tt class="py-docstring"> """</tt> </tt>
-<a name="L114"></a><tt class="py-lineno"> 114</tt> <tt class="py-line"> <tt class="py-keyword">return</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-15" class="py-name" targets="Method apiclient.http.MediaUpload._to_json()=apiclient.http.MediaUpload-class.html#_to_json,Method oauth2client.client.Credentials._to_json()=oauth2client.client.Credentials-class.html#_to_json"><a title="apiclient.http.MediaUpload._to_json
-oauth2client.client.Credentials._to_json" class="py-name" href="#" onclick="return doclink('link-15', '_to_json', 'link-15');">_to_json</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
+<a name="L114"></a><tt class="py-lineno"> 114</tt> <tt class="py-line"> <tt class="py-keyword">return</tt> <tt class="py-name">None</tt> </tt>
</div><a name="L115"></a><tt class="py-lineno"> 115</tt> <tt class="py-line"> </tt>
-<a name="L116"></a><tt class="py-lineno"> 116</tt> <tt class="py-line"> <tt class="py-decorator">@</tt><tt class="py-decorator">classmethod</tt> </tt>
-<a name="MediaUpload.new_from_json"></a><div id="MediaUpload.new_from_json-def"><a name="L117"></a><tt class="py-lineno"> 117</tt> <a class="py-toggle" href="#" id="MediaUpload.new_from_json-toggle" onclick="return toggle('MediaUpload.new_from_json');">-</a><tt class="py-line"> <tt class="py-keyword">def</tt> <a class="py-def-name" href="apiclient.http.MediaUpload-class.html#new_from_json">new_from_json</a><tt class="py-op">(</tt><tt class="py-param">cls</tt><tt class="py-op">,</tt> <tt class="py-param">s</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-</div><div id="MediaUpload.new_from_json-collapsed" style="display:none;" pad="++++" indent="++++++"></div><div id="MediaUpload.new_from_json-expanded"><a name="L118"></a><tt class="py-lineno"> 118</tt> <tt class="py-line"> <tt class="py-docstring">"""Utility class method to instantiate a MediaUpload subclass from a JSON</tt> </tt>
-<a name="L119"></a><tt class="py-lineno"> 119</tt> <tt class="py-line"><tt class="py-docstring"> representation produced by to_json().</tt> </tt>
-<a name="L120"></a><tt class="py-lineno"> 120</tt> <tt class="py-line"><tt class="py-docstring"></tt> </tt>
-<a name="L121"></a><tt class="py-lineno"> 121</tt> <tt class="py-line"><tt class="py-docstring"> Args:</tt> </tt>
-<a name="L122"></a><tt class="py-lineno"> 122</tt> <tt class="py-line"><tt class="py-docstring"> s: string, JSON from to_json().</tt> </tt>
-<a name="L123"></a><tt class="py-lineno"> 123</tt> <tt class="py-line"><tt class="py-docstring"></tt> </tt>
-<a name="L124"></a><tt class="py-lineno"> 124</tt> <tt class="py-line"><tt class="py-docstring"> Returns:</tt> </tt>
-<a name="L125"></a><tt class="py-lineno"> 125</tt> <tt class="py-line"><tt class="py-docstring"> An instance of the subclass of MediaUpload that was serialized with</tt> </tt>
-<a name="L126"></a><tt class="py-lineno"> 126</tt> <tt class="py-line"><tt class="py-docstring"> to_json().</tt> </tt>
-<a name="L127"></a><tt class="py-lineno"> 127</tt> <tt class="py-line"><tt class="py-docstring"> """</tt> </tt>
-<a name="L128"></a><tt class="py-lineno"> 128</tt> <tt class="py-line"> <tt class="py-name">data</tt> <tt class="py-op">=</tt> <tt class="py-name">simplejson</tt><tt class="py-op">.</tt><tt id="link-16" class="py-name" targets="Function oauth2client.clientsecrets.loads()=oauth2client.clientsecrets-module.html#loads"><a title="oauth2client.clientsecrets.loads" class="py-name" href="#" onclick="return doclink('link-16', 'loads', 'link-16');">loads</a></tt><tt class="py-op">(</tt><tt class="py-name">s</tt><tt class="py-op">)</tt> </tt>
-<a name="L129"></a><tt class="py-lineno"> 129</tt> <tt class="py-line"> <tt class="py-comment"># Find and call the right classmethod from_json() to restore the object.</tt> </tt>
-<a name="L130"></a><tt class="py-lineno"> 130</tt> <tt class="py-line"> <tt class="py-name">module</tt> <tt class="py-op">=</tt> <tt class="py-name">data</tt><tt class="py-op">[</tt><tt class="py-string">'_module'</tt><tt class="py-op">]</tt> </tt>
-<a name="L131"></a><tt class="py-lineno"> 131</tt> <tt class="py-line"> <tt class="py-name">m</tt> <tt class="py-op">=</tt> <tt class="py-name">__import__</tt><tt class="py-op">(</tt><tt class="py-name">module</tt><tt class="py-op">,</tt> <tt class="py-name">fromlist</tt><tt class="py-op">=</tt><tt class="py-name">module</tt><tt class="py-op">.</tt><tt class="py-name">split</tt><tt class="py-op">(</tt><tt class="py-string">'.'</tt><tt class="py-op">)</tt><tt class="py-op">[</tt><tt class="py-op">:</tt><tt class="py-op">-</tt><tt class="py-number">1</tt><tt class="py-op">]</tt><tt class="py-op">)</tt> </tt>
-<a name="L132"></a><tt class="py-lineno"> 132</tt> <tt class="py-line"> <tt class="py-name">kls</tt> <tt class="py-op">=</tt> <tt class="py-name">getattr</tt><tt class="py-op">(</tt><tt class="py-name">m</tt><tt class="py-op">,</tt> <tt class="py-name">data</tt><tt class="py-op">[</tt><tt class="py-string">'_class'</tt><tt class="py-op">]</tt><tt class="py-op">)</tt> </tt>
-<a name="L133"></a><tt class="py-lineno"> 133</tt> <tt class="py-line"> <tt id="link-17" class="py-name" targets="Static Method apiclient.http.HttpRequest.from_json()=apiclient.http.HttpRequest-class.html#from_json,Static Method apiclient.http.MediaFileUpload.from_json()=apiclient.http.MediaFileUpload-class.html#from_json,Static Method apiclient.http.MediaInMemoryUpload.from_json()=apiclient.http.MediaInMemoryUpload-class.html#from_json,Class Method oauth2client.appengine.AppAssertionCredentials.from_json()=oauth2client.appengine.AppAssertionCredentials-class.html#from_json,Class Method oauth2client.client.AccessTokenCredentials.from_json()=oauth2client.client.AccessTokenCredentials-class.html#from_json,Class Method oauth2client.client.Credentials.from_json()=oauth2client.client.Credentials-class.html#from_json,Class Method oauth2client.client.OAuth2Credentials.from_json()=oauth2client.client.OAuth2Credentials-class.html#from_json,Class Method oauth2client.client.SignedJwtAssertionCredentials.from_json()=oauth2client.client.SignedJwtAssertionCredentials-class.html#from_json"><a title="apiclient.http.HttpRequest.from_json
-apiclient.http.MediaFileUpload.from_json
-apiclient.http.MediaInMemoryUpload.from_json
-oauth2client.appengine.AppAssertionCredentials.from_json
-oauth2client.client.AccessTokenCredentials.from_json
-oauth2client.client.Credentials.from_json
-oauth2client.client.OAuth2Credentials.from_json
-oauth2client.client.SignedJwtAssertionCredentials.from_json" class="py-name" href="#" onclick="return doclink('link-17', 'from_json', 'link-17');">from_json</a></tt> <tt class="py-op">=</tt> <tt class="py-name">getattr</tt><tt class="py-op">(</tt><tt class="py-name">kls</tt><tt class="py-op">,</tt> <tt class="py-string">'from_json'</tt><tt class="py-op">)</tt> </tt>
-<a name="L134"></a><tt class="py-lineno"> 134</tt> <tt class="py-line"> <tt class="py-keyword">return</tt> <tt id="link-18" class="py-name"><a title="apiclient.http.HttpRequest.from_json
-apiclient.http.MediaFileUpload.from_json
-apiclient.http.MediaInMemoryUpload.from_json
-oauth2client.appengine.AppAssertionCredentials.from_json
-oauth2client.client.AccessTokenCredentials.from_json
-oauth2client.client.Credentials.from_json
-oauth2client.client.OAuth2Credentials.from_json
-oauth2client.client.SignedJwtAssertionCredentials.from_json" class="py-name" href="#" onclick="return doclink('link-18', 'from_json', 'link-17');">from_json</a></tt><tt class="py-op">(</tt><tt class="py-name">s</tt><tt class="py-op">)</tt> </tt>
-</div></div><a name="L135"></a><tt class="py-lineno"> 135</tt> <tt class="py-line"> </tt>
-<a name="MediaFileUpload"></a><div id="MediaFileUpload-def"><a name="L136"></a><tt class="py-lineno"> 136</tt> <tt class="py-line"> </tt>
-<a name="L137"></a><tt class="py-lineno"> 137</tt> <a class="py-toggle" href="#" id="MediaFileUpload-toggle" onclick="return toggle('MediaFileUpload');">-</a><tt class="py-line"><tt class="py-keyword">class</tt> <a class="py-def-name" href="apiclient.http.MediaFileUpload-class.html">MediaFileUpload</a><tt class="py-op">(</tt><tt class="py-base-class">MediaUpload</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-</div><div id="MediaFileUpload-collapsed" style="display:none;" pad="++++" indent="++++"></div><div id="MediaFileUpload-expanded"><a name="L138"></a><tt class="py-lineno"> 138</tt> <tt class="py-line"> <tt class="py-docstring">"""A MediaUpload for a file.</tt> </tt>
+<a name="MediaUpload.resumable"></a><div id="MediaUpload.resumable-def"><a name="L116"></a><tt class="py-lineno"> 116</tt> <a class="py-toggle" href="#" id="MediaUpload.resumable-toggle" onclick="return toggle('MediaUpload.resumable');">-</a><tt class="py-line"> <tt class="py-keyword">def</tt> <a class="py-def-name" href="apiclient.http.MediaUpload-class.html#resumable">resumable</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+</div><div id="MediaUpload.resumable-collapsed" style="display:none;" pad="++++" indent="++++++"></div><div id="MediaUpload.resumable-expanded"><a name="L117"></a><tt class="py-lineno"> 117</tt> <tt class="py-line"> <tt class="py-docstring">"""Whether this upload is resumable.</tt> </tt>
+<a name="L118"></a><tt class="py-lineno"> 118</tt> <tt class="py-line"><tt class="py-docstring"></tt> </tt>
+<a name="L119"></a><tt class="py-lineno"> 119</tt> <tt class="py-line"><tt class="py-docstring"> Returns:</tt> </tt>
+<a name="L120"></a><tt class="py-lineno"> 120</tt> <tt class="py-line"><tt class="py-docstring"> True if resumable upload or False.</tt> </tt>
+<a name="L121"></a><tt class="py-lineno"> 121</tt> <tt class="py-line"><tt class="py-docstring"> """</tt> </tt>
+<a name="L122"></a><tt class="py-lineno"> 122</tt> <tt class="py-line"> <tt class="py-keyword">return</tt> <tt class="py-name">False</tt> </tt>
+</div><a name="L123"></a><tt class="py-lineno"> 123</tt> <tt class="py-line"> </tt>
+<a name="MediaUpload.getbytes"></a><div id="MediaUpload.getbytes-def"><a name="L124"></a><tt class="py-lineno"> 124</tt> <a class="py-toggle" href="#" id="MediaUpload.getbytes-toggle" onclick="return toggle('MediaUpload.getbytes');">-</a><tt class="py-line"> <tt class="py-keyword">def</tt> <a class="py-def-name" href="apiclient.http.MediaUpload-class.html#getbytes">getbytes</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">,</tt> <tt class="py-param">begin</tt><tt class="py-op">,</tt> <tt class="py-param">end</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+</div><div id="MediaUpload.getbytes-collapsed" style="display:none;" pad="++++" indent="++++++"></div><div id="MediaUpload.getbytes-expanded"><a name="L125"></a><tt class="py-lineno"> 125</tt> <tt class="py-line"> <tt class="py-docstring">"""Get bytes from the media.</tt> </tt>
+<a name="L126"></a><tt class="py-lineno"> 126</tt> <tt class="py-line"><tt class="py-docstring"></tt> </tt>
+<a name="L127"></a><tt class="py-lineno"> 127</tt> <tt class="py-line"><tt class="py-docstring"> Args:</tt> </tt>
+<a name="L128"></a><tt class="py-lineno"> 128</tt> <tt class="py-line"><tt class="py-docstring"> begin: int, offset from beginning of file.</tt> </tt>
+<a name="L129"></a><tt class="py-lineno"> 129</tt> <tt class="py-line"><tt class="py-docstring"> length: int, number of bytes to read, starting at begin.</tt> </tt>
+<a name="L130"></a><tt class="py-lineno"> 130</tt> <tt class="py-line"><tt class="py-docstring"></tt> </tt>
+<a name="L131"></a><tt class="py-lineno"> 131</tt> <tt class="py-line"><tt class="py-docstring"> Returns:</tt> </tt>
+<a name="L132"></a><tt class="py-lineno"> 132</tt> <tt class="py-line"><tt class="py-docstring"> A string of bytes read. May be shorter than length if EOF was reached</tt> </tt>
+<a name="L133"></a><tt class="py-lineno"> 133</tt> <tt class="py-line"><tt class="py-docstring"> first.</tt> </tt>
+<a name="L134"></a><tt class="py-lineno"> 134</tt> <tt class="py-line"><tt class="py-docstring"> """</tt> </tt>
+<a name="L135"></a><tt class="py-lineno"> 135</tt> <tt class="py-line"> <tt class="py-keyword">raise</tt> <tt class="py-name">NotImplementedError</tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
+</div><a name="L136"></a><tt class="py-lineno"> 136</tt> <tt class="py-line"> </tt>
+<a name="MediaUpload._to_json"></a><div id="MediaUpload._to_json-def"><a name="L137"></a><tt class="py-lineno"> 137</tt> <a class="py-toggle" href="#" id="MediaUpload._to_json-toggle" onclick="return toggle('MediaUpload._to_json');">-</a><tt class="py-line"> <tt class="py-keyword">def</tt> <a class="py-def-name" href="apiclient.http.MediaUpload-class.html#_to_json">_to_json</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">,</tt> <tt class="py-param">strip</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="MediaUpload._to_json-collapsed" style="display:none;" pad="++++" indent="++++++"></div><div id="MediaUpload._to_json-expanded"><a name="L138"></a><tt class="py-lineno"> 138</tt> <tt class="py-line"> <tt class="py-docstring">"""Utility function for creating a JSON representation of a MediaUpload.</tt> </tt>
<a name="L139"></a><tt class="py-lineno"> 139</tt> <tt class="py-line"><tt class="py-docstring"></tt> </tt>
-<a name="L140"></a><tt class="py-lineno"> 140</tt> <tt class="py-line"><tt class="py-docstring"> Construct a MediaFileUpload and pass as the media_body parameter of the</tt> </tt>
-<a name="L141"></a><tt class="py-lineno"> 141</tt> <tt class="py-line"><tt class="py-docstring"> method. For example, if we had a service that allowed uploading images:</tt> </tt>
+<a name="L140"></a><tt class="py-lineno"> 140</tt> <tt class="py-line"><tt class="py-docstring"> Args:</tt> </tt>
+<a name="L141"></a><tt class="py-lineno"> 141</tt> <tt class="py-line"><tt class="py-docstring"> strip: array, An array of names of members to not include in the JSON.</tt> </tt>
<a name="L142"></a><tt class="py-lineno"> 142</tt> <tt class="py-line"><tt class="py-docstring"></tt> </tt>
-<a name="L143"></a><tt class="py-lineno"> 143</tt> <tt class="py-line"><tt class="py-docstring"></tt> </tt>
-<a name="L144"></a><tt class="py-lineno"> 144</tt> <tt class="py-line"><tt class="py-docstring"> media = MediaFileUpload('smiley.png', mimetype='image/png', chunksize=1000,</tt> </tt>
-<a name="L145"></a><tt class="py-lineno"> 145</tt> <tt class="py-line"><tt class="py-docstring"> resumable=True)</tt> </tt>
-<a name="L146"></a><tt class="py-lineno"> 146</tt> <tt class="py-line"><tt class="py-docstring"> service.objects().insert(</tt> </tt>
-<a name="L147"></a><tt class="py-lineno"> 147</tt> <tt class="py-line"><tt class="py-docstring"> bucket=buckets['items'][0]['id'],</tt> </tt>
-<a name="L148"></a><tt class="py-lineno"> 148</tt> <tt class="py-line"><tt class="py-docstring"> name='smiley.png',</tt> </tt>
-<a name="L149"></a><tt class="py-lineno"> 149</tt> <tt class="py-line"><tt class="py-docstring"> media_body=media).execute()</tt> </tt>
-<a name="L150"></a><tt class="py-lineno"> 150</tt> <tt class="py-line"><tt class="py-docstring"> """</tt> </tt>
-<a name="L151"></a><tt class="py-lineno"> 151</tt> <tt class="py-line"> </tt>
-<a name="MediaFileUpload.__init__"></a><div id="MediaFileUpload.__init__-def"><a name="L152"></a><tt class="py-lineno"> 152</tt> <a class="py-toggle" href="#" id="MediaFileUpload.__init__-toggle" onclick="return toggle('MediaFileUpload.__init__');">-</a><tt class="py-line"> <tt class="py-keyword">def</tt> <a class="py-def-name" href="apiclient.http.MediaFileUpload-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">filename</tt><tt class="py-op">,</tt> <tt class="py-param">mimetype</tt><tt class="py-op">=</tt><tt class="py-name">None</tt><tt class="py-op">,</tt> <tt class="py-param">chunksize</tt><tt class="py-op">=</tt><tt class="py-number">256</tt><tt class="py-op">*</tt><tt class="py-number">1024</tt><tt class="py-op">,</tt> <tt class="py-param">resumable</tt><tt class="py-op">=</tt><tt class="py-name">False</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-</div><div id="MediaFileUpload.__init__-collapsed" style="display:none;" pad="++++" indent="++++++"></div><div id="MediaFileUpload.__init__-expanded"><a name="L153"></a><tt class="py-lineno"> 153</tt> <tt class="py-line"> <tt class="py-docstring">"""Constructor.</tt> </tt>
-<a name="L154"></a><tt class="py-lineno"> 154</tt> <tt class="py-line"><tt class="py-docstring"></tt> </tt>
-<a name="L155"></a><tt class="py-lineno"> 155</tt> <tt class="py-line"><tt class="py-docstring"> Args:</tt> </tt>
-<a name="L156"></a><tt class="py-lineno"> 156</tt> <tt class="py-line"><tt class="py-docstring"> filename: string, Name of the file.</tt> </tt>
-<a name="L157"></a><tt class="py-lineno"> 157</tt> <tt class="py-line"><tt class="py-docstring"> mimetype: string, Mime-type of the file. If None then a mime-type will be</tt> </tt>
-<a name="L158"></a><tt class="py-lineno"> 158</tt> <tt class="py-line"><tt class="py-docstring"> guessed from the file extension.</tt> </tt>
-<a name="L159"></a><tt class="py-lineno"> 159</tt> <tt class="py-line"><tt class="py-docstring"> chunksize: int, File will be uploaded in chunks of this many bytes. Only</tt> </tt>
-<a name="L160"></a><tt class="py-lineno"> 160</tt> <tt class="py-line"><tt class="py-docstring"> used if resumable=True.</tt> </tt>
-<a name="L161"></a><tt class="py-lineno"> 161</tt> <tt class="py-line"><tt class="py-docstring"> resumable: bool, True if this is a resumable upload. False means upload</tt> </tt>
-<a name="L162"></a><tt class="py-lineno"> 162</tt> <tt class="py-line"><tt class="py-docstring"> in a single request.</tt> </tt>
-<a name="L163"></a><tt class="py-lineno"> 163</tt> <tt class="py-line"><tt class="py-docstring"> """</tt> </tt>
-<a name="L164"></a><tt class="py-lineno"> 164</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">_filename</tt> <tt class="py-op">=</tt> <tt class="py-name">filename</tt> </tt>
-<a name="L165"></a><tt class="py-lineno"> 165</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">_size</tt> <tt class="py-op">=</tt> <tt class="py-name">os</tt><tt class="py-op">.</tt><tt class="py-name">path</tt><tt class="py-op">.</tt><tt class="py-name">getsize</tt><tt class="py-op">(</tt><tt class="py-name">filename</tt><tt class="py-op">)</tt> </tt>
-<a name="L166"></a><tt class="py-lineno"> 166</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">_fd</tt> <tt class="py-op">=</tt> <tt class="py-name">None</tt> </tt>
-<a name="L167"></a><tt class="py-lineno"> 167</tt> <tt class="py-line"> <tt class="py-keyword">if</tt> <tt id="link-19" class="py-name" targets="Method apiclient.http.MediaFileUpload.mimetype()=apiclient.http.MediaFileUpload-class.html#mimetype,Method apiclient.http.MediaInMemoryUpload.mimetype()=apiclient.http.MediaInMemoryUpload-class.html#mimetype,Method apiclient.http.MediaUpload.mimetype()=apiclient.http.MediaUpload-class.html#mimetype"><a title="apiclient.http.MediaFileUpload.mimetype
-apiclient.http.MediaInMemoryUpload.mimetype
-apiclient.http.MediaUpload.mimetype" class="py-name" href="#" onclick="return doclink('link-19', 'mimetype', 'link-19');">mimetype</a></tt> <tt class="py-keyword">is</tt> <tt class="py-name">None</tt><tt class="py-op">:</tt> </tt>
-<a name="L168"></a><tt class="py-lineno"> 168</tt> <tt class="py-line"> <tt class="py-op">(</tt><tt id="link-20" class="py-name"><a title="apiclient.http.MediaFileUpload.mimetype
-apiclient.http.MediaInMemoryUpload.mimetype
-apiclient.http.MediaUpload.mimetype" class="py-name" href="#" onclick="return doclink('link-20', 'mimetype', 'link-19');">mimetype</a></tt><tt class="py-op">,</tt> <tt class="py-name">encoding</tt><tt class="py-op">)</tt> <tt class="py-op">=</tt> <tt class="py-name">mimetypes</tt><tt class="py-op">.</tt><tt class="py-name">guess_type</tt><tt class="py-op">(</tt><tt class="py-name">filename</tt><tt class="py-op">)</tt> </tt>
-<a name="L169"></a><tt class="py-lineno"> 169</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">_mimetype</tt> <tt class="py-op">=</tt> <tt id="link-21" class="py-name"><a title="apiclient.http.MediaFileUpload.mimetype
-apiclient.http.MediaInMemoryUpload.mimetype
-apiclient.http.MediaUpload.mimetype" class="py-name" href="#" onclick="return doclink('link-21', 'mimetype', 'link-19');">mimetype</a></tt> </tt>
-<a name="L170"></a><tt class="py-lineno"> 170</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">_chunksize</tt> <tt class="py-op">=</tt> <tt id="link-22" class="py-name" targets="Method apiclient.http.MediaFileUpload.chunksize()=apiclient.http.MediaFileUpload-class.html#chunksize,Method apiclient.http.MediaInMemoryUpload.chunksize()=apiclient.http.MediaInMemoryUpload-class.html#chunksize,Method apiclient.http.MediaUpload.chunksize()=apiclient.http.MediaUpload-class.html#chunksize"><a title="apiclient.http.MediaFileUpload.chunksize
-apiclient.http.MediaInMemoryUpload.chunksize
-apiclient.http.MediaUpload.chunksize" class="py-name" href="#" onclick="return doclink('link-22', 'chunksize', 'link-22');">chunksize</a></tt> </tt>
-<a name="L171"></a><tt class="py-lineno"> 171</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">_resumable</tt> <tt class="py-op">=</tt> <tt id="link-23" class="py-name" targets="Method apiclient.http.MediaFileUpload.resumable()=apiclient.http.MediaFileUpload-class.html#resumable,Method apiclient.http.MediaInMemoryUpload.resumable()=apiclient.http.MediaInMemoryUpload-class.html#resumable,Method apiclient.http.MediaUpload.resumable()=apiclient.http.MediaUpload-class.html#resumable"><a title="apiclient.http.MediaFileUpload.resumable
-apiclient.http.MediaInMemoryUpload.resumable
-apiclient.http.MediaUpload.resumable" class="py-name" href="#" onclick="return doclink('link-23', 'resumable', 'link-23');">resumable</a></tt> </tt>
-</div><a name="L172"></a><tt class="py-lineno"> 172</tt> <tt class="py-line"> </tt>
-<a name="MediaFileUpload.mimetype"></a><div id="MediaFileUpload.mimetype-def"><a name="L173"></a><tt class="py-lineno"> 173</tt> <a class="py-toggle" href="#" id="MediaFileUpload.mimetype-toggle" onclick="return toggle('MediaFileUpload.mimetype');">-</a><tt class="py-line"> <tt class="py-keyword">def</tt> <a class="py-def-name" href="apiclient.http.MediaFileUpload-class.html#mimetype">mimetype</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-</div><div id="MediaFileUpload.mimetype-collapsed" style="display:none;" pad="++++" indent="++++++"></div><div id="MediaFileUpload.mimetype-expanded"><a name="L174"></a><tt class="py-lineno"> 174</tt> <tt class="py-line"> <tt class="py-keyword">return</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">_mimetype</tt> </tt>
-</div><a name="L175"></a><tt class="py-lineno"> 175</tt> <tt class="py-line"> </tt>
-<a name="MediaFileUpload.size"></a><div id="MediaFileUpload.size-def"><a name="L176"></a><tt class="py-lineno"> 176</tt> <a class="py-toggle" href="#" id="MediaFileUpload.size-toggle" onclick="return toggle('MediaFileUpload.size');">-</a><tt class="py-line"> <tt class="py-keyword">def</tt> <a class="py-def-name" href="apiclient.http.MediaFileUpload-class.html#size">size</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-</div><div id="MediaFileUpload.size-collapsed" style="display:none;" pad="++++" indent="++++++"></div><div id="MediaFileUpload.size-expanded"><a name="L177"></a><tt class="py-lineno"> 177</tt> <tt class="py-line"> <tt class="py-keyword">return</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">_size</tt> </tt>
-</div><a name="L178"></a><tt class="py-lineno"> 178</tt> <tt class="py-line"> </tt>
-<a name="MediaFileUpload.chunksize"></a><div id="MediaFileUpload.chunksize-def"><a name="L179"></a><tt class="py-lineno"> 179</tt> <a class="py-toggle" href="#" id="MediaFileUpload.chunksize-toggle" onclick="return toggle('MediaFileUpload.chunksize');">-</a><tt class="py-line"> <tt class="py-keyword">def</tt> <a class="py-def-name" href="apiclient.http.MediaFileUpload-class.html#chunksize">chunksize</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-</div><div id="MediaFileUpload.chunksize-collapsed" style="display:none;" pad="++++" indent="++++++"></div><div id="MediaFileUpload.chunksize-expanded"><a name="L180"></a><tt class="py-lineno"> 180</tt> <tt class="py-line"> <tt class="py-keyword">return</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">_chunksize</tt> </tt>
-</div><a name="L181"></a><tt class="py-lineno"> 181</tt> <tt class="py-line"> </tt>
-<a name="MediaFileUpload.resumable"></a><div id="MediaFileUpload.resumable-def"><a name="L182"></a><tt class="py-lineno"> 182</tt> <a class="py-toggle" href="#" id="MediaFileUpload.resumable-toggle" onclick="return toggle('MediaFileUpload.resumable');">-</a><tt class="py-line"> <tt class="py-keyword">def</tt> <a class="py-def-name" href="apiclient.http.MediaFileUpload-class.html#resumable">resumable</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-</div><div id="MediaFileUpload.resumable-collapsed" style="display:none;" pad="++++" indent="++++++"></div><div id="MediaFileUpload.resumable-expanded"><a name="L183"></a><tt class="py-lineno"> 183</tt> <tt class="py-line"> <tt class="py-keyword">return</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">_resumable</tt> </tt>
-</div><a name="L184"></a><tt class="py-lineno"> 184</tt> <tt class="py-line"> </tt>
-<a name="MediaFileUpload.getbytes"></a><div id="MediaFileUpload.getbytes-def"><a name="L185"></a><tt class="py-lineno"> 185</tt> <a class="py-toggle" href="#" id="MediaFileUpload.getbytes-toggle" onclick="return toggle('MediaFileUpload.getbytes');">-</a><tt class="py-line"> <tt class="py-keyword">def</tt> <a class="py-def-name" href="apiclient.http.MediaFileUpload-class.html#getbytes">getbytes</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">,</tt> <tt class="py-param">begin</tt><tt class="py-op">,</tt> <tt class="py-param">length</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-</div><div id="MediaFileUpload.getbytes-collapsed" style="display:none;" pad="++++" indent="++++++"></div><div id="MediaFileUpload.getbytes-expanded"><a name="L186"></a><tt class="py-lineno"> 186</tt> <tt class="py-line"> <tt class="py-docstring">"""Get bytes from the media.</tt> </tt>
-<a name="L187"></a><tt class="py-lineno"> 187</tt> <tt class="py-line"><tt class="py-docstring"></tt> </tt>
-<a name="L188"></a><tt class="py-lineno"> 188</tt> <tt class="py-line"><tt class="py-docstring"> Args:</tt> </tt>
-<a name="L189"></a><tt class="py-lineno"> 189</tt> <tt class="py-line"><tt class="py-docstring"> begin: int, offset from beginning of file.</tt> </tt>
-<a name="L190"></a><tt class="py-lineno"> 190</tt> <tt class="py-line"><tt class="py-docstring"> length: int, number of bytes to read, starting at begin.</tt> </tt>
+<a name="L143"></a><tt class="py-lineno"> 143</tt> <tt class="py-line"><tt class="py-docstring"> Returns:</tt> </tt>
+<a name="L144"></a><tt class="py-lineno"> 144</tt> <tt class="py-line"><tt class="py-docstring"> string, a JSON representation of this instance, suitable to pass to</tt> </tt>
+<a name="L145"></a><tt class="py-lineno"> 145</tt> <tt class="py-line"><tt class="py-docstring"> from_json().</tt> </tt>
+<a name="L146"></a><tt class="py-lineno"> 146</tt> <tt class="py-line"><tt class="py-docstring"> """</tt> </tt>
+<a name="L147"></a><tt class="py-lineno"> 147</tt> <tt class="py-line"> <tt class="py-name">t</tt> <tt class="py-op">=</tt> <tt class="py-name">type</tt><tt class="py-op">(</tt><tt class="py-name">self</tt><tt class="py-op">)</tt> </tt>
+<a name="L148"></a><tt class="py-lineno"> 148</tt> <tt class="py-line"> <tt class="py-name">d</tt> <tt class="py-op">=</tt> <tt class="py-name">copy</tt><tt class="py-op">.</tt><tt class="py-name">copy</tt><tt class="py-op">(</tt><tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">__dict__</tt><tt class="py-op">)</tt> </tt>
+<a name="L149"></a><tt class="py-lineno"> 149</tt> <tt class="py-line"> <tt class="py-keyword">if</tt> <tt class="py-name">strip</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="L150"></a><tt class="py-lineno"> 150</tt> <tt class="py-line"> <tt class="py-keyword">for</tt> <tt class="py-name">member</tt> <tt class="py-keyword">in</tt> <tt class="py-name">strip</tt><tt class="py-op">:</tt> </tt>
+<a name="L151"></a><tt class="py-lineno"> 151</tt> <tt class="py-line"> <tt class="py-keyword">del</tt> <tt class="py-name">d</tt><tt class="py-op">[</tt><tt class="py-name">member</tt><tt class="py-op">]</tt> </tt>
+<a name="L152"></a><tt class="py-lineno"> 152</tt> <tt class="py-line"> <tt class="py-name">d</tt><tt class="py-op">[</tt><tt class="py-string">'_class'</tt><tt class="py-op">]</tt> <tt class="py-op">=</tt> <tt class="py-name">t</tt><tt class="py-op">.</tt><tt class="py-name">__name__</tt> </tt>
+<a name="L153"></a><tt class="py-lineno"> 153</tt> <tt class="py-line"> <tt class="py-name">d</tt><tt class="py-op">[</tt><tt class="py-string">'_module'</tt><tt class="py-op">]</tt> <tt class="py-op">=</tt> <tt class="py-name">t</tt><tt class="py-op">.</tt><tt class="py-name">__module__</tt> </tt>
+<a name="L154"></a><tt class="py-lineno"> 154</tt> <tt class="py-line"> <tt class="py-keyword">return</tt> <tt class="py-name">simplejson</tt><tt class="py-op">.</tt><tt class="py-name">dumps</tt><tt class="py-op">(</tt><tt class="py-name">d</tt><tt class="py-op">)</tt> </tt>
+</div><a name="L155"></a><tt class="py-lineno"> 155</tt> <tt class="py-line"> </tt>
+<a name="MediaUpload.to_json"></a><div id="MediaUpload.to_json-def"><a name="L156"></a><tt class="py-lineno"> 156</tt> <a class="py-toggle" href="#" id="MediaUpload.to_json-toggle" onclick="return toggle('MediaUpload.to_json');">-</a><tt class="py-line"> <tt class="py-keyword">def</tt> <a class="py-def-name" href="apiclient.http.MediaUpload-class.html#to_json">to_json</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+</div><div id="MediaUpload.to_json-collapsed" style="display:none;" pad="++++" indent="++++++"></div><div id="MediaUpload.to_json-expanded"><a name="L157"></a><tt class="py-lineno"> 157</tt> <tt class="py-line"> <tt class="py-docstring">"""Create a JSON representation of an instance of MediaUpload.</tt> </tt>
+<a name="L158"></a><tt class="py-lineno"> 158</tt> <tt class="py-line"><tt class="py-docstring"></tt> </tt>
+<a name="L159"></a><tt class="py-lineno"> 159</tt> <tt class="py-line"><tt class="py-docstring"> Returns:</tt> </tt>
+<a name="L160"></a><tt class="py-lineno"> 160</tt> <tt class="py-line"><tt class="py-docstring"> string, a JSON representation of this instance, suitable to pass to</tt> </tt>
+<a name="L161"></a><tt class="py-lineno"> 161</tt> <tt class="py-line"><tt class="py-docstring"> from_json().</tt> </tt>
+<a name="L162"></a><tt class="py-lineno"> 162</tt> <tt class="py-line"><tt class="py-docstring"> """</tt> </tt>
+<a name="L163"></a><tt class="py-lineno"> 163</tt> <tt class="py-line"> <tt class="py-keyword">return</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-16" class="py-name" targets="Method apiclient.http.MediaUpload._to_json()=apiclient.http.MediaUpload-class.html#_to_json,Method oauth2client.client.Credentials._to_json()=oauth2client.client.Credentials-class.html#_to_json"><a title="apiclient.http.MediaUpload._to_json
+oauth2client.client.Credentials._to_json" class="py-name" href="#" onclick="return doclink('link-16', '_to_json', 'link-16');">_to_json</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
+</div><a name="L164"></a><tt class="py-lineno"> 164</tt> <tt class="py-line"> </tt>
+<a name="L165"></a><tt class="py-lineno"> 165</tt> <tt class="py-line"> <tt class="py-decorator">@</tt><tt class="py-decorator">classmethod</tt> </tt>
+<a name="MediaUpload.new_from_json"></a><div id="MediaUpload.new_from_json-def"><a name="L166"></a><tt class="py-lineno"> 166</tt> <a class="py-toggle" href="#" id="MediaUpload.new_from_json-toggle" onclick="return toggle('MediaUpload.new_from_json');">-</a><tt class="py-line"> <tt class="py-keyword">def</tt> <a class="py-def-name" href="apiclient.http.MediaUpload-class.html#new_from_json">new_from_json</a><tt class="py-op">(</tt><tt class="py-param">cls</tt><tt class="py-op">,</tt> <tt class="py-param">s</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+</div><div id="MediaUpload.new_from_json-collapsed" style="display:none;" pad="++++" indent="++++++"></div><div id="MediaUpload.new_from_json-expanded"><a name="L167"></a><tt class="py-lineno"> 167</tt> <tt class="py-line"> <tt class="py-docstring">"""Utility class method to instantiate a MediaUpload subclass from a JSON</tt> </tt>
+<a name="L168"></a><tt class="py-lineno"> 168</tt> <tt class="py-line"><tt class="py-docstring"> representation produced by to_json().</tt> </tt>
+<a name="L169"></a><tt class="py-lineno"> 169</tt> <tt class="py-line"><tt class="py-docstring"></tt> </tt>
+<a name="L170"></a><tt class="py-lineno"> 170</tt> <tt class="py-line"><tt class="py-docstring"> Args:</tt> </tt>
+<a name="L171"></a><tt class="py-lineno"> 171</tt> <tt class="py-line"><tt class="py-docstring"> s: string, JSON from to_json().</tt> </tt>
+<a name="L172"></a><tt class="py-lineno"> 172</tt> <tt class="py-line"><tt class="py-docstring"></tt> </tt>
+<a name="L173"></a><tt class="py-lineno"> 173</tt> <tt class="py-line"><tt class="py-docstring"> Returns:</tt> </tt>
+<a name="L174"></a><tt class="py-lineno"> 174</tt> <tt class="py-line"><tt class="py-docstring"> An instance of the subclass of MediaUpload that was serialized with</tt> </tt>
+<a name="L175"></a><tt class="py-lineno"> 175</tt> <tt class="py-line"><tt class="py-docstring"> to_json().</tt> </tt>
+<a name="L176"></a><tt class="py-lineno"> 176</tt> <tt class="py-line"><tt class="py-docstring"> """</tt> </tt>
+<a name="L177"></a><tt class="py-lineno"> 177</tt> <tt class="py-line"> <tt class="py-name">data</tt> <tt class="py-op">=</tt> <tt class="py-name">simplejson</tt><tt class="py-op">.</tt><tt id="link-17" class="py-name" targets="Function oauth2client.clientsecrets.loads()=oauth2client.clientsecrets-module.html#loads"><a title="oauth2client.clientsecrets.loads" class="py-name" href="#" onclick="return doclink('link-17', 'loads', 'link-17');">loads</a></tt><tt class="py-op">(</tt><tt class="py-name">s</tt><tt class="py-op">)</tt> </tt>
+<a name="L178"></a><tt class="py-lineno"> 178</tt> <tt class="py-line"> <tt class="py-comment"># Find and call the right classmethod from_json() to restore the object.</tt> </tt>
+<a name="L179"></a><tt class="py-lineno"> 179</tt> <tt class="py-line"> <tt class="py-name">module</tt> <tt class="py-op">=</tt> <tt class="py-name">data</tt><tt class="py-op">[</tt><tt class="py-string">'_module'</tt><tt class="py-op">]</tt> </tt>
+<a name="L180"></a><tt class="py-lineno"> 180</tt> <tt class="py-line"> <tt class="py-name">m</tt> <tt class="py-op">=</tt> <tt class="py-name">__import__</tt><tt class="py-op">(</tt><tt class="py-name">module</tt><tt class="py-op">,</tt> <tt class="py-name">fromlist</tt><tt class="py-op">=</tt><tt class="py-name">module</tt><tt class="py-op">.</tt><tt class="py-name">split</tt><tt class="py-op">(</tt><tt class="py-string">'.'</tt><tt class="py-op">)</tt><tt class="py-op">[</tt><tt class="py-op">:</tt><tt class="py-op">-</tt><tt class="py-number">1</tt><tt class="py-op">]</tt><tt class="py-op">)</tt> </tt>
+<a name="L181"></a><tt class="py-lineno"> 181</tt> <tt class="py-line"> <tt class="py-name">kls</tt> <tt class="py-op">=</tt> <tt class="py-name">getattr</tt><tt class="py-op">(</tt><tt class="py-name">m</tt><tt class="py-op">,</tt> <tt class="py-name">data</tt><tt class="py-op">[</tt><tt class="py-string">'_class'</tt><tt class="py-op">]</tt><tt class="py-op">)</tt> </tt>
+<a name="L182"></a><tt class="py-lineno"> 182</tt> <tt class="py-line"> <tt id="link-18" class="py-name" targets="Static Method apiclient.http.HttpRequest.from_json()=apiclient.http.HttpRequest-class.html#from_json,Static Method apiclient.http.MediaFileUpload.from_json()=apiclient.http.MediaFileUpload-class.html#from_json,Static Method apiclient.http.MediaInMemoryUpload.from_json()=apiclient.http.MediaInMemoryUpload-class.html#from_json,Class Method oauth2client.appengine.AppAssertionCredentials.from_json()=oauth2client.appengine.AppAssertionCredentials-class.html#from_json,Class Method oauth2client.client.AccessTokenCredentials.from_json()=oauth2client.client.AccessTokenCredentials-class.html#from_json,Class Method oauth2client.client.Credentials.from_json()=oauth2client.client.Credentials-class.html#from_json,Class Method oauth2client.client.OAuth2Credentials.from_json()=oauth2client.client.OAuth2Credentials-class.html#from_json,Class Method oauth2client.client.SignedJwtAssertionCredentials.from_json()=oauth2client.client.SignedJwtAssertionCredentials-class.html#from_json"><a title="apiclient.http.HttpRequest.from_json
+apiclient.http.MediaFileUpload.from_json
+apiclient.http.MediaInMemoryUpload.from_json
+oauth2client.appengine.AppAssertionCredentials.from_json
+oauth2client.client.AccessTokenCredentials.from_json
+oauth2client.client.Credentials.from_json
+oauth2client.client.OAuth2Credentials.from_json
+oauth2client.client.SignedJwtAssertionCredentials.from_json" class="py-name" href="#" onclick="return doclink('link-18', 'from_json', 'link-18');">from_json</a></tt> <tt class="py-op">=</tt> <tt class="py-name">getattr</tt><tt class="py-op">(</tt><tt class="py-name">kls</tt><tt class="py-op">,</tt> <tt class="py-string">'from_json'</tt><tt class="py-op">)</tt> </tt>
+<a name="L183"></a><tt class="py-lineno"> 183</tt> <tt class="py-line"> <tt class="py-keyword">return</tt> <tt id="link-19" class="py-name"><a title="apiclient.http.HttpRequest.from_json
+apiclient.http.MediaFileUpload.from_json
+apiclient.http.MediaInMemoryUpload.from_json
+oauth2client.appengine.AppAssertionCredentials.from_json
+oauth2client.client.AccessTokenCredentials.from_json
+oauth2client.client.Credentials.from_json
+oauth2client.client.OAuth2Credentials.from_json
+oauth2client.client.SignedJwtAssertionCredentials.from_json" class="py-name" href="#" onclick="return doclink('link-19', 'from_json', 'link-18');">from_json</a></tt><tt class="py-op">(</tt><tt class="py-name">s</tt><tt class="py-op">)</tt> </tt>
+</div></div><a name="L184"></a><tt class="py-lineno"> 184</tt> <tt class="py-line"> </tt>
+<a name="MediaFileUpload"></a><div id="MediaFileUpload-def"><a name="L185"></a><tt class="py-lineno"> 185</tt> <tt class="py-line"> </tt>
+<a name="L186"></a><tt class="py-lineno"> 186</tt> <a class="py-toggle" href="#" id="MediaFileUpload-toggle" onclick="return toggle('MediaFileUpload');">-</a><tt class="py-line"><tt class="py-keyword">class</tt> <a class="py-def-name" href="apiclient.http.MediaFileUpload-class.html">MediaFileUpload</a><tt class="py-op">(</tt><tt class="py-base-class">MediaUpload</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+</div><div id="MediaFileUpload-collapsed" style="display:none;" pad="++++" indent="++++"></div><div id="MediaFileUpload-expanded"><a name="L187"></a><tt class="py-lineno"> 187</tt> <tt class="py-line"> <tt class="py-docstring">"""A MediaUpload for a file.</tt> </tt>
+<a name="L188"></a><tt class="py-lineno"> 188</tt> <tt class="py-line"><tt class="py-docstring"></tt> </tt>
+<a name="L189"></a><tt class="py-lineno"> 189</tt> <tt class="py-line"><tt class="py-docstring"> Construct a MediaFileUpload and pass as the media_body parameter of the</tt> </tt>
+<a name="L190"></a><tt class="py-lineno"> 190</tt> <tt class="py-line"><tt class="py-docstring"> method. For example, if we had a service that allowed uploading images:</tt> </tt>
<a name="L191"></a><tt class="py-lineno"> 191</tt> <tt class="py-line"><tt class="py-docstring"></tt> </tt>
-<a name="L192"></a><tt class="py-lineno"> 192</tt> <tt class="py-line"><tt class="py-docstring"> Returns:</tt> </tt>
-<a name="L193"></a><tt class="py-lineno"> 193</tt> <tt class="py-line"><tt class="py-docstring"> A string of bytes read. May be shorted than length if EOF was reached</tt> </tt>
-<a name="L194"></a><tt class="py-lineno"> 194</tt> <tt class="py-line"><tt class="py-docstring"> first.</tt> </tt>
-<a name="L195"></a><tt class="py-lineno"> 195</tt> <tt class="py-line"><tt class="py-docstring"> """</tt> </tt>
-<a name="L196"></a><tt class="py-lineno"> 196</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">_fd</tt> <tt class="py-keyword">is</tt> <tt class="py-name">None</tt><tt class="py-op">:</tt> </tt>
-<a name="L197"></a><tt class="py-lineno"> 197</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">_fd</tt> <tt class="py-op">=</tt> <tt class="py-name">open</tt><tt class="py-op">(</tt><tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">_filename</tt><tt class="py-op">,</tt> <tt class="py-string">'rb'</tt><tt class="py-op">)</tt> </tt>
-<a name="L198"></a><tt class="py-lineno"> 198</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">_fd</tt><tt class="py-op">.</tt><tt class="py-name">seek</tt><tt class="py-op">(</tt><tt class="py-name">begin</tt><tt class="py-op">)</tt> </tt>
-<a name="L199"></a><tt class="py-lineno"> 199</tt> <tt class="py-line"> <tt class="py-keyword">return</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">_fd</tt><tt class="py-op">.</tt><tt class="py-name">read</tt><tt class="py-op">(</tt><tt class="py-name">length</tt><tt class="py-op">)</tt> </tt>
-</div><a name="L200"></a><tt class="py-lineno"> 200</tt> <tt class="py-line"> </tt>
-<a name="MediaFileUpload.to_json"></a><div id="MediaFileUpload.to_json-def"><a name="L201"></a><tt class="py-lineno"> 201</tt> <a class="py-toggle" href="#" id="MediaFileUpload.to_json-toggle" onclick="return toggle('MediaFileUpload.to_json');">-</a><tt class="py-line"> <tt class="py-keyword">def</tt> <a class="py-def-name" href="apiclient.http.MediaFileUpload-class.html#to_json">to_json</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-</div><div id="MediaFileUpload.to_json-collapsed" style="display:none;" pad="++++" indent="++++++"></div><div id="MediaFileUpload.to_json-expanded"><a name="L202"></a><tt class="py-lineno"> 202</tt> <tt class="py-line"> <tt class="py-docstring">"""Creating a JSON representation of an instance of Credentials.</tt> </tt>
+<a name="L192"></a><tt class="py-lineno"> 192</tt> <tt class="py-line"><tt class="py-docstring"></tt> </tt>
+<a name="L193"></a><tt class="py-lineno"> 193</tt> <tt class="py-line"><tt class="py-docstring"> media = MediaFileUpload('smiley.png', mimetype='image/png',</tt> </tt>
+<a name="L194"></a><tt class="py-lineno"> 194</tt> <tt class="py-line"><tt class="py-docstring"> chunksize=1024*1024, resumable=True)</tt> </tt>
+<a name="L195"></a><tt class="py-lineno"> 195</tt> <tt class="py-line"><tt class="py-docstring"> service.objects().insert(</tt> </tt>
+<a name="L196"></a><tt class="py-lineno"> 196</tt> <tt class="py-line"><tt class="py-docstring"> bucket=buckets['items'][0]['id'],</tt> </tt>
+<a name="L197"></a><tt class="py-lineno"> 197</tt> <tt class="py-line"><tt class="py-docstring"> name='smiley.png',</tt> </tt>
+<a name="L198"></a><tt class="py-lineno"> 198</tt> <tt class="py-line"><tt class="py-docstring"> media_body=media).execute()</tt> </tt>
+<a name="L199"></a><tt class="py-lineno"> 199</tt> <tt class="py-line"><tt class="py-docstring"> """</tt> </tt>
+<a name="L200"></a><tt class="py-lineno"> 200</tt> <tt class="py-line"> </tt>
+<a name="MediaFileUpload.__init__"></a><div id="MediaFileUpload.__init__-def"><a name="L201"></a><tt class="py-lineno"> 201</tt> <a class="py-toggle" href="#" id="MediaFileUpload.__init__-toggle" onclick="return toggle('MediaFileUpload.__init__');">-</a><tt class="py-line"> <tt class="py-keyword">def</tt> <a class="py-def-name" href="apiclient.http.MediaFileUpload-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">filename</tt><tt class="py-op">,</tt> <tt class="py-param">mimetype</tt><tt class="py-op">=</tt><tt class="py-name">None</tt><tt class="py-op">,</tt> <tt class="py-param">chunksize</tt><tt class="py-op">=</tt><tt id="link-20" class="py-name"><a title="apiclient.http.DEFAULT_CHUNK_SIZE" class="py-name" href="#" onclick="return doclink('link-20', 'DEFAULT_CHUNK_SIZE', 'link-15');">DEFAULT_CHUNK_SIZE</a></tt><tt class="py-op">,</tt> <tt class="py-param">resumable</tt><tt class="py-op">=</tt><tt class="py-name">False</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+</div><div id="MediaFileUpload.__init__-collapsed" style="display:none;" pad="++++" indent="++++++"></div><div id="MediaFileUpload.__init__-expanded"><a name="L202"></a><tt class="py-lineno"> 202</tt> <tt class="py-line"> <tt class="py-docstring">"""Constructor.</tt> </tt>
<a name="L203"></a><tt class="py-lineno"> 203</tt> <tt class="py-line"><tt class="py-docstring"></tt> </tt>
-<a name="L204"></a><tt class="py-lineno"> 204</tt> <tt class="py-line"><tt class="py-docstring"> Returns:</tt> </tt>
-<a name="L205"></a><tt class="py-lineno"> 205</tt> <tt class="py-line"><tt class="py-docstring"> string, a JSON representation of this instance, suitable to pass to</tt> </tt>
-<a name="L206"></a><tt class="py-lineno"> 206</tt> <tt class="py-line"><tt class="py-docstring"> from_json().</tt> </tt>
-<a name="L207"></a><tt class="py-lineno"> 207</tt> <tt class="py-line"><tt class="py-docstring"> """</tt> </tt>
-<a name="L208"></a><tt class="py-lineno"> 208</tt> <tt class="py-line"> <tt class="py-keyword">return</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-24" class="py-name"><a title="apiclient.http.MediaUpload._to_json
-oauth2client.client.Credentials._to_json" class="py-name" href="#" onclick="return doclink('link-24', '_to_json', 'link-15');">_to_json</a></tt><tt class="py-op">(</tt><tt class="py-op">[</tt><tt class="py-string">'_fd'</tt><tt class="py-op">]</tt><tt class="py-op">)</tt> </tt>
-</div><a name="L209"></a><tt class="py-lineno"> 209</tt> <tt class="py-line"> </tt>
-<a name="L210"></a><tt class="py-lineno"> 210</tt> <tt class="py-line"> <tt class="py-decorator">@</tt><tt class="py-decorator">staticmethod</tt> </tt>
-<a name="MediaFileUpload.from_json"></a><div id="MediaFileUpload.from_json-def"><a name="L211"></a><tt class="py-lineno"> 211</tt> <a class="py-toggle" href="#" id="MediaFileUpload.from_json-toggle" onclick="return toggle('MediaFileUpload.from_json');">-</a><tt class="py-line"> <tt class="py-keyword">def</tt> <a class="py-def-name" href="apiclient.http.MediaFileUpload-class.html#from_json">from_json</a><tt class="py-op">(</tt><tt class="py-param">s</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-</div><div id="MediaFileUpload.from_json-collapsed" style="display:none;" pad="++++" indent="++++++"></div><div id="MediaFileUpload.from_json-expanded"><a name="L212"></a><tt class="py-lineno"> 212</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-25" class="py-name"><a title="oauth2client.clientsecrets.loads" class="py-name" href="#" onclick="return doclink('link-25', 'loads', 'link-16');">loads</a></tt><tt class="py-op">(</tt><tt class="py-name">s</tt><tt class="py-op">)</tt> </tt>
-<a name="L213"></a><tt class="py-lineno"> 213</tt> <tt class="py-line"> <tt class="py-keyword">return</tt> <tt id="link-26" class="py-name" targets="Class apiclient.http.MediaFileUpload=apiclient.http.MediaFileUpload-class.html"><a title="apiclient.http.MediaFileUpload" class="py-name" href="#" onclick="return doclink('link-26', 'MediaFileUpload', 'link-26');">MediaFileUpload</a></tt><tt class="py-op">(</tt> </tt>
-<a name="L214"></a><tt class="py-lineno"> 214</tt> <tt class="py-line"> <tt class="py-name">d</tt><tt class="py-op">[</tt><tt class="py-string">'_filename'</tt><tt class="py-op">]</tt><tt class="py-op">,</tt> <tt class="py-name">d</tt><tt class="py-op">[</tt><tt class="py-string">'_mimetype'</tt><tt class="py-op">]</tt><tt class="py-op">,</tt> <tt class="py-name">d</tt><tt class="py-op">[</tt><tt class="py-string">'_chunksize'</tt><tt class="py-op">]</tt><tt class="py-op">,</tt> <tt class="py-name">d</tt><tt class="py-op">[</tt><tt class="py-string">'_resumable'</tt><tt class="py-op">]</tt><tt class="py-op">)</tt> </tt>
-</div></div><a name="L215"></a><tt class="py-lineno"> 215</tt> <tt class="py-line"> </tt>
-<a name="MediaInMemoryUpload"></a><div id="MediaInMemoryUpload-def"><a name="L216"></a><tt class="py-lineno"> 216</tt> <tt class="py-line"> </tt>
-<a name="L217"></a><tt class="py-lineno"> 217</tt> <a class="py-toggle" href="#" id="MediaInMemoryUpload-toggle" onclick="return toggle('MediaInMemoryUpload');">-</a><tt class="py-line"><tt class="py-keyword">class</tt> <a class="py-def-name" href="apiclient.http.MediaInMemoryUpload-class.html">MediaInMemoryUpload</a><tt class="py-op">(</tt><tt class="py-base-class">MediaUpload</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-</div><div id="MediaInMemoryUpload-collapsed" style="display:none;" pad="++++" indent="++++"></div><div id="MediaInMemoryUpload-expanded"><a name="L218"></a><tt class="py-lineno"> 218</tt> <tt class="py-line"> <tt class="py-docstring">"""MediaUpload for a chunk of bytes.</tt> </tt>
-<a name="L219"></a><tt class="py-lineno"> 219</tt> <tt class="py-line"><tt class="py-docstring"></tt> </tt>
-<a name="L220"></a><tt class="py-lineno"> 220</tt> <tt class="py-line"><tt class="py-docstring"> Construct a MediaFileUpload and pass as the media_body parameter of the</tt> </tt>
-<a name="L221"></a><tt class="py-lineno"> 221</tt> <tt class="py-line"><tt class="py-docstring"> method. For example, if we had a service that allowed plain text:</tt> </tt>
-<a name="L222"></a><tt class="py-lineno"> 222</tt> <tt class="py-line"><tt class="py-docstring"> """</tt> </tt>
-<a name="L223"></a><tt class="py-lineno"> 223</tt> <tt class="py-line"> </tt>
-<a name="MediaInMemoryUpload.__init__"></a><div id="MediaInMemoryUpload.__init__-def"><a name="L224"></a><tt class="py-lineno"> 224</tt> <a class="py-toggle" href="#" id="MediaInMemoryUpload.__init__-toggle" onclick="return toggle('MediaInMemoryUpload.__init__');">-</a><tt class="py-line"> <tt class="py-keyword">def</tt> <a class="py-def-name" href="apiclient.http.MediaInMemoryUpload-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">body</tt><tt class="py-op">,</tt> <tt class="py-param">mimetype</tt><tt class="py-op">=</tt><tt class="py-string">'application/octet-stream'</tt><tt class="py-op">,</tt> </tt>
-<a name="L225"></a><tt class="py-lineno"> 225</tt> <tt class="py-line"> <tt class="py-param">chunksize</tt><tt class="py-op">=</tt><tt class="py-number">256</tt><tt class="py-op">*</tt><tt class="py-number">1024</tt><tt class="py-op">,</tt> <tt class="py-param">resumable</tt><tt class="py-op">=</tt><tt class="py-name">False</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-</div><div id="MediaInMemoryUpload.__init__-collapsed" style="display:none;" pad="++++" indent="++++++"></div><div id="MediaInMemoryUpload.__init__-expanded"><a name="L226"></a><tt class="py-lineno"> 226</tt> <tt class="py-line"> <tt class="py-docstring">"""Create a new MediaBytesUpload.</tt> </tt>
-<a name="L227"></a><tt class="py-lineno"> 227</tt> <tt class="py-line"><tt class="py-docstring"></tt> </tt>
-<a name="L228"></a><tt class="py-lineno"> 228</tt> <tt class="py-line"><tt class="py-docstring"> Args:</tt> </tt>
-<a name="L229"></a><tt class="py-lineno"> 229</tt> <tt class="py-line"><tt class="py-docstring"> body: string, Bytes of body content.</tt> </tt>
-<a name="L230"></a><tt class="py-lineno"> 230</tt> <tt class="py-line"><tt class="py-docstring"> mimetype: string, Mime-type of the file or default of</tt> </tt>
-<a name="L231"></a><tt class="py-lineno"> 231</tt> <tt class="py-line"><tt class="py-docstring"> 'application/octet-stream'.</tt> </tt>
-<a name="L232"></a><tt class="py-lineno"> 232</tt> <tt class="py-line"><tt class="py-docstring"> chunksize: int, File will be uploaded in chunks of this many bytes. Only</tt> </tt>
-<a name="L233"></a><tt class="py-lineno"> 233</tt> <tt class="py-line"><tt class="py-docstring"> used if resumable=True.</tt> </tt>
-<a name="L234"></a><tt class="py-lineno"> 234</tt> <tt class="py-line"><tt class="py-docstring"> resumable: bool, True if this is a resumable upload. False means upload</tt> </tt>
-<a name="L235"></a><tt class="py-lineno"> 235</tt> <tt class="py-line"><tt class="py-docstring"> in a single request.</tt> </tt>
-<a name="L236"></a><tt class="py-lineno"> 236</tt> <tt class="py-line"><tt class="py-docstring"> """</tt> </tt>
-<a name="L237"></a><tt class="py-lineno"> 237</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">_body</tt> <tt class="py-op">=</tt> <tt class="py-name">body</tt> </tt>
-<a name="L238"></a><tt class="py-lineno"> 238</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">_mimetype</tt> <tt class="py-op">=</tt> <tt id="link-27" class="py-name"><a title="apiclient.http.MediaFileUpload.mimetype
+<a name="L204"></a><tt class="py-lineno"> 204</tt> <tt class="py-line"><tt class="py-docstring"> Args:</tt> </tt>
+<a name="L205"></a><tt class="py-lineno"> 205</tt> <tt class="py-line"><tt class="py-docstring"> filename: string, Name of the file.</tt> </tt>
+<a name="L206"></a><tt class="py-lineno"> 206</tt> <tt class="py-line"><tt class="py-docstring"> mimetype: string, Mime-type of the file. If None then a mime-type will be</tt> </tt>
+<a name="L207"></a><tt class="py-lineno"> 207</tt> <tt class="py-line"><tt class="py-docstring"> guessed from the file extension.</tt> </tt>
+<a name="L208"></a><tt class="py-lineno"> 208</tt> <tt class="py-line"><tt class="py-docstring"> chunksize: int, File will be uploaded in chunks of this many bytes. Only</tt> </tt>
+<a name="L209"></a><tt class="py-lineno"> 209</tt> <tt class="py-line"><tt class="py-docstring"> used if resumable=True.</tt> </tt>
+<a name="L210"></a><tt class="py-lineno"> 210</tt> <tt class="py-line"><tt class="py-docstring"> resumable: bool, True if this is a resumable upload. False means upload</tt> </tt>
+<a name="L211"></a><tt class="py-lineno"> 211</tt> <tt class="py-line"><tt class="py-docstring"> in a single request.</tt> </tt>
+<a name="L212"></a><tt class="py-lineno"> 212</tt> <tt class="py-line"><tt class="py-docstring"> """</tt> </tt>
+<a name="L213"></a><tt class="py-lineno"> 213</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">_filename</tt> <tt class="py-op">=</tt> <tt id="link-21" 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-21', 'filename', 'link-21');">filename</a></tt> </tt>
+<a name="L214"></a><tt class="py-lineno"> 214</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">_size</tt> <tt class="py-op">=</tt> <tt class="py-name">os</tt><tt class="py-op">.</tt><tt class="py-name">path</tt><tt class="py-op">.</tt><tt class="py-name">getsize</tt><tt class="py-op">(</tt><tt id="link-22" class="py-name"><a title="oauth2client.locked_file.LockedFile.filename
+oauth2client.locked_file._Opener.filename" class="py-name" href="#" onclick="return doclink('link-22', 'filename', 'link-21');">filename</a></tt><tt class="py-op">)</tt> </tt>
+<a name="L215"></a><tt class="py-lineno"> 215</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">_fd</tt> <tt class="py-op">=</tt> <tt class="py-name">None</tt> </tt>
+<a name="L216"></a><tt class="py-lineno"> 216</tt> <tt class="py-line"> <tt class="py-keyword">if</tt> <tt id="link-23" class="py-name" targets="Method apiclient.http.MediaFileUpload.mimetype()=apiclient.http.MediaFileUpload-class.html#mimetype,Method apiclient.http.MediaInMemoryUpload.mimetype()=apiclient.http.MediaInMemoryUpload-class.html#mimetype,Method apiclient.http.MediaIoBaseUpload.mimetype()=apiclient.http.MediaIoBaseUpload-class.html#mimetype,Method apiclient.http.MediaUpload.mimetype()=apiclient.http.MediaUpload-class.html#mimetype"><a title="apiclient.http.MediaFileUpload.mimetype
apiclient.http.MediaInMemoryUpload.mimetype
-apiclient.http.MediaUpload.mimetype" class="py-name" href="#" onclick="return doclink('link-27', 'mimetype', 'link-19');">mimetype</a></tt> </tt>
-<a name="L239"></a><tt class="py-lineno"> 239</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">_resumable</tt> <tt class="py-op">=</tt> <tt id="link-28" class="py-name"><a title="apiclient.http.MediaFileUpload.resumable
-apiclient.http.MediaInMemoryUpload.resumable
-apiclient.http.MediaUpload.resumable" class="py-name" href="#" onclick="return doclink('link-28', 'resumable', 'link-23');">resumable</a></tt> </tt>
-<a name="L240"></a><tt class="py-lineno"> 240</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">_chunksize</tt> <tt class="py-op">=</tt> <tt id="link-29" class="py-name"><a title="apiclient.http.MediaFileUpload.chunksize
+apiclient.http.MediaIoBaseUpload.mimetype
+apiclient.http.MediaUpload.mimetype" class="py-name" href="#" onclick="return doclink('link-23', 'mimetype', 'link-23');">mimetype</a></tt> <tt class="py-keyword">is</tt> <tt class="py-name">None</tt><tt class="py-op">:</tt> </tt>
+<a name="L217"></a><tt class="py-lineno"> 217</tt> <tt class="py-line"> <tt class="py-op">(</tt><tt id="link-24" class="py-name"><a title="apiclient.http.MediaFileUpload.mimetype
+apiclient.http.MediaInMemoryUpload.mimetype
+apiclient.http.MediaIoBaseUpload.mimetype
+apiclient.http.MediaUpload.mimetype" class="py-name" href="#" onclick="return doclink('link-24', 'mimetype', 'link-23');">mimetype</a></tt><tt class="py-op">,</tt> <tt class="py-name">encoding</tt><tt class="py-op">)</tt> <tt class="py-op">=</tt> <tt class="py-name">mimetypes</tt><tt class="py-op">.</tt><tt class="py-name">guess_type</tt><tt class="py-op">(</tt><tt id="link-25" class="py-name"><a title="oauth2client.locked_file.LockedFile.filename
+oauth2client.locked_file._Opener.filename" class="py-name" href="#" onclick="return doclink('link-25', 'filename', 'link-21');">filename</a></tt><tt class="py-op">)</tt> </tt>
+<a name="L218"></a><tt class="py-lineno"> 218</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">_mimetype</tt> <tt class="py-op">=</tt> <tt id="link-26" class="py-name"><a title="apiclient.http.MediaFileUpload.mimetype
+apiclient.http.MediaInMemoryUpload.mimetype
+apiclient.http.MediaIoBaseUpload.mimetype
+apiclient.http.MediaUpload.mimetype" class="py-name" href="#" onclick="return doclink('link-26', 'mimetype', 'link-23');">mimetype</a></tt> </tt>
+<a name="L219"></a><tt class="py-lineno"> 219</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">_chunksize</tt> <tt class="py-op">=</tt> <tt id="link-27" class="py-name" targets="Method apiclient.http.MediaFileUpload.chunksize()=apiclient.http.MediaFileUpload-class.html#chunksize,Method apiclient.http.MediaInMemoryUpload.chunksize()=apiclient.http.MediaInMemoryUpload-class.html#chunksize,Method apiclient.http.MediaIoBaseUpload.chunksize()=apiclient.http.MediaIoBaseUpload-class.html#chunksize,Method apiclient.http.MediaUpload.chunksize()=apiclient.http.MediaUpload-class.html#chunksize"><a title="apiclient.http.MediaFileUpload.chunksize
apiclient.http.MediaInMemoryUpload.chunksize
-apiclient.http.MediaUpload.chunksize" class="py-name" href="#" onclick="return doclink('link-29', 'chunksize', 'link-22');">chunksize</a></tt> </tt>
-</div><a name="L241"></a><tt class="py-lineno"> 241</tt> <tt class="py-line"> </tt>
-<a name="MediaInMemoryUpload.chunksize"></a><div id="MediaInMemoryUpload.chunksize-def"><a name="L242"></a><tt class="py-lineno"> 242</tt> <a class="py-toggle" href="#" id="MediaInMemoryUpload.chunksize-toggle" onclick="return toggle('MediaInMemoryUpload.chunksize');">-</a><tt class="py-line"> <tt class="py-keyword">def</tt> <a class="py-def-name" href="apiclient.http.MediaInMemoryUpload-class.html#chunksize">chunksize</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-</div><div id="MediaInMemoryUpload.chunksize-collapsed" style="display:none;" pad="++++" indent="++++++"></div><div id="MediaInMemoryUpload.chunksize-expanded"><a name="L243"></a><tt class="py-lineno"> 243</tt> <tt class="py-line"> <tt class="py-docstring">"""Chunk size for resumable uploads.</tt> </tt>
-<a name="L244"></a><tt class="py-lineno"> 244</tt> <tt class="py-line"><tt class="py-docstring"></tt> </tt>
-<a name="L245"></a><tt class="py-lineno"> 245</tt> <tt class="py-line"><tt class="py-docstring"> Returns:</tt> </tt>
-<a name="L246"></a><tt class="py-lineno"> 246</tt> <tt class="py-line"><tt class="py-docstring"> Chunk size in bytes.</tt> </tt>
-<a name="L247"></a><tt class="py-lineno"> 247</tt> <tt class="py-line"><tt class="py-docstring"> """</tt> </tt>
-<a name="L248"></a><tt class="py-lineno"> 248</tt> <tt class="py-line"> <tt class="py-keyword">return</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">_chunksize</tt> </tt>
-</div><a name="L249"></a><tt class="py-lineno"> 249</tt> <tt class="py-line"> </tt>
-<a name="MediaInMemoryUpload.mimetype"></a><div id="MediaInMemoryUpload.mimetype-def"><a name="L250"></a><tt class="py-lineno"> 250</tt> <a class="py-toggle" href="#" id="MediaInMemoryUpload.mimetype-toggle" onclick="return toggle('MediaInMemoryUpload.mimetype');">-</a><tt class="py-line"> <tt class="py-keyword">def</tt> <a class="py-def-name" href="apiclient.http.MediaInMemoryUpload-class.html#mimetype">mimetype</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-</div><div id="MediaInMemoryUpload.mimetype-collapsed" style="display:none;" pad="++++" indent="++++++"></div><div id="MediaInMemoryUpload.mimetype-expanded"><a name="L251"></a><tt class="py-lineno"> 251</tt> <tt class="py-line"> <tt class="py-docstring">"""Mime type of the body.</tt> </tt>
-<a name="L252"></a><tt class="py-lineno"> 252</tt> <tt class="py-line"><tt class="py-docstring"></tt> </tt>
-<a name="L253"></a><tt class="py-lineno"> 253</tt> <tt class="py-line"><tt class="py-docstring"> Returns:</tt> </tt>
-<a name="L254"></a><tt class="py-lineno"> 254</tt> <tt class="py-line"><tt class="py-docstring"> Mime type.</tt> </tt>
-<a name="L255"></a><tt class="py-lineno"> 255</tt> <tt class="py-line"><tt class="py-docstring"> """</tt> </tt>
-<a name="L256"></a><tt class="py-lineno"> 256</tt> <tt class="py-line"> <tt class="py-keyword">return</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">_mimetype</tt> </tt>
-</div><a name="L257"></a><tt class="py-lineno"> 257</tt> <tt class="py-line"> </tt>
-<a name="MediaInMemoryUpload.size"></a><div id="MediaInMemoryUpload.size-def"><a name="L258"></a><tt class="py-lineno"> 258</tt> <a class="py-toggle" href="#" id="MediaInMemoryUpload.size-toggle" onclick="return toggle('MediaInMemoryUpload.size');">-</a><tt class="py-line"> <tt class="py-keyword">def</tt> <a class="py-def-name" href="apiclient.http.MediaInMemoryUpload-class.html#size">size</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-</div><div id="MediaInMemoryUpload.size-collapsed" style="display:none;" pad="++++" indent="++++++"></div><div id="MediaInMemoryUpload.size-expanded"><a name="L259"></a><tt class="py-lineno"> 259</tt> <tt class="py-line"> <tt class="py-docstring">"""Size of upload.</tt> </tt>
+apiclient.http.MediaIoBaseUpload.chunksize
+apiclient.http.MediaUpload.chunksize" class="py-name" href="#" onclick="return doclink('link-27', 'chunksize', 'link-27');">chunksize</a></tt> </tt>
+<a name="L220"></a><tt class="py-lineno"> 220</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">_resumable</tt> <tt class="py-op">=</tt> <tt id="link-28" class="py-name" targets="Method apiclient.http.MediaFileUpload.resumable()=apiclient.http.MediaFileUpload-class.html#resumable,Method apiclient.http.MediaInMemoryUpload.resumable()=apiclient.http.MediaInMemoryUpload-class.html#resumable,Method apiclient.http.MediaIoBaseUpload.resumable()=apiclient.http.MediaIoBaseUpload-class.html#resumable,Method apiclient.http.MediaUpload.resumable()=apiclient.http.MediaUpload-class.html#resumable"><a title="apiclient.http.MediaFileUpload.resumable
+apiclient.http.MediaInMemoryUpload.resumable
+apiclient.http.MediaIoBaseUpload.resumable
+apiclient.http.MediaUpload.resumable" class="py-name" href="#" onclick="return doclink('link-28', 'resumable', 'link-28');">resumable</a></tt> </tt>
+</div><a name="L221"></a><tt class="py-lineno"> 221</tt> <tt class="py-line"> </tt>
+<a name="MediaFileUpload.chunksize"></a><div id="MediaFileUpload.chunksize-def"><a name="L222"></a><tt class="py-lineno"> 222</tt> <a class="py-toggle" href="#" id="MediaFileUpload.chunksize-toggle" onclick="return toggle('MediaFileUpload.chunksize');">-</a><tt class="py-line"> <tt class="py-keyword">def</tt> <a class="py-def-name" href="apiclient.http.MediaFileUpload-class.html#chunksize">chunksize</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+</div><div id="MediaFileUpload.chunksize-collapsed" style="display:none;" pad="++++" indent="++++++"></div><div id="MediaFileUpload.chunksize-expanded"><a name="L223"></a><tt class="py-lineno"> 223</tt> <tt class="py-line"> <tt class="py-docstring">"""Chunk size for resumable uploads.</tt> </tt>
+<a name="L224"></a><tt class="py-lineno"> 224</tt> <tt class="py-line"><tt class="py-docstring"></tt> </tt>
+<a name="L225"></a><tt class="py-lineno"> 225</tt> <tt class="py-line"><tt class="py-docstring"> Returns:</tt> </tt>
+<a name="L226"></a><tt class="py-lineno"> 226</tt> <tt class="py-line"><tt class="py-docstring"> Chunk size in bytes.</tt> </tt>
+<a name="L227"></a><tt class="py-lineno"> 227</tt> <tt class="py-line"><tt class="py-docstring"> """</tt> </tt>
+<a name="L228"></a><tt class="py-lineno"> 228</tt> <tt class="py-line"> <tt class="py-keyword">return</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">_chunksize</tt> </tt>
+</div><a name="L229"></a><tt class="py-lineno"> 229</tt> <tt class="py-line"> </tt>
+<a name="MediaFileUpload.mimetype"></a><div id="MediaFileUpload.mimetype-def"><a name="L230"></a><tt class="py-lineno"> 230</tt> <a class="py-toggle" href="#" id="MediaFileUpload.mimetype-toggle" onclick="return toggle('MediaFileUpload.mimetype');">-</a><tt class="py-line"> <tt class="py-keyword">def</tt> <a class="py-def-name" href="apiclient.http.MediaFileUpload-class.html#mimetype">mimetype</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+</div><div id="MediaFileUpload.mimetype-collapsed" style="display:none;" pad="++++" indent="++++++"></div><div id="MediaFileUpload.mimetype-expanded"><a name="L231"></a><tt class="py-lineno"> 231</tt> <tt class="py-line"> <tt class="py-docstring">"""Mime type of the body.</tt> </tt>
+<a name="L232"></a><tt class="py-lineno"> 232</tt> <tt class="py-line"><tt class="py-docstring"></tt> </tt>
+<a name="L233"></a><tt class="py-lineno"> 233</tt> <tt class="py-line"><tt class="py-docstring"> Returns:</tt> </tt>
+<a name="L234"></a><tt class="py-lineno"> 234</tt> <tt class="py-line"><tt class="py-docstring"> Mime type.</tt> </tt>
+<a name="L235"></a><tt class="py-lineno"> 235</tt> <tt class="py-line"><tt class="py-docstring"> """</tt> </tt>
+<a name="L236"></a><tt class="py-lineno"> 236</tt> <tt class="py-line"> <tt class="py-keyword">return</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">_mimetype</tt> </tt>
+</div><a name="L237"></a><tt class="py-lineno"> 237</tt> <tt class="py-line"> </tt>
+<a name="MediaFileUpload.size"></a><div id="MediaFileUpload.size-def"><a name="L238"></a><tt class="py-lineno"> 238</tt> <a class="py-toggle" href="#" id="MediaFileUpload.size-toggle" onclick="return toggle('MediaFileUpload.size');">-</a><tt class="py-line"> <tt class="py-keyword">def</tt> <a class="py-def-name" href="apiclient.http.MediaFileUpload-class.html#size">size</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+</div><div id="MediaFileUpload.size-collapsed" style="display:none;" pad="++++" indent="++++++"></div><div id="MediaFileUpload.size-expanded"><a name="L239"></a><tt class="py-lineno"> 239</tt> <tt class="py-line"> <tt class="py-docstring">"""Size of upload.</tt> </tt>
+<a name="L240"></a><tt class="py-lineno"> 240</tt> <tt class="py-line"><tt class="py-docstring"></tt> </tt>
+<a name="L241"></a><tt class="py-lineno"> 241</tt> <tt class="py-line"><tt class="py-docstring"> Returns:</tt> </tt>
+<a name="L242"></a><tt class="py-lineno"> 242</tt> <tt class="py-line"><tt class="py-docstring"> Size of the body, or None of the size is unknown.</tt> </tt>
+<a name="L243"></a><tt class="py-lineno"> 243</tt> <tt class="py-line"><tt class="py-docstring"> """</tt> </tt>
+<a name="L244"></a><tt class="py-lineno"> 244</tt> <tt class="py-line"> <tt class="py-keyword">return</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">_size</tt> </tt>
+</div><a name="L245"></a><tt class="py-lineno"> 245</tt> <tt class="py-line"> </tt>
+<a name="MediaFileUpload.resumable"></a><div id="MediaFileUpload.resumable-def"><a name="L246"></a><tt class="py-lineno"> 246</tt> <a class="py-toggle" href="#" id="MediaFileUpload.resumable-toggle" onclick="return toggle('MediaFileUpload.resumable');">-</a><tt class="py-line"> <tt class="py-keyword">def</tt> <a class="py-def-name" href="apiclient.http.MediaFileUpload-class.html#resumable">resumable</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+</div><div id="MediaFileUpload.resumable-collapsed" style="display:none;" pad="++++" indent="++++++"></div><div id="MediaFileUpload.resumable-expanded"><a name="L247"></a><tt class="py-lineno"> 247</tt> <tt class="py-line"> <tt class="py-docstring">"""Whether this upload is resumable.</tt> </tt>
+<a name="L248"></a><tt class="py-lineno"> 248</tt> <tt class="py-line"><tt class="py-docstring"></tt> </tt>
+<a name="L249"></a><tt class="py-lineno"> 249</tt> <tt class="py-line"><tt class="py-docstring"> Returns:</tt> </tt>
+<a name="L250"></a><tt class="py-lineno"> 250</tt> <tt class="py-line"><tt class="py-docstring"> True if resumable upload or False.</tt> </tt>
+<a name="L251"></a><tt class="py-lineno"> 251</tt> <tt class="py-line"><tt class="py-docstring"> """</tt> </tt>
+<a name="L252"></a><tt class="py-lineno"> 252</tt> <tt class="py-line"> <tt class="py-keyword">return</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">_resumable</tt> </tt>
+</div><a name="L253"></a><tt class="py-lineno"> 253</tt> <tt class="py-line"> </tt>
+<a name="MediaFileUpload.getbytes"></a><div id="MediaFileUpload.getbytes-def"><a name="L254"></a><tt class="py-lineno"> 254</tt> <a class="py-toggle" href="#" id="MediaFileUpload.getbytes-toggle" onclick="return toggle('MediaFileUpload.getbytes');">-</a><tt class="py-line"> <tt class="py-keyword">def</tt> <a class="py-def-name" href="apiclient.http.MediaFileUpload-class.html#getbytes">getbytes</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">,</tt> <tt class="py-param">begin</tt><tt class="py-op">,</tt> <tt class="py-param">length</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+</div><div id="MediaFileUpload.getbytes-collapsed" style="display:none;" pad="++++" indent="++++++"></div><div id="MediaFileUpload.getbytes-expanded"><a name="L255"></a><tt class="py-lineno"> 255</tt> <tt class="py-line"> <tt class="py-docstring">"""Get bytes from the media.</tt> </tt>
+<a name="L256"></a><tt class="py-lineno"> 256</tt> <tt class="py-line"><tt class="py-docstring"></tt> </tt>
+<a name="L257"></a><tt class="py-lineno"> 257</tt> <tt class="py-line"><tt class="py-docstring"> Args:</tt> </tt>
+<a name="L258"></a><tt class="py-lineno"> 258</tt> <tt class="py-line"><tt class="py-docstring"> begin: int, offset from beginning of file.</tt> </tt>
+<a name="L259"></a><tt class="py-lineno"> 259</tt> <tt class="py-line"><tt class="py-docstring"> length: int, number of bytes to read, starting at begin.</tt> </tt>
<a name="L260"></a><tt class="py-lineno"> 260</tt> <tt class="py-line"><tt class="py-docstring"></tt> </tt>
<a name="L261"></a><tt class="py-lineno"> 261</tt> <tt class="py-line"><tt class="py-docstring"> Returns:</tt> </tt>
-<a name="L262"></a><tt class="py-lineno"> 262</tt> <tt class="py-line"><tt class="py-docstring"> Size of the body.</tt> </tt>
-<a name="L263"></a><tt class="py-lineno"> 263</tt> <tt class="py-line"><tt class="py-docstring"> """</tt> </tt>
-<a name="L264"></a><tt class="py-lineno"> 264</tt> <tt class="py-line"> <tt class="py-keyword">return</tt> <tt class="py-name">len</tt><tt class="py-op">(</tt><tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">_body</tt><tt class="py-op">)</tt> </tt>
-</div><a name="L265"></a><tt class="py-lineno"> 265</tt> <tt class="py-line"> </tt>
-<a name="MediaInMemoryUpload.resumable"></a><div id="MediaInMemoryUpload.resumable-def"><a name="L266"></a><tt class="py-lineno"> 266</tt> <a class="py-toggle" href="#" id="MediaInMemoryUpload.resumable-toggle" onclick="return toggle('MediaInMemoryUpload.resumable');">-</a><tt class="py-line"> <tt class="py-keyword">def</tt> <a class="py-def-name" href="apiclient.http.MediaInMemoryUpload-class.html#resumable">resumable</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-</div><div id="MediaInMemoryUpload.resumable-collapsed" style="display:none;" pad="++++" indent="++++++"></div><div id="MediaInMemoryUpload.resumable-expanded"><a name="L267"></a><tt class="py-lineno"> 267</tt> <tt class="py-line"> <tt class="py-docstring">"""Whether this upload is resumable.</tt> </tt>
-<a name="L268"></a><tt class="py-lineno"> 268</tt> <tt class="py-line"><tt class="py-docstring"></tt> </tt>
-<a name="L269"></a><tt class="py-lineno"> 269</tt> <tt class="py-line"><tt class="py-docstring"> Returns:</tt> </tt>
-<a name="L270"></a><tt class="py-lineno"> 270</tt> <tt class="py-line"><tt class="py-docstring"> True if resumable upload or False.</tt> </tt>
-<a name="L271"></a><tt class="py-lineno"> 271</tt> <tt class="py-line"><tt class="py-docstring"> """</tt> </tt>
-<a name="L272"></a><tt class="py-lineno"> 272</tt> <tt class="py-line"> <tt class="py-keyword">return</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">_resumable</tt> </tt>
-</div><a name="L273"></a><tt class="py-lineno"> 273</tt> <tt class="py-line"> </tt>
-<a name="MediaInMemoryUpload.getbytes"></a><div id="MediaInMemoryUpload.getbytes-def"><a name="L274"></a><tt class="py-lineno"> 274</tt> <a class="py-toggle" href="#" id="MediaInMemoryUpload.getbytes-toggle" onclick="return toggle('MediaInMemoryUpload.getbytes');">-</a><tt class="py-line"> <tt class="py-keyword">def</tt> <a class="py-def-name" href="apiclient.http.MediaInMemoryUpload-class.html#getbytes">getbytes</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">,</tt> <tt class="py-param">begin</tt><tt class="py-op">,</tt> <tt class="py-param">length</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-</div><div id="MediaInMemoryUpload.getbytes-collapsed" style="display:none;" pad="++++" indent="++++++"></div><div id="MediaInMemoryUpload.getbytes-expanded"><a name="L275"></a><tt class="py-lineno"> 275</tt> <tt class="py-line"> <tt class="py-docstring">"""Get bytes from the media.</tt> </tt>
-<a name="L276"></a><tt class="py-lineno"> 276</tt> <tt class="py-line"><tt class="py-docstring"></tt> </tt>
-<a name="L277"></a><tt class="py-lineno"> 277</tt> <tt class="py-line"><tt class="py-docstring"> Args:</tt> </tt>
-<a name="L278"></a><tt class="py-lineno"> 278</tt> <tt class="py-line"><tt class="py-docstring"> begin: int, offset from beginning of file.</tt> </tt>
-<a name="L279"></a><tt class="py-lineno"> 279</tt> <tt class="py-line"><tt class="py-docstring"> length: int, number of bytes to read, starting at begin.</tt> </tt>
-<a name="L280"></a><tt class="py-lineno"> 280</tt> <tt class="py-line"><tt class="py-docstring"></tt> </tt>
-<a name="L281"></a><tt class="py-lineno"> 281</tt> <tt class="py-line"><tt class="py-docstring"> Returns:</tt> </tt>
-<a name="L282"></a><tt class="py-lineno"> 282</tt> <tt class="py-line"><tt class="py-docstring"> A string of bytes read. May be shorter than length if EOF was reached</tt> </tt>
-<a name="L283"></a><tt class="py-lineno"> 283</tt> <tt class="py-line"><tt class="py-docstring"> first.</tt> </tt>
-<a name="L284"></a><tt class="py-lineno"> 284</tt> <tt class="py-line"><tt class="py-docstring"> """</tt> </tt>
-<a name="L285"></a><tt class="py-lineno"> 285</tt> <tt class="py-line"> <tt class="py-keyword">return</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">_body</tt><tt class="py-op">[</tt><tt class="py-name">begin</tt><tt class="py-op">:</tt><tt class="py-name">begin</tt> <tt class="py-op">+</tt> <tt class="py-name">length</tt><tt class="py-op">]</tt> </tt>
-</div><a name="L286"></a><tt class="py-lineno"> 286</tt> <tt class="py-line"> </tt>
-<a name="MediaInMemoryUpload.to_json"></a><div id="MediaInMemoryUpload.to_json-def"><a name="L287"></a><tt class="py-lineno"> 287</tt> <a class="py-toggle" href="#" id="MediaInMemoryUpload.to_json-toggle" onclick="return toggle('MediaInMemoryUpload.to_json');">-</a><tt class="py-line"> <tt class="py-keyword">def</tt> <a class="py-def-name" href="apiclient.http.MediaInMemoryUpload-class.html#to_json">to_json</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-</div><div id="MediaInMemoryUpload.to_json-collapsed" style="display:none;" pad="++++" indent="++++++"></div><div id="MediaInMemoryUpload.to_json-expanded"><a name="L288"></a><tt class="py-lineno"> 288</tt> <tt class="py-line"> <tt class="py-docstring">"""Create a JSON representation of a MediaInMemoryUpload.</tt> </tt>
-<a name="L289"></a><tt class="py-lineno"> 289</tt> <tt class="py-line"><tt class="py-docstring"></tt> </tt>
-<a name="L290"></a><tt class="py-lineno"> 290</tt> <tt class="py-line"><tt class="py-docstring"> Returns:</tt> </tt>
-<a name="L291"></a><tt class="py-lineno"> 291</tt> <tt class="py-line"><tt class="py-docstring"> string, a JSON representation of this instance, suitable to pass to</tt> </tt>
-<a name="L292"></a><tt class="py-lineno"> 292</tt> <tt class="py-line"><tt class="py-docstring"> from_json().</tt> </tt>
-<a name="L293"></a><tt class="py-lineno"> 293</tt> <tt class="py-line"><tt class="py-docstring"> """</tt> </tt>
-<a name="L294"></a><tt class="py-lineno"> 294</tt> <tt class="py-line"> <tt class="py-name">t</tt> <tt class="py-op">=</tt> <tt class="py-name">type</tt><tt class="py-op">(</tt><tt class="py-name">self</tt><tt class="py-op">)</tt> </tt>
-<a name="L295"></a><tt class="py-lineno"> 295</tt> <tt class="py-line"> <tt class="py-name">d</tt> <tt class="py-op">=</tt> <tt class="py-name">copy</tt><tt class="py-op">.</tt><tt class="py-name">copy</tt><tt class="py-op">(</tt><tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">__dict__</tt><tt class="py-op">)</tt> </tt>
-<a name="L296"></a><tt class="py-lineno"> 296</tt> <tt class="py-line"> <tt class="py-keyword">del</tt> <tt class="py-name">d</tt><tt class="py-op">[</tt><tt class="py-string">'_body'</tt><tt class="py-op">]</tt> </tt>
-<a name="L297"></a><tt class="py-lineno"> 297</tt> <tt class="py-line"> <tt class="py-name">d</tt><tt class="py-op">[</tt><tt class="py-string">'_class'</tt><tt class="py-op">]</tt> <tt class="py-op">=</tt> <tt class="py-name">t</tt><tt class="py-op">.</tt><tt class="py-name">__name__</tt> </tt>
-<a name="L298"></a><tt class="py-lineno"> 298</tt> <tt class="py-line"> <tt class="py-name">d</tt><tt class="py-op">[</tt><tt class="py-string">'_module'</tt><tt class="py-op">]</tt> <tt class="py-op">=</tt> <tt class="py-name">t</tt><tt class="py-op">.</tt><tt class="py-name">__module__</tt> </tt>
-<a name="L299"></a><tt class="py-lineno"> 299</tt> <tt class="py-line"> <tt class="py-name">d</tt><tt class="py-op">[</tt><tt class="py-string">'_b64body'</tt><tt class="py-op">]</tt> <tt class="py-op">=</tt> <tt class="py-name">base64</tt><tt class="py-op">.</tt><tt class="py-name">b64encode</tt><tt class="py-op">(</tt><tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">_body</tt><tt class="py-op">)</tt> </tt>
-<a name="L300"></a><tt class="py-lineno"> 300</tt> <tt class="py-line"> <tt class="py-keyword">return</tt> <tt class="py-name">simplejson</tt><tt class="py-op">.</tt><tt class="py-name">dumps</tt><tt class="py-op">(</tt><tt class="py-name">d</tt><tt class="py-op">)</tt> </tt>
-</div><a name="L301"></a><tt class="py-lineno"> 301</tt> <tt class="py-line"> </tt>
-<a name="L302"></a><tt class="py-lineno"> 302</tt> <tt class="py-line"> <tt class="py-decorator">@</tt><tt class="py-decorator">staticmethod</tt> </tt>
-<a name="MediaInMemoryUpload.from_json"></a><div id="MediaInMemoryUpload.from_json-def"><a name="L303"></a><tt class="py-lineno"> 303</tt> <a class="py-toggle" href="#" id="MediaInMemoryUpload.from_json-toggle" onclick="return toggle('MediaInMemoryUpload.from_json');">-</a><tt class="py-line"> <tt class="py-keyword">def</tt> <a class="py-def-name" href="apiclient.http.MediaInMemoryUpload-class.html#from_json">from_json</a><tt class="py-op">(</tt><tt class="py-param">s</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-</div><div id="MediaInMemoryUpload.from_json-collapsed" style="display:none;" pad="++++" indent="++++++"></div><div id="MediaInMemoryUpload.from_json-expanded"><a name="L304"></a><tt class="py-lineno"> 304</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-30" class="py-name"><a title="oauth2client.clientsecrets.loads" class="py-name" href="#" onclick="return doclink('link-30', 'loads', 'link-16');">loads</a></tt><tt class="py-op">(</tt><tt class="py-name">s</tt><tt class="py-op">)</tt> </tt>
-<a name="L305"></a><tt class="py-lineno"> 305</tt> <tt class="py-line"> <tt class="py-keyword">return</tt> <tt id="link-31" class="py-name" targets="Class apiclient.http.MediaInMemoryUpload=apiclient.http.MediaInMemoryUpload-class.html"><a title="apiclient.http.MediaInMemoryUpload" class="py-name" href="#" onclick="return doclink('link-31', 'MediaInMemoryUpload', 'link-31');">MediaInMemoryUpload</a></tt><tt class="py-op">(</tt><tt class="py-name">base64</tt><tt class="py-op">.</tt><tt class="py-name">b64decode</tt><tt class="py-op">(</tt><tt class="py-name">d</tt><tt class="py-op">[</tt><tt class="py-string">'_b64body'</tt><tt class="py-op">]</tt><tt class="py-op">)</tt><tt class="py-op">,</tt> </tt>
-<a name="L306"></a><tt class="py-lineno"> 306</tt> <tt class="py-line"> <tt class="py-name">d</tt><tt class="py-op">[</tt><tt class="py-string">'_mimetype'</tt><tt class="py-op">]</tt><tt class="py-op">,</tt> <tt class="py-name">d</tt><tt class="py-op">[</tt><tt class="py-string">'_chunksize'</tt><tt class="py-op">]</tt><tt class="py-op">,</tt> </tt>
-<a name="L307"></a><tt class="py-lineno"> 307</tt> <tt class="py-line"> <tt class="py-name">d</tt><tt class="py-op">[</tt><tt class="py-string">'_resumable'</tt><tt class="py-op">]</tt><tt class="py-op">)</tt> </tt>
-</div></div><a name="L308"></a><tt class="py-lineno"> 308</tt> <tt class="py-line"> </tt>
-<a name="HttpRequest"></a><div id="HttpRequest-def"><a name="L309"></a><tt class="py-lineno"> 309</tt> <tt class="py-line"> </tt>
-<a name="L310"></a><tt class="py-lineno"> 310</tt> <a class="py-toggle" href="#" id="HttpRequest-toggle" onclick="return toggle('HttpRequest');">-</a><tt class="py-line"><tt class="py-keyword">class</tt> <a class="py-def-name" href="apiclient.http.HttpRequest-class.html">HttpRequest</a><tt class="py-op">(</tt><tt class="py-base-class">object</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-</div><div id="HttpRequest-collapsed" style="display:none;" pad="++++" indent="++++"></div><div id="HttpRequest-expanded"><a name="L311"></a><tt class="py-lineno"> 311</tt> <tt class="py-line"> <tt class="py-docstring">"""Encapsulates a single HTTP request."""</tt> </tt>
-<a name="L312"></a><tt class="py-lineno"> 312</tt> <tt class="py-line"> </tt>
-<a name="HttpRequest.__init__"></a><div id="HttpRequest.__init__-def"><a name="L313"></a><tt class="py-lineno"> 313</tt> <a class="py-toggle" href="#" id="HttpRequest.__init__-toggle" onclick="return toggle('HttpRequest.__init__');">-</a><tt class="py-line"> <tt class="py-keyword">def</tt> <a class="py-def-name" href="apiclient.http.HttpRequest-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">http</tt><tt class="py-op">,</tt> <tt class="py-param">postproc</tt><tt class="py-op">,</tt> <tt class="py-param">uri</tt><tt class="py-op">,</tt> </tt>
-<a name="L314"></a><tt class="py-lineno"> 314</tt> <tt class="py-line"> <tt class="py-param">method</tt><tt class="py-op">=</tt><tt class="py-string">'GET'</tt><tt class="py-op">,</tt> </tt>
-<a name="L315"></a><tt class="py-lineno"> 315</tt> <tt class="py-line"> <tt class="py-param">body</tt><tt class="py-op">=</tt><tt class="py-name">None</tt><tt class="py-op">,</tt> </tt>
-<a name="L316"></a><tt class="py-lineno"> 316</tt> <tt class="py-line"> <tt class="py-param">headers</tt><tt class="py-op">=</tt><tt class="py-name">None</tt><tt class="py-op">,</tt> </tt>
-<a name="L317"></a><tt class="py-lineno"> 317</tt> <tt class="py-line"> <tt class="py-param">methodId</tt><tt class="py-op">=</tt><tt class="py-name">None</tt><tt class="py-op">,</tt> </tt>
-<a name="L318"></a><tt class="py-lineno"> 318</tt> <tt class="py-line"> <tt class="py-param">resumable</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="HttpRequest.__init__-collapsed" style="display:none;" pad="++++" indent="++++++"></div><div id="HttpRequest.__init__-expanded"><a name="L319"></a><tt class="py-lineno"> 319</tt> <tt class="py-line"> <tt class="py-docstring">"""Constructor for an HttpRequest.</tt> </tt>
-<a name="L320"></a><tt class="py-lineno"> 320</tt> <tt class="py-line"><tt class="py-docstring"></tt> </tt>
-<a name="L321"></a><tt class="py-lineno"> 321</tt> <tt class="py-line"><tt class="py-docstring"> Args:</tt> </tt>
-<a name="L322"></a><tt class="py-lineno"> 322</tt> <tt class="py-line"><tt class="py-docstring"> http: httplib2.Http, the transport object to use to make a request</tt> </tt>
-<a name="L323"></a><tt class="py-lineno"> 323</tt> <tt class="py-line"><tt class="py-docstring"> postproc: callable, called on the HTTP response and content to transform</tt> </tt>
-<a name="L324"></a><tt class="py-lineno"> 324</tt> <tt class="py-line"><tt class="py-docstring"> it into a data object before returning, or raising an exception</tt> </tt>
-<a name="L325"></a><tt class="py-lineno"> 325</tt> <tt class="py-line"><tt class="py-docstring"> on an error.</tt> </tt>
-<a name="L326"></a><tt class="py-lineno"> 326</tt> <tt class="py-line"><tt class="py-docstring"> uri: string, the absolute URI to send the request to</tt> </tt>
-<a name="L327"></a><tt class="py-lineno"> 327</tt> <tt class="py-line"><tt class="py-docstring"> method: string, the HTTP method to use</tt> </tt>
-<a name="L328"></a><tt class="py-lineno"> 328</tt> <tt class="py-line"><tt class="py-docstring"> body: string, the request body of the HTTP request,</tt> </tt>
-<a name="L329"></a><tt class="py-lineno"> 329</tt> <tt class="py-line"><tt class="py-docstring"> headers: dict, the HTTP request headers</tt> </tt>
-<a name="L330"></a><tt class="py-lineno"> 330</tt> <tt class="py-line"><tt class="py-docstring"> methodId: string, a unique identifier for the API method being called.</tt> </tt>
-<a name="L331"></a><tt class="py-lineno"> 331</tt> <tt class="py-line"><tt class="py-docstring"> resumable: MediaUpload, None if this is not a resumbale request.</tt> </tt>
+<a name="L262"></a><tt class="py-lineno"> 262</tt> <tt class="py-line"><tt class="py-docstring"> A string of bytes read. May be shorted than length if EOF was reached</tt> </tt>
+<a name="L263"></a><tt class="py-lineno"> 263</tt> <tt class="py-line"><tt class="py-docstring"> first.</tt> </tt>
+<a name="L264"></a><tt class="py-lineno"> 264</tt> <tt class="py-line"><tt class="py-docstring"> """</tt> </tt>
+<a name="L265"></a><tt class="py-lineno"> 265</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">_fd</tt> <tt class="py-keyword">is</tt> <tt class="py-name">None</tt><tt class="py-op">:</tt> </tt>
+<a name="L266"></a><tt class="py-lineno"> 266</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">_fd</tt> <tt class="py-op">=</tt> <tt class="py-name">open</tt><tt class="py-op">(</tt><tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">_filename</tt><tt class="py-op">,</tt> <tt class="py-string">'rb'</tt><tt class="py-op">)</tt> </tt>
+<a name="L267"></a><tt class="py-lineno"> 267</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">_fd</tt><tt class="py-op">.</tt><tt class="py-name">seek</tt><tt class="py-op">(</tt><tt class="py-name">begin</tt><tt class="py-op">)</tt> </tt>
+<a name="L268"></a><tt class="py-lineno"> 268</tt> <tt class="py-line"> <tt class="py-keyword">return</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">_fd</tt><tt class="py-op">.</tt><tt class="py-name">read</tt><tt class="py-op">(</tt><tt class="py-name">length</tt><tt class="py-op">)</tt> </tt>
+</div><a name="L269"></a><tt class="py-lineno"> 269</tt> <tt class="py-line"> </tt>
+<a name="MediaFileUpload.to_json"></a><div id="MediaFileUpload.to_json-def"><a name="L270"></a><tt class="py-lineno"> 270</tt> <a class="py-toggle" href="#" id="MediaFileUpload.to_json-toggle" onclick="return toggle('MediaFileUpload.to_json');">-</a><tt class="py-line"> <tt class="py-keyword">def</tt> <a class="py-def-name" href="apiclient.http.MediaFileUpload-class.html#to_json">to_json</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+</div><div id="MediaFileUpload.to_json-collapsed" style="display:none;" pad="++++" indent="++++++"></div><div id="MediaFileUpload.to_json-expanded"><a name="L271"></a><tt class="py-lineno"> 271</tt> <tt class="py-line"> <tt class="py-docstring">"""Creating a JSON representation of an instance of Credentials.</tt> </tt>
+<a name="L272"></a><tt class="py-lineno"> 272</tt> <tt class="py-line"><tt class="py-docstring"></tt> </tt>
+<a name="L273"></a><tt class="py-lineno"> 273</tt> <tt class="py-line"><tt class="py-docstring"> Returns:</tt> </tt>
+<a name="L274"></a><tt class="py-lineno"> 274</tt> <tt class="py-line"><tt class="py-docstring"> string, a JSON representation of this instance, suitable to pass to</tt> </tt>
+<a name="L275"></a><tt class="py-lineno"> 275</tt> <tt class="py-line"><tt class="py-docstring"> from_json().</tt> </tt>
+<a name="L276"></a><tt class="py-lineno"> 276</tt> <tt class="py-line"><tt class="py-docstring"> """</tt> </tt>
+<a name="L277"></a><tt class="py-lineno"> 277</tt> <tt class="py-line"> <tt class="py-keyword">return</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-29" class="py-name"><a title="apiclient.http.MediaUpload._to_json
+oauth2client.client.Credentials._to_json" class="py-name" href="#" onclick="return doclink('link-29', '_to_json', 'link-16');">_to_json</a></tt><tt class="py-op">(</tt><tt class="py-op">[</tt><tt class="py-string">'_fd'</tt><tt class="py-op">]</tt><tt class="py-op">)</tt> </tt>
+</div><a name="L278"></a><tt class="py-lineno"> 278</tt> <tt class="py-line"> </tt>
+<a name="L279"></a><tt class="py-lineno"> 279</tt> <tt class="py-line"> <tt class="py-decorator">@</tt><tt class="py-decorator">staticmethod</tt> </tt>
+<a name="MediaFileUpload.from_json"></a><div id="MediaFileUpload.from_json-def"><a name="L280"></a><tt class="py-lineno"> 280</tt> <a class="py-toggle" href="#" id="MediaFileUpload.from_json-toggle" onclick="return toggle('MediaFileUpload.from_json');">-</a><tt class="py-line"> <tt class="py-keyword">def</tt> <a class="py-def-name" href="apiclient.http.MediaFileUpload-class.html#from_json">from_json</a><tt class="py-op">(</tt><tt class="py-param">s</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+</div><div id="MediaFileUpload.from_json-collapsed" style="display:none;" pad="++++" indent="++++++"></div><div id="MediaFileUpload.from_json-expanded"><a name="L281"></a><tt class="py-lineno"> 281</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-30" class="py-name"><a title="oauth2client.clientsecrets.loads" class="py-name" href="#" onclick="return doclink('link-30', 'loads', 'link-17');">loads</a></tt><tt class="py-op">(</tt><tt class="py-name">s</tt><tt class="py-op">)</tt> </tt>
+<a name="L282"></a><tt class="py-lineno"> 282</tt> <tt class="py-line"> <tt class="py-keyword">return</tt> <tt id="link-31" class="py-name" targets="Class apiclient.http.MediaFileUpload=apiclient.http.MediaFileUpload-class.html"><a title="apiclient.http.MediaFileUpload" class="py-name" href="#" onclick="return doclink('link-31', 'MediaFileUpload', 'link-31');">MediaFileUpload</a></tt><tt class="py-op">(</tt> </tt>
+<a name="L283"></a><tt class="py-lineno"> 283</tt> <tt class="py-line"> <tt class="py-name">d</tt><tt class="py-op">[</tt><tt class="py-string">'_filename'</tt><tt class="py-op">]</tt><tt class="py-op">,</tt> <tt class="py-name">d</tt><tt class="py-op">[</tt><tt class="py-string">'_mimetype'</tt><tt class="py-op">]</tt><tt class="py-op">,</tt> <tt class="py-name">d</tt><tt class="py-op">[</tt><tt class="py-string">'_chunksize'</tt><tt class="py-op">]</tt><tt class="py-op">,</tt> <tt class="py-name">d</tt><tt class="py-op">[</tt><tt class="py-string">'_resumable'</tt><tt class="py-op">]</tt><tt class="py-op">)</tt> </tt>
+</div></div><a name="L284"></a><tt class="py-lineno"> 284</tt> <tt class="py-line"> </tt>
+<a name="MediaIoBaseUpload"></a><div id="MediaIoBaseUpload-def"><a name="L285"></a><tt class="py-lineno"> 285</tt> <tt class="py-line"> </tt>
+<a name="L286"></a><tt class="py-lineno"> 286</tt> <a class="py-toggle" href="#" id="MediaIoBaseUpload-toggle" onclick="return toggle('MediaIoBaseUpload');">-</a><tt class="py-line"><tt class="py-keyword">class</tt> <a class="py-def-name" href="apiclient.http.MediaIoBaseUpload-class.html">MediaIoBaseUpload</a><tt class="py-op">(</tt><tt class="py-base-class">MediaUpload</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+</div><div id="MediaIoBaseUpload-collapsed" style="display:none;" pad="++++" indent="++++"></div><div id="MediaIoBaseUpload-expanded"><a name="L287"></a><tt class="py-lineno"> 287</tt> <tt class="py-line"> <tt class="py-docstring">"""A MediaUpload for a io.Base objects.</tt> </tt>
+<a name="L288"></a><tt class="py-lineno"> 288</tt> <tt class="py-line"><tt class="py-docstring"></tt> </tt>
+<a name="L289"></a><tt class="py-lineno"> 289</tt> <tt class="py-line"><tt class="py-docstring"> Note that the Python file object is compatible with io.Base and can be used</tt> </tt>
+<a name="L290"></a><tt class="py-lineno"> 290</tt> <tt class="py-line"><tt class="py-docstring"> with this class also.</tt> </tt>
+<a name="L291"></a><tt class="py-lineno"> 291</tt> <tt class="py-line"><tt class="py-docstring"></tt> </tt>
+<a name="L292"></a><tt class="py-lineno"> 292</tt> <tt class="py-line"><tt class="py-docstring"></tt> </tt>
+<a name="L293"></a><tt class="py-lineno"> 293</tt> <tt class="py-line"><tt class="py-docstring"> fh = io.BytesIO('...Some data to upload...')</tt> </tt>
+<a name="L294"></a><tt class="py-lineno"> 294</tt> <tt class="py-line"><tt class="py-docstring"> media = MediaIoBaseUpload(fh, mimetype='image/png',</tt> </tt>
+<a name="L295"></a><tt class="py-lineno"> 295</tt> <tt class="py-line"><tt class="py-docstring"> chunksize=1024*1024, resumable=True)</tt> </tt>
+<a name="L296"></a><tt class="py-lineno"> 296</tt> <tt class="py-line"><tt class="py-docstring"> service.objects().insert(</tt> </tt>
+<a name="L297"></a><tt class="py-lineno"> 297</tt> <tt class="py-line"><tt class="py-docstring"> bucket='a_bucket_id',</tt> </tt>
+<a name="L298"></a><tt class="py-lineno"> 298</tt> <tt class="py-line"><tt class="py-docstring"> name='smiley.png',</tt> </tt>
+<a name="L299"></a><tt class="py-lineno"> 299</tt> <tt class="py-line"><tt class="py-docstring"> media_body=media).execute()</tt> </tt>
+<a name="L300"></a><tt class="py-lineno"> 300</tt> <tt class="py-line"><tt class="py-docstring"> """</tt> </tt>
+<a name="L301"></a><tt class="py-lineno"> 301</tt> <tt class="py-line"> </tt>
+<a name="MediaIoBaseUpload.__init__"></a><div id="MediaIoBaseUpload.__init__-def"><a name="L302"></a><tt class="py-lineno"> 302</tt> <a class="py-toggle" href="#" id="MediaIoBaseUpload.__init__-toggle" onclick="return toggle('MediaIoBaseUpload.__init__');">-</a><tt class="py-line"> <tt class="py-keyword">def</tt> <a class="py-def-name" href="apiclient.http.MediaIoBaseUpload-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">fh</tt><tt class="py-op">,</tt> <tt class="py-param">mimetype</tt><tt class="py-op">,</tt> <tt class="py-param">chunksize</tt><tt class="py-op">=</tt><tt id="link-32" class="py-name"><a title="apiclient.http.DEFAULT_CHUNK_SIZE" class="py-name" href="#" onclick="return doclink('link-32', 'DEFAULT_CHUNK_SIZE', 'link-15');">DEFAULT_CHUNK_SIZE</a></tt><tt class="py-op">,</tt> </tt>
+<a name="L303"></a><tt class="py-lineno"> 303</tt> <tt class="py-line"> <tt class="py-param">resumable</tt><tt class="py-op">=</tt><tt class="py-name">False</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+</div><div id="MediaIoBaseUpload.__init__-collapsed" style="display:none;" pad="++++" indent="++++++"></div><div id="MediaIoBaseUpload.__init__-expanded"><a name="L304"></a><tt class="py-lineno"> 304</tt> <tt class="py-line"> <tt class="py-docstring">"""Constructor.</tt> </tt>
+<a name="L305"></a><tt class="py-lineno"> 305</tt> <tt class="py-line"><tt class="py-docstring"></tt> </tt>
+<a name="L306"></a><tt class="py-lineno"> 306</tt> <tt class="py-line"><tt class="py-docstring"> Args:</tt> </tt>
+<a name="L307"></a><tt class="py-lineno"> 307</tt> <tt class="py-line"><tt class="py-docstring"> fh: io.Base or file object, The source of the bytes to upload.</tt> </tt>
+<a name="L308"></a><tt class="py-lineno"> 308</tt> <tt class="py-line"><tt class="py-docstring"> mimetype: string, Mime-type of the file. If None then a mime-type will be</tt> </tt>
+<a name="L309"></a><tt class="py-lineno"> 309</tt> <tt class="py-line"><tt class="py-docstring"> guessed from the file extension.</tt> </tt>
+<a name="L310"></a><tt class="py-lineno"> 310</tt> <tt class="py-line"><tt class="py-docstring"> chunksize: int, File will be uploaded in chunks of this many bytes. Only</tt> </tt>
+<a name="L311"></a><tt class="py-lineno"> 311</tt> <tt class="py-line"><tt class="py-docstring"> used if resumable=True.</tt> </tt>
+<a name="L312"></a><tt class="py-lineno"> 312</tt> <tt class="py-line"><tt class="py-docstring"> resumable: bool, True if this is a resumable upload. False means upload</tt> </tt>
+<a name="L313"></a><tt class="py-lineno"> 313</tt> <tt class="py-line"><tt class="py-docstring"> in a single request.</tt> </tt>
+<a name="L314"></a><tt class="py-lineno"> 314</tt> <tt class="py-line"><tt class="py-docstring"> """</tt> </tt>
+<a name="L315"></a><tt class="py-lineno"> 315</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">_fh</tt> <tt class="py-op">=</tt> <tt class="py-name">fh</tt> </tt>
+<a name="L316"></a><tt class="py-lineno"> 316</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">_mimetype</tt> <tt class="py-op">=</tt> <tt id="link-33" class="py-name"><a title="apiclient.http.MediaFileUpload.mimetype
+apiclient.http.MediaInMemoryUpload.mimetype
+apiclient.http.MediaIoBaseUpload.mimetype
+apiclient.http.MediaUpload.mimetype" class="py-name" href="#" onclick="return doclink('link-33', 'mimetype', 'link-23');">mimetype</a></tt> </tt>
+<a name="L317"></a><tt class="py-lineno"> 317</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">_chunksize</tt> <tt class="py-op">=</tt> <tt id="link-34" class="py-name"><a title="apiclient.http.MediaFileUpload.chunksize
+apiclient.http.MediaInMemoryUpload.chunksize
+apiclient.http.MediaIoBaseUpload.chunksize
+apiclient.http.MediaUpload.chunksize" class="py-name" href="#" onclick="return doclink('link-34', 'chunksize', 'link-27');">chunksize</a></tt> </tt>
+<a name="L318"></a><tt class="py-lineno"> 318</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">_resumable</tt> <tt class="py-op">=</tt> <tt id="link-35" class="py-name"><a title="apiclient.http.MediaFileUpload.resumable
+apiclient.http.MediaInMemoryUpload.resumable
+apiclient.http.MediaIoBaseUpload.resumable
+apiclient.http.MediaUpload.resumable" class="py-name" href="#" onclick="return doclink('link-35', 'resumable', 'link-28');">resumable</a></tt> </tt>
+<a name="L319"></a><tt class="py-lineno"> 319</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">_size</tt> <tt class="py-op">=</tt> <tt class="py-name">None</tt> </tt>
+<a name="L320"></a><tt class="py-lineno"> 320</tt> <tt class="py-line"> <tt class="py-keyword">try</tt><tt class="py-op">:</tt> </tt>
+<a name="L321"></a><tt class="py-lineno"> 321</tt> <tt class="py-line"> <tt class="py-keyword">if</tt> <tt class="py-name">hasattr</tt><tt class="py-op">(</tt><tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">_fh</tt><tt class="py-op">,</tt> <tt class="py-string">'fileno'</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+<a name="L322"></a><tt class="py-lineno"> 322</tt> <tt class="py-line"> <tt class="py-name">fileno</tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">_fh</tt><tt class="py-op">.</tt><tt class="py-name">fileno</tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
+<a name="L323"></a><tt class="py-lineno"> 323</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">_size</tt> <tt class="py-op">=</tt> <tt class="py-name">os</tt><tt class="py-op">.</tt><tt class="py-name">fstat</tt><tt class="py-op">(</tt><tt class="py-name">fileno</tt><tt class="py-op">)</tt><tt class="py-op">.</tt><tt class="py-name">st_size</tt> </tt>
+<a name="L324"></a><tt class="py-lineno"> 324</tt> <tt class="py-line"> <tt class="py-keyword">except</tt> <tt class="py-name">IOError</tt><tt class="py-op">:</tt> </tt>
+<a name="L325"></a><tt class="py-lineno"> 325</tt> <tt class="py-line"> <tt class="py-keyword">pass</tt> </tt>
+</div><a name="L326"></a><tt class="py-lineno"> 326</tt> <tt class="py-line"> </tt>
+<a name="MediaIoBaseUpload.chunksize"></a><div id="MediaIoBaseUpload.chunksize-def"><a name="L327"></a><tt class="py-lineno"> 327</tt> <a class="py-toggle" href="#" id="MediaIoBaseUpload.chunksize-toggle" onclick="return toggle('MediaIoBaseUpload.chunksize');">-</a><tt class="py-line"> <tt class="py-keyword">def</tt> <a class="py-def-name" href="apiclient.http.MediaIoBaseUpload-class.html#chunksize">chunksize</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+</div><div id="MediaIoBaseUpload.chunksize-collapsed" style="display:none;" pad="++++" indent="++++++"></div><div id="MediaIoBaseUpload.chunksize-expanded"><a name="L328"></a><tt class="py-lineno"> 328</tt> <tt class="py-line"> <tt class="py-docstring">"""Chunk size for resumable uploads.</tt> </tt>
+<a name="L329"></a><tt class="py-lineno"> 329</tt> <tt class="py-line"><tt class="py-docstring"></tt> </tt>
+<a name="L330"></a><tt class="py-lineno"> 330</tt> <tt class="py-line"><tt class="py-docstring"> Returns:</tt> </tt>
+<a name="L331"></a><tt class="py-lineno"> 331</tt> <tt class="py-line"><tt class="py-docstring"> Chunk size in bytes.</tt> </tt>
<a name="L332"></a><tt class="py-lineno"> 332</tt> <tt class="py-line"><tt class="py-docstring"> """</tt> </tt>
-<a name="L333"></a><tt class="py-lineno"> 333</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">uri</tt> <tt class="py-op">=</tt> <tt class="py-name">uri</tt> </tt>
-<a name="L334"></a><tt class="py-lineno"> 334</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">method</tt> <tt class="py-op">=</tt> <tt class="py-name">method</tt> </tt>
-<a name="L335"></a><tt class="py-lineno"> 335</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">body</tt> <tt class="py-op">=</tt> <tt class="py-name">body</tt> </tt>
-<a name="L336"></a><tt class="py-lineno"> 336</tt> <tt class="py-line"> <tt class="py-name">self</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-keyword">or</tt> <tt class="py-op">{</tt><tt class="py-op">}</tt> </tt>
-<a name="L337"></a><tt class="py-lineno"> 337</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">methodId</tt> <tt class="py-op">=</tt> <tt class="py-name">methodId</tt> </tt>
-<a name="L338"></a><tt class="py-lineno"> 338</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-32" class="py-name" targets="Module apiclient.http=apiclient.http-module.html,Method oauth2client.appengine.OAuth2Decorator.http()=oauth2client.appengine.OAuth2Decorator-class.html#http"><a title="apiclient.http
-oauth2client.appengine.OAuth2Decorator.http" class="py-name" href="#" onclick="return doclink('link-32', 'http', 'link-32');">http</a></tt> <tt class="py-op">=</tt> <tt id="link-33" class="py-name"><a title="apiclient.http
-oauth2client.appengine.OAuth2Decorator.http" class="py-name" href="#" onclick="return doclink('link-33', 'http', 'link-32');">http</a></tt> </tt>
-<a name="L339"></a><tt class="py-lineno"> 339</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">postproc</tt> <tt class="py-op">=</tt> <tt class="py-name">postproc</tt> </tt>
-<a name="L340"></a><tt class="py-lineno"> 340</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-34" class="py-name"><a title="apiclient.http.MediaFileUpload.resumable
+<a name="L333"></a><tt class="py-lineno"> 333</tt> <tt class="py-line"> <tt class="py-keyword">return</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">_chunksize</tt> </tt>
+</div><a name="L334"></a><tt class="py-lineno"> 334</tt> <tt class="py-line"> </tt>
+<a name="MediaIoBaseUpload.mimetype"></a><div id="MediaIoBaseUpload.mimetype-def"><a name="L335"></a><tt class="py-lineno"> 335</tt> <a class="py-toggle" href="#" id="MediaIoBaseUpload.mimetype-toggle" onclick="return toggle('MediaIoBaseUpload.mimetype');">-</a><tt class="py-line"> <tt class="py-keyword">def</tt> <a class="py-def-name" href="apiclient.http.MediaIoBaseUpload-class.html#mimetype">mimetype</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+</div><div id="MediaIoBaseUpload.mimetype-collapsed" style="display:none;" pad="++++" indent="++++++"></div><div id="MediaIoBaseUpload.mimetype-expanded"><a name="L336"></a><tt class="py-lineno"> 336</tt> <tt class="py-line"> <tt class="py-docstring">"""Mime type of the body.</tt> </tt>
+<a name="L337"></a><tt class="py-lineno"> 337</tt> <tt class="py-line"><tt class="py-docstring"></tt> </tt>
+<a name="L338"></a><tt class="py-lineno"> 338</tt> <tt class="py-line"><tt class="py-docstring"> Returns:</tt> </tt>
+<a name="L339"></a><tt class="py-lineno"> 339</tt> <tt class="py-line"><tt class="py-docstring"> Mime type.</tt> </tt>
+<a name="L340"></a><tt class="py-lineno"> 340</tt> <tt class="py-line"><tt class="py-docstring"> """</tt> </tt>
+<a name="L341"></a><tt class="py-lineno"> 341</tt> <tt class="py-line"> <tt class="py-keyword">return</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">_mimetype</tt> </tt>
+</div><a name="L342"></a><tt class="py-lineno"> 342</tt> <tt class="py-line"> </tt>
+<a name="MediaIoBaseUpload.size"></a><div id="MediaIoBaseUpload.size-def"><a name="L343"></a><tt class="py-lineno"> 343</tt> <a class="py-toggle" href="#" id="MediaIoBaseUpload.size-toggle" onclick="return toggle('MediaIoBaseUpload.size');">-</a><tt class="py-line"> <tt class="py-keyword">def</tt> <a class="py-def-name" href="apiclient.http.MediaIoBaseUpload-class.html#size">size</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+</div><div id="MediaIoBaseUpload.size-collapsed" style="display:none;" pad="++++" indent="++++++"></div><div id="MediaIoBaseUpload.size-expanded"><a name="L344"></a><tt class="py-lineno"> 344</tt> <tt class="py-line"> <tt class="py-docstring">"""Size of upload.</tt> </tt>
+<a name="L345"></a><tt class="py-lineno"> 345</tt> <tt class="py-line"><tt class="py-docstring"></tt> </tt>
+<a name="L346"></a><tt class="py-lineno"> 346</tt> <tt class="py-line"><tt class="py-docstring"> Returns:</tt> </tt>
+<a name="L347"></a><tt class="py-lineno"> 347</tt> <tt class="py-line"><tt class="py-docstring"> Size of the body, or None of the size is unknown.</tt> </tt>
+<a name="L348"></a><tt class="py-lineno"> 348</tt> <tt class="py-line"><tt class="py-docstring"> """</tt> </tt>
+<a name="L349"></a><tt class="py-lineno"> 349</tt> <tt class="py-line"> <tt class="py-keyword">return</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">_size</tt> </tt>
+</div><a name="L350"></a><tt class="py-lineno"> 350</tt> <tt class="py-line"> </tt>
+<a name="MediaIoBaseUpload.resumable"></a><div id="MediaIoBaseUpload.resumable-def"><a name="L351"></a><tt class="py-lineno"> 351</tt> <a class="py-toggle" href="#" id="MediaIoBaseUpload.resumable-toggle" onclick="return toggle('MediaIoBaseUpload.resumable');">-</a><tt class="py-line"> <tt class="py-keyword">def</tt> <a class="py-def-name" href="apiclient.http.MediaIoBaseUpload-class.html#resumable">resumable</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+</div><div id="MediaIoBaseUpload.resumable-collapsed" style="display:none;" pad="++++" indent="++++++"></div><div id="MediaIoBaseUpload.resumable-expanded"><a name="L352"></a><tt class="py-lineno"> 352</tt> <tt class="py-line"> <tt class="py-docstring">"""Whether this upload is resumable.</tt> </tt>
+<a name="L353"></a><tt class="py-lineno"> 353</tt> <tt class="py-line"><tt class="py-docstring"></tt> </tt>
+<a name="L354"></a><tt class="py-lineno"> 354</tt> <tt class="py-line"><tt class="py-docstring"> Returns:</tt> </tt>
+<a name="L355"></a><tt class="py-lineno"> 355</tt> <tt class="py-line"><tt class="py-docstring"> True if resumable upload or False.</tt> </tt>
+<a name="L356"></a><tt class="py-lineno"> 356</tt> <tt class="py-line"><tt class="py-docstring"> """</tt> </tt>
+<a name="L357"></a><tt class="py-lineno"> 357</tt> <tt class="py-line"> <tt class="py-keyword">return</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">_resumable</tt> </tt>
+</div><a name="L358"></a><tt class="py-lineno"> 358</tt> <tt class="py-line"> </tt>
+<a name="MediaIoBaseUpload.getbytes"></a><div id="MediaIoBaseUpload.getbytes-def"><a name="L359"></a><tt class="py-lineno"> 359</tt> <a class="py-toggle" href="#" id="MediaIoBaseUpload.getbytes-toggle" onclick="return toggle('MediaIoBaseUpload.getbytes');">-</a><tt class="py-line"> <tt class="py-keyword">def</tt> <a class="py-def-name" href="apiclient.http.MediaIoBaseUpload-class.html#getbytes">getbytes</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">,</tt> <tt class="py-param">begin</tt><tt class="py-op">,</tt> <tt class="py-param">length</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+</div><div id="MediaIoBaseUpload.getbytes-collapsed" style="display:none;" pad="++++" indent="++++++"></div><div id="MediaIoBaseUpload.getbytes-expanded"><a name="L360"></a><tt class="py-lineno"> 360</tt> <tt class="py-line"> <tt class="py-docstring">"""Get bytes from the media.</tt> </tt>
+<a name="L361"></a><tt class="py-lineno"> 361</tt> <tt class="py-line"><tt class="py-docstring"></tt> </tt>
+<a name="L362"></a><tt class="py-lineno"> 362</tt> <tt class="py-line"><tt class="py-docstring"> Args:</tt> </tt>
+<a name="L363"></a><tt class="py-lineno"> 363</tt> <tt class="py-line"><tt class="py-docstring"> begin: int, offset from beginning of file.</tt> </tt>
+<a name="L364"></a><tt class="py-lineno"> 364</tt> <tt class="py-line"><tt class="py-docstring"> length: int, number of bytes to read, starting at begin.</tt> </tt>
+<a name="L365"></a><tt class="py-lineno"> 365</tt> <tt class="py-line"><tt class="py-docstring"></tt> </tt>
+<a name="L366"></a><tt class="py-lineno"> 366</tt> <tt class="py-line"><tt class="py-docstring"> Returns:</tt> </tt>
+<a name="L367"></a><tt class="py-lineno"> 367</tt> <tt class="py-line"><tt class="py-docstring"> A string of bytes read. May be shorted than length if EOF was reached</tt> </tt>
+<a name="L368"></a><tt class="py-lineno"> 368</tt> <tt class="py-line"><tt class="py-docstring"> first.</tt> </tt>
+<a name="L369"></a><tt class="py-lineno"> 369</tt> <tt class="py-line"><tt class="py-docstring"> """</tt> </tt>
+<a name="L370"></a><tt class="py-lineno"> 370</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">_fh</tt><tt class="py-op">.</tt><tt class="py-name">seek</tt><tt class="py-op">(</tt><tt class="py-name">begin</tt><tt class="py-op">)</tt> </tt>
+<a name="L371"></a><tt class="py-lineno"> 371</tt> <tt class="py-line"> <tt class="py-keyword">return</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">_fh</tt><tt class="py-op">.</tt><tt class="py-name">read</tt><tt class="py-op">(</tt><tt class="py-name">length</tt><tt class="py-op">)</tt> </tt>
+</div><a name="L372"></a><tt class="py-lineno"> 372</tt> <tt class="py-line"> </tt>
+<a name="MediaIoBaseUpload.to_json"></a><div id="MediaIoBaseUpload.to_json-def"><a name="L373"></a><tt class="py-lineno"> 373</tt> <a class="py-toggle" href="#" id="MediaIoBaseUpload.to_json-toggle" onclick="return toggle('MediaIoBaseUpload.to_json');">-</a><tt class="py-line"> <tt class="py-keyword">def</tt> <a class="py-def-name" href="apiclient.http.MediaIoBaseUpload-class.html#to_json">to_json</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+</div><div id="MediaIoBaseUpload.to_json-collapsed" style="display:none;" pad="++++" indent="++++++"></div><div id="MediaIoBaseUpload.to_json-expanded"><a name="L374"></a><tt class="py-lineno"> 374</tt> <tt class="py-line"> <tt class="py-docstring">"""This upload type is not serializable."""</tt> </tt>
+<a name="L375"></a><tt class="py-lineno"> 375</tt> <tt class="py-line"> <tt class="py-keyword">raise</tt> <tt class="py-name">NotImplementedError</tt><tt class="py-op">(</tt><tt class="py-string">'MediaIoBaseUpload is not serializable.'</tt><tt class="py-op">)</tt> </tt>
+</div></div><a name="L376"></a><tt class="py-lineno"> 376</tt> <tt class="py-line"> </tt>
+<a name="MediaInMemoryUpload"></a><div id="MediaInMemoryUpload-def"><a name="L377"></a><tt class="py-lineno"> 377</tt> <tt class="py-line"> </tt>
+<a name="L378"></a><tt class="py-lineno"> 378</tt> <a class="py-toggle" href="#" id="MediaInMemoryUpload-toggle" onclick="return toggle('MediaInMemoryUpload');">-</a><tt class="py-line"><tt class="py-keyword">class</tt> <a class="py-def-name" href="apiclient.http.MediaInMemoryUpload-class.html">MediaInMemoryUpload</a><tt class="py-op">(</tt><tt class="py-base-class">MediaUpload</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+</div><div id="MediaInMemoryUpload-collapsed" style="display:none;" pad="++++" indent="++++"></div><div id="MediaInMemoryUpload-expanded"><a name="L379"></a><tt class="py-lineno"> 379</tt> <tt class="py-line"> <tt class="py-docstring">"""MediaUpload for a chunk of bytes.</tt> </tt>
+<a name="L380"></a><tt class="py-lineno"> 380</tt> <tt class="py-line"><tt class="py-docstring"></tt> </tt>
+<a name="L381"></a><tt class="py-lineno"> 381</tt> <tt class="py-line"><tt class="py-docstring"> Construct a MediaFileUpload and pass as the media_body parameter of the</tt> </tt>
+<a name="L382"></a><tt class="py-lineno"> 382</tt> <tt class="py-line"><tt class="py-docstring"> method. For example, if we had a service that allowed plain text:</tt> </tt>
+<a name="L383"></a><tt class="py-lineno"> 383</tt> <tt class="py-line"><tt class="py-docstring"> """</tt> </tt>
+<a name="L384"></a><tt class="py-lineno"> 384</tt> <tt class="py-line"> </tt>
+<a name="MediaInMemoryUpload.__init__"></a><div id="MediaInMemoryUpload.__init__-def"><a name="L385"></a><tt class="py-lineno"> 385</tt> <a class="py-toggle" href="#" id="MediaInMemoryUpload.__init__-toggle" onclick="return toggle('MediaInMemoryUpload.__init__');">-</a><tt class="py-line"> <tt class="py-keyword">def</tt> <a class="py-def-name" href="apiclient.http.MediaInMemoryUpload-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">body</tt><tt class="py-op">,</tt> <tt class="py-param">mimetype</tt><tt class="py-op">=</tt><tt class="py-string">'application/octet-stream'</tt><tt class="py-op">,</tt> </tt>
+<a name="L386"></a><tt class="py-lineno"> 386</tt> <tt class="py-line"> <tt class="py-param">chunksize</tt><tt class="py-op">=</tt><tt id="link-36" class="py-name"><a title="apiclient.http.DEFAULT_CHUNK_SIZE" class="py-name" href="#" onclick="return doclink('link-36', 'DEFAULT_CHUNK_SIZE', 'link-15');">DEFAULT_CHUNK_SIZE</a></tt><tt class="py-op">,</tt> <tt class="py-param">resumable</tt><tt class="py-op">=</tt><tt class="py-name">False</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+</div><div id="MediaInMemoryUpload.__init__-collapsed" style="display:none;" pad="++++" indent="++++++"></div><div id="MediaInMemoryUpload.__init__-expanded"><a name="L387"></a><tt class="py-lineno"> 387</tt> <tt class="py-line"> <tt class="py-docstring">"""Create a new MediaBytesUpload.</tt> </tt>
+<a name="L388"></a><tt class="py-lineno"> 388</tt> <tt class="py-line"><tt class="py-docstring"></tt> </tt>
+<a name="L389"></a><tt class="py-lineno"> 389</tt> <tt class="py-line"><tt class="py-docstring"> Args:</tt> </tt>
+<a name="L390"></a><tt class="py-lineno"> 390</tt> <tt class="py-line"><tt class="py-docstring"> body: string, Bytes of body content.</tt> </tt>
+<a name="L391"></a><tt class="py-lineno"> 391</tt> <tt class="py-line"><tt class="py-docstring"> mimetype: string, Mime-type of the file or default of</tt> </tt>
+<a name="L392"></a><tt class="py-lineno"> 392</tt> <tt class="py-line"><tt class="py-docstring"> 'application/octet-stream'.</tt> </tt>
+<a name="L393"></a><tt class="py-lineno"> 393</tt> <tt class="py-line"><tt class="py-docstring"> chunksize: int, File will be uploaded in chunks of this many bytes. Only</tt> </tt>
+<a name="L394"></a><tt class="py-lineno"> 394</tt> <tt class="py-line"><tt class="py-docstring"> used if resumable=True.</tt> </tt>
+<a name="L395"></a><tt class="py-lineno"> 395</tt> <tt class="py-line"><tt class="py-docstring"> resumable: bool, True if this is a resumable upload. False means upload</tt> </tt>
+<a name="L396"></a><tt class="py-lineno"> 396</tt> <tt class="py-line"><tt class="py-docstring"> in a single request.</tt> </tt>
+<a name="L397"></a><tt class="py-lineno"> 397</tt> <tt class="py-line"><tt class="py-docstring"> """</tt> </tt>
+<a name="L398"></a><tt class="py-lineno"> 398</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">_body</tt> <tt class="py-op">=</tt> <tt class="py-name">body</tt> </tt>
+<a name="L399"></a><tt class="py-lineno"> 399</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">_mimetype</tt> <tt class="py-op">=</tt> <tt id="link-37" class="py-name"><a title="apiclient.http.MediaFileUpload.mimetype
+apiclient.http.MediaInMemoryUpload.mimetype
+apiclient.http.MediaIoBaseUpload.mimetype
+apiclient.http.MediaUpload.mimetype" class="py-name" href="#" onclick="return doclink('link-37', 'mimetype', 'link-23');">mimetype</a></tt> </tt>
+<a name="L400"></a><tt class="py-lineno"> 400</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">_resumable</tt> <tt class="py-op">=</tt> <tt id="link-38" class="py-name"><a title="apiclient.http.MediaFileUpload.resumable
apiclient.http.MediaInMemoryUpload.resumable
-apiclient.http.MediaUpload.resumable" class="py-name" href="#" onclick="return doclink('link-34', 'resumable', 'link-23');">resumable</a></tt> <tt class="py-op">=</tt> <tt id="link-35" class="py-name"><a title="apiclient.http.MediaFileUpload.resumable
+apiclient.http.MediaIoBaseUpload.resumable
+apiclient.http.MediaUpload.resumable" class="py-name" href="#" onclick="return doclink('link-38', 'resumable', 'link-28');">resumable</a></tt> </tt>
+<a name="L401"></a><tt class="py-lineno"> 401</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">_chunksize</tt> <tt class="py-op">=</tt> <tt id="link-39" class="py-name"><a title="apiclient.http.MediaFileUpload.chunksize
+apiclient.http.MediaInMemoryUpload.chunksize
+apiclient.http.MediaIoBaseUpload.chunksize
+apiclient.http.MediaUpload.chunksize" class="py-name" href="#" onclick="return doclink('link-39', 'chunksize', 'link-27');">chunksize</a></tt> </tt>
+</div><a name="L402"></a><tt class="py-lineno"> 402</tt> <tt class="py-line"> </tt>
+<a name="MediaInMemoryUpload.chunksize"></a><div id="MediaInMemoryUpload.chunksize-def"><a name="L403"></a><tt class="py-lineno"> 403</tt> <a class="py-toggle" href="#" id="MediaInMemoryUpload.chunksize-toggle" onclick="return toggle('MediaInMemoryUpload.chunksize');">-</a><tt class="py-line"> <tt class="py-keyword">def</tt> <a class="py-def-name" href="apiclient.http.MediaInMemoryUpload-class.html#chunksize">chunksize</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+</div><div id="MediaInMemoryUpload.chunksize-collapsed" style="display:none;" pad="++++" indent="++++++"></div><div id="MediaInMemoryUpload.chunksize-expanded"><a name="L404"></a><tt class="py-lineno"> 404</tt> <tt class="py-line"> <tt class="py-docstring">"""Chunk size for resumable uploads.</tt> </tt>
+<a name="L405"></a><tt class="py-lineno"> 405</tt> <tt class="py-line"><tt class="py-docstring"></tt> </tt>
+<a name="L406"></a><tt class="py-lineno"> 406</tt> <tt class="py-line"><tt class="py-docstring"> Returns:</tt> </tt>
+<a name="L407"></a><tt class="py-lineno"> 407</tt> <tt class="py-line"><tt class="py-docstring"> Chunk size in bytes.</tt> </tt>
+<a name="L408"></a><tt class="py-lineno"> 408</tt> <tt class="py-line"><tt class="py-docstring"> """</tt> </tt>
+<a name="L409"></a><tt class="py-lineno"> 409</tt> <tt class="py-line"> <tt class="py-keyword">return</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">_chunksize</tt> </tt>
+</div><a name="L410"></a><tt class="py-lineno"> 410</tt> <tt class="py-line"> </tt>
+<a name="MediaInMemoryUpload.mimetype"></a><div id="MediaInMemoryUpload.mimetype-def"><a name="L411"></a><tt class="py-lineno"> 411</tt> <a class="py-toggle" href="#" id="MediaInMemoryUpload.mimetype-toggle" onclick="return toggle('MediaInMemoryUpload.mimetype');">-</a><tt class="py-line"> <tt class="py-keyword">def</tt> <a class="py-def-name" href="apiclient.http.MediaInMemoryUpload-class.html#mimetype">mimetype</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+</div><div id="MediaInMemoryUpload.mimetype-collapsed" style="display:none;" pad="++++" indent="++++++"></div><div id="MediaInMemoryUpload.mimetype-expanded"><a name="L412"></a><tt class="py-lineno"> 412</tt> <tt class="py-line"> <tt class="py-docstring">"""Mime type of the body.</tt> </tt>
+<a name="L413"></a><tt class="py-lineno"> 413</tt> <tt class="py-line"><tt class="py-docstring"></tt> </tt>
+<a name="L414"></a><tt class="py-lineno"> 414</tt> <tt class="py-line"><tt class="py-docstring"> Returns:</tt> </tt>
+<a name="L415"></a><tt class="py-lineno"> 415</tt> <tt class="py-line"><tt class="py-docstring"> Mime type.</tt> </tt>
+<a name="L416"></a><tt class="py-lineno"> 416</tt> <tt class="py-line"><tt class="py-docstring"> """</tt> </tt>
+<a name="L417"></a><tt class="py-lineno"> 417</tt> <tt class="py-line"> <tt class="py-keyword">return</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">_mimetype</tt> </tt>
+</div><a name="L418"></a><tt class="py-lineno"> 418</tt> <tt class="py-line"> </tt>
+<a name="MediaInMemoryUpload.size"></a><div id="MediaInMemoryUpload.size-def"><a name="L419"></a><tt class="py-lineno"> 419</tt> <a class="py-toggle" href="#" id="MediaInMemoryUpload.size-toggle" onclick="return toggle('MediaInMemoryUpload.size');">-</a><tt class="py-line"> <tt class="py-keyword">def</tt> <a class="py-def-name" href="apiclient.http.MediaInMemoryUpload-class.html#size">size</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+</div><div id="MediaInMemoryUpload.size-collapsed" style="display:none;" pad="++++" indent="++++++"></div><div id="MediaInMemoryUpload.size-expanded"><a name="L420"></a><tt class="py-lineno"> 420</tt> <tt class="py-line"> <tt class="py-docstring">"""Size of upload.</tt> </tt>
+<a name="L421"></a><tt class="py-lineno"> 421</tt> <tt class="py-line"><tt class="py-docstring"></tt> </tt>
+<a name="L422"></a><tt class="py-lineno"> 422</tt> <tt class="py-line"><tt class="py-docstring"> Returns:</tt> </tt>
+<a name="L423"></a><tt class="py-lineno"> 423</tt> <tt class="py-line"><tt class="py-docstring"> Size of the body, or None of the size is unknown.</tt> </tt>
+<a name="L424"></a><tt class="py-lineno"> 424</tt> <tt class="py-line"><tt class="py-docstring"> """</tt> </tt>
+<a name="L425"></a><tt class="py-lineno"> 425</tt> <tt class="py-line"> <tt class="py-keyword">return</tt> <tt class="py-name">len</tt><tt class="py-op">(</tt><tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">_body</tt><tt class="py-op">)</tt> </tt>
+</div><a name="L426"></a><tt class="py-lineno"> 426</tt> <tt class="py-line"> </tt>
+<a name="MediaInMemoryUpload.resumable"></a><div id="MediaInMemoryUpload.resumable-def"><a name="L427"></a><tt class="py-lineno"> 427</tt> <a class="py-toggle" href="#" id="MediaInMemoryUpload.resumable-toggle" onclick="return toggle('MediaInMemoryUpload.resumable');">-</a><tt class="py-line"> <tt class="py-keyword">def</tt> <a class="py-def-name" href="apiclient.http.MediaInMemoryUpload-class.html#resumable">resumable</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+</div><div id="MediaInMemoryUpload.resumable-collapsed" style="display:none;" pad="++++" indent="++++++"></div><div id="MediaInMemoryUpload.resumable-expanded"><a name="L428"></a><tt class="py-lineno"> 428</tt> <tt class="py-line"> <tt class="py-docstring">"""Whether this upload is resumable.</tt> </tt>
+<a name="L429"></a><tt class="py-lineno"> 429</tt> <tt class="py-line"><tt class="py-docstring"></tt> </tt>
+<a name="L430"></a><tt class="py-lineno"> 430</tt> <tt class="py-line"><tt class="py-docstring"> Returns:</tt> </tt>
+<a name="L431"></a><tt class="py-lineno"> 431</tt> <tt class="py-line"><tt class="py-docstring"> True if resumable upload or False.</tt> </tt>
+<a name="L432"></a><tt class="py-lineno"> 432</tt> <tt class="py-line"><tt class="py-docstring"> """</tt> </tt>
+<a name="L433"></a><tt class="py-lineno"> 433</tt> <tt class="py-line"> <tt class="py-keyword">return</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">_resumable</tt> </tt>
+</div><a name="L434"></a><tt class="py-lineno"> 434</tt> <tt class="py-line"> </tt>
+<a name="MediaInMemoryUpload.getbytes"></a><div id="MediaInMemoryUpload.getbytes-def"><a name="L435"></a><tt class="py-lineno"> 435</tt> <a class="py-toggle" href="#" id="MediaInMemoryUpload.getbytes-toggle" onclick="return toggle('MediaInMemoryUpload.getbytes');">-</a><tt class="py-line"> <tt class="py-keyword">def</tt> <a class="py-def-name" href="apiclient.http.MediaInMemoryUpload-class.html#getbytes">getbytes</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">,</tt> <tt class="py-param">begin</tt><tt class="py-op">,</tt> <tt class="py-param">length</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+</div><div id="MediaInMemoryUpload.getbytes-collapsed" style="display:none;" pad="++++" indent="++++++"></div><div id="MediaInMemoryUpload.getbytes-expanded"><a name="L436"></a><tt class="py-lineno"> 436</tt> <tt class="py-line"> <tt class="py-docstring">"""Get bytes from the media.</tt> </tt>
+<a name="L437"></a><tt class="py-lineno"> 437</tt> <tt class="py-line"><tt class="py-docstring"></tt> </tt>
+<a name="L438"></a><tt class="py-lineno"> 438</tt> <tt class="py-line"><tt class="py-docstring"> Args:</tt> </tt>
+<a name="L439"></a><tt class="py-lineno"> 439</tt> <tt class="py-line"><tt class="py-docstring"> begin: int, offset from beginning of file.</tt> </tt>
+<a name="L440"></a><tt class="py-lineno"> 440</tt> <tt class="py-line"><tt class="py-docstring"> length: int, number of bytes to read, starting at begin.</tt> </tt>
+<a name="L441"></a><tt class="py-lineno"> 441</tt> <tt class="py-line"><tt class="py-docstring"></tt> </tt>
+<a name="L442"></a><tt class="py-lineno"> 442</tt> <tt class="py-line"><tt class="py-docstring"> Returns:</tt> </tt>
+<a name="L443"></a><tt class="py-lineno"> 443</tt> <tt class="py-line"><tt class="py-docstring"> A string of bytes read. May be shorter than length if EOF was reached</tt> </tt>
+<a name="L444"></a><tt class="py-lineno"> 444</tt> <tt class="py-line"><tt class="py-docstring"> first.</tt> </tt>
+<a name="L445"></a><tt class="py-lineno"> 445</tt> <tt class="py-line"><tt class="py-docstring"> """</tt> </tt>
+<a name="L446"></a><tt class="py-lineno"> 446</tt> <tt class="py-line"> <tt class="py-keyword">return</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">_body</tt><tt class="py-op">[</tt><tt class="py-name">begin</tt><tt class="py-op">:</tt><tt class="py-name">begin</tt> <tt class="py-op">+</tt> <tt class="py-name">length</tt><tt class="py-op">]</tt> </tt>
+</div><a name="L447"></a><tt class="py-lineno"> 447</tt> <tt class="py-line"> </tt>
+<a name="MediaInMemoryUpload.to_json"></a><div id="MediaInMemoryUpload.to_json-def"><a name="L448"></a><tt class="py-lineno"> 448</tt> <a class="py-toggle" href="#" id="MediaInMemoryUpload.to_json-toggle" onclick="return toggle('MediaInMemoryUpload.to_json');">-</a><tt class="py-line"> <tt class="py-keyword">def</tt> <a class="py-def-name" href="apiclient.http.MediaInMemoryUpload-class.html#to_json">to_json</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+</div><div id="MediaInMemoryUpload.to_json-collapsed" style="display:none;" pad="++++" indent="++++++"></div><div id="MediaInMemoryUpload.to_json-expanded"><a name="L449"></a><tt class="py-lineno"> 449</tt> <tt class="py-line"> <tt class="py-docstring">"""Create a JSON representation of a MediaInMemoryUpload.</tt> </tt>
+<a name="L450"></a><tt class="py-lineno"> 450</tt> <tt class="py-line"><tt class="py-docstring"></tt> </tt>
+<a name="L451"></a><tt class="py-lineno"> 451</tt> <tt class="py-line"><tt class="py-docstring"> Returns:</tt> </tt>
+<a name="L452"></a><tt class="py-lineno"> 452</tt> <tt class="py-line"><tt class="py-docstring"> string, a JSON representation of this instance, suitable to pass to</tt> </tt>
+<a name="L453"></a><tt class="py-lineno"> 453</tt> <tt class="py-line"><tt class="py-docstring"> from_json().</tt> </tt>
+<a name="L454"></a><tt class="py-lineno"> 454</tt> <tt class="py-line"><tt class="py-docstring"> """</tt> </tt>
+<a name="L455"></a><tt class="py-lineno"> 455</tt> <tt class="py-line"> <tt class="py-name">t</tt> <tt class="py-op">=</tt> <tt class="py-name">type</tt><tt class="py-op">(</tt><tt class="py-name">self</tt><tt class="py-op">)</tt> </tt>
+<a name="L456"></a><tt class="py-lineno"> 456</tt> <tt class="py-line"> <tt class="py-name">d</tt> <tt class="py-op">=</tt> <tt class="py-name">copy</tt><tt class="py-op">.</tt><tt class="py-name">copy</tt><tt class="py-op">(</tt><tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">__dict__</tt><tt class="py-op">)</tt> </tt>
+<a name="L457"></a><tt class="py-lineno"> 457</tt> <tt class="py-line"> <tt class="py-keyword">del</tt> <tt class="py-name">d</tt><tt class="py-op">[</tt><tt class="py-string">'_body'</tt><tt class="py-op">]</tt> </tt>
+<a name="L458"></a><tt class="py-lineno"> 458</tt> <tt class="py-line"> <tt class="py-name">d</tt><tt class="py-op">[</tt><tt class="py-string">'_class'</tt><tt class="py-op">]</tt> <tt class="py-op">=</tt> <tt class="py-name">t</tt><tt class="py-op">.</tt><tt class="py-name">__name__</tt> </tt>
+<a name="L459"></a><tt class="py-lineno"> 459</tt> <tt class="py-line"> <tt class="py-name">d</tt><tt class="py-op">[</tt><tt class="py-string">'_module'</tt><tt class="py-op">]</tt> <tt class="py-op">=</tt> <tt class="py-name">t</tt><tt class="py-op">.</tt><tt class="py-name">__module__</tt> </tt>
+<a name="L460"></a><tt class="py-lineno"> 460</tt> <tt class="py-line"> <tt class="py-name">d</tt><tt class="py-op">[</tt><tt class="py-string">'_b64body'</tt><tt class="py-op">]</tt> <tt class="py-op">=</tt> <tt class="py-name">base64</tt><tt class="py-op">.</tt><tt class="py-name">b64encode</tt><tt class="py-op">(</tt><tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">_body</tt><tt class="py-op">)</tt> </tt>
+<a name="L461"></a><tt class="py-lineno"> 461</tt> <tt class="py-line"> <tt class="py-keyword">return</tt> <tt class="py-name">simplejson</tt><tt class="py-op">.</tt><tt class="py-name">dumps</tt><tt class="py-op">(</tt><tt class="py-name">d</tt><tt class="py-op">)</tt> </tt>
+</div><a name="L462"></a><tt class="py-lineno"> 462</tt> <tt class="py-line"> </tt>
+<a name="L463"></a><tt class="py-lineno"> 463</tt> <tt class="py-line"> <tt class="py-decorator">@</tt><tt class="py-decorator">staticmethod</tt> </tt>
+<a name="MediaInMemoryUpload.from_json"></a><div id="MediaInMemoryUpload.from_json-def"><a name="L464"></a><tt class="py-lineno"> 464</tt> <a class="py-toggle" href="#" id="MediaInMemoryUpload.from_json-toggle" onclick="return toggle('MediaInMemoryUpload.from_json');">-</a><tt class="py-line"> <tt class="py-keyword">def</tt> <a class="py-def-name" href="apiclient.http.MediaInMemoryUpload-class.html#from_json">from_json</a><tt class="py-op">(</tt><tt class="py-param">s</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+</div><div id="MediaInMemoryUpload.from_json-collapsed" style="display:none;" pad="++++" indent="++++++"></div><div id="MediaInMemoryUpload.from_json-expanded"><a name="L465"></a><tt class="py-lineno"> 465</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-40" class="py-name"><a title="oauth2client.clientsecrets.loads" class="py-name" href="#" onclick="return doclink('link-40', 'loads', 'link-17');">loads</a></tt><tt class="py-op">(</tt><tt class="py-name">s</tt><tt class="py-op">)</tt> </tt>
+<a name="L466"></a><tt class="py-lineno"> 466</tt> <tt class="py-line"> <tt class="py-keyword">return</tt> <tt id="link-41" class="py-name" targets="Class apiclient.http.MediaInMemoryUpload=apiclient.http.MediaInMemoryUpload-class.html"><a title="apiclient.http.MediaInMemoryUpload" class="py-name" href="#" onclick="return doclink('link-41', 'MediaInMemoryUpload', 'link-41');">MediaInMemoryUpload</a></tt><tt class="py-op">(</tt><tt class="py-name">base64</tt><tt class="py-op">.</tt><tt class="py-name">b64decode</tt><tt class="py-op">(</tt><tt class="py-name">d</tt><tt class="py-op">[</tt><tt class="py-string">'_b64body'</tt><tt class="py-op">]</tt><tt class="py-op">)</tt><tt class="py-op">,</tt> </tt>
+<a name="L467"></a><tt class="py-lineno"> 467</tt> <tt class="py-line"> <tt class="py-name">d</tt><tt class="py-op">[</tt><tt class="py-string">'_mimetype'</tt><tt class="py-op">]</tt><tt class="py-op">,</tt> <tt class="py-name">d</tt><tt class="py-op">[</tt><tt class="py-string">'_chunksize'</tt><tt class="py-op">]</tt><tt class="py-op">,</tt> </tt>
+<a name="L468"></a><tt class="py-lineno"> 468</tt> <tt class="py-line"> <tt class="py-name">d</tt><tt class="py-op">[</tt><tt class="py-string">'_resumable'</tt><tt class="py-op">]</tt><tt class="py-op">)</tt> </tt>
+</div></div><a name="L469"></a><tt class="py-lineno"> 469</tt> <tt class="py-line"> </tt>
+<a name="HttpRequest"></a><div id="HttpRequest-def"><a name="L470"></a><tt class="py-lineno"> 470</tt> <tt class="py-line"> </tt>
+<a name="L471"></a><tt class="py-lineno"> 471</tt> <a class="py-toggle" href="#" id="HttpRequest-toggle" onclick="return toggle('HttpRequest');">-</a><tt class="py-line"><tt class="py-keyword">class</tt> <a class="py-def-name" href="apiclient.http.HttpRequest-class.html">HttpRequest</a><tt class="py-op">(</tt><tt class="py-base-class">object</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+</div><div id="HttpRequest-collapsed" style="display:none;" pad="++++" indent="++++"></div><div id="HttpRequest-expanded"><a name="L472"></a><tt class="py-lineno"> 472</tt> <tt class="py-line"> <tt class="py-docstring">"""Encapsulates a single HTTP request."""</tt> </tt>
+<a name="L473"></a><tt class="py-lineno"> 473</tt> <tt class="py-line"> </tt>
+<a name="HttpRequest.__init__"></a><div id="HttpRequest.__init__-def"><a name="L474"></a><tt class="py-lineno"> 474</tt> <a class="py-toggle" href="#" id="HttpRequest.__init__-toggle" onclick="return toggle('HttpRequest.__init__');">-</a><tt class="py-line"> <tt class="py-keyword">def</tt> <a class="py-def-name" href="apiclient.http.HttpRequest-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">http</tt><tt class="py-op">,</tt> <tt class="py-param">postproc</tt><tt class="py-op">,</tt> <tt class="py-param">uri</tt><tt class="py-op">,</tt> </tt>
+<a name="L475"></a><tt class="py-lineno"> 475</tt> <tt class="py-line"> <tt class="py-param">method</tt><tt class="py-op">=</tt><tt class="py-string">'GET'</tt><tt class="py-op">,</tt> </tt>
+<a name="L476"></a><tt class="py-lineno"> 476</tt> <tt class="py-line"> <tt class="py-param">body</tt><tt class="py-op">=</tt><tt class="py-name">None</tt><tt class="py-op">,</tt> </tt>
+<a name="L477"></a><tt class="py-lineno"> 477</tt> <tt class="py-line"> <tt class="py-param">headers</tt><tt class="py-op">=</tt><tt class="py-name">None</tt><tt class="py-op">,</tt> </tt>
+<a name="L478"></a><tt class="py-lineno"> 478</tt> <tt class="py-line"> <tt class="py-param">methodId</tt><tt class="py-op">=</tt><tt class="py-name">None</tt><tt class="py-op">,</tt> </tt>
+<a name="L479"></a><tt class="py-lineno"> 479</tt> <tt class="py-line"> <tt class="py-param">resumable</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="HttpRequest.__init__-collapsed" style="display:none;" pad="++++" indent="++++++"></div><div id="HttpRequest.__init__-expanded"><a name="L480"></a><tt class="py-lineno"> 480</tt> <tt class="py-line"> <tt class="py-docstring">"""Constructor for an HttpRequest.</tt> </tt>
+<a name="L481"></a><tt class="py-lineno"> 481</tt> <tt class="py-line"><tt class="py-docstring"></tt> </tt>
+<a name="L482"></a><tt class="py-lineno"> 482</tt> <tt class="py-line"><tt class="py-docstring"> Args:</tt> </tt>
+<a name="L483"></a><tt class="py-lineno"> 483</tt> <tt class="py-line"><tt class="py-docstring"> http: httplib2.Http, the transport object to use to make a request</tt> </tt>
+<a name="L484"></a><tt class="py-lineno"> 484</tt> <tt class="py-line"><tt class="py-docstring"> postproc: callable, called on the HTTP response and content to transform</tt> </tt>
+<a name="L485"></a><tt class="py-lineno"> 485</tt> <tt class="py-line"><tt class="py-docstring"> it into a data object before returning, or raising an exception</tt> </tt>
+<a name="L486"></a><tt class="py-lineno"> 486</tt> <tt class="py-line"><tt class="py-docstring"> on an error.</tt> </tt>
+<a name="L487"></a><tt class="py-lineno"> 487</tt> <tt class="py-line"><tt class="py-docstring"> uri: string, the absolute URI to send the request to</tt> </tt>
+<a name="L488"></a><tt class="py-lineno"> 488</tt> <tt class="py-line"><tt class="py-docstring"> method: string, the HTTP method to use</tt> </tt>
+<a name="L489"></a><tt class="py-lineno"> 489</tt> <tt class="py-line"><tt class="py-docstring"> body: string, the request body of the HTTP request,</tt> </tt>
+<a name="L490"></a><tt class="py-lineno"> 490</tt> <tt class="py-line"><tt class="py-docstring"> headers: dict, the HTTP request headers</tt> </tt>
+<a name="L491"></a><tt class="py-lineno"> 491</tt> <tt class="py-line"><tt class="py-docstring"> methodId: string, a unique identifier for the API method being called.</tt> </tt>
+<a name="L492"></a><tt class="py-lineno"> 492</tt> <tt class="py-line"><tt class="py-docstring"> resumable: MediaUpload, None if this is not a resumbale request.</tt> </tt>
+<a name="L493"></a><tt class="py-lineno"> 493</tt> <tt class="py-line"><tt class="py-docstring"> """</tt> </tt>
+<a name="L494"></a><tt class="py-lineno"> 494</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">uri</tt> <tt class="py-op">=</tt> <tt class="py-name">uri</tt> </tt>
+<a name="L495"></a><tt class="py-lineno"> 495</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">method</tt> <tt class="py-op">=</tt> <tt class="py-name">method</tt> </tt>
+<a name="L496"></a><tt class="py-lineno"> 496</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">body</tt> <tt class="py-op">=</tt> <tt class="py-name">body</tt> </tt>
+<a name="L497"></a><tt class="py-lineno"> 497</tt> <tt class="py-line"> <tt class="py-name">self</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-keyword">or</tt> <tt class="py-op">{</tt><tt class="py-op">}</tt> </tt>
+<a name="L498"></a><tt class="py-lineno"> 498</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">methodId</tt> <tt class="py-op">=</tt> <tt class="py-name">methodId</tt> </tt>
+<a name="L499"></a><tt class="py-lineno"> 499</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-42" class="py-name" targets="Module apiclient.http=apiclient.http-module.html,Method oauth2client.appengine.OAuth2Decorator.http()=oauth2client.appengine.OAuth2Decorator-class.html#http"><a title="apiclient.http
+oauth2client.appengine.OAuth2Decorator.http" class="py-name" href="#" onclick="return doclink('link-42', 'http', 'link-42');">http</a></tt> <tt class="py-op">=</tt> <tt id="link-43" class="py-name"><a title="apiclient.http
+oauth2client.appengine.OAuth2Decorator.http" class="py-name" href="#" onclick="return doclink('link-43', 'http', 'link-42');">http</a></tt> </tt>
+<a name="L500"></a><tt class="py-lineno"> 500</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">postproc</tt> <tt class="py-op">=</tt> <tt class="py-name">postproc</tt> </tt>
+<a name="L501"></a><tt class="py-lineno"> 501</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-44" class="py-name"><a title="apiclient.http.MediaFileUpload.resumable
apiclient.http.MediaInMemoryUpload.resumable
-apiclient.http.MediaUpload.resumable" class="py-name" href="#" onclick="return doclink('link-35', 'resumable', 'link-23');">resumable</a></tt> </tt>
-<a name="L341"></a><tt class="py-lineno"> 341</tt> <tt class="py-line"> </tt>
-<a name="L342"></a><tt class="py-lineno"> 342</tt> <tt class="py-line"> <tt class="py-comment"># Pull the multipart boundary out of the content-type header.</tt> </tt>
-<a name="L343"></a><tt class="py-lineno"> 343</tt> <tt class="py-line"> <tt class="py-name">major</tt><tt class="py-op">,</tt> <tt class="py-name">minor</tt><tt class="py-op">,</tt> <tt class="py-name">params</tt> <tt class="py-op">=</tt> <tt id="link-36" class="py-name"><a title="apiclient.mimeparse" class="py-name" href="#" onclick="return doclink('link-36', 'mimeparse', 'link-0');">mimeparse</a></tt><tt class="py-op">.</tt><tt id="link-37" class="py-name" targets="Function apiclient.mimeparse.parse_mime_type()=apiclient.mimeparse-module.html#parse_mime_type"><a title="apiclient.mimeparse.parse_mime_type" class="py-name" href="#" onclick="return doclink('link-37', 'parse_mime_type', 'link-37');">parse_mime_type</a></tt><tt class="py-op">(</tt> </tt>
-<a name="L344"></a><tt class="py-lineno"> 344</tt> <tt class="py-line"> <tt class="py-name">headers</tt><tt class="py-op">.</tt><tt id="link-38" class="py-name" targets="Method apiclient.schema.Schemas.get()=apiclient.schema.Schemas-class.html#get,Method oauth2client.appengine.OAuth2Handler.get()=oauth2client.appengine.OAuth2Handler-class.html#get,Method oauth2client.client.MemoryCache.get()=oauth2client.client.MemoryCache-class.html#get,Method oauth2client.client.Storage.get()=oauth2client.client.Storage-class.html#get"><a title="apiclient.schema.Schemas.get
+apiclient.http.MediaIoBaseUpload.resumable
+apiclient.http.MediaUpload.resumable" class="py-name" href="#" onclick="return doclink('link-44', 'resumable', 'link-28');">resumable</a></tt> <tt class="py-op">=</tt> <tt id="link-45" class="py-name"><a title="apiclient.http.MediaFileUpload.resumable
+apiclient.http.MediaInMemoryUpload.resumable
+apiclient.http.MediaIoBaseUpload.resumable
+apiclient.http.MediaUpload.resumable" class="py-name" href="#" onclick="return doclink('link-45', 'resumable', 'link-28');">resumable</a></tt> </tt>
+<a name="L502"></a><tt class="py-lineno"> 502</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">_in_error_state</tt> <tt class="py-op">=</tt> <tt class="py-name">False</tt> </tt>
+<a name="L503"></a><tt class="py-lineno"> 503</tt> <tt class="py-line"> </tt>
+<a name="L504"></a><tt class="py-lineno"> 504</tt> <tt class="py-line"> <tt class="py-comment"># Pull the multipart boundary out of the content-type header.</tt> </tt>
+<a name="L505"></a><tt class="py-lineno"> 505</tt> <tt class="py-line"> <tt class="py-name">major</tt><tt class="py-op">,</tt> <tt class="py-name">minor</tt><tt class="py-op">,</tt> <tt class="py-name">params</tt> <tt class="py-op">=</tt> <tt id="link-46" class="py-name"><a title="apiclient.mimeparse" class="py-name" href="#" onclick="return doclink('link-46', 'mimeparse', 'link-0');">mimeparse</a></tt><tt class="py-op">.</tt><tt id="link-47" class="py-name" targets="Function apiclient.mimeparse.parse_mime_type()=apiclient.mimeparse-module.html#parse_mime_type"><a title="apiclient.mimeparse.parse_mime_type" class="py-name" href="#" onclick="return doclink('link-47', 'parse_mime_type', 'link-47');">parse_mime_type</a></tt><tt class="py-op">(</tt> </tt>
+<a name="L506"></a><tt class="py-lineno"> 506</tt> <tt class="py-line"> <tt class="py-name">headers</tt><tt class="py-op">.</tt><tt id="link-48" class="py-name" targets="Method apiclient.schema.Schemas.get()=apiclient.schema.Schemas-class.html#get,Method oauth2client.appengine.OAuth2Handler.get()=oauth2client.appengine.OAuth2Handler-class.html#get,Method oauth2client.client.MemoryCache.get()=oauth2client.client.MemoryCache-class.html#get,Method oauth2client.client.Storage.get()=oauth2client.client.Storage-class.html#get"><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-38', 'get', 'link-38');">get</a></tt><tt class="py-op">(</tt><tt class="py-string">'content-type'</tt><tt class="py-op">,</tt> <tt class="py-string">'application/json'</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
-<a name="L345"></a><tt class="py-lineno"> 345</tt> <tt class="py-line"> </tt>
-<a name="L346"></a><tt class="py-lineno"> 346</tt> <tt class="py-line"> <tt class="py-comment"># The size of the non-media part of the request.</tt> </tt>
-<a name="L347"></a><tt class="py-lineno"> 347</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">body_size</tt> <tt class="py-op">=</tt> <tt class="py-name">len</tt><tt class="py-op">(</tt><tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">body</tt> <tt class="py-keyword">or</tt> <tt class="py-string">''</tt><tt class="py-op">)</tt> </tt>
-<a name="L348"></a><tt class="py-lineno"> 348</tt> <tt class="py-line"> </tt>
-<a name="L349"></a><tt class="py-lineno"> 349</tt> <tt class="py-line"> <tt class="py-comment"># The resumable URI to send chunks to.</tt> </tt>
-<a name="L350"></a><tt class="py-lineno"> 350</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">resumable_uri</tt> <tt class="py-op">=</tt> <tt class="py-name">None</tt> </tt>
-<a name="L351"></a><tt class="py-lineno"> 351</tt> <tt class="py-line"> </tt>
-<a name="L352"></a><tt class="py-lineno"> 352</tt> <tt class="py-line"> <tt class="py-comment"># The bytes that have been uploaded.</tt> </tt>
-<a name="L353"></a><tt class="py-lineno"> 353</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">resumable_progress</tt> <tt class="py-op">=</tt> <tt class="py-number">0</tt> </tt>
-</div><a name="L354"></a><tt class="py-lineno"> 354</tt> <tt class="py-line"> </tt>
-<a name="HttpRequest.execute"></a><div id="HttpRequest.execute-def"><a name="L355"></a><tt class="py-lineno"> 355</tt> <a class="py-toggle" href="#" id="HttpRequest.execute-toggle" onclick="return toggle('HttpRequest.execute');">-</a><tt class="py-line"> <tt class="py-keyword">def</tt> <a class="py-def-name" href="apiclient.http.HttpRequest-class.html#execute">execute</a><tt class="py-op">(</tt><tt class="py-param">self</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="HttpRequest.execute-collapsed" style="display:none;" pad="++++" indent="++++++"></div><div id="HttpRequest.execute-expanded"><a name="L356"></a><tt class="py-lineno"> 356</tt> <tt class="py-line"> <tt class="py-docstring">"""Execute the request.</tt> </tt>
-<a name="L357"></a><tt class="py-lineno"> 357</tt> <tt class="py-line"><tt class="py-docstring"></tt> </tt>
-<a name="L358"></a><tt class="py-lineno"> 358</tt> <tt class="py-line"><tt class="py-docstring"> Args:</tt> </tt>
-<a name="L359"></a><tt class="py-lineno"> 359</tt> <tt class="py-line"><tt class="py-docstring"> http: httplib2.Http, an http object to be used in place of the</tt> </tt>
-<a name="L360"></a><tt class="py-lineno"> 360</tt> <tt class="py-line"><tt class="py-docstring"> one the HttpRequest request object was constructed with.</tt> </tt>
-<a name="L361"></a><tt class="py-lineno"> 361</tt> <tt class="py-line"><tt class="py-docstring"></tt> </tt>
-<a name="L362"></a><tt class="py-lineno"> 362</tt> <tt class="py-line"><tt class="py-docstring"> Returns:</tt> </tt>
-<a name="L363"></a><tt class="py-lineno"> 363</tt> <tt class="py-line"><tt class="py-docstring"> A deserialized object model of the response body as determined</tt> </tt>
-<a name="L364"></a><tt class="py-lineno"> 364</tt> <tt class="py-line"><tt class="py-docstring"> by the postproc.</tt> </tt>
-<a name="L365"></a><tt class="py-lineno"> 365</tt> <tt class="py-line"><tt class="py-docstring"></tt> </tt>
-<a name="L366"></a><tt class="py-lineno"> 366</tt> <tt class="py-line"><tt class="py-docstring"> Raises:</tt> </tt>
-<a name="L367"></a><tt class="py-lineno"> 367</tt> <tt class="py-line"><tt class="py-docstring"> apiclient.errors.HttpError if the response was not a 2xx.</tt> </tt>
-<a name="L368"></a><tt class="py-lineno"> 368</tt> <tt class="py-line"><tt class="py-docstring"> httplib2.Error if a transport error has occured.</tt> </tt>
-<a name="L369"></a><tt class="py-lineno"> 369</tt> <tt class="py-line"><tt class="py-docstring"> """</tt> </tt>
-<a name="L370"></a><tt class="py-lineno"> 370</tt> <tt class="py-line"> <tt class="py-keyword">if</tt> <tt id="link-39" class="py-name"><a title="apiclient.http
-oauth2client.appengine.OAuth2Decorator.http" class="py-name" href="#" onclick="return doclink('link-39', 'http', 'link-32');">http</a></tt> <tt class="py-keyword">is</tt> <tt class="py-name">None</tt><tt class="py-op">:</tt> </tt>
-<a name="L371"></a><tt class="py-lineno"> 371</tt> <tt class="py-line"> <tt id="link-40" class="py-name"><a title="apiclient.http
-oauth2client.appengine.OAuth2Decorator.http" class="py-name" href="#" onclick="return doclink('link-40', 'http', 'link-32');">http</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-41" class="py-name"><a title="apiclient.http
-oauth2client.appengine.OAuth2Decorator.http" class="py-name" href="#" onclick="return doclink('link-41', 'http', 'link-32');">http</a></tt> </tt>
-<a name="L372"></a><tt class="py-lineno"> 372</tt> <tt class="py-line"> <tt class="py-keyword">if</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-42" class="py-name"><a title="apiclient.http.MediaFileUpload.resumable
-apiclient.http.MediaInMemoryUpload.resumable
-apiclient.http.MediaUpload.resumable" class="py-name" href="#" onclick="return doclink('link-42', 'resumable', 'link-23');">resumable</a></tt><tt class="py-op">:</tt> </tt>
-<a name="L373"></a><tt class="py-lineno"> 373</tt> <tt class="py-line"> <tt class="py-name">body</tt> <tt class="py-op">=</tt> <tt class="py-name">None</tt> </tt>
-<a name="L374"></a><tt class="py-lineno"> 374</tt> <tt class="py-line"> <tt class="py-keyword">while</tt> <tt class="py-name">body</tt> <tt class="py-keyword">is</tt> <tt class="py-name">None</tt><tt class="py-op">:</tt> </tt>
-<a name="L375"></a><tt class="py-lineno"> 375</tt> <tt class="py-line"> <tt class="py-name">_</tt><tt class="py-op">,</tt> <tt class="py-name">body</tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-43" class="py-name" targets="Method apiclient.http.HttpRequest.next_chunk()=apiclient.http.HttpRequest-class.html#next_chunk"><a title="apiclient.http.HttpRequest.next_chunk" class="py-name" href="#" onclick="return doclink('link-43', 'next_chunk', 'link-43');">next_chunk</a></tt><tt class="py-op">(</tt><tt id="link-44" class="py-name"><a title="apiclient.http
-oauth2client.appengine.OAuth2Decorator.http" class="py-name" href="#" onclick="return doclink('link-44', 'http', 'link-32');">http</a></tt><tt class="py-op">)</tt> </tt>
-<a name="L376"></a><tt class="py-lineno"> 376</tt> <tt class="py-line"> <tt class="py-keyword">return</tt> <tt class="py-name">body</tt> </tt>
-<a name="L377"></a><tt class="py-lineno"> 377</tt> <tt class="py-line"> <tt class="py-keyword">else</tt><tt class="py-op">:</tt> </tt>
-<a name="L378"></a><tt class="py-lineno"> 378</tt> <tt class="py-line"> <tt class="py-keyword">if</tt> <tt class="py-string">'content-length'</tt> <tt class="py-keyword">not</tt> <tt class="py-keyword">in</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">headers</tt><tt class="py-op">:</tt> </tt>
-<a name="L379"></a><tt class="py-lineno"> 379</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">headers</tt><tt class="py-op">[</tt><tt class="py-string">'content-length'</tt><tt class="py-op">]</tt> <tt class="py-op">=</tt> <tt class="py-name">str</tt><tt class="py-op">(</tt><tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">body_size</tt><tt class="py-op">)</tt> </tt>
-<a name="L380"></a><tt class="py-lineno"> 380</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-45" class="py-name"><a title="apiclient.http
-oauth2client.appengine.OAuth2Decorator.http" class="py-name" href="#" onclick="return doclink('link-45', 'http', 'link-32');">http</a></tt><tt class="py-op">.</tt><tt id="link-46" class="py-name" targets="Method apiclient.http.HttpMock.request()=apiclient.http.HttpMock-class.html#request,Method apiclient.http.HttpMockSequence.request()=apiclient.http.HttpMockSequence-class.html#request,Method apiclient.model.BaseModel.request()=apiclient.model.BaseModel-class.html#request,Method apiclient.model.Model.request()=apiclient.model.Model-class.html#request"><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-46', 'request', 'link-46');">request</a></tt><tt class="py-op">(</tt><tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">uri</tt><tt class="py-op">,</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">method</tt><tt class="py-op">,</tt> </tt>
-<a name="L381"></a><tt class="py-lineno"> 381</tt> <tt class="py-line"> <tt class="py-name">body</tt><tt class="py-op">=</tt><tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">body</tt><tt class="py-op">,</tt> </tt>
-<a name="L382"></a><tt class="py-lineno"> 382</tt> <tt class="py-line"> <tt class="py-name">headers</tt><tt class="py-op">=</tt><tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">headers</tt><tt class="py-op">)</tt> </tt>
-<a name="L383"></a><tt class="py-lineno"> 383</tt> <tt class="py-line"> </tt>
-<a name="L384"></a><tt class="py-lineno"> 384</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">300</tt><tt class="py-op">:</tt> </tt>
-<a name="L385"></a><tt class="py-lineno"> 385</tt> <tt class="py-line"> <tt class="py-keyword">raise</tt> <tt id="link-47" class="py-name"><a title="apiclient.errors.HttpError" class="py-name" href="#" onclick="return doclink('link-47', 'HttpError', 'link-4');">HttpError</a></tt><tt class="py-op">(</tt><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">self</tt><tt class="py-op">.</tt><tt class="py-name">uri</tt><tt class="py-op">)</tt> </tt>
-<a name="L386"></a><tt class="py-lineno"> 386</tt> <tt class="py-line"> <tt class="py-keyword">return</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">postproc</tt><tt class="py-op">(</tt><tt class="py-name">resp</tt><tt class="py-op">,</tt> <tt class="py-name">content</tt><tt class="py-op">)</tt> </tt>
-</div><a name="L387"></a><tt class="py-lineno"> 387</tt> <tt class="py-line"> </tt>
-<a name="HttpRequest.next_chunk"></a><div id="HttpRequest.next_chunk-def"><a name="L388"></a><tt class="py-lineno"> 388</tt> <a class="py-toggle" href="#" id="HttpRequest.next_chunk-toggle" onclick="return toggle('HttpRequest.next_chunk');">-</a><tt class="py-line"> <tt class="py-keyword">def</tt> <a class="py-def-name" href="apiclient.http.HttpRequest-class.html#next_chunk">next_chunk</a><tt class="py-op">(</tt><tt class="py-param">self</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="HttpRequest.next_chunk-collapsed" style="display:none;" pad="++++" indent="++++++"></div><div id="HttpRequest.next_chunk-expanded"><a name="L389"></a><tt class="py-lineno"> 389</tt> <tt class="py-line"> <tt class="py-docstring">"""Execute the next step of a resumable upload.</tt> </tt>
-<a name="L390"></a><tt class="py-lineno"> 390</tt> <tt class="py-line"><tt class="py-docstring"></tt> </tt>
-<a name="L391"></a><tt class="py-lineno"> 391</tt> <tt class="py-line"><tt class="py-docstring"> Can only be used if the method being executed supports media uploads and</tt> </tt>
-<a name="L392"></a><tt class="py-lineno"> 392</tt> <tt class="py-line"><tt class="py-docstring"> the MediaUpload object passed in was flagged as using resumable upload.</tt> </tt>
-<a name="L393"></a><tt class="py-lineno"> 393</tt> <tt class="py-line"><tt class="py-docstring"></tt> </tt>
-<a name="L394"></a><tt class="py-lineno"> 394</tt> <tt class="py-line"><tt class="py-docstring"> Example:</tt> </tt>
-<a name="L395"></a><tt class="py-lineno"> 395</tt> <tt class="py-line"><tt class="py-docstring"></tt> </tt>
-<a name="L396"></a><tt class="py-lineno"> 396</tt> <tt class="py-line"><tt class="py-docstring"> media = MediaFileUpload('smiley.png', mimetype='image/png',</tt> </tt>
-<a name="L397"></a><tt class="py-lineno"> 397</tt> <tt class="py-line"><tt class="py-docstring"> chunksize=1000, resumable=True)</tt> </tt>
-<a name="L398"></a><tt class="py-lineno"> 398</tt> <tt class="py-line"><tt class="py-docstring"> request = service.objects().insert(</tt> </tt>
-<a name="L399"></a><tt class="py-lineno"> 399</tt> <tt class="py-line"><tt class="py-docstring"> bucket=buckets['items'][0]['id'],</tt> </tt>
-<a name="L400"></a><tt class="py-lineno"> 400</tt> <tt class="py-line"><tt class="py-docstring"> name='smiley.png',</tt> </tt>
-<a name="L401"></a><tt class="py-lineno"> 401</tt> <tt class="py-line"><tt class="py-docstring"> media_body=media)</tt> </tt>
-<a name="L402"></a><tt class="py-lineno"> 402</tt> <tt class="py-line"><tt class="py-docstring"></tt> </tt>
-<a name="L403"></a><tt class="py-lineno"> 403</tt> <tt class="py-line"><tt class="py-docstring"> response = None</tt> </tt>
-<a name="L404"></a><tt class="py-lineno"> 404</tt> <tt class="py-line"><tt class="py-docstring"> while response is None:</tt> </tt>
-<a name="L405"></a><tt class="py-lineno"> 405</tt> <tt class="py-line"><tt class="py-docstring"> status, response = request.next_chunk()</tt> </tt>
-<a name="L406"></a><tt class="py-lineno"> 406</tt> <tt class="py-line"><tt class="py-docstring"> if status:</tt> </tt>
-<a name="L407"></a><tt class="py-lineno"> 407</tt> <tt class="py-line"><tt class="py-docstring"> print "Upload %d%% complete." % int(status.progress() * 100)</tt> </tt>
-<a name="L408"></a><tt class="py-lineno"> 408</tt> <tt class="py-line"><tt class="py-docstring"></tt> </tt>
-<a name="L409"></a><tt class="py-lineno"> 409</tt> <tt class="py-line"><tt class="py-docstring"></tt> </tt>
-<a name="L410"></a><tt class="py-lineno"> 410</tt> <tt class="py-line"><tt class="py-docstring"> Returns:</tt> </tt>
-<a name="L411"></a><tt class="py-lineno"> 411</tt> <tt class="py-line"><tt class="py-docstring"> (status, body): (ResumableMediaStatus, object)</tt> </tt>
-<a name="L412"></a><tt class="py-lineno"> 412</tt> <tt class="py-line"><tt class="py-docstring"> The body will be None until the resumable media is fully uploaded.</tt> </tt>
-<a name="L413"></a><tt class="py-lineno"> 413</tt> <tt class="py-line"><tt class="py-docstring"> """</tt> </tt>
-<a name="L414"></a><tt class="py-lineno"> 414</tt> <tt class="py-line"> <tt class="py-keyword">if</tt> <tt id="link-48" class="py-name"><a title="apiclient.http
-oauth2client.appengine.OAuth2Decorator.http" class="py-name" href="#" onclick="return doclink('link-48', 'http', 'link-32');">http</a></tt> <tt class="py-keyword">is</tt> <tt class="py-name">None</tt><tt class="py-op">:</tt> </tt>
-<a name="L415"></a><tt class="py-lineno"> 415</tt> <tt class="py-line"> <tt id="link-49" class="py-name"><a title="apiclient.http
-oauth2client.appengine.OAuth2Decorator.http" class="py-name" href="#" onclick="return doclink('link-49', 'http', 'link-32');">http</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-50" class="py-name"><a title="apiclient.http
-oauth2client.appengine.OAuth2Decorator.http" class="py-name" href="#" onclick="return doclink('link-50', 'http', 'link-32');">http</a></tt> </tt>
-<a name="L416"></a><tt class="py-lineno"> 416</tt> <tt class="py-line"> </tt>
-<a name="L417"></a><tt class="py-lineno"> 417</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">resumable_uri</tt> <tt class="py-keyword">is</tt> <tt class="py-name">None</tt><tt class="py-op">:</tt> </tt>
-<a name="L418"></a><tt class="py-lineno"> 418</tt> <tt class="py-line"> <tt class="py-name">start_headers</tt> <tt class="py-op">=</tt> <tt class="py-name">copy</tt><tt class="py-op">.</tt><tt class="py-name">copy</tt><tt class="py-op">(</tt><tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">headers</tt><tt class="py-op">)</tt> </tt>
-<a name="L419"></a><tt class="py-lineno"> 419</tt> <tt class="py-line"> <tt class="py-name">start_headers</tt><tt class="py-op">[</tt><tt class="py-string">'X-Upload-Content-Type'</tt><tt class="py-op">]</tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-51" class="py-name"><a title="apiclient.http.MediaFileUpload.resumable
-apiclient.http.MediaInMemoryUpload.resumable
-apiclient.http.MediaUpload.resumable" class="py-name" href="#" onclick="return doclink('link-51', 'resumable', 'link-23');">resumable</a></tt><tt class="py-op">.</tt><tt id="link-52" class="py-name"><a title="apiclient.http.MediaFileUpload.mimetype
-apiclient.http.MediaInMemoryUpload.mimetype
-apiclient.http.MediaUpload.mimetype" class="py-name" href="#" onclick="return doclink('link-52', 'mimetype', 'link-19');">mimetype</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
-<a name="L420"></a><tt class="py-lineno"> 420</tt> <tt class="py-line"> <tt class="py-name">start_headers</tt><tt class="py-op">[</tt><tt class="py-string">'X-Upload-Content-Length'</tt><tt class="py-op">]</tt> <tt class="py-op">=</tt> <tt class="py-name">str</tt><tt class="py-op">(</tt><tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-53" class="py-name"><a title="apiclient.http.MediaFileUpload.resumable
-apiclient.http.MediaInMemoryUpload.resumable
-apiclient.http.MediaUpload.resumable" class="py-name" href="#" onclick="return doclink('link-53', 'resumable', 'link-23');">resumable</a></tt><tt class="py-op">.</tt><tt id="link-54" class="py-name" targets="Method apiclient.http.MediaFileUpload.size()=apiclient.http.MediaFileUpload-class.html#size,Method apiclient.http.MediaInMemoryUpload.size()=apiclient.http.MediaInMemoryUpload-class.html#size,Method apiclient.http.MediaUpload.size()=apiclient.http.MediaUpload-class.html#size"><a title="apiclient.http.MediaFileUpload.size
-apiclient.http.MediaInMemoryUpload.size
-apiclient.http.MediaUpload.size" class="py-name" href="#" onclick="return doclink('link-54', 'size', 'link-54');">size</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
-<a name="L421"></a><tt class="py-lineno"> 421</tt> <tt class="py-line"> <tt class="py-name">start_headers</tt><tt class="py-op">[</tt><tt class="py-string">'content-length'</tt><tt class="py-op">]</tt> <tt class="py-op">=</tt> <tt class="py-name">str</tt><tt class="py-op">(</tt><tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">body_size</tt><tt class="py-op">)</tt> </tt>
-<a name="L422"></a><tt class="py-lineno"> 422</tt> <tt class="py-line"> </tt>
-<a name="L423"></a><tt class="py-lineno"> 423</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-55" class="py-name"><a title="apiclient.http
-oauth2client.appengine.OAuth2Decorator.http" class="py-name" href="#" onclick="return doclink('link-55', 'http', 'link-32');">http</a></tt><tt class="py-op">.</tt><tt id="link-56" 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-56', 'request', 'link-46');">request</a></tt><tt class="py-op">(</tt><tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">uri</tt><tt class="py-op">,</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">method</tt><tt class="py-op">,</tt> </tt>
-<a name="L424"></a><tt class="py-lineno"> 424</tt> <tt class="py-line"> <tt class="py-name">body</tt><tt class="py-op">=</tt><tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">body</tt><tt class="py-op">,</tt> </tt>
-<a name="L425"></a><tt class="py-lineno"> 425</tt> <tt class="py-line"> <tt class="py-name">headers</tt><tt class="py-op">=</tt><tt class="py-name">start_headers</tt><tt class="py-op">)</tt> </tt>
-<a name="L426"></a><tt class="py-lineno"> 426</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">'location'</tt> <tt class="py-keyword">in</tt> <tt class="py-name">resp</tt><tt class="py-op">:</tt> </tt>
-<a name="L427"></a><tt class="py-lineno"> 427</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">resumable_uri</tt> <tt class="py-op">=</tt> <tt class="py-name">resp</tt><tt class="py-op">[</tt><tt class="py-string">'location'</tt><tt class="py-op">]</tt> </tt>
-<a name="L428"></a><tt class="py-lineno"> 428</tt> <tt class="py-line"> <tt class="py-keyword">else</tt><tt class="py-op">:</tt> </tt>
-<a name="L429"></a><tt class="py-lineno"> 429</tt> <tt class="py-line"> <tt class="py-keyword">raise</tt> <tt id="link-57" class="py-name"><a title="apiclient.errors.ResumableUploadError" class="py-name" href="#" onclick="return doclink('link-57', 'ResumableUploadError', 'link-6');">ResumableUploadError</a></tt><tt class="py-op">(</tt><tt class="py-string">"Failed to retrieve starting URI."</tt><tt class="py-op">)</tt> </tt>
-<a name="L430"></a><tt class="py-lineno"> 430</tt> <tt class="py-line"> </tt>
-<a name="L431"></a><tt class="py-lineno"> 431</tt> <tt class="py-line"> <tt class="py-name">data</tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-58" class="py-name"><a title="apiclient.http.MediaFileUpload.resumable
-apiclient.http.MediaInMemoryUpload.resumable
-apiclient.http.MediaUpload.resumable" class="py-name" href="#" onclick="return doclink('link-58', 'resumable', 'link-23');">resumable</a></tt><tt class="py-op">.</tt><tt id="link-59" class="py-name" targets="Method apiclient.http.MediaFileUpload.getbytes()=apiclient.http.MediaFileUpload-class.html#getbytes,Method apiclient.http.MediaInMemoryUpload.getbytes()=apiclient.http.MediaInMemoryUpload-class.html#getbytes,Method apiclient.http.MediaUpload.getbytes()=apiclient.http.MediaUpload-class.html#getbytes"><a title="apiclient.http.MediaFileUpload.getbytes
-apiclient.http.MediaInMemoryUpload.getbytes
-apiclient.http.MediaUpload.getbytes" class="py-name" href="#" onclick="return doclink('link-59', 'getbytes', 'link-59');">getbytes</a></tt><tt class="py-op">(</tt><tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">resumable_progress</tt><tt class="py-op">,</tt> </tt>
-<a name="L432"></a><tt class="py-lineno"> 432</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-60" class="py-name"><a title="apiclient.http.MediaFileUpload.resumable
-apiclient.http.MediaInMemoryUpload.resumable
-apiclient.http.MediaUpload.resumable" class="py-name" href="#" onclick="return doclink('link-60', 'resumable', 'link-23');">resumable</a></tt><tt class="py-op">.</tt><tt id="link-61" class="py-name"><a title="apiclient.http.MediaFileUpload.chunksize
-apiclient.http.MediaInMemoryUpload.chunksize
-apiclient.http.MediaUpload.chunksize" class="py-name" href="#" onclick="return doclink('link-61', 'chunksize', 'link-22');">chunksize</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
-<a name="L433"></a><tt class="py-lineno"> 433</tt> <tt class="py-line"> </tt>
-<a name="L434"></a><tt class="py-lineno"> 434</tt> <tt class="py-line"> <tt class="py-name">headers</tt> <tt class="py-op">=</tt> <tt class="py-op">{</tt> </tt>
-<a name="L435"></a><tt class="py-lineno"> 435</tt> <tt class="py-line"> <tt class="py-string">'Content-Range'</tt><tt class="py-op">:</tt> <tt class="py-string">'bytes %d-%d/%d'</tt> <tt class="py-op">%</tt> <tt class="py-op">(</tt> </tt>
-<a name="L436"></a><tt class="py-lineno"> 436</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">resumable_progress</tt><tt class="py-op">,</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">resumable_progress</tt> <tt class="py-op">+</tt> <tt class="py-name">len</tt><tt class="py-op">(</tt><tt class="py-name">data</tt><tt class="py-op">)</tt> <tt class="py-op">-</tt> <tt class="py-number">1</tt><tt class="py-op">,</tt> </tt>
-<a name="L437"></a><tt class="py-lineno"> 437</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-62" class="py-name"><a title="apiclient.http.MediaFileUpload.resumable
-apiclient.http.MediaInMemoryUpload.resumable
-apiclient.http.MediaUpload.resumable" class="py-name" href="#" onclick="return doclink('link-62', 'resumable', 'link-23');">resumable</a></tt><tt class="py-op">.</tt><tt id="link-63" class="py-name"><a title="apiclient.http.MediaFileUpload.size
-apiclient.http.MediaInMemoryUpload.size
-apiclient.http.MediaUpload.size" class="py-name" href="#" onclick="return doclink('link-63', 'size', 'link-54');">size</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt><tt class="py-op">)</tt><tt class="py-op">,</tt> </tt>
-<a name="L438"></a><tt class="py-lineno"> 438</tt> <tt class="py-line"> <tt class="py-op">}</tt> </tt>
-<a name="L439"></a><tt class="py-lineno"> 439</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-64" class="py-name"><a title="apiclient.http
-oauth2client.appengine.OAuth2Decorator.http" class="py-name" href="#" onclick="return doclink('link-64', 'http', 'link-32');">http</a></tt><tt class="py-op">.</tt><tt id="link-65" 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-65', 'request', 'link-46');">request</a></tt><tt class="py-op">(</tt><tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">resumable_uri</tt><tt class="py-op">,</tt> <tt class="py-string">'PUT'</tt><tt class="py-op">,</tt> </tt>
-<a name="L440"></a><tt class="py-lineno"> 440</tt> <tt class="py-line"> <tt class="py-name">body</tt><tt class="py-op">=</tt><tt class="py-name">data</tt><tt class="py-op">,</tt> </tt>
-<a name="L441"></a><tt class="py-lineno"> 441</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="L442"></a><tt class="py-lineno"> 442</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-keyword">in</tt> <tt class="py-op">[</tt><tt class="py-number">200</tt><tt class="py-op">,</tt> <tt class="py-number">201</tt><tt class="py-op">]</tt><tt class="py-op">:</tt> </tt>
-<a name="L443"></a><tt class="py-lineno"> 443</tt> <tt class="py-line"> <tt class="py-keyword">return</tt> <tt class="py-name">None</tt><tt class="py-op">,</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">postproc</tt><tt class="py-op">(</tt><tt class="py-name">resp</tt><tt class="py-op">,</tt> <tt class="py-name">content</tt><tt class="py-op">)</tt> </tt>
-<a name="L444"></a><tt class="py-lineno"> 444</tt> <tt class="py-line"> <tt class="py-keyword">elif</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">308</tt><tt class="py-op">:</tt> </tt>
-<a name="L445"></a><tt class="py-lineno"> 445</tt> <tt class="py-line"> <tt class="py-comment"># A "308 Resume Incomplete" indicates we are not done.</tt> </tt>
-<a name="L446"></a><tt class="py-lineno"> 446</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">resumable_progress</tt> <tt class="py-op">=</tt> <tt class="py-name">int</tt><tt class="py-op">(</tt><tt class="py-name">resp</tt><tt class="py-op">[</tt><tt class="py-string">'range'</tt><tt class="py-op">]</tt><tt class="py-op">.</tt><tt class="py-name">split</tt><tt class="py-op">(</tt><tt class="py-string">'-'</tt><tt class="py-op">)</tt><tt class="py-op">[</tt><tt class="py-number">1</tt><tt class="py-op">]</tt><tt class="py-op">)</tt> <tt class="py-op">+</tt> <tt class="py-number">1</tt> </tt>
-<a name="L447"></a><tt class="py-lineno"> 447</tt> <tt class="py-line"> <tt class="py-keyword">if</tt> <tt class="py-string">'location'</tt> <tt class="py-keyword">in</tt> <tt class="py-name">resp</tt><tt class="py-op">:</tt> </tt>
-<a name="L448"></a><tt class="py-lineno"> 448</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">resumable_uri</tt> <tt class="py-op">=</tt> <tt class="py-name">resp</tt><tt class="py-op">[</tt><tt class="py-string">'location'</tt><tt class="py-op">]</tt> </tt>
-<a name="L449"></a><tt class="py-lineno"> 449</tt> <tt class="py-line"> <tt class="py-keyword">else</tt><tt class="py-op">:</tt> </tt>
-<a name="L450"></a><tt class="py-lineno"> 450</tt> <tt class="py-line"> <tt class="py-keyword">raise</tt> <tt id="link-66" class="py-name"><a title="apiclient.errors.HttpError" class="py-name" href="#" onclick="return doclink('link-66', 'HttpError', 'link-4');">HttpError</a></tt><tt class="py-op">(</tt><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">self</tt><tt class="py-op">.</tt><tt class="py-name">uri</tt><tt class="py-op">)</tt> </tt>
-<a name="L451"></a><tt class="py-lineno"> 451</tt> <tt class="py-line"> </tt>
-<a name="L452"></a><tt class="py-lineno"> 452</tt> <tt class="py-line"> <tt class="py-keyword">return</tt> <tt class="py-op">(</tt><tt id="link-67" class="py-name" targets="Class apiclient.http.MediaUploadProgress=apiclient.http.MediaUploadProgress-class.html"><a title="apiclient.http.MediaUploadProgress" class="py-name" href="#" onclick="return doclink('link-67', 'MediaUploadProgress', 'link-67');">MediaUploadProgress</a></tt><tt class="py-op">(</tt><tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">resumable_progress</tt><tt class="py-op">,</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-68" class="py-name"><a title="apiclient.http.MediaFileUpload.resumable
-apiclient.http.MediaInMemoryUpload.resumable
-apiclient.http.MediaUpload.resumable" class="py-name" href="#" onclick="return doclink('link-68', 'resumable', 'link-23');">resumable</a></tt><tt class="py-op">.</tt><tt id="link-69" class="py-name"><a title="apiclient.http.MediaFileUpload.size
-apiclient.http.MediaInMemoryUpload.size
-apiclient.http.MediaUpload.size" class="py-name" href="#" onclick="return doclink('link-69', 'size', 'link-54');">size</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt><tt class="py-op">)</tt><tt class="py-op">,</tt> </tt>
-<a name="L453"></a><tt class="py-lineno"> 453</tt> <tt class="py-line"> <tt class="py-name">None</tt><tt class="py-op">)</tt> </tt>
-</div><a name="L454"></a><tt class="py-lineno"> 454</tt> <tt class="py-line"> </tt>
-<a name="HttpRequest.to_json"></a><div id="HttpRequest.to_json-def"><a name="L455"></a><tt class="py-lineno"> 455</tt> <a class="py-toggle" href="#" id="HttpRequest.to_json-toggle" onclick="return toggle('HttpRequest.to_json');">-</a><tt class="py-line"> <tt class="py-keyword">def</tt> <a class="py-def-name" href="apiclient.http.HttpRequest-class.html#to_json">to_json</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-</div><div id="HttpRequest.to_json-collapsed" style="display:none;" pad="++++" indent="++++++"></div><div id="HttpRequest.to_json-expanded"><a name="L456"></a><tt class="py-lineno"> 456</tt> <tt class="py-line"> <tt class="py-docstring">"""Returns a JSON representation of the HttpRequest."""</tt> </tt>
-<a name="L457"></a><tt class="py-lineno"> 457</tt> <tt class="py-line"> <tt class="py-name">d</tt> <tt class="py-op">=</tt> <tt class="py-name">copy</tt><tt class="py-op">.</tt><tt class="py-name">copy</tt><tt class="py-op">(</tt><tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">__dict__</tt><tt class="py-op">)</tt> </tt>
-<a name="L458"></a><tt class="py-lineno"> 458</tt> <tt class="py-line"> <tt class="py-keyword">if</tt> <tt class="py-name">d</tt><tt class="py-op">[</tt><tt class="py-string">'resumable'</tt><tt class="py-op">]</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="L459"></a><tt class="py-lineno"> 459</tt> <tt class="py-line"> <tt class="py-name">d</tt><tt class="py-op">[</tt><tt class="py-string">'resumable'</tt><tt class="py-op">]</tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-70" class="py-name"><a title="apiclient.http.MediaFileUpload.resumable
-apiclient.http.MediaInMemoryUpload.resumable
-apiclient.http.MediaUpload.resumable" class="py-name" href="#" onclick="return doclink('link-70', 'resumable', 'link-23');">resumable</a></tt><tt class="py-op">.</tt><tt id="link-71" class="py-name" targets="Method apiclient.http.HttpRequest.to_json()=apiclient.http.HttpRequest-class.html#to_json,Method apiclient.http.MediaFileUpload.to_json()=apiclient.http.MediaFileUpload-class.html#to_json,Method apiclient.http.MediaInMemoryUpload.to_json()=apiclient.http.MediaInMemoryUpload-class.html#to_json,Method apiclient.http.MediaUpload.to_json()=apiclient.http.MediaUpload-class.html#to_json,Method oauth2client.client.Credentials.to_json()=oauth2client.client.Credentials-class.html#to_json,Method oauth2client.client.OAuth2Credentials.to_json()=oauth2client.client.OAuth2Credentials-class.html#to_json"><a title="apiclient.http.HttpRequest.to_json
-apiclient.http.MediaFileUpload.to_json
-apiclient.http.MediaInMemoryUpload.to_json
-apiclient.http.MediaUpload.to_json
-oauth2client.client.Credentials.to_json
-oauth2client.client.OAuth2Credentials.to_json" class="py-name" href="#" onclick="return doclink('link-71', 'to_json', 'link-71');">to_json</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
-<a name="L460"></a><tt class="py-lineno"> 460</tt> <tt class="py-line"> <tt class="py-keyword">del</tt> <tt class="py-name">d</tt><tt class="py-op">[</tt><tt class="py-string">'http'</tt><tt class="py-op">]</tt> </tt>
-<a name="L461"></a><tt class="py-lineno"> 461</tt> <tt class="py-line"> <tt class="py-keyword">del</tt> <tt class="py-name">d</tt><tt class="py-op">[</tt><tt class="py-string">'postproc'</tt><tt class="py-op">]</tt> </tt>
-<a name="L462"></a><tt class="py-lineno"> 462</tt> <tt class="py-line"> <tt class="py-keyword">return</tt> <tt class="py-name">simplejson</tt><tt class="py-op">.</tt><tt class="py-name">dumps</tt><tt class="py-op">(</tt><tt class="py-name">d</tt><tt class="py-op">)</tt> </tt>
-</div><a name="L463"></a><tt class="py-lineno"> 463</tt> <tt class="py-line"> </tt>
-<a name="L464"></a><tt class="py-lineno"> 464</tt> <tt class="py-line"> <tt class="py-decorator">@</tt><tt class="py-decorator">staticmethod</tt> </tt>
-<a name="HttpRequest.from_json"></a><div id="HttpRequest.from_json-def"><a name="L465"></a><tt class="py-lineno"> 465</tt> <a class="py-toggle" href="#" id="HttpRequest.from_json-toggle" onclick="return toggle('HttpRequest.from_json');">-</a><tt class="py-line"> <tt class="py-keyword">def</tt> <a class="py-def-name" href="apiclient.http.HttpRequest-class.html#from_json">from_json</a><tt class="py-op">(</tt><tt class="py-param">s</tt><tt class="py-op">,</tt> <tt class="py-param">http</tt><tt class="py-op">,</tt> <tt class="py-param">postproc</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-</div><div id="HttpRequest.from_json-collapsed" style="display:none;" pad="++++" indent="++++++"></div><div id="HttpRequest.from_json-expanded"><a name="L466"></a><tt class="py-lineno"> 466</tt> <tt class="py-line"> <tt class="py-docstring">"""Returns an HttpRequest populated with info from a JSON object."""</tt> </tt>
-<a name="L467"></a><tt class="py-lineno"> 467</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-72" class="py-name"><a title="oauth2client.clientsecrets.loads" class="py-name" href="#" onclick="return doclink('link-72', 'loads', 'link-16');">loads</a></tt><tt class="py-op">(</tt><tt class="py-name">s</tt><tt class="py-op">)</tt> </tt>
-<a name="L468"></a><tt class="py-lineno"> 468</tt> <tt class="py-line"> <tt class="py-keyword">if</tt> <tt class="py-name">d</tt><tt class="py-op">[</tt><tt class="py-string">'resumable'</tt><tt class="py-op">]</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="L469"></a><tt class="py-lineno"> 469</tt> <tt class="py-line"> <tt class="py-name">d</tt><tt class="py-op">[</tt><tt class="py-string">'resumable'</tt><tt class="py-op">]</tt> <tt class="py-op">=</tt> <tt id="link-73" class="py-name" targets="Class apiclient.http.MediaUpload=apiclient.http.MediaUpload-class.html"><a title="apiclient.http.MediaUpload" class="py-name" href="#" onclick="return doclink('link-73', 'MediaUpload', 'link-73');">MediaUpload</a></tt><tt class="py-op">.</tt><tt id="link-74" class="py-name" targets="Class Method apiclient.http.MediaUpload.new_from_json()=apiclient.http.MediaUpload-class.html#new_from_json,Class Method oauth2client.client.Credentials.new_from_json()=oauth2client.client.Credentials-class.html#new_from_json"><a title="apiclient.http.MediaUpload.new_from_json
-oauth2client.client.Credentials.new_from_json" class="py-name" href="#" onclick="return doclink('link-74', 'new_from_json', 'link-74');">new_from_json</a></tt><tt class="py-op">(</tt><tt class="py-name">d</tt><tt class="py-op">[</tt><tt class="py-string">'resumable'</tt><tt class="py-op">]</tt><tt class="py-op">)</tt> </tt>
-<a name="L470"></a><tt class="py-lineno"> 470</tt> <tt class="py-line"> <tt class="py-keyword">return</tt> <tt id="link-75" class="py-name" targets="Class apiclient.http.HttpRequest=apiclient.http.HttpRequest-class.html"><a title="apiclient.http.HttpRequest" class="py-name" href="#" onclick="return doclink('link-75', 'HttpRequest', 'link-75');">HttpRequest</a></tt><tt class="py-op">(</tt> </tt>
-<a name="L471"></a><tt class="py-lineno"> 471</tt> <tt class="py-line"> <tt id="link-76" class="py-name"><a title="apiclient.http
-oauth2client.appengine.OAuth2Decorator.http" class="py-name" href="#" onclick="return doclink('link-76', 'http', 'link-32');">http</a></tt><tt class="py-op">,</tt> </tt>
-<a name="L472"></a><tt class="py-lineno"> 472</tt> <tt class="py-line"> <tt class="py-name">postproc</tt><tt class="py-op">,</tt> </tt>
-<a name="L473"></a><tt class="py-lineno"> 473</tt> <tt class="py-line"> <tt class="py-name">uri</tt><tt class="py-op">=</tt><tt class="py-name">d</tt><tt class="py-op">[</tt><tt class="py-string">'uri'</tt><tt class="py-op">]</tt><tt class="py-op">,</tt> </tt>
-<a name="L474"></a><tt class="py-lineno"> 474</tt> <tt class="py-line"> <tt class="py-name">method</tt><tt class="py-op">=</tt><tt class="py-name">d</tt><tt class="py-op">[</tt><tt class="py-string">'method'</tt><tt class="py-op">]</tt><tt class="py-op">,</tt> </tt>
-<a name="L475"></a><tt class="py-lineno"> 475</tt> <tt class="py-line"> <tt class="py-name">body</tt><tt class="py-op">=</tt><tt class="py-name">d</tt><tt class="py-op">[</tt><tt class="py-string">'body'</tt><tt class="py-op">]</tt><tt class="py-op">,</tt> </tt>
-<a name="L476"></a><tt class="py-lineno"> 476</tt> <tt class="py-line"> <tt class="py-name">headers</tt><tt class="py-op">=</tt><tt class="py-name">d</tt><tt class="py-op">[</tt><tt class="py-string">'headers'</tt><tt class="py-op">]</tt><tt class="py-op">,</tt> </tt>
-<a name="L477"></a><tt class="py-lineno"> 477</tt> <tt class="py-line"> <tt class="py-name">methodId</tt><tt class="py-op">=</tt><tt class="py-name">d</tt><tt class="py-op">[</tt><tt class="py-string">'methodId'</tt><tt class="py-op">]</tt><tt class="py-op">,</tt> </tt>
-<a name="L478"></a><tt class="py-lineno"> 478</tt> <tt class="py-line"> <tt id="link-77" class="py-name"><a title="apiclient.http.MediaFileUpload.resumable
-apiclient.http.MediaInMemoryUpload.resumable
-apiclient.http.MediaUpload.resumable" class="py-name" href="#" onclick="return doclink('link-77', 'resumable', 'link-23');">resumable</a></tt><tt class="py-op">=</tt><tt class="py-name">d</tt><tt class="py-op">[</tt><tt class="py-string">'resumable'</tt><tt class="py-op">]</tt><tt class="py-op">)</tt> </tt>
-</div></div><a name="L479"></a><tt class="py-lineno"> 479</tt> <tt class="py-line"> </tt>
-<a name="BatchHttpRequest"></a><div id="BatchHttpRequest-def"><a name="L480"></a><tt class="py-lineno"> 480</tt> <tt class="py-line"> </tt>
-<a name="L481"></a><tt class="py-lineno"> 481</tt> <a class="py-toggle" href="#" id="BatchHttpRequest-toggle" onclick="return toggle('BatchHttpRequest');">-</a><tt class="py-line"><tt class="py-keyword">class</tt> <a class="py-def-name" href="apiclient.http.BatchHttpRequest-class.html">BatchHttpRequest</a><tt class="py-op">(</tt><tt class="py-base-class">object</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-</div><div id="BatchHttpRequest-collapsed" style="display:none;" pad="++++" indent="++++"></div><div id="BatchHttpRequest-expanded"><a name="L482"></a><tt class="py-lineno"> 482</tt> <tt class="py-line"> <tt class="py-docstring">"""Batches multiple HttpRequest objects into a single HTTP request."""</tt> </tt>
-<a name="L483"></a><tt class="py-lineno"> 483</tt> <tt class="py-line"> </tt>
-<a name="BatchHttpRequest.__init__"></a><div id="BatchHttpRequest.__init__-def"><a name="L484"></a><tt class="py-lineno"> 484</tt> <a class="py-toggle" href="#" id="BatchHttpRequest.__init__-toggle" onclick="return toggle('BatchHttpRequest.__init__');">-</a><tt class="py-line"> <tt class="py-keyword">def</tt> <a class="py-def-name" href="apiclient.http.BatchHttpRequest-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">callback</tt><tt class="py-op">=</tt><tt class="py-name">None</tt><tt class="py-op">,</tt> <tt class="py-param">batch_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="BatchHttpRequest.__init__-collapsed" style="display:none;" pad="++++" indent="++++++"></div><div id="BatchHttpRequest.__init__-expanded"><a name="L485"></a><tt class="py-lineno"> 485</tt> <tt class="py-line"> <tt class="py-docstring">"""Constructor for a BatchHttpRequest.</tt> </tt>
-<a name="L486"></a><tt class="py-lineno"> 486</tt> <tt class="py-line"><tt class="py-docstring"></tt> </tt>
-<a name="L487"></a><tt class="py-lineno"> 487</tt> <tt class="py-line"><tt class="py-docstring"> Args:</tt> </tt>
-<a name="L488"></a><tt class="py-lineno"> 488</tt> <tt class="py-line"><tt class="py-docstring"> callback: callable, A callback to be called for each response, of the</tt> </tt>
-<a name="L489"></a><tt class="py-lineno"> 489</tt> <tt class="py-line"><tt class="py-docstring"> form callback(id, response). The first parameter is the request id, and</tt> </tt>
-<a name="L490"></a><tt class="py-lineno"> 490</tt> <tt class="py-line"><tt class="py-docstring"> the second is the deserialized response object.</tt> </tt>
-<a name="L491"></a><tt class="py-lineno"> 491</tt> <tt class="py-line"><tt class="py-docstring"> batch_uri: string, URI to send batch requests to.</tt> </tt>
-<a name="L492"></a><tt class="py-lineno"> 492</tt> <tt class="py-line"><tt class="py-docstring"> """</tt> </tt>
-<a name="L493"></a><tt class="py-lineno"> 493</tt> <tt class="py-line"> <tt class="py-keyword">if</tt> <tt class="py-name">batch_uri</tt> <tt class="py-keyword">is</tt> <tt class="py-name">None</tt><tt class="py-op">:</tt> </tt>
-<a name="L494"></a><tt class="py-lineno"> 494</tt> <tt class="py-line"> <tt class="py-name">batch_uri</tt> <tt class="py-op">=</tt> <tt class="py-string">'https://www.googleapis.com/batch'</tt> </tt>
-<a name="L495"></a><tt class="py-lineno"> 495</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">_batch_uri</tt> <tt class="py-op">=</tt> <tt class="py-name">batch_uri</tt> </tt>
-<a name="L496"></a><tt class="py-lineno"> 496</tt> <tt class="py-line"> </tt>
-<a name="L497"></a><tt class="py-lineno"> 497</tt> <tt class="py-line"> <tt class="py-comment"># Global callback to be called for each individual response in the batch.</tt> </tt>
-<a name="L498"></a><tt class="py-lineno"> 498</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">_callback</tt> <tt class="py-op">=</tt> <tt class="py-name">callback</tt> </tt>
-<a name="L499"></a><tt class="py-lineno"> 499</tt> <tt class="py-line"> </tt>
-<a name="L500"></a><tt class="py-lineno"> 500</tt> <tt class="py-line"> <tt class="py-comment"># A map from id to request.</tt> </tt>
-<a name="L501"></a><tt class="py-lineno"> 501</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">_requests</tt> <tt class="py-op">=</tt> <tt class="py-op">{</tt><tt class="py-op">}</tt> </tt>
-<a name="L502"></a><tt class="py-lineno"> 502</tt> <tt class="py-line"> </tt>
-<a name="L503"></a><tt class="py-lineno"> 503</tt> <tt class="py-line"> <tt class="py-comment"># A map from id to callback.</tt> </tt>
-<a name="L504"></a><tt class="py-lineno"> 504</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">_callbacks</tt> <tt class="py-op">=</tt> <tt class="py-op">{</tt><tt class="py-op">}</tt> </tt>
-<a name="L505"></a><tt class="py-lineno"> 505</tt> <tt class="py-line"> </tt>
-<a name="L506"></a><tt class="py-lineno"> 506</tt> <tt class="py-line"> <tt class="py-comment"># List of request ids, in the order in which they were added.</tt> </tt>
-<a name="L507"></a><tt class="py-lineno"> 507</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">_order</tt> <tt class="py-op">=</tt> <tt class="py-op">[</tt><tt class="py-op">]</tt> </tt>
-<a name="L508"></a><tt class="py-lineno"> 508</tt> <tt class="py-line"> </tt>
-<a name="L509"></a><tt class="py-lineno"> 509</tt> <tt class="py-line"> <tt class="py-comment"># The last auto generated id.</tt> </tt>
-<a name="L510"></a><tt class="py-lineno"> 510</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">_last_auto_id</tt> <tt class="py-op">=</tt> <tt class="py-number">0</tt> </tt>
-<a name="L511"></a><tt class="py-lineno"> 511</tt> <tt class="py-line"> </tt>
-<a name="L512"></a><tt class="py-lineno"> 512</tt> <tt class="py-line"> <tt class="py-comment"># Unique ID on which to base the Content-ID headers.</tt> </tt>
-<a name="L513"></a><tt class="py-lineno"> 513</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">_base_id</tt> <tt class="py-op">=</tt> <tt class="py-name">None</tt> </tt>
-<a name="L514"></a><tt class="py-lineno"> 514</tt> <tt class="py-line"> </tt>
-<a name="L515"></a><tt class="py-lineno"> 515</tt> <tt class="py-line"> <tt class="py-comment"># A map from request id to (headers, content) response pairs</tt> </tt>
-<a name="L516"></a><tt class="py-lineno"> 516</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">_responses</tt> <tt class="py-op">=</tt> <tt class="py-op">{</tt><tt class="py-op">}</tt> </tt>
-<a name="L517"></a><tt class="py-lineno"> 517</tt> <tt class="py-line"> </tt>
-<a name="L518"></a><tt class="py-lineno"> 518</tt> <tt class="py-line"> <tt class="py-comment"># A map of id(Credentials) that have been refreshed.</tt> </tt>
-<a name="L519"></a><tt class="py-lineno"> 519</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">_refreshed_credentials</tt> <tt class="py-op">=</tt> <tt class="py-op">{</tt><tt class="py-op">}</tt> </tt>
-</div><a name="L520"></a><tt class="py-lineno"> 520</tt> <tt class="py-line"> </tt>
-<a name="BatchHttpRequest._refresh_and_apply_credentials"></a><div id="BatchHttpRequest._refresh_and_apply_credentials-def"><a name="L521"></a><tt class="py-lineno"> 521</tt> <a class="py-toggle" href="#" id="BatchHttpRequest._refresh_and_apply_credentials-toggle" onclick="return toggle('BatchHttpRequest._refresh_and_apply_credentials');">-</a><tt class="py-line"> <tt class="py-keyword">def</tt> <a class="py-def-name" href="apiclient.http.BatchHttpRequest-class.html#_refresh_and_apply_credentials">_refresh_and_apply_credentials</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">,</tt> <tt class="py-param">request</tt><tt class="py-op">,</tt> <tt class="py-param">http</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-</div><div id="BatchHttpRequest._refresh_and_apply_credentials-collapsed" style="display:none;" pad="++++" indent="++++++"></div><div id="BatchHttpRequest._refresh_and_apply_credentials-expanded"><a name="L522"></a><tt class="py-lineno"> 522</tt> <tt class="py-line"> <tt class="py-docstring">"""Refresh the credentials and apply to the request.</tt> </tt>
+oauth2client.client.Storage.get" class="py-name" href="#" onclick="return doclink('link-48', 'get', 'link-48');">get</a></tt><tt class="py-op">(</tt><tt class="py-string">'content-type'</tt><tt class="py-op">,</tt> <tt class="py-string">'application/json'</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
+<a name="L507"></a><tt class="py-lineno"> 507</tt> <tt class="py-line"> </tt>
+<a name="L508"></a><tt class="py-lineno"> 508</tt> <tt class="py-line"> <tt class="py-comment"># The size of the non-media part of the request.</tt> </tt>
+<a name="L509"></a><tt class="py-lineno"> 509</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">body_size</tt> <tt class="py-op">=</tt> <tt class="py-name">len</tt><tt class="py-op">(</tt><tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">body</tt> <tt class="py-keyword">or</tt> <tt class="py-string">''</tt><tt class="py-op">)</tt> </tt>
+<a name="L510"></a><tt class="py-lineno"> 510</tt> <tt class="py-line"> </tt>
+<a name="L511"></a><tt class="py-lineno"> 511</tt> <tt class="py-line"> <tt class="py-comment"># The resumable URI to send chunks to.</tt> </tt>
+<a name="L512"></a><tt class="py-lineno"> 512</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">resumable_uri</tt> <tt class="py-op">=</tt> <tt class="py-name">None</tt> </tt>
+<a name="L513"></a><tt class="py-lineno"> 513</tt> <tt class="py-line"> </tt>
+<a name="L514"></a><tt class="py-lineno"> 514</tt> <tt class="py-line"> <tt class="py-comment"># The bytes that have been uploaded.</tt> </tt>
+<a name="L515"></a><tt class="py-lineno"> 515</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">resumable_progress</tt> <tt class="py-op">=</tt> <tt class="py-number">0</tt> </tt>
+</div><a name="L516"></a><tt class="py-lineno"> 516</tt> <tt class="py-line"> </tt>
+<a name="HttpRequest.execute"></a><div id="HttpRequest.execute-def"><a name="L517"></a><tt class="py-lineno"> 517</tt> <a class="py-toggle" href="#" id="HttpRequest.execute-toggle" onclick="return toggle('HttpRequest.execute');">-</a><tt class="py-line"> <tt class="py-keyword">def</tt> <a class="py-def-name" href="apiclient.http.HttpRequest-class.html#execute">execute</a><tt class="py-op">(</tt><tt class="py-param">self</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="HttpRequest.execute-collapsed" style="display:none;" pad="++++" indent="++++++"></div><div id="HttpRequest.execute-expanded"><a name="L518"></a><tt class="py-lineno"> 518</tt> <tt class="py-line"> <tt class="py-docstring">"""Execute the request.</tt> </tt>
+<a name="L519"></a><tt class="py-lineno"> 519</tt> <tt class="py-line"><tt class="py-docstring"></tt> </tt>
+<a name="L520"></a><tt class="py-lineno"> 520</tt> <tt class="py-line"><tt class="py-docstring"> Args:</tt> </tt>
+<a name="L521"></a><tt class="py-lineno"> 521</tt> <tt class="py-line"><tt class="py-docstring"> http: httplib2.Http, an http object to be used in place of the</tt> </tt>
+<a name="L522"></a><tt class="py-lineno"> 522</tt> <tt class="py-line"><tt class="py-docstring"> one the HttpRequest request object was constructed with.</tt> </tt>
<a name="L523"></a><tt class="py-lineno"> 523</tt> <tt class="py-line"><tt class="py-docstring"></tt> </tt>
-<a name="L524"></a><tt class="py-lineno"> 524</tt> <tt class="py-line"><tt class="py-docstring"> Args:</tt> </tt>
-<a name="L525"></a><tt class="py-lineno"> 525</tt> <tt class="py-line"><tt class="py-docstring"> request: HttpRequest, the request.</tt> </tt>
-<a name="L526"></a><tt class="py-lineno"> 526</tt> <tt class="py-line"><tt class="py-docstring"> http: httplib2.Http, the global http object for the batch.</tt> </tt>
-<a name="L527"></a><tt class="py-lineno"> 527</tt> <tt class="py-line"><tt class="py-docstring"> """</tt> </tt>
-<a name="L528"></a><tt class="py-lineno"> 528</tt> <tt class="py-line"> <tt class="py-comment"># For the credentials to refresh, but only once per refresh_token</tt> </tt>
-<a name="L529"></a><tt class="py-lineno"> 529</tt> <tt class="py-line"> <tt class="py-comment"># If there is no http per the request then refresh the http passed in</tt> </tt>
-<a name="L530"></a><tt class="py-lineno"> 530</tt> <tt class="py-line"> <tt class="py-comment"># via execute()</tt> </tt>
-<a name="L531"></a><tt class="py-lineno"> 531</tt> <tt class="py-line"> <tt class="py-name">creds</tt> <tt class="py-op">=</tt> <tt class="py-name">None</tt> </tt>
-<a name="L532"></a><tt class="py-lineno"> 532</tt> <tt class="py-line"> <tt class="py-keyword">if</tt> <tt id="link-78" class="py-name"><a title="apiclient.http.HttpMock.request
+<a name="L524"></a><tt class="py-lineno"> 524</tt> <tt class="py-line"><tt class="py-docstring"> Returns:</tt> </tt>
+<a name="L525"></a><tt class="py-lineno"> 525</tt> <tt class="py-line"><tt class="py-docstring"> A deserialized object model of the response body as determined</tt> </tt>
+<a name="L526"></a><tt class="py-lineno"> 526</tt> <tt class="py-line"><tt class="py-docstring"> by the postproc.</tt> </tt>
+<a name="L527"></a><tt class="py-lineno"> 527</tt> <tt class="py-line"><tt class="py-docstring"></tt> </tt>
+<a name="L528"></a><tt class="py-lineno"> 528</tt> <tt class="py-line"><tt class="py-docstring"> Raises:</tt> </tt>
+<a name="L529"></a><tt class="py-lineno"> 529</tt> <tt class="py-line"><tt class="py-docstring"> apiclient.errors.HttpError if the response was not a 2xx.</tt> </tt>
+<a name="L530"></a><tt class="py-lineno"> 530</tt> <tt class="py-line"><tt class="py-docstring"> httplib2.Error if a transport error has occured.</tt> </tt>
+<a name="L531"></a><tt class="py-lineno"> 531</tt> <tt class="py-line"><tt class="py-docstring"> """</tt> </tt>
+<a name="L532"></a><tt class="py-lineno"> 532</tt> <tt class="py-line"> <tt class="py-keyword">if</tt> <tt id="link-49" class="py-name"><a title="apiclient.http
+oauth2client.appengine.OAuth2Decorator.http" class="py-name" href="#" onclick="return doclink('link-49', 'http', 'link-42');">http</a></tt> <tt class="py-keyword">is</tt> <tt class="py-name">None</tt><tt class="py-op">:</tt> </tt>
+<a name="L533"></a><tt class="py-lineno"> 533</tt> <tt class="py-line"> <tt id="link-50" class="py-name"><a title="apiclient.http
+oauth2client.appengine.OAuth2Decorator.http" class="py-name" href="#" onclick="return doclink('link-50', 'http', 'link-42');">http</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-51" class="py-name"><a title="apiclient.http
+oauth2client.appengine.OAuth2Decorator.http" class="py-name" href="#" onclick="return doclink('link-51', 'http', 'link-42');">http</a></tt> </tt>
+<a name="L534"></a><tt class="py-lineno"> 534</tt> <tt class="py-line"> <tt class="py-keyword">if</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-52" class="py-name"><a title="apiclient.http.MediaFileUpload.resumable
+apiclient.http.MediaInMemoryUpload.resumable
+apiclient.http.MediaIoBaseUpload.resumable
+apiclient.http.MediaUpload.resumable" class="py-name" href="#" onclick="return doclink('link-52', 'resumable', 'link-28');">resumable</a></tt><tt class="py-op">:</tt> </tt>
+<a name="L535"></a><tt class="py-lineno"> 535</tt> <tt class="py-line"> <tt class="py-name">body</tt> <tt class="py-op">=</tt> <tt class="py-name">None</tt> </tt>
+<a name="L536"></a><tt class="py-lineno"> 536</tt> <tt class="py-line"> <tt class="py-keyword">while</tt> <tt class="py-name">body</tt> <tt class="py-keyword">is</tt> <tt class="py-name">None</tt><tt class="py-op">:</tt> </tt>
+<a name="L537"></a><tt class="py-lineno"> 537</tt> <tt class="py-line"> <tt class="py-name">_</tt><tt class="py-op">,</tt> <tt class="py-name">body</tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-53" class="py-name" targets="Method apiclient.http.HttpRequest.next_chunk()=apiclient.http.HttpRequest-class.html#next_chunk"><a title="apiclient.http.HttpRequest.next_chunk" class="py-name" href="#" onclick="return doclink('link-53', 'next_chunk', 'link-53');">next_chunk</a></tt><tt class="py-op">(</tt><tt id="link-54" class="py-name"><a title="apiclient.http
+oauth2client.appengine.OAuth2Decorator.http" class="py-name" href="#" onclick="return doclink('link-54', 'http', 'link-42');">http</a></tt><tt class="py-op">)</tt> </tt>
+<a name="L538"></a><tt class="py-lineno"> 538</tt> <tt class="py-line"> <tt class="py-keyword">return</tt> <tt class="py-name">body</tt> </tt>
+<a name="L539"></a><tt class="py-lineno"> 539</tt> <tt class="py-line"> <tt class="py-keyword">else</tt><tt class="py-op">:</tt> </tt>
+<a name="L540"></a><tt class="py-lineno"> 540</tt> <tt class="py-line"> <tt class="py-keyword">if</tt> <tt class="py-string">'content-length'</tt> <tt class="py-keyword">not</tt> <tt class="py-keyword">in</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">headers</tt><tt class="py-op">:</tt> </tt>
+<a name="L541"></a><tt class="py-lineno"> 541</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">headers</tt><tt class="py-op">[</tt><tt class="py-string">'content-length'</tt><tt class="py-op">]</tt> <tt class="py-op">=</tt> <tt class="py-name">str</tt><tt class="py-op">(</tt><tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">body_size</tt><tt class="py-op">)</tt> </tt>
+<a name="L542"></a><tt class="py-lineno"> 542</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-55" class="py-name"><a title="apiclient.http
+oauth2client.appengine.OAuth2Decorator.http" class="py-name" href="#" onclick="return doclink('link-55', 'http', 'link-42');">http</a></tt><tt class="py-op">.</tt><tt id="link-56" class="py-name" targets="Method apiclient.http.HttpMock.request()=apiclient.http.HttpMock-class.html#request,Method apiclient.http.HttpMockSequence.request()=apiclient.http.HttpMockSequence-class.html#request,Method apiclient.model.BaseModel.request()=apiclient.model.BaseModel-class.html#request,Method apiclient.model.Model.request()=apiclient.model.Model-class.html#request"><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-78', 'request', 'link-46');">request</a></tt><tt class="py-op">.</tt><tt id="link-79" class="py-name"><a title="apiclient.http
-oauth2client.appengine.OAuth2Decorator.http" class="py-name" href="#" onclick="return doclink('link-79', 'http', 'link-32');">http</a></tt> <tt class="py-keyword">is</tt> <tt class="py-keyword">not</tt> <tt class="py-name">None</tt> <tt class="py-keyword">and</tt> <tt class="py-name">hasattr</tt><tt class="py-op">(</tt><tt id="link-80" 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-80', 'request', 'link-46');">request</a></tt><tt class="py-op">.</tt><tt id="link-81" class="py-name"><a title="apiclient.http
-oauth2client.appengine.OAuth2Decorator.http" class="py-name" href="#" onclick="return doclink('link-81', 'http', 'link-32');">http</a></tt><tt class="py-op">.</tt><tt id="link-82" 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-82', 'request', 'link-46');">request</a></tt><tt class="py-op">,</tt> </tt>
-<a name="L533"></a><tt class="py-lineno"> 533</tt> <tt class="py-line"> <tt class="py-string">'credentials'</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-<a name="L534"></a><tt class="py-lineno"> 534</tt> <tt class="py-line"> <tt class="py-name">creds</tt> <tt class="py-op">=</tt> <tt id="link-83" 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-83', 'request', 'link-46');">request</a></tt><tt class="py-op">.</tt><tt id="link-84" class="py-name"><a title="apiclient.http
-oauth2client.appengine.OAuth2Decorator.http" class="py-name" href="#" onclick="return doclink('link-84', 'http', 'link-32');">http</a></tt><tt class="py-op">.</tt><tt id="link-85" 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-85', 'request', 'link-46');">request</a></tt><tt class="py-op">.</tt><tt id="link-86" class="py-name" targets="Variable oauth2client.appengine.CredentialsModel.credentials=oauth2client.appengine.CredentialsModel-class.html#credentials"><a title="oauth2client.appengine.CredentialsModel.credentials" class="py-name" href="#" onclick="return doclink('link-86', 'credentials', 'link-86');">credentials</a></tt> </tt>
-<a name="L535"></a><tt class="py-lineno"> 535</tt> <tt class="py-line"> <tt class="py-keyword">elif</tt> <tt id="link-87" class="py-name"><a title="apiclient.http
-oauth2client.appengine.OAuth2Decorator.http" class="py-name" href="#" onclick="return doclink('link-87', 'http', 'link-32');">http</a></tt> <tt class="py-keyword">is</tt> <tt class="py-keyword">not</tt> <tt class="py-name">None</tt> <tt class="py-keyword">and</tt> <tt class="py-name">hasattr</tt><tt class="py-op">(</tt><tt id="link-88" class="py-name"><a title="apiclient.http
-oauth2client.appengine.OAuth2Decorator.http" class="py-name" href="#" onclick="return doclink('link-88', 'http', 'link-32');">http</a></tt><tt class="py-op">.</tt><tt id="link-89" 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-89', 'request', 'link-46');">request</a></tt><tt class="py-op">,</tt> <tt class="py-string">'credentials'</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-<a name="L536"></a><tt class="py-lineno"> 536</tt> <tt class="py-line"> <tt class="py-name">creds</tt> <tt class="py-op">=</tt> <tt id="link-90" class="py-name"><a title="apiclient.http
-oauth2client.appengine.OAuth2Decorator.http" class="py-name" href="#" onclick="return doclink('link-90', 'http', 'link-32');">http</a></tt><tt class="py-op">.</tt><tt id="link-91" 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-91', 'request', 'link-46');">request</a></tt><tt class="py-op">.</tt><tt id="link-92" class="py-name"><a title="oauth2client.appengine.CredentialsModel.credentials" class="py-name" href="#" onclick="return doclink('link-92', 'credentials', 'link-86');">credentials</a></tt> </tt>
-<a name="L537"></a><tt class="py-lineno"> 537</tt> <tt class="py-line"> <tt class="py-keyword">if</tt> <tt class="py-name">creds</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="L538"></a><tt class="py-lineno"> 538</tt> <tt class="py-line"> <tt class="py-keyword">if</tt> <tt class="py-name">id</tt><tt class="py-op">(</tt><tt class="py-name">creds</tt><tt class="py-op">)</tt> <tt class="py-keyword">not</tt> <tt class="py-keyword">in</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">_refreshed_credentials</tt><tt class="py-op">:</tt> </tt>
-<a name="L539"></a><tt class="py-lineno"> 539</tt> <tt class="py-line"> <tt class="py-name">creds</tt><tt class="py-op">.</tt><tt id="link-93" class="py-name" targets="Method oauth2client.client.Credentials.refresh()=oauth2client.client.Credentials-class.html#refresh,Method oauth2client.client.OAuth2Credentials.refresh()=oauth2client.client.OAuth2Credentials-class.html#refresh"><a title="oauth2client.client.Credentials.refresh
-oauth2client.client.OAuth2Credentials.refresh" class="py-name" href="#" onclick="return doclink('link-93', 'refresh', 'link-93');">refresh</a></tt><tt class="py-op">(</tt><tt id="link-94" class="py-name"><a title="apiclient.http
-oauth2client.appengine.OAuth2Decorator.http" class="py-name" href="#" onclick="return doclink('link-94', 'http', 'link-32');">http</a></tt><tt class="py-op">)</tt> </tt>
-<a name="L540"></a><tt class="py-lineno"> 540</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">_refreshed_credentials</tt><tt class="py-op">[</tt><tt class="py-name">id</tt><tt class="py-op">(</tt><tt class="py-name">creds</tt><tt class="py-op">)</tt><tt class="py-op">]</tt> <tt class="py-op">=</tt> <tt class="py-number">1</tt> </tt>
-<a name="L541"></a><tt class="py-lineno"> 541</tt> <tt class="py-line"> </tt>
-<a name="L542"></a><tt class="py-lineno"> 542</tt> <tt class="py-line"> <tt class="py-comment"># Only apply the credentials if we are using the http object passed in,</tt> </tt>
-<a name="L543"></a><tt class="py-lineno"> 543</tt> <tt class="py-line"> <tt class="py-comment"># otherwise apply() will get called during _serialize_request().</tt> </tt>
-<a name="L544"></a><tt class="py-lineno"> 544</tt> <tt class="py-line"> <tt class="py-keyword">if</tt> <tt id="link-95" 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-95', 'request', 'link-46');">request</a></tt><tt class="py-op">.</tt><tt id="link-96" class="py-name"><a title="apiclient.http
-oauth2client.appengine.OAuth2Decorator.http" class="py-name" href="#" onclick="return doclink('link-96', 'http', 'link-32');">http</a></tt> <tt class="py-keyword">is</tt> <tt class="py-name">None</tt> <tt class="py-keyword">or</tt> <tt class="py-keyword">not</tt> <tt class="py-name">hasattr</tt><tt class="py-op">(</tt><tt id="link-97" 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-97', 'request', 'link-46');">request</a></tt><tt class="py-op">.</tt><tt id="link-98" class="py-name"><a title="apiclient.http
-oauth2client.appengine.OAuth2Decorator.http" class="py-name" href="#" onclick="return doclink('link-98', 'http', 'link-32');">http</a></tt><tt class="py-op">.</tt><tt id="link-99" 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-99', 'request', 'link-46');">request</a></tt><tt class="py-op">,</tt> </tt>
-<a name="L545"></a><tt class="py-lineno"> 545</tt> <tt class="py-line"> <tt class="py-string">'credentials'</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-<a name="L546"></a><tt class="py-lineno"> 546</tt> <tt class="py-line"> <tt class="py-name">creds</tt><tt class="py-op">.</tt><tt id="link-100" class="py-name" targets="Method oauth2client.client.Credentials.apply()=oauth2client.client.Credentials-class.html#apply,Method oauth2client.client.OAuth2Credentials.apply()=oauth2client.client.OAuth2Credentials-class.html#apply"><a title="oauth2client.client.Credentials.apply
-oauth2client.client.OAuth2Credentials.apply" class="py-name" href="#" onclick="return doclink('link-100', 'apply', 'link-100');">apply</a></tt><tt class="py-op">(</tt><tt id="link-101" 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-101', 'request', 'link-46');">request</a></tt><tt class="py-op">.</tt><tt class="py-name">headers</tt><tt class="py-op">)</tt> </tt>
-</div><a name="L547"></a><tt class="py-lineno"> 547</tt> <tt class="py-line"> </tt>
-<a name="BatchHttpRequest._id_to_header"></a><div id="BatchHttpRequest._id_to_header-def"><a name="L548"></a><tt class="py-lineno"> 548</tt> <a class="py-toggle" href="#" id="BatchHttpRequest._id_to_header-toggle" onclick="return toggle('BatchHttpRequest._id_to_header');">-</a><tt class="py-line"> <tt class="py-keyword">def</tt> <a class="py-def-name" href="apiclient.http.BatchHttpRequest-class.html#_id_to_header">_id_to_header</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">,</tt> <tt class="py-param">id_</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-</div><div id="BatchHttpRequest._id_to_header-collapsed" style="display:none;" pad="++++" indent="++++++"></div><div id="BatchHttpRequest._id_to_header-expanded"><a name="L549"></a><tt class="py-lineno"> 549</tt> <tt class="py-line"> <tt class="py-docstring">"""Convert an id to a Content-ID header value.</tt> </tt>
-<a name="L550"></a><tt class="py-lineno"> 550</tt> <tt class="py-line"><tt class="py-docstring"></tt> </tt>
-<a name="L551"></a><tt class="py-lineno"> 551</tt> <tt class="py-line"><tt class="py-docstring"> Args:</tt> </tt>
-<a name="L552"></a><tt class="py-lineno"> 552</tt> <tt class="py-line"><tt class="py-docstring"> id_: string, identifier of individual request.</tt> </tt>
-<a name="L553"></a><tt class="py-lineno"> 553</tt> <tt class="py-line"><tt class="py-docstring"></tt> </tt>
-<a name="L554"></a><tt class="py-lineno"> 554</tt> <tt class="py-line"><tt class="py-docstring"> Returns:</tt> </tt>
-<a name="L555"></a><tt class="py-lineno"> 555</tt> <tt class="py-line"><tt class="py-docstring"> A Content-ID header with the id_ encoded into it. A UUID is prepended to</tt> </tt>
-<a name="L556"></a><tt class="py-lineno"> 556</tt> <tt class="py-line"><tt class="py-docstring"> the value because Content-ID headers are supposed to be universally</tt> </tt>
-<a name="L557"></a><tt class="py-lineno"> 557</tt> <tt class="py-line"><tt class="py-docstring"> unique.</tt> </tt>
-<a name="L558"></a><tt class="py-lineno"> 558</tt> <tt class="py-line"><tt class="py-docstring"> """</tt> </tt>
-<a name="L559"></a><tt class="py-lineno"> 559</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">_base_id</tt> <tt class="py-keyword">is</tt> <tt class="py-name">None</tt><tt class="py-op">:</tt> </tt>
-<a name="L560"></a><tt class="py-lineno"> 560</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">_base_id</tt> <tt class="py-op">=</tt> <tt class="py-name">uuid</tt><tt class="py-op">.</tt><tt class="py-name">uuid4</tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
-<a name="L561"></a><tt class="py-lineno"> 561</tt> <tt class="py-line"> </tt>
-<a name="L562"></a><tt class="py-lineno"> 562</tt> <tt class="py-line"> <tt class="py-keyword">return</tt> <tt class="py-string">'<%s+%s>'</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">_base_id</tt><tt class="py-op">,</tt> <tt class="py-name">urllib</tt><tt class="py-op">.</tt><tt class="py-name">quote</tt><tt class="py-op">(</tt><tt class="py-name">id_</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
-</div><a name="L563"></a><tt class="py-lineno"> 563</tt> <tt class="py-line"> </tt>
-<a name="BatchHttpRequest._header_to_id"></a><div id="BatchHttpRequest._header_to_id-def"><a name="L564"></a><tt class="py-lineno"> 564</tt> <a class="py-toggle" href="#" id="BatchHttpRequest._header_to_id-toggle" onclick="return toggle('BatchHttpRequest._header_to_id');">-</a><tt class="py-line"> <tt class="py-keyword">def</tt> <a class="py-def-name" href="apiclient.http.BatchHttpRequest-class.html#_header_to_id">_header_to_id</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">,</tt> <tt class="py-param">header</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-</div><div id="BatchHttpRequest._header_to_id-collapsed" style="display:none;" pad="++++" indent="++++++"></div><div id="BatchHttpRequest._header_to_id-expanded"><a name="L565"></a><tt class="py-lineno"> 565</tt> <tt class="py-line"> <tt class="py-docstring">"""Convert a Content-ID header value to an id.</tt> </tt>
-<a name="L566"></a><tt class="py-lineno"> 566</tt> <tt class="py-line"><tt class="py-docstring"></tt> </tt>
-<a name="L567"></a><tt class="py-lineno"> 567</tt> <tt class="py-line"><tt class="py-docstring"> Presumes the Content-ID header conforms to the format that _id_to_header()</tt> </tt>
-<a name="L568"></a><tt class="py-lineno"> 568</tt> <tt class="py-line"><tt class="py-docstring"> returns.</tt> </tt>
-<a name="L569"></a><tt class="py-lineno"> 569</tt> <tt class="py-line"><tt class="py-docstring"></tt> </tt>
-<a name="L570"></a><tt class="py-lineno"> 570</tt> <tt class="py-line"><tt class="py-docstring"> Args:</tt> </tt>
-<a name="L571"></a><tt class="py-lineno"> 571</tt> <tt class="py-line"><tt class="py-docstring"> header: string, Content-ID header value.</tt> </tt>
-<a name="L572"></a><tt class="py-lineno"> 572</tt> <tt class="py-line"><tt class="py-docstring"></tt> </tt>
-<a name="L573"></a><tt class="py-lineno"> 573</tt> <tt class="py-line"><tt class="py-docstring"> Returns:</tt> </tt>
-<a name="L574"></a><tt class="py-lineno"> 574</tt> <tt class="py-line"><tt class="py-docstring"> The extracted id value.</tt> </tt>
+apiclient.model.Model.request" class="py-name" href="#" onclick="return doclink('link-56', 'request', 'link-56');">request</a></tt><tt class="py-op">(</tt><tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">uri</tt><tt class="py-op">,</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">method</tt><tt class="py-op">,</tt> </tt>
+<a name="L543"></a><tt class="py-lineno"> 543</tt> <tt class="py-line"> <tt class="py-name">body</tt><tt class="py-op">=</tt><tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">body</tt><tt class="py-op">,</tt> </tt>
+<a name="L544"></a><tt class="py-lineno"> 544</tt> <tt class="py-line"> <tt class="py-name">headers</tt><tt class="py-op">=</tt><tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">headers</tt><tt class="py-op">)</tt> </tt>
+<a name="L545"></a><tt class="py-lineno"> 545</tt> <tt class="py-line"> </tt>
+<a name="L546"></a><tt class="py-lineno"> 546</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">300</tt><tt class="py-op">:</tt> </tt>
+<a name="L547"></a><tt class="py-lineno"> 547</tt> <tt class="py-line"> <tt class="py-keyword">raise</tt> <tt id="link-57" class="py-name"><a title="apiclient.errors.HttpError" class="py-name" href="#" onclick="return doclink('link-57', 'HttpError', 'link-4');">HttpError</a></tt><tt class="py-op">(</tt><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">self</tt><tt class="py-op">.</tt><tt class="py-name">uri</tt><tt class="py-op">)</tt> </tt>
+<a name="L548"></a><tt class="py-lineno"> 548</tt> <tt class="py-line"> <tt class="py-keyword">return</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">postproc</tt><tt class="py-op">(</tt><tt class="py-name">resp</tt><tt class="py-op">,</tt> <tt class="py-name">content</tt><tt class="py-op">)</tt> </tt>
+</div><a name="L549"></a><tt class="py-lineno"> 549</tt> <tt class="py-line"> </tt>
+<a name="HttpRequest.next_chunk"></a><div id="HttpRequest.next_chunk-def"><a name="L550"></a><tt class="py-lineno"> 550</tt> <a class="py-toggle" href="#" id="HttpRequest.next_chunk-toggle" onclick="return toggle('HttpRequest.next_chunk');">-</a><tt class="py-line"> <tt class="py-keyword">def</tt> <a class="py-def-name" href="apiclient.http.HttpRequest-class.html#next_chunk">next_chunk</a><tt class="py-op">(</tt><tt class="py-param">self</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="HttpRequest.next_chunk-collapsed" style="display:none;" pad="++++" indent="++++++"></div><div id="HttpRequest.next_chunk-expanded"><a name="L551"></a><tt class="py-lineno"> 551</tt> <tt class="py-line"> <tt class="py-docstring">"""Execute the next step of a resumable upload.</tt> </tt>
+<a name="L552"></a><tt class="py-lineno"> 552</tt> <tt class="py-line"><tt class="py-docstring"></tt> </tt>
+<a name="L553"></a><tt class="py-lineno"> 553</tt> <tt class="py-line"><tt class="py-docstring"> Can only be used if the method being executed supports media uploads and</tt> </tt>
+<a name="L554"></a><tt class="py-lineno"> 554</tt> <tt class="py-line"><tt class="py-docstring"> the MediaUpload object passed in was flagged as using resumable upload.</tt> </tt>
+<a name="L555"></a><tt class="py-lineno"> 555</tt> <tt class="py-line"><tt class="py-docstring"></tt> </tt>
+<a name="L556"></a><tt class="py-lineno"> 556</tt> <tt class="py-line"><tt class="py-docstring"> Example:</tt> </tt>
+<a name="L557"></a><tt class="py-lineno"> 557</tt> <tt class="py-line"><tt class="py-docstring"></tt> </tt>
+<a name="L558"></a><tt class="py-lineno"> 558</tt> <tt class="py-line"><tt class="py-docstring"> media = MediaFileUpload('smiley.png', mimetype='image/png',</tt> </tt>
+<a name="L559"></a><tt class="py-lineno"> 559</tt> <tt class="py-line"><tt class="py-docstring"> chunksize=1000, resumable=True)</tt> </tt>
+<a name="L560"></a><tt class="py-lineno"> 560</tt> <tt class="py-line"><tt class="py-docstring"> request = service.objects().insert(</tt> </tt>
+<a name="L561"></a><tt class="py-lineno"> 561</tt> <tt class="py-line"><tt class="py-docstring"> bucket=buckets['items'][0]['id'],</tt> </tt>
+<a name="L562"></a><tt class="py-lineno"> 562</tt> <tt class="py-line"><tt class="py-docstring"> name='smiley.png',</tt> </tt>
+<a name="L563"></a><tt class="py-lineno"> 563</tt> <tt class="py-line"><tt class="py-docstring"> media_body=media)</tt> </tt>
+<a name="L564"></a><tt class="py-lineno"> 564</tt> <tt class="py-line"><tt class="py-docstring"></tt> </tt>
+<a name="L565"></a><tt class="py-lineno"> 565</tt> <tt class="py-line"><tt class="py-docstring"> response = None</tt> </tt>
+<a name="L566"></a><tt class="py-lineno"> 566</tt> <tt class="py-line"><tt class="py-docstring"> while response is None:</tt> </tt>
+<a name="L567"></a><tt class="py-lineno"> 567</tt> <tt class="py-line"><tt class="py-docstring"> status, response = request.next_chunk()</tt> </tt>
+<a name="L568"></a><tt class="py-lineno"> 568</tt> <tt class="py-line"><tt class="py-docstring"> if status:</tt> </tt>
+<a name="L569"></a><tt class="py-lineno"> 569</tt> <tt class="py-line"><tt class="py-docstring"> print "Upload %d%% complete." % int(status.progress() * 100)</tt> </tt>
+<a name="L570"></a><tt class="py-lineno"> 570</tt> <tt class="py-line"><tt class="py-docstring"></tt> </tt>
+<a name="L571"></a><tt class="py-lineno"> 571</tt> <tt class="py-line"><tt class="py-docstring"></tt> </tt>
+<a name="L572"></a><tt class="py-lineno"> 572</tt> <tt class="py-line"><tt class="py-docstring"> Returns:</tt> </tt>
+<a name="L573"></a><tt class="py-lineno"> 573</tt> <tt class="py-line"><tt class="py-docstring"> (status, body): (ResumableMediaStatus, object)</tt> </tt>
+<a name="L574"></a><tt class="py-lineno"> 574</tt> <tt class="py-line"><tt class="py-docstring"> The body will be None until the resumable media is fully uploaded.</tt> </tt>
<a name="L575"></a><tt class="py-lineno"> 575</tt> <tt class="py-line"><tt class="py-docstring"></tt> </tt>
<a name="L576"></a><tt class="py-lineno"> 576</tt> <tt class="py-line"><tt class="py-docstring"> Raises:</tt> </tt>
-<a name="L577"></a><tt class="py-lineno"> 577</tt> <tt class="py-line"><tt class="py-docstring"> BatchError if the header is not in the expected format.</tt> </tt>
-<a name="L578"></a><tt class="py-lineno"> 578</tt> <tt class="py-line"><tt class="py-docstring"> """</tt> </tt>
-<a name="L579"></a><tt class="py-lineno"> 579</tt> <tt class="py-line"> <tt class="py-keyword">if</tt> <tt class="py-name">header</tt><tt class="py-op">[</tt><tt class="py-number">0</tt><tt class="py-op">]</tt> <tt class="py-op">!=</tt> <tt class="py-string">'<'</tt> <tt class="py-keyword">or</tt> <tt class="py-name">header</tt><tt class="py-op">[</tt><tt class="py-op">-</tt><tt class="py-number">1</tt><tt class="py-op">]</tt> <tt class="py-op">!=</tt> <tt class="py-string">'>'</tt><tt class="py-op">:</tt> </tt>
-<a name="L580"></a><tt class="py-lineno"> 580</tt> <tt class="py-line"> <tt class="py-keyword">raise</tt> <tt id="link-102" class="py-name"><a title="apiclient.errors.BatchError" class="py-name" href="#" onclick="return doclink('link-102', 'BatchError', 'link-2');">BatchError</a></tt><tt class="py-op">(</tt><tt class="py-string">"Invalid value for Content-ID: %s"</tt> <tt class="py-op">%</tt> <tt class="py-name">header</tt><tt class="py-op">)</tt> </tt>
-<a name="L581"></a><tt class="py-lineno"> 581</tt> <tt class="py-line"> <tt class="py-keyword">if</tt> <tt class="py-string">'+'</tt> <tt class="py-keyword">not</tt> <tt class="py-keyword">in</tt> <tt class="py-name">header</tt><tt class="py-op">:</tt> </tt>
-<a name="L582"></a><tt class="py-lineno"> 582</tt> <tt class="py-line"> <tt class="py-keyword">raise</tt> <tt id="link-103" class="py-name"><a title="apiclient.errors.BatchError" class="py-name" href="#" onclick="return doclink('link-103', 'BatchError', 'link-2');">BatchError</a></tt><tt class="py-op">(</tt><tt class="py-string">"Invalid value for Content-ID: %s"</tt> <tt class="py-op">%</tt> <tt class="py-name">header</tt><tt class="py-op">)</tt> </tt>
-<a name="L583"></a><tt class="py-lineno"> 583</tt> <tt class="py-line"> <tt class="py-name">base</tt><tt class="py-op">,</tt> <tt class="py-name">id_</tt> <tt class="py-op">=</tt> <tt class="py-name">header</tt><tt class="py-op">[</tt><tt class="py-number">1</tt><tt class="py-op">:</tt><tt class="py-op">-</tt><tt class="py-number">1</tt><tt class="py-op">]</tt><tt class="py-op">.</tt><tt class="py-name">rsplit</tt><tt class="py-op">(</tt><tt class="py-string">'+'</tt><tt class="py-op">,</tt> <tt class="py-number">1</tt><tt class="py-op">)</tt> </tt>
-<a name="L584"></a><tt class="py-lineno"> 584</tt> <tt class="py-line"> </tt>
-<a name="L585"></a><tt class="py-lineno"> 585</tt> <tt class="py-line"> <tt class="py-keyword">return</tt> <tt class="py-name">urllib</tt><tt class="py-op">.</tt><tt class="py-name">unquote</tt><tt class="py-op">(</tt><tt class="py-name">id_</tt><tt class="py-op">)</tt> </tt>
-</div><a name="L586"></a><tt class="py-lineno"> 586</tt> <tt class="py-line"> </tt>
-<a name="BatchHttpRequest._serialize_request"></a><div id="BatchHttpRequest._serialize_request-def"><a name="L587"></a><tt class="py-lineno"> 587</tt> <a class="py-toggle" href="#" id="BatchHttpRequest._serialize_request-toggle" onclick="return toggle('BatchHttpRequest._serialize_request');">-</a><tt class="py-line"> <tt class="py-keyword">def</tt> <a class="py-def-name" href="apiclient.http.BatchHttpRequest-class.html#_serialize_request">_serialize_request</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">,</tt> <tt class="py-param">request</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-</div><div id="BatchHttpRequest._serialize_request-collapsed" style="display:none;" pad="++++" indent="++++++"></div><div id="BatchHttpRequest._serialize_request-expanded"><a name="L588"></a><tt class="py-lineno"> 588</tt> <tt class="py-line"> <tt class="py-docstring">"""Convert an HttpRequest object into a string.</tt> </tt>
-<a name="L589"></a><tt class="py-lineno"> 589</tt> <tt class="py-line"><tt class="py-docstring"></tt> </tt>
-<a name="L590"></a><tt class="py-lineno"> 590</tt> <tt class="py-line"><tt class="py-docstring"> Args:</tt> </tt>
-<a name="L591"></a><tt class="py-lineno"> 591</tt> <tt class="py-line"><tt class="py-docstring"> request: HttpRequest, the request to serialize.</tt> </tt>
-<a name="L592"></a><tt class="py-lineno"> 592</tt> <tt class="py-line"><tt class="py-docstring"></tt> </tt>
-<a name="L593"></a><tt class="py-lineno"> 593</tt> <tt class="py-line"><tt class="py-docstring"> Returns:</tt> </tt>
-<a name="L594"></a><tt class="py-lineno"> 594</tt> <tt class="py-line"><tt class="py-docstring"> The request as a string in application/http format.</tt> </tt>
-<a name="L595"></a><tt class="py-lineno"> 595</tt> <tt class="py-line"><tt class="py-docstring"> """</tt> </tt>
-<a name="L596"></a><tt class="py-lineno"> 596</tt> <tt class="py-line"> <tt class="py-comment"># Construct status line</tt> </tt>
-<a name="L597"></a><tt class="py-lineno"> 597</tt> <tt class="py-line"> <tt class="py-name">parsed</tt> <tt class="py-op">=</tt> <tt class="py-name">urlparse</tt><tt class="py-op">.</tt><tt class="py-name">urlparse</tt><tt class="py-op">(</tt><tt id="link-104" 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-104', 'request', 'link-46');">request</a></tt><tt class="py-op">.</tt><tt class="py-name">uri</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">request_line</tt> <tt class="py-op">=</tt> <tt class="py-name">urlparse</tt><tt class="py-op">.</tt><tt class="py-name">urlunparse</tt><tt class="py-op">(</tt> </tt>
-<a name="L599"></a><tt class="py-lineno"> 599</tt> <tt class="py-line"> <tt class="py-op">(</tt><tt class="py-name">None</tt><tt class="py-op">,</tt> <tt class="py-name">None</tt><tt class="py-op">,</tt> <tt class="py-name">parsed</tt><tt class="py-op">.</tt><tt class="py-name">path</tt><tt class="py-op">,</tt> <tt class="py-name">parsed</tt><tt class="py-op">.</tt><tt class="py-name">params</tt><tt class="py-op">,</tt> <tt class="py-name">parsed</tt><tt class="py-op">.</tt><tt class="py-name">query</tt><tt class="py-op">,</tt> <tt class="py-name">None</tt><tt class="py-op">)</tt> </tt>
-<a name="L600"></a><tt class="py-lineno"> 600</tt> <tt class="py-line"> <tt class="py-op">)</tt> </tt>
-<a name="L601"></a><tt class="py-lineno"> 601</tt> <tt class="py-line"> <tt class="py-name">status_line</tt> <tt class="py-op">=</tt> <tt id="link-105" 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-105', 'request', 'link-46');">request</a></tt><tt class="py-op">.</tt><tt class="py-name">method</tt> <tt class="py-op">+</tt> <tt class="py-string">' '</tt> <tt class="py-op">+</tt> <tt class="py-name">request_line</tt> <tt class="py-op">+</tt> <tt class="py-string">' HTTP/1.1\n'</tt> </tt>
-<a name="L602"></a><tt class="py-lineno"> 602</tt> <tt class="py-line"> <tt class="py-name">major</tt><tt class="py-op">,</tt> <tt class="py-name">minor</tt> <tt class="py-op">=</tt> <tt id="link-106" 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-106', 'request', 'link-46');">request</a></tt><tt class="py-op">.</tt><tt class="py-name">headers</tt><tt class="py-op">.</tt><tt id="link-107" 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-107', 'get', 'link-38');">get</a></tt><tt class="py-op">(</tt><tt class="py-string">'content-type'</tt><tt class="py-op">,</tt> <tt class="py-string">'application/json'</tt><tt class="py-op">)</tt><tt class="py-op">.</tt><tt class="py-name">split</tt><tt class="py-op">(</tt><tt class="py-string">'/'</tt><tt class="py-op">)</tt> </tt>
-<a name="L603"></a><tt class="py-lineno"> 603</tt> <tt class="py-line"> <tt class="py-name">msg</tt> <tt class="py-op">=</tt> <tt class="py-name">MIMENonMultipart</tt><tt class="py-op">(</tt><tt class="py-name">major</tt><tt class="py-op">,</tt> <tt class="py-name">minor</tt><tt class="py-op">)</tt> </tt>
-<a name="L604"></a><tt class="py-lineno"> 604</tt> <tt class="py-line"> <tt class="py-name">headers</tt> <tt class="py-op">=</tt> <tt id="link-108" 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-108', 'request', 'link-46');">request</a></tt><tt class="py-op">.</tt><tt class="py-name">headers</tt><tt class="py-op">.</tt><tt class="py-name">copy</tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
-<a name="L605"></a><tt class="py-lineno"> 605</tt> <tt class="py-line"> </tt>
-<a name="L606"></a><tt class="py-lineno"> 606</tt> <tt class="py-line"> <tt class="py-keyword">if</tt> <tt id="link-109" 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-109', 'request', 'link-46');">request</a></tt><tt class="py-op">.</tt><tt id="link-110" class="py-name"><a title="apiclient.http
-oauth2client.appengine.OAuth2Decorator.http" class="py-name" href="#" onclick="return doclink('link-110', 'http', 'link-32');">http</a></tt> <tt class="py-keyword">is</tt> <tt class="py-keyword">not</tt> <tt class="py-name">None</tt> <tt class="py-keyword">and</tt> <tt class="py-name">hasattr</tt><tt class="py-op">(</tt><tt id="link-111" 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-111', 'request', 'link-46');">request</a></tt><tt class="py-op">.</tt><tt id="link-112" class="py-name"><a title="apiclient.http
-oauth2client.appengine.OAuth2Decorator.http" class="py-name" href="#" onclick="return doclink('link-112', 'http', 'link-32');">http</a></tt><tt class="py-op">.</tt><tt id="link-113" 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-113', 'request', 'link-46');">request</a></tt><tt class="py-op">,</tt> </tt>
-<a name="L607"></a><tt class="py-lineno"> 607</tt> <tt class="py-line"> <tt class="py-string">'credentials'</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-<a name="L608"></a><tt class="py-lineno"> 608</tt> <tt class="py-line"> <tt id="link-114" 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-114', 'request', 'link-46');">request</a></tt><tt class="py-op">.</tt><tt id="link-115" class="py-name"><a title="apiclient.http
-oauth2client.appengine.OAuth2Decorator.http" class="py-name" href="#" onclick="return doclink('link-115', 'http', 'link-32');">http</a></tt><tt class="py-op">.</tt><tt id="link-116" 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-116', 'request', 'link-46');">request</a></tt><tt class="py-op">.</tt><tt id="link-117" class="py-name"><a title="oauth2client.appengine.CredentialsModel.credentials" class="py-name" href="#" onclick="return doclink('link-117', 'credentials', 'link-86');">credentials</a></tt><tt class="py-op">.</tt><tt id="link-118" class="py-name"><a title="oauth2client.client.Credentials.apply
-oauth2client.client.OAuth2Credentials.apply" class="py-name" href="#" onclick="return doclink('link-118', 'apply', 'link-100');">apply</a></tt><tt class="py-op">(</tt><tt class="py-name">headers</tt><tt class="py-op">)</tt> </tt>
-<a name="L609"></a><tt class="py-lineno"> 609</tt> <tt class="py-line"> </tt>
-<a name="L610"></a><tt class="py-lineno"> 610</tt> <tt class="py-line"> <tt class="py-comment"># MIMENonMultipart adds its own Content-Type header.</tt> </tt>
-<a name="L611"></a><tt class="py-lineno"> 611</tt> <tt class="py-line"> <tt class="py-keyword">if</tt> <tt class="py-string">'content-type'</tt> <tt class="py-keyword">in</tt> <tt class="py-name">headers</tt><tt class="py-op">:</tt> </tt>
-<a name="L612"></a><tt class="py-lineno"> 612</tt> <tt class="py-line"> <tt class="py-keyword">del</tt> <tt class="py-name">headers</tt><tt class="py-op">[</tt><tt class="py-string">'content-type'</tt><tt class="py-op">]</tt> </tt>
-<a name="L613"></a><tt class="py-lineno"> 613</tt> <tt class="py-line"> </tt>
-<a name="L614"></a><tt class="py-lineno"> 614</tt> <tt class="py-line"> <tt class="py-keyword">for</tt> <tt class="py-name">key</tt><tt class="py-op">,</tt> <tt class="py-name">value</tt> <tt class="py-keyword">in</tt> <tt class="py-name">headers</tt><tt class="py-op">.</tt><tt class="py-name">iteritems</tt><tt class="py-op">(</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-<a name="L615"></a><tt class="py-lineno"> 615</tt> <tt class="py-line"> <tt class="py-name">msg</tt><tt class="py-op">[</tt><tt class="py-name">key</tt><tt class="py-op">]</tt> <tt class="py-op">=</tt> <tt class="py-name">value</tt> </tt>
-<a name="L616"></a><tt class="py-lineno"> 616</tt> <tt class="py-line"> <tt class="py-name">msg</tt><tt class="py-op">[</tt><tt class="py-string">'Host'</tt><tt class="py-op">]</tt> <tt class="py-op">=</tt> <tt class="py-name">parsed</tt><tt class="py-op">.</tt><tt class="py-name">netloc</tt> </tt>
-<a name="L617"></a><tt class="py-lineno"> 617</tt> <tt class="py-line"> <tt class="py-name">msg</tt><tt class="py-op">.</tt><tt class="py-name">set_unixfrom</tt><tt class="py-op">(</tt><tt class="py-name">None</tt><tt class="py-op">)</tt> </tt>
-<a name="L618"></a><tt class="py-lineno"> 618</tt> <tt class="py-line"> </tt>
-<a name="L619"></a><tt class="py-lineno"> 619</tt> <tt class="py-line"> <tt class="py-keyword">if</tt> <tt id="link-119" 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-119', 'request', 'link-46');">request</a></tt><tt class="py-op">.</tt><tt class="py-name">body</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="L620"></a><tt class="py-lineno"> 620</tt> <tt class="py-line"> <tt class="py-name">msg</tt><tt class="py-op">.</tt><tt class="py-name">set_payload</tt><tt class="py-op">(</tt><tt id="link-120" 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-120', 'request', 'link-46');">request</a></tt><tt class="py-op">.</tt><tt class="py-name">body</tt><tt class="py-op">)</tt> </tt>
-<a name="L621"></a><tt class="py-lineno"> 621</tt> <tt class="py-line"> <tt class="py-name">msg</tt><tt class="py-op">[</tt><tt class="py-string">'content-length'</tt><tt class="py-op">]</tt> <tt class="py-op">=</tt> <tt class="py-name">str</tt><tt class="py-op">(</tt><tt class="py-name">len</tt><tt class="py-op">(</tt><tt id="link-121" 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-121', 'request', 'link-46');">request</a></tt><tt class="py-op">.</tt><tt class="py-name">body</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
-<a name="L622"></a><tt class="py-lineno"> 622</tt> <tt class="py-line"> </tt>
-<a name="L623"></a><tt class="py-lineno"> 623</tt> <tt class="py-line"> <tt class="py-comment"># Serialize the mime message.</tt> </tt>
-<a name="L624"></a><tt class="py-lineno"> 624</tt> <tt class="py-line"> <tt class="py-name">fp</tt> <tt class="py-op">=</tt> <tt class="py-name">StringIO</tt><tt class="py-op">.</tt><tt class="py-name">StringIO</tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
-<a name="L625"></a><tt class="py-lineno"> 625</tt> <tt class="py-line"> <tt class="py-comment"># maxheaderlen=0 means don't line wrap headers.</tt> </tt>
-<a name="L626"></a><tt class="py-lineno"> 626</tt> <tt class="py-line"> <tt class="py-name">g</tt> <tt class="py-op">=</tt> <tt class="py-name">Generator</tt><tt class="py-op">(</tt><tt class="py-name">fp</tt><tt class="py-op">,</tt> <tt class="py-name">maxheaderlen</tt><tt class="py-op">=</tt><tt class="py-number">0</tt><tt class="py-op">)</tt> </tt>
-<a name="L627"></a><tt class="py-lineno"> 627</tt> <tt class="py-line"> <tt class="py-name">g</tt><tt class="py-op">.</tt><tt class="py-name">flatten</tt><tt class="py-op">(</tt><tt class="py-name">msg</tt><tt class="py-op">,</tt> <tt class="py-name">unixfrom</tt><tt class="py-op">=</tt><tt class="py-name">False</tt><tt class="py-op">)</tt> </tt>
-<a name="L628"></a><tt class="py-lineno"> 628</tt> <tt class="py-line"> <tt class="py-name">body</tt> <tt class="py-op">=</tt> <tt class="py-name">fp</tt><tt class="py-op">.</tt><tt class="py-name">getvalue</tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
-<a name="L629"></a><tt class="py-lineno"> 629</tt> <tt class="py-line"> </tt>
-<a name="L630"></a><tt class="py-lineno"> 630</tt> <tt class="py-line"> <tt class="py-comment"># Strip off the \n\n that the MIME lib tacks onto the end of the payload.</tt> </tt>
-<a name="L631"></a><tt class="py-lineno"> 631</tt> <tt class="py-line"> <tt class="py-keyword">if</tt> <tt id="link-122" 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-122', 'request', 'link-46');">request</a></tt><tt class="py-op">.</tt><tt class="py-name">body</tt> <tt class="py-keyword">is</tt> <tt class="py-name">None</tt><tt class="py-op">:</tt> </tt>
-<a name="L632"></a><tt class="py-lineno"> 632</tt> <tt class="py-line"> <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-op">:</tt><tt class="py-op">-</tt><tt class="py-number">2</tt><tt class="py-op">]</tt> </tt>
-<a name="L633"></a><tt class="py-lineno"> 633</tt> <tt class="py-line"> </tt>
-<a name="L634"></a><tt class="py-lineno"> 634</tt> <tt class="py-line"> <tt class="py-keyword">return</tt> <tt class="py-name">status_line</tt><tt class="py-op">.</tt><tt class="py-name">encode</tt><tt class="py-op">(</tt><tt class="py-string">'utf-8'</tt><tt class="py-op">)</tt> <tt class="py-op">+</tt> <tt class="py-name">body</tt> </tt>
-</div><a name="L635"></a><tt class="py-lineno"> 635</tt> <tt class="py-line"> </tt>
-<a name="BatchHttpRequest._deserialize_response"></a><div id="BatchHttpRequest._deserialize_response-def"><a name="L636"></a><tt class="py-lineno"> 636</tt> <a class="py-toggle" href="#" id="BatchHttpRequest._deserialize_response-toggle" onclick="return toggle('BatchHttpRequest._deserialize_response');">-</a><tt class="py-line"> <tt class="py-keyword">def</tt> <a class="py-def-name" href="apiclient.http.BatchHttpRequest-class.html#_deserialize_response">_deserialize_response</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">,</tt> <tt class="py-param">payload</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-</div><div id="BatchHttpRequest._deserialize_response-collapsed" style="display:none;" pad="++++" indent="++++++"></div><div id="BatchHttpRequest._deserialize_response-expanded"><a name="L637"></a><tt class="py-lineno"> 637</tt> <tt class="py-line"> <tt class="py-docstring">"""Convert string into httplib2 response and content.</tt> </tt>
-<a name="L638"></a><tt class="py-lineno"> 638</tt> <tt class="py-line"><tt class="py-docstring"></tt> </tt>
-<a name="L639"></a><tt class="py-lineno"> 639</tt> <tt class="py-line"><tt class="py-docstring"> Args:</tt> </tt>
-<a name="L640"></a><tt class="py-lineno"> 640</tt> <tt class="py-line"><tt class="py-docstring"> payload: string, headers and body as a string.</tt> </tt>
-<a name="L641"></a><tt class="py-lineno"> 641</tt> <tt class="py-line"><tt class="py-docstring"></tt> </tt>
-<a name="L642"></a><tt class="py-lineno"> 642</tt> <tt class="py-line"><tt class="py-docstring"> Returns:</tt> </tt>
-<a name="L643"></a><tt class="py-lineno"> 643</tt> <tt class="py-line"><tt class="py-docstring"> A pair (resp, content) like would be returned from httplib2.request.</tt> </tt>
-<a name="L644"></a><tt class="py-lineno"> 644</tt> <tt class="py-line"><tt class="py-docstring"> """</tt> </tt>
-<a name="L645"></a><tt class="py-lineno"> 645</tt> <tt class="py-line"> <tt class="py-comment"># Strip off the status line</tt> </tt>
-<a name="L646"></a><tt class="py-lineno"> 646</tt> <tt class="py-line"> <tt class="py-name">status_line</tt><tt class="py-op">,</tt> <tt class="py-name">payload</tt> <tt class="py-op">=</tt> <tt class="py-name">payload</tt><tt class="py-op">.</tt><tt class="py-name">split</tt><tt class="py-op">(</tt><tt class="py-string">'\n'</tt><tt class="py-op">,</tt> <tt class="py-number">1</tt><tt class="py-op">)</tt> </tt>
-<a name="L647"></a><tt class="py-lineno"> 647</tt> <tt class="py-line"> <tt class="py-name">protocol</tt><tt class="py-op">,</tt> <tt class="py-name">status</tt><tt class="py-op">,</tt> <tt class="py-name">reason</tt> <tt class="py-op">=</tt> <tt class="py-name">status_line</tt><tt class="py-op">.</tt><tt class="py-name">split</tt><tt class="py-op">(</tt><tt class="py-string">' '</tt><tt class="py-op">,</tt> <tt class="py-number">2</tt><tt class="py-op">)</tt> </tt>
-<a name="L648"></a><tt class="py-lineno"> 648</tt> <tt class="py-line"> </tt>
-<a name="L649"></a><tt class="py-lineno"> 649</tt> <tt class="py-line"> <tt class="py-comment"># Parse the rest of the response</tt> </tt>
-<a name="L650"></a><tt class="py-lineno"> 650</tt> <tt class="py-line"> <tt class="py-name">parser</tt> <tt class="py-op">=</tt> <tt class="py-name">FeedParser</tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
-<a name="L651"></a><tt class="py-lineno"> 651</tt> <tt class="py-line"> <tt class="py-name">parser</tt><tt class="py-op">.</tt><tt class="py-name">feed</tt><tt class="py-op">(</tt><tt class="py-name">payload</tt><tt class="py-op">)</tt> </tt>
-<a name="L652"></a><tt class="py-lineno"> 652</tt> <tt class="py-line"> <tt class="py-name">msg</tt> <tt class="py-op">=</tt> <tt class="py-name">parser</tt><tt class="py-op">.</tt><tt class="py-name">close</tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
-<a name="L653"></a><tt class="py-lineno"> 653</tt> <tt class="py-line"> <tt class="py-name">msg</tt><tt class="py-op">[</tt><tt class="py-string">'status'</tt><tt class="py-op">]</tt> <tt class="py-op">=</tt> <tt class="py-name">status</tt> </tt>
-<a name="L654"></a><tt class="py-lineno"> 654</tt> <tt class="py-line"> </tt>
-<a name="L655"></a><tt class="py-lineno"> 655</tt> <tt class="py-line"> <tt class="py-comment"># Create httplib2.Response from the parsed headers.</tt> </tt>
-<a name="L656"></a><tt class="py-lineno"> 656</tt> <tt class="py-line"> <tt class="py-name">resp</tt> <tt class="py-op">=</tt> <tt class="py-name">httplib2</tt><tt class="py-op">.</tt><tt class="py-name">Response</tt><tt class="py-op">(</tt><tt class="py-name">msg</tt><tt class="py-op">)</tt> </tt>
-<a name="L657"></a><tt class="py-lineno"> 657</tt> <tt class="py-line"> <tt class="py-name">resp</tt><tt class="py-op">.</tt><tt class="py-name">reason</tt> <tt class="py-op">=</tt> <tt class="py-name">reason</tt> </tt>
-<a name="L658"></a><tt class="py-lineno"> 658</tt> <tt class="py-line"> <tt class="py-name">resp</tt><tt class="py-op">.</tt><tt class="py-name">version</tt> <tt class="py-op">=</tt> <tt class="py-name">int</tt><tt class="py-op">(</tt><tt class="py-name">protocol</tt><tt class="py-op">.</tt><tt class="py-name">split</tt><tt class="py-op">(</tt><tt class="py-string">'/'</tt><tt class="py-op">,</tt> <tt class="py-number">1</tt><tt class="py-op">)</tt><tt class="py-op">[</tt><tt class="py-number">1</tt><tt class="py-op">]</tt><tt class="py-op">.</tt><tt class="py-name">replace</tt><tt class="py-op">(</tt><tt class="py-string">'.'</tt><tt class="py-op">,</tt> <tt class="py-string">''</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
-<a name="L659"></a><tt class="py-lineno"> 659</tt> <tt class="py-line"> </tt>
-<a name="L660"></a><tt class="py-lineno"> 660</tt> <tt class="py-line"> <tt class="py-name">content</tt> <tt class="py-op">=</tt> <tt class="py-name">payload</tt><tt class="py-op">.</tt><tt class="py-name">split</tt><tt class="py-op">(</tt><tt class="py-string">'\r\n\r\n'</tt><tt class="py-op">,</tt> <tt class="py-number">1</tt><tt class="py-op">)</tt><tt class="py-op">[</tt><tt class="py-number">1</tt><tt class="py-op">]</tt> </tt>
-<a name="L661"></a><tt class="py-lineno"> 661</tt> <tt class="py-line"> </tt>
-<a name="L662"></a><tt class="py-lineno"> 662</tt> <tt class="py-line"> <tt class="py-keyword">return</tt> <tt class="py-name">resp</tt><tt class="py-op">,</tt> <tt class="py-name">content</tt> </tt>
-</div><a name="L663"></a><tt class="py-lineno"> 663</tt> <tt class="py-line"> </tt>
-<a name="BatchHttpRequest._new_id"></a><div id="BatchHttpRequest._new_id-def"><a name="L664"></a><tt class="py-lineno"> 664</tt> <a class="py-toggle" href="#" id="BatchHttpRequest._new_id-toggle" onclick="return toggle('BatchHttpRequest._new_id');">-</a><tt class="py-line"> <tt class="py-keyword">def</tt> <a class="py-def-name" href="apiclient.http.BatchHttpRequest-class.html#_new_id">_new_id</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-</div><div id="BatchHttpRequest._new_id-collapsed" style="display:none;" pad="++++" indent="++++++"></div><div id="BatchHttpRequest._new_id-expanded"><a name="L665"></a><tt class="py-lineno"> 665</tt> <tt class="py-line"> <tt class="py-docstring">"""Create a new id.</tt> </tt>
-<a name="L666"></a><tt class="py-lineno"> 666</tt> <tt class="py-line"><tt class="py-docstring"></tt> </tt>
-<a name="L667"></a><tt class="py-lineno"> 667</tt> <tt class="py-line"><tt class="py-docstring"> Auto incrementing number that avoids conflicts with ids already used.</tt> </tt>
-<a name="L668"></a><tt class="py-lineno"> 668</tt> <tt class="py-line"><tt class="py-docstring"></tt> </tt>
-<a name="L669"></a><tt class="py-lineno"> 669</tt> <tt class="py-line"><tt class="py-docstring"> Returns:</tt> </tt>
-<a name="L670"></a><tt class="py-lineno"> 670</tt> <tt class="py-line"><tt class="py-docstring"> string, a new unique id.</tt> </tt>
-<a name="L671"></a><tt class="py-lineno"> 671</tt> <tt class="py-line"><tt class="py-docstring"> """</tt> </tt>
-<a name="L672"></a><tt class="py-lineno"> 672</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">_last_auto_id</tt> <tt class="py-op">+=</tt> <tt class="py-number">1</tt> </tt>
-<a name="L673"></a><tt class="py-lineno"> 673</tt> <tt class="py-line"> <tt class="py-keyword">while</tt> <tt class="py-name">str</tt><tt class="py-op">(</tt><tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">_last_auto_id</tt><tt class="py-op">)</tt> <tt class="py-keyword">in</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">_requests</tt><tt class="py-op">:</tt> </tt>
-<a name="L674"></a><tt class="py-lineno"> 674</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">_last_auto_id</tt> <tt class="py-op">+=</tt> <tt class="py-number">1</tt> </tt>
-<a name="L675"></a><tt class="py-lineno"> 675</tt> <tt class="py-line"> <tt class="py-keyword">return</tt> <tt class="py-name">str</tt><tt class="py-op">(</tt><tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">_last_auto_id</tt><tt class="py-op">)</tt> </tt>
-</div><a name="L676"></a><tt class="py-lineno"> 676</tt> <tt class="py-line"> </tt>
-<a name="BatchHttpRequest.add"></a><div id="BatchHttpRequest.add-def"><a name="L677"></a><tt class="py-lineno"> 677</tt> <a class="py-toggle" href="#" id="BatchHttpRequest.add-toggle" onclick="return toggle('BatchHttpRequest.add');">-</a><tt class="py-line"> <tt class="py-keyword">def</tt> <a class="py-def-name" href="apiclient.http.BatchHttpRequest-class.html#add">add</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">,</tt> <tt class="py-param">request</tt><tt class="py-op">,</tt> <tt class="py-param">callback</tt><tt class="py-op">=</tt><tt class="py-name">None</tt><tt class="py-op">,</tt> <tt class="py-param">request_id</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="BatchHttpRequest.add-collapsed" style="display:none;" pad="++++" indent="++++++"></div><div id="BatchHttpRequest.add-expanded"><a name="L678"></a><tt class="py-lineno"> 678</tt> <tt class="py-line"> <tt class="py-docstring">"""Add a new request.</tt> </tt>
-<a name="L679"></a><tt class="py-lineno"> 679</tt> <tt class="py-line"><tt class="py-docstring"></tt> </tt>
-<a name="L680"></a><tt class="py-lineno"> 680</tt> <tt class="py-line"><tt class="py-docstring"> Every callback added will be paired with a unique id, the request_id. That</tt> </tt>
-<a name="L681"></a><tt class="py-lineno"> 681</tt> <tt class="py-line"><tt class="py-docstring"> unique id will be passed back to the callback when the response comes back</tt> </tt>
-<a name="L682"></a><tt class="py-lineno"> 682</tt> <tt class="py-line"><tt class="py-docstring"> from the server. The default behavior is to have the library generate it's</tt> </tt>
-<a name="L683"></a><tt class="py-lineno"> 683</tt> <tt class="py-line"><tt class="py-docstring"> own unique id. If the caller passes in a request_id then they must ensure</tt> </tt>
-<a name="L684"></a><tt class="py-lineno"> 684</tt> <tt class="py-line"><tt class="py-docstring"> uniqueness for each request_id, and if they are not an exception is</tt> </tt>
-<a name="L685"></a><tt class="py-lineno"> 685</tt> <tt class="py-line"><tt class="py-docstring"> raised. Callers should either supply all request_ids or nevery supply a</tt> </tt>
-<a name="L686"></a><tt class="py-lineno"> 686</tt> <tt class="py-line"><tt class="py-docstring"> request id, to avoid such an error.</tt> </tt>
-<a name="L687"></a><tt class="py-lineno"> 687</tt> <tt class="py-line"><tt class="py-docstring"></tt> </tt>
-<a name="L688"></a><tt class="py-lineno"> 688</tt> <tt class="py-line"><tt class="py-docstring"> Args:</tt> </tt>
-<a name="L689"></a><tt class="py-lineno"> 689</tt> <tt class="py-line"><tt class="py-docstring"> request: HttpRequest, Request to add to the batch.</tt> </tt>
-<a name="L690"></a><tt class="py-lineno"> 690</tt> <tt class="py-line"><tt class="py-docstring"> callback: callable, A callback to be called for this response, of the</tt> </tt>
-<a name="L691"></a><tt class="py-lineno"> 691</tt> <tt class="py-line"><tt class="py-docstring"> form callback(id, response). The first parameter is the request id, and</tt> </tt>
-<a name="L692"></a><tt class="py-lineno"> 692</tt> <tt class="py-line"><tt class="py-docstring"> the second is the deserialized response object.</tt> </tt>
-<a name="L693"></a><tt class="py-lineno"> 693</tt> <tt class="py-line"><tt class="py-docstring"> request_id: string, A unique id for the request. The id will be passed to</tt> </tt>
-<a name="L694"></a><tt class="py-lineno"> 694</tt> <tt class="py-line"><tt class="py-docstring"> the callback with the response.</tt> </tt>
-<a name="L695"></a><tt class="py-lineno"> 695</tt> <tt class="py-line"><tt class="py-docstring"></tt> </tt>
-<a name="L696"></a><tt class="py-lineno"> 696</tt> <tt class="py-line"><tt class="py-docstring"> Returns:</tt> </tt>
-<a name="L697"></a><tt class="py-lineno"> 697</tt> <tt class="py-line"><tt class="py-docstring"> None</tt> </tt>
-<a name="L698"></a><tt class="py-lineno"> 698</tt> <tt class="py-line"><tt class="py-docstring"></tt> </tt>
-<a name="L699"></a><tt class="py-lineno"> 699</tt> <tt class="py-line"><tt class="py-docstring"> Raises:</tt> </tt>
-<a name="L700"></a><tt class="py-lineno"> 700</tt> <tt class="py-line"><tt class="py-docstring"> BatchError if a resumable request is added to a batch.</tt> </tt>
-<a name="L701"></a><tt class="py-lineno"> 701</tt> <tt class="py-line"><tt class="py-docstring"> KeyError is the request_id is not unique.</tt> </tt>
-<a name="L702"></a><tt class="py-lineno"> 702</tt> <tt class="py-line"><tt class="py-docstring"> """</tt> </tt>
-<a name="L703"></a><tt class="py-lineno"> 703</tt> <tt class="py-line"> <tt class="py-keyword">if</tt> <tt class="py-name">request_id</tt> <tt class="py-keyword">is</tt> <tt class="py-name">None</tt><tt class="py-op">:</tt> </tt>
-<a name="L704"></a><tt class="py-lineno"> 704</tt> <tt class="py-line"> <tt class="py-name">request_id</tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-123" class="py-name" targets="Method apiclient.http.BatchHttpRequest._new_id()=apiclient.http.BatchHttpRequest-class.html#_new_id"><a title="apiclient.http.BatchHttpRequest._new_id" class="py-name" href="#" onclick="return doclink('link-123', '_new_id', 'link-123');">_new_id</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
-<a name="L705"></a><tt class="py-lineno"> 705</tt> <tt class="py-line"> <tt class="py-keyword">if</tt> <tt id="link-124" 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-124', 'request', 'link-46');">request</a></tt><tt class="py-op">.</tt><tt id="link-125" class="py-name"><a title="apiclient.http.MediaFileUpload.resumable
+<a name="L577"></a><tt class="py-lineno"> 577</tt> <tt class="py-line"><tt class="py-docstring"> apiclient.errors.HttpError if the response was not a 2xx.</tt> </tt>
+<a name="L578"></a><tt class="py-lineno"> 578</tt> <tt class="py-line"><tt class="py-docstring"> httplib2.Error if a transport error has occured.</tt> </tt>
+<a name="L579"></a><tt class="py-lineno"> 579</tt> <tt class="py-line"><tt class="py-docstring"> """</tt> </tt>
+<a name="L580"></a><tt class="py-lineno"> 580</tt> <tt class="py-line"> <tt class="py-keyword">if</tt> <tt id="link-58" class="py-name"><a title="apiclient.http
+oauth2client.appengine.OAuth2Decorator.http" class="py-name" href="#" onclick="return doclink('link-58', 'http', 'link-42');">http</a></tt> <tt class="py-keyword">is</tt> <tt class="py-name">None</tt><tt class="py-op">:</tt> </tt>
+<a name="L581"></a><tt class="py-lineno"> 581</tt> <tt class="py-line"> <tt id="link-59" class="py-name"><a title="apiclient.http
+oauth2client.appengine.OAuth2Decorator.http" class="py-name" href="#" onclick="return doclink('link-59', 'http', 'link-42');">http</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-60" class="py-name"><a title="apiclient.http
+oauth2client.appengine.OAuth2Decorator.http" class="py-name" href="#" onclick="return doclink('link-60', 'http', 'link-42');">http</a></tt> </tt>
+<a name="L582"></a><tt class="py-lineno"> 582</tt> <tt class="py-line"> </tt>
+<a name="L583"></a><tt class="py-lineno"> 583</tt> <tt class="py-line"> <tt class="py-keyword">if</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-61" class="py-name"><a title="apiclient.http.MediaFileUpload.resumable
apiclient.http.MediaInMemoryUpload.resumable
-apiclient.http.MediaUpload.resumable" class="py-name" href="#" onclick="return doclink('link-125', 'resumable', 'link-23');">resumable</a></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="L706"></a><tt class="py-lineno"> 706</tt> <tt class="py-line"> <tt class="py-keyword">raise</tt> <tt id="link-126" class="py-name"><a title="apiclient.errors.BatchError" class="py-name" href="#" onclick="return doclink('link-126', 'BatchError', 'link-2');">BatchError</a></tt><tt class="py-op">(</tt><tt class="py-string">"Resumable requests cannot be used in a batch request."</tt><tt class="py-op">)</tt> </tt>
-<a name="L707"></a><tt class="py-lineno"> 707</tt> <tt class="py-line"> <tt class="py-keyword">if</tt> <tt class="py-name">request_id</tt> <tt class="py-keyword">in</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">_requests</tt><tt class="py-op">:</tt> </tt>
-<a name="L708"></a><tt class="py-lineno"> 708</tt> <tt class="py-line"> <tt class="py-keyword">raise</tt> <tt class="py-name">KeyError</tt><tt class="py-op">(</tt><tt class="py-string">"A request with this ID already exists: %s"</tt> <tt class="py-op">%</tt> <tt class="py-name">request_id</tt><tt class="py-op">)</tt> </tt>
-<a name="L709"></a><tt class="py-lineno"> 709</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">_requests</tt><tt class="py-op">[</tt><tt class="py-name">request_id</tt><tt class="py-op">]</tt> <tt class="py-op">=</tt> <tt id="link-127" class="py-name"><a title="apiclient.http.HttpMock.request
+apiclient.http.MediaIoBaseUpload.resumable
+apiclient.http.MediaUpload.resumable" class="py-name" href="#" onclick="return doclink('link-61', 'resumable', 'link-28');">resumable</a></tt><tt class="py-op">.</tt><tt id="link-62" class="py-name" targets="Method apiclient.http.MediaFileUpload.size()=apiclient.http.MediaFileUpload-class.html#size,Method apiclient.http.MediaInMemoryUpload.size()=apiclient.http.MediaInMemoryUpload-class.html#size,Method apiclient.http.MediaIoBaseUpload.size()=apiclient.http.MediaIoBaseUpload-class.html#size,Method apiclient.http.MediaUpload.size()=apiclient.http.MediaUpload-class.html#size"><a title="apiclient.http.MediaFileUpload.size
+apiclient.http.MediaInMemoryUpload.size
+apiclient.http.MediaIoBaseUpload.size
+apiclient.http.MediaUpload.size" class="py-name" href="#" onclick="return doclink('link-62', 'size', 'link-62');">size</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt> <tt class="py-keyword">is</tt> <tt class="py-name">None</tt><tt class="py-op">:</tt> </tt>
+<a name="L584"></a><tt class="py-lineno"> 584</tt> <tt class="py-line"> <tt id="link-63" class="py-name"><a title="apiclient.http.MediaFileUpload.size
+apiclient.http.MediaInMemoryUpload.size
+apiclient.http.MediaIoBaseUpload.size
+apiclient.http.MediaUpload.size" class="py-name" href="#" onclick="return doclink('link-63', 'size', 'link-62');">size</a></tt> <tt class="py-op">=</tt> <tt class="py-string">'*'</tt> </tt>
+<a name="L585"></a><tt class="py-lineno"> 585</tt> <tt class="py-line"> <tt class="py-keyword">else</tt><tt class="py-op">:</tt> </tt>
+<a name="L586"></a><tt class="py-lineno"> 586</tt> <tt class="py-line"> <tt id="link-64" class="py-name"><a title="apiclient.http.MediaFileUpload.size
+apiclient.http.MediaInMemoryUpload.size
+apiclient.http.MediaIoBaseUpload.size
+apiclient.http.MediaUpload.size" class="py-name" href="#" onclick="return doclink('link-64', 'size', 'link-62');">size</a></tt> <tt class="py-op">=</tt> <tt class="py-name">str</tt><tt class="py-op">(</tt><tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-65" class="py-name"><a title="apiclient.http.MediaFileUpload.resumable
+apiclient.http.MediaInMemoryUpload.resumable
+apiclient.http.MediaIoBaseUpload.resumable
+apiclient.http.MediaUpload.resumable" class="py-name" href="#" onclick="return doclink('link-65', 'resumable', 'link-28');">resumable</a></tt><tt class="py-op">.</tt><tt id="link-66" class="py-name"><a title="apiclient.http.MediaFileUpload.size
+apiclient.http.MediaInMemoryUpload.size
+apiclient.http.MediaIoBaseUpload.size
+apiclient.http.MediaUpload.size" class="py-name" href="#" onclick="return doclink('link-66', 'size', 'link-62');">size</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
+<a name="L587"></a><tt class="py-lineno"> 587</tt> <tt class="py-line"> </tt>
+<a name="L588"></a><tt class="py-lineno"> 588</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">resumable_uri</tt> <tt class="py-keyword">is</tt> <tt class="py-name">None</tt><tt class="py-op">:</tt> </tt>
+<a name="L589"></a><tt class="py-lineno"> 589</tt> <tt class="py-line"> <tt class="py-name">start_headers</tt> <tt class="py-op">=</tt> <tt class="py-name">copy</tt><tt class="py-op">.</tt><tt class="py-name">copy</tt><tt class="py-op">(</tt><tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">headers</tt><tt class="py-op">)</tt> </tt>
+<a name="L590"></a><tt class="py-lineno"> 590</tt> <tt class="py-line"> <tt class="py-name">start_headers</tt><tt class="py-op">[</tt><tt class="py-string">'X-Upload-Content-Type'</tt><tt class="py-op">]</tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-67" class="py-name"><a title="apiclient.http.MediaFileUpload.resumable
+apiclient.http.MediaInMemoryUpload.resumable
+apiclient.http.MediaIoBaseUpload.resumable
+apiclient.http.MediaUpload.resumable" class="py-name" href="#" onclick="return doclink('link-67', 'resumable', 'link-28');">resumable</a></tt><tt class="py-op">.</tt><tt id="link-68" class="py-name"><a title="apiclient.http.MediaFileUpload.mimetype
+apiclient.http.MediaInMemoryUpload.mimetype
+apiclient.http.MediaIoBaseUpload.mimetype
+apiclient.http.MediaUpload.mimetype" class="py-name" href="#" onclick="return doclink('link-68', 'mimetype', 'link-23');">mimetype</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
+<a name="L591"></a><tt class="py-lineno"> 591</tt> <tt class="py-line"> <tt class="py-keyword">if</tt> <tt id="link-69" class="py-name"><a title="apiclient.http.MediaFileUpload.size
+apiclient.http.MediaInMemoryUpload.size
+apiclient.http.MediaIoBaseUpload.size
+apiclient.http.MediaUpload.size" class="py-name" href="#" onclick="return doclink('link-69', 'size', 'link-62');">size</a></tt> <tt class="py-op">!=</tt> <tt class="py-string">'*'</tt><tt class="py-op">:</tt> </tt>
+<a name="L592"></a><tt class="py-lineno"> 592</tt> <tt class="py-line"> <tt class="py-name">start_headers</tt><tt class="py-op">[</tt><tt class="py-string">'X-Upload-Content-Length'</tt><tt class="py-op">]</tt> <tt class="py-op">=</tt> <tt id="link-70" class="py-name"><a title="apiclient.http.MediaFileUpload.size
+apiclient.http.MediaInMemoryUpload.size
+apiclient.http.MediaIoBaseUpload.size
+apiclient.http.MediaUpload.size" class="py-name" href="#" onclick="return doclink('link-70', 'size', 'link-62');">size</a></tt> </tt>
+<a name="L593"></a><tt class="py-lineno"> 593</tt> <tt class="py-line"> <tt class="py-name">start_headers</tt><tt class="py-op">[</tt><tt class="py-string">'content-length'</tt><tt class="py-op">]</tt> <tt class="py-op">=</tt> <tt class="py-name">str</tt><tt class="py-op">(</tt><tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">body_size</tt><tt class="py-op">)</tt> </tt>
+<a name="L594"></a><tt class="py-lineno"> 594</tt> <tt class="py-line"> </tt>
+<a name="L595"></a><tt class="py-lineno"> 595</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-71" class="py-name"><a title="apiclient.http
+oauth2client.appengine.OAuth2Decorator.http" class="py-name" href="#" onclick="return doclink('link-71', 'http', 'link-42');">http</a></tt><tt class="py-op">.</tt><tt id="link-72" 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-127', 'request', 'link-46');">request</a></tt> </tt>
-<a name="L710"></a><tt class="py-lineno"> 710</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">_callbacks</tt><tt class="py-op">[</tt><tt class="py-name">request_id</tt><tt class="py-op">]</tt> <tt class="py-op">=</tt> <tt class="py-name">callback</tt> </tt>
-<a name="L711"></a><tt class="py-lineno"> 711</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">_order</tt><tt class="py-op">.</tt><tt class="py-name">append</tt><tt class="py-op">(</tt><tt class="py-name">request_id</tt><tt class="py-op">)</tt> </tt>
-</div><a name="L712"></a><tt class="py-lineno"> 712</tt> <tt class="py-line"> </tt>
-<a name="BatchHttpRequest._execute"></a><div id="BatchHttpRequest._execute-def"><a name="L713"></a><tt class="py-lineno"> 713</tt> <a class="py-toggle" href="#" id="BatchHttpRequest._execute-toggle" onclick="return toggle('BatchHttpRequest._execute');">-</a><tt class="py-line"> <tt class="py-keyword">def</tt> <a class="py-def-name" href="apiclient.http.BatchHttpRequest-class.html#_execute">_execute</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">,</tt> <tt class="py-param">http</tt><tt class="py-op">,</tt> <tt class="py-param">order</tt><tt class="py-op">,</tt> <tt class="py-param">requests</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-</div><div id="BatchHttpRequest._execute-collapsed" style="display:none;" pad="++++" indent="++++++"></div><div id="BatchHttpRequest._execute-expanded"><a name="L714"></a><tt class="py-lineno"> 714</tt> <tt class="py-line"> <tt class="py-docstring">"""Serialize batch request, send to server, process response.</tt> </tt>
-<a name="L715"></a><tt class="py-lineno"> 715</tt> <tt class="py-line"><tt class="py-docstring"></tt> </tt>
-<a name="L716"></a><tt class="py-lineno"> 716</tt> <tt class="py-line"><tt class="py-docstring"> Args:</tt> </tt>
-<a name="L717"></a><tt class="py-lineno"> 717</tt> <tt class="py-line"><tt class="py-docstring"> http: httplib2.Http, an http object to be used to make the request with.</tt> </tt>
-<a name="L718"></a><tt class="py-lineno"> 718</tt> <tt class="py-line"><tt class="py-docstring"> order: list, list of request ids in the order they were added to the</tt> </tt>
-<a name="L719"></a><tt class="py-lineno"> 719</tt> <tt class="py-line"><tt class="py-docstring"> batch.</tt> </tt>
-<a name="L720"></a><tt class="py-lineno"> 720</tt> <tt class="py-line"><tt class="py-docstring"> request: list, list of request objects to send.</tt> </tt>
-<a name="L721"></a><tt class="py-lineno"> 721</tt> <tt class="py-line"><tt class="py-docstring"></tt> </tt>
-<a name="L722"></a><tt class="py-lineno"> 722</tt> <tt class="py-line"><tt class="py-docstring"> Raises:</tt> </tt>
-<a name="L723"></a><tt class="py-lineno"> 723</tt> <tt class="py-line"><tt class="py-docstring"> httplib2.Error if a transport error has occured.</tt> </tt>
-<a name="L724"></a><tt class="py-lineno"> 724</tt> <tt class="py-line"><tt class="py-docstring"> apiclient.errors.BatchError if the response is the wrong format.</tt> </tt>
-<a name="L725"></a><tt class="py-lineno"> 725</tt> <tt class="py-line"><tt class="py-docstring"> """</tt> </tt>
-<a name="L726"></a><tt class="py-lineno"> 726</tt> <tt class="py-line"> <tt class="py-name">message</tt> <tt class="py-op">=</tt> <tt class="py-name">MIMEMultipart</tt><tt class="py-op">(</tt><tt class="py-string">'mixed'</tt><tt class="py-op">)</tt> </tt>
-<a name="L727"></a><tt class="py-lineno"> 727</tt> <tt class="py-line"> <tt class="py-comment"># Message should not write out it's own headers.</tt> </tt>
-<a name="L728"></a><tt class="py-lineno"> 728</tt> <tt class="py-line"> <tt class="py-name">setattr</tt><tt class="py-op">(</tt><tt class="py-name">message</tt><tt class="py-op">,</tt> <tt class="py-string">'_write_headers'</tt><tt class="py-op">,</tt> <tt class="py-keyword">lambda</tt> <tt class="py-name">self</tt><tt class="py-op">:</tt> <tt class="py-name">None</tt><tt class="py-op">)</tt> </tt>
-<a name="L729"></a><tt class="py-lineno"> 729</tt> <tt class="py-line"> </tt>
-<a name="L730"></a><tt class="py-lineno"> 730</tt> <tt class="py-line"> <tt class="py-comment"># Add all the individual requests.</tt> </tt>
-<a name="L731"></a><tt class="py-lineno"> 731</tt> <tt class="py-line"> <tt class="py-keyword">for</tt> <tt class="py-name">request_id</tt> <tt class="py-keyword">in</tt> <tt class="py-name">order</tt><tt class="py-op">:</tt> </tt>
-<a name="L732"></a><tt class="py-lineno"> 732</tt> <tt class="py-line"> <tt id="link-128" class="py-name"><a title="apiclient.http.HttpMock.request
+apiclient.model.Model.request" class="py-name" href="#" onclick="return doclink('link-72', 'request', 'link-56');">request</a></tt><tt class="py-op">(</tt><tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">uri</tt><tt class="py-op">,</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">method</tt><tt class="py-op">,</tt> </tt>
+<a name="L596"></a><tt class="py-lineno"> 596</tt> <tt class="py-line"> <tt class="py-name">body</tt><tt class="py-op">=</tt><tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">body</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">headers</tt><tt class="py-op">=</tt><tt class="py-name">start_headers</tt><tt class="py-op">)</tt> </tt>
+<a name="L598"></a><tt class="py-lineno"> 598</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">'location'</tt> <tt class="py-keyword">in</tt> <tt class="py-name">resp</tt><tt class="py-op">:</tt> </tt>
+<a name="L599"></a><tt class="py-lineno"> 599</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">resumable_uri</tt> <tt class="py-op">=</tt> <tt class="py-name">resp</tt><tt class="py-op">[</tt><tt class="py-string">'location'</tt><tt class="py-op">]</tt> </tt>
+<a name="L600"></a><tt class="py-lineno"> 600</tt> <tt class="py-line"> <tt class="py-keyword">else</tt><tt class="py-op">:</tt> </tt>
+<a name="L601"></a><tt class="py-lineno"> 601</tt> <tt class="py-line"> <tt class="py-keyword">raise</tt> <tt id="link-73" class="py-name"><a title="apiclient.errors.ResumableUploadError" class="py-name" href="#" onclick="return doclink('link-73', 'ResumableUploadError', 'link-6');">ResumableUploadError</a></tt><tt class="py-op">(</tt><tt class="py-string">"Failed to retrieve starting URI."</tt><tt class="py-op">)</tt> </tt>
+<a name="L602"></a><tt class="py-lineno"> 602</tt> <tt class="py-line"> <tt class="py-keyword">elif</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">_in_error_state</tt><tt class="py-op">:</tt> </tt>
+<a name="L603"></a><tt class="py-lineno"> 603</tt> <tt class="py-line"> <tt class="py-comment"># If we are in an error state then query the server for current state of</tt> </tt>
+<a name="L604"></a><tt class="py-lineno"> 604</tt> <tt class="py-line"> <tt class="py-comment"># the upload by sending an empty PUT and reading the 'range' header in</tt> </tt>
+<a name="L605"></a><tt class="py-lineno"> 605</tt> <tt class="py-line"> <tt class="py-comment"># the response.</tt> </tt>
+<a name="L606"></a><tt class="py-lineno"> 606</tt> <tt class="py-line"> <tt class="py-name">headers</tt> <tt class="py-op">=</tt> <tt class="py-op">{</tt> </tt>
+<a name="L607"></a><tt class="py-lineno"> 607</tt> <tt class="py-line"> <tt class="py-string">'Content-Range'</tt><tt class="py-op">:</tt> <tt class="py-string">'bytes */%s'</tt> <tt class="py-op">%</tt> <tt id="link-74" class="py-name"><a title="apiclient.http.MediaFileUpload.size
+apiclient.http.MediaInMemoryUpload.size
+apiclient.http.MediaIoBaseUpload.size
+apiclient.http.MediaUpload.size" class="py-name" href="#" onclick="return doclink('link-74', 'size', 'link-62');">size</a></tt><tt class="py-op">,</tt> </tt>
+<a name="L608"></a><tt class="py-lineno"> 608</tt> <tt class="py-line"> <tt class="py-string">'content-length'</tt><tt class="py-op">:</tt> <tt class="py-string">'0'</tt> </tt>
+<a name="L609"></a><tt class="py-lineno"> 609</tt> <tt class="py-line"> <tt class="py-op">}</tt> </tt>
+<a name="L610"></a><tt class="py-lineno"> 610</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-75" class="py-name"><a title="apiclient.http
+oauth2client.appengine.OAuth2Decorator.http" class="py-name" href="#" onclick="return doclink('link-75', 'http', 'link-42');">http</a></tt><tt class="py-op">.</tt><tt id="link-76" 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-128', 'request', 'link-46');">request</a></tt> <tt class="py-op">=</tt> <tt class="py-name">requests</tt><tt class="py-op">[</tt><tt class="py-name">request_id</tt><tt class="py-op">]</tt> </tt>
-<a name="L733"></a><tt class="py-lineno"> 733</tt> <tt class="py-line"> </tt>
-<a name="L734"></a><tt class="py-lineno"> 734</tt> <tt class="py-line"> <tt class="py-name">msg</tt> <tt class="py-op">=</tt> <tt class="py-name">MIMENonMultipart</tt><tt class="py-op">(</tt><tt class="py-string">'application'</tt><tt class="py-op">,</tt> <tt class="py-string">'http'</tt><tt class="py-op">)</tt> </tt>
-<a name="L735"></a><tt class="py-lineno"> 735</tt> <tt class="py-line"> <tt class="py-name">msg</tt><tt class="py-op">[</tt><tt class="py-string">'Content-Transfer-Encoding'</tt><tt class="py-op">]</tt> <tt class="py-op">=</tt> <tt class="py-string">'binary'</tt> </tt>
-<a name="L736"></a><tt class="py-lineno"> 736</tt> <tt class="py-line"> <tt class="py-name">msg</tt><tt class="py-op">[</tt><tt class="py-string">'Content-ID'</tt><tt class="py-op">]</tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-129" class="py-name" targets="Method apiclient.http.BatchHttpRequest._id_to_header()=apiclient.http.BatchHttpRequest-class.html#_id_to_header"><a title="apiclient.http.BatchHttpRequest._id_to_header" class="py-name" href="#" onclick="return doclink('link-129', '_id_to_header', 'link-129');">_id_to_header</a></tt><tt class="py-op">(</tt><tt class="py-name">request_id</tt><tt class="py-op">)</tt> </tt>
-<a name="L737"></a><tt class="py-lineno"> 737</tt> <tt class="py-line"> </tt>
-<a name="L738"></a><tt class="py-lineno"> 738</tt> <tt class="py-line"> <tt class="py-name">body</tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-130" class="py-name" targets="Method apiclient.http.BatchHttpRequest._serialize_request()=apiclient.http.BatchHttpRequest-class.html#_serialize_request"><a title="apiclient.http.BatchHttpRequest._serialize_request" class="py-name" href="#" onclick="return doclink('link-130', '_serialize_request', 'link-130');">_serialize_request</a></tt><tt class="py-op">(</tt><tt id="link-131" class="py-name"><a title="apiclient.http.HttpMock.request
+apiclient.model.Model.request" class="py-name" href="#" onclick="return doclink('link-76', 'request', 'link-56');">request</a></tt><tt class="py-op">(</tt><tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">resumable_uri</tt><tt class="py-op">,</tt> <tt class="py-string">'PUT'</tt><tt class="py-op">,</tt> </tt>
+<a name="L611"></a><tt class="py-lineno"> 611</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="L612"></a><tt class="py-lineno"> 612</tt> <tt class="py-line"> <tt class="py-name">status</tt><tt class="py-op">,</tt> <tt class="py-name">body</tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-77" class="py-name" targets="Method apiclient.http.HttpRequest._process_response()=apiclient.http.HttpRequest-class.html#_process_response"><a title="apiclient.http.HttpRequest._process_response" class="py-name" href="#" onclick="return doclink('link-77', '_process_response', 'link-77');">_process_response</a></tt><tt class="py-op">(</tt><tt class="py-name">resp</tt><tt class="py-op">,</tt> <tt class="py-name">content</tt><tt class="py-op">)</tt> </tt>
+<a name="L613"></a><tt class="py-lineno"> 613</tt> <tt class="py-line"> <tt class="py-keyword">if</tt> <tt class="py-name">body</tt><tt class="py-op">:</tt> </tt>
+<a name="L614"></a><tt class="py-lineno"> 614</tt> <tt class="py-line"> <tt class="py-comment"># The upload was complete.</tt> </tt>
+<a name="L615"></a><tt class="py-lineno"> 615</tt> <tt class="py-line"> <tt class="py-keyword">return</tt> <tt class="py-op">(</tt><tt class="py-name">status</tt><tt class="py-op">,</tt> <tt class="py-name">body</tt><tt class="py-op">)</tt> </tt>
+<a name="L616"></a><tt class="py-lineno"> 616</tt> <tt class="py-line"> </tt>
+<a name="L617"></a><tt class="py-lineno"> 617</tt> <tt class="py-line"> <tt class="py-name">data</tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-78" class="py-name"><a title="apiclient.http.MediaFileUpload.resumable
+apiclient.http.MediaInMemoryUpload.resumable
+apiclient.http.MediaIoBaseUpload.resumable
+apiclient.http.MediaUpload.resumable" class="py-name" href="#" onclick="return doclink('link-78', 'resumable', 'link-28');">resumable</a></tt><tt class="py-op">.</tt><tt id="link-79" class="py-name" targets="Method apiclient.http.MediaFileUpload.getbytes()=apiclient.http.MediaFileUpload-class.html#getbytes,Method apiclient.http.MediaInMemoryUpload.getbytes()=apiclient.http.MediaInMemoryUpload-class.html#getbytes,Method apiclient.http.MediaIoBaseUpload.getbytes()=apiclient.http.MediaIoBaseUpload-class.html#getbytes,Method apiclient.http.MediaUpload.getbytes()=apiclient.http.MediaUpload-class.html#getbytes"><a title="apiclient.http.MediaFileUpload.getbytes
+apiclient.http.MediaInMemoryUpload.getbytes
+apiclient.http.MediaIoBaseUpload.getbytes
+apiclient.http.MediaUpload.getbytes" class="py-name" href="#" onclick="return doclink('link-79', 'getbytes', 'link-79');">getbytes</a></tt><tt class="py-op">(</tt> </tt>
+<a name="L618"></a><tt class="py-lineno"> 618</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">resumable_progress</tt><tt class="py-op">,</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-80" class="py-name"><a title="apiclient.http.MediaFileUpload.resumable
+apiclient.http.MediaInMemoryUpload.resumable
+apiclient.http.MediaIoBaseUpload.resumable
+apiclient.http.MediaUpload.resumable" class="py-name" href="#" onclick="return doclink('link-80', 'resumable', 'link-28');">resumable</a></tt><tt class="py-op">.</tt><tt id="link-81" class="py-name"><a title="apiclient.http.MediaFileUpload.chunksize
+apiclient.http.MediaInMemoryUpload.chunksize
+apiclient.http.MediaIoBaseUpload.chunksize
+apiclient.http.MediaUpload.chunksize" class="py-name" href="#" onclick="return doclink('link-81', 'chunksize', 'link-27');">chunksize</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
+<a name="L619"></a><tt class="py-lineno"> 619</tt> <tt class="py-line"> <tt class="py-name">headers</tt> <tt class="py-op">=</tt> <tt class="py-op">{</tt> </tt>
+<a name="L620"></a><tt class="py-lineno"> 620</tt> <tt class="py-line"> <tt class="py-string">'Content-Range'</tt><tt class="py-op">:</tt> <tt class="py-string">'bytes %d-%d/%s'</tt> <tt class="py-op">%</tt> <tt class="py-op">(</tt> </tt>
+<a name="L621"></a><tt class="py-lineno"> 621</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">resumable_progress</tt><tt class="py-op">,</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">resumable_progress</tt> <tt class="py-op">+</tt> <tt class="py-name">len</tt><tt class="py-op">(</tt><tt class="py-name">data</tt><tt class="py-op">)</tt> <tt class="py-op">-</tt> <tt class="py-number">1</tt><tt class="py-op">,</tt> </tt>
+<a name="L622"></a><tt class="py-lineno"> 622</tt> <tt class="py-line"> <tt id="link-82" class="py-name"><a title="apiclient.http.MediaFileUpload.size
+apiclient.http.MediaInMemoryUpload.size
+apiclient.http.MediaIoBaseUpload.size
+apiclient.http.MediaUpload.size" class="py-name" href="#" onclick="return doclink('link-82', 'size', 'link-62');">size</a></tt><tt class="py-op">)</tt> </tt>
+<a name="L623"></a><tt class="py-lineno"> 623</tt> <tt class="py-line"> <tt class="py-op">}</tt> </tt>
+<a name="L624"></a><tt class="py-lineno"> 624</tt> <tt class="py-line"> <tt class="py-keyword">try</tt><tt class="py-op">:</tt> </tt>
+<a name="L625"></a><tt class="py-lineno"> 625</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-83" class="py-name"><a title="apiclient.http
+oauth2client.appengine.OAuth2Decorator.http" class="py-name" href="#" onclick="return doclink('link-83', 'http', 'link-42');">http</a></tt><tt class="py-op">.</tt><tt id="link-84" 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-131', 'request', 'link-46');">request</a></tt><tt class="py-op">)</tt> </tt>
-<a name="L739"></a><tt class="py-lineno"> 739</tt> <tt class="py-line"> <tt class="py-name">msg</tt><tt class="py-op">.</tt><tt class="py-name">set_payload</tt><tt class="py-op">(</tt><tt class="py-name">body</tt><tt class="py-op">)</tt> </tt>
-<a name="L740"></a><tt class="py-lineno"> 740</tt> <tt class="py-line"> <tt class="py-name">message</tt><tt class="py-op">.</tt><tt class="py-name">attach</tt><tt class="py-op">(</tt><tt class="py-name">msg</tt><tt class="py-op">)</tt> </tt>
-<a name="L741"></a><tt class="py-lineno"> 741</tt> <tt class="py-line"> </tt>
-<a name="L742"></a><tt class="py-lineno"> 742</tt> <tt class="py-line"> <tt class="py-name">body</tt> <tt class="py-op">=</tt> <tt class="py-name">message</tt><tt class="py-op">.</tt><tt class="py-name">as_string</tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
-<a name="L743"></a><tt class="py-lineno"> 743</tt> <tt class="py-line"> </tt>
-<a name="L744"></a><tt class="py-lineno"> 744</tt> <tt class="py-line"> <tt class="py-name">headers</tt> <tt class="py-op">=</tt> <tt class="py-op">{</tt><tt class="py-op">}</tt> </tt>
-<a name="L745"></a><tt class="py-lineno"> 745</tt> <tt class="py-line"> <tt class="py-name">headers</tt><tt class="py-op">[</tt><tt class="py-string">'content-type'</tt><tt class="py-op">]</tt> <tt class="py-op">=</tt> <tt class="py-op">(</tt><tt class="py-string">'multipart/mixed; '</tt> </tt>
-<a name="L746"></a><tt class="py-lineno"> 746</tt> <tt class="py-line"> <tt class="py-string">'boundary="%s"'</tt><tt class="py-op">)</tt> <tt class="py-op">%</tt> <tt class="py-name">message</tt><tt class="py-op">.</tt><tt class="py-name">get_boundary</tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
-<a name="L747"></a><tt class="py-lineno"> 747</tt> <tt class="py-line"> </tt>
-<a name="L748"></a><tt class="py-lineno"> 748</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-132" class="py-name"><a title="apiclient.http
-oauth2client.appengine.OAuth2Decorator.http" class="py-name" href="#" onclick="return doclink('link-132', 'http', 'link-32');">http</a></tt><tt class="py-op">.</tt><tt id="link-133" class="py-name"><a title="apiclient.http.HttpMock.request
+apiclient.model.Model.request" class="py-name" href="#" onclick="return doclink('link-84', 'request', 'link-56');">request</a></tt><tt class="py-op">(</tt><tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">resumable_uri</tt><tt class="py-op">,</tt> <tt class="py-string">'PUT'</tt><tt class="py-op">,</tt> </tt>
+<a name="L626"></a><tt class="py-lineno"> 626</tt> <tt class="py-line"> <tt class="py-name">body</tt><tt class="py-op">=</tt><tt class="py-name">data</tt><tt class="py-op">,</tt> </tt>
+<a name="L627"></a><tt class="py-lineno"> 627</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="L628"></a><tt class="py-lineno"> 628</tt> <tt class="py-line"> <tt class="py-keyword">except</tt><tt class="py-op">:</tt> </tt>
+<a name="L629"></a><tt class="py-lineno"> 629</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">_in_error_state</tt> <tt class="py-op">=</tt> <tt class="py-name">True</tt> </tt>
+<a name="L630"></a><tt class="py-lineno"> 630</tt> <tt class="py-line"> <tt class="py-keyword">raise</tt> </tt>
+<a name="L631"></a><tt class="py-lineno"> 631</tt> <tt class="py-line"> </tt>
+<a name="L632"></a><tt class="py-lineno"> 632</tt> <tt class="py-line"> <tt class="py-keyword">return</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-85" class="py-name"><a title="apiclient.http.HttpRequest._process_response" class="py-name" href="#" onclick="return doclink('link-85', '_process_response', 'link-77');">_process_response</a></tt><tt class="py-op">(</tt><tt class="py-name">resp</tt><tt class="py-op">,</tt> <tt class="py-name">content</tt><tt class="py-op">)</tt> </tt>
+</div><a name="L633"></a><tt class="py-lineno"> 633</tt> <tt class="py-line"> </tt>
+<a name="HttpRequest._process_response"></a><div id="HttpRequest._process_response-def"><a name="L634"></a><tt class="py-lineno"> 634</tt> <a class="py-toggle" href="#" id="HttpRequest._process_response-toggle" onclick="return toggle('HttpRequest._process_response');">-</a><tt class="py-line"> <tt class="py-keyword">def</tt> <a class="py-def-name" href="apiclient.http.HttpRequest-class.html#_process_response">_process_response</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">,</tt> <tt class="py-param">resp</tt><tt class="py-op">,</tt> <tt class="py-param">content</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+</div><div id="HttpRequest._process_response-collapsed" style="display:none;" pad="++++" indent="++++++"></div><div id="HttpRequest._process_response-expanded"><a name="L635"></a><tt class="py-lineno"> 635</tt> <tt class="py-line"> <tt class="py-docstring">"""Process the response from a single chunk upload.</tt> </tt>
+<a name="L636"></a><tt class="py-lineno"> 636</tt> <tt class="py-line"><tt class="py-docstring"></tt> </tt>
+<a name="L637"></a><tt class="py-lineno"> 637</tt> <tt class="py-line"><tt class="py-docstring"> Args:</tt> </tt>
+<a name="L638"></a><tt class="py-lineno"> 638</tt> <tt class="py-line"><tt class="py-docstring"> resp: httplib2.Response, the response object.</tt> </tt>
+<a name="L639"></a><tt class="py-lineno"> 639</tt> <tt class="py-line"><tt class="py-docstring"> content: string, the content of the response.</tt> </tt>
+<a name="L640"></a><tt class="py-lineno"> 640</tt> <tt class="py-line"><tt class="py-docstring"></tt> </tt>
+<a name="L641"></a><tt class="py-lineno"> 641</tt> <tt class="py-line"><tt class="py-docstring"> Returns:</tt> </tt>
+<a name="L642"></a><tt class="py-lineno"> 642</tt> <tt class="py-line"><tt class="py-docstring"> (status, body): (ResumableMediaStatus, object)</tt> </tt>
+<a name="L643"></a><tt class="py-lineno"> 643</tt> <tt class="py-line"><tt class="py-docstring"> The body will be None until the resumable media is fully uploaded.</tt> </tt>
+<a name="L644"></a><tt class="py-lineno"> 644</tt> <tt class="py-line"><tt class="py-docstring"></tt> </tt>
+<a name="L645"></a><tt class="py-lineno"> 645</tt> <tt class="py-line"><tt class="py-docstring"> Raises:</tt> </tt>
+<a name="L646"></a><tt class="py-lineno"> 646</tt> <tt class="py-line"><tt class="py-docstring"> apiclient.errors.HttpError if the response was not a 2xx or a 308.</tt> </tt>
+<a name="L647"></a><tt class="py-lineno"> 647</tt> <tt class="py-line"><tt class="py-docstring"> """</tt> </tt>
+<a name="L648"></a><tt class="py-lineno"> 648</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-keyword">in</tt> <tt class="py-op">[</tt><tt class="py-number">200</tt><tt class="py-op">,</tt> <tt class="py-number">201</tt><tt class="py-op">]</tt><tt class="py-op">:</tt> </tt>
+<a name="L649"></a><tt class="py-lineno"> 649</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">_in_error_state</tt> <tt class="py-op">=</tt> <tt class="py-name">False</tt> </tt>
+<a name="L650"></a><tt class="py-lineno"> 650</tt> <tt class="py-line"> <tt class="py-keyword">return</tt> <tt class="py-name">None</tt><tt class="py-op">,</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">postproc</tt><tt class="py-op">(</tt><tt class="py-name">resp</tt><tt class="py-op">,</tt> <tt class="py-name">content</tt><tt class="py-op">)</tt> </tt>
+<a name="L651"></a><tt class="py-lineno"> 651</tt> <tt class="py-line"> <tt class="py-keyword">elif</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">308</tt><tt class="py-op">:</tt> </tt>
+<a name="L652"></a><tt class="py-lineno"> 652</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">_in_error_state</tt> <tt class="py-op">=</tt> <tt class="py-name">False</tt> </tt>
+<a name="L653"></a><tt class="py-lineno"> 653</tt> <tt class="py-line"> <tt class="py-comment"># A "308 Resume Incomplete" indicates we are not done.</tt> </tt>
+<a name="L654"></a><tt class="py-lineno"> 654</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">resumable_progress</tt> <tt class="py-op">=</tt> <tt class="py-name">int</tt><tt class="py-op">(</tt><tt class="py-name">resp</tt><tt class="py-op">[</tt><tt class="py-string">'range'</tt><tt class="py-op">]</tt><tt class="py-op">.</tt><tt class="py-name">split</tt><tt class="py-op">(</tt><tt class="py-string">'-'</tt><tt class="py-op">)</tt><tt class="py-op">[</tt><tt class="py-number">1</tt><tt class="py-op">]</tt><tt class="py-op">)</tt> <tt class="py-op">+</tt> <tt class="py-number">1</tt> </tt>
+<a name="L655"></a><tt class="py-lineno"> 655</tt> <tt class="py-line"> <tt class="py-keyword">if</tt> <tt class="py-string">'location'</tt> <tt class="py-keyword">in</tt> <tt class="py-name">resp</tt><tt class="py-op">:</tt> </tt>
+<a name="L656"></a><tt class="py-lineno"> 656</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">resumable_uri</tt> <tt class="py-op">=</tt> <tt class="py-name">resp</tt><tt class="py-op">[</tt><tt class="py-string">'location'</tt><tt class="py-op">]</tt> </tt>
+<a name="L657"></a><tt class="py-lineno"> 657</tt> <tt class="py-line"> <tt class="py-keyword">else</tt><tt class="py-op">:</tt> </tt>
+<a name="L658"></a><tt class="py-lineno"> 658</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">_in_error_state</tt> <tt class="py-op">=</tt> <tt class="py-name">True</tt> </tt>
+<a name="L659"></a><tt class="py-lineno"> 659</tt> <tt class="py-line"> <tt class="py-keyword">raise</tt> <tt id="link-86" class="py-name"><a title="apiclient.errors.HttpError" class="py-name" href="#" onclick="return doclink('link-86', 'HttpError', 'link-4');">HttpError</a></tt><tt class="py-op">(</tt><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">self</tt><tt class="py-op">.</tt><tt class="py-name">uri</tt><tt class="py-op">)</tt> </tt>
+<a name="L660"></a><tt class="py-lineno"> 660</tt> <tt class="py-line"> </tt>
+<a name="L661"></a><tt class="py-lineno"> 661</tt> <tt class="py-line"> <tt class="py-keyword">return</tt> <tt class="py-op">(</tt><tt id="link-87" class="py-name" targets="Class apiclient.http.MediaUploadProgress=apiclient.http.MediaUploadProgress-class.html"><a title="apiclient.http.MediaUploadProgress" class="py-name" href="#" onclick="return doclink('link-87', 'MediaUploadProgress', 'link-87');">MediaUploadProgress</a></tt><tt class="py-op">(</tt><tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">resumable_progress</tt><tt class="py-op">,</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-88" class="py-name"><a title="apiclient.http.MediaFileUpload.resumable
+apiclient.http.MediaInMemoryUpload.resumable
+apiclient.http.MediaIoBaseUpload.resumable
+apiclient.http.MediaUpload.resumable" class="py-name" href="#" onclick="return doclink('link-88', 'resumable', 'link-28');">resumable</a></tt><tt class="py-op">.</tt><tt id="link-89" class="py-name"><a title="apiclient.http.MediaFileUpload.size
+apiclient.http.MediaInMemoryUpload.size
+apiclient.http.MediaIoBaseUpload.size
+apiclient.http.MediaUpload.size" class="py-name" href="#" onclick="return doclink('link-89', 'size', 'link-62');">size</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt><tt class="py-op">)</tt><tt class="py-op">,</tt> </tt>
+<a name="L662"></a><tt class="py-lineno"> 662</tt> <tt class="py-line"> <tt class="py-name">None</tt><tt class="py-op">)</tt> </tt>
+</div><a name="L663"></a><tt class="py-lineno"> 663</tt> <tt class="py-line"> </tt>
+<a name="HttpRequest.to_json"></a><div id="HttpRequest.to_json-def"><a name="L664"></a><tt class="py-lineno"> 664</tt> <a class="py-toggle" href="#" id="HttpRequest.to_json-toggle" onclick="return toggle('HttpRequest.to_json');">-</a><tt class="py-line"> <tt class="py-keyword">def</tt> <a class="py-def-name" href="apiclient.http.HttpRequest-class.html#to_json">to_json</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+</div><div id="HttpRequest.to_json-collapsed" style="display:none;" pad="++++" indent="++++++"></div><div id="HttpRequest.to_json-expanded"><a name="L665"></a><tt class="py-lineno"> 665</tt> <tt class="py-line"> <tt class="py-docstring">"""Returns a JSON representation of the HttpRequest."""</tt> </tt>
+<a name="L666"></a><tt class="py-lineno"> 666</tt> <tt class="py-line"> <tt class="py-name">d</tt> <tt class="py-op">=</tt> <tt class="py-name">copy</tt><tt class="py-op">.</tt><tt class="py-name">copy</tt><tt class="py-op">(</tt><tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">__dict__</tt><tt class="py-op">)</tt> </tt>
+<a name="L667"></a><tt class="py-lineno"> 667</tt> <tt class="py-line"> <tt class="py-keyword">if</tt> <tt class="py-name">d</tt><tt class="py-op">[</tt><tt class="py-string">'resumable'</tt><tt class="py-op">]</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="L668"></a><tt class="py-lineno"> 668</tt> <tt class="py-line"> <tt class="py-name">d</tt><tt class="py-op">[</tt><tt class="py-string">'resumable'</tt><tt class="py-op">]</tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-90" class="py-name"><a title="apiclient.http.MediaFileUpload.resumable
+apiclient.http.MediaInMemoryUpload.resumable
+apiclient.http.MediaIoBaseUpload.resumable
+apiclient.http.MediaUpload.resumable" class="py-name" href="#" onclick="return doclink('link-90', 'resumable', 'link-28');">resumable</a></tt><tt class="py-op">.</tt><tt id="link-91" class="py-name" targets="Method apiclient.http.HttpRequest.to_json()=apiclient.http.HttpRequest-class.html#to_json,Method apiclient.http.MediaFileUpload.to_json()=apiclient.http.MediaFileUpload-class.html#to_json,Method apiclient.http.MediaInMemoryUpload.to_json()=apiclient.http.MediaInMemoryUpload-class.html#to_json,Method apiclient.http.MediaIoBaseUpload.to_json()=apiclient.http.MediaIoBaseUpload-class.html#to_json,Method apiclient.http.MediaUpload.to_json()=apiclient.http.MediaUpload-class.html#to_json,Method oauth2client.client.Credentials.to_json()=oauth2client.client.Credentials-class.html#to_json,Method oauth2client.client.OAuth2Credentials.to_json()=oauth2client.client.OAuth2Credentials-class.html#to_json"><a title="apiclient.http.HttpRequest.to_json
+apiclient.http.MediaFileUpload.to_json
+apiclient.http.MediaInMemoryUpload.to_json
+apiclient.http.MediaIoBaseUpload.to_json
+apiclient.http.MediaUpload.to_json
+oauth2client.client.Credentials.to_json
+oauth2client.client.OAuth2Credentials.to_json" class="py-name" href="#" onclick="return doclink('link-91', 'to_json', 'link-91');">to_json</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
+<a name="L669"></a><tt class="py-lineno"> 669</tt> <tt class="py-line"> <tt class="py-keyword">del</tt> <tt class="py-name">d</tt><tt class="py-op">[</tt><tt class="py-string">'http'</tt><tt class="py-op">]</tt> </tt>
+<a name="L670"></a><tt class="py-lineno"> 670</tt> <tt class="py-line"> <tt class="py-keyword">del</tt> <tt class="py-name">d</tt><tt class="py-op">[</tt><tt class="py-string">'postproc'</tt><tt class="py-op">]</tt> </tt>
+<a name="L671"></a><tt class="py-lineno"> 671</tt> <tt class="py-line"> </tt>
+<a name="L672"></a><tt class="py-lineno"> 672</tt> <tt class="py-line"> <tt class="py-keyword">return</tt> <tt class="py-name">simplejson</tt><tt class="py-op">.</tt><tt class="py-name">dumps</tt><tt class="py-op">(</tt><tt class="py-name">d</tt><tt class="py-op">)</tt> </tt>
+</div><a name="L673"></a><tt class="py-lineno"> 673</tt> <tt class="py-line"> </tt>
+<a name="L674"></a><tt class="py-lineno"> 674</tt> <tt class="py-line"> <tt class="py-decorator">@</tt><tt class="py-decorator">staticmethod</tt> </tt>
+<a name="HttpRequest.from_json"></a><div id="HttpRequest.from_json-def"><a name="L675"></a><tt class="py-lineno"> 675</tt> <a class="py-toggle" href="#" id="HttpRequest.from_json-toggle" onclick="return toggle('HttpRequest.from_json');">-</a><tt class="py-line"> <tt class="py-keyword">def</tt> <a class="py-def-name" href="apiclient.http.HttpRequest-class.html#from_json">from_json</a><tt class="py-op">(</tt><tt class="py-param">s</tt><tt class="py-op">,</tt> <tt class="py-param">http</tt><tt class="py-op">,</tt> <tt class="py-param">postproc</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+</div><div id="HttpRequest.from_json-collapsed" style="display:none;" pad="++++" indent="++++++"></div><div id="HttpRequest.from_json-expanded"><a name="L676"></a><tt class="py-lineno"> 676</tt> <tt class="py-line"> <tt class="py-docstring">"""Returns an HttpRequest populated with info from a JSON object."""</tt> </tt>
+<a name="L677"></a><tt class="py-lineno"> 677</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-92" class="py-name"><a title="oauth2client.clientsecrets.loads" class="py-name" href="#" onclick="return doclink('link-92', 'loads', 'link-17');">loads</a></tt><tt class="py-op">(</tt><tt class="py-name">s</tt><tt class="py-op">)</tt> </tt>
+<a name="L678"></a><tt class="py-lineno"> 678</tt> <tt class="py-line"> <tt class="py-keyword">if</tt> <tt class="py-name">d</tt><tt class="py-op">[</tt><tt class="py-string">'resumable'</tt><tt class="py-op">]</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="L679"></a><tt class="py-lineno"> 679</tt> <tt class="py-line"> <tt class="py-name">d</tt><tt class="py-op">[</tt><tt class="py-string">'resumable'</tt><tt class="py-op">]</tt> <tt class="py-op">=</tt> <tt id="link-93" class="py-name" targets="Class apiclient.http.MediaUpload=apiclient.http.MediaUpload-class.html"><a title="apiclient.http.MediaUpload" class="py-name" href="#" onclick="return doclink('link-93', 'MediaUpload', 'link-93');">MediaUpload</a></tt><tt class="py-op">.</tt><tt id="link-94" class="py-name" targets="Class Method apiclient.http.MediaUpload.new_from_json()=apiclient.http.MediaUpload-class.html#new_from_json,Class Method oauth2client.client.Credentials.new_from_json()=oauth2client.client.Credentials-class.html#new_from_json"><a title="apiclient.http.MediaUpload.new_from_json
+oauth2client.client.Credentials.new_from_json" class="py-name" href="#" onclick="return doclink('link-94', 'new_from_json', 'link-94');">new_from_json</a></tt><tt class="py-op">(</tt><tt class="py-name">d</tt><tt class="py-op">[</tt><tt class="py-string">'resumable'</tt><tt class="py-op">]</tt><tt class="py-op">)</tt> </tt>
+<a name="L680"></a><tt class="py-lineno"> 680</tt> <tt class="py-line"> <tt class="py-keyword">return</tt> <tt id="link-95" class="py-name" targets="Class apiclient.http.HttpRequest=apiclient.http.HttpRequest-class.html"><a title="apiclient.http.HttpRequest" class="py-name" href="#" onclick="return doclink('link-95', 'HttpRequest', 'link-95');">HttpRequest</a></tt><tt class="py-op">(</tt> </tt>
+<a name="L681"></a><tt class="py-lineno"> 681</tt> <tt class="py-line"> <tt id="link-96" class="py-name"><a title="apiclient.http
+oauth2client.appengine.OAuth2Decorator.http" class="py-name" href="#" onclick="return doclink('link-96', 'http', 'link-42');">http</a></tt><tt class="py-op">,</tt> </tt>
+<a name="L682"></a><tt class="py-lineno"> 682</tt> <tt class="py-line"> <tt class="py-name">postproc</tt><tt class="py-op">,</tt> </tt>
+<a name="L683"></a><tt class="py-lineno"> 683</tt> <tt class="py-line"> <tt class="py-name">uri</tt><tt class="py-op">=</tt><tt class="py-name">d</tt><tt class="py-op">[</tt><tt class="py-string">'uri'</tt><tt class="py-op">]</tt><tt class="py-op">,</tt> </tt>
+<a name="L684"></a><tt class="py-lineno"> 684</tt> <tt class="py-line"> <tt class="py-name">method</tt><tt class="py-op">=</tt><tt class="py-name">d</tt><tt class="py-op">[</tt><tt class="py-string">'method'</tt><tt class="py-op">]</tt><tt class="py-op">,</tt> </tt>
+<a name="L685"></a><tt class="py-lineno"> 685</tt> <tt class="py-line"> <tt class="py-name">body</tt><tt class="py-op">=</tt><tt class="py-name">d</tt><tt class="py-op">[</tt><tt class="py-string">'body'</tt><tt class="py-op">]</tt><tt class="py-op">,</tt> </tt>
+<a name="L686"></a><tt class="py-lineno"> 686</tt> <tt class="py-line"> <tt class="py-name">headers</tt><tt class="py-op">=</tt><tt class="py-name">d</tt><tt class="py-op">[</tt><tt class="py-string">'headers'</tt><tt class="py-op">]</tt><tt class="py-op">,</tt> </tt>
+<a name="L687"></a><tt class="py-lineno"> 687</tt> <tt class="py-line"> <tt class="py-name">methodId</tt><tt class="py-op">=</tt><tt class="py-name">d</tt><tt class="py-op">[</tt><tt class="py-string">'methodId'</tt><tt class="py-op">]</tt><tt class="py-op">,</tt> </tt>
+<a name="L688"></a><tt class="py-lineno"> 688</tt> <tt class="py-line"> <tt id="link-97" class="py-name"><a title="apiclient.http.MediaFileUpload.resumable
+apiclient.http.MediaInMemoryUpload.resumable
+apiclient.http.MediaIoBaseUpload.resumable
+apiclient.http.MediaUpload.resumable" class="py-name" href="#" onclick="return doclink('link-97', 'resumable', 'link-28');">resumable</a></tt><tt class="py-op">=</tt><tt class="py-name">d</tt><tt class="py-op">[</tt><tt class="py-string">'resumable'</tt><tt class="py-op">]</tt><tt class="py-op">)</tt> </tt>
+</div></div><a name="L689"></a><tt class="py-lineno"> 689</tt> <tt class="py-line"> </tt>
+<a name="BatchHttpRequest"></a><div id="BatchHttpRequest-def"><a name="L690"></a><tt class="py-lineno"> 690</tt> <tt class="py-line"> </tt>
+<a name="L691"></a><tt class="py-lineno"> 691</tt> <a class="py-toggle" href="#" id="BatchHttpRequest-toggle" onclick="return toggle('BatchHttpRequest');">-</a><tt class="py-line"><tt class="py-keyword">class</tt> <a class="py-def-name" href="apiclient.http.BatchHttpRequest-class.html">BatchHttpRequest</a><tt class="py-op">(</tt><tt class="py-base-class">object</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+</div><div id="BatchHttpRequest-collapsed" style="display:none;" pad="++++" indent="++++"></div><div id="BatchHttpRequest-expanded"><a name="L692"></a><tt class="py-lineno"> 692</tt> <tt class="py-line"> <tt class="py-docstring">"""Batches multiple HttpRequest objects into a single HTTP request."""</tt> </tt>
+<a name="L693"></a><tt class="py-lineno"> 693</tt> <tt class="py-line"> </tt>
+<a name="BatchHttpRequest.__init__"></a><div id="BatchHttpRequest.__init__-def"><a name="L694"></a><tt class="py-lineno"> 694</tt> <a class="py-toggle" href="#" id="BatchHttpRequest.__init__-toggle" onclick="return toggle('BatchHttpRequest.__init__');">-</a><tt class="py-line"> <tt class="py-keyword">def</tt> <a class="py-def-name" href="apiclient.http.BatchHttpRequest-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">callback</tt><tt class="py-op">=</tt><tt class="py-name">None</tt><tt class="py-op">,</tt> <tt class="py-param">batch_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="BatchHttpRequest.__init__-collapsed" style="display:none;" pad="++++" indent="++++++"></div><div id="BatchHttpRequest.__init__-expanded"><a name="L695"></a><tt class="py-lineno"> 695</tt> <tt class="py-line"> <tt class="py-docstring">"""Constructor for a BatchHttpRequest.</tt> </tt>
+<a name="L696"></a><tt class="py-lineno"> 696</tt> <tt class="py-line"><tt class="py-docstring"></tt> </tt>
+<a name="L697"></a><tt class="py-lineno"> 697</tt> <tt class="py-line"><tt class="py-docstring"> Args:</tt> </tt>
+<a name="L698"></a><tt class="py-lineno"> 698</tt> <tt class="py-line"><tt class="py-docstring"> callback: callable, A callback to be called for each response, of the</tt> </tt>
+<a name="L699"></a><tt class="py-lineno"> 699</tt> <tt class="py-line"><tt class="py-docstring"> form callback(id, response). The first parameter is the request id, and</tt> </tt>
+<a name="L700"></a><tt class="py-lineno"> 700</tt> <tt class="py-line"><tt class="py-docstring"> the second is the deserialized response object.</tt> </tt>
+<a name="L701"></a><tt class="py-lineno"> 701</tt> <tt class="py-line"><tt class="py-docstring"> batch_uri: string, URI to send batch requests to.</tt> </tt>
+<a name="L702"></a><tt class="py-lineno"> 702</tt> <tt class="py-line"><tt class="py-docstring"> """</tt> </tt>
+<a name="L703"></a><tt class="py-lineno"> 703</tt> <tt class="py-line"> <tt class="py-keyword">if</tt> <tt class="py-name">batch_uri</tt> <tt class="py-keyword">is</tt> <tt class="py-name">None</tt><tt class="py-op">:</tt> </tt>
+<a name="L704"></a><tt class="py-lineno"> 704</tt> <tt class="py-line"> <tt class="py-name">batch_uri</tt> <tt class="py-op">=</tt> <tt class="py-string">'https://www.googleapis.com/batch'</tt> </tt>
+<a name="L705"></a><tt class="py-lineno"> 705</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">_batch_uri</tt> <tt class="py-op">=</tt> <tt class="py-name">batch_uri</tt> </tt>
+<a name="L706"></a><tt class="py-lineno"> 706</tt> <tt class="py-line"> </tt>
+<a name="L707"></a><tt class="py-lineno"> 707</tt> <tt class="py-line"> <tt class="py-comment"># Global callback to be called for each individual response in the batch.</tt> </tt>
+<a name="L708"></a><tt class="py-lineno"> 708</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">_callback</tt> <tt class="py-op">=</tt> <tt class="py-name">callback</tt> </tt>
+<a name="L709"></a><tt class="py-lineno"> 709</tt> <tt class="py-line"> </tt>
+<a name="L710"></a><tt class="py-lineno"> 710</tt> <tt class="py-line"> <tt class="py-comment"># A map from id to request.</tt> </tt>
+<a name="L711"></a><tt class="py-lineno"> 711</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">_requests</tt> <tt class="py-op">=</tt> <tt class="py-op">{</tt><tt class="py-op">}</tt> </tt>
+<a name="L712"></a><tt class="py-lineno"> 712</tt> <tt class="py-line"> </tt>
+<a name="L713"></a><tt class="py-lineno"> 713</tt> <tt class="py-line"> <tt class="py-comment"># A map from id to callback.</tt> </tt>
+<a name="L714"></a><tt class="py-lineno"> 714</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">_callbacks</tt> <tt class="py-op">=</tt> <tt class="py-op">{</tt><tt class="py-op">}</tt> </tt>
+<a name="L715"></a><tt class="py-lineno"> 715</tt> <tt class="py-line"> </tt>
+<a name="L716"></a><tt class="py-lineno"> 716</tt> <tt class="py-line"> <tt class="py-comment"># List of request ids, in the order in which they were added.</tt> </tt>
+<a name="L717"></a><tt class="py-lineno"> 717</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">_order</tt> <tt class="py-op">=</tt> <tt class="py-op">[</tt><tt class="py-op">]</tt> </tt>
+<a name="L718"></a><tt class="py-lineno"> 718</tt> <tt class="py-line"> </tt>
+<a name="L719"></a><tt class="py-lineno"> 719</tt> <tt class="py-line"> <tt class="py-comment"># The last auto generated id.</tt> </tt>
+<a name="L720"></a><tt class="py-lineno"> 720</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">_last_auto_id</tt> <tt class="py-op">=</tt> <tt class="py-number">0</tt> </tt>
+<a name="L721"></a><tt class="py-lineno"> 721</tt> <tt class="py-line"> </tt>
+<a name="L722"></a><tt class="py-lineno"> 722</tt> <tt class="py-line"> <tt class="py-comment"># Unique ID on which to base the Content-ID headers.</tt> </tt>
+<a name="L723"></a><tt class="py-lineno"> 723</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">_base_id</tt> <tt class="py-op">=</tt> <tt class="py-name">None</tt> </tt>
+<a name="L724"></a><tt class="py-lineno"> 724</tt> <tt class="py-line"> </tt>
+<a name="L725"></a><tt class="py-lineno"> 725</tt> <tt class="py-line"> <tt class="py-comment"># A map from request id to (headers, content) response pairs</tt> </tt>
+<a name="L726"></a><tt class="py-lineno"> 726</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">_responses</tt> <tt class="py-op">=</tt> <tt class="py-op">{</tt><tt class="py-op">}</tt> </tt>
+<a name="L727"></a><tt class="py-lineno"> 727</tt> <tt class="py-line"> </tt>
+<a name="L728"></a><tt class="py-lineno"> 728</tt> <tt class="py-line"> <tt class="py-comment"># A map of id(Credentials) that have been refreshed.</tt> </tt>
+<a name="L729"></a><tt class="py-lineno"> 729</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">_refreshed_credentials</tt> <tt class="py-op">=</tt> <tt class="py-op">{</tt><tt class="py-op">}</tt> </tt>
+</div><a name="L730"></a><tt class="py-lineno"> 730</tt> <tt class="py-line"> </tt>
+<a name="BatchHttpRequest._refresh_and_apply_credentials"></a><div id="BatchHttpRequest._refresh_and_apply_credentials-def"><a name="L731"></a><tt class="py-lineno"> 731</tt> <a class="py-toggle" href="#" id="BatchHttpRequest._refresh_and_apply_credentials-toggle" onclick="return toggle('BatchHttpRequest._refresh_and_apply_credentials');">-</a><tt class="py-line"> <tt class="py-keyword">def</tt> <a class="py-def-name" href="apiclient.http.BatchHttpRequest-class.html#_refresh_and_apply_credentials">_refresh_and_apply_credentials</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">,</tt> <tt class="py-param">request</tt><tt class="py-op">,</tt> <tt class="py-param">http</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+</div><div id="BatchHttpRequest._refresh_and_apply_credentials-collapsed" style="display:none;" pad="++++" indent="++++++"></div><div id="BatchHttpRequest._refresh_and_apply_credentials-expanded"><a name="L732"></a><tt class="py-lineno"> 732</tt> <tt class="py-line"> <tt class="py-docstring">"""Refresh the credentials and apply to the request.</tt> </tt>
+<a name="L733"></a><tt class="py-lineno"> 733</tt> <tt class="py-line"><tt class="py-docstring"></tt> </tt>
+<a name="L734"></a><tt class="py-lineno"> 734</tt> <tt class="py-line"><tt class="py-docstring"> Args:</tt> </tt>
+<a name="L735"></a><tt class="py-lineno"> 735</tt> <tt class="py-line"><tt class="py-docstring"> request: HttpRequest, the request.</tt> </tt>
+<a name="L736"></a><tt class="py-lineno"> 736</tt> <tt class="py-line"><tt class="py-docstring"> http: httplib2.Http, the global http object for the batch.</tt> </tt>
+<a name="L737"></a><tt class="py-lineno"> 737</tt> <tt class="py-line"><tt class="py-docstring"> """</tt> </tt>
+<a name="L738"></a><tt class="py-lineno"> 738</tt> <tt class="py-line"> <tt class="py-comment"># For the credentials to refresh, but only once per refresh_token</tt> </tt>
+<a name="L739"></a><tt class="py-lineno"> 739</tt> <tt class="py-line"> <tt class="py-comment"># If there is no http per the request then refresh the http passed in</tt> </tt>
+<a name="L740"></a><tt class="py-lineno"> 740</tt> <tt class="py-line"> <tt class="py-comment"># via execute()</tt> </tt>
+<a name="L741"></a><tt class="py-lineno"> 741</tt> <tt class="py-line"> <tt class="py-name">creds</tt> <tt class="py-op">=</tt> <tt class="py-name">None</tt> </tt>
+<a name="L742"></a><tt class="py-lineno"> 742</tt> <tt class="py-line"> <tt class="py-keyword">if</tt> <tt id="link-98" 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-133', 'request', 'link-46');">request</a></tt><tt class="py-op">(</tt><tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">_batch_uri</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="L749"></a><tt class="py-lineno"> 749</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="L750"></a><tt class="py-lineno"> 750</tt> <tt class="py-line"> </tt>
-<a name="L751"></a><tt class="py-lineno"> 751</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">300</tt><tt class="py-op">:</tt> </tt>
-<a name="L752"></a><tt class="py-lineno"> 752</tt> <tt class="py-line"> <tt class="py-keyword">raise</tt> <tt id="link-134" class="py-name"><a title="apiclient.errors.HttpError" class="py-name" href="#" onclick="return doclink('link-134', 'HttpError', 'link-4');">HttpError</a></tt><tt class="py-op">(</tt><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">self</tt><tt class="py-op">.</tt><tt class="py-name">_batch_uri</tt><tt class="py-op">)</tt> </tt>
-<a name="L753"></a><tt class="py-lineno"> 753</tt> <tt class="py-line"> </tt>
-<a name="L754"></a><tt class="py-lineno"> 754</tt> <tt class="py-line"> <tt class="py-comment"># Now break out the individual responses and store each one.</tt> </tt>
-<a name="L755"></a><tt class="py-lineno"> 755</tt> <tt class="py-line"> <tt class="py-name">boundary</tt><tt class="py-op">,</tt> <tt class="py-name">_</tt> <tt class="py-op">=</tt> <tt class="py-name">content</tt><tt class="py-op">.</tt><tt class="py-name">split</tt><tt class="py-op">(</tt><tt class="py-name">None</tt><tt class="py-op">,</tt> <tt class="py-number">1</tt><tt class="py-op">)</tt> </tt>
-<a name="L756"></a><tt class="py-lineno"> 756</tt> <tt class="py-line"> </tt>
-<a name="L757"></a><tt class="py-lineno"> 757</tt> <tt class="py-line"> <tt class="py-comment"># Prepend with a content-type header so FeedParser can handle it.</tt> </tt>
-<a name="L758"></a><tt class="py-lineno"> 758</tt> <tt class="py-line"> <tt class="py-name">header</tt> <tt class="py-op">=</tt> <tt class="py-string">'content-type: %s\r\n\r\n'</tt> <tt class="py-op">%</tt> <tt class="py-name">resp</tt><tt class="py-op">[</tt><tt class="py-string">'content-type'</tt><tt class="py-op">]</tt> </tt>
-<a name="L759"></a><tt class="py-lineno"> 759</tt> <tt class="py-line"> <tt class="py-name">for_parser</tt> <tt class="py-op">=</tt> <tt class="py-name">header</tt> <tt class="py-op">+</tt> <tt class="py-name">content</tt> </tt>
-<a name="L760"></a><tt class="py-lineno"> 760</tt> <tt class="py-line"> </tt>
-<a name="L761"></a><tt class="py-lineno"> 761</tt> <tt class="py-line"> <tt class="py-name">parser</tt> <tt class="py-op">=</tt> <tt class="py-name">FeedParser</tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
-<a name="L762"></a><tt class="py-lineno"> 762</tt> <tt class="py-line"> <tt class="py-name">parser</tt><tt class="py-op">.</tt><tt class="py-name">feed</tt><tt class="py-op">(</tt><tt class="py-name">for_parser</tt><tt class="py-op">)</tt> </tt>
-<a name="L763"></a><tt class="py-lineno"> 763</tt> <tt class="py-line"> <tt class="py-name">mime_response</tt> <tt class="py-op">=</tt> <tt class="py-name">parser</tt><tt class="py-op">.</tt><tt class="py-name">close</tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
-<a name="L764"></a><tt class="py-lineno"> 764</tt> <tt class="py-line"> </tt>
-<a name="L765"></a><tt class="py-lineno"> 765</tt> <tt class="py-line"> <tt class="py-keyword">if</tt> <tt class="py-keyword">not</tt> <tt class="py-name">mime_response</tt><tt class="py-op">.</tt><tt class="py-name">is_multipart</tt><tt class="py-op">(</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-<a name="L766"></a><tt class="py-lineno"> 766</tt> <tt class="py-line"> <tt class="py-keyword">raise</tt> <tt id="link-135" class="py-name"><a title="apiclient.errors.BatchError" class="py-name" href="#" onclick="return doclink('link-135', 'BatchError', 'link-2');">BatchError</a></tt><tt class="py-op">(</tt><tt class="py-string">"Response not in multipart/mixed format."</tt><tt class="py-op">,</tt> <tt class="py-name">resp</tt><tt class="py-op">,</tt> </tt>
-<a name="L767"></a><tt class="py-lineno"> 767</tt> <tt class="py-line"> <tt class="py-name">content</tt><tt class="py-op">)</tt> </tt>
-<a name="L768"></a><tt class="py-lineno"> 768</tt> <tt class="py-line"> </tt>
-<a name="L769"></a><tt class="py-lineno"> 769</tt> <tt class="py-line"> <tt class="py-keyword">for</tt> <tt class="py-name">part</tt> <tt class="py-keyword">in</tt> <tt class="py-name">mime_response</tt><tt class="py-op">.</tt><tt class="py-name">get_payload</tt><tt class="py-op">(</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-<a name="L770"></a><tt class="py-lineno"> 770</tt> <tt class="py-line"> <tt class="py-name">request_id</tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-136" class="py-name" targets="Method apiclient.http.BatchHttpRequest._header_to_id()=apiclient.http.BatchHttpRequest-class.html#_header_to_id"><a title="apiclient.http.BatchHttpRequest._header_to_id" class="py-name" href="#" onclick="return doclink('link-136', '_header_to_id', 'link-136');">_header_to_id</a></tt><tt class="py-op">(</tt><tt class="py-name">part</tt><tt class="py-op">[</tt><tt class="py-string">'Content-ID'</tt><tt class="py-op">]</tt><tt class="py-op">)</tt> </tt>
-<a name="L771"></a><tt class="py-lineno"> 771</tt> <tt class="py-line"> <tt class="py-name">headers</tt><tt class="py-op">,</tt> <tt class="py-name">content</tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-137" class="py-name" targets="Method apiclient.http.BatchHttpRequest._deserialize_response()=apiclient.http.BatchHttpRequest-class.html#_deserialize_response"><a title="apiclient.http.BatchHttpRequest._deserialize_response" class="py-name" href="#" onclick="return doclink('link-137', '_deserialize_response', 'link-137');">_deserialize_response</a></tt><tt class="py-op">(</tt><tt class="py-name">part</tt><tt class="py-op">.</tt><tt class="py-name">get_payload</tt><tt class="py-op">(</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
-<a name="L772"></a><tt class="py-lineno"> 772</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">_responses</tt><tt class="py-op">[</tt><tt class="py-name">request_id</tt><tt class="py-op">]</tt> <tt class="py-op">=</tt> <tt class="py-op">(</tt><tt class="py-name">headers</tt><tt class="py-op">,</tt> <tt class="py-name">content</tt><tt class="py-op">)</tt> </tt>
+apiclient.model.Model.request" class="py-name" href="#" onclick="return doclink('link-98', 'request', 'link-56');">request</a></tt><tt class="py-op">.</tt><tt id="link-99" class="py-name"><a title="apiclient.http
+oauth2client.appengine.OAuth2Decorator.http" class="py-name" href="#" onclick="return doclink('link-99', 'http', 'link-42');">http</a></tt> <tt class="py-keyword">is</tt> <tt class="py-keyword">not</tt> <tt class="py-name">None</tt> <tt class="py-keyword">and</tt> <tt class="py-name">hasattr</tt><tt class="py-op">(</tt><tt id="link-100" 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-100', 'request', 'link-56');">request</a></tt><tt class="py-op">.</tt><tt id="link-101" class="py-name"><a title="apiclient.http
+oauth2client.appengine.OAuth2Decorator.http" class="py-name" href="#" onclick="return doclink('link-101', 'http', 'link-42');">http</a></tt><tt class="py-op">.</tt><tt id="link-102" 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-102', 'request', 'link-56');">request</a></tt><tt class="py-op">,</tt> </tt>
+<a name="L743"></a><tt class="py-lineno"> 743</tt> <tt class="py-line"> <tt class="py-string">'credentials'</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+<a name="L744"></a><tt class="py-lineno"> 744</tt> <tt class="py-line"> <tt class="py-name">creds</tt> <tt class="py-op">=</tt> <tt id="link-103" 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-103', 'request', 'link-56');">request</a></tt><tt class="py-op">.</tt><tt id="link-104" class="py-name"><a title="apiclient.http
+oauth2client.appengine.OAuth2Decorator.http" class="py-name" href="#" onclick="return doclink('link-104', 'http', 'link-42');">http</a></tt><tt class="py-op">.</tt><tt id="link-105" 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-105', 'request', 'link-56');">request</a></tt><tt class="py-op">.</tt><tt id="link-106" class="py-name" targets="Variable oauth2client.appengine.CredentialsModel.credentials=oauth2client.appengine.CredentialsModel-class.html#credentials"><a title="oauth2client.appengine.CredentialsModel.credentials" class="py-name" href="#" onclick="return doclink('link-106', 'credentials', 'link-106');">credentials</a></tt> </tt>
+<a name="L745"></a><tt class="py-lineno"> 745</tt> <tt class="py-line"> <tt class="py-keyword">elif</tt> <tt id="link-107" class="py-name"><a title="apiclient.http
+oauth2client.appengine.OAuth2Decorator.http" class="py-name" href="#" onclick="return doclink('link-107', 'http', 'link-42');">http</a></tt> <tt class="py-keyword">is</tt> <tt class="py-keyword">not</tt> <tt class="py-name">None</tt> <tt class="py-keyword">and</tt> <tt class="py-name">hasattr</tt><tt class="py-op">(</tt><tt id="link-108" class="py-name"><a title="apiclient.http
+oauth2client.appengine.OAuth2Decorator.http" class="py-name" href="#" onclick="return doclink('link-108', 'http', 'link-42');">http</a></tt><tt class="py-op">.</tt><tt id="link-109" 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-109', 'request', 'link-56');">request</a></tt><tt class="py-op">,</tt> <tt class="py-string">'credentials'</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+<a name="L746"></a><tt class="py-lineno"> 746</tt> <tt class="py-line"> <tt class="py-name">creds</tt> <tt class="py-op">=</tt> <tt id="link-110" class="py-name"><a title="apiclient.http
+oauth2client.appengine.OAuth2Decorator.http" class="py-name" href="#" onclick="return doclink('link-110', 'http', 'link-42');">http</a></tt><tt class="py-op">.</tt><tt id="link-111" 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-111', 'request', 'link-56');">request</a></tt><tt class="py-op">.</tt><tt id="link-112" class="py-name"><a title="oauth2client.appengine.CredentialsModel.credentials" class="py-name" href="#" onclick="return doclink('link-112', 'credentials', 'link-106');">credentials</a></tt> </tt>
+<a name="L747"></a><tt class="py-lineno"> 747</tt> <tt class="py-line"> <tt class="py-keyword">if</tt> <tt class="py-name">creds</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="L748"></a><tt class="py-lineno"> 748</tt> <tt class="py-line"> <tt class="py-keyword">if</tt> <tt class="py-name">id</tt><tt class="py-op">(</tt><tt class="py-name">creds</tt><tt class="py-op">)</tt> <tt class="py-keyword">not</tt> <tt class="py-keyword">in</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">_refreshed_credentials</tt><tt class="py-op">:</tt> </tt>
+<a name="L749"></a><tt class="py-lineno"> 749</tt> <tt class="py-line"> <tt class="py-name">creds</tt><tt class="py-op">.</tt><tt id="link-113" class="py-name" targets="Method oauth2client.client.Credentials.refresh()=oauth2client.client.Credentials-class.html#refresh,Method oauth2client.client.OAuth2Credentials.refresh()=oauth2client.client.OAuth2Credentials-class.html#refresh"><a title="oauth2client.client.Credentials.refresh
+oauth2client.client.OAuth2Credentials.refresh" class="py-name" href="#" onclick="return doclink('link-113', 'refresh', 'link-113');">refresh</a></tt><tt class="py-op">(</tt><tt id="link-114" class="py-name"><a title="apiclient.http
+oauth2client.appengine.OAuth2Decorator.http" class="py-name" href="#" onclick="return doclink('link-114', 'http', 'link-42');">http</a></tt><tt class="py-op">)</tt> </tt>
+<a name="L750"></a><tt class="py-lineno"> 750</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">_refreshed_credentials</tt><tt class="py-op">[</tt><tt class="py-name">id</tt><tt class="py-op">(</tt><tt class="py-name">creds</tt><tt class="py-op">)</tt><tt class="py-op">]</tt> <tt class="py-op">=</tt> <tt class="py-number">1</tt> </tt>
+<a name="L751"></a><tt class="py-lineno"> 751</tt> <tt class="py-line"> </tt>
+<a name="L752"></a><tt class="py-lineno"> 752</tt> <tt class="py-line"> <tt class="py-comment"># Only apply the credentials if we are using the http object passed in,</tt> </tt>
+<a name="L753"></a><tt class="py-lineno"> 753</tt> <tt class="py-line"> <tt class="py-comment"># otherwise apply() will get called during _serialize_request().</tt> </tt>
+<a name="L754"></a><tt class="py-lineno"> 754</tt> <tt class="py-line"> <tt class="py-keyword">if</tt> <tt id="link-115" 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-115', 'request', 'link-56');">request</a></tt><tt class="py-op">.</tt><tt id="link-116" class="py-name"><a title="apiclient.http
+oauth2client.appengine.OAuth2Decorator.http" class="py-name" href="#" onclick="return doclink('link-116', 'http', 'link-42');">http</a></tt> <tt class="py-keyword">is</tt> <tt class="py-name">None</tt> <tt class="py-keyword">or</tt> <tt class="py-keyword">not</tt> <tt class="py-name">hasattr</tt><tt class="py-op">(</tt><tt id="link-117" 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-117', 'request', 'link-56');">request</a></tt><tt class="py-op">.</tt><tt id="link-118" class="py-name"><a title="apiclient.http
+oauth2client.appengine.OAuth2Decorator.http" class="py-name" href="#" onclick="return doclink('link-118', 'http', 'link-42');">http</a></tt><tt class="py-op">.</tt><tt id="link-119" 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-119', 'request', 'link-56');">request</a></tt><tt class="py-op">,</tt> </tt>
+<a name="L755"></a><tt class="py-lineno"> 755</tt> <tt class="py-line"> <tt class="py-string">'credentials'</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+<a name="L756"></a><tt class="py-lineno"> 756</tt> <tt class="py-line"> <tt class="py-name">creds</tt><tt class="py-op">.</tt><tt id="link-120" class="py-name" targets="Method oauth2client.client.Credentials.apply()=oauth2client.client.Credentials-class.html#apply,Method oauth2client.client.OAuth2Credentials.apply()=oauth2client.client.OAuth2Credentials-class.html#apply"><a title="oauth2client.client.Credentials.apply
+oauth2client.client.OAuth2Credentials.apply" class="py-name" href="#" onclick="return doclink('link-120', 'apply', 'link-120');">apply</a></tt><tt class="py-op">(</tt><tt id="link-121" 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-121', 'request', 'link-56');">request</a></tt><tt class="py-op">.</tt><tt class="py-name">headers</tt><tt class="py-op">)</tt> </tt>
+</div><a name="L757"></a><tt class="py-lineno"> 757</tt> <tt class="py-line"> </tt>
+<a name="BatchHttpRequest._id_to_header"></a><div id="BatchHttpRequest._id_to_header-def"><a name="L758"></a><tt class="py-lineno"> 758</tt> <a class="py-toggle" href="#" id="BatchHttpRequest._id_to_header-toggle" onclick="return toggle('BatchHttpRequest._id_to_header');">-</a><tt class="py-line"> <tt class="py-keyword">def</tt> <a class="py-def-name" href="apiclient.http.BatchHttpRequest-class.html#_id_to_header">_id_to_header</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">,</tt> <tt class="py-param">id_</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+</div><div id="BatchHttpRequest._id_to_header-collapsed" style="display:none;" pad="++++" indent="++++++"></div><div id="BatchHttpRequest._id_to_header-expanded"><a name="L759"></a><tt class="py-lineno"> 759</tt> <tt class="py-line"> <tt class="py-docstring">"""Convert an id to a Content-ID header value.</tt> </tt>
+<a name="L760"></a><tt class="py-lineno"> 760</tt> <tt class="py-line"><tt class="py-docstring"></tt> </tt>
+<a name="L761"></a><tt class="py-lineno"> 761</tt> <tt class="py-line"><tt class="py-docstring"> Args:</tt> </tt>
+<a name="L762"></a><tt class="py-lineno"> 762</tt> <tt class="py-line"><tt class="py-docstring"> id_: string, identifier of individual request.</tt> </tt>
+<a name="L763"></a><tt class="py-lineno"> 763</tt> <tt class="py-line"><tt class="py-docstring"></tt> </tt>
+<a name="L764"></a><tt class="py-lineno"> 764</tt> <tt class="py-line"><tt class="py-docstring"> Returns:</tt> </tt>
+<a name="L765"></a><tt class="py-lineno"> 765</tt> <tt class="py-line"><tt class="py-docstring"> A Content-ID header with the id_ encoded into it. A UUID is prepended to</tt> </tt>
+<a name="L766"></a><tt class="py-lineno"> 766</tt> <tt class="py-line"><tt class="py-docstring"> the value because Content-ID headers are supposed to be universally</tt> </tt>
+<a name="L767"></a><tt class="py-lineno"> 767</tt> <tt class="py-line"><tt class="py-docstring"> unique.</tt> </tt>
+<a name="L768"></a><tt class="py-lineno"> 768</tt> <tt class="py-line"><tt class="py-docstring"> """</tt> </tt>
+<a name="L769"></a><tt class="py-lineno"> 769</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">_base_id</tt> <tt class="py-keyword">is</tt> <tt class="py-name">None</tt><tt class="py-op">:</tt> </tt>
+<a name="L770"></a><tt class="py-lineno"> 770</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">_base_id</tt> <tt class="py-op">=</tt> <tt class="py-name">uuid</tt><tt class="py-op">.</tt><tt class="py-name">uuid4</tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
+<a name="L771"></a><tt class="py-lineno"> 771</tt> <tt class="py-line"> </tt>
+<a name="L772"></a><tt class="py-lineno"> 772</tt> <tt class="py-line"> <tt class="py-keyword">return</tt> <tt class="py-string">'<%s+%s>'</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">_base_id</tt><tt class="py-op">,</tt> <tt class="py-name">urllib</tt><tt class="py-op">.</tt><tt class="py-name">quote</tt><tt class="py-op">(</tt><tt class="py-name">id_</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
</div><a name="L773"></a><tt class="py-lineno"> 773</tt> <tt class="py-line"> </tt>
-<a name="BatchHttpRequest.execute"></a><div id="BatchHttpRequest.execute-def"><a name="L774"></a><tt class="py-lineno"> 774</tt> <a class="py-toggle" href="#" id="BatchHttpRequest.execute-toggle" onclick="return toggle('BatchHttpRequest.execute');">-</a><tt class="py-line"> <tt class="py-keyword">def</tt> <a class="py-def-name" href="apiclient.http.BatchHttpRequest-class.html#execute">execute</a><tt class="py-op">(</tt><tt class="py-param">self</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="BatchHttpRequest.execute-collapsed" style="display:none;" pad="++++" indent="++++++"></div><div id="BatchHttpRequest.execute-expanded"><a name="L775"></a><tt class="py-lineno"> 775</tt> <tt class="py-line"> <tt class="py-docstring">"""Execute all the requests as a single batched HTTP request.</tt> </tt>
+<a name="BatchHttpRequest._header_to_id"></a><div id="BatchHttpRequest._header_to_id-def"><a name="L774"></a><tt class="py-lineno"> 774</tt> <a class="py-toggle" href="#" id="BatchHttpRequest._header_to_id-toggle" onclick="return toggle('BatchHttpRequest._header_to_id');">-</a><tt class="py-line"> <tt class="py-keyword">def</tt> <a class="py-def-name" href="apiclient.http.BatchHttpRequest-class.html#_header_to_id">_header_to_id</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">,</tt> <tt class="py-param">header</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+</div><div id="BatchHttpRequest._header_to_id-collapsed" style="display:none;" pad="++++" indent="++++++"></div><div id="BatchHttpRequest._header_to_id-expanded"><a name="L775"></a><tt class="py-lineno"> 775</tt> <tt class="py-line"> <tt class="py-docstring">"""Convert a Content-ID header value to an id.</tt> </tt>
<a name="L776"></a><tt class="py-lineno"> 776</tt> <tt class="py-line"><tt class="py-docstring"></tt> </tt>
-<a name="L777"></a><tt class="py-lineno"> 777</tt> <tt class="py-line"><tt class="py-docstring"> Args:</tt> </tt>
-<a name="L778"></a><tt class="py-lineno"> 778</tt> <tt class="py-line"><tt class="py-docstring"> http: httplib2.Http, an http object to be used in place of the one the</tt> </tt>
-<a name="L779"></a><tt class="py-lineno"> 779</tt> <tt class="py-line"><tt class="py-docstring"> HttpRequest request object was constructed with. If one isn't supplied</tt> </tt>
-<a name="L780"></a><tt class="py-lineno"> 780</tt> <tt class="py-line"><tt class="py-docstring"> then use a http object from the requests in this batch.</tt> </tt>
-<a name="L781"></a><tt class="py-lineno"> 781</tt> <tt class="py-line"><tt class="py-docstring"></tt> </tt>
-<a name="L782"></a><tt class="py-lineno"> 782</tt> <tt class="py-line"><tt class="py-docstring"> Returns:</tt> </tt>
-<a name="L783"></a><tt class="py-lineno"> 783</tt> <tt class="py-line"><tt class="py-docstring"> None</tt> </tt>
-<a name="L784"></a><tt class="py-lineno"> 784</tt> <tt class="py-line"><tt class="py-docstring"></tt> </tt>
-<a name="L785"></a><tt class="py-lineno"> 785</tt> <tt class="py-line"><tt class="py-docstring"> Raises:</tt> </tt>
-<a name="L786"></a><tt class="py-lineno"> 786</tt> <tt class="py-line"><tt class="py-docstring"> httplib2.Error if a transport error has occured.</tt> </tt>
-<a name="L787"></a><tt class="py-lineno"> 787</tt> <tt class="py-line"><tt class="py-docstring"> apiclient.errors.BatchError if the response is the wrong format.</tt> </tt>
+<a name="L777"></a><tt class="py-lineno"> 777</tt> <tt class="py-line"><tt class="py-docstring"> Presumes the Content-ID header conforms to the format that _id_to_header()</tt> </tt>
+<a name="L778"></a><tt class="py-lineno"> 778</tt> <tt class="py-line"><tt class="py-docstring"> returns.</tt> </tt>
+<a name="L779"></a><tt class="py-lineno"> 779</tt> <tt class="py-line"><tt class="py-docstring"></tt> </tt>
+<a name="L780"></a><tt class="py-lineno"> 780</tt> <tt class="py-line"><tt class="py-docstring"> Args:</tt> </tt>
+<a name="L781"></a><tt class="py-lineno"> 781</tt> <tt class="py-line"><tt class="py-docstring"> header: string, Content-ID header value.</tt> </tt>
+<a name="L782"></a><tt class="py-lineno"> 782</tt> <tt class="py-line"><tt class="py-docstring"></tt> </tt>
+<a name="L783"></a><tt class="py-lineno"> 783</tt> <tt class="py-line"><tt class="py-docstring"> Returns:</tt> </tt>
+<a name="L784"></a><tt class="py-lineno"> 784</tt> <tt class="py-line"><tt class="py-docstring"> The extracted id value.</tt> </tt>
+<a name="L785"></a><tt class="py-lineno"> 785</tt> <tt class="py-line"><tt class="py-docstring"></tt> </tt>
+<a name="L786"></a><tt class="py-lineno"> 786</tt> <tt class="py-line"><tt class="py-docstring"> Raises:</tt> </tt>
+<a name="L787"></a><tt class="py-lineno"> 787</tt> <tt class="py-line"><tt class="py-docstring"> BatchError if the header is not in the expected format.</tt> </tt>
<a name="L788"></a><tt class="py-lineno"> 788</tt> <tt class="py-line"><tt class="py-docstring"> """</tt> </tt>
-<a name="L789"></a><tt class="py-lineno"> 789</tt> <tt class="py-line"> </tt>
-<a name="L790"></a><tt class="py-lineno"> 790</tt> <tt class="py-line"> <tt class="py-comment"># If http is not supplied use the first valid one given in the requests.</tt> </tt>
-<a name="L791"></a><tt class="py-lineno"> 791</tt> <tt class="py-line"> <tt class="py-keyword">if</tt> <tt id="link-138" class="py-name"><a title="apiclient.http
-oauth2client.appengine.OAuth2Decorator.http" class="py-name" href="#" onclick="return doclink('link-138', 'http', 'link-32');">http</a></tt> <tt class="py-keyword">is</tt> <tt class="py-name">None</tt><tt class="py-op">:</tt> </tt>
-<a name="L792"></a><tt class="py-lineno"> 792</tt> <tt class="py-line"> <tt class="py-keyword">for</tt> <tt class="py-name">request_id</tt> <tt class="py-keyword">in</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">_order</tt><tt class="py-op">:</tt> </tt>
-<a name="L793"></a><tt class="py-lineno"> 793</tt> <tt class="py-line"> <tt id="link-139" class="py-name"><a title="apiclient.http.HttpMock.request
+<a name="L789"></a><tt class="py-lineno"> 789</tt> <tt class="py-line"> <tt class="py-keyword">if</tt> <tt class="py-name">header</tt><tt class="py-op">[</tt><tt class="py-number">0</tt><tt class="py-op">]</tt> <tt class="py-op">!=</tt> <tt class="py-string">'<'</tt> <tt class="py-keyword">or</tt> <tt class="py-name">header</tt><tt class="py-op">[</tt><tt class="py-op">-</tt><tt class="py-number">1</tt><tt class="py-op">]</tt> <tt class="py-op">!=</tt> <tt class="py-string">'>'</tt><tt class="py-op">:</tt> </tt>
+<a name="L790"></a><tt class="py-lineno"> 790</tt> <tt class="py-line"> <tt class="py-keyword">raise</tt> <tt id="link-122" class="py-name"><a title="apiclient.errors.BatchError" class="py-name" href="#" onclick="return doclink('link-122', 'BatchError', 'link-2');">BatchError</a></tt><tt class="py-op">(</tt><tt class="py-string">"Invalid value for Content-ID: %s"</tt> <tt class="py-op">%</tt> <tt class="py-name">header</tt><tt class="py-op">)</tt> </tt>
+<a name="L791"></a><tt class="py-lineno"> 791</tt> <tt class="py-line"> <tt class="py-keyword">if</tt> <tt class="py-string">'+'</tt> <tt class="py-keyword">not</tt> <tt class="py-keyword">in</tt> <tt class="py-name">header</tt><tt class="py-op">:</tt> </tt>
+<a name="L792"></a><tt class="py-lineno"> 792</tt> <tt class="py-line"> <tt class="py-keyword">raise</tt> <tt id="link-123" class="py-name"><a title="apiclient.errors.BatchError" class="py-name" href="#" onclick="return doclink('link-123', 'BatchError', 'link-2');">BatchError</a></tt><tt class="py-op">(</tt><tt class="py-string">"Invalid value for Content-ID: %s"</tt> <tt class="py-op">%</tt> <tt class="py-name">header</tt><tt class="py-op">)</tt> </tt>
+<a name="L793"></a><tt class="py-lineno"> 793</tt> <tt class="py-line"> <tt class="py-name">base</tt><tt class="py-op">,</tt> <tt class="py-name">id_</tt> <tt class="py-op">=</tt> <tt class="py-name">header</tt><tt class="py-op">[</tt><tt class="py-number">1</tt><tt class="py-op">:</tt><tt class="py-op">-</tt><tt class="py-number">1</tt><tt class="py-op">]</tt><tt class="py-op">.</tt><tt class="py-name">rsplit</tt><tt class="py-op">(</tt><tt class="py-string">'+'</tt><tt class="py-op">,</tt> <tt class="py-number">1</tt><tt class="py-op">)</tt> </tt>
+<a name="L794"></a><tt class="py-lineno"> 794</tt> <tt class="py-line"> </tt>
+<a name="L795"></a><tt class="py-lineno"> 795</tt> <tt class="py-line"> <tt class="py-keyword">return</tt> <tt class="py-name">urllib</tt><tt class="py-op">.</tt><tt class="py-name">unquote</tt><tt class="py-op">(</tt><tt class="py-name">id_</tt><tt class="py-op">)</tt> </tt>
+</div><a name="L796"></a><tt class="py-lineno"> 796</tt> <tt class="py-line"> </tt>
+<a name="BatchHttpRequest._serialize_request"></a><div id="BatchHttpRequest._serialize_request-def"><a name="L797"></a><tt class="py-lineno"> 797</tt> <a class="py-toggle" href="#" id="BatchHttpRequest._serialize_request-toggle" onclick="return toggle('BatchHttpRequest._serialize_request');">-</a><tt class="py-line"> <tt class="py-keyword">def</tt> <a class="py-def-name" href="apiclient.http.BatchHttpRequest-class.html#_serialize_request">_serialize_request</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">,</tt> <tt class="py-param">request</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+</div><div id="BatchHttpRequest._serialize_request-collapsed" style="display:none;" pad="++++" indent="++++++"></div><div id="BatchHttpRequest._serialize_request-expanded"><a name="L798"></a><tt class="py-lineno"> 798</tt> <tt class="py-line"> <tt class="py-docstring">"""Convert an HttpRequest object into a string.</tt> </tt>
+<a name="L799"></a><tt class="py-lineno"> 799</tt> <tt class="py-line"><tt class="py-docstring"></tt> </tt>
+<a name="L800"></a><tt class="py-lineno"> 800</tt> <tt class="py-line"><tt class="py-docstring"> Args:</tt> </tt>
+<a name="L801"></a><tt class="py-lineno"> 801</tt> <tt class="py-line"><tt class="py-docstring"> request: HttpRequest, the request to serialize.</tt> </tt>
+<a name="L802"></a><tt class="py-lineno"> 802</tt> <tt class="py-line"><tt class="py-docstring"></tt> </tt>
+<a name="L803"></a><tt class="py-lineno"> 803</tt> <tt class="py-line"><tt class="py-docstring"> Returns:</tt> </tt>
+<a name="L804"></a><tt class="py-lineno"> 804</tt> <tt class="py-line"><tt class="py-docstring"> The request as a string in application/http format.</tt> </tt>
+<a name="L805"></a><tt class="py-lineno"> 805</tt> <tt class="py-line"><tt class="py-docstring"> """</tt> </tt>
+<a name="L806"></a><tt class="py-lineno"> 806</tt> <tt class="py-line"> <tt class="py-comment"># Construct status line</tt> </tt>
+<a name="L807"></a><tt class="py-lineno"> 807</tt> <tt class="py-line"> <tt class="py-name">parsed</tt> <tt class="py-op">=</tt> <tt class="py-name">urlparse</tt><tt class="py-op">.</tt><tt class="py-name">urlparse</tt><tt class="py-op">(</tt><tt id="link-124" 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-139', 'request', 'link-46');">request</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">_requests</tt><tt class="py-op">[</tt><tt class="py-name">request_id</tt><tt class="py-op">]</tt> </tt>
-<a name="L794"></a><tt class="py-lineno"> 794</tt> <tt class="py-line"> <tt class="py-keyword">if</tt> <tt id="link-140" class="py-name"><a title="apiclient.http.HttpMock.request
+apiclient.model.Model.request" class="py-name" href="#" onclick="return doclink('link-124', 'request', 'link-56');">request</a></tt><tt class="py-op">.</tt><tt class="py-name">uri</tt><tt class="py-op">)</tt> </tt>
+<a name="L808"></a><tt class="py-lineno"> 808</tt> <tt class="py-line"> <tt class="py-name">request_line</tt> <tt class="py-op">=</tt> <tt class="py-name">urlparse</tt><tt class="py-op">.</tt><tt class="py-name">urlunparse</tt><tt class="py-op">(</tt> </tt>
+<a name="L809"></a><tt class="py-lineno"> 809</tt> <tt class="py-line"> <tt class="py-op">(</tt><tt class="py-name">None</tt><tt class="py-op">,</tt> <tt class="py-name">None</tt><tt class="py-op">,</tt> <tt class="py-name">parsed</tt><tt class="py-op">.</tt><tt class="py-name">path</tt><tt class="py-op">,</tt> <tt class="py-name">parsed</tt><tt class="py-op">.</tt><tt class="py-name">params</tt><tt class="py-op">,</tt> <tt class="py-name">parsed</tt><tt class="py-op">.</tt><tt class="py-name">query</tt><tt class="py-op">,</tt> <tt class="py-name">None</tt><tt class="py-op">)</tt> </tt>
+<a name="L810"></a><tt class="py-lineno"> 810</tt> <tt class="py-line"> <tt class="py-op">)</tt> </tt>
+<a name="L811"></a><tt class="py-lineno"> 811</tt> <tt class="py-line"> <tt class="py-name">status_line</tt> <tt class="py-op">=</tt> <tt id="link-125" 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-140', 'request', 'link-46');">request</a></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="L795"></a><tt class="py-lineno"> 795</tt> <tt class="py-line"> <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-32');">http</a></tt> <tt class="py-op">=</tt> <tt id="link-142" class="py-name"><a title="apiclient.http.HttpMock.request
+apiclient.model.Model.request" class="py-name" href="#" onclick="return doclink('link-125', 'request', 'link-56');">request</a></tt><tt class="py-op">.</tt><tt class="py-name">method</tt> <tt class="py-op">+</tt> <tt class="py-string">' '</tt> <tt class="py-op">+</tt> <tt class="py-name">request_line</tt> <tt class="py-op">+</tt> <tt class="py-string">' HTTP/1.1\n'</tt> </tt>
+<a name="L812"></a><tt class="py-lineno"> 812</tt> <tt class="py-line"> <tt class="py-name">major</tt><tt class="py-op">,</tt> <tt class="py-name">minor</tt> <tt class="py-op">=</tt> <tt id="link-126" 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-142', 'request', 'link-46');">request</a></tt><tt class="py-op">.</tt><tt id="link-143" class="py-name"><a title="apiclient.http
-oauth2client.appengine.OAuth2Decorator.http" class="py-name" href="#" onclick="return doclink('link-143', 'http', 'link-32');">http</a></tt> </tt>
-<a name="L796"></a><tt class="py-lineno"> 796</tt> <tt class="py-line"> <tt class="py-keyword">break</tt> </tt>
-<a name="L797"></a><tt class="py-lineno"> 797</tt> <tt class="py-line"> </tt>
-<a name="L798"></a><tt class="py-lineno"> 798</tt> <tt class="py-line"> <tt class="py-keyword">if</tt> <tt id="link-144" class="py-name"><a title="apiclient.http
-oauth2client.appengine.OAuth2Decorator.http" class="py-name" href="#" onclick="return doclink('link-144', 'http', 'link-32');">http</a></tt> <tt class="py-keyword">is</tt> <tt class="py-name">None</tt><tt class="py-op">:</tt> </tt>
-<a name="L799"></a><tt class="py-lineno"> 799</tt> <tt class="py-line"> <tt class="py-keyword">raise</tt> <tt class="py-name">ValueError</tt><tt class="py-op">(</tt><tt class="py-string">"Missing a valid http object."</tt><tt class="py-op">)</tt> </tt>
-<a name="L800"></a><tt class="py-lineno"> 800</tt> <tt class="py-line"> </tt>
-<a name="L801"></a><tt class="py-lineno"> 801</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-145" class="py-name" targets="Method apiclient.http.BatchHttpRequest._execute()=apiclient.http.BatchHttpRequest-class.html#_execute"><a title="apiclient.http.BatchHttpRequest._execute" class="py-name" href="#" onclick="return doclink('link-145', '_execute', 'link-145');">_execute</a></tt><tt class="py-op">(</tt><tt id="link-146" class="py-name"><a title="apiclient.http
-oauth2client.appengine.OAuth2Decorator.http" class="py-name" href="#" onclick="return doclink('link-146', 'http', 'link-32');">http</a></tt><tt class="py-op">,</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">_order</tt><tt class="py-op">,</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">_requests</tt><tt class="py-op">)</tt> </tt>
-<a name="L802"></a><tt class="py-lineno"> 802</tt> <tt class="py-line"> </tt>
-<a name="L803"></a><tt class="py-lineno"> 803</tt> <tt class="py-line"> <tt class="py-comment"># Loop over all the requests and check for 401s. For each 401 request the</tt> </tt>
-<a name="L804"></a><tt class="py-lineno"> 804</tt> <tt class="py-line"> <tt class="py-comment"># credentials should be refreshed and then sent again in a separate batch.</tt> </tt>
-<a name="L805"></a><tt class="py-lineno"> 805</tt> <tt class="py-line"> <tt class="py-name">redo_requests</tt> <tt class="py-op">=</tt> <tt class="py-op">{</tt><tt class="py-op">}</tt> </tt>
-<a name="L806"></a><tt class="py-lineno"> 806</tt> <tt class="py-line"> <tt class="py-name">redo_order</tt> <tt class="py-op">=</tt> <tt class="py-op">[</tt><tt class="py-op">]</tt> </tt>
-<a name="L807"></a><tt class="py-lineno"> 807</tt> <tt class="py-line"> </tt>
-<a name="L808"></a><tt class="py-lineno"> 808</tt> <tt class="py-line"> <tt class="py-keyword">for</tt> <tt class="py-name">request_id</tt> <tt class="py-keyword">in</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">_order</tt><tt class="py-op">:</tt> </tt>
-<a name="L809"></a><tt class="py-lineno"> 809</tt> <tt class="py-line"> <tt class="py-name">headers</tt><tt class="py-op">,</tt> <tt class="py-name">content</tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">_responses</tt><tt class="py-op">[</tt><tt class="py-name">request_id</tt><tt class="py-op">]</tt> </tt>
-<a name="L810"></a><tt class="py-lineno"> 810</tt> <tt class="py-line"> <tt class="py-keyword">if</tt> <tt class="py-name">headers</tt><tt class="py-op">[</tt><tt class="py-string">'status'</tt><tt class="py-op">]</tt> <tt class="py-op">==</tt> <tt class="py-string">'401'</tt><tt class="py-op">:</tt> </tt>
-<a name="L811"></a><tt class="py-lineno"> 811</tt> <tt class="py-line"> <tt class="py-name">redo_order</tt><tt class="py-op">.</tt><tt class="py-name">append</tt><tt class="py-op">(</tt><tt class="py-name">request_id</tt><tt class="py-op">)</tt> </tt>
-<a name="L812"></a><tt class="py-lineno"> 812</tt> <tt class="py-line"> <tt id="link-147" 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-147', 'request', 'link-46');">request</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">_requests</tt><tt class="py-op">[</tt><tt class="py-name">request_id</tt><tt class="py-op">]</tt> </tt>
-<a name="L813"></a><tt class="py-lineno"> 813</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-148" class="py-name" targets="Method apiclient.http.BatchHttpRequest._refresh_and_apply_credentials()=apiclient.http.BatchHttpRequest-class.html#_refresh_and_apply_credentials"><a title="apiclient.http.BatchHttpRequest._refresh_and_apply_credentials" class="py-name" href="#" onclick="return doclink('link-148', '_refresh_and_apply_credentials', 'link-148');">_refresh_and_apply_credentials</a></tt><tt class="py-op">(</tt><tt id="link-149" 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-149', 'request', 'link-46');">request</a></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-32');">http</a></tt><tt class="py-op">)</tt> </tt>
-<a name="L814"></a><tt class="py-lineno"> 814</tt> <tt class="py-line"> <tt class="py-name">redo_requests</tt><tt class="py-op">[</tt><tt class="py-name">request_id</tt><tt class="py-op">]</tt> <tt class="py-op">=</tt> <tt id="link-151" 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-46');">request</a></tt> </tt>
-<a name="L815"></a><tt class="py-lineno"> 815</tt> <tt class="py-line"> </tt>
-<a name="L816"></a><tt class="py-lineno"> 816</tt> <tt class="py-line"> <tt class="py-keyword">if</tt> <tt class="py-name">redo_requests</tt><tt class="py-op">:</tt> </tt>
-<a name="L817"></a><tt class="py-lineno"> 817</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-152" class="py-name"><a title="apiclient.http.BatchHttpRequest._execute" class="py-name" href="#" onclick="return doclink('link-152', '_execute', 'link-145');">_execute</a></tt><tt class="py-op">(</tt><tt id="link-153" class="py-name"><a title="apiclient.http
-oauth2client.appengine.OAuth2Decorator.http" class="py-name" href="#" onclick="return doclink('link-153', 'http', 'link-32');">http</a></tt><tt class="py-op">,</tt> <tt class="py-name">redo_order</tt><tt class="py-op">,</tt> <tt class="py-name">redo_requests</tt><tt class="py-op">)</tt> </tt>
-<a name="L818"></a><tt class="py-lineno"> 818</tt> <tt class="py-line"> </tt>
-<a name="L819"></a><tt class="py-lineno"> 819</tt> <tt class="py-line"> <tt class="py-comment"># Now process all callbacks that are erroring, and raise an exception for</tt> </tt>
-<a name="L820"></a><tt class="py-lineno"> 820</tt> <tt class="py-line"> <tt class="py-comment"># ones that return a non-2xx response? Or add extra parameter to callback</tt> </tt>
-<a name="L821"></a><tt class="py-lineno"> 821</tt> <tt class="py-line"> <tt class="py-comment"># that contains an HttpError?</tt> </tt>
-<a name="L822"></a><tt class="py-lineno"> 822</tt> <tt class="py-line"> </tt>
-<a name="L823"></a><tt class="py-lineno"> 823</tt> <tt class="py-line"> <tt class="py-keyword">for</tt> <tt class="py-name">request_id</tt> <tt class="py-keyword">in</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">_order</tt><tt class="py-op">:</tt> </tt>
-<a name="L824"></a><tt class="py-lineno"> 824</tt> <tt class="py-line"> <tt class="py-name">headers</tt><tt class="py-op">,</tt> <tt class="py-name">content</tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">_responses</tt><tt class="py-op">[</tt><tt class="py-name">request_id</tt><tt class="py-op">]</tt> </tt>
-<a name="L825"></a><tt class="py-lineno"> 825</tt> <tt class="py-line"> </tt>
-<a name="L826"></a><tt class="py-lineno"> 826</tt> <tt class="py-line"> <tt id="link-154" 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-154', 'request', 'link-46');">request</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">_requests</tt><tt class="py-op">[</tt><tt class="py-name">request_id</tt><tt class="py-op">]</tt> </tt>
-<a name="L827"></a><tt class="py-lineno"> 827</tt> <tt class="py-line"> <tt class="py-name">callback</tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">_callbacks</tt><tt class="py-op">[</tt><tt class="py-name">request_id</tt><tt class="py-op">]</tt> </tt>
-<a name="L828"></a><tt class="py-lineno"> 828</tt> <tt class="py-line"> </tt>
-<a name="L829"></a><tt class="py-lineno"> 829</tt> <tt class="py-line"> <tt id="link-155" class="py-name" targets="Method apiclient.model.BaseModel.response()=apiclient.model.BaseModel-class.html#response,Method apiclient.model.Model.response()=apiclient.model.Model-class.html#response"><a title="apiclient.model.BaseModel.response
-apiclient.model.Model.response" class="py-name" href="#" onclick="return doclink('link-155', 'response', 'link-155');">response</a></tt> <tt class="py-op">=</tt> <tt class="py-name">None</tt> </tt>
-<a name="L830"></a><tt class="py-lineno"> 830</tt> <tt class="py-line"> <tt class="py-name">exception</tt> <tt class="py-op">=</tt> <tt class="py-name">None</tt> </tt>
-<a name="L831"></a><tt class="py-lineno"> 831</tt> <tt class="py-line"> <tt class="py-keyword">try</tt><tt class="py-op">:</tt> </tt>
-<a name="L832"></a><tt class="py-lineno"> 832</tt> <tt class="py-line"> <tt class="py-name">r</tt> <tt class="py-op">=</tt> <tt class="py-name">httplib2</tt><tt class="py-op">.</tt><tt class="py-name">Response</tt><tt class="py-op">(</tt><tt class="py-name">headers</tt><tt class="py-op">)</tt> </tt>
-<a name="L833"></a><tt class="py-lineno"> 833</tt> <tt class="py-line"> <tt id="link-156" class="py-name"><a title="apiclient.model.BaseModel.response
-apiclient.model.Model.response" class="py-name" href="#" onclick="return doclink('link-156', 'response', 'link-155');">response</a></tt> <tt class="py-op">=</tt> <tt id="link-157" 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-157', 'request', 'link-46');">request</a></tt><tt class="py-op">.</tt><tt class="py-name">postproc</tt><tt class="py-op">(</tt><tt class="py-name">r</tt><tt class="py-op">,</tt> <tt class="py-name">content</tt><tt class="py-op">)</tt> </tt>
-<a name="L834"></a><tt class="py-lineno"> 834</tt> <tt class="py-line"> <tt class="py-keyword">except</tt> <tt id="link-158" class="py-name"><a title="apiclient.errors.HttpError" class="py-name" href="#" onclick="return doclink('link-158', 'HttpError', 'link-4');">HttpError</a></tt><tt class="py-op">,</tt> <tt class="py-name">e</tt><tt class="py-op">:</tt> </tt>
-<a name="L835"></a><tt class="py-lineno"> 835</tt> <tt class="py-line"> <tt class="py-name">exception</tt> <tt class="py-op">=</tt> <tt class="py-name">e</tt> </tt>
-<a name="L836"></a><tt class="py-lineno"> 836</tt> <tt class="py-line"> </tt>
-<a name="L837"></a><tt class="py-lineno"> 837</tt> <tt class="py-line"> <tt class="py-keyword">if</tt> <tt class="py-name">callback</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="L838"></a><tt class="py-lineno"> 838</tt> <tt class="py-line"> <tt class="py-name">callback</tt><tt class="py-op">(</tt><tt class="py-name">request_id</tt><tt class="py-op">,</tt> <tt id="link-159" class="py-name"><a title="apiclient.model.BaseModel.response
-apiclient.model.Model.response" class="py-name" href="#" onclick="return doclink('link-159', 'response', 'link-155');">response</a></tt><tt class="py-op">,</tt> <tt class="py-name">exception</tt><tt class="py-op">)</tt> </tt>
-<a name="L839"></a><tt class="py-lineno"> 839</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">_callback</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="L840"></a><tt class="py-lineno"> 840</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">_callback</tt><tt class="py-op">(</tt><tt class="py-name">request_id</tt><tt class="py-op">,</tt> <tt id="link-160" class="py-name"><a title="apiclient.model.BaseModel.response
-apiclient.model.Model.response" class="py-name" href="#" onclick="return doclink('link-160', 'response', 'link-155');">response</a></tt><tt class="py-op">,</tt> <tt class="py-name">exception</tt><tt class="py-op">)</tt> </tt>
-</div></div><a name="L841"></a><tt class="py-lineno"> 841</tt> <tt class="py-line"> </tt>
-<a name="HttpRequestMock"></a><div id="HttpRequestMock-def"><a name="L842"></a><tt class="py-lineno"> 842</tt> <tt class="py-line"> </tt>
-<a name="L843"></a><tt class="py-lineno"> 843</tt> <a class="py-toggle" href="#" id="HttpRequestMock-toggle" onclick="return toggle('HttpRequestMock');">-</a><tt class="py-line"><tt class="py-keyword">class</tt> <a class="py-def-name" href="apiclient.http.HttpRequestMock-class.html">HttpRequestMock</a><tt class="py-op">(</tt><tt class="py-base-class">object</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-</div><div id="HttpRequestMock-collapsed" style="display:none;" pad="++++" indent="++++"></div><div id="HttpRequestMock-expanded"><a name="L844"></a><tt class="py-lineno"> 844</tt> <tt class="py-line"> <tt class="py-docstring">"""Mock of HttpRequest.</tt> </tt>
-<a name="L845"></a><tt class="py-lineno"> 845</tt> <tt class="py-line"><tt class="py-docstring"></tt> </tt>
-<a name="L846"></a><tt class="py-lineno"> 846</tt> <tt class="py-line"><tt class="py-docstring"> Do not construct directly, instead use RequestMockBuilder.</tt> </tt>
-<a name="L847"></a><tt class="py-lineno"> 847</tt> <tt class="py-line"><tt class="py-docstring"> """</tt> </tt>
-<a name="L848"></a><tt class="py-lineno"> 848</tt> <tt class="py-line"> </tt>
-<a name="HttpRequestMock.__init__"></a><div id="HttpRequestMock.__init__-def"><a name="L849"></a><tt class="py-lineno"> 849</tt> <a class="py-toggle" href="#" id="HttpRequestMock.__init__-toggle" onclick="return toggle('HttpRequestMock.__init__');">-</a><tt class="py-line"> <tt class="py-keyword">def</tt> <a class="py-def-name" href="apiclient.http.HttpRequestMock-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">resp</tt><tt class="py-op">,</tt> <tt class="py-param">content</tt><tt class="py-op">,</tt> <tt class="py-param">postproc</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-</div><div id="HttpRequestMock.__init__-collapsed" style="display:none;" pad="++++" indent="++++++"></div><div id="HttpRequestMock.__init__-expanded"><a name="L850"></a><tt class="py-lineno"> 850</tt> <tt class="py-line"> <tt class="py-docstring">"""Constructor for HttpRequestMock</tt> </tt>
-<a name="L851"></a><tt class="py-lineno"> 851</tt> <tt class="py-line"><tt class="py-docstring"></tt> </tt>
-<a name="L852"></a><tt class="py-lineno"> 852</tt> <tt class="py-line"><tt class="py-docstring"> Args:</tt> </tt>
-<a name="L853"></a><tt class="py-lineno"> 853</tt> <tt class="py-line"><tt class="py-docstring"> resp: httplib2.Response, the response to emulate coming from the request</tt> </tt>
-<a name="L854"></a><tt class="py-lineno"> 854</tt> <tt class="py-line"><tt class="py-docstring"> content: string, the response body</tt> </tt>
-<a name="L855"></a><tt class="py-lineno"> 855</tt> <tt class="py-line"><tt class="py-docstring"> postproc: callable, the post processing function usually supplied by</tt> </tt>
-<a name="L856"></a><tt class="py-lineno"> 856</tt> <tt class="py-line"><tt class="py-docstring"> the model class. See model.JsonModel.response() as an example.</tt> </tt>
-<a name="L857"></a><tt class="py-lineno"> 857</tt> <tt class="py-line"><tt class="py-docstring"> """</tt> </tt>
-<a name="L858"></a><tt class="py-lineno"> 858</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">resp</tt> <tt class="py-op">=</tt> <tt class="py-name">resp</tt> </tt>
-<a name="L859"></a><tt class="py-lineno"> 859</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">content</tt> <tt class="py-op">=</tt> <tt class="py-name">content</tt> </tt>
-<a name="L860"></a><tt class="py-lineno"> 860</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">postproc</tt> <tt class="py-op">=</tt> <tt class="py-name">postproc</tt> </tt>
-<a name="L861"></a><tt class="py-lineno"> 861</tt> <tt class="py-line"> <tt class="py-keyword">if</tt> <tt class="py-name">resp</tt> <tt class="py-keyword">is</tt> <tt class="py-name">None</tt><tt class="py-op">:</tt> </tt>
-<a name="L862"></a><tt class="py-lineno"> 862</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">resp</tt> <tt class="py-op">=</tt> <tt class="py-name">httplib2</tt><tt class="py-op">.</tt><tt class="py-name">Response</tt><tt class="py-op">(</tt><tt class="py-op">{</tt><tt class="py-string">'status'</tt><tt class="py-op">:</tt> <tt class="py-number">200</tt><tt class="py-op">,</tt> <tt class="py-string">'reason'</tt><tt class="py-op">:</tt> <tt class="py-string">'OK'</tt><tt class="py-op">}</tt><tt class="py-op">)</tt> </tt>
-<a name="L863"></a><tt class="py-lineno"> 863</tt> <tt class="py-line"> <tt class="py-keyword">if</tt> <tt class="py-string">'reason'</tt> <tt class="py-keyword">in</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">resp</tt><tt class="py-op">:</tt> </tt>
-<a name="L864"></a><tt class="py-lineno"> 864</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">resp</tt><tt class="py-op">.</tt><tt class="py-name">reason</tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">resp</tt><tt class="py-op">[</tt><tt class="py-string">'reason'</tt><tt class="py-op">]</tt> </tt>
-</div><a name="L865"></a><tt class="py-lineno"> 865</tt> <tt class="py-line"> </tt>
-<a name="HttpRequestMock.execute"></a><div id="HttpRequestMock.execute-def"><a name="L866"></a><tt class="py-lineno"> 866</tt> <a class="py-toggle" href="#" id="HttpRequestMock.execute-toggle" onclick="return toggle('HttpRequestMock.execute');">-</a><tt class="py-line"> <tt class="py-keyword">def</tt> <a class="py-def-name" href="apiclient.http.HttpRequestMock-class.html#execute">execute</a><tt class="py-op">(</tt><tt class="py-param">self</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="HttpRequestMock.execute-collapsed" style="display:none;" pad="++++" indent="++++++"></div><div id="HttpRequestMock.execute-expanded"><a name="L867"></a><tt class="py-lineno"> 867</tt> <tt class="py-line"> <tt class="py-docstring">"""Execute the request.</tt> </tt>
-<a name="L868"></a><tt class="py-lineno"> 868</tt> <tt class="py-line"><tt class="py-docstring"></tt> </tt>
-<a name="L869"></a><tt class="py-lineno"> 869</tt> <tt class="py-line"><tt class="py-docstring"> Same behavior as HttpRequest.execute(), but the response is</tt> </tt>
-<a name="L870"></a><tt class="py-lineno"> 870</tt> <tt class="py-line"><tt class="py-docstring"> mocked and not really from an HTTP request/response.</tt> </tt>
-<a name="L871"></a><tt class="py-lineno"> 871</tt> <tt class="py-line"><tt class="py-docstring"> """</tt> </tt>
-<a name="L872"></a><tt class="py-lineno"> 872</tt> <tt class="py-line"> <tt class="py-keyword">return</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">postproc</tt><tt class="py-op">(</tt><tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">resp</tt><tt class="py-op">,</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">content</tt><tt class="py-op">)</tt> </tt>
-</div></div><a name="L873"></a><tt class="py-lineno"> 873</tt> <tt class="py-line"> </tt>
-<a name="RequestMockBuilder"></a><div id="RequestMockBuilder-def"><a name="L874"></a><tt class="py-lineno"> 874</tt> <tt class="py-line"> </tt>
-<a name="L875"></a><tt class="py-lineno"> 875</tt> <a class="py-toggle" href="#" id="RequestMockBuilder-toggle" onclick="return toggle('RequestMockBuilder');">-</a><tt class="py-line"><tt class="py-keyword">class</tt> <a class="py-def-name" href="apiclient.http.RequestMockBuilder-class.html">RequestMockBuilder</a><tt class="py-op">(</tt><tt class="py-base-class">object</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-</div><div id="RequestMockBuilder-collapsed" style="display:none;" pad="++++" indent="++++"></div><div id="RequestMockBuilder-expanded"><a name="L876"></a><tt class="py-lineno"> 876</tt> <tt class="py-line"> <tt class="py-docstring">"""A simple mock of HttpRequest</tt> </tt>
-<a name="L877"></a><tt class="py-lineno"> 877</tt> <tt class="py-line"><tt class="py-docstring"></tt> </tt>
-<a name="L878"></a><tt class="py-lineno"> 878</tt> <tt class="py-line"><tt class="py-docstring"> Pass in a dictionary to the constructor that maps request methodIds to</tt> </tt>
-<a name="L879"></a><tt class="py-lineno"> 879</tt> <tt class="py-line"><tt class="py-docstring"> tuples of (httplib2.Response, content, opt_expected_body) that should be</tt> </tt>
-<a name="L880"></a><tt class="py-lineno"> 880</tt> <tt class="py-line"><tt class="py-docstring"> returned when that method is called. None may also be passed in for the</tt> </tt>
-<a name="L881"></a><tt class="py-lineno"> 881</tt> <tt class="py-line"><tt class="py-docstring"> httplib2.Response, in which case a 200 OK response will be generated.</tt> </tt>
-<a name="L882"></a><tt class="py-lineno"> 882</tt> <tt class="py-line"><tt class="py-docstring"> If an opt_expected_body (str or dict) is provided, it will be compared to</tt> </tt>
-<a name="L883"></a><tt class="py-lineno"> 883</tt> <tt class="py-line"><tt class="py-docstring"> the body and UnexpectedBodyError will be raised on inequality.</tt> </tt>
-<a name="L884"></a><tt class="py-lineno"> 884</tt> <tt class="py-line"><tt class="py-docstring"></tt> </tt>
-<a name="L885"></a><tt class="py-lineno"> 885</tt> <tt class="py-line"><tt class="py-docstring"> Example:</tt> </tt>
-<a name="L886"></a><tt class="py-lineno"> 886</tt> <tt class="py-line"><tt class="py-docstring"> response = '{"data": {"id": "tag:google.c...'</tt> </tt>
-<a name="L887"></a><tt class="py-lineno"> 887</tt> <tt class="py-line"><tt class="py-docstring"> requestBuilder = RequestMockBuilder(</tt> </tt>
-<a name="L888"></a><tt class="py-lineno"> 888</tt> <tt class="py-line"><tt class="py-docstring"> {</tt> </tt>
-<a name="L889"></a><tt class="py-lineno"> 889</tt> <tt class="py-line"><tt class="py-docstring"> 'plus.activities.get': (None, response),</tt> </tt>
-<a name="L890"></a><tt class="py-lineno"> 890</tt> <tt class="py-line"><tt class="py-docstring"> }</tt> </tt>
-<a name="L891"></a><tt class="py-lineno"> 891</tt> <tt class="py-line"><tt class="py-docstring"> )</tt> </tt>
-<a name="L892"></a><tt class="py-lineno"> 892</tt> <tt class="py-line"><tt class="py-docstring"> apiclient.discovery.build("plus", "v1", requestBuilder=requestBuilder)</tt> </tt>
-<a name="L893"></a><tt class="py-lineno"> 893</tt> <tt class="py-line"><tt class="py-docstring"></tt> </tt>
-<a name="L894"></a><tt class="py-lineno"> 894</tt> <tt class="py-line"><tt class="py-docstring"> Methods that you do not supply a response for will return a</tt> </tt>
-<a name="L895"></a><tt class="py-lineno"> 895</tt> <tt class="py-line"><tt class="py-docstring"> 200 OK with an empty string as the response content or raise an excpetion</tt> </tt>
-<a name="L896"></a><tt class="py-lineno"> 896</tt> <tt class="py-line"><tt class="py-docstring"> if check_unexpected is set to True. The methodId is taken from the rpcName</tt> </tt>
-<a name="L897"></a><tt class="py-lineno"> 897</tt> <tt class="py-line"><tt class="py-docstring"> in the discovery document.</tt> </tt>
-<a name="L898"></a><tt class="py-lineno"> 898</tt> <tt class="py-line"><tt class="py-docstring"></tt> </tt>
-<a name="L899"></a><tt class="py-lineno"> 899</tt> <tt class="py-line"><tt class="py-docstring"> For more details see the project wiki.</tt> </tt>
-<a name="L900"></a><tt class="py-lineno"> 900</tt> <tt class="py-line"><tt class="py-docstring"> """</tt> </tt>
-<a name="L901"></a><tt class="py-lineno"> 901</tt> <tt class="py-line"> </tt>
-<a name="RequestMockBuilder.__init__"></a><div id="RequestMockBuilder.__init__-def"><a name="L902"></a><tt class="py-lineno"> 902</tt> <a class="py-toggle" href="#" id="RequestMockBuilder.__init__-toggle" onclick="return toggle('RequestMockBuilder.__init__');">-</a><tt class="py-line"> <tt class="py-keyword">def</tt> <a class="py-def-name" href="apiclient.http.RequestMockBuilder-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">responses</tt><tt class="py-op">,</tt> <tt class="py-param">check_unexpected</tt><tt class="py-op">=</tt><tt class="py-name">False</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-</div><div id="RequestMockBuilder.__init__-collapsed" style="display:none;" pad="++++" indent="++++++"></div><div id="RequestMockBuilder.__init__-expanded"><a name="L903"></a><tt class="py-lineno"> 903</tt> <tt class="py-line"> <tt class="py-docstring">"""Constructor for RequestMockBuilder</tt> </tt>
-<a name="L904"></a><tt class="py-lineno"> 904</tt> <tt class="py-line"><tt class="py-docstring"></tt> </tt>
-<a name="L905"></a><tt class="py-lineno"> 905</tt> <tt class="py-line"><tt class="py-docstring"> The constructed object should be a callable object</tt> </tt>
-<a name="L906"></a><tt class="py-lineno"> 906</tt> <tt class="py-line"><tt class="py-docstring"> that can replace the class HttpResponse.</tt> </tt>
-<a name="L907"></a><tt class="py-lineno"> 907</tt> <tt class="py-line"><tt class="py-docstring"></tt> </tt>
-<a name="L908"></a><tt class="py-lineno"> 908</tt> <tt class="py-line"><tt class="py-docstring"> responses - A dictionary that maps methodIds into tuples</tt> </tt>
-<a name="L909"></a><tt class="py-lineno"> 909</tt> <tt class="py-line"><tt class="py-docstring"> of (httplib2.Response, content). The methodId</tt> </tt>
-<a name="L910"></a><tt class="py-lineno"> 910</tt> <tt class="py-line"><tt class="py-docstring"> comes from the 'rpcName' field in the discovery</tt> </tt>
-<a name="L911"></a><tt class="py-lineno"> 911</tt> <tt class="py-line"><tt class="py-docstring"> document.</tt> </tt>
-<a name="L912"></a><tt class="py-lineno"> 912</tt> <tt class="py-line"><tt class="py-docstring"> check_unexpected - A boolean setting whether or not UnexpectedMethodError</tt> </tt>
-<a name="L913"></a><tt class="py-lineno"> 913</tt> <tt class="py-line"><tt class="py-docstring"> should be raised on unsupplied method.</tt> </tt>
-<a name="L914"></a><tt class="py-lineno"> 914</tt> <tt class="py-line"><tt class="py-docstring"> """</tt> </tt>
-<a name="L915"></a><tt class="py-lineno"> 915</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">responses</tt> <tt class="py-op">=</tt> <tt class="py-name">responses</tt> </tt>
-<a name="L916"></a><tt class="py-lineno"> 916</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">check_unexpected</tt> <tt class="py-op">=</tt> <tt class="py-name">check_unexpected</tt> </tt>
-</div><a name="L917"></a><tt class="py-lineno"> 917</tt> <tt class="py-line"> </tt>
-<a name="RequestMockBuilder.__call__"></a><div id="RequestMockBuilder.__call__-def"><a name="L918"></a><tt class="py-lineno"> 918</tt> <a class="py-toggle" href="#" id="RequestMockBuilder.__call__-toggle" onclick="return toggle('RequestMockBuilder.__call__');">-</a><tt class="py-line"> <tt class="py-keyword">def</tt> <a class="py-def-name" href="apiclient.http.RequestMockBuilder-class.html#__call__">__call__</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">,</tt> <tt class="py-param">http</tt><tt class="py-op">,</tt> <tt class="py-param">postproc</tt><tt class="py-op">,</tt> <tt class="py-param">uri</tt><tt class="py-op">,</tt> <tt class="py-param">method</tt><tt class="py-op">=</tt><tt class="py-string">'GET'</tt><tt class="py-op">,</tt> <tt class="py-param">body</tt><tt class="py-op">=</tt><tt class="py-name">None</tt><tt class="py-op">,</tt> </tt>
-<a name="L919"></a><tt class="py-lineno"> 919</tt> <tt class="py-line"> <tt class="py-param">headers</tt><tt class="py-op">=</tt><tt class="py-name">None</tt><tt class="py-op">,</tt> <tt class="py-param">methodId</tt><tt class="py-op">=</tt><tt class="py-name">None</tt><tt class="py-op">,</tt> <tt class="py-param">resumable</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="RequestMockBuilder.__call__-collapsed" style="display:none;" pad="++++" indent="++++++"></div><div id="RequestMockBuilder.__call__-expanded"><a name="L920"></a><tt class="py-lineno"> 920</tt> <tt class="py-line"> <tt class="py-docstring">"""Implements the callable interface that discovery.build() expects</tt> </tt>
-<a name="L921"></a><tt class="py-lineno"> 921</tt> <tt class="py-line"><tt class="py-docstring"> of requestBuilder, which is to build an object compatible with</tt> </tt>
-<a name="L922"></a><tt class="py-lineno"> 922</tt> <tt class="py-line"><tt class="py-docstring"> HttpRequest.execute(). See that method for the description of the</tt> </tt>
-<a name="L923"></a><tt class="py-lineno"> 923</tt> <tt class="py-line"><tt class="py-docstring"> parameters and the expected response.</tt> </tt>
-<a name="L924"></a><tt class="py-lineno"> 924</tt> <tt class="py-line"><tt class="py-docstring"> """</tt> </tt>
-<a name="L925"></a><tt class="py-lineno"> 925</tt> <tt class="py-line"> <tt class="py-keyword">if</tt> <tt class="py-name">methodId</tt> <tt class="py-keyword">in</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">responses</tt><tt class="py-op">:</tt> </tt>
-<a name="L926"></a><tt class="py-lineno"> 926</tt> <tt class="py-line"> <tt id="link-161" class="py-name"><a title="apiclient.model.BaseModel.response
-apiclient.model.Model.response" class="py-name" href="#" onclick="return doclink('link-161', 'response', 'link-155');">response</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">responses</tt><tt class="py-op">[</tt><tt class="py-name">methodId</tt><tt class="py-op">]</tt> </tt>
-<a name="L927"></a><tt class="py-lineno"> 927</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-162" class="py-name"><a title="apiclient.model.BaseModel.response
-apiclient.model.Model.response" class="py-name" href="#" onclick="return doclink('link-162', 'response', 'link-155');">response</a></tt><tt class="py-op">[</tt><tt class="py-op">:</tt><tt class="py-number">2</tt><tt class="py-op">]</tt> </tt>
-<a name="L928"></a><tt class="py-lineno"> 928</tt> <tt class="py-line"> <tt class="py-keyword">if</tt> <tt class="py-name">len</tt><tt class="py-op">(</tt><tt id="link-163" class="py-name"><a title="apiclient.model.BaseModel.response
-apiclient.model.Model.response" class="py-name" href="#" onclick="return doclink('link-163', 'response', 'link-155');">response</a></tt><tt class="py-op">)</tt> <tt class="py-op">></tt> <tt class="py-number">2</tt><tt class="py-op">:</tt> </tt>
-<a name="L929"></a><tt class="py-lineno"> 929</tt> <tt class="py-line"> <tt class="py-comment"># Test the body against the supplied expected_body.</tt> </tt>
-<a name="L930"></a><tt class="py-lineno"> 930</tt> <tt class="py-line"> <tt class="py-name">expected_body</tt> <tt class="py-op">=</tt> <tt id="link-164" class="py-name"><a title="apiclient.model.BaseModel.response
-apiclient.model.Model.response" class="py-name" href="#" onclick="return doclink('link-164', 'response', 'link-155');">response</a></tt><tt class="py-op">[</tt><tt class="py-number">2</tt><tt class="py-op">]</tt> </tt>
-<a name="L931"></a><tt class="py-lineno"> 931</tt> <tt class="py-line"> <tt class="py-keyword">if</tt> <tt class="py-name">bool</tt><tt class="py-op">(</tt><tt class="py-name">expected_body</tt><tt class="py-op">)</tt> <tt class="py-op">!=</tt> <tt class="py-name">bool</tt><tt class="py-op">(</tt><tt class="py-name">body</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-<a name="L932"></a><tt class="py-lineno"> 932</tt> <tt class="py-line"> <tt class="py-comment"># Not expecting a body and provided one</tt> </tt>
-<a name="L933"></a><tt class="py-lineno"> 933</tt> <tt class="py-line"> <tt class="py-comment"># or expecting a body and not provided one.</tt> </tt>
-<a name="L934"></a><tt class="py-lineno"> 934</tt> <tt class="py-line"> <tt class="py-keyword">raise</tt> <tt id="link-165" class="py-name"><a title="apiclient.errors.UnexpectedBodyError" class="py-name" href="#" onclick="return doclink('link-165', 'UnexpectedBodyError', 'link-8');">UnexpectedBodyError</a></tt><tt class="py-op">(</tt><tt class="py-name">expected_body</tt><tt class="py-op">,</tt> <tt class="py-name">body</tt><tt class="py-op">)</tt> </tt>
-<a name="L935"></a><tt class="py-lineno"> 935</tt> <tt class="py-line"> <tt class="py-keyword">if</tt> <tt class="py-name">isinstance</tt><tt class="py-op">(</tt><tt class="py-name">expected_body</tt><tt class="py-op">,</tt> <tt class="py-name">str</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-<a name="L936"></a><tt class="py-lineno"> 936</tt> <tt class="py-line"> <tt class="py-name">expected_body</tt> <tt class="py-op">=</tt> <tt class="py-name">simplejson</tt><tt class="py-op">.</tt><tt id="link-166" class="py-name"><a title="oauth2client.clientsecrets.loads" class="py-name" href="#" onclick="return doclink('link-166', 'loads', 'link-16');">loads</a></tt><tt class="py-op">(</tt><tt class="py-name">expected_body</tt><tt class="py-op">)</tt> </tt>
-<a name="L937"></a><tt class="py-lineno"> 937</tt> <tt class="py-line"> <tt class="py-name">body</tt> <tt class="py-op">=</tt> <tt class="py-name">simplejson</tt><tt class="py-op">.</tt><tt id="link-167" class="py-name"><a title="oauth2client.clientsecrets.loads" class="py-name" href="#" onclick="return doclink('link-167', 'loads', 'link-16');">loads</a></tt><tt class="py-op">(</tt><tt class="py-name">body</tt><tt class="py-op">)</tt> </tt>
-<a name="L938"></a><tt class="py-lineno"> 938</tt> <tt class="py-line"> <tt class="py-keyword">if</tt> <tt class="py-name">body</tt> <tt class="py-op">!=</tt> <tt class="py-name">expected_body</tt><tt class="py-op">:</tt> </tt>
-<a name="L939"></a><tt class="py-lineno"> 939</tt> <tt class="py-line"> <tt class="py-keyword">raise</tt> <tt id="link-168" class="py-name"><a title="apiclient.errors.UnexpectedBodyError" class="py-name" href="#" onclick="return doclink('link-168', 'UnexpectedBodyError', 'link-8');">UnexpectedBodyError</a></tt><tt class="py-op">(</tt><tt class="py-name">expected_body</tt><tt class="py-op">,</tt> <tt class="py-name">body</tt><tt class="py-op">)</tt> </tt>
-<a name="L940"></a><tt class="py-lineno"> 940</tt> <tt class="py-line"> <tt class="py-keyword">return</tt> <tt id="link-169" class="py-name" targets="Class apiclient.http.HttpRequestMock=apiclient.http.HttpRequestMock-class.html"><a title="apiclient.http.HttpRequestMock" class="py-name" href="#" onclick="return doclink('link-169', 'HttpRequestMock', 'link-169');">HttpRequestMock</a></tt><tt class="py-op">(</tt><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">postproc</tt><tt class="py-op">)</tt> </tt>
-<a name="L941"></a><tt class="py-lineno"> 941</tt> <tt class="py-line"> <tt class="py-keyword">elif</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">check_unexpected</tt><tt class="py-op">:</tt> </tt>
-<a name="L942"></a><tt class="py-lineno"> 942</tt> <tt class="py-line"> <tt class="py-keyword">raise</tt> <tt id="link-170" class="py-name"><a title="apiclient.errors.UnexpectedMethodError" class="py-name" href="#" onclick="return doclink('link-170', 'UnexpectedMethodError', 'link-10');">UnexpectedMethodError</a></tt><tt class="py-op">(</tt><tt class="py-name">methodId</tt><tt class="py-op">)</tt> </tt>
-<a name="L943"></a><tt class="py-lineno"> 943</tt> <tt class="py-line"> <tt class="py-keyword">else</tt><tt class="py-op">:</tt> </tt>
-<a name="L944"></a><tt class="py-lineno"> 944</tt> <tt class="py-line"> <tt id="link-171" class="py-name"><a title="apiclient.model" class="py-name" href="#" onclick="return doclink('link-171', 'model', 'link-11');">model</a></tt> <tt class="py-op">=</tt> <tt id="link-172" class="py-name"><a title="apiclient.model.JsonModel" class="py-name" href="#" onclick="return doclink('link-172', 'JsonModel', 'link-12');">JsonModel</a></tt><tt class="py-op">(</tt><tt class="py-name">False</tt><tt class="py-op">)</tt> </tt>
-<a name="L945"></a><tt class="py-lineno"> 945</tt> <tt class="py-line"> <tt class="py-keyword">return</tt> <tt id="link-173" class="py-name"><a title="apiclient.http.HttpRequestMock" class="py-name" href="#" onclick="return doclink('link-173', 'HttpRequestMock', 'link-169');">HttpRequestMock</a></tt><tt class="py-op">(</tt><tt class="py-name">None</tt><tt class="py-op">,</tt> <tt class="py-string">'{}'</tt><tt class="py-op">,</tt> <tt id="link-174" class="py-name"><a title="apiclient.model" class="py-name" href="#" onclick="return doclink('link-174', 'model', 'link-11');">model</a></tt><tt class="py-op">.</tt><tt id="link-175" class="py-name"><a title="apiclient.model.BaseModel.response
-apiclient.model.Model.response" class="py-name" href="#" onclick="return doclink('link-175', 'response', 'link-155');">response</a></tt><tt class="py-op">)</tt> </tt>
-</div></div><a name="L946"></a><tt class="py-lineno"> 946</tt> <tt class="py-line"> </tt>
-<a name="HttpMock"></a><div id="HttpMock-def"><a name="L947"></a><tt class="py-lineno"> 947</tt> <tt class="py-line"> </tt>
-<a name="L948"></a><tt class="py-lineno"> 948</tt> <a class="py-toggle" href="#" id="HttpMock-toggle" onclick="return toggle('HttpMock');">-</a><tt class="py-line"><tt class="py-keyword">class</tt> <a class="py-def-name" href="apiclient.http.HttpMock-class.html">HttpMock</a><tt class="py-op">(</tt><tt class="py-base-class">object</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-</div><div id="HttpMock-collapsed" style="display:none;" pad="++++" indent="++++"></div><div id="HttpMock-expanded"><a name="L949"></a><tt class="py-lineno"> 949</tt> <tt class="py-line"> <tt class="py-docstring">"""Mock of httplib2.Http"""</tt> </tt>
-<a name="L950"></a><tt class="py-lineno"> 950</tt> <tt class="py-line"> </tt>
-<a name="HttpMock.__init__"></a><div id="HttpMock.__init__-def"><a name="L951"></a><tt class="py-lineno"> 951</tt> <a class="py-toggle" href="#" id="HttpMock.__init__-toggle" onclick="return toggle('HttpMock.__init__');">-</a><tt class="py-line"> <tt class="py-keyword">def</tt> <a class="py-def-name" href="apiclient.http.HttpMock-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">filename</tt><tt class="py-op">,</tt> <tt class="py-param">headers</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="HttpMock.__init__-collapsed" style="display:none;" pad="++++" indent="++++++"></div><div id="HttpMock.__init__-expanded"><a name="L952"></a><tt class="py-lineno"> 952</tt> <tt class="py-line"> <tt class="py-docstring">"""</tt> </tt>
-<a name="L953"></a><tt class="py-lineno"> 953</tt> <tt class="py-line"><tt class="py-docstring"> Args:</tt> </tt>
-<a name="L954"></a><tt class="py-lineno"> 954</tt> <tt class="py-line"><tt class="py-docstring"> filename: string, absolute filename to read response from</tt> </tt>
-<a name="L955"></a><tt class="py-lineno"> 955</tt> <tt class="py-line"><tt class="py-docstring"> headers: dict, header to return with response</tt> </tt>
-<a name="L956"></a><tt class="py-lineno"> 956</tt> <tt class="py-line"><tt class="py-docstring"> """</tt> </tt>
-<a name="L957"></a><tt class="py-lineno"> 957</tt> <tt class="py-line"> <tt class="py-keyword">if</tt> <tt class="py-name">headers</tt> <tt class="py-keyword">is</tt> <tt class="py-name">None</tt><tt class="py-op">:</tt> </tt>
-<a name="L958"></a><tt class="py-lineno"> 958</tt> <tt class="py-line"> <tt class="py-name">headers</tt> <tt class="py-op">=</tt> <tt class="py-op">{</tt><tt class="py-string">'status'</tt><tt class="py-op">:</tt> <tt class="py-string">'200 OK'</tt><tt class="py-op">}</tt> </tt>
-<a name="L959"></a><tt class="py-lineno"> 959</tt> <tt class="py-line"> <tt class="py-name">f</tt> <tt class="py-op">=</tt> <tt id="link-176" class="py-name" targets="Module oauth2client.file=oauth2client.file-module.html"><a title="oauth2client.file" class="py-name" href="#" onclick="return doclink('link-176', 'file', 'link-176');">file</a></tt><tt class="py-op">(</tt><tt class="py-name">filename</tt><tt class="py-op">,</tt> <tt class="py-string">'r'</tt><tt class="py-op">)</tt> </tt>
-<a name="L960"></a><tt class="py-lineno"> 960</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">data</tt> <tt class="py-op">=</tt> <tt class="py-name">f</tt><tt class="py-op">.</tt><tt class="py-name">read</tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
-<a name="L961"></a><tt class="py-lineno"> 961</tt> <tt class="py-line"> <tt class="py-name">f</tt><tt class="py-op">.</tt><tt class="py-name">close</tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
-<a name="L962"></a><tt class="py-lineno"> 962</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">headers</tt> <tt class="py-op">=</tt> <tt class="py-name">headers</tt> </tt>
-</div><a name="L963"></a><tt class="py-lineno"> 963</tt> <tt class="py-line"> </tt>
-<a name="HttpMock.request"></a><div id="HttpMock.request-def"><a name="L964"></a><tt class="py-lineno"> 964</tt> <a class="py-toggle" href="#" id="HttpMock.request-toggle" onclick="return toggle('HttpMock.request');">-</a><tt class="py-line"> <tt class="py-keyword">def</tt> <a class="py-def-name" href="apiclient.http.HttpMock-class.html#request">request</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">,</tt> <tt class="py-param">uri</tt><tt class="py-op">,</tt> </tt>
-<a name="L965"></a><tt class="py-lineno"> 965</tt> <tt class="py-line"> <tt class="py-param">method</tt><tt class="py-op">=</tt><tt class="py-string">'GET'</tt><tt class="py-op">,</tt> </tt>
-<a name="L966"></a><tt class="py-lineno"> 966</tt> <tt class="py-line"> <tt class="py-param">body</tt><tt class="py-op">=</tt><tt class="py-name">None</tt><tt class="py-op">,</tt> </tt>
-<a name="L967"></a><tt class="py-lineno"> 967</tt> <tt class="py-line"> <tt class="py-param">headers</tt><tt class="py-op">=</tt><tt class="py-name">None</tt><tt class="py-op">,</tt> </tt>
-<a name="L968"></a><tt class="py-lineno"> 968</tt> <tt class="py-line"> <tt class="py-param">redirections</tt><tt class="py-op">=</tt><tt class="py-number">1</tt><tt class="py-op">,</tt> </tt>
-<a name="L969"></a><tt class="py-lineno"> 969</tt> <tt class="py-line"> <tt class="py-param">connection_type</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="HttpMock.request-collapsed" style="display:none;" pad="++++" indent="++++++"></div><div id="HttpMock.request-expanded"><a name="L970"></a><tt class="py-lineno"> 970</tt> <tt class="py-line"> <tt class="py-keyword">return</tt> <tt class="py-name">httplib2</tt><tt class="py-op">.</tt><tt class="py-name">Response</tt><tt class="py-op">(</tt><tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">headers</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">data</tt> </tt>
-</div></div><a name="L971"></a><tt class="py-lineno"> 971</tt> <tt class="py-line"> </tt>
-<a name="HttpMockSequence"></a><div id="HttpMockSequence-def"><a name="L972"></a><tt class="py-lineno"> 972</tt> <tt class="py-line"> </tt>
-<a name="L973"></a><tt class="py-lineno"> 973</tt> <a class="py-toggle" href="#" id="HttpMockSequence-toggle" onclick="return toggle('HttpMockSequence');">-</a><tt class="py-line"><tt class="py-keyword">class</tt> <a class="py-def-name" href="apiclient.http.HttpMockSequence-class.html">HttpMockSequence</a><tt class="py-op">(</tt><tt class="py-base-class">object</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-</div><div id="HttpMockSequence-collapsed" style="display:none;" pad="++++" indent="++++"></div><div id="HttpMockSequence-expanded"><a name="L974"></a><tt class="py-lineno"> 974</tt> <tt class="py-line"> <tt class="py-docstring">"""Mock of httplib2.Http</tt> </tt>
-<a name="L975"></a><tt class="py-lineno"> 975</tt> <tt class="py-line"><tt class="py-docstring"></tt> </tt>
-<a name="L976"></a><tt class="py-lineno"> 976</tt> <tt class="py-line"><tt class="py-docstring"> Mocks a sequence of calls to request returning different responses for each</tt> </tt>
-<a name="L977"></a><tt class="py-lineno"> 977</tt> <tt class="py-line"><tt class="py-docstring"> call. Create an instance initialized with the desired response headers</tt> </tt>
-<a name="L978"></a><tt class="py-lineno"> 978</tt> <tt class="py-line"><tt class="py-docstring"> and content and then use as if an httplib2.Http instance.</tt> </tt>
-<a name="L979"></a><tt class="py-lineno"> 979</tt> <tt class="py-line"><tt class="py-docstring"></tt> </tt>
-<a name="L980"></a><tt class="py-lineno"> 980</tt> <tt class="py-line"><tt class="py-docstring"> http = HttpMockSequence([</tt> </tt>
-<a name="L981"></a><tt class="py-lineno"> 981</tt> <tt class="py-line"><tt class="py-docstring"> ({'status': '401'}, ''),</tt> </tt>
-<a name="L982"></a><tt class="py-lineno"> 982</tt> <tt class="py-line"><tt class="py-docstring"> ({'status': '200'}, '{"access_token":"1/3w","expires_in":3600}'),</tt> </tt>
-<a name="L983"></a><tt class="py-lineno"> 983</tt> <tt class="py-line"><tt class="py-docstring"> ({'status': '200'}, 'echo_request_headers'),</tt> </tt>
-<a name="L984"></a><tt class="py-lineno"> 984</tt> <tt class="py-line"><tt class="py-docstring"> ])</tt> </tt>
-<a name="L985"></a><tt class="py-lineno"> 985</tt> <tt class="py-line"><tt class="py-docstring"> resp, content = http.request("http://examples.com")</tt> </tt>
-<a name="L986"></a><tt class="py-lineno"> 986</tt> <tt class="py-line"><tt class="py-docstring"></tt> </tt>
-<a name="L987"></a><tt class="py-lineno"> 987</tt> <tt class="py-line"><tt class="py-docstring"> There are special values you can pass in for content to trigger</tt> </tt>
-<a name="L988"></a><tt class="py-lineno"> 988</tt> <tt class="py-line"><tt class="py-docstring"> behavours that are helpful in testing.</tt> </tt>
-<a name="L989"></a><tt class="py-lineno"> 989</tt> <tt class="py-line"><tt class="py-docstring"></tt> </tt>
-<a name="L990"></a><tt class="py-lineno"> 990</tt> <tt class="py-line"><tt class="py-docstring"> 'echo_request_headers' means return the request headers in the response body</tt> </tt>
-<a name="L991"></a><tt class="py-lineno"> 991</tt> <tt class="py-line"><tt class="py-docstring"> 'echo_request_headers_as_json' means return the request headers in</tt> </tt>
-<a name="L992"></a><tt class="py-lineno"> 992</tt> <tt class="py-line"><tt class="py-docstring"> the response body</tt> </tt>
-<a name="L993"></a><tt class="py-lineno"> 993</tt> <tt class="py-line"><tt class="py-docstring"> 'echo_request_body' means return the request body in the response body</tt> </tt>
-<a name="L994"></a><tt class="py-lineno"> 994</tt> <tt class="py-line"><tt class="py-docstring"> 'echo_request_uri' means return the request uri in the response body</tt> </tt>
-<a name="L995"></a><tt class="py-lineno"> 995</tt> <tt class="py-line"><tt class="py-docstring"> """</tt> </tt>
-<a name="L996"></a><tt class="py-lineno"> 996</tt> <tt class="py-line"> </tt>
-<a name="HttpMockSequence.__init__"></a><div id="HttpMockSequence.__init__-def"><a name="L997"></a><tt class="py-lineno"> 997</tt> <a class="py-toggle" href="#" id="HttpMockSequence.__init__-toggle" onclick="return toggle('HttpMockSequence.__init__');">-</a><tt class="py-line"> <tt class="py-keyword">def</tt> <a class="py-def-name" href="apiclient.http.HttpMockSequence-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">iterable</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-</div><div id="HttpMockSequence.__init__-collapsed" style="display:none;" pad="++++" indent="++++++"></div><div id="HttpMockSequence.__init__-expanded"><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-docstring"> Args:</tt> </tt>
-<a name="L1000"></a><tt class="py-lineno">1000</tt> <tt class="py-line"><tt class="py-docstring"> iterable: iterable, a sequence of pairs of (headers, body)</tt> </tt>
-<a name="L1001"></a><tt class="py-lineno">1001</tt> <tt class="py-line"><tt class="py-docstring"> """</tt> </tt>
-<a name="L1002"></a><tt class="py-lineno">1002</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">_iterable</tt> <tt class="py-op">=</tt> <tt class="py-name">iterable</tt> </tt>
-</div><a name="L1003"></a><tt class="py-lineno">1003</tt> <tt class="py-line"> </tt>
-<a name="HttpMockSequence.request"></a><div id="HttpMockSequence.request-def"><a name="L1004"></a><tt class="py-lineno">1004</tt> <a class="py-toggle" href="#" id="HttpMockSequence.request-toggle" onclick="return toggle('HttpMockSequence.request');">-</a><tt class="py-line"> <tt class="py-keyword">def</tt> <a class="py-def-name" href="apiclient.http.HttpMockSequence-class.html#request">request</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">,</tt> <tt class="py-param">uri</tt><tt class="py-op">,</tt> </tt>
-<a name="L1005"></a><tt class="py-lineno">1005</tt> <tt class="py-line"> <tt class="py-param">method</tt><tt class="py-op">=</tt><tt class="py-string">'GET'</tt><tt class="py-op">,</tt> </tt>
-<a name="L1006"></a><tt class="py-lineno">1006</tt> <tt class="py-line"> <tt class="py-param">body</tt><tt class="py-op">=</tt><tt class="py-name">None</tt><tt class="py-op">,</tt> </tt>
-<a name="L1007"></a><tt class="py-lineno">1007</tt> <tt class="py-line"> <tt class="py-param">headers</tt><tt class="py-op">=</tt><tt class="py-name">None</tt><tt class="py-op">,</tt> </tt>
-<a name="L1008"></a><tt class="py-lineno">1008</tt> <tt class="py-line"> <tt class="py-param">redirections</tt><tt class="py-op">=</tt><tt class="py-number">1</tt><tt class="py-op">,</tt> </tt>
-<a name="L1009"></a><tt class="py-lineno">1009</tt> <tt class="py-line"> <tt class="py-param">connection_type</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="HttpMockSequence.request-collapsed" style="display:none;" pad="++++" indent="++++++"></div><div id="HttpMockSequence.request-expanded"><a name="L1010"></a><tt class="py-lineno">1010</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">self</tt><tt class="py-op">.</tt><tt class="py-name">_iterable</tt><tt class="py-op">.</tt><tt class="py-name">pop</tt><tt class="py-op">(</tt><tt class="py-number">0</tt><tt class="py-op">)</tt> </tt>
-<a name="L1011"></a><tt class="py-lineno">1011</tt> <tt class="py-line"> <tt class="py-keyword">if</tt> <tt class="py-name">content</tt> <tt class="py-op">==</tt> <tt class="py-string">'echo_request_headers'</tt><tt class="py-op">:</tt> </tt>
-<a name="L1012"></a><tt class="py-lineno">1012</tt> <tt class="py-line"> <tt class="py-name">content</tt> <tt class="py-op">=</tt> <tt class="py-name">headers</tt> </tt>
-<a name="L1013"></a><tt class="py-lineno">1013</tt> <tt class="py-line"> <tt class="py-keyword">elif</tt> <tt class="py-name">content</tt> <tt class="py-op">==</tt> <tt class="py-string">'echo_request_headers_as_json'</tt><tt class="py-op">:</tt> </tt>
-<a name="L1014"></a><tt class="py-lineno">1014</tt> <tt class="py-line"> <tt class="py-name">content</tt> <tt class="py-op">=</tt> <tt class="py-name">simplejson</tt><tt class="py-op">.</tt><tt class="py-name">dumps</tt><tt class="py-op">(</tt><tt class="py-name">headers</tt><tt class="py-op">)</tt> </tt>
-<a name="L1015"></a><tt class="py-lineno">1015</tt> <tt class="py-line"> <tt class="py-keyword">elif</tt> <tt class="py-name">content</tt> <tt class="py-op">==</tt> <tt class="py-string">'echo_request_body'</tt><tt class="py-op">:</tt> </tt>
-<a name="L1016"></a><tt class="py-lineno">1016</tt> <tt class="py-line"> <tt class="py-name">content</tt> <tt class="py-op">=</tt> <tt class="py-name">body</tt> </tt>
-<a name="L1017"></a><tt class="py-lineno">1017</tt> <tt class="py-line"> <tt class="py-keyword">elif</tt> <tt class="py-name">content</tt> <tt class="py-op">==</tt> <tt class="py-string">'echo_request_uri'</tt><tt class="py-op">:</tt> </tt>
-<a name="L1018"></a><tt class="py-lineno">1018</tt> <tt class="py-line"> <tt class="py-name">content</tt> <tt class="py-op">=</tt> <tt class="py-name">uri</tt> </tt>
-<a name="L1019"></a><tt class="py-lineno">1019</tt> <tt class="py-line"> <tt class="py-keyword">return</tt> <tt class="py-name">httplib2</tt><tt class="py-op">.</tt><tt class="py-name">Response</tt><tt class="py-op">(</tt><tt class="py-name">resp</tt><tt class="py-op">)</tt><tt class="py-op">,</tt> <tt class="py-name">content</tt> </tt>
-</div></div><a name="L1020"></a><tt class="py-lineno">1020</tt> <tt class="py-line"> </tt>
-<a name="set_user_agent"></a><div id="set_user_agent-def"><a name="L1021"></a><tt class="py-lineno">1021</tt> <tt class="py-line"> </tt>
-<a name="L1022"></a><tt class="py-lineno">1022</tt> <a class="py-toggle" href="#" id="set_user_agent-toggle" onclick="return toggle('set_user_agent');">-</a><tt class="py-line"><tt class="py-keyword">def</tt> <a class="py-def-name" href="apiclient.http-module.html#set_user_agent">set_user_agent</a><tt class="py-op">(</tt><tt class="py-param">http</tt><tt class="py-op">,</tt> <tt class="py-param">user_agent</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-</div><div id="set_user_agent-collapsed" style="display:none;" pad="++++" indent="++++"></div><div id="set_user_agent-expanded"><a name="L1023"></a><tt class="py-lineno">1023</tt> <tt class="py-line"> <tt class="py-docstring">"""Set the user-agent on every request.</tt> </tt>
-<a name="L1024"></a><tt class="py-lineno">1024</tt> <tt class="py-line"><tt class="py-docstring"></tt> </tt>
-<a name="L1025"></a><tt class="py-lineno">1025</tt> <tt class="py-line"><tt class="py-docstring"> Args:</tt> </tt>
-<a name="L1026"></a><tt class="py-lineno">1026</tt> <tt class="py-line"><tt class="py-docstring"> http - An instance of httplib2.Http</tt> </tt>
-<a name="L1027"></a><tt class="py-lineno">1027</tt> <tt class="py-line"><tt class="py-docstring"> or something that acts like it.</tt> </tt>
-<a name="L1028"></a><tt class="py-lineno">1028</tt> <tt class="py-line"><tt class="py-docstring"> user_agent: string, the value for the user-agent header.</tt> </tt>
-<a name="L1029"></a><tt class="py-lineno">1029</tt> <tt class="py-line"><tt class="py-docstring"></tt> </tt>
-<a name="L1030"></a><tt class="py-lineno">1030</tt> <tt class="py-line"><tt class="py-docstring"> Returns:</tt> </tt>
-<a name="L1031"></a><tt class="py-lineno">1031</tt> <tt class="py-line"><tt class="py-docstring"> A modified instance of http that was passed in.</tt> </tt>
-<a name="L1032"></a><tt class="py-lineno">1032</tt> <tt class="py-line"><tt class="py-docstring"></tt> </tt>
-<a name="L1033"></a><tt class="py-lineno">1033</tt> <tt class="py-line"><tt class="py-docstring"> Example:</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"> h = httplib2.Http()</tt> </tt>
-<a name="L1036"></a><tt class="py-lineno">1036</tt> <tt class="py-line"><tt class="py-docstring"> h = set_user_agent(h, "my-app-name/6.0")</tt> </tt>
-<a name="L1037"></a><tt class="py-lineno">1037</tt> <tt class="py-line"><tt class="py-docstring"></tt> </tt>
-<a name="L1038"></a><tt class="py-lineno">1038</tt> <tt class="py-line"><tt class="py-docstring"> Most of the time the user-agent will be set doing auth, this is for the rare</tt> </tt>
-<a name="L1039"></a><tt class="py-lineno">1039</tt> <tt class="py-line"><tt class="py-docstring"> cases where you are accessing an unauthenticated endpoint.</tt> </tt>
-<a name="L1040"></a><tt class="py-lineno">1040</tt> <tt class="py-line"><tt class="py-docstring"> """</tt> </tt>
-<a name="L1041"></a><tt class="py-lineno">1041</tt> <tt class="py-line"> <tt class="py-name">request_orig</tt> <tt class="py-op">=</tt> <tt id="link-177" class="py-name"><a title="apiclient.http
-oauth2client.appengine.OAuth2Decorator.http" class="py-name" href="#" onclick="return doclink('link-177', 'http', 'link-32');">http</a></tt><tt class="py-op">.</tt><tt id="link-178" 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-178', 'request', 'link-46');">request</a></tt> </tt>
-<a name="L1042"></a><tt class="py-lineno">1042</tt> <tt class="py-line"> </tt>
-<a name="L1043"></a><tt class="py-lineno">1043</tt> <tt class="py-line"> <tt class="py-comment"># The closure that will replace 'httplib2.Http.request'.</tt> </tt>
-<a name="L1044"></a><tt class="py-lineno">1044</tt> <tt class="py-line"> <tt class="py-keyword">def</tt> <tt class="py-def-name">new_request</tt><tt class="py-op">(</tt><tt class="py-param">uri</tt><tt class="py-op">,</tt> <tt class="py-param">method</tt><tt class="py-op">=</tt><tt class="py-string">'GET'</tt><tt class="py-op">,</tt> <tt class="py-param">body</tt><tt class="py-op">=</tt><tt class="py-name">None</tt><tt class="py-op">,</tt> <tt class="py-param">headers</tt><tt class="py-op">=</tt><tt class="py-name">None</tt><tt class="py-op">,</tt> </tt>
-<a name="L1045"></a><tt class="py-lineno">1045</tt> <tt class="py-line"> <tt class="py-param">redirections</tt><tt class="py-op">=</tt><tt class="py-name">httplib2</tt><tt class="py-op">.</tt><tt class="py-name">DEFAULT_MAX_REDIRECTS</tt><tt class="py-op">,</tt> </tt>
-<a name="L1046"></a><tt class="py-lineno">1046</tt> <tt class="py-line"> <tt class="py-param">connection_type</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="L1047"></a><tt class="py-lineno">1047</tt> <tt class="py-line"> <tt class="py-docstring">"""Modify the request headers to add the user-agent."""</tt> </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">headers</tt> <tt class="py-keyword">is</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-op">{</tt><tt class="py-op">}</tt> </tt>
-<a name="L1050"></a><tt class="py-lineno">1050</tt> <tt class="py-line"> <tt class="py-keyword">if</tt> <tt class="py-string">'user-agent'</tt> <tt class="py-keyword">in</tt> <tt class="py-name">headers</tt><tt class="py-op">:</tt> </tt>
-<a name="L1051"></a><tt class="py-lineno">1051</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">user_agent</tt> <tt class="py-op">+</tt> <tt class="py-string">' '</tt> <tt class="py-op">+</tt> <tt class="py-name">headers</tt><tt class="py-op">[</tt><tt class="py-string">'user-agent'</tt><tt class="py-op">]</tt> </tt>
-<a name="L1052"></a><tt class="py-lineno">1052</tt> <tt class="py-line"> <tt class="py-keyword">else</tt><tt class="py-op">:</tt> </tt>
-<a name="L1053"></a><tt class="py-lineno">1053</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">user_agent</tt> </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 class="py-name">request_orig</tt><tt class="py-op">(</tt><tt class="py-name">uri</tt><tt class="py-op">,</tt> <tt class="py-name">method</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>
-<a name="L1055"></a><tt class="py-lineno">1055</tt> <tt class="py-line"> <tt class="py-name">redirections</tt><tt class="py-op">,</tt> <tt class="py-name">connection_type</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">return</tt> <tt class="py-name">resp</tt><tt class="py-op">,</tt> <tt class="py-name">content</tt> </tt>
-</div><a name="L1057"></a><tt class="py-lineno">1057</tt> <tt class="py-line"> </tt>
-<a name="L1058"></a><tt class="py-lineno">1058</tt> <tt class="py-line"> <tt id="link-179" class="py-name"><a title="apiclient.http
-oauth2client.appengine.OAuth2Decorator.http" class="py-name" href="#" onclick="return doclink('link-179', 'http', 'link-32');">http</a></tt><tt class="py-op">.</tt><tt id="link-180" 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-180', 'request', 'link-46');">request</a></tt> <tt class="py-op">=</tt> <tt class="py-name">new_request</tt> </tt>
-<a name="L1059"></a><tt class="py-lineno">1059</tt> <tt class="py-line"> <tt class="py-keyword">return</tt> <tt id="link-181" class="py-name"><a title="apiclient.http
-oauth2client.appengine.OAuth2Decorator.http" class="py-name" href="#" onclick="return doclink('link-181', 'http', 'link-32');">http</a></tt> </tt>
-</div><a name="L1060"></a><tt class="py-lineno">1060</tt> <tt class="py-line"> </tt>
-<a name="tunnel_patch"></a><div id="tunnel_patch-def"><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> <a class="py-toggle" href="#" id="tunnel_patch-toggle" onclick="return toggle('tunnel_patch');">-</a><tt class="py-line"><tt class="py-keyword">def</tt> <a class="py-def-name" href="apiclient.http-module.html#tunnel_patch">tunnel_patch</a><tt class="py-op">(</tt><tt class="py-param">http</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-</div><div id="tunnel_patch-collapsed" style="display:none;" pad="++++" indent="++++"></div><div id="tunnel_patch-expanded"><a name="L1063"></a><tt class="py-lineno">1063</tt> <tt class="py-line"> <tt class="py-docstring">"""Tunnel PATCH requests over POST.</tt> </tt>
-<a name="L1064"></a><tt class="py-lineno">1064</tt> <tt class="py-line"><tt class="py-docstring"> Args:</tt> </tt>
-<a name="L1065"></a><tt class="py-lineno">1065</tt> <tt class="py-line"><tt class="py-docstring"> http - An instance of httplib2.Http</tt> </tt>
-<a name="L1066"></a><tt class="py-lineno">1066</tt> <tt class="py-line"><tt class="py-docstring"> or something that acts like it.</tt> </tt>
-<a name="L1067"></a><tt class="py-lineno">1067</tt> <tt class="py-line"><tt class="py-docstring"></tt> </tt>
-<a name="L1068"></a><tt class="py-lineno">1068</tt> <tt class="py-line"><tt class="py-docstring"> Returns:</tt> </tt>
-<a name="L1069"></a><tt class="py-lineno">1069</tt> <tt class="py-line"><tt class="py-docstring"> A modified instance of http that was passed in.</tt> </tt>
-<a name="L1070"></a><tt class="py-lineno">1070</tt> <tt class="py-line"><tt class="py-docstring"></tt> </tt>
-<a name="L1071"></a><tt class="py-lineno">1071</tt> <tt class="py-line"><tt class="py-docstring"> Example:</tt> </tt>
-<a name="L1072"></a><tt class="py-lineno">1072</tt> <tt class="py-line"><tt class="py-docstring"></tt> </tt>
-<a name="L1073"></a><tt class="py-lineno">1073</tt> <tt class="py-line"><tt class="py-docstring"> h = httplib2.Http()</tt> </tt>
-<a name="L1074"></a><tt class="py-lineno">1074</tt> <tt class="py-line"><tt class="py-docstring"> h = tunnel_patch(h, "my-app-name/6.0")</tt> </tt>
-<a name="L1075"></a><tt class="py-lineno">1075</tt> <tt class="py-line"><tt class="py-docstring"></tt> </tt>
-<a name="L1076"></a><tt class="py-lineno">1076</tt> <tt class="py-line"><tt class="py-docstring"> Useful if you are running on a platform that doesn't support PATCH.</tt> </tt>
-<a name="L1077"></a><tt class="py-lineno">1077</tt> <tt class="py-line"><tt class="py-docstring"> Apply this last if you are using OAuth 1.0, as changing the method</tt> </tt>
-<a name="L1078"></a><tt class="py-lineno">1078</tt> <tt class="py-line"><tt class="py-docstring"> will result in a different signature.</tt> </tt>
-<a name="L1079"></a><tt class="py-lineno">1079</tt> <tt class="py-line"><tt class="py-docstring"> """</tt> </tt>
-<a name="L1080"></a><tt class="py-lineno">1080</tt> <tt class="py-line"> <tt class="py-name">request_orig</tt> <tt class="py-op">=</tt> <tt id="link-182" class="py-name"><a title="apiclient.http
-oauth2client.appengine.OAuth2Decorator.http" class="py-name" href="#" onclick="return doclink('link-182', 'http', 'link-32');">http</a></tt><tt class="py-op">.</tt><tt id="link-183" 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-183', 'request', 'link-46');">request</a></tt> </tt>
-<a name="L1081"></a><tt class="py-lineno">1081</tt> <tt class="py-line"> </tt>
-<a name="L1082"></a><tt class="py-lineno">1082</tt> <tt class="py-line"> <tt class="py-comment"># The closure that will replace 'httplib2.Http.request'.</tt> </tt>
-<a name="L1083"></a><tt class="py-lineno">1083</tt> <tt class="py-line"> <tt class="py-keyword">def</tt> <tt class="py-def-name">new_request</tt><tt class="py-op">(</tt><tt class="py-param">uri</tt><tt class="py-op">,</tt> <tt class="py-param">method</tt><tt class="py-op">=</tt><tt class="py-string">'GET'</tt><tt class="py-op">,</tt> <tt class="py-param">body</tt><tt class="py-op">=</tt><tt class="py-name">None</tt><tt class="py-op">,</tt> <tt class="py-param">headers</tt><tt class="py-op">=</tt><tt class="py-name">None</tt><tt class="py-op">,</tt> </tt>
-<a name="L1084"></a><tt class="py-lineno">1084</tt> <tt class="py-line"> <tt class="py-param">redirections</tt><tt class="py-op">=</tt><tt class="py-name">httplib2</tt><tt class="py-op">.</tt><tt class="py-name">DEFAULT_MAX_REDIRECTS</tt><tt class="py-op">,</tt> </tt>
-<a name="L1085"></a><tt class="py-lineno">1085</tt> <tt class="py-line"> <tt class="py-param">connection_type</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="L1086"></a><tt class="py-lineno">1086</tt> <tt class="py-line"> <tt class="py-docstring">"""Modify the request headers to add the user-agent."""</tt> </tt>
-<a name="L1087"></a><tt class="py-lineno">1087</tt> <tt class="py-line"> <tt class="py-keyword">if</tt> <tt class="py-name">headers</tt> <tt class="py-keyword">is</tt> <tt class="py-name">None</tt><tt class="py-op">:</tt> </tt>
-<a name="L1088"></a><tt class="py-lineno">1088</tt> <tt class="py-line"> <tt class="py-name">headers</tt> <tt class="py-op">=</tt> <tt class="py-op">{</tt><tt class="py-op">}</tt> </tt>
-<a name="L1089"></a><tt class="py-lineno">1089</tt> <tt class="py-line"> <tt class="py-keyword">if</tt> <tt class="py-name">method</tt> <tt class="py-op">==</tt> <tt class="py-string">'PATCH'</tt><tt class="py-op">:</tt> </tt>
-<a name="L1090"></a><tt class="py-lineno">1090</tt> <tt class="py-line"> <tt class="py-keyword">if</tt> <tt class="py-string">'oauth_token'</tt> <tt class="py-keyword">in</tt> <tt class="py-name">headers</tt><tt class="py-op">.</tt><tt id="link-184" class="py-name"><a title="apiclient.schema.Schemas.get
+apiclient.model.Model.request" class="py-name" href="#" onclick="return doclink('link-126', 'request', 'link-56');">request</a></tt><tt class="py-op">.</tt><tt class="py-name">headers</tt><tt class="py-op">.</tt><tt id="link-127" 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-184', 'get', 'link-38');">get</a></tt><tt class="py-op">(</tt><tt class="py-string">'authorization'</tt><tt class="py-op">,</tt> <tt class="py-string">''</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-<a name="L1091"></a><tt class="py-lineno">1091</tt> <tt class="py-line"> <tt class="py-name">logging</tt><tt class="py-op">.</tt><tt class="py-name">warning</tt><tt class="py-op">(</tt> </tt>
-<a name="L1092"></a><tt class="py-lineno">1092</tt> <tt class="py-line"> <tt class="py-string">'OAuth 1.0 request made with Credentials after tunnel_patch.'</tt><tt class="py-op">)</tt> </tt>
-<a name="L1093"></a><tt class="py-lineno">1093</tt> <tt class="py-line"> <tt class="py-name">headers</tt><tt class="py-op">[</tt><tt class="py-string">'x-http-method-override'</tt><tt class="py-op">]</tt> <tt class="py-op">=</tt> <tt class="py-string">"PATCH"</tt> </tt>
-<a name="L1094"></a><tt class="py-lineno">1094</tt> <tt class="py-line"> <tt class="py-name">method</tt> <tt class="py-op">=</tt> <tt class="py-string">'POST'</tt> </tt>
-<a name="L1095"></a><tt class="py-lineno">1095</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">request_orig</tt><tt class="py-op">(</tt><tt class="py-name">uri</tt><tt class="py-op">,</tt> <tt class="py-name">method</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>
-<a name="L1096"></a><tt class="py-lineno">1096</tt> <tt class="py-line"> <tt class="py-name">redirections</tt><tt class="py-op">,</tt> <tt class="py-name">connection_type</tt><tt class="py-op">)</tt> </tt>
-<a name="L1097"></a><tt class="py-lineno">1097</tt> <tt class="py-line"> <tt class="py-keyword">return</tt> <tt class="py-name">resp</tt><tt class="py-op">,</tt> <tt class="py-name">content</tt> </tt>
-</div><a name="L1098"></a><tt class="py-lineno">1098</tt> <tt class="py-line"> </tt>
-<a name="L1099"></a><tt class="py-lineno">1099</tt> <tt class="py-line"> <tt id="link-185" class="py-name"><a title="apiclient.http
-oauth2client.appengine.OAuth2Decorator.http" class="py-name" href="#" onclick="return doclink('link-185', 'http', 'link-32');">http</a></tt><tt class="py-op">.</tt><tt id="link-186" class="py-name"><a title="apiclient.http.HttpMock.request
+oauth2client.client.Storage.get" class="py-name" href="#" onclick="return doclink('link-127', 'get', 'link-48');">get</a></tt><tt class="py-op">(</tt><tt class="py-string">'content-type'</tt><tt class="py-op">,</tt> <tt class="py-string">'application/json'</tt><tt class="py-op">)</tt><tt class="py-op">.</tt><tt class="py-name">split</tt><tt class="py-op">(</tt><tt class="py-string">'/'</tt><tt class="py-op">)</tt> </tt>
+<a name="L813"></a><tt class="py-lineno"> 813</tt> <tt class="py-line"> <tt class="py-name">msg</tt> <tt class="py-op">=</tt> <tt class="py-name">MIMENonMultipart</tt><tt class="py-op">(</tt><tt class="py-name">major</tt><tt class="py-op">,</tt> <tt class="py-name">minor</tt><tt class="py-op">)</tt> </tt>
+<a name="L814"></a><tt class="py-lineno"> 814</tt> <tt class="py-line"> <tt class="py-name">headers</tt> <tt class="py-op">=</tt> <tt id="link-128" 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-186', 'request', 'link-46');">request</a></tt> <tt class="py-op">=</tt> <tt class="py-name">new_request</tt> </tt>
-<a name="L1100"></a><tt class="py-lineno">1100</tt> <tt class="py-line"> <tt class="py-keyword">return</tt> <tt id="link-187" class="py-name"><a title="apiclient.http
-oauth2client.appengine.OAuth2Decorator.http" class="py-name" href="#" onclick="return doclink('link-187', 'http', 'link-32');">http</a></tt> </tt>
-</div><a name="L1101"></a><tt class="py-lineno">1101</tt> <tt class="py-line"> </tt><script type="text/javascript">
+apiclient.model.Model.request" class="py-name" href="#" onclick="return doclink('link-128', 'request', 'link-56');">request</a></tt><tt class="py-op">.</tt><tt class="py-name">headers</tt><tt class="py-op">.</tt><tt class="py-name">copy</tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
+<a name="L815"></a><tt class="py-lineno"> 815</tt> <tt class="py-line"> </tt>
+<a name="L816"></a><tt class="py-lineno"> 816</tt> <tt class="py-line"> <tt class="py-keyword">if</tt> <tt id="link-129" 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-129', 'request', 'link-56');">request</a></tt><tt class="py-op">.</tt><tt id="link-130" class="py-name"><a title="apiclient.http
+oauth2client.appengine.OAuth2Decorator.http" class="py-name" href="#" onclick="return doclink('link-130', 'http', 'link-42');">http</a></tt> <tt class="py-keyword">is</tt> <tt class="py-keyword">not</tt> <tt class="py-name">None</tt> <tt class="py-keyword">and</tt> <tt class="py-name">hasattr</tt><tt class="py-op">(</tt><tt id="link-131" 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-131', 'request', 'link-56');">request</a></tt><tt class="py-op">.</tt><tt id="link-132" class="py-name"><a title="apiclient.http
+oauth2client.appengine.OAuth2Decorator.http" class="py-name" href="#" onclick="return doclink('link-132', 'http', 'link-42');">http</a></tt><tt class="py-op">.</tt><tt id="link-133" 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-133', 'request', 'link-56');">request</a></tt><tt class="py-op">,</tt> </tt>
+<a name="L817"></a><tt class="py-lineno"> 817</tt> <tt class="py-line"> <tt class="py-string">'credentials'</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+<a name="L818"></a><tt class="py-lineno"> 818</tt> <tt class="py-line"> <tt id="link-134" 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-134', 'request', 'link-56');">request</a></tt><tt class="py-op">.</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-42');">http</a></tt><tt class="py-op">.</tt><tt id="link-136" 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-136', 'request', 'link-56');">request</a></tt><tt class="py-op">.</tt><tt id="link-137" class="py-name"><a title="oauth2client.appengine.CredentialsModel.credentials" class="py-name" href="#" onclick="return doclink('link-137', 'credentials', 'link-106');">credentials</a></tt><tt class="py-op">.</tt><tt id="link-138" class="py-name"><a title="oauth2client.client.Credentials.apply
+oauth2client.client.OAuth2Credentials.apply" class="py-name" href="#" onclick="return doclink('link-138', 'apply', 'link-120');">apply</a></tt><tt class="py-op">(</tt><tt class="py-name">headers</tt><tt class="py-op">)</tt> </tt>
+<a name="L819"></a><tt class="py-lineno"> 819</tt> <tt class="py-line"> </tt>
+<a name="L820"></a><tt class="py-lineno"> 820</tt> <tt class="py-line"> <tt class="py-comment"># MIMENonMultipart adds its own Content-Type header.</tt> </tt>
+<a name="L821"></a><tt class="py-lineno"> 821</tt> <tt class="py-line"> <tt class="py-keyword">if</tt> <tt class="py-string">'content-type'</tt> <tt class="py-keyword">in</tt> <tt class="py-name">headers</tt><tt class="py-op">:</tt> </tt>
+<a name="L822"></a><tt class="py-lineno"> 822</tt> <tt class="py-line"> <tt class="py-keyword">del</tt> <tt class="py-name">headers</tt><tt class="py-op">[</tt><tt class="py-string">'content-type'</tt><tt class="py-op">]</tt> </tt>
+<a name="L823"></a><tt class="py-lineno"> 823</tt> <tt class="py-line"> </tt>
+<a name="L824"></a><tt class="py-lineno"> 824</tt> <tt class="py-line"> <tt class="py-keyword">for</tt> <tt class="py-name">key</tt><tt class="py-op">,</tt> <tt class="py-name">value</tt> <tt class="py-keyword">in</tt> <tt class="py-name">headers</tt><tt class="py-op">.</tt><tt class="py-name">iteritems</tt><tt class="py-op">(</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+<a name="L825"></a><tt class="py-lineno"> 825</tt> <tt class="py-line"> <tt class="py-name">msg</tt><tt class="py-op">[</tt><tt class="py-name">key</tt><tt class="py-op">]</tt> <tt class="py-op">=</tt> <tt class="py-name">value</tt> </tt>
+<a name="L826"></a><tt class="py-lineno"> 826</tt> <tt class="py-line"> <tt class="py-name">msg</tt><tt class="py-op">[</tt><tt class="py-string">'Host'</tt><tt class="py-op">]</tt> <tt class="py-op">=</tt> <tt class="py-name">parsed</tt><tt class="py-op">.</tt><tt class="py-name">netloc</tt> </tt>
+<a name="L827"></a><tt class="py-lineno"> 827</tt> <tt class="py-line"> <tt class="py-name">msg</tt><tt class="py-op">.</tt><tt class="py-name">set_unixfrom</tt><tt class="py-op">(</tt><tt class="py-name">None</tt><tt class="py-op">)</tt> </tt>
+<a name="L828"></a><tt class="py-lineno"> 828</tt> <tt class="py-line"> </tt>
+<a name="L829"></a><tt class="py-lineno"> 829</tt> <tt class="py-line"> <tt class="py-keyword">if</tt> <tt id="link-139" 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-139', 'request', 'link-56');">request</a></tt><tt class="py-op">.</tt><tt class="py-name">body</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="L830"></a><tt class="py-lineno"> 830</tt> <tt class="py-line"> <tt class="py-name">msg</tt><tt class="py-op">.</tt><tt class="py-name">set_payload</tt><tt class="py-op">(</tt><tt id="link-140" 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-140', 'request', 'link-56');">request</a></tt><tt class="py-op">.</tt><tt class="py-name">body</tt><tt class="py-op">)</tt> </tt>
+<a name="L831"></a><tt class="py-lineno"> 831</tt> <tt class="py-line"> <tt class="py-name">msg</tt><tt class="py-op">[</tt><tt class="py-string">'content-length'</tt><tt class="py-op">]</tt> <tt class="py-op">=</tt> <tt class="py-name">str</tt><tt class="py-op">(</tt><tt class="py-name">len</tt><tt class="py-op">(</tt><tt id="link-141" 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-141', 'request', 'link-56');">request</a></tt><tt class="py-op">.</tt><tt class="py-name">body</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
+<a name="L832"></a><tt class="py-lineno"> 832</tt> <tt class="py-line"> </tt>
+<a name="L833"></a><tt class="py-lineno"> 833</tt> <tt class="py-line"> <tt class="py-comment"># Serialize the mime message.</tt> </tt>
+<a name="L834"></a><tt class="py-lineno"> 834</tt> <tt class="py-line"> <tt class="py-name">fp</tt> <tt class="py-op">=</tt> <tt class="py-name">StringIO</tt><tt class="py-op">.</tt><tt class="py-name">StringIO</tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
+<a name="L835"></a><tt class="py-lineno"> 835</tt> <tt class="py-line"> <tt class="py-comment"># maxheaderlen=0 means don't line wrap headers.</tt> </tt>
+<a name="L836"></a><tt class="py-lineno"> 836</tt> <tt class="py-line"> <tt class="py-name">g</tt> <tt class="py-op">=</tt> <tt class="py-name">Generator</tt><tt class="py-op">(</tt><tt class="py-name">fp</tt><tt class="py-op">,</tt> <tt class="py-name">maxheaderlen</tt><tt class="py-op">=</tt><tt class="py-number">0</tt><tt class="py-op">)</tt> </tt>
+<a name="L837"></a><tt class="py-lineno"> 837</tt> <tt class="py-line"> <tt class="py-name">g</tt><tt class="py-op">.</tt><tt class="py-name">flatten</tt><tt class="py-op">(</tt><tt class="py-name">msg</tt><tt class="py-op">,</tt> <tt class="py-name">unixfrom</tt><tt class="py-op">=</tt><tt class="py-name">False</tt><tt class="py-op">)</tt> </tt>
+<a name="L838"></a><tt class="py-lineno"> 838</tt> <tt class="py-line"> <tt class="py-name">body</tt> <tt class="py-op">=</tt> <tt class="py-name">fp</tt><tt class="py-op">.</tt><tt class="py-name">getvalue</tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
+<a name="L839"></a><tt class="py-lineno"> 839</tt> <tt class="py-line"> </tt>
+<a name="L840"></a><tt class="py-lineno"> 840</tt> <tt class="py-line"> <tt class="py-comment"># Strip off the \n\n that the MIME lib tacks onto the end of the payload.</tt> </tt>
+<a name="L841"></a><tt class="py-lineno"> 841</tt> <tt class="py-line"> <tt class="py-keyword">if</tt> <tt id="link-142" 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-142', 'request', 'link-56');">request</a></tt><tt class="py-op">.</tt><tt class="py-name">body</tt> <tt class="py-keyword">is</tt> <tt class="py-name">None</tt><tt class="py-op">:</tt> </tt>
+<a name="L842"></a><tt class="py-lineno"> 842</tt> <tt class="py-line"> <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-op">:</tt><tt class="py-op">-</tt><tt class="py-number">2</tt><tt class="py-op">]</tt> </tt>
+<a name="L843"></a><tt class="py-lineno"> 843</tt> <tt class="py-line"> </tt>
+<a name="L844"></a><tt class="py-lineno"> 844</tt> <tt class="py-line"> <tt class="py-keyword">return</tt> <tt class="py-name">status_line</tt><tt class="py-op">.</tt><tt class="py-name">encode</tt><tt class="py-op">(</tt><tt class="py-string">'utf-8'</tt><tt class="py-op">)</tt> <tt class="py-op">+</tt> <tt class="py-name">body</tt> </tt>
+</div><a name="L845"></a><tt class="py-lineno"> 845</tt> <tt class="py-line"> </tt>
+<a name="BatchHttpRequest._deserialize_response"></a><div id="BatchHttpRequest._deserialize_response-def"><a name="L846"></a><tt class="py-lineno"> 846</tt> <a class="py-toggle" href="#" id="BatchHttpRequest._deserialize_response-toggle" onclick="return toggle('BatchHttpRequest._deserialize_response');">-</a><tt class="py-line"> <tt class="py-keyword">def</tt> <a class="py-def-name" href="apiclient.http.BatchHttpRequest-class.html#_deserialize_response">_deserialize_response</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">,</tt> <tt class="py-param">payload</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+</div><div id="BatchHttpRequest._deserialize_response-collapsed" style="display:none;" pad="++++" indent="++++++"></div><div id="BatchHttpRequest._deserialize_response-expanded"><a name="L847"></a><tt class="py-lineno"> 847</tt> <tt class="py-line"> <tt class="py-docstring">"""Convert string into httplib2 response and content.</tt> </tt>
+<a name="L848"></a><tt class="py-lineno"> 848</tt> <tt class="py-line"><tt class="py-docstring"></tt> </tt>
+<a name="L849"></a><tt class="py-lineno"> 849</tt> <tt class="py-line"><tt class="py-docstring"> Args:</tt> </tt>
+<a name="L850"></a><tt class="py-lineno"> 850</tt> <tt class="py-line"><tt class="py-docstring"> payload: string, headers and body as a string.</tt> </tt>
+<a name="L851"></a><tt class="py-lineno"> 851</tt> <tt class="py-line"><tt class="py-docstring"></tt> </tt>
+<a name="L852"></a><tt class="py-lineno"> 852</tt> <tt class="py-line"><tt class="py-docstring"> Returns:</tt> </tt>
+<a name="L853"></a><tt class="py-lineno"> 853</tt> <tt class="py-line"><tt class="py-docstring"> A pair (resp, content) like would be returned from httplib2.request.</tt> </tt>
+<a name="L854"></a><tt class="py-lineno"> 854</tt> <tt class="py-line"><tt class="py-docstring"> """</tt> </tt>
+<a name="L855"></a><tt class="py-lineno"> 855</tt> <tt class="py-line"> <tt class="py-comment"># Strip off the status line</tt> </tt>
+<a name="L856"></a><tt class="py-lineno"> 856</tt> <tt class="py-line"> <tt class="py-name">status_line</tt><tt class="py-op">,</tt> <tt class="py-name">payload</tt> <tt class="py-op">=</tt> <tt class="py-name">payload</tt><tt class="py-op">.</tt><tt class="py-name">split</tt><tt class="py-op">(</tt><tt class="py-string">'\n'</tt><tt class="py-op">,</tt> <tt class="py-number">1</tt><tt class="py-op">)</tt> </tt>
+<a name="L857"></a><tt class="py-lineno"> 857</tt> <tt class="py-line"> <tt class="py-name">protocol</tt><tt class="py-op">,</tt> <tt class="py-name">status</tt><tt class="py-op">,</tt> <tt class="py-name">reason</tt> <tt class="py-op">=</tt> <tt class="py-name">status_line</tt><tt class="py-op">.</tt><tt class="py-name">split</tt><tt class="py-op">(</tt><tt class="py-string">' '</tt><tt class="py-op">,</tt> <tt class="py-number">2</tt><tt class="py-op">)</tt> </tt>
+<a name="L858"></a><tt class="py-lineno"> 858</tt> <tt class="py-line"> </tt>
+<a name="L859"></a><tt class="py-lineno"> 859</tt> <tt class="py-line"> <tt class="py-comment"># Parse the rest of the response</tt> </tt>
+<a name="L860"></a><tt class="py-lineno"> 860</tt> <tt class="py-line"> <tt class="py-name">parser</tt> <tt class="py-op">=</tt> <tt class="py-name">FeedParser</tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
+<a name="L861"></a><tt class="py-lineno"> 861</tt> <tt class="py-line"> <tt class="py-name">parser</tt><tt class="py-op">.</tt><tt class="py-name">feed</tt><tt class="py-op">(</tt><tt class="py-name">payload</tt><tt class="py-op">)</tt> </tt>
+<a name="L862"></a><tt class="py-lineno"> 862</tt> <tt class="py-line"> <tt class="py-name">msg</tt> <tt class="py-op">=</tt> <tt class="py-name">parser</tt><tt class="py-op">.</tt><tt class="py-name">close</tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
+<a name="L863"></a><tt class="py-lineno"> 863</tt> <tt class="py-line"> <tt class="py-name">msg</tt><tt class="py-op">[</tt><tt class="py-string">'status'</tt><tt class="py-op">]</tt> <tt class="py-op">=</tt> <tt class="py-name">status</tt> </tt>
+<a name="L864"></a><tt class="py-lineno"> 864</tt> <tt class="py-line"> </tt>
+<a name="L865"></a><tt class="py-lineno"> 865</tt> <tt class="py-line"> <tt class="py-comment"># Create httplib2.Response from the parsed headers.</tt> </tt>
+<a name="L866"></a><tt class="py-lineno"> 866</tt> <tt class="py-line"> <tt class="py-name">resp</tt> <tt class="py-op">=</tt> <tt class="py-name">httplib2</tt><tt class="py-op">.</tt><tt class="py-name">Response</tt><tt class="py-op">(</tt><tt class="py-name">msg</tt><tt class="py-op">)</tt> </tt>
+<a name="L867"></a><tt class="py-lineno"> 867</tt> <tt class="py-line"> <tt class="py-name">resp</tt><tt class="py-op">.</tt><tt class="py-name">reason</tt> <tt class="py-op">=</tt> <tt class="py-name">reason</tt> </tt>
+<a name="L868"></a><tt class="py-lineno"> 868</tt> <tt class="py-line"> <tt class="py-name">resp</tt><tt class="py-op">.</tt><tt class="py-name">version</tt> <tt class="py-op">=</tt> <tt class="py-name">int</tt><tt class="py-op">(</tt><tt class="py-name">protocol</tt><tt class="py-op">.</tt><tt class="py-name">split</tt><tt class="py-op">(</tt><tt class="py-string">'/'</tt><tt class="py-op">,</tt> <tt class="py-number">1</tt><tt class="py-op">)</tt><tt class="py-op">[</tt><tt class="py-number">1</tt><tt class="py-op">]</tt><tt class="py-op">.</tt><tt class="py-name">replace</tt><tt class="py-op">(</tt><tt class="py-string">'.'</tt><tt class="py-op">,</tt> <tt class="py-string">''</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
+<a name="L869"></a><tt class="py-lineno"> 869</tt> <tt class="py-line"> </tt>
+<a name="L870"></a><tt class="py-lineno"> 870</tt> <tt class="py-line"> <tt class="py-name">content</tt> <tt class="py-op">=</tt> <tt class="py-name">payload</tt><tt class="py-op">.</tt><tt class="py-name">split</tt><tt class="py-op">(</tt><tt class="py-string">'\r\n\r\n'</tt><tt class="py-op">,</tt> <tt class="py-number">1</tt><tt class="py-op">)</tt><tt class="py-op">[</tt><tt class="py-number">1</tt><tt class="py-op">]</tt> </tt>
+<a name="L871"></a><tt class="py-lineno"> 871</tt> <tt class="py-line"> </tt>
+<a name="L872"></a><tt class="py-lineno"> 872</tt> <tt class="py-line"> <tt class="py-keyword">return</tt> <tt class="py-name">resp</tt><tt class="py-op">,</tt> <tt class="py-name">content</tt> </tt>
+</div><a name="L873"></a><tt class="py-lineno"> 873</tt> <tt class="py-line"> </tt>
+<a name="BatchHttpRequest._new_id"></a><div id="BatchHttpRequest._new_id-def"><a name="L874"></a><tt class="py-lineno"> 874</tt> <a class="py-toggle" href="#" id="BatchHttpRequest._new_id-toggle" onclick="return toggle('BatchHttpRequest._new_id');">-</a><tt class="py-line"> <tt class="py-keyword">def</tt> <a class="py-def-name" href="apiclient.http.BatchHttpRequest-class.html#_new_id">_new_id</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+</div><div id="BatchHttpRequest._new_id-collapsed" style="display:none;" pad="++++" indent="++++++"></div><div id="BatchHttpRequest._new_id-expanded"><a name="L875"></a><tt class="py-lineno"> 875</tt> <tt class="py-line"> <tt class="py-docstring">"""Create a new id.</tt> </tt>
+<a name="L876"></a><tt class="py-lineno"> 876</tt> <tt class="py-line"><tt class="py-docstring"></tt> </tt>
+<a name="L877"></a><tt class="py-lineno"> 877</tt> <tt class="py-line"><tt class="py-docstring"> Auto incrementing number that avoids conflicts with ids already used.</tt> </tt>
+<a name="L878"></a><tt class="py-lineno"> 878</tt> <tt class="py-line"><tt class="py-docstring"></tt> </tt>
+<a name="L879"></a><tt class="py-lineno"> 879</tt> <tt class="py-line"><tt class="py-docstring"> Returns:</tt> </tt>
+<a name="L880"></a><tt class="py-lineno"> 880</tt> <tt class="py-line"><tt class="py-docstring"> string, a new unique id.</tt> </tt>
+<a name="L881"></a><tt class="py-lineno"> 881</tt> <tt class="py-line"><tt class="py-docstring"> """</tt> </tt>
+<a name="L882"></a><tt class="py-lineno"> 882</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">_last_auto_id</tt> <tt class="py-op">+=</tt> <tt class="py-number">1</tt> </tt>
+<a name="L883"></a><tt class="py-lineno"> 883</tt> <tt class="py-line"> <tt class="py-keyword">while</tt> <tt class="py-name">str</tt><tt class="py-op">(</tt><tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">_last_auto_id</tt><tt class="py-op">)</tt> <tt class="py-keyword">in</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">_requests</tt><tt class="py-op">:</tt> </tt>
+<a name="L884"></a><tt class="py-lineno"> 884</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">_last_auto_id</tt> <tt class="py-op">+=</tt> <tt class="py-number">1</tt> </tt>
+<a name="L885"></a><tt class="py-lineno"> 885</tt> <tt class="py-line"> <tt class="py-keyword">return</tt> <tt class="py-name">str</tt><tt class="py-op">(</tt><tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">_last_auto_id</tt><tt class="py-op">)</tt> </tt>
+</div><a name="L886"></a><tt class="py-lineno"> 886</tt> <tt class="py-line"> </tt>
+<a name="BatchHttpRequest.add"></a><div id="BatchHttpRequest.add-def"><a name="L887"></a><tt class="py-lineno"> 887</tt> <a class="py-toggle" href="#" id="BatchHttpRequest.add-toggle" onclick="return toggle('BatchHttpRequest.add');">-</a><tt class="py-line"> <tt class="py-keyword">def</tt> <a class="py-def-name" href="apiclient.http.BatchHttpRequest-class.html#add">add</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">,</tt> <tt class="py-param">request</tt><tt class="py-op">,</tt> <tt class="py-param">callback</tt><tt class="py-op">=</tt><tt class="py-name">None</tt><tt class="py-op">,</tt> <tt class="py-param">request_id</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="BatchHttpRequest.add-collapsed" style="display:none;" pad="++++" indent="++++++"></div><div id="BatchHttpRequest.add-expanded"><a name="L888"></a><tt class="py-lineno"> 888</tt> <tt class="py-line"> <tt class="py-docstring">"""Add a new request.</tt> </tt>
+<a name="L889"></a><tt class="py-lineno"> 889</tt> <tt class="py-line"><tt class="py-docstring"></tt> </tt>
+<a name="L890"></a><tt class="py-lineno"> 890</tt> <tt class="py-line"><tt class="py-docstring"> Every callback added will be paired with a unique id, the request_id. That</tt> </tt>
+<a name="L891"></a><tt class="py-lineno"> 891</tt> <tt class="py-line"><tt class="py-docstring"> unique id will be passed back to the callback when the response comes back</tt> </tt>
+<a name="L892"></a><tt class="py-lineno"> 892</tt> <tt class="py-line"><tt class="py-docstring"> from the server. The default behavior is to have the library generate it's</tt> </tt>
+<a name="L893"></a><tt class="py-lineno"> 893</tt> <tt class="py-line"><tt class="py-docstring"> own unique id. If the caller passes in a request_id then they must ensure</tt> </tt>
+<a name="L894"></a><tt class="py-lineno"> 894</tt> <tt class="py-line"><tt class="py-docstring"> uniqueness for each request_id, and if they are not an exception is</tt> </tt>
+<a name="L895"></a><tt class="py-lineno"> 895</tt> <tt class="py-line"><tt class="py-docstring"> raised. Callers should either supply all request_ids or nevery supply a</tt> </tt>
+<a name="L896"></a><tt class="py-lineno"> 896</tt> <tt class="py-line"><tt class="py-docstring"> request id, to avoid such an error.</tt> </tt>
+<a name="L897"></a><tt class="py-lineno"> 897</tt> <tt class="py-line"><tt class="py-docstring"></tt> </tt>
+<a name="L898"></a><tt class="py-lineno"> 898</tt> <tt class="py-line"><tt class="py-docstring"> Args:</tt> </tt>
+<a name="L899"></a><tt class="py-lineno"> 899</tt> <tt class="py-line"><tt class="py-docstring"> request: HttpRequest, Request to add to the batch.</tt> </tt>
+<a name="L900"></a><tt class="py-lineno"> 900</tt> <tt class="py-line"><tt class="py-docstring"> callback: callable, A callback to be called for this response, of the</tt> </tt>
+<a name="L901"></a><tt class="py-lineno"> 901</tt> <tt class="py-line"><tt class="py-docstring"> form callback(id, response). The first parameter is the request id, and</tt> </tt>
+<a name="L902"></a><tt class="py-lineno"> 902</tt> <tt class="py-line"><tt class="py-docstring"> the second is the deserialized response object.</tt> </tt>
+<a name="L903"></a><tt class="py-lineno"> 903</tt> <tt class="py-line"><tt class="py-docstring"> request_id: string, A unique id for the request. The id will be passed to</tt> </tt>
+<a name="L904"></a><tt class="py-lineno"> 904</tt> <tt class="py-line"><tt class="py-docstring"> the callback with the response.</tt> </tt>
+<a name="L905"></a><tt class="py-lineno"> 905</tt> <tt class="py-line"><tt class="py-docstring"></tt> </tt>
+<a name="L906"></a><tt class="py-lineno"> 906</tt> <tt class="py-line"><tt class="py-docstring"> Returns:</tt> </tt>
+<a name="L907"></a><tt class="py-lineno"> 907</tt> <tt class="py-line"><tt class="py-docstring"> None</tt> </tt>
+<a name="L908"></a><tt class="py-lineno"> 908</tt> <tt class="py-line"><tt class="py-docstring"></tt> </tt>
+<a name="L909"></a><tt class="py-lineno"> 909</tt> <tt class="py-line"><tt class="py-docstring"> Raises:</tt> </tt>
+<a name="L910"></a><tt class="py-lineno"> 910</tt> <tt class="py-line"><tt class="py-docstring"> BatchError if a resumable request is added to a batch.</tt> </tt>
+<a name="L911"></a><tt class="py-lineno"> 911</tt> <tt class="py-line"><tt class="py-docstring"> KeyError is the request_id is not unique.</tt> </tt>
+<a name="L912"></a><tt class="py-lineno"> 912</tt> <tt class="py-line"><tt class="py-docstring"> """</tt> </tt>
+<a name="L913"></a><tt class="py-lineno"> 913</tt> <tt class="py-line"> <tt class="py-keyword">if</tt> <tt class="py-name">request_id</tt> <tt class="py-keyword">is</tt> <tt class="py-name">None</tt><tt class="py-op">:</tt> </tt>
+<a name="L914"></a><tt class="py-lineno"> 914</tt> <tt class="py-line"> <tt class="py-name">request_id</tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-143" class="py-name" targets="Method apiclient.http.BatchHttpRequest._new_id()=apiclient.http.BatchHttpRequest-class.html#_new_id"><a title="apiclient.http.BatchHttpRequest._new_id" class="py-name" href="#" onclick="return doclink('link-143', '_new_id', 'link-143');">_new_id</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
+<a name="L915"></a><tt class="py-lineno"> 915</tt> <tt class="py-line"> <tt class="py-keyword">if</tt> <tt id="link-144" 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-144', 'request', 'link-56');">request</a></tt><tt class="py-op">.</tt><tt id="link-145" class="py-name"><a title="apiclient.http.MediaFileUpload.resumable
+apiclient.http.MediaInMemoryUpload.resumable
+apiclient.http.MediaIoBaseUpload.resumable
+apiclient.http.MediaUpload.resumable" class="py-name" href="#" onclick="return doclink('link-145', 'resumable', 'link-28');">resumable</a></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="L916"></a><tt class="py-lineno"> 916</tt> <tt class="py-line"> <tt class="py-keyword">raise</tt> <tt id="link-146" class="py-name"><a title="apiclient.errors.BatchError" class="py-name" href="#" onclick="return doclink('link-146', 'BatchError', 'link-2');">BatchError</a></tt><tt class="py-op">(</tt><tt class="py-string">"Resumable requests cannot be used in a batch request."</tt><tt class="py-op">)</tt> </tt>
+<a name="L917"></a><tt class="py-lineno"> 917</tt> <tt class="py-line"> <tt class="py-keyword">if</tt> <tt class="py-name">request_id</tt> <tt class="py-keyword">in</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">_requests</tt><tt class="py-op">:</tt> </tt>
+<a name="L918"></a><tt class="py-lineno"> 918</tt> <tt class="py-line"> <tt class="py-keyword">raise</tt> <tt class="py-name">KeyError</tt><tt class="py-op">(</tt><tt class="py-string">"A request with this ID already exists: %s"</tt> <tt class="py-op">%</tt> <tt class="py-name">request_id</tt><tt class="py-op">)</tt> </tt>
+<a name="L919"></a><tt class="py-lineno"> 919</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">_requests</tt><tt class="py-op">[</tt><tt class="py-name">request_id</tt><tt class="py-op">]</tt> <tt class="py-op">=</tt> <tt id="link-147" 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-147', 'request', 'link-56');">request</a></tt> </tt>
+<a name="L920"></a><tt class="py-lineno"> 920</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">_callbacks</tt><tt class="py-op">[</tt><tt class="py-name">request_id</tt><tt class="py-op">]</tt> <tt class="py-op">=</tt> <tt class="py-name">callback</tt> </tt>
+<a name="L921"></a><tt class="py-lineno"> 921</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">_order</tt><tt class="py-op">.</tt><tt class="py-name">append</tt><tt class="py-op">(</tt><tt class="py-name">request_id</tt><tt class="py-op">)</tt> </tt>
+</div><a name="L922"></a><tt class="py-lineno"> 922</tt> <tt class="py-line"> </tt>
+<a name="BatchHttpRequest._execute"></a><div id="BatchHttpRequest._execute-def"><a name="L923"></a><tt class="py-lineno"> 923</tt> <a class="py-toggle" href="#" id="BatchHttpRequest._execute-toggle" onclick="return toggle('BatchHttpRequest._execute');">-</a><tt class="py-line"> <tt class="py-keyword">def</tt> <a class="py-def-name" href="apiclient.http.BatchHttpRequest-class.html#_execute">_execute</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">,</tt> <tt class="py-param">http</tt><tt class="py-op">,</tt> <tt class="py-param">order</tt><tt class="py-op">,</tt> <tt class="py-param">requests</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+</div><div id="BatchHttpRequest._execute-collapsed" style="display:none;" pad="++++" indent="++++++"></div><div id="BatchHttpRequest._execute-expanded"><a name="L924"></a><tt class="py-lineno"> 924</tt> <tt class="py-line"> <tt class="py-docstring">"""Serialize batch request, send to server, process response.</tt> </tt>
+<a name="L925"></a><tt class="py-lineno"> 925</tt> <tt class="py-line"><tt class="py-docstring"></tt> </tt>
+<a name="L926"></a><tt class="py-lineno"> 926</tt> <tt class="py-line"><tt class="py-docstring"> Args:</tt> </tt>
+<a name="L927"></a><tt class="py-lineno"> 927</tt> <tt class="py-line"><tt class="py-docstring"> http: httplib2.Http, an http object to be used to make the request with.</tt> </tt>
+<a name="L928"></a><tt class="py-lineno"> 928</tt> <tt class="py-line"><tt class="py-docstring"> order: list, list of request ids in the order they were added to the</tt> </tt>
+<a name="L929"></a><tt class="py-lineno"> 929</tt> <tt class="py-line"><tt class="py-docstring"> batch.</tt> </tt>
+<a name="L930"></a><tt class="py-lineno"> 930</tt> <tt class="py-line"><tt class="py-docstring"> request: list, list of request objects to send.</tt> </tt>
+<a name="L931"></a><tt class="py-lineno"> 931</tt> <tt class="py-line"><tt class="py-docstring"></tt> </tt>
+<a name="L932"></a><tt class="py-lineno"> 932</tt> <tt class="py-line"><tt class="py-docstring"> Raises:</tt> </tt>
+<a name="L933"></a><tt class="py-lineno"> 933</tt> <tt class="py-line"><tt class="py-docstring"> httplib2.Error if a transport error has occured.</tt> </tt>
+<a name="L934"></a><tt class="py-lineno"> 934</tt> <tt class="py-line"><tt class="py-docstring"> apiclient.errors.BatchError if the response is the wrong format.</tt> </tt>
+<a name="L935"></a><tt class="py-lineno"> 935</tt> <tt class="py-line"><tt class="py-docstring"> """</tt> </tt>
+<a name="L936"></a><tt class="py-lineno"> 936</tt> <tt class="py-line"> <tt class="py-name">message</tt> <tt class="py-op">=</tt> <tt class="py-name">MIMEMultipart</tt><tt class="py-op">(</tt><tt class="py-string">'mixed'</tt><tt class="py-op">)</tt> </tt>
+<a name="L937"></a><tt class="py-lineno"> 937</tt> <tt class="py-line"> <tt class="py-comment"># Message should not write out it's own headers.</tt> </tt>
+<a name="L938"></a><tt class="py-lineno"> 938</tt> <tt class="py-line"> <tt class="py-name">setattr</tt><tt class="py-op">(</tt><tt class="py-name">message</tt><tt class="py-op">,</tt> <tt class="py-string">'_write_headers'</tt><tt class="py-op">,</tt> <tt class="py-keyword">lambda</tt> <tt class="py-name">self</tt><tt class="py-op">:</tt> <tt class="py-name">None</tt><tt class="py-op">)</tt> </tt>
+<a name="L939"></a><tt class="py-lineno"> 939</tt> <tt class="py-line"> </tt>
+<a name="L940"></a><tt class="py-lineno"> 940</tt> <tt class="py-line"> <tt class="py-comment"># Add all the individual requests.</tt> </tt>
+<a name="L941"></a><tt class="py-lineno"> 941</tt> <tt class="py-line"> <tt class="py-keyword">for</tt> <tt class="py-name">request_id</tt> <tt class="py-keyword">in</tt> <tt class="py-name">order</tt><tt class="py-op">:</tt> </tt>
+<a name="L942"></a><tt class="py-lineno"> 942</tt> <tt class="py-line"> <tt id="link-148" 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-148', 'request', 'link-56');">request</a></tt> <tt class="py-op">=</tt> <tt class="py-name">requests</tt><tt class="py-op">[</tt><tt class="py-name">request_id</tt><tt class="py-op">]</tt> </tt>
+<a name="L943"></a><tt class="py-lineno"> 943</tt> <tt class="py-line"> </tt>
+<a name="L944"></a><tt class="py-lineno"> 944</tt> <tt class="py-line"> <tt class="py-name">msg</tt> <tt class="py-op">=</tt> <tt class="py-name">MIMENonMultipart</tt><tt class="py-op">(</tt><tt class="py-string">'application'</tt><tt class="py-op">,</tt> <tt class="py-string">'http'</tt><tt class="py-op">)</tt> </tt>
+<a name="L945"></a><tt class="py-lineno"> 945</tt> <tt class="py-line"> <tt class="py-name">msg</tt><tt class="py-op">[</tt><tt class="py-string">'Content-Transfer-Encoding'</tt><tt class="py-op">]</tt> <tt class="py-op">=</tt> <tt class="py-string">'binary'</tt> </tt>
+<a name="L946"></a><tt class="py-lineno"> 946</tt> <tt class="py-line"> <tt class="py-name">msg</tt><tt class="py-op">[</tt><tt class="py-string">'Content-ID'</tt><tt class="py-op">]</tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-149" class="py-name" targets="Method apiclient.http.BatchHttpRequest._id_to_header()=apiclient.http.BatchHttpRequest-class.html#_id_to_header"><a title="apiclient.http.BatchHttpRequest._id_to_header" class="py-name" href="#" onclick="return doclink('link-149', '_id_to_header', 'link-149');">_id_to_header</a></tt><tt class="py-op">(</tt><tt class="py-name">request_id</tt><tt class="py-op">)</tt> </tt>
+<a name="L947"></a><tt class="py-lineno"> 947</tt> <tt class="py-line"> </tt>
+<a name="L948"></a><tt class="py-lineno"> 948</tt> <tt class="py-line"> <tt class="py-name">body</tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-150" class="py-name" targets="Method apiclient.http.BatchHttpRequest._serialize_request()=apiclient.http.BatchHttpRequest-class.html#_serialize_request"><a title="apiclient.http.BatchHttpRequest._serialize_request" class="py-name" href="#" onclick="return doclink('link-150', '_serialize_request', 'link-150');">_serialize_request</a></tt><tt class="py-op">(</tt><tt id="link-151" 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-56');">request</a></tt><tt class="py-op">)</tt> </tt>
+<a name="L949"></a><tt class="py-lineno"> 949</tt> <tt class="py-line"> <tt class="py-name">msg</tt><tt class="py-op">.</tt><tt class="py-name">set_payload</tt><tt class="py-op">(</tt><tt class="py-name">body</tt><tt class="py-op">)</tt> </tt>
+<a name="L950"></a><tt class="py-lineno"> 950</tt> <tt class="py-line"> <tt class="py-name">message</tt><tt class="py-op">.</tt><tt class="py-name">attach</tt><tt class="py-op">(</tt><tt class="py-name">msg</tt><tt class="py-op">)</tt> </tt>
+<a name="L951"></a><tt class="py-lineno"> 951</tt> <tt class="py-line"> </tt>
+<a name="L952"></a><tt class="py-lineno"> 952</tt> <tt class="py-line"> <tt class="py-name">body</tt> <tt class="py-op">=</tt> <tt class="py-name">message</tt><tt class="py-op">.</tt><tt class="py-name">as_string</tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
+<a name="L953"></a><tt class="py-lineno"> 953</tt> <tt class="py-line"> </tt>
+<a name="L954"></a><tt class="py-lineno"> 954</tt> <tt class="py-line"> <tt class="py-name">headers</tt> <tt class="py-op">=</tt> <tt class="py-op">{</tt><tt class="py-op">}</tt> </tt>
+<a name="L955"></a><tt class="py-lineno"> 955</tt> <tt class="py-line"> <tt class="py-name">headers</tt><tt class="py-op">[</tt><tt class="py-string">'content-type'</tt><tt class="py-op">]</tt> <tt class="py-op">=</tt> <tt class="py-op">(</tt><tt class="py-string">'multipart/mixed; '</tt> </tt>
+<a name="L956"></a><tt class="py-lineno"> 956</tt> <tt class="py-line"> <tt class="py-string">'boundary="%s"'</tt><tt class="py-op">)</tt> <tt class="py-op">%</tt> <tt class="py-name">message</tt><tt class="py-op">.</tt><tt class="py-name">get_boundary</tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
+<a name="L957"></a><tt class="py-lineno"> 957</tt> <tt class="py-line"> </tt>
+<a name="L958"></a><tt class="py-lineno"> 958</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-152" class="py-name"><a title="apiclient.http
+oauth2client.appengine.OAuth2Decorator.http" class="py-name" href="#" onclick="return doclink('link-152', 'http', 'link-42');">http</a></tt><tt class="py-op">.</tt><tt id="link-153" 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-153', 'request', 'link-56');">request</a></tt><tt class="py-op">(</tt><tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">_batch_uri</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="L959"></a><tt class="py-lineno"> 959</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="L960"></a><tt class="py-lineno"> 960</tt> <tt class="py-line"> </tt>
+<a name="L961"></a><tt class="py-lineno"> 961</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">300</tt><tt class="py-op">:</tt> </tt>
+<a name="L962"></a><tt class="py-lineno"> 962</tt> <tt class="py-line"> <tt class="py-keyword">raise</tt> <tt id="link-154" class="py-name"><a title="apiclient.errors.HttpError" class="py-name" href="#" onclick="return doclink('link-154', 'HttpError', 'link-4');">HttpError</a></tt><tt class="py-op">(</tt><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">self</tt><tt class="py-op">.</tt><tt class="py-name">_batch_uri</tt><tt class="py-op">)</tt> </tt>
+<a name="L963"></a><tt class="py-lineno"> 963</tt> <tt class="py-line"> </tt>
+<a name="L964"></a><tt class="py-lineno"> 964</tt> <tt class="py-line"> <tt class="py-comment"># Now break out the individual responses and store each one.</tt> </tt>
+<a name="L965"></a><tt class="py-lineno"> 965</tt> <tt class="py-line"> <tt class="py-name">boundary</tt><tt class="py-op">,</tt> <tt class="py-name">_</tt> <tt class="py-op">=</tt> <tt class="py-name">content</tt><tt class="py-op">.</tt><tt class="py-name">split</tt><tt class="py-op">(</tt><tt class="py-name">None</tt><tt class="py-op">,</tt> <tt class="py-number">1</tt><tt class="py-op">)</tt> </tt>
+<a name="L966"></a><tt class="py-lineno"> 966</tt> <tt class="py-line"> </tt>
+<a name="L967"></a><tt class="py-lineno"> 967</tt> <tt class="py-line"> <tt class="py-comment"># Prepend with a content-type header so FeedParser can handle it.</tt> </tt>
+<a name="L968"></a><tt class="py-lineno"> 968</tt> <tt class="py-line"> <tt class="py-name">header</tt> <tt class="py-op">=</tt> <tt class="py-string">'content-type: %s\r\n\r\n'</tt> <tt class="py-op">%</tt> <tt class="py-name">resp</tt><tt class="py-op">[</tt><tt class="py-string">'content-type'</tt><tt class="py-op">]</tt> </tt>
+<a name="L969"></a><tt class="py-lineno"> 969</tt> <tt class="py-line"> <tt class="py-name">for_parser</tt> <tt class="py-op">=</tt> <tt class="py-name">header</tt> <tt class="py-op">+</tt> <tt class="py-name">content</tt> </tt>
+<a name="L970"></a><tt class="py-lineno"> 970</tt> <tt class="py-line"> </tt>
+<a name="L971"></a><tt class="py-lineno"> 971</tt> <tt class="py-line"> <tt class="py-name">parser</tt> <tt class="py-op">=</tt> <tt class="py-name">FeedParser</tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
+<a name="L972"></a><tt class="py-lineno"> 972</tt> <tt class="py-line"> <tt class="py-name">parser</tt><tt class="py-op">.</tt><tt class="py-name">feed</tt><tt class="py-op">(</tt><tt class="py-name">for_parser</tt><tt class="py-op">)</tt> </tt>
+<a name="L973"></a><tt class="py-lineno"> 973</tt> <tt class="py-line"> <tt class="py-name">mime_response</tt> <tt class="py-op">=</tt> <tt class="py-name">parser</tt><tt class="py-op">.</tt><tt class="py-name">close</tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
+<a name="L974"></a><tt class="py-lineno"> 974</tt> <tt class="py-line"> </tt>
+<a name="L975"></a><tt class="py-lineno"> 975</tt> <tt class="py-line"> <tt class="py-keyword">if</tt> <tt class="py-keyword">not</tt> <tt class="py-name">mime_response</tt><tt class="py-op">.</tt><tt class="py-name">is_multipart</tt><tt class="py-op">(</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+<a name="L976"></a><tt class="py-lineno"> 976</tt> <tt class="py-line"> <tt class="py-keyword">raise</tt> <tt id="link-155" class="py-name"><a title="apiclient.errors.BatchError" class="py-name" href="#" onclick="return doclink('link-155', 'BatchError', 'link-2');">BatchError</a></tt><tt class="py-op">(</tt><tt class="py-string">"Response not in multipart/mixed format."</tt><tt class="py-op">,</tt> <tt class="py-name">resp</tt><tt class="py-op">,</tt> </tt>
+<a name="L977"></a><tt class="py-lineno"> 977</tt> <tt class="py-line"> <tt class="py-name">content</tt><tt class="py-op">)</tt> </tt>
+<a name="L978"></a><tt class="py-lineno"> 978</tt> <tt class="py-line"> </tt>
+<a name="L979"></a><tt class="py-lineno"> 979</tt> <tt class="py-line"> <tt class="py-keyword">for</tt> <tt class="py-name">part</tt> <tt class="py-keyword">in</tt> <tt class="py-name">mime_response</tt><tt class="py-op">.</tt><tt class="py-name">get_payload</tt><tt class="py-op">(</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+<a name="L980"></a><tt class="py-lineno"> 980</tt> <tt class="py-line"> <tt class="py-name">request_id</tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-156" class="py-name" targets="Method apiclient.http.BatchHttpRequest._header_to_id()=apiclient.http.BatchHttpRequest-class.html#_header_to_id"><a title="apiclient.http.BatchHttpRequest._header_to_id" class="py-name" href="#" onclick="return doclink('link-156', '_header_to_id', 'link-156');">_header_to_id</a></tt><tt class="py-op">(</tt><tt class="py-name">part</tt><tt class="py-op">[</tt><tt class="py-string">'Content-ID'</tt><tt class="py-op">]</tt><tt class="py-op">)</tt> </tt>
+<a name="L981"></a><tt class="py-lineno"> 981</tt> <tt class="py-line"> <tt class="py-name">headers</tt><tt class="py-op">,</tt> <tt class="py-name">content</tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-157" class="py-name" targets="Method apiclient.http.BatchHttpRequest._deserialize_response()=apiclient.http.BatchHttpRequest-class.html#_deserialize_response"><a title="apiclient.http.BatchHttpRequest._deserialize_response" class="py-name" href="#" onclick="return doclink('link-157', '_deserialize_response', 'link-157');">_deserialize_response</a></tt><tt class="py-op">(</tt><tt class="py-name">part</tt><tt class="py-op">.</tt><tt class="py-name">get_payload</tt><tt class="py-op">(</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
+<a name="L982"></a><tt class="py-lineno"> 982</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">_responses</tt><tt class="py-op">[</tt><tt class="py-name">request_id</tt><tt class="py-op">]</tt> <tt class="py-op">=</tt> <tt class="py-op">(</tt><tt class="py-name">headers</tt><tt class="py-op">,</tt> <tt class="py-name">content</tt><tt class="py-op">)</tt> </tt>
+</div><a name="L983"></a><tt class="py-lineno"> 983</tt> <tt class="py-line"> </tt>
+<a name="BatchHttpRequest.execute"></a><div id="BatchHttpRequest.execute-def"><a name="L984"></a><tt class="py-lineno"> 984</tt> <a class="py-toggle" href="#" id="BatchHttpRequest.execute-toggle" onclick="return toggle('BatchHttpRequest.execute');">-</a><tt class="py-line"> <tt class="py-keyword">def</tt> <a class="py-def-name" href="apiclient.http.BatchHttpRequest-class.html#execute">execute</a><tt class="py-op">(</tt><tt class="py-param">self</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="BatchHttpRequest.execute-collapsed" style="display:none;" pad="++++" indent="++++++"></div><div id="BatchHttpRequest.execute-expanded"><a name="L985"></a><tt class="py-lineno"> 985</tt> <tt class="py-line"> <tt class="py-docstring">"""Execute all the requests as a single batched HTTP request.</tt> </tt>
+<a name="L986"></a><tt class="py-lineno"> 986</tt> <tt class="py-line"><tt class="py-docstring"></tt> </tt>
+<a name="L987"></a><tt class="py-lineno"> 987</tt> <tt class="py-line"><tt class="py-docstring"> Args:</tt> </tt>
+<a name="L988"></a><tt class="py-lineno"> 988</tt> <tt class="py-line"><tt class="py-docstring"> http: httplib2.Http, an http object to be used in place of the one the</tt> </tt>
+<a name="L989"></a><tt class="py-lineno"> 989</tt> <tt class="py-line"><tt class="py-docstring"> HttpRequest request object was constructed with. If one isn't supplied</tt> </tt>
+<a name="L990"></a><tt class="py-lineno"> 990</tt> <tt class="py-line"><tt class="py-docstring"> then use a http object from the requests in this batch.</tt> </tt>
+<a name="L991"></a><tt class="py-lineno"> 991</tt> <tt class="py-line"><tt class="py-docstring"></tt> </tt>
+<a name="L992"></a><tt class="py-lineno"> 992</tt> <tt class="py-line"><tt class="py-docstring"> Returns:</tt> </tt>
+<a name="L993"></a><tt class="py-lineno"> 993</tt> <tt class="py-line"><tt class="py-docstring"> None</tt> </tt>
+<a name="L994"></a><tt class="py-lineno"> 994</tt> <tt class="py-line"><tt class="py-docstring"></tt> </tt>
+<a name="L995"></a><tt class="py-lineno"> 995</tt> <tt class="py-line"><tt class="py-docstring"> Raises:</tt> </tt>
+<a name="L996"></a><tt class="py-lineno"> 996</tt> <tt class="py-line"><tt class="py-docstring"> httplib2.Error if a transport error has occured.</tt> </tt>
+<a name="L997"></a><tt class="py-lineno"> 997</tt> <tt class="py-line"><tt class="py-docstring"> apiclient.errors.BatchError if the response is the wrong format.</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>
+<a name="L1000"></a><tt class="py-lineno">1000</tt> <tt class="py-line"> <tt class="py-comment"># If http is not supplied use the first valid one given in the requests.</tt> </tt>
+<a name="L1001"></a><tt class="py-lineno">1001</tt> <tt class="py-line"> <tt class="py-keyword">if</tt> <tt id="link-158" class="py-name"><a title="apiclient.http
+oauth2client.appengine.OAuth2Decorator.http" class="py-name" href="#" onclick="return doclink('link-158', 'http', 'link-42');">http</a></tt> <tt class="py-keyword">is</tt> <tt class="py-name">None</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">for</tt> <tt class="py-name">request_id</tt> <tt class="py-keyword">in</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">_order</tt><tt class="py-op">:</tt> </tt>
+<a name="L1003"></a><tt class="py-lineno">1003</tt> <tt class="py-line"> <tt id="link-159" 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-159', 'request', 'link-56');">request</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">_requests</tt><tt class="py-op">[</tt><tt class="py-name">request_id</tt><tt class="py-op">]</tt> </tt>
+<a name="L1004"></a><tt class="py-lineno">1004</tt> <tt class="py-line"> <tt class="py-keyword">if</tt> <tt id="link-160" 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-160', 'request', 'link-56');">request</a></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="L1005"></a><tt class="py-lineno">1005</tt> <tt class="py-line"> <tt id="link-161" class="py-name"><a title="apiclient.http
+oauth2client.appengine.OAuth2Decorator.http" class="py-name" href="#" onclick="return doclink('link-161', 'http', 'link-42');">http</a></tt> <tt class="py-op">=</tt> <tt id="link-162" 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-162', 'request', 'link-56');">request</a></tt><tt class="py-op">.</tt><tt id="link-163" class="py-name"><a title="apiclient.http
+oauth2client.appengine.OAuth2Decorator.http" class="py-name" href="#" onclick="return doclink('link-163', 'http', 'link-42');">http</a></tt> </tt>
+<a name="L1006"></a><tt class="py-lineno">1006</tt> <tt class="py-line"> <tt class="py-keyword">break</tt> </tt>
+<a name="L1007"></a><tt class="py-lineno">1007</tt> <tt class="py-line"> </tt>
+<a name="L1008"></a><tt class="py-lineno">1008</tt> <tt class="py-line"> <tt class="py-keyword">if</tt> <tt id="link-164" class="py-name"><a title="apiclient.http
+oauth2client.appengine.OAuth2Decorator.http" class="py-name" href="#" onclick="return doclink('link-164', 'http', 'link-42');">http</a></tt> <tt class="py-keyword">is</tt> <tt class="py-name">None</tt><tt class="py-op">:</tt> </tt>
+<a name="L1009"></a><tt class="py-lineno">1009</tt> <tt class="py-line"> <tt class="py-keyword">raise</tt> <tt class="py-name">ValueError</tt><tt class="py-op">(</tt><tt class="py-string">"Missing a valid http object."</tt><tt class="py-op">)</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-name">self</tt><tt class="py-op">.</tt><tt id="link-165" class="py-name" targets="Method apiclient.http.BatchHttpRequest._execute()=apiclient.http.BatchHttpRequest-class.html#_execute"><a title="apiclient.http.BatchHttpRequest._execute" class="py-name" href="#" onclick="return doclink('link-165', '_execute', 'link-165');">_execute</a></tt><tt class="py-op">(</tt><tt id="link-166" class="py-name"><a title="apiclient.http
+oauth2client.appengine.OAuth2Decorator.http" class="py-name" href="#" onclick="return doclink('link-166', 'http', 'link-42');">http</a></tt><tt class="py-op">,</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">_order</tt><tt class="py-op">,</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">_requests</tt><tt class="py-op">)</tt> </tt>
+<a name="L1012"></a><tt class="py-lineno">1012</tt> <tt class="py-line"> </tt>
+<a name="L1013"></a><tt class="py-lineno">1013</tt> <tt class="py-line"> <tt class="py-comment"># Loop over all the requests and check for 401s. For each 401 request the</tt> </tt>
+<a name="L1014"></a><tt class="py-lineno">1014</tt> <tt class="py-line"> <tt class="py-comment"># credentials should be refreshed and then sent again in a separate batch.</tt> </tt>
+<a name="L1015"></a><tt class="py-lineno">1015</tt> <tt class="py-line"> <tt class="py-name">redo_requests</tt> <tt class="py-op">=</tt> <tt class="py-op">{</tt><tt class="py-op">}</tt> </tt>
+<a name="L1016"></a><tt class="py-lineno">1016</tt> <tt class="py-line"> <tt class="py-name">redo_order</tt> <tt class="py-op">=</tt> <tt class="py-op">[</tt><tt class="py-op">]</tt> </tt>
+<a name="L1017"></a><tt class="py-lineno">1017</tt> <tt class="py-line"> </tt>
+<a name="L1018"></a><tt class="py-lineno">1018</tt> <tt class="py-line"> <tt class="py-keyword">for</tt> <tt class="py-name">request_id</tt> <tt class="py-keyword">in</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">_order</tt><tt class="py-op">:</tt> </tt>
+<a name="L1019"></a><tt class="py-lineno">1019</tt> <tt class="py-line"> <tt class="py-name">headers</tt><tt class="py-op">,</tt> <tt class="py-name">content</tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">_responses</tt><tt class="py-op">[</tt><tt class="py-name">request_id</tt><tt class="py-op">]</tt> </tt>
+<a name="L1020"></a><tt class="py-lineno">1020</tt> <tt class="py-line"> <tt class="py-keyword">if</tt> <tt class="py-name">headers</tt><tt class="py-op">[</tt><tt class="py-string">'status'</tt><tt class="py-op">]</tt> <tt class="py-op">==</tt> <tt class="py-string">'401'</tt><tt class="py-op">:</tt> </tt>
+<a name="L1021"></a><tt class="py-lineno">1021</tt> <tt class="py-line"> <tt class="py-name">redo_order</tt><tt class="py-op">.</tt><tt class="py-name">append</tt><tt class="py-op">(</tt><tt class="py-name">request_id</tt><tt class="py-op">)</tt> </tt>
+<a name="L1022"></a><tt class="py-lineno">1022</tt> <tt class="py-line"> <tt id="link-167" 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-167', 'request', 'link-56');">request</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">_requests</tt><tt class="py-op">[</tt><tt class="py-name">request_id</tt><tt class="py-op">]</tt> </tt>
+<a name="L1023"></a><tt class="py-lineno">1023</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-168" class="py-name" targets="Method apiclient.http.BatchHttpRequest._refresh_and_apply_credentials()=apiclient.http.BatchHttpRequest-class.html#_refresh_and_apply_credentials"><a title="apiclient.http.BatchHttpRequest._refresh_and_apply_credentials" class="py-name" href="#" onclick="return doclink('link-168', '_refresh_and_apply_credentials', 'link-168');">_refresh_and_apply_credentials</a></tt><tt class="py-op">(</tt><tt id="link-169" 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-169', 'request', 'link-56');">request</a></tt><tt class="py-op">,</tt> <tt id="link-170" class="py-name"><a title="apiclient.http
+oauth2client.appengine.OAuth2Decorator.http" class="py-name" href="#" onclick="return doclink('link-170', 'http', 'link-42');">http</a></tt><tt class="py-op">)</tt> </tt>
+<a name="L1024"></a><tt class="py-lineno">1024</tt> <tt class="py-line"> <tt class="py-name">redo_requests</tt><tt class="py-op">[</tt><tt class="py-name">request_id</tt><tt class="py-op">]</tt> <tt class="py-op">=</tt> <tt id="link-171" 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-171', 'request', 'link-56');">request</a></tt> </tt>
+<a name="L1025"></a><tt class="py-lineno">1025</tt> <tt class="py-line"> </tt>
+<a name="L1026"></a><tt class="py-lineno">1026</tt> <tt class="py-line"> <tt class="py-keyword">if</tt> <tt class="py-name">redo_requests</tt><tt class="py-op">:</tt> </tt>
+<a name="L1027"></a><tt class="py-lineno">1027</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-172" class="py-name"><a title="apiclient.http.BatchHttpRequest._execute" class="py-name" href="#" onclick="return doclink('link-172', '_execute', 'link-165');">_execute</a></tt><tt class="py-op">(</tt><tt id="link-173" class="py-name"><a title="apiclient.http
+oauth2client.appengine.OAuth2Decorator.http" class="py-name" href="#" onclick="return doclink('link-173', 'http', 'link-42');">http</a></tt><tt class="py-op">,</tt> <tt class="py-name">redo_order</tt><tt class="py-op">,</tt> <tt class="py-name">redo_requests</tt><tt class="py-op">)</tt> </tt>
+<a name="L1028"></a><tt class="py-lineno">1028</tt> <tt class="py-line"> </tt>
+<a name="L1029"></a><tt class="py-lineno">1029</tt> <tt class="py-line"> <tt class="py-comment"># Now process all callbacks that are erroring, and raise an exception for</tt> </tt>
+<a name="L1030"></a><tt class="py-lineno">1030</tt> <tt class="py-line"> <tt class="py-comment"># ones that return a non-2xx response? Or add extra parameter to callback</tt> </tt>
+<a name="L1031"></a><tt class="py-lineno">1031</tt> <tt class="py-line"> <tt class="py-comment"># that contains an HttpError?</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">for</tt> <tt class="py-name">request_id</tt> <tt class="py-keyword">in</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">_order</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">headers</tt><tt class="py-op">,</tt> <tt class="py-name">content</tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">_responses</tt><tt class="py-op">[</tt><tt class="py-name">request_id</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 id="link-174" 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-174', 'request', 'link-56');">request</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">_requests</tt><tt class="py-op">[</tt><tt class="py-name">request_id</tt><tt class="py-op">]</tt> </tt>
+<a name="L1037"></a><tt class="py-lineno">1037</tt> <tt class="py-line"> <tt class="py-name">callback</tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">_callbacks</tt><tt class="py-op">[</tt><tt class="py-name">request_id</tt><tt class="py-op">]</tt> </tt>
+<a name="L1038"></a><tt class="py-lineno">1038</tt> <tt class="py-line"> </tt>
+<a name="L1039"></a><tt class="py-lineno">1039</tt> <tt class="py-line"> <tt id="link-175" class="py-name" targets="Method apiclient.model.BaseModel.response()=apiclient.model.BaseModel-class.html#response,Method apiclient.model.Model.response()=apiclient.model.Model-class.html#response"><a title="apiclient.model.BaseModel.response
+apiclient.model.Model.response" class="py-name" href="#" onclick="return doclink('link-175', 'response', 'link-175');">response</a></tt> <tt class="py-op">=</tt> <tt class="py-name">None</tt> </tt>
+<a name="L1040"></a><tt class="py-lineno">1040</tt> <tt class="py-line"> <tt class="py-name">exception</tt> <tt class="py-op">=</tt> <tt class="py-name">None</tt> </tt>
+<a name="L1041"></a><tt class="py-lineno">1041</tt> <tt class="py-line"> <tt class="py-keyword">try</tt><tt class="py-op">:</tt> </tt>
+<a name="L1042"></a><tt class="py-lineno">1042</tt> <tt class="py-line"> <tt class="py-name">r</tt> <tt class="py-op">=</tt> <tt class="py-name">httplib2</tt><tt class="py-op">.</tt><tt class="py-name">Response</tt><tt class="py-op">(</tt><tt class="py-name">headers</tt><tt class="py-op">)</tt> </tt>
+<a name="L1043"></a><tt class="py-lineno">1043</tt> <tt class="py-line"> <tt id="link-176" class="py-name"><a title="apiclient.model.BaseModel.response
+apiclient.model.Model.response" class="py-name" href="#" onclick="return doclink('link-176', 'response', 'link-175');">response</a></tt> <tt class="py-op">=</tt> <tt id="link-177" 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-177', 'request', 'link-56');">request</a></tt><tt class="py-op">.</tt><tt class="py-name">postproc</tt><tt class="py-op">(</tt><tt class="py-name">r</tt><tt class="py-op">,</tt> <tt class="py-name">content</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">except</tt> <tt id="link-178" class="py-name"><a title="apiclient.errors.HttpError" class="py-name" href="#" onclick="return doclink('link-178', 'HttpError', 'link-4');">HttpError</a></tt><tt class="py-op">,</tt> <tt class="py-name">e</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">exception</tt> <tt class="py-op">=</tt> <tt class="py-name">e</tt> </tt>
+<a name="L1046"></a><tt class="py-lineno">1046</tt> <tt class="py-line"> </tt>
+<a name="L1047"></a><tt class="py-lineno">1047</tt> <tt class="py-line"> <tt class="py-keyword">if</tt> <tt class="py-name">callback</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="L1048"></a><tt class="py-lineno">1048</tt> <tt class="py-line"> <tt class="py-name">callback</tt><tt class="py-op">(</tt><tt class="py-name">request_id</tt><tt class="py-op">,</tt> <tt id="link-179" class="py-name"><a title="apiclient.model.BaseModel.response
+apiclient.model.Model.response" class="py-name" href="#" onclick="return doclink('link-179', 'response', 'link-175');">response</a></tt><tt class="py-op">,</tt> <tt class="py-name">exception</tt><tt class="py-op">)</tt> </tt>
+<a name="L1049"></a><tt class="py-lineno">1049</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">_callback</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="L1050"></a><tt class="py-lineno">1050</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">_callback</tt><tt class="py-op">(</tt><tt class="py-name">request_id</tt><tt class="py-op">,</tt> <tt id="link-180" class="py-name"><a title="apiclient.model.BaseModel.response
+apiclient.model.Model.response" class="py-name" href="#" onclick="return doclink('link-180', 'response', 'link-175');">response</a></tt><tt class="py-op">,</tt> <tt class="py-name">exception</tt><tt class="py-op">)</tt> </tt>
+</div></div><a name="L1051"></a><tt class="py-lineno">1051</tt> <tt class="py-line"> </tt>
+<a name="HttpRequestMock"></a><div id="HttpRequestMock-def"><a name="L1052"></a><tt class="py-lineno">1052</tt> <tt class="py-line"> </tt>
+<a name="L1053"></a><tt class="py-lineno">1053</tt> <a class="py-toggle" href="#" id="HttpRequestMock-toggle" onclick="return toggle('HttpRequestMock');">-</a><tt class="py-line"><tt class="py-keyword">class</tt> <a class="py-def-name" href="apiclient.http.HttpRequestMock-class.html">HttpRequestMock</a><tt class="py-op">(</tt><tt class="py-base-class">object</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+</div><div id="HttpRequestMock-collapsed" style="display:none;" pad="++++" indent="++++"></div><div id="HttpRequestMock-expanded"><a name="L1054"></a><tt class="py-lineno">1054</tt> <tt class="py-line"> <tt class="py-docstring">"""Mock of HttpRequest.</tt> </tt>
+<a name="L1055"></a><tt class="py-lineno">1055</tt> <tt class="py-line"><tt class="py-docstring"></tt> </tt>
+<a name="L1056"></a><tt class="py-lineno">1056</tt> <tt class="py-line"><tt class="py-docstring"> Do not construct directly, instead use RequestMockBuilder.</tt> </tt>
+<a name="L1057"></a><tt class="py-lineno">1057</tt> <tt class="py-line"><tt class="py-docstring"> """</tt> </tt>
+<a name="L1058"></a><tt class="py-lineno">1058</tt> <tt class="py-line"> </tt>
+<a name="HttpRequestMock.__init__"></a><div id="HttpRequestMock.__init__-def"><a name="L1059"></a><tt class="py-lineno">1059</tt> <a class="py-toggle" href="#" id="HttpRequestMock.__init__-toggle" onclick="return toggle('HttpRequestMock.__init__');">-</a><tt class="py-line"> <tt class="py-keyword">def</tt> <a class="py-def-name" href="apiclient.http.HttpRequestMock-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">resp</tt><tt class="py-op">,</tt> <tt class="py-param">content</tt><tt class="py-op">,</tt> <tt class="py-param">postproc</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+</div><div id="HttpRequestMock.__init__-collapsed" style="display:none;" pad="++++" indent="++++++"></div><div id="HttpRequestMock.__init__-expanded"><a name="L1060"></a><tt class="py-lineno">1060</tt> <tt class="py-line"> <tt class="py-docstring">"""Constructor for HttpRequestMock</tt> </tt>
+<a name="L1061"></a><tt class="py-lineno">1061</tt> <tt class="py-line"><tt class="py-docstring"></tt> </tt>
+<a name="L1062"></a><tt class="py-lineno">1062</tt> <tt class="py-line"><tt class="py-docstring"> Args:</tt> </tt>
+<a name="L1063"></a><tt class="py-lineno">1063</tt> <tt class="py-line"><tt class="py-docstring"> resp: httplib2.Response, the response to emulate coming from the request</tt> </tt>
+<a name="L1064"></a><tt class="py-lineno">1064</tt> <tt class="py-line"><tt class="py-docstring"> content: string, the response body</tt> </tt>
+<a name="L1065"></a><tt class="py-lineno">1065</tt> <tt class="py-line"><tt class="py-docstring"> postproc: callable, the post processing function usually supplied by</tt> </tt>
+<a name="L1066"></a><tt class="py-lineno">1066</tt> <tt class="py-line"><tt class="py-docstring"> the model class. See model.JsonModel.response() as an example.</tt> </tt>
+<a name="L1067"></a><tt class="py-lineno">1067</tt> <tt class="py-line"><tt class="py-docstring"> """</tt> </tt>
+<a name="L1068"></a><tt class="py-lineno">1068</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">resp</tt> <tt class="py-op">=</tt> <tt class="py-name">resp</tt> </tt>
+<a name="L1069"></a><tt class="py-lineno">1069</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">content</tt> <tt class="py-op">=</tt> <tt class="py-name">content</tt> </tt>
+<a name="L1070"></a><tt class="py-lineno">1070</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">postproc</tt> <tt class="py-op">=</tt> <tt class="py-name">postproc</tt> </tt>
+<a name="L1071"></a><tt class="py-lineno">1071</tt> <tt class="py-line"> <tt class="py-keyword">if</tt> <tt class="py-name">resp</tt> <tt class="py-keyword">is</tt> <tt class="py-name">None</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">resp</tt> <tt class="py-op">=</tt> <tt class="py-name">httplib2</tt><tt class="py-op">.</tt><tt class="py-name">Response</tt><tt class="py-op">(</tt><tt class="py-op">{</tt><tt class="py-string">'status'</tt><tt class="py-op">:</tt> <tt class="py-number">200</tt><tt class="py-op">,</tt> <tt class="py-string">'reason'</tt><tt class="py-op">:</tt> <tt class="py-string">'OK'</tt><tt class="py-op">}</tt><tt class="py-op">)</tt> </tt>
+<a name="L1073"></a><tt class="py-lineno">1073</tt> <tt class="py-line"> <tt class="py-keyword">if</tt> <tt class="py-string">'reason'</tt> <tt class="py-keyword">in</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">resp</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">self</tt><tt class="py-op">.</tt><tt class="py-name">resp</tt><tt class="py-op">.</tt><tt class="py-name">reason</tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">resp</tt><tt class="py-op">[</tt><tt class="py-string">'reason'</tt><tt class="py-op">]</tt> </tt>
+</div><a name="L1075"></a><tt class="py-lineno">1075</tt> <tt class="py-line"> </tt>
+<a name="HttpRequestMock.execute"></a><div id="HttpRequestMock.execute-def"><a name="L1076"></a><tt class="py-lineno">1076</tt> <a class="py-toggle" href="#" id="HttpRequestMock.execute-toggle" onclick="return toggle('HttpRequestMock.execute');">-</a><tt class="py-line"> <tt class="py-keyword">def</tt> <a class="py-def-name" href="apiclient.http.HttpRequestMock-class.html#execute">execute</a><tt class="py-op">(</tt><tt class="py-param">self</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="HttpRequestMock.execute-collapsed" style="display:none;" pad="++++" indent="++++++"></div><div id="HttpRequestMock.execute-expanded"><a name="L1077"></a><tt class="py-lineno">1077</tt> <tt class="py-line"> <tt class="py-docstring">"""Execute the request.</tt> </tt>
+<a name="L1078"></a><tt class="py-lineno">1078</tt> <tt class="py-line"><tt class="py-docstring"></tt> </tt>
+<a name="L1079"></a><tt class="py-lineno">1079</tt> <tt class="py-line"><tt class="py-docstring"> Same behavior as HttpRequest.execute(), but the response is</tt> </tt>
+<a name="L1080"></a><tt class="py-lineno">1080</tt> <tt class="py-line"><tt class="py-docstring"> mocked and not really from an HTTP request/response.</tt> </tt>
+<a name="L1081"></a><tt class="py-lineno">1081</tt> <tt class="py-line"><tt class="py-docstring"> """</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">self</tt><tt class="py-op">.</tt><tt class="py-name">postproc</tt><tt class="py-op">(</tt><tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">resp</tt><tt class="py-op">,</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">content</tt><tt class="py-op">)</tt> </tt>
+</div></div><a name="L1083"></a><tt class="py-lineno">1083</tt> <tt class="py-line"> </tt>
+<a name="RequestMockBuilder"></a><div id="RequestMockBuilder-def"><a name="L1084"></a><tt class="py-lineno">1084</tt> <tt class="py-line"> </tt>
+<a name="L1085"></a><tt class="py-lineno">1085</tt> <a class="py-toggle" href="#" id="RequestMockBuilder-toggle" onclick="return toggle('RequestMockBuilder');">-</a><tt class="py-line"><tt class="py-keyword">class</tt> <a class="py-def-name" href="apiclient.http.RequestMockBuilder-class.html">RequestMockBuilder</a><tt class="py-op">(</tt><tt class="py-base-class">object</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+</div><div id="RequestMockBuilder-collapsed" style="display:none;" pad="++++" indent="++++"></div><div id="RequestMockBuilder-expanded"><a name="L1086"></a><tt class="py-lineno">1086</tt> <tt class="py-line"> <tt class="py-docstring">"""A simple mock of HttpRequest</tt> </tt>
+<a name="L1087"></a><tt class="py-lineno">1087</tt> <tt class="py-line"><tt class="py-docstring"></tt> </tt>
+<a name="L1088"></a><tt class="py-lineno">1088</tt> <tt class="py-line"><tt class="py-docstring"> Pass in a dictionary to the constructor that maps request methodIds to</tt> </tt>
+<a name="L1089"></a><tt class="py-lineno">1089</tt> <tt class="py-line"><tt class="py-docstring"> tuples of (httplib2.Response, content, opt_expected_body) that should be</tt> </tt>
+<a name="L1090"></a><tt class="py-lineno">1090</tt> <tt class="py-line"><tt class="py-docstring"> returned when that method is called. None may also be passed in for the</tt> </tt>
+<a name="L1091"></a><tt class="py-lineno">1091</tt> <tt class="py-line"><tt class="py-docstring"> httplib2.Response, in which case a 200 OK response will be generated.</tt> </tt>
+<a name="L1092"></a><tt class="py-lineno">1092</tt> <tt class="py-line"><tt class="py-docstring"> If an opt_expected_body (str or dict) is provided, it will be compared to</tt> </tt>
+<a name="L1093"></a><tt class="py-lineno">1093</tt> <tt class="py-line"><tt class="py-docstring"> the body and UnexpectedBodyError will be raised on inequality.</tt> </tt>
+<a name="L1094"></a><tt class="py-lineno">1094</tt> <tt class="py-line"><tt class="py-docstring"></tt> </tt>
+<a name="L1095"></a><tt class="py-lineno">1095</tt> <tt class="py-line"><tt class="py-docstring"> Example:</tt> </tt>
+<a name="L1096"></a><tt class="py-lineno">1096</tt> <tt class="py-line"><tt class="py-docstring"> response = '{"data": {"id": "tag:google.c...'</tt> </tt>
+<a name="L1097"></a><tt class="py-lineno">1097</tt> <tt class="py-line"><tt class="py-docstring"> requestBuilder = RequestMockBuilder(</tt> </tt>
+<a name="L1098"></a><tt class="py-lineno">1098</tt> <tt class="py-line"><tt class="py-docstring"> {</tt> </tt>
+<a name="L1099"></a><tt class="py-lineno">1099</tt> <tt class="py-line"><tt class="py-docstring"> 'plus.activities.get': (None, response),</tt> </tt>
+<a name="L1100"></a><tt class="py-lineno">1100</tt> <tt class="py-line"><tt class="py-docstring"> }</tt> </tt>
+<a name="L1101"></a><tt class="py-lineno">1101</tt> <tt class="py-line"><tt class="py-docstring"> )</tt> </tt>
+<a name="L1102"></a><tt class="py-lineno">1102</tt> <tt class="py-line"><tt class="py-docstring"> apiclient.discovery.build("plus", "v1", requestBuilder=requestBuilder)</tt> </tt>
+<a name="L1103"></a><tt class="py-lineno">1103</tt> <tt class="py-line"><tt class="py-docstring"></tt> </tt>
+<a name="L1104"></a><tt class="py-lineno">1104</tt> <tt class="py-line"><tt class="py-docstring"> Methods that you do not supply a response for will return a</tt> </tt>
+<a name="L1105"></a><tt class="py-lineno">1105</tt> <tt class="py-line"><tt class="py-docstring"> 200 OK with an empty string as the response content or raise an excpetion</tt> </tt>
+<a name="L1106"></a><tt class="py-lineno">1106</tt> <tt class="py-line"><tt class="py-docstring"> if check_unexpected is set to True. The methodId is taken from the rpcName</tt> </tt>
+<a name="L1107"></a><tt class="py-lineno">1107</tt> <tt class="py-line"><tt class="py-docstring"> in the discovery document.</tt> </tt>
+<a name="L1108"></a><tt class="py-lineno">1108</tt> <tt class="py-line"><tt class="py-docstring"></tt> </tt>
+<a name="L1109"></a><tt class="py-lineno">1109</tt> <tt class="py-line"><tt class="py-docstring"> For more details see the project wiki.</tt> </tt>
+<a name="L1110"></a><tt class="py-lineno">1110</tt> <tt class="py-line"><tt class="py-docstring"> """</tt> </tt>
+<a name="L1111"></a><tt class="py-lineno">1111</tt> <tt class="py-line"> </tt>
+<a name="RequestMockBuilder.__init__"></a><div id="RequestMockBuilder.__init__-def"><a name="L1112"></a><tt class="py-lineno">1112</tt> <a class="py-toggle" href="#" id="RequestMockBuilder.__init__-toggle" onclick="return toggle('RequestMockBuilder.__init__');">-</a><tt class="py-line"> <tt class="py-keyword">def</tt> <a class="py-def-name" href="apiclient.http.RequestMockBuilder-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">responses</tt><tt class="py-op">,</tt> <tt class="py-param">check_unexpected</tt><tt class="py-op">=</tt><tt class="py-name">False</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+</div><div id="RequestMockBuilder.__init__-collapsed" style="display:none;" pad="++++" indent="++++++"></div><div id="RequestMockBuilder.__init__-expanded"><a name="L1113"></a><tt class="py-lineno">1113</tt> <tt class="py-line"> <tt class="py-docstring">"""Constructor for RequestMockBuilder</tt> </tt>
+<a name="L1114"></a><tt class="py-lineno">1114</tt> <tt class="py-line"><tt class="py-docstring"></tt> </tt>
+<a name="L1115"></a><tt class="py-lineno">1115</tt> <tt class="py-line"><tt class="py-docstring"> The constructed object should be a callable object</tt> </tt>
+<a name="L1116"></a><tt class="py-lineno">1116</tt> <tt class="py-line"><tt class="py-docstring"> that can replace the class HttpResponse.</tt> </tt>
+<a name="L1117"></a><tt class="py-lineno">1117</tt> <tt class="py-line"><tt class="py-docstring"></tt> </tt>
+<a name="L1118"></a><tt class="py-lineno">1118</tt> <tt class="py-line"><tt class="py-docstring"> responses - A dictionary that maps methodIds into tuples</tt> </tt>
+<a name="L1119"></a><tt class="py-lineno">1119</tt> <tt class="py-line"><tt class="py-docstring"> of (httplib2.Response, content). The methodId</tt> </tt>
+<a name="L1120"></a><tt class="py-lineno">1120</tt> <tt class="py-line"><tt class="py-docstring"> comes from the 'rpcName' field in the discovery</tt> </tt>
+<a name="L1121"></a><tt class="py-lineno">1121</tt> <tt class="py-line"><tt class="py-docstring"> document.</tt> </tt>
+<a name="L1122"></a><tt class="py-lineno">1122</tt> <tt class="py-line"><tt class="py-docstring"> check_unexpected - A boolean setting whether or not UnexpectedMethodError</tt> </tt>
+<a name="L1123"></a><tt class="py-lineno">1123</tt> <tt class="py-line"><tt class="py-docstring"> should be raised on unsupplied method.</tt> </tt>
+<a name="L1124"></a><tt class="py-lineno">1124</tt> <tt class="py-line"><tt class="py-docstring"> """</tt> </tt>
+<a name="L1125"></a><tt class="py-lineno">1125</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">responses</tt> <tt class="py-op">=</tt> <tt class="py-name">responses</tt> </tt>
+<a name="L1126"></a><tt class="py-lineno">1126</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">check_unexpected</tt> <tt class="py-op">=</tt> <tt class="py-name">check_unexpected</tt> </tt>
+</div><a name="L1127"></a><tt class="py-lineno">1127</tt> <tt class="py-line"> </tt>
+<a name="RequestMockBuilder.__call__"></a><div id="RequestMockBuilder.__call__-def"><a name="L1128"></a><tt class="py-lineno">1128</tt> <a class="py-toggle" href="#" id="RequestMockBuilder.__call__-toggle" onclick="return toggle('RequestMockBuilder.__call__');">-</a><tt class="py-line"> <tt class="py-keyword">def</tt> <a class="py-def-name" href="apiclient.http.RequestMockBuilder-class.html#__call__">__call__</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">,</tt> <tt class="py-param">http</tt><tt class="py-op">,</tt> <tt class="py-param">postproc</tt><tt class="py-op">,</tt> <tt class="py-param">uri</tt><tt class="py-op">,</tt> <tt class="py-param">method</tt><tt class="py-op">=</tt><tt class="py-string">'GET'</tt><tt class="py-op">,</tt> <tt class="py-param">body</tt><tt class="py-op">=</tt><tt class="py-name">None</tt><tt class="py-op">,</tt> </tt>
+<a name="L1129"></a><tt class="py-lineno">1129</tt> <tt class="py-line"> <tt class="py-param">headers</tt><tt class="py-op">=</tt><tt class="py-name">None</tt><tt class="py-op">,</tt> <tt class="py-param">methodId</tt><tt class="py-op">=</tt><tt class="py-name">None</tt><tt class="py-op">,</tt> <tt class="py-param">resumable</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="RequestMockBuilder.__call__-collapsed" style="display:none;" pad="++++" indent="++++++"></div><div id="RequestMockBuilder.__call__-expanded"><a name="L1130"></a><tt class="py-lineno">1130</tt> <tt class="py-line"> <tt class="py-docstring">"""Implements the callable interface that discovery.build() expects</tt> </tt>
+<a name="L1131"></a><tt class="py-lineno">1131</tt> <tt class="py-line"><tt class="py-docstring"> of requestBuilder, which is to build an object compatible with</tt> </tt>
+<a name="L1132"></a><tt class="py-lineno">1132</tt> <tt class="py-line"><tt class="py-docstring"> HttpRequest.execute(). See that method for the description of the</tt> </tt>
+<a name="L1133"></a><tt class="py-lineno">1133</tt> <tt class="py-line"><tt class="py-docstring"> parameters and the expected response.</tt> </tt>
+<a name="L1134"></a><tt class="py-lineno">1134</tt> <tt class="py-line"><tt class="py-docstring"> """</tt> </tt>
+<a name="L1135"></a><tt class="py-lineno">1135</tt> <tt class="py-line"> <tt class="py-keyword">if</tt> <tt class="py-name">methodId</tt> <tt class="py-keyword">in</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">responses</tt><tt class="py-op">:</tt> </tt>
+<a name="L1136"></a><tt class="py-lineno">1136</tt> <tt class="py-line"> <tt id="link-181" class="py-name"><a title="apiclient.model.BaseModel.response
+apiclient.model.Model.response" class="py-name" href="#" onclick="return doclink('link-181', 'response', 'link-175');">response</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">responses</tt><tt class="py-op">[</tt><tt class="py-name">methodId</tt><tt class="py-op">]</tt> </tt>
+<a name="L1137"></a><tt class="py-lineno">1137</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-182" class="py-name"><a title="apiclient.model.BaseModel.response
+apiclient.model.Model.response" class="py-name" href="#" onclick="return doclink('link-182', 'response', 'link-175');">response</a></tt><tt class="py-op">[</tt><tt class="py-op">:</tt><tt class="py-number">2</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">if</tt> <tt class="py-name">len</tt><tt class="py-op">(</tt><tt id="link-183" class="py-name"><a title="apiclient.model.BaseModel.response
+apiclient.model.Model.response" class="py-name" href="#" onclick="return doclink('link-183', 'response', 'link-175');">response</a></tt><tt class="py-op">)</tt> <tt class="py-op">></tt> <tt class="py-number">2</tt><tt class="py-op">:</tt> </tt>
+<a name="L1139"></a><tt class="py-lineno">1139</tt> <tt class="py-line"> <tt class="py-comment"># Test the body against the supplied expected_body.</tt> </tt>
+<a name="L1140"></a><tt class="py-lineno">1140</tt> <tt class="py-line"> <tt class="py-name">expected_body</tt> <tt class="py-op">=</tt> <tt id="link-184" class="py-name"><a title="apiclient.model.BaseModel.response
+apiclient.model.Model.response" class="py-name" href="#" onclick="return doclink('link-184', 'response', 'link-175');">response</a></tt><tt class="py-op">[</tt><tt class="py-number">2</tt><tt class="py-op">]</tt> </tt>
+<a name="L1141"></a><tt class="py-lineno">1141</tt> <tt class="py-line"> <tt class="py-keyword">if</tt> <tt class="py-name">bool</tt><tt class="py-op">(</tt><tt class="py-name">expected_body</tt><tt class="py-op">)</tt> <tt class="py-op">!=</tt> <tt class="py-name">bool</tt><tt class="py-op">(</tt><tt class="py-name">body</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-comment"># Not expecting a body and provided one</tt> </tt>
+<a name="L1143"></a><tt class="py-lineno">1143</tt> <tt class="py-line"> <tt class="py-comment"># or expecting a body and not provided one.</tt> </tt>
+<a name="L1144"></a><tt class="py-lineno">1144</tt> <tt class="py-line"> <tt class="py-keyword">raise</tt> <tt id="link-185" class="py-name"><a title="apiclient.errors.UnexpectedBodyError" class="py-name" href="#" onclick="return doclink('link-185', 'UnexpectedBodyError', 'link-8');">UnexpectedBodyError</a></tt><tt class="py-op">(</tt><tt class="py-name">expected_body</tt><tt class="py-op">,</tt> <tt class="py-name">body</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">if</tt> <tt class="py-name">isinstance</tt><tt class="py-op">(</tt><tt class="py-name">expected_body</tt><tt class="py-op">,</tt> <tt class="py-name">str</tt><tt class="py-op">)</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">expected_body</tt> <tt class="py-op">=</tt> <tt class="py-name">simplejson</tt><tt class="py-op">.</tt><tt id="link-186" class="py-name"><a title="oauth2client.clientsecrets.loads" class="py-name" href="#" onclick="return doclink('link-186', 'loads', 'link-17');">loads</a></tt><tt class="py-op">(</tt><tt class="py-name">expected_body</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">body</tt> <tt class="py-op">=</tt> <tt class="py-name">simplejson</tt><tt class="py-op">.</tt><tt id="link-187" class="py-name"><a title="oauth2client.clientsecrets.loads" class="py-name" href="#" onclick="return doclink('link-187', 'loads', 'link-17');">loads</a></tt><tt class="py-op">(</tt><tt class="py-name">body</tt><tt class="py-op">)</tt> </tt>
+<a name="L1148"></a><tt class="py-lineno">1148</tt> <tt class="py-line"> <tt class="py-keyword">if</tt> <tt class="py-name">body</tt> <tt class="py-op">!=</tt> <tt class="py-name">expected_body</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">raise</tt> <tt id="link-188" class="py-name"><a title="apiclient.errors.UnexpectedBodyError" class="py-name" href="#" onclick="return doclink('link-188', 'UnexpectedBodyError', 'link-8');">UnexpectedBodyError</a></tt><tt class="py-op">(</tt><tt class="py-name">expected_body</tt><tt class="py-op">,</tt> <tt class="py-name">body</tt><tt class="py-op">)</tt> </tt>
+<a name="L1150"></a><tt class="py-lineno">1150</tt> <tt class="py-line"> <tt class="py-keyword">return</tt> <tt id="link-189" class="py-name" targets="Class apiclient.http.HttpRequestMock=apiclient.http.HttpRequestMock-class.html"><a title="apiclient.http.HttpRequestMock" class="py-name" href="#" onclick="return doclink('link-189', 'HttpRequestMock', 'link-189');">HttpRequestMock</a></tt><tt class="py-op">(</tt><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">postproc</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">elif</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">check_unexpected</tt><tt class="py-op">:</tt> </tt>
+<a name="L1152"></a><tt class="py-lineno">1152</tt> <tt class="py-line"> <tt class="py-keyword">raise</tt> <tt id="link-190" class="py-name"><a title="apiclient.errors.UnexpectedMethodError" class="py-name" href="#" onclick="return doclink('link-190', 'UnexpectedMethodError', 'link-10');">UnexpectedMethodError</a></tt><tt class="py-op">(</tt><tt class="py-name">methodId</tt><tt class="py-op">)</tt> </tt>
+<a name="L1153"></a><tt class="py-lineno">1153</tt> <tt class="py-line"> <tt class="py-keyword">else</tt><tt class="py-op">:</tt> </tt>
+<a name="L1154"></a><tt class="py-lineno">1154</tt> <tt class="py-line"> <tt id="link-191" class="py-name"><a title="apiclient.model" class="py-name" href="#" onclick="return doclink('link-191', 'model', 'link-11');">model</a></tt> <tt class="py-op">=</tt> <tt id="link-192" class="py-name"><a title="apiclient.model.JsonModel" class="py-name" href="#" onclick="return doclink('link-192', 'JsonModel', 'link-12');">JsonModel</a></tt><tt class="py-op">(</tt><tt class="py-name">False</tt><tt class="py-op">)</tt> </tt>
+<a name="L1155"></a><tt class="py-lineno">1155</tt> <tt class="py-line"> <tt class="py-keyword">return</tt> <tt id="link-193" class="py-name"><a title="apiclient.http.HttpRequestMock" class="py-name" href="#" onclick="return doclink('link-193', 'HttpRequestMock', 'link-189');">HttpRequestMock</a></tt><tt class="py-op">(</tt><tt class="py-name">None</tt><tt class="py-op">,</tt> <tt class="py-string">'{}'</tt><tt class="py-op">,</tt> <tt id="link-194" class="py-name"><a title="apiclient.model" class="py-name" href="#" onclick="return doclink('link-194', 'model', 'link-11');">model</a></tt><tt class="py-op">.</tt><tt id="link-195" class="py-name"><a title="apiclient.model.BaseModel.response
+apiclient.model.Model.response" class="py-name" href="#" onclick="return doclink('link-195', 'response', 'link-175');">response</a></tt><tt class="py-op">)</tt> </tt>
+</div></div><a name="L1156"></a><tt class="py-lineno">1156</tt> <tt class="py-line"> </tt>
+<a name="HttpMock"></a><div id="HttpMock-def"><a name="L1157"></a><tt class="py-lineno">1157</tt> <tt class="py-line"> </tt>
+<a name="L1158"></a><tt class="py-lineno">1158</tt> <a class="py-toggle" href="#" id="HttpMock-toggle" onclick="return toggle('HttpMock');">-</a><tt class="py-line"><tt class="py-keyword">class</tt> <a class="py-def-name" href="apiclient.http.HttpMock-class.html">HttpMock</a><tt class="py-op">(</tt><tt class="py-base-class">object</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+</div><div id="HttpMock-collapsed" style="display:none;" pad="++++" indent="++++"></div><div id="HttpMock-expanded"><a name="L1159"></a><tt class="py-lineno">1159</tt> <tt class="py-line"> <tt class="py-docstring">"""Mock of httplib2.Http"""</tt> </tt>
+<a name="L1160"></a><tt class="py-lineno">1160</tt> <tt class="py-line"> </tt>
+<a name="HttpMock.__init__"></a><div id="HttpMock.__init__-def"><a name="L1161"></a><tt class="py-lineno">1161</tt> <a class="py-toggle" href="#" id="HttpMock.__init__-toggle" onclick="return toggle('HttpMock.__init__');">-</a><tt class="py-line"> <tt class="py-keyword">def</tt> <a class="py-def-name" href="apiclient.http.HttpMock-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">filename</tt><tt class="py-op">,</tt> <tt class="py-param">headers</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="HttpMock.__init__-collapsed" style="display:none;" pad="++++" indent="++++++"></div><div id="HttpMock.__init__-expanded"><a name="L1162"></a><tt class="py-lineno">1162</tt> <tt class="py-line"> <tt class="py-docstring">"""</tt> </tt>
+<a name="L1163"></a><tt class="py-lineno">1163</tt> <tt class="py-line"><tt class="py-docstring"> Args:</tt> </tt>
+<a name="L1164"></a><tt class="py-lineno">1164</tt> <tt class="py-line"><tt class="py-docstring"> filename: string, absolute filename to read response from</tt> </tt>
+<a name="L1165"></a><tt class="py-lineno">1165</tt> <tt class="py-line"><tt class="py-docstring"> headers: dict, header to return with response</tt> </tt>
+<a name="L1166"></a><tt class="py-lineno">1166</tt> <tt class="py-line"><tt class="py-docstring"> """</tt> </tt>
+<a name="L1167"></a><tt class="py-lineno">1167</tt> <tt class="py-line"> <tt class="py-keyword">if</tt> <tt class="py-name">headers</tt> <tt class="py-keyword">is</tt> <tt class="py-name">None</tt><tt class="py-op">:</tt> </tt>
+<a name="L1168"></a><tt class="py-lineno">1168</tt> <tt class="py-line"> <tt class="py-name">headers</tt> <tt class="py-op">=</tt> <tt class="py-op">{</tt><tt class="py-string">'status'</tt><tt class="py-op">:</tt> <tt class="py-string">'200 OK'</tt><tt class="py-op">}</tt> </tt>
+<a name="L1169"></a><tt class="py-lineno">1169</tt> <tt class="py-line"> <tt class="py-name">f</tt> <tt class="py-op">=</tt> <tt id="link-196" class="py-name" targets="Module oauth2client.file=oauth2client.file-module.html"><a title="oauth2client.file" class="py-name" href="#" onclick="return doclink('link-196', 'file', 'link-196');">file</a></tt><tt class="py-op">(</tt><tt id="link-197" class="py-name"><a title="oauth2client.locked_file.LockedFile.filename
+oauth2client.locked_file._Opener.filename" class="py-name" href="#" onclick="return doclink('link-197', 'filename', 'link-21');">filename</a></tt><tt class="py-op">,</tt> <tt class="py-string">'r'</tt><tt class="py-op">)</tt> </tt>
+<a name="L1170"></a><tt class="py-lineno">1170</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">data</tt> <tt class="py-op">=</tt> <tt class="py-name">f</tt><tt class="py-op">.</tt><tt class="py-name">read</tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
+<a name="L1171"></a><tt class="py-lineno">1171</tt> <tt class="py-line"> <tt class="py-name">f</tt><tt class="py-op">.</tt><tt class="py-name">close</tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
+<a name="L1172"></a><tt class="py-lineno">1172</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">headers</tt> <tt class="py-op">=</tt> <tt class="py-name">headers</tt> </tt>
+</div><a name="L1173"></a><tt class="py-lineno">1173</tt> <tt class="py-line"> </tt>
+<a name="HttpMock.request"></a><div id="HttpMock.request-def"><a name="L1174"></a><tt class="py-lineno">1174</tt> <a class="py-toggle" href="#" id="HttpMock.request-toggle" onclick="return toggle('HttpMock.request');">-</a><tt class="py-line"> <tt class="py-keyword">def</tt> <a class="py-def-name" href="apiclient.http.HttpMock-class.html#request">request</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">,</tt> <tt class="py-param">uri</tt><tt class="py-op">,</tt> </tt>
+<a name="L1175"></a><tt class="py-lineno">1175</tt> <tt class="py-line"> <tt class="py-param">method</tt><tt class="py-op">=</tt><tt class="py-string">'GET'</tt><tt class="py-op">,</tt> </tt>
+<a name="L1176"></a><tt class="py-lineno">1176</tt> <tt class="py-line"> <tt class="py-param">body</tt><tt class="py-op">=</tt><tt class="py-name">None</tt><tt class="py-op">,</tt> </tt>
+<a name="L1177"></a><tt class="py-lineno">1177</tt> <tt class="py-line"> <tt class="py-param">headers</tt><tt class="py-op">=</tt><tt class="py-name">None</tt><tt class="py-op">,</tt> </tt>
+<a name="L1178"></a><tt class="py-lineno">1178</tt> <tt class="py-line"> <tt class="py-param">redirections</tt><tt class="py-op">=</tt><tt class="py-number">1</tt><tt class="py-op">,</tt> </tt>
+<a name="L1179"></a><tt class="py-lineno">1179</tt> <tt class="py-line"> <tt class="py-param">connection_type</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="HttpMock.request-collapsed" style="display:none;" pad="++++" indent="++++++"></div><div id="HttpMock.request-expanded"><a name="L1180"></a><tt class="py-lineno">1180</tt> <tt class="py-line"> <tt class="py-keyword">return</tt> <tt class="py-name">httplib2</tt><tt class="py-op">.</tt><tt class="py-name">Response</tt><tt class="py-op">(</tt><tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">headers</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">data</tt> </tt>
+</div></div><a name="L1181"></a><tt class="py-lineno">1181</tt> <tt class="py-line"> </tt>
+<a name="HttpMockSequence"></a><div id="HttpMockSequence-def"><a name="L1182"></a><tt class="py-lineno">1182</tt> <tt class="py-line"> </tt>
+<a name="L1183"></a><tt class="py-lineno">1183</tt> <a class="py-toggle" href="#" id="HttpMockSequence-toggle" onclick="return toggle('HttpMockSequence');">-</a><tt class="py-line"><tt class="py-keyword">class</tt> <a class="py-def-name" href="apiclient.http.HttpMockSequence-class.html">HttpMockSequence</a><tt class="py-op">(</tt><tt class="py-base-class">object</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+</div><div id="HttpMockSequence-collapsed" style="display:none;" pad="++++" indent="++++"></div><div id="HttpMockSequence-expanded"><a name="L1184"></a><tt class="py-lineno">1184</tt> <tt class="py-line"> <tt class="py-docstring">"""Mock of httplib2.Http</tt> </tt>
+<a name="L1185"></a><tt class="py-lineno">1185</tt> <tt class="py-line"><tt class="py-docstring"></tt> </tt>
+<a name="L1186"></a><tt class="py-lineno">1186</tt> <tt class="py-line"><tt class="py-docstring"> Mocks a sequence of calls to request returning different responses for each</tt> </tt>
+<a name="L1187"></a><tt class="py-lineno">1187</tt> <tt class="py-line"><tt class="py-docstring"> call. Create an instance initialized with the desired response headers</tt> </tt>
+<a name="L1188"></a><tt class="py-lineno">1188</tt> <tt class="py-line"><tt class="py-docstring"> and content and then use as if an httplib2.Http instance.</tt> </tt>
+<a name="L1189"></a><tt class="py-lineno">1189</tt> <tt class="py-line"><tt class="py-docstring"></tt> </tt>
+<a name="L1190"></a><tt class="py-lineno">1190</tt> <tt class="py-line"><tt class="py-docstring"> http = HttpMockSequence([</tt> </tt>
+<a name="L1191"></a><tt class="py-lineno">1191</tt> <tt class="py-line"><tt class="py-docstring"> ({'status': '401'}, ''),</tt> </tt>
+<a name="L1192"></a><tt class="py-lineno">1192</tt> <tt class="py-line"><tt class="py-docstring"> ({'status': '200'}, '{"access_token":"1/3w","expires_in":3600}'),</tt> </tt>
+<a name="L1193"></a><tt class="py-lineno">1193</tt> <tt class="py-line"><tt class="py-docstring"> ({'status': '200'}, 'echo_request_headers'),</tt> </tt>
+<a name="L1194"></a><tt class="py-lineno">1194</tt> <tt class="py-line"><tt class="py-docstring"> ])</tt> </tt>
+<a name="L1195"></a><tt class="py-lineno">1195</tt> <tt class="py-line"><tt class="py-docstring"> resp, content = http.request("http://examples.com")</tt> </tt>
+<a name="L1196"></a><tt class="py-lineno">1196</tt> <tt class="py-line"><tt class="py-docstring"></tt> </tt>
+<a name="L1197"></a><tt class="py-lineno">1197</tt> <tt class="py-line"><tt class="py-docstring"> There are special values you can pass in for content to trigger</tt> </tt>
+<a name="L1198"></a><tt class="py-lineno">1198</tt> <tt class="py-line"><tt class="py-docstring"> behavours that are helpful in testing.</tt> </tt>
+<a name="L1199"></a><tt class="py-lineno">1199</tt> <tt class="py-line"><tt class="py-docstring"></tt> </tt>
+<a name="L1200"></a><tt class="py-lineno">1200</tt> <tt class="py-line"><tt class="py-docstring"> 'echo_request_headers' means return the request headers in the response body</tt> </tt>
+<a name="L1201"></a><tt class="py-lineno">1201</tt> <tt class="py-line"><tt class="py-docstring"> 'echo_request_headers_as_json' means return the request headers in</tt> </tt>
+<a name="L1202"></a><tt class="py-lineno">1202</tt> <tt class="py-line"><tt class="py-docstring"> the response body</tt> </tt>
+<a name="L1203"></a><tt class="py-lineno">1203</tt> <tt class="py-line"><tt class="py-docstring"> 'echo_request_body' means return the request body in the response body</tt> </tt>
+<a name="L1204"></a><tt class="py-lineno">1204</tt> <tt class="py-line"><tt class="py-docstring"> 'echo_request_uri' means return the request uri in the response body</tt> </tt>
+<a name="L1205"></a><tt class="py-lineno">1205</tt> <tt class="py-line"><tt class="py-docstring"> """</tt> </tt>
+<a name="L1206"></a><tt class="py-lineno">1206</tt> <tt class="py-line"> </tt>
+<a name="HttpMockSequence.__init__"></a><div id="HttpMockSequence.__init__-def"><a name="L1207"></a><tt class="py-lineno">1207</tt> <a class="py-toggle" href="#" id="HttpMockSequence.__init__-toggle" onclick="return toggle('HttpMockSequence.__init__');">-</a><tt class="py-line"> <tt class="py-keyword">def</tt> <a class="py-def-name" href="apiclient.http.HttpMockSequence-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">iterable</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+</div><div id="HttpMockSequence.__init__-collapsed" style="display:none;" pad="++++" indent="++++++"></div><div id="HttpMockSequence.__init__-expanded"><a name="L1208"></a><tt class="py-lineno">1208</tt> <tt class="py-line"> <tt class="py-docstring">"""</tt> </tt>
+<a name="L1209"></a><tt class="py-lineno">1209</tt> <tt class="py-line"><tt class="py-docstring"> Args:</tt> </tt>
+<a name="L1210"></a><tt class="py-lineno">1210</tt> <tt class="py-line"><tt class="py-docstring"> iterable: iterable, a sequence of pairs of (headers, body)</tt> </tt>
+<a name="L1211"></a><tt class="py-lineno">1211</tt> <tt class="py-line"><tt class="py-docstring"> """</tt> </tt>
+<a name="L1212"></a><tt class="py-lineno">1212</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">_iterable</tt> <tt class="py-op">=</tt> <tt class="py-name">iterable</tt> </tt>
+</div><a name="L1213"></a><tt class="py-lineno">1213</tt> <tt class="py-line"> </tt>
+<a name="HttpMockSequence.request"></a><div id="HttpMockSequence.request-def"><a name="L1214"></a><tt class="py-lineno">1214</tt> <a class="py-toggle" href="#" id="HttpMockSequence.request-toggle" onclick="return toggle('HttpMockSequence.request');">-</a><tt class="py-line"> <tt class="py-keyword">def</tt> <a class="py-def-name" href="apiclient.http.HttpMockSequence-class.html#request">request</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">,</tt> <tt class="py-param">uri</tt><tt class="py-op">,</tt> </tt>
+<a name="L1215"></a><tt class="py-lineno">1215</tt> <tt class="py-line"> <tt class="py-param">method</tt><tt class="py-op">=</tt><tt class="py-string">'GET'</tt><tt class="py-op">,</tt> </tt>
+<a name="L1216"></a><tt class="py-lineno">1216</tt> <tt class="py-line"> <tt class="py-param">body</tt><tt class="py-op">=</tt><tt class="py-name">None</tt><tt class="py-op">,</tt> </tt>
+<a name="L1217"></a><tt class="py-lineno">1217</tt> <tt class="py-line"> <tt class="py-param">headers</tt><tt class="py-op">=</tt><tt class="py-name">None</tt><tt class="py-op">,</tt> </tt>
+<a name="L1218"></a><tt class="py-lineno">1218</tt> <tt class="py-line"> <tt class="py-param">redirections</tt><tt class="py-op">=</tt><tt class="py-number">1</tt><tt class="py-op">,</tt> </tt>
+<a name="L1219"></a><tt class="py-lineno">1219</tt> <tt class="py-line"> <tt class="py-param">connection_type</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="HttpMockSequence.request-collapsed" style="display:none;" pad="++++" indent="++++++"></div><div id="HttpMockSequence.request-expanded"><a name="L1220"></a><tt class="py-lineno">1220</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">self</tt><tt class="py-op">.</tt><tt class="py-name">_iterable</tt><tt class="py-op">.</tt><tt class="py-name">pop</tt><tt class="py-op">(</tt><tt class="py-number">0</tt><tt class="py-op">)</tt> </tt>
+<a name="L1221"></a><tt class="py-lineno">1221</tt> <tt class="py-line"> <tt class="py-keyword">if</tt> <tt class="py-name">content</tt> <tt class="py-op">==</tt> <tt class="py-string">'echo_request_headers'</tt><tt class="py-op">:</tt> </tt>
+<a name="L1222"></a><tt class="py-lineno">1222</tt> <tt class="py-line"> <tt class="py-name">content</tt> <tt class="py-op">=</tt> <tt class="py-name">headers</tt> </tt>
+<a name="L1223"></a><tt class="py-lineno">1223</tt> <tt class="py-line"> <tt class="py-keyword">elif</tt> <tt class="py-name">content</tt> <tt class="py-op">==</tt> <tt class="py-string">'echo_request_headers_as_json'</tt><tt class="py-op">:</tt> </tt>
+<a name="L1224"></a><tt class="py-lineno">1224</tt> <tt class="py-line"> <tt class="py-name">content</tt> <tt class="py-op">=</tt> <tt class="py-name">simplejson</tt><tt class="py-op">.</tt><tt class="py-name">dumps</tt><tt class="py-op">(</tt><tt class="py-name">headers</tt><tt class="py-op">)</tt> </tt>
+<a name="L1225"></a><tt class="py-lineno">1225</tt> <tt class="py-line"> <tt class="py-keyword">elif</tt> <tt class="py-name">content</tt> <tt class="py-op">==</tt> <tt class="py-string">'echo_request_body'</tt><tt class="py-op">:</tt> </tt>
+<a name="L1226"></a><tt class="py-lineno">1226</tt> <tt class="py-line"> <tt class="py-name">content</tt> <tt class="py-op">=</tt> <tt class="py-name">body</tt> </tt>
+<a name="L1227"></a><tt class="py-lineno">1227</tt> <tt class="py-line"> <tt class="py-keyword">elif</tt> <tt class="py-name">content</tt> <tt class="py-op">==</tt> <tt class="py-string">'echo_request_uri'</tt><tt class="py-op">:</tt> </tt>
+<a name="L1228"></a><tt class="py-lineno">1228</tt> <tt class="py-line"> <tt class="py-name">content</tt> <tt class="py-op">=</tt> <tt class="py-name">uri</tt> </tt>
+<a name="L1229"></a><tt class="py-lineno">1229</tt> <tt class="py-line"> <tt class="py-keyword">return</tt> <tt class="py-name">httplib2</tt><tt class="py-op">.</tt><tt class="py-name">Response</tt><tt class="py-op">(</tt><tt class="py-name">resp</tt><tt class="py-op">)</tt><tt class="py-op">,</tt> <tt class="py-name">content</tt> </tt>
+</div></div><a name="L1230"></a><tt class="py-lineno">1230</tt> <tt class="py-line"> </tt>
+<a name="set_user_agent"></a><div id="set_user_agent-def"><a name="L1231"></a><tt class="py-lineno">1231</tt> <tt class="py-line"> </tt>
+<a name="L1232"></a><tt class="py-lineno">1232</tt> <a class="py-toggle" href="#" id="set_user_agent-toggle" onclick="return toggle('set_user_agent');">-</a><tt class="py-line"><tt class="py-keyword">def</tt> <a class="py-def-name" href="apiclient.http-module.html#set_user_agent">set_user_agent</a><tt class="py-op">(</tt><tt class="py-param">http</tt><tt class="py-op">,</tt> <tt class="py-param">user_agent</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+</div><div id="set_user_agent-collapsed" style="display:none;" pad="++++" indent="++++"></div><div id="set_user_agent-expanded"><a name="L1233"></a><tt class="py-lineno">1233</tt> <tt class="py-line"> <tt class="py-docstring">"""Set the user-agent on every request.</tt> </tt>
+<a name="L1234"></a><tt class="py-lineno">1234</tt> <tt class="py-line"><tt class="py-docstring"></tt> </tt>
+<a name="L1235"></a><tt class="py-lineno">1235</tt> <tt class="py-line"><tt class="py-docstring"> Args:</tt> </tt>
+<a name="L1236"></a><tt class="py-lineno">1236</tt> <tt class="py-line"><tt class="py-docstring"> http - An instance of httplib2.Http</tt> </tt>
+<a name="L1237"></a><tt class="py-lineno">1237</tt> <tt class="py-line"><tt class="py-docstring"> or something that acts like it.</tt> </tt>
+<a name="L1238"></a><tt class="py-lineno">1238</tt> <tt class="py-line"><tt class="py-docstring"> user_agent: string, the value for the user-agent header.</tt> </tt>
+<a name="L1239"></a><tt class="py-lineno">1239</tt> <tt class="py-line"><tt class="py-docstring"></tt> </tt>
+<a name="L1240"></a><tt class="py-lineno">1240</tt> <tt class="py-line"><tt class="py-docstring"> Returns:</tt> </tt>
+<a name="L1241"></a><tt class="py-lineno">1241</tt> <tt class="py-line"><tt class="py-docstring"> A modified instance of http that was passed in.</tt> </tt>
+<a name="L1242"></a><tt class="py-lineno">1242</tt> <tt class="py-line"><tt class="py-docstring"></tt> </tt>
+<a name="L1243"></a><tt class="py-lineno">1243</tt> <tt class="py-line"><tt class="py-docstring"> Example:</tt> </tt>
+<a name="L1244"></a><tt class="py-lineno">1244</tt> <tt class="py-line"><tt class="py-docstring"></tt> </tt>
+<a name="L1245"></a><tt class="py-lineno">1245</tt> <tt class="py-line"><tt class="py-docstring"> h = httplib2.Http()</tt> </tt>
+<a name="L1246"></a><tt class="py-lineno">1246</tt> <tt class="py-line"><tt class="py-docstring"> h = set_user_agent(h, "my-app-name/6.0")</tt> </tt>
+<a name="L1247"></a><tt class="py-lineno">1247</tt> <tt class="py-line"><tt class="py-docstring"></tt> </tt>
+<a name="L1248"></a><tt class="py-lineno">1248</tt> <tt class="py-line"><tt class="py-docstring"> Most of the time the user-agent will be set doing auth, this is for the rare</tt> </tt>
+<a name="L1249"></a><tt class="py-lineno">1249</tt> <tt class="py-line"><tt class="py-docstring"> cases where you are accessing an unauthenticated endpoint.</tt> </tt>
+<a name="L1250"></a><tt class="py-lineno">1250</tt> <tt class="py-line"><tt class="py-docstring"> """</tt> </tt>
+<a name="L1251"></a><tt class="py-lineno">1251</tt> <tt class="py-line"> <tt class="py-name">request_orig</tt> <tt class="py-op">=</tt> <tt id="link-198" class="py-name"><a title="apiclient.http
+oauth2client.appengine.OAuth2Decorator.http" class="py-name" href="#" onclick="return doclink('link-198', 'http', 'link-42');">http</a></tt><tt class="py-op">.</tt><tt id="link-199" 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-199', 'request', 'link-56');">request</a></tt> </tt>
+<a name="L1252"></a><tt class="py-lineno">1252</tt> <tt class="py-line"> </tt>
+<a name="L1253"></a><tt class="py-lineno">1253</tt> <tt class="py-line"> <tt class="py-comment"># The closure that will replace 'httplib2.Http.request'.</tt> </tt>
+<a name="L1254"></a><tt class="py-lineno">1254</tt> <tt class="py-line"> <tt class="py-keyword">def</tt> <tt class="py-def-name">new_request</tt><tt class="py-op">(</tt><tt class="py-param">uri</tt><tt class="py-op">,</tt> <tt class="py-param">method</tt><tt class="py-op">=</tt><tt class="py-string">'GET'</tt><tt class="py-op">,</tt> <tt class="py-param">body</tt><tt class="py-op">=</tt><tt class="py-name">None</tt><tt class="py-op">,</tt> <tt class="py-param">headers</tt><tt class="py-op">=</tt><tt class="py-name">None</tt><tt class="py-op">,</tt> </tt>
+<a name="L1255"></a><tt class="py-lineno">1255</tt> <tt class="py-line"> <tt class="py-param">redirections</tt><tt class="py-op">=</tt><tt class="py-name">httplib2</tt><tt class="py-op">.</tt><tt class="py-name">DEFAULT_MAX_REDIRECTS</tt><tt class="py-op">,</tt> </tt>
+<a name="L1256"></a><tt class="py-lineno">1256</tt> <tt class="py-line"> <tt class="py-param">connection_type</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="L1257"></a><tt class="py-lineno">1257</tt> <tt class="py-line"> <tt class="py-docstring">"""Modify the request headers to add the user-agent."""</tt> </tt>
+<a name="L1258"></a><tt class="py-lineno">1258</tt> <tt class="py-line"> <tt class="py-keyword">if</tt> <tt class="py-name">headers</tt> <tt class="py-keyword">is</tt> <tt class="py-name">None</tt><tt class="py-op">:</tt> </tt>
+<a name="L1259"></a><tt class="py-lineno">1259</tt> <tt class="py-line"> <tt class="py-name">headers</tt> <tt class="py-op">=</tt> <tt class="py-op">{</tt><tt class="py-op">}</tt> </tt>
+<a name="L1260"></a><tt class="py-lineno">1260</tt> <tt class="py-line"> <tt class="py-keyword">if</tt> <tt class="py-string">'user-agent'</tt> <tt class="py-keyword">in</tt> <tt class="py-name">headers</tt><tt class="py-op">:</tt> </tt>
+<a name="L1261"></a><tt class="py-lineno">1261</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">user_agent</tt> <tt class="py-op">+</tt> <tt class="py-string">' '</tt> <tt class="py-op">+</tt> <tt class="py-name">headers</tt><tt class="py-op">[</tt><tt class="py-string">'user-agent'</tt><tt class="py-op">]</tt> </tt>
+<a name="L1262"></a><tt class="py-lineno">1262</tt> <tt class="py-line"> <tt class="py-keyword">else</tt><tt class="py-op">:</tt> </tt>
+<a name="L1263"></a><tt class="py-lineno">1263</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">user_agent</tt> </tt>
+<a name="L1264"></a><tt class="py-lineno">1264</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">request_orig</tt><tt class="py-op">(</tt><tt class="py-name">uri</tt><tt class="py-op">,</tt> <tt class="py-name">method</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>
+<a name="L1265"></a><tt class="py-lineno">1265</tt> <tt class="py-line"> <tt class="py-name">redirections</tt><tt class="py-op">,</tt> <tt class="py-name">connection_type</tt><tt class="py-op">)</tt> </tt>
+<a name="L1266"></a><tt class="py-lineno">1266</tt> <tt class="py-line"> <tt class="py-keyword">return</tt> <tt class="py-name">resp</tt><tt class="py-op">,</tt> <tt class="py-name">content</tt> </tt>
+</div><a name="L1267"></a><tt class="py-lineno">1267</tt> <tt class="py-line"> </tt>
+<a name="L1268"></a><tt class="py-lineno">1268</tt> <tt class="py-line"> <tt id="link-200" class="py-name"><a title="apiclient.http
+oauth2client.appengine.OAuth2Decorator.http" class="py-name" href="#" onclick="return doclink('link-200', 'http', 'link-42');">http</a></tt><tt class="py-op">.</tt><tt id="link-201" 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-201', 'request', 'link-56');">request</a></tt> <tt class="py-op">=</tt> <tt class="py-name">new_request</tt> </tt>
+<a name="L1269"></a><tt class="py-lineno">1269</tt> <tt class="py-line"> <tt class="py-keyword">return</tt> <tt id="link-202" class="py-name"><a title="apiclient.http
+oauth2client.appengine.OAuth2Decorator.http" class="py-name" href="#" onclick="return doclink('link-202', 'http', 'link-42');">http</a></tt> </tt>
+</div><a name="L1270"></a><tt class="py-lineno">1270</tt> <tt class="py-line"> </tt>
+<a name="tunnel_patch"></a><div id="tunnel_patch-def"><a name="L1271"></a><tt class="py-lineno">1271</tt> <tt class="py-line"> </tt>
+<a name="L1272"></a><tt class="py-lineno">1272</tt> <a class="py-toggle" href="#" id="tunnel_patch-toggle" onclick="return toggle('tunnel_patch');">-</a><tt class="py-line"><tt class="py-keyword">def</tt> <a class="py-def-name" href="apiclient.http-module.html#tunnel_patch">tunnel_patch</a><tt class="py-op">(</tt><tt class="py-param">http</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+</div><div id="tunnel_patch-collapsed" style="display:none;" pad="++++" indent="++++"></div><div id="tunnel_patch-expanded"><a name="L1273"></a><tt class="py-lineno">1273</tt> <tt class="py-line"> <tt class="py-docstring">"""Tunnel PATCH requests over POST.</tt> </tt>
+<a name="L1274"></a><tt class="py-lineno">1274</tt> <tt class="py-line"><tt class="py-docstring"> Args:</tt> </tt>
+<a name="L1275"></a><tt class="py-lineno">1275</tt> <tt class="py-line"><tt class="py-docstring"> http - An instance of httplib2.Http</tt> </tt>
+<a name="L1276"></a><tt class="py-lineno">1276</tt> <tt class="py-line"><tt class="py-docstring"> or something that acts like it.</tt> </tt>
+<a name="L1277"></a><tt class="py-lineno">1277</tt> <tt class="py-line"><tt class="py-docstring"></tt> </tt>
+<a name="L1278"></a><tt class="py-lineno">1278</tt> <tt class="py-line"><tt class="py-docstring"> Returns:</tt> </tt>
+<a name="L1279"></a><tt class="py-lineno">1279</tt> <tt class="py-line"><tt class="py-docstring"> A modified instance of http that was passed in.</tt> </tt>
+<a name="L1280"></a><tt class="py-lineno">1280</tt> <tt class="py-line"><tt class="py-docstring"></tt> </tt>
+<a name="L1281"></a><tt class="py-lineno">1281</tt> <tt class="py-line"><tt class="py-docstring"> Example:</tt> </tt>
+<a name="L1282"></a><tt class="py-lineno">1282</tt> <tt class="py-line"><tt class="py-docstring"></tt> </tt>
+<a name="L1283"></a><tt class="py-lineno">1283</tt> <tt class="py-line"><tt class="py-docstring"> h = httplib2.Http()</tt> </tt>
+<a name="L1284"></a><tt class="py-lineno">1284</tt> <tt class="py-line"><tt class="py-docstring"> h = tunnel_patch(h, "my-app-name/6.0")</tt> </tt>
+<a name="L1285"></a><tt class="py-lineno">1285</tt> <tt class="py-line"><tt class="py-docstring"></tt> </tt>
+<a name="L1286"></a><tt class="py-lineno">1286</tt> <tt class="py-line"><tt class="py-docstring"> Useful if you are running on a platform that doesn't support PATCH.</tt> </tt>
+<a name="L1287"></a><tt class="py-lineno">1287</tt> <tt class="py-line"><tt class="py-docstring"> Apply this last if you are using OAuth 1.0, as changing the method</tt> </tt>
+<a name="L1288"></a><tt class="py-lineno">1288</tt> <tt class="py-line"><tt class="py-docstring"> will result in a different signature.</tt> </tt>
+<a name="L1289"></a><tt class="py-lineno">1289</tt> <tt class="py-line"><tt class="py-docstring"> """</tt> </tt>
+<a name="L1290"></a><tt class="py-lineno">1290</tt> <tt class="py-line"> <tt class="py-name">request_orig</tt> <tt class="py-op">=</tt> <tt id="link-203" class="py-name"><a title="apiclient.http
+oauth2client.appengine.OAuth2Decorator.http" class="py-name" href="#" onclick="return doclink('link-203', 'http', 'link-42');">http</a></tt><tt class="py-op">.</tt><tt id="link-204" 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-204', 'request', 'link-56');">request</a></tt> </tt>
+<a name="L1291"></a><tt class="py-lineno">1291</tt> <tt class="py-line"> </tt>
+<a name="L1292"></a><tt class="py-lineno">1292</tt> <tt class="py-line"> <tt class="py-comment"># The closure that will replace 'httplib2.Http.request'.</tt> </tt>
+<a name="L1293"></a><tt class="py-lineno">1293</tt> <tt class="py-line"> <tt class="py-keyword">def</tt> <tt class="py-def-name">new_request</tt><tt class="py-op">(</tt><tt class="py-param">uri</tt><tt class="py-op">,</tt> <tt class="py-param">method</tt><tt class="py-op">=</tt><tt class="py-string">'GET'</tt><tt class="py-op">,</tt> <tt class="py-param">body</tt><tt class="py-op">=</tt><tt class="py-name">None</tt><tt class="py-op">,</tt> <tt class="py-param">headers</tt><tt class="py-op">=</tt><tt class="py-name">None</tt><tt class="py-op">,</tt> </tt>
+<a name="L1294"></a><tt class="py-lineno">1294</tt> <tt class="py-line"> <tt class="py-param">redirections</tt><tt class="py-op">=</tt><tt class="py-name">httplib2</tt><tt class="py-op">.</tt><tt class="py-name">DEFAULT_MAX_REDIRECTS</tt><tt class="py-op">,</tt> </tt>
+<a name="L1295"></a><tt class="py-lineno">1295</tt> <tt class="py-line"> <tt class="py-param">connection_type</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="L1296"></a><tt class="py-lineno">1296</tt> <tt class="py-line"> <tt class="py-docstring">"""Modify the request headers to add the user-agent."""</tt> </tt>
+<a name="L1297"></a><tt class="py-lineno">1297</tt> <tt class="py-line"> <tt class="py-keyword">if</tt> <tt class="py-name">headers</tt> <tt class="py-keyword">is</tt> <tt class="py-name">None</tt><tt class="py-op">:</tt> </tt>
+<a name="L1298"></a><tt class="py-lineno">1298</tt> <tt class="py-line"> <tt class="py-name">headers</tt> <tt class="py-op">=</tt> <tt class="py-op">{</tt><tt class="py-op">}</tt> </tt>
+<a name="L1299"></a><tt class="py-lineno">1299</tt> <tt class="py-line"> <tt class="py-keyword">if</tt> <tt class="py-name">method</tt> <tt class="py-op">==</tt> <tt class="py-string">'PATCH'</tt><tt class="py-op">:</tt> </tt>
+<a name="L1300"></a><tt class="py-lineno">1300</tt> <tt class="py-line"> <tt class="py-keyword">if</tt> <tt class="py-string">'oauth_token'</tt> <tt class="py-keyword">in</tt> <tt class="py-name">headers</tt><tt class="py-op">.</tt><tt id="link-205" 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-205', 'get', 'link-48');">get</a></tt><tt class="py-op">(</tt><tt class="py-string">'authorization'</tt><tt class="py-op">,</tt> <tt class="py-string">''</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+<a name="L1301"></a><tt class="py-lineno">1301</tt> <tt class="py-line"> <tt class="py-name">logging</tt><tt class="py-op">.</tt><tt class="py-name">warning</tt><tt class="py-op">(</tt> </tt>
+<a name="L1302"></a><tt class="py-lineno">1302</tt> <tt class="py-line"> <tt class="py-string">'OAuth 1.0 request made with Credentials after tunnel_patch.'</tt><tt class="py-op">)</tt> </tt>
+<a name="L1303"></a><tt class="py-lineno">1303</tt> <tt class="py-line"> <tt class="py-name">headers</tt><tt class="py-op">[</tt><tt class="py-string">'x-http-method-override'</tt><tt class="py-op">]</tt> <tt class="py-op">=</tt> <tt class="py-string">"PATCH"</tt> </tt>
+<a name="L1304"></a><tt class="py-lineno">1304</tt> <tt class="py-line"> <tt class="py-name">method</tt> <tt class="py-op">=</tt> <tt class="py-string">'POST'</tt> </tt>
+<a name="L1305"></a><tt class="py-lineno">1305</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">request_orig</tt><tt class="py-op">(</tt><tt class="py-name">uri</tt><tt class="py-op">,</tt> <tt class="py-name">method</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>
+<a name="L1306"></a><tt class="py-lineno">1306</tt> <tt class="py-line"> <tt class="py-name">redirections</tt><tt class="py-op">,</tt> <tt class="py-name">connection_type</tt><tt class="py-op">)</tt> </tt>
+<a name="L1307"></a><tt class="py-lineno">1307</tt> <tt class="py-line"> <tt class="py-keyword">return</tt> <tt class="py-name">resp</tt><tt class="py-op">,</tt> <tt class="py-name">content</tt> </tt>
+</div><a name="L1308"></a><tt class="py-lineno">1308</tt> <tt class="py-line"> </tt>
+<a name="L1309"></a><tt class="py-lineno">1309</tt> <tt class="py-line"> <tt id="link-206" class="py-name"><a title="apiclient.http
+oauth2client.appengine.OAuth2Decorator.http" class="py-name" href="#" onclick="return doclink('link-206', 'http', 'link-42');">http</a></tt><tt class="py-op">.</tt><tt id="link-207" 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-207', 'request', 'link-56');">request</a></tt> <tt class="py-op">=</tt> <tt class="py-name">new_request</tt> </tt>
+<a name="L1310"></a><tt class="py-lineno">1310</tt> <tt class="py-line"> <tt class="py-keyword">return</tt> <tt id="link-208" class="py-name"><a title="apiclient.http
+oauth2client.appengine.OAuth2Decorator.http" class="py-name" href="#" onclick="return doclink('link-208', 'http', 'link-42');">http</a></tt> </tt>
+</div><a name="L1311"></a><tt class="py-lineno">1311</tt> <tt class="py-line"> </tt><script type="text/javascript">
<!--
expandto(location.href);
// -->
@@ -1449,7 +1721,7 @@
<table border="0" cellpadding="0" cellspacing="0" width="100%%">
<tr>
<td align="left" class="footer">
- Generated by Epydoc 3.0.1 on Tue Jun 5 09:03:12 2012
+ Generated by Epydoc 3.0.1 on Thu Jun 14 08:01:59 2012
</td>
<td align="right" class="footer">
<a target="mainFrame" href="http://epydoc.sourceforge.net"
diff --git a/docs/epy/apiclient.http.BatchHttpRequest-class.html b/docs/epy/apiclient.http.BatchHttpRequest-class.html
index b1f4b22..acd719f 100644
--- a/docs/epy/apiclient.http.BatchHttpRequest-class.html
+++ b/docs/epy/apiclient.http.BatchHttpRequest-class.html
@@ -689,7 +689,7 @@
<table border="0" cellpadding="0" cellspacing="0" width="100%%">
<tr>
<td align="left" class="footer">
- Generated by Epydoc 3.0.1 on Tue Jun 5 09:03:06 2012
+ Generated by Epydoc 3.0.1 on Thu Jun 14 08:01:56 2012
</td>
<td align="right" class="footer">
<a target="mainFrame" href="http://epydoc.sourceforge.net"
diff --git a/docs/epy/apiclient.http.HttpMock-class.html b/docs/epy/apiclient.http.HttpMock-class.html
index d1dcd60..8cc0805 100644
--- a/docs/epy/apiclient.http.HttpMock-class.html
+++ b/docs/epy/apiclient.http.HttpMock-class.html
@@ -244,7 +244,7 @@
<table border="0" cellpadding="0" cellspacing="0" width="100%%">
<tr>
<td align="left" class="footer">
- Generated by Epydoc 3.0.1 on Tue Jun 5 09:03:06 2012
+ Generated by Epydoc 3.0.1 on Thu Jun 14 08:01:56 2012
</td>
<td align="right" class="footer">
<a target="mainFrame" href="http://epydoc.sourceforge.net"
diff --git a/docs/epy/apiclient.http.HttpMockSequence-class.html b/docs/epy/apiclient.http.HttpMockSequence-class.html
index 2c5297b..aa09735 100644
--- a/docs/epy/apiclient.http.HttpMockSequence-class.html
+++ b/docs/epy/apiclient.http.HttpMockSequence-class.html
@@ -261,7 +261,7 @@
<table border="0" cellpadding="0" cellspacing="0" width="100%%">
<tr>
<td align="left" class="footer">
- Generated by Epydoc 3.0.1 on Tue Jun 5 09:03:06 2012
+ Generated by Epydoc 3.0.1 on Thu Jun 14 08:01:56 2012
</td>
<td align="right" class="footer">
<a target="mainFrame" href="http://epydoc.sourceforge.net"
diff --git a/docs/epy/apiclient.http.HttpRequest-class.html b/docs/epy/apiclient.http.HttpRequest-class.html
index 46cd186..9f6c8e1 100644
--- a/docs/epy/apiclient.http.HttpRequest-class.html
+++ b/docs/epy/apiclient.http.HttpRequest-class.html
@@ -150,6 +150,25 @@
</td>
</tr>
+<tr class="private">
+ <td width="15%" align="right" valign="top" class="summary">
+ <span class="summary-type"> </span>
+ </td><td class="summary">
+ <table width="100%" cellpadding="0" cellspacing="0" border="0">
+ <tr>
+ <td><span class="summary-sig"><a href="apiclient.http.HttpRequest-class.html#_process_response" class="summary-sig-name" onclick="show_private();">_process_response</a>(<span class="summary-sig-arg">self</span>,
+ <span class="summary-sig-arg">resp</span>,
+ <span class="summary-sig-arg">content</span>)</span><br />
+ Process the response from a single chunk upload.</td>
+ <td align="right" valign="top">
+ <span class="codelink"><a href="apiclient.http-pysrc.html#HttpRequest._process_response">source code</a></span>
+
+ </td>
+ </tr>
+ </table>
+
+ </td>
+ </tr>
<tr>
<td width="15%" align="right" valign="top" class="summary">
<span class="summary-type"> </span>
@@ -388,6 +407,45 @@
(status, body): (ResumableMediaStatus, object)
The body will be None until the resumable media is fully uploaded.
+Raises:
+ apiclient.errors.HttpError if the response was not a 2xx.
+ httplib2.Error if a transport error has occured.
+
+</pre>
+ <dl class="fields">
+ </dl>
+</td></tr></table>
+</div>
+<a name="_process_response"></a>
+<div class="private">
+<table class="details" border="1" cellpadding="3"
+ cellspacing="0" width="100%" bgcolor="white">
+<tr><td>
+ <table width="100%" cellpadding="0" cellspacing="0" border="0">
+ <tr valign="top"><td>
+ <h3 class="epydoc"><span class="sig"><span class="sig-name">_process_response</span>(<span class="sig-arg">self</span>,
+ <span class="sig-arg">resp</span>,
+ <span class="sig-arg">content</span>)</span>
+ </h3>
+ </td><td align="right" valign="top"
+ ><span class="codelink"><a href="apiclient.http-pysrc.html#HttpRequest._process_response">source code</a></span>
+ </td>
+ </tr></table>
+
+ <pre class="literalblock">
+Process the response from a single chunk upload.
+
+Args:
+ resp: httplib2.Response, the response object.
+ content: string, the content of the response.
+
+Returns:
+ (status, body): (ResumableMediaStatus, object)
+ The body will be None until the resumable media is fully uploaded.
+
+Raises:
+ apiclient.errors.HttpError if the response was not a 2xx or a 308.
+
</pre>
<dl class="fields">
</dl>
@@ -417,7 +475,7 @@
<table border="0" cellpadding="0" cellspacing="0" width="100%%">
<tr>
<td align="left" class="footer">
- Generated by Epydoc 3.0.1 on Tue Jun 5 09:03:06 2012
+ Generated by Epydoc 3.0.1 on Thu Jun 14 08:01:56 2012
</td>
<td align="right" class="footer">
<a target="mainFrame" href="http://epydoc.sourceforge.net"
diff --git a/docs/epy/apiclient.http.HttpRequestMock-class.html b/docs/epy/apiclient.http.HttpRequestMock-class.html
index b4a7cd5..e3e4d9a 100644
--- a/docs/epy/apiclient.http.HttpRequestMock-class.html
+++ b/docs/epy/apiclient.http.HttpRequestMock-class.html
@@ -273,7 +273,7 @@
<table border="0" cellpadding="0" cellspacing="0" width="100%%">
<tr>
<td align="left" class="footer">
- Generated by Epydoc 3.0.1 on Tue Jun 5 09:03:06 2012
+ Generated by Epydoc 3.0.1 on Thu Jun 14 08:01:56 2012
</td>
<td align="right" class="footer">
<a target="mainFrame" href="http://epydoc.sourceforge.net"
diff --git a/docs/epy/apiclient.http.MediaFileUpload-class.html b/docs/epy/apiclient.http.MediaFileUpload-class.html
index d8d623c..8fd8994 100644
--- a/docs/epy/apiclient.http.MediaFileUpload-class.html
+++ b/docs/epy/apiclient.http.MediaFileUpload-class.html
@@ -57,10 +57,10 @@
<center>
<center> <map id="uml_class_diagram_for_apiclien_17" name="uml_class_diagram_for_apiclien_17">
<area shape="rect" href="apiclient.http.MediaFileUpload-class.html#__init__" title="Constructor." alt="" coords="17,111,481,129"/>
-<area shape="rect" href="apiclient.http.MediaFileUpload-class.html#mimetype" title="apiclient.http.MediaFileUpload.mimetype" alt="" coords="17,129,481,148"/>
-<area shape="rect" href="apiclient.http.MediaFileUpload-class.html#size" title="apiclient.http.MediaFileUpload.size" alt="" coords="17,148,481,167"/>
-<area shape="rect" href="apiclient.http.MediaFileUpload-class.html#chunksize" title="apiclient.http.MediaFileUpload.chunksize" alt="" coords="17,167,481,185"/>
-<area shape="rect" href="apiclient.http.MediaFileUpload-class.html#resumable" title="apiclient.http.MediaFileUpload.resumable" alt="" coords="17,185,481,204"/>
+<area shape="rect" href="apiclient.http.MediaFileUpload-class.html#chunksize" title="Chunk size for resumable uploads." alt="" coords="17,129,481,148"/>
+<area shape="rect" href="apiclient.http.MediaFileUpload-class.html#mimetype" title="Mime type of the body." alt="" coords="17,148,481,167"/>
+<area shape="rect" href="apiclient.http.MediaFileUpload-class.html#size" title="Size of upload." alt="" coords="17,167,481,185"/>
+<area shape="rect" href="apiclient.http.MediaFileUpload-class.html#resumable" title="Whether this upload is resumable." alt="" coords="17,185,481,204"/>
<area shape="rect" href="apiclient.http.MediaFileUpload-class.html#getbytes" title="Get bytes from the media." alt="" coords="17,204,481,223"/>
<area shape="rect" href="apiclient.http.MediaFileUpload-class.html#to_json" title="Creating a JSON representation of an instance of Credentials." alt="" coords="17,223,481,241"/>
<area shape="rect" href="apiclient.http.MediaFileUpload-class.html#from_json" title="apiclient.http.MediaFileUpload.from_json" alt="" coords="17,241,481,260"/>
@@ -79,8 +79,8 @@
method. For example, if we had a service that allowed uploading images:
- media = MediaFileUpload('smiley.png', mimetype='image/png', chunksize=1000,
- resumable=True)
+ media = MediaFileUpload('smiley.png', mimetype='image/png',
+ chunksize=1024*1024, resumable=True)
service.objects().insert(
bucket=buckets['items'][0]['id'],
name='smiley.png',
@@ -114,7 +114,7 @@
<td><span class="summary-sig"><a href="apiclient.http.MediaFileUpload-class.html#__init__" class="summary-sig-name">__init__</a>(<span class="summary-sig-arg">self</span>,
<span class="summary-sig-arg">filename</span>,
<span class="summary-sig-arg">mimetype</span>=<span class="summary-sig-default">None</span>,
- <span class="summary-sig-arg">chunksize</span>=<span class="summary-sig-default">262144</span>,
+ <span class="summary-sig-arg">chunksize</span>=<span class="summary-sig-default">524288</span>,
<span class="summary-sig-arg">resumable</span>=<span class="summary-sig-default">False</span>)</span><br />
Constructor.</td>
<td align="right" valign="top">
@@ -132,39 +132,8 @@
</td><td class="summary">
<table width="100%" cellpadding="0" cellspacing="0" border="0">
<tr>
- <td><span class="summary-sig"><a href="apiclient.http.MediaFileUpload-class.html#mimetype" class="summary-sig-name">mimetype</a>(<span class="summary-sig-arg">self</span>)</span></td>
- <td align="right" valign="top">
- <span class="codelink"><a href="apiclient.http-pysrc.html#MediaFileUpload.mimetype">source code</a></span>
-
- </td>
- </tr>
- </table>
-
- </td>
- </tr>
-<tr>
- <td width="15%" align="right" valign="top" class="summary">
- <span class="summary-type"> </span>
- </td><td class="summary">
- <table width="100%" cellpadding="0" cellspacing="0" border="0">
- <tr>
- <td><span class="summary-sig"><a href="apiclient.http.MediaFileUpload-class.html#size" class="summary-sig-name">size</a>(<span class="summary-sig-arg">self</span>)</span></td>
- <td align="right" valign="top">
- <span class="codelink"><a href="apiclient.http-pysrc.html#MediaFileUpload.size">source code</a></span>
-
- </td>
- </tr>
- </table>
-
- </td>
- </tr>
-<tr>
- <td width="15%" align="right" valign="top" class="summary">
- <span class="summary-type"> </span>
- </td><td class="summary">
- <table width="100%" cellpadding="0" cellspacing="0" border="0">
- <tr>
- <td><span class="summary-sig"><a href="apiclient.http.MediaFileUpload-class.html#chunksize" class="summary-sig-name">chunksize</a>(<span class="summary-sig-arg">self</span>)</span></td>
+ <td><span class="summary-sig"><a href="apiclient.http.MediaFileUpload-class.html#chunksize" class="summary-sig-name">chunksize</a>(<span class="summary-sig-arg">self</span>)</span><br />
+ Chunk size for resumable uploads.</td>
<td align="right" valign="top">
<span class="codelink"><a href="apiclient.http-pysrc.html#MediaFileUpload.chunksize">source code</a></span>
@@ -180,7 +149,42 @@
</td><td class="summary">
<table width="100%" cellpadding="0" cellspacing="0" border="0">
<tr>
- <td><span class="summary-sig"><a href="apiclient.http.MediaFileUpload-class.html#resumable" class="summary-sig-name">resumable</a>(<span class="summary-sig-arg">self</span>)</span></td>
+ <td><span class="summary-sig"><a href="apiclient.http.MediaFileUpload-class.html#mimetype" class="summary-sig-name">mimetype</a>(<span class="summary-sig-arg">self</span>)</span><br />
+ Mime type of the body.</td>
+ <td align="right" valign="top">
+ <span class="codelink"><a href="apiclient.http-pysrc.html#MediaFileUpload.mimetype">source code</a></span>
+
+ </td>
+ </tr>
+ </table>
+
+ </td>
+ </tr>
+<tr>
+ <td width="15%" align="right" valign="top" class="summary">
+ <span class="summary-type"> </span>
+ </td><td class="summary">
+ <table width="100%" cellpadding="0" cellspacing="0" border="0">
+ <tr>
+ <td><span class="summary-sig"><a href="apiclient.http.MediaFileUpload-class.html#size" class="summary-sig-name">size</a>(<span class="summary-sig-arg">self</span>)</span><br />
+ Size of upload.</td>
+ <td align="right" valign="top">
+ <span class="codelink"><a href="apiclient.http-pysrc.html#MediaFileUpload.size">source code</a></span>
+
+ </td>
+ </tr>
+ </table>
+
+ </td>
+ </tr>
+<tr>
+ <td width="15%" align="right" valign="top" class="summary">
+ <span class="summary-type"> </span>
+ </td><td class="summary">
+ <table width="100%" cellpadding="0" cellspacing="0" border="0">
+ <tr>
+ <td><span class="summary-sig"><a href="apiclient.http.MediaFileUpload-class.html#resumable" class="summary-sig-name">resumable</a>(<span class="summary-sig-arg">self</span>)</span><br />
+ Whether this upload is resumable.</td>
<td align="right" valign="top">
<span class="codelink"><a href="apiclient.http-pysrc.html#MediaFileUpload.resumable">source code</a></span>
@@ -360,7 +364,7 @@
<h3 class="epydoc"><span class="sig"><span class="sig-name">__init__</span>(<span class="sig-arg">self</span>,
<span class="sig-arg">filename</span>,
<span class="sig-arg">mimetype</span>=<span class="sig-default">None</span>,
- <span class="sig-arg">chunksize</span>=<span class="sig-default">262144</span>,
+ <span class="sig-arg">chunksize</span>=<span class="sig-default">524288</span>,
<span class="sig-arg">resumable</span>=<span class="sig-default">False</span>)</span>
<br /><em class="fname">(Constructor)</em>
</h3>
@@ -389,6 +393,34 @@
</dl>
</td></tr></table>
</div>
+<a name="chunksize"></a>
+<div>
+<table class="details" border="1" cellpadding="3"
+ cellspacing="0" width="100%" bgcolor="white">
+<tr><td>
+ <table width="100%" cellpadding="0" cellspacing="0" border="0">
+ <tr valign="top"><td>
+ <h3 class="epydoc"><span class="sig"><span class="sig-name">chunksize</span>(<span class="sig-arg">self</span>)</span>
+ </h3>
+ </td><td align="right" valign="top"
+ ><span class="codelink"><a href="apiclient.http-pysrc.html#MediaFileUpload.chunksize">source code</a></span>
+ </td>
+ </tr></table>
+
+ <pre class="literalblock">
+Chunk size for resumable uploads.
+
+Returns:
+ Chunk size in bytes.
+
+</pre>
+ <dl class="fields">
+ <dt>Overrides:
+ <a href="apiclient.http.MediaUpload-class.html#chunksize">MediaUpload.chunksize</a>
+ </dt>
+ </dl>
+</td></tr></table>
+</div>
<a name="mimetype"></a>
<div>
<table class="details" border="1" cellpadding="3"
@@ -403,7 +435,13 @@
</td>
</tr></table>
-
+ <pre class="literalblock">
+Mime type of the body.
+
+Returns:
+ Mime type.
+
+</pre>
<dl class="fields">
<dt>Overrides:
<a href="apiclient.http.MediaUpload-class.html#mimetype">MediaUpload.mimetype</a>
@@ -425,7 +463,13 @@
</td>
</tr></table>
-
+ <pre class="literalblock">
+Size of upload.
+
+Returns:
+ Size of the body, or None of the size is unknown.
+
+</pre>
<dl class="fields">
<dt>Overrides:
<a href="apiclient.http.MediaUpload-class.html#size">MediaUpload.size</a>
@@ -433,28 +477,6 @@
</dl>
</td></tr></table>
</div>
-<a name="chunksize"></a>
-<div>
-<table class="details" border="1" cellpadding="3"
- cellspacing="0" width="100%" bgcolor="white">
-<tr><td>
- <table width="100%" cellpadding="0" cellspacing="0" border="0">
- <tr valign="top"><td>
- <h3 class="epydoc"><span class="sig"><span class="sig-name">chunksize</span>(<span class="sig-arg">self</span>)</span>
- </h3>
- </td><td align="right" valign="top"
- ><span class="codelink"><a href="apiclient.http-pysrc.html#MediaFileUpload.chunksize">source code</a></span>
- </td>
- </tr></table>
-
-
- <dl class="fields">
- <dt>Overrides:
- <a href="apiclient.http.MediaUpload-class.html#chunksize">MediaUpload.chunksize</a>
- </dt>
- </dl>
-</td></tr></table>
-</div>
<a name="resumable"></a>
<div>
<table class="details" border="1" cellpadding="3"
@@ -469,7 +491,13 @@
</td>
</tr></table>
-
+ <pre class="literalblock">
+Whether this upload is resumable.
+
+Returns:
+ True if resumable upload or False.
+
+</pre>
<dl class="fields">
<dt>Overrides:
<a href="apiclient.http.MediaUpload-class.html#resumable">MediaUpload.resumable</a>
@@ -565,7 +593,7 @@
<table border="0" cellpadding="0" cellspacing="0" width="100%%">
<tr>
<td align="left" class="footer">
- Generated by Epydoc 3.0.1 on Tue Jun 5 09:03:06 2012
+ Generated by Epydoc 3.0.1 on Thu Jun 14 08:01:56 2012
</td>
<td align="right" class="footer">
<a target="mainFrame" href="http://epydoc.sourceforge.net"
diff --git a/docs/epy/apiclient.http.MediaInMemoryUpload-class.html b/docs/epy/apiclient.http.MediaInMemoryUpload-class.html
index 25588c6..444ef1c 100644
--- a/docs/epy/apiclient.http.MediaInMemoryUpload-class.html
+++ b/docs/epy/apiclient.http.MediaInMemoryUpload-class.html
@@ -106,7 +106,7 @@
<td><span class="summary-sig"><a href="apiclient.http.MediaInMemoryUpload-class.html#__init__" class="summary-sig-name">__init__</a>(<span class="summary-sig-arg">self</span>,
<span class="summary-sig-arg">body</span>,
<span class="summary-sig-arg">mimetype</span>=<span class="summary-sig-default"><code class="variable-quote">'</code><code class="variable-string">application/octet-stream</code><code class="variable-quote">'</code></span>,
- <span class="summary-sig-arg">chunksize</span>=<span class="summary-sig-default">262144</span>,
+ <span class="summary-sig-arg">chunksize</span>=<span class="summary-sig-default">524288</span>,
<span class="summary-sig-arg">resumable</span>=<span class="summary-sig-default">False</span>)</span><br />
Create a new MediaBytesUpload.</td>
<td align="right" valign="top">
@@ -356,7 +356,7 @@
<h3 class="epydoc"><span class="sig"><span class="sig-name">__init__</span>(<span class="sig-arg">self</span>,
<span class="sig-arg">body</span>,
<span class="sig-arg">mimetype</span>=<span class="sig-default"><code class="variable-quote">'</code><code class="variable-string">application/octet-stream</code><code class="variable-quote">'</code></span>,
- <span class="sig-arg">chunksize</span>=<span class="sig-default">262144</span>,
+ <span class="sig-arg">chunksize</span>=<span class="sig-default">524288</span>,
<span class="sig-arg">resumable</span>=<span class="sig-default">False</span>)</span>
<br /><em class="fname">(Constructor)</em>
</h3>
@@ -459,7 +459,7 @@
Size of upload.
Returns:
- Size of the body.
+ Size of the body, or None of the size is unknown.
</pre>
<dl class="fields">
@@ -585,7 +585,7 @@
<table border="0" cellpadding="0" cellspacing="0" width="100%%">
<tr>
<td align="left" class="footer">
- Generated by Epydoc 3.0.1 on Tue Jun 5 09:03:06 2012
+ Generated by Epydoc 3.0.1 on Thu Jun 14 08:01:56 2012
</td>
<td align="right" class="footer">
<a target="mainFrame" href="http://epydoc.sourceforge.net"
diff --git a/docs/epy/apiclient.http.MediaIoBaseUpload-class.html b/docs/epy/apiclient.http.MediaIoBaseUpload-class.html
new file mode 100644
index 0000000..39b0ecc
--- /dev/null
+++ b/docs/epy/apiclient.http.MediaIoBaseUpload-class.html
@@ -0,0 +1,577 @@
+<?xml version="1.0" encoding="ascii"?>
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
+ "DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
+<head>
+ <title>apiclient.http.MediaIoBaseUpload</title>
+ <link rel="stylesheet" href="epydoc.css" type="text/css" />
+ <script type="text/javascript" src="epydoc.js"></script>
+</head>
+
+<body bgcolor="white" text="black" link="blue" vlink="#204080"
+ alink="#204080">
+<!-- ==================== NAVIGATION BAR ==================== -->
+<table class="navbar" border="0" width="100%" cellpadding="0"
+ bgcolor="#a0c0ff" cellspacing="0">
+ <tr valign="middle">
+
+ <!-- Tree link -->
+ <th> <a
+ href="module-tree.html">Trees</a> </th>
+
+ <!-- Index link -->
+ <th> <a
+ href="identifier-index.html">Indices</a> </th>
+
+ <!-- Help link -->
+ <th> <a
+ href="help.html">Help</a> </th>
+
+ <th class="navbar" width="100%"></th>
+ </tr>
+</table>
+<table width="100%" cellpadding="0" cellspacing="0">
+ <tr valign="top">
+ <td width="100%">
+ <span class="breadcrumbs">
+ <a href="apiclient-module.html">Package apiclient</a> ::
+ <a href="apiclient.http-module.html">Module http</a> ::
+ Class MediaIoBaseUpload
+ </span>
+ </td>
+ <td>
+ <table cellpadding="0" cellspacing="0">
+ <!-- hide/show private -->
+ <tr><td align="right"><span class="options">[<a href="javascript:void(0);" class="privatelink"
+ onclick="toggle_private();">hide private</a>]</span></td></tr>
+ <tr><td align="right"><span class="options"
+ >[<a href="frames.html" target="_top">frames</a
+ >] | <a href="apiclient.http.MediaIoBaseUpload-class.html"
+ target="_top">no frames</a>]</span></td></tr>
+ </table>
+ </td>
+ </tr>
+</table>
+<!-- ==================== CLASS DESCRIPTION ==================== -->
+<h1 class="epydoc">Class MediaIoBaseUpload</h1><p class="nomargin-top"><span class="codelink"><a href="apiclient.http-pysrc.html#MediaIoBaseUpload">source code</a></span></p>
+<center>
+<center> <map id="uml_class_diagram_for_apiclien_19" name="uml_class_diagram_for_apiclien_19">
+<area shape="rect" href="apiclient.http.MediaIoBaseUpload-class.html#__init__" title="Constructor." alt="" coords="17,111,404,129"/>
+<area shape="rect" href="apiclient.http.MediaIoBaseUpload-class.html#chunksize" title="Chunk size for resumable uploads." alt="" coords="17,129,404,148"/>
+<area shape="rect" href="apiclient.http.MediaIoBaseUpload-class.html#mimetype" title="Mime type of the body." alt="" coords="17,148,404,167"/>
+<area shape="rect" href="apiclient.http.MediaIoBaseUpload-class.html#size" title="Size of upload." alt="" coords="17,167,404,185"/>
+<area shape="rect" href="apiclient.http.MediaIoBaseUpload-class.html#resumable" title="Whether this upload is resumable." alt="" coords="17,185,404,204"/>
+<area shape="rect" href="apiclient.http.MediaIoBaseUpload-class.html#getbytes" title="Get bytes from the media." alt="" coords="17,204,404,223"/>
+<area shape="rect" href="apiclient.http.MediaIoBaseUpload-class.html#to_json" title="This upload type is not serializable." alt="" coords="17,223,404,241"/>
+<area shape="rect" href="apiclient.http.MediaIoBaseUpload-class.html" title="A MediaUpload for a io.Base objects." alt="" coords="16,85,405,243"/>
+<area shape="rect" href="apiclient.http.MediaUpload-class.html#new_from_json" title="Utility class method to instantiate a MediaUpload subclass from a JSON representation produced by to_json()." alt="" coords="144,36,277,55"/>
+<area shape="rect" href="apiclient.http.MediaUpload-class.html" title="Describes a media object to upload." alt="" coords="143,11,279,56"/>
+</map>
+ <img src="uml_class_diagram_for_apiclien_19.gif" alt='' usemap="#uml_class_diagram_for_apiclien_19" ismap="ismap" class="graph-without-title" />
+</center>
+</center>
+<hr />
+<pre class="literalblock">
+A MediaUpload for a io.Base objects.
+
+Note that the Python file object is compatible with io.Base and can be used
+with this class also.
+
+
+ fh = io.BytesIO('...Some data to upload...')
+ media = MediaIoBaseUpload(fh, mimetype='image/png',
+ chunksize=1024*1024, resumable=True)
+ service.objects().insert(
+ bucket='a_bucket_id',
+ name='smiley.png',
+ media_body=media).execute()
+
+</pre>
+
+<!-- ==================== INSTANCE METHODS ==================== -->
+<a name="section-InstanceMethods"></a>
+<table class="summary" border="1" cellpadding="3"
+ cellspacing="0" width="100%" bgcolor="white">
+<tr bgcolor="#70b0f0" class="table-header">
+ <td colspan="2" class="table-header">
+ <table border="0" cellpadding="0" cellspacing="0" width="100%">
+ <tr valign="top">
+ <td align="left"><span class="table-header">Instance Methods</span></td>
+ <td align="right" valign="top"
+ ><span class="options">[<a href="#section-InstanceMethods"
+ class="privatelink" onclick="toggle_private();"
+ >hide private</a>]</span></td>
+ </tr>
+ </table>
+ </td>
+</tr>
+<tr>
+ <td width="15%" align="right" valign="top" class="summary">
+ <span class="summary-type"> </span>
+ </td><td class="summary">
+ <table width="100%" cellpadding="0" cellspacing="0" border="0">
+ <tr>
+ <td><span class="summary-sig"><a href="apiclient.http.MediaIoBaseUpload-class.html#__init__" class="summary-sig-name">__init__</a>(<span class="summary-sig-arg">self</span>,
+ <span class="summary-sig-arg">fh</span>,
+ <span class="summary-sig-arg">mimetype</span>,
+ <span class="summary-sig-arg">chunksize</span>=<span class="summary-sig-default">524288</span>,
+ <span class="summary-sig-arg">resumable</span>=<span class="summary-sig-default">False</span>)</span><br />
+ Constructor.</td>
+ <td align="right" valign="top">
+ <span class="codelink"><a href="apiclient.http-pysrc.html#MediaIoBaseUpload.__init__">source code</a></span>
+
+ </td>
+ </tr>
+ </table>
+
+ </td>
+ </tr>
+<tr>
+ <td width="15%" align="right" valign="top" class="summary">
+ <span class="summary-type"> </span>
+ </td><td class="summary">
+ <table width="100%" cellpadding="0" cellspacing="0" border="0">
+ <tr>
+ <td><span class="summary-sig"><a href="apiclient.http.MediaIoBaseUpload-class.html#chunksize" class="summary-sig-name">chunksize</a>(<span class="summary-sig-arg">self</span>)</span><br />
+ Chunk size for resumable uploads.</td>
+ <td align="right" valign="top">
+ <span class="codelink"><a href="apiclient.http-pysrc.html#MediaIoBaseUpload.chunksize">source code</a></span>
+
+ </td>
+ </tr>
+ </table>
+
+ </td>
+ </tr>
+<tr>
+ <td width="15%" align="right" valign="top" class="summary">
+ <span class="summary-type"> </span>
+ </td><td class="summary">
+ <table width="100%" cellpadding="0" cellspacing="0" border="0">
+ <tr>
+ <td><span class="summary-sig"><a href="apiclient.http.MediaIoBaseUpload-class.html#mimetype" class="summary-sig-name">mimetype</a>(<span class="summary-sig-arg">self</span>)</span><br />
+ Mime type of the body.</td>
+ <td align="right" valign="top">
+ <span class="codelink"><a href="apiclient.http-pysrc.html#MediaIoBaseUpload.mimetype">source code</a></span>
+
+ </td>
+ </tr>
+ </table>
+
+ </td>
+ </tr>
+<tr>
+ <td width="15%" align="right" valign="top" class="summary">
+ <span class="summary-type"> </span>
+ </td><td class="summary">
+ <table width="100%" cellpadding="0" cellspacing="0" border="0">
+ <tr>
+ <td><span class="summary-sig"><a href="apiclient.http.MediaIoBaseUpload-class.html#size" class="summary-sig-name">size</a>(<span class="summary-sig-arg">self</span>)</span><br />
+ Size of upload.</td>
+ <td align="right" valign="top">
+ <span class="codelink"><a href="apiclient.http-pysrc.html#MediaIoBaseUpload.size">source code</a></span>
+
+ </td>
+ </tr>
+ </table>
+
+ </td>
+ </tr>
+<tr>
+ <td width="15%" align="right" valign="top" class="summary">
+ <span class="summary-type"> </span>
+ </td><td class="summary">
+ <table width="100%" cellpadding="0" cellspacing="0" border="0">
+ <tr>
+ <td><span class="summary-sig"><a href="apiclient.http.MediaIoBaseUpload-class.html#resumable" class="summary-sig-name">resumable</a>(<span class="summary-sig-arg">self</span>)</span><br />
+ Whether this upload is resumable.</td>
+ <td align="right" valign="top">
+ <span class="codelink"><a href="apiclient.http-pysrc.html#MediaIoBaseUpload.resumable">source code</a></span>
+
+ </td>
+ </tr>
+ </table>
+
+ </td>
+ </tr>
+<tr>
+ <td width="15%" align="right" valign="top" class="summary">
+ <span class="summary-type"> </span>
+ </td><td class="summary">
+ <table width="100%" cellpadding="0" cellspacing="0" border="0">
+ <tr>
+ <td><span class="summary-sig"><a href="apiclient.http.MediaIoBaseUpload-class.html#getbytes" class="summary-sig-name">getbytes</a>(<span class="summary-sig-arg">self</span>,
+ <span class="summary-sig-arg">begin</span>,
+ <span class="summary-sig-arg">length</span>)</span><br />
+ Get bytes from the media.</td>
+ <td align="right" valign="top">
+ <span class="codelink"><a href="apiclient.http-pysrc.html#MediaIoBaseUpload.getbytes">source code</a></span>
+
+ </td>
+ </tr>
+ </table>
+
+ </td>
+ </tr>
+<tr>
+ <td width="15%" align="right" valign="top" class="summary">
+ <span class="summary-type"> </span>
+ </td><td class="summary">
+ <table width="100%" cellpadding="0" cellspacing="0" border="0">
+ <tr>
+ <td><span class="summary-sig"><a href="apiclient.http.MediaIoBaseUpload-class.html#to_json" class="summary-sig-name">to_json</a>(<span class="summary-sig-arg">self</span>)</span><br />
+ This upload type is not serializable.</td>
+ <td align="right" valign="top">
+ <span class="codelink"><a href="apiclient.http-pysrc.html#MediaIoBaseUpload.to_json">source code</a></span>
+
+ </td>
+ </tr>
+ </table>
+
+ </td>
+ </tr>
+ <tr>
+ <td colspan="2" class="summary">
+ <div class="private"> <p class="indent-wrapped-lines"><b>Inherited from <code><a href="apiclient.http.MediaUpload-class.html">MediaUpload</a></code></b> (private):
+ <code><a href="apiclient.http.MediaUpload-class.html#_to_json" onclick="show_private();">_to_json</a></code>
+ </p></div>
+ <p class="indent-wrapped-lines"><b>Inherited from <code>object</code></b>:
+ <code>__delattr__</code>,
+ <code>__format__</code>,
+ <code>__getattribute__</code>,
+ <code>__hash__</code>,
+ <code>__new__</code>,
+ <code>__reduce__</code>,
+ <code>__reduce_ex__</code>,
+ <code>__repr__</code>,
+ <code>__setattr__</code>,
+ <code>__sizeof__</code>,
+ <code>__str__</code>,
+ <code>__subclasshook__</code>
+ </p>
+ </td>
+ </tr>
+</table>
+<!-- ==================== CLASS METHODS ==================== -->
+<a name="section-ClassMethods"></a>
+<table class="summary" border="1" cellpadding="3"
+ cellspacing="0" width="100%" bgcolor="white">
+<tr bgcolor="#70b0f0" class="table-header">
+ <td colspan="2" class="table-header">
+ <table border="0" cellpadding="0" cellspacing="0" width="100%">
+ <tr valign="top">
+ <td align="left"><span class="table-header">Class Methods</span></td>
+ <td align="right" valign="top"
+ ><span class="options">[<a href="#section-ClassMethods"
+ class="privatelink" onclick="toggle_private();"
+ >hide private</a>]</span></td>
+ </tr>
+ </table>
+ </td>
+</tr>
+ <tr>
+ <td colspan="2" class="summary">
+ <p class="indent-wrapped-lines"><b>Inherited from <code><a href="apiclient.http.MediaUpload-class.html">MediaUpload</a></code></b>:
+ <code><a href="apiclient.http.MediaUpload-class.html#new_from_json">new_from_json</a></code>
+ </p>
+ </td>
+ </tr>
+</table>
+<!-- ==================== PROPERTIES ==================== -->
+<a name="section-Properties"></a>
+<table class="summary" border="1" cellpadding="3"
+ cellspacing="0" width="100%" bgcolor="white">
+<tr bgcolor="#70b0f0" class="table-header">
+ <td colspan="2" class="table-header">
+ <table border="0" cellpadding="0" cellspacing="0" width="100%">
+ <tr valign="top">
+ <td align="left"><span class="table-header">Properties</span></td>
+ <td align="right" valign="top"
+ ><span class="options">[<a href="#section-Properties"
+ class="privatelink" onclick="toggle_private();"
+ >hide private</a>]</span></td>
+ </tr>
+ </table>
+ </td>
+</tr>
+ <tr>
+ <td colspan="2" class="summary">
+ <p class="indent-wrapped-lines"><b>Inherited from <code>object</code></b>:
+ <code>__class__</code>
+ </p>
+ </td>
+ </tr>
+</table>
+<!-- ==================== METHOD DETAILS ==================== -->
+<a name="section-MethodDetails"></a>
+<table class="details" border="1" cellpadding="3"
+ cellspacing="0" width="100%" bgcolor="white">
+<tr bgcolor="#70b0f0" class="table-header">
+ <td colspan="2" class="table-header">
+ <table border="0" cellpadding="0" cellspacing="0" width="100%">
+ <tr valign="top">
+ <td align="left"><span class="table-header">Method Details</span></td>
+ <td align="right" valign="top"
+ ><span class="options">[<a href="#section-MethodDetails"
+ class="privatelink" onclick="toggle_private();"
+ >hide private</a>]</span></td>
+ </tr>
+ </table>
+ </td>
+</tr>
+</table>
+<a name="__init__"></a>
+<div>
+<table class="details" border="1" cellpadding="3"
+ cellspacing="0" width="100%" bgcolor="white">
+<tr><td>
+ <table width="100%" cellpadding="0" cellspacing="0" border="0">
+ <tr valign="top"><td>
+ <h3 class="epydoc"><span class="sig"><span class="sig-name">__init__</span>(<span class="sig-arg">self</span>,
+ <span class="sig-arg">fh</span>,
+ <span class="sig-arg">mimetype</span>,
+ <span class="sig-arg">chunksize</span>=<span class="sig-default">524288</span>,
+ <span class="sig-arg">resumable</span>=<span class="sig-default">False</span>)</span>
+ <br /><em class="fname">(Constructor)</em>
+ </h3>
+ </td><td align="right" valign="top"
+ ><span class="codelink"><a href="apiclient.http-pysrc.html#MediaIoBaseUpload.__init__">source code</a></span>
+ </td>
+ </tr></table>
+
+ <pre class="literalblock">
+Constructor.
+
+Args:
+ fh: io.Base or file object, The source of the bytes to upload.
+ mimetype: string, Mime-type of the file. If None then a mime-type will be
+ guessed from the file extension.
+ chunksize: int, File will be uploaded in chunks of this many bytes. Only
+ used if resumable=True.
+ resumable: bool, True if this is a resumable upload. False means upload
+ in a single request.
+
+</pre>
+ <dl class="fields">
+ <dt>Overrides:
+ object.__init__
+ </dt>
+ </dl>
+</td></tr></table>
+</div>
+<a name="chunksize"></a>
+<div>
+<table class="details" border="1" cellpadding="3"
+ cellspacing="0" width="100%" bgcolor="white">
+<tr><td>
+ <table width="100%" cellpadding="0" cellspacing="0" border="0">
+ <tr valign="top"><td>
+ <h3 class="epydoc"><span class="sig"><span class="sig-name">chunksize</span>(<span class="sig-arg">self</span>)</span>
+ </h3>
+ </td><td align="right" valign="top"
+ ><span class="codelink"><a href="apiclient.http-pysrc.html#MediaIoBaseUpload.chunksize">source code</a></span>
+ </td>
+ </tr></table>
+
+ <pre class="literalblock">
+Chunk size for resumable uploads.
+
+Returns:
+ Chunk size in bytes.
+
+</pre>
+ <dl class="fields">
+ <dt>Overrides:
+ <a href="apiclient.http.MediaUpload-class.html#chunksize">MediaUpload.chunksize</a>
+ </dt>
+ </dl>
+</td></tr></table>
+</div>
+<a name="mimetype"></a>
+<div>
+<table class="details" border="1" cellpadding="3"
+ cellspacing="0" width="100%" bgcolor="white">
+<tr><td>
+ <table width="100%" cellpadding="0" cellspacing="0" border="0">
+ <tr valign="top"><td>
+ <h3 class="epydoc"><span class="sig"><span class="sig-name">mimetype</span>(<span class="sig-arg">self</span>)</span>
+ </h3>
+ </td><td align="right" valign="top"
+ ><span class="codelink"><a href="apiclient.http-pysrc.html#MediaIoBaseUpload.mimetype">source code</a></span>
+ </td>
+ </tr></table>
+
+ <pre class="literalblock">
+Mime type of the body.
+
+Returns:
+ Mime type.
+
+</pre>
+ <dl class="fields">
+ <dt>Overrides:
+ <a href="apiclient.http.MediaUpload-class.html#mimetype">MediaUpload.mimetype</a>
+ </dt>
+ </dl>
+</td></tr></table>
+</div>
+<a name="size"></a>
+<div>
+<table class="details" border="1" cellpadding="3"
+ cellspacing="0" width="100%" bgcolor="white">
+<tr><td>
+ <table width="100%" cellpadding="0" cellspacing="0" border="0">
+ <tr valign="top"><td>
+ <h3 class="epydoc"><span class="sig"><span class="sig-name">size</span>(<span class="sig-arg">self</span>)</span>
+ </h3>
+ </td><td align="right" valign="top"
+ ><span class="codelink"><a href="apiclient.http-pysrc.html#MediaIoBaseUpload.size">source code</a></span>
+ </td>
+ </tr></table>
+
+ <pre class="literalblock">
+Size of upload.
+
+Returns:
+ Size of the body, or None of the size is unknown.
+
+</pre>
+ <dl class="fields">
+ <dt>Overrides:
+ <a href="apiclient.http.MediaUpload-class.html#size">MediaUpload.size</a>
+ </dt>
+ </dl>
+</td></tr></table>
+</div>
+<a name="resumable"></a>
+<div>
+<table class="details" border="1" cellpadding="3"
+ cellspacing="0" width="100%" bgcolor="white">
+<tr><td>
+ <table width="100%" cellpadding="0" cellspacing="0" border="0">
+ <tr valign="top"><td>
+ <h3 class="epydoc"><span class="sig"><span class="sig-name">resumable</span>(<span class="sig-arg">self</span>)</span>
+ </h3>
+ </td><td align="right" valign="top"
+ ><span class="codelink"><a href="apiclient.http-pysrc.html#MediaIoBaseUpload.resumable">source code</a></span>
+ </td>
+ </tr></table>
+
+ <pre class="literalblock">
+Whether this upload is resumable.
+
+Returns:
+ True if resumable upload or False.
+
+</pre>
+ <dl class="fields">
+ <dt>Overrides:
+ <a href="apiclient.http.MediaUpload-class.html#resumable">MediaUpload.resumable</a>
+ </dt>
+ </dl>
+</td></tr></table>
+</div>
+<a name="getbytes"></a>
+<div>
+<table class="details" border="1" cellpadding="3"
+ cellspacing="0" width="100%" bgcolor="white">
+<tr><td>
+ <table width="100%" cellpadding="0" cellspacing="0" border="0">
+ <tr valign="top"><td>
+ <h3 class="epydoc"><span class="sig"><span class="sig-name">getbytes</span>(<span class="sig-arg">self</span>,
+ <span class="sig-arg">begin</span>,
+ <span class="sig-arg">length</span>)</span>
+ </h3>
+ </td><td align="right" valign="top"
+ ><span class="codelink"><a href="apiclient.http-pysrc.html#MediaIoBaseUpload.getbytes">source code</a></span>
+ </td>
+ </tr></table>
+
+ <pre class="literalblock">
+Get bytes from the media.
+
+Args:
+ begin: int, offset from beginning of file.
+ length: int, number of bytes to read, starting at begin.
+
+Returns:
+ A string of bytes read. May be shorted than length if EOF was reached
+ first.
+
+</pre>
+ <dl class="fields">
+ <dt>Overrides:
+ <a href="apiclient.http.MediaUpload-class.html#getbytes">MediaUpload.getbytes</a>
+ </dt>
+ </dl>
+</td></tr></table>
+</div>
+<a name="to_json"></a>
+<div>
+<table class="details" border="1" cellpadding="3"
+ cellspacing="0" width="100%" bgcolor="white">
+<tr><td>
+ <table width="100%" cellpadding="0" cellspacing="0" border="0">
+ <tr valign="top"><td>
+ <h3 class="epydoc"><span class="sig"><span class="sig-name">to_json</span>(<span class="sig-arg">self</span>)</span>
+ </h3>
+ </td><td align="right" valign="top"
+ ><span class="codelink"><a href="apiclient.http-pysrc.html#MediaIoBaseUpload.to_json">source code</a></span>
+ </td>
+ </tr></table>
+
+ <pre class="literalblock">
+This upload type is not serializable.
+
+</pre>
+ <dl class="fields">
+ <dt>Overrides:
+ <a href="apiclient.http.MediaUpload-class.html#to_json">MediaUpload.to_json</a>
+ </dt>
+ </dl>
+</td></tr></table>
+</div>
+<br />
+<!-- ==================== NAVIGATION BAR ==================== -->
+<table class="navbar" border="0" width="100%" cellpadding="0"
+ bgcolor="#a0c0ff" cellspacing="0">
+ <tr valign="middle">
+
+ <!-- Tree link -->
+ <th> <a
+ href="module-tree.html">Trees</a> </th>
+
+ <!-- Index link -->
+ <th> <a
+ href="identifier-index.html">Indices</a> </th>
+
+ <!-- Help link -->
+ <th> <a
+ href="help.html">Help</a> </th>
+
+ <th class="navbar" width="100%"></th>
+ </tr>
+</table>
+<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:56 2012
+ </td>
+ <td align="right" class="footer">
+ <a target="mainFrame" href="http://epydoc.sourceforge.net"
+ >http://epydoc.sourceforge.net</a>
+ </td>
+ </tr>
+</table>
+
+<script type="text/javascript">
+ <!--
+ // Private objects are initially displayed (because if
+ // javascript is turned off then we want them to be
+ // visible); but by default, we want to hide them. So hide
+ // them unless we have a cookie that says to show them.
+ checkCookie();
+ // -->
+</script>
+</body>
+</html>
diff --git a/docs/epy/apiclient.http.MediaUpload-class.html b/docs/epy/apiclient.http.MediaUpload-class.html
index d798223..852682f 100644
--- a/docs/epy/apiclient.http.MediaUpload-class.html
+++ b/docs/epy/apiclient.http.MediaUpload-class.html
@@ -55,19 +55,20 @@
<!-- ==================== CLASS DESCRIPTION ==================== -->
<h1 class="epydoc">Class MediaUpload</h1><p class="nomargin-top"><span class="codelink"><a href="apiclient.http-pysrc.html#MediaUpload">source code</a></span></p>
<center>
-<center> <map id="uml_class_diagram_for_apiclien_19" name="uml_class_diagram_for_apiclien_19">
-<area shape="rect" href="apiclient.http.MediaUpload-class.html#getbytes" title="apiclient.http.MediaUpload.getbytes" alt="" coords="84,36,236,55"/>
-<area shape="rect" href="apiclient.http.MediaUpload-class.html#size" title="apiclient.http.MediaUpload.size" alt="" coords="84,55,236,73"/>
-<area shape="rect" href="apiclient.http.MediaUpload-class.html#chunksize" title="apiclient.http.MediaUpload.chunksize" alt="" coords="84,73,236,92"/>
-<area shape="rect" href="apiclient.http.MediaUpload-class.html#mimetype" title="apiclient.http.MediaUpload.mimetype" alt="" coords="84,92,236,111"/>
-<area shape="rect" href="apiclient.http.MediaUpload-class.html#resumable" title="apiclient.http.MediaUpload.resumable" alt="" coords="84,111,236,129"/>
-<area shape="rect" href="apiclient.http.MediaUpload-class.html#to_json" title="Create a JSON representation of an instance of MediaUpload." alt="" coords="84,129,236,148"/>
-<area shape="rect" href="apiclient.http.MediaUpload-class.html#new_from_json" title="Utility class method to instantiate a MediaUpload subclass from a JSON representation produced by to_json()." alt="" coords="84,148,236,167"/>
-<area shape="rect" href="apiclient.http.MediaUpload-class.html" title="Describes a media object to upload." alt="" coords="83,11,237,168"/>
+<center> <map id="uml_class_diagram_for_apiclien_20" name="uml_class_diagram_for_apiclien_20">
+<area shape="rect" href="apiclient.http.MediaUpload-class.html#chunksize" title="Chunk size for resumable uploads." alt="" coords="173,36,325,55"/>
+<area shape="rect" href="apiclient.http.MediaUpload-class.html#mimetype" title="Mime type of the body." alt="" coords="173,55,325,73"/>
+<area shape="rect" href="apiclient.http.MediaUpload-class.html#size" title="Size of upload." alt="" coords="173,73,325,92"/>
+<area shape="rect" href="apiclient.http.MediaUpload-class.html#resumable" title="Whether this upload is resumable." alt="" coords="173,92,325,111"/>
+<area shape="rect" href="apiclient.http.MediaUpload-class.html#getbytes" title="Get bytes from the media." alt="" coords="173,111,325,129"/>
+<area shape="rect" href="apiclient.http.MediaUpload-class.html#to_json" title="Create a JSON representation of an instance of MediaUpload." alt="" coords="173,129,325,148"/>
+<area shape="rect" href="apiclient.http.MediaUpload-class.html#new_from_json" title="Utility class method to instantiate a MediaUpload subclass from a JSON representation produced by to_json()." alt="" coords="173,148,325,167"/>
+<area shape="rect" href="apiclient.http.MediaUpload-class.html" title="Describes a media object to upload." alt="" coords="172,11,327,168"/>
<area shape="rect" href="apiclient.http.MediaFileUpload-class.html" title="A MediaUpload for a file." alt="" coords="16,197,125,224"/>
<area shape="rect" href="apiclient.http.MediaInMemoryUpload-class.html" title="MediaUpload for a chunk of bytes." alt="" coords="176,197,323,224"/>
+<area shape="rect" href="apiclient.http.MediaIoBaseUpload-class.html" title="A MediaUpload for a io.Base objects." alt="" coords="373,197,501,224"/>
</map>
- <img src="uml_class_diagram_for_apiclien_19.gif" alt='' usemap="#uml_class_diagram_for_apiclien_19" ismap="ismap" class="graph-without-title" />
+ <img src="uml_class_diagram_for_apiclien_20.gif" alt='' usemap="#uml_class_diagram_for_apiclien_20" ismap="ismap" class="graph-without-title" />
</center>
</center>
<hr />
@@ -76,6 +77,13 @@
Base class that defines the interface of MediaUpload subclasses.
+Note that subclasses of MediaUpload may allow you to control the chunksize
+when upload a media object. It is important to keep the size of the chunk as
+large as possible to keep the upload efficient. Other factors may influence
+the size of the chunk you use, particularly if you are working in an
+environment where individual HTTP requests may have a hardcoded time limit,
+such as under certain classes of requests under Google App Engine.
+
</pre>
<!-- ==================== INSTANCE METHODS ==================== -->
@@ -101,41 +109,8 @@
</td><td class="summary">
<table width="100%" cellpadding="0" cellspacing="0" border="0">
<tr>
- <td><span class="summary-sig"><a name="getbytes"></a><span class="summary-sig-name">getbytes</span>(<span class="summary-sig-arg">self</span>,
- <span class="summary-sig-arg">begin</span>,
- <span class="summary-sig-arg">end</span>)</span></td>
- <td align="right" valign="top">
- <span class="codelink"><a href="apiclient.http-pysrc.html#MediaUpload.getbytes">source code</a></span>
-
- </td>
- </tr>
- </table>
-
- </td>
- </tr>
-<tr>
- <td width="15%" align="right" valign="top" class="summary">
- <span class="summary-type"> </span>
- </td><td class="summary">
- <table width="100%" cellpadding="0" cellspacing="0" border="0">
- <tr>
- <td><span class="summary-sig"><a name="size"></a><span class="summary-sig-name">size</span>(<span class="summary-sig-arg">self</span>)</span></td>
- <td align="right" valign="top">
- <span class="codelink"><a href="apiclient.http-pysrc.html#MediaUpload.size">source code</a></span>
-
- </td>
- </tr>
- </table>
-
- </td>
- </tr>
-<tr>
- <td width="15%" align="right" valign="top" class="summary">
- <span class="summary-type"> </span>
- </td><td class="summary">
- <table width="100%" cellpadding="0" cellspacing="0" border="0">
- <tr>
- <td><span class="summary-sig"><a name="chunksize"></a><span class="summary-sig-name">chunksize</span>(<span class="summary-sig-arg">self</span>)</span></td>
+ <td><span class="summary-sig"><a href="apiclient.http.MediaUpload-class.html#chunksize" class="summary-sig-name">chunksize</a>(<span class="summary-sig-arg">self</span>)</span><br />
+ Chunk size for resumable uploads.</td>
<td align="right" valign="top">
<span class="codelink"><a href="apiclient.http-pysrc.html#MediaUpload.chunksize">source code</a></span>
@@ -151,7 +126,8 @@
</td><td class="summary">
<table width="100%" cellpadding="0" cellspacing="0" border="0">
<tr>
- <td><span class="summary-sig"><a name="mimetype"></a><span class="summary-sig-name">mimetype</span>(<span class="summary-sig-arg">self</span>)</span></td>
+ <td><span class="summary-sig"><a href="apiclient.http.MediaUpload-class.html#mimetype" class="summary-sig-name">mimetype</a>(<span class="summary-sig-arg">self</span>)</span><br />
+ Mime type of the body.</td>
<td align="right" valign="top">
<span class="codelink"><a href="apiclient.http-pysrc.html#MediaUpload.mimetype">source code</a></span>
@@ -167,7 +143,25 @@
</td><td class="summary">
<table width="100%" cellpadding="0" cellspacing="0" border="0">
<tr>
- <td><span class="summary-sig"><a name="resumable"></a><span class="summary-sig-name">resumable</span>(<span class="summary-sig-arg">self</span>)</span></td>
+ <td><span class="summary-sig"><a href="apiclient.http.MediaUpload-class.html#size" class="summary-sig-name">size</a>(<span class="summary-sig-arg">self</span>)</span><br />
+ Size of upload.</td>
+ <td align="right" valign="top">
+ <span class="codelink"><a href="apiclient.http-pysrc.html#MediaUpload.size">source code</a></span>
+
+ </td>
+ </tr>
+ </table>
+
+ </td>
+ </tr>
+<tr>
+ <td width="15%" align="right" valign="top" class="summary">
+ <span class="summary-type"> </span>
+ </td><td class="summary">
+ <table width="100%" cellpadding="0" cellspacing="0" border="0">
+ <tr>
+ <td><span class="summary-sig"><a href="apiclient.http.MediaUpload-class.html#resumable" class="summary-sig-name">resumable</a>(<span class="summary-sig-arg">self</span>)</span><br />
+ Whether this upload is resumable.</td>
<td align="right" valign="top">
<span class="codelink"><a href="apiclient.http-pysrc.html#MediaUpload.resumable">source code</a></span>
@@ -177,6 +171,25 @@
</td>
</tr>
+<tr>
+ <td width="15%" align="right" valign="top" class="summary">
+ <span class="summary-type"> </span>
+ </td><td class="summary">
+ <table width="100%" cellpadding="0" cellspacing="0" border="0">
+ <tr>
+ <td><span class="summary-sig"><a href="apiclient.http.MediaUpload-class.html#getbytes" class="summary-sig-name">getbytes</a>(<span class="summary-sig-arg">self</span>,
+ <span class="summary-sig-arg">begin</span>,
+ <span class="summary-sig-arg">end</span>)</span><br />
+ Get bytes from the media.</td>
+ <td align="right" valign="top">
+ <span class="codelink"><a href="apiclient.http-pysrc.html#MediaUpload.getbytes">source code</a></span>
+
+ </td>
+ </tr>
+ </table>
+
+ </td>
+ </tr>
<tr class="private">
<td width="15%" align="right" valign="top" class="summary">
<span class="summary-type"> </span>
@@ -312,6 +325,138 @@
</td>
</tr>
</table>
+<a name="chunksize"></a>
+<div>
+<table class="details" border="1" cellpadding="3"
+ cellspacing="0" width="100%" bgcolor="white">
+<tr><td>
+ <table width="100%" cellpadding="0" cellspacing="0" border="0">
+ <tr valign="top"><td>
+ <h3 class="epydoc"><span class="sig"><span class="sig-name">chunksize</span>(<span class="sig-arg">self</span>)</span>
+ </h3>
+ </td><td align="right" valign="top"
+ ><span class="codelink"><a href="apiclient.http-pysrc.html#MediaUpload.chunksize">source code</a></span>
+ </td>
+ </tr></table>
+
+ <pre class="literalblock">
+Chunk size for resumable uploads.
+
+Returns:
+ Chunk size in bytes.
+
+</pre>
+ <dl class="fields">
+ </dl>
+</td></tr></table>
+</div>
+<a name="mimetype"></a>
+<div>
+<table class="details" border="1" cellpadding="3"
+ cellspacing="0" width="100%" bgcolor="white">
+<tr><td>
+ <table width="100%" cellpadding="0" cellspacing="0" border="0">
+ <tr valign="top"><td>
+ <h3 class="epydoc"><span class="sig"><span class="sig-name">mimetype</span>(<span class="sig-arg">self</span>)</span>
+ </h3>
+ </td><td align="right" valign="top"
+ ><span class="codelink"><a href="apiclient.http-pysrc.html#MediaUpload.mimetype">source code</a></span>
+ </td>
+ </tr></table>
+
+ <pre class="literalblock">
+Mime type of the body.
+
+Returns:
+ Mime type.
+
+</pre>
+ <dl class="fields">
+ </dl>
+</td></tr></table>
+</div>
+<a name="size"></a>
+<div>
+<table class="details" border="1" cellpadding="3"
+ cellspacing="0" width="100%" bgcolor="white">
+<tr><td>
+ <table width="100%" cellpadding="0" cellspacing="0" border="0">
+ <tr valign="top"><td>
+ <h3 class="epydoc"><span class="sig"><span class="sig-name">size</span>(<span class="sig-arg">self</span>)</span>
+ </h3>
+ </td><td align="right" valign="top"
+ ><span class="codelink"><a href="apiclient.http-pysrc.html#MediaUpload.size">source code</a></span>
+ </td>
+ </tr></table>
+
+ <pre class="literalblock">
+Size of upload.
+
+Returns:
+ Size of the body, or None of the size is unknown.
+
+</pre>
+ <dl class="fields">
+ </dl>
+</td></tr></table>
+</div>
+<a name="resumable"></a>
+<div>
+<table class="details" border="1" cellpadding="3"
+ cellspacing="0" width="100%" bgcolor="white">
+<tr><td>
+ <table width="100%" cellpadding="0" cellspacing="0" border="0">
+ <tr valign="top"><td>
+ <h3 class="epydoc"><span class="sig"><span class="sig-name">resumable</span>(<span class="sig-arg">self</span>)</span>
+ </h3>
+ </td><td align="right" valign="top"
+ ><span class="codelink"><a href="apiclient.http-pysrc.html#MediaUpload.resumable">source code</a></span>
+ </td>
+ </tr></table>
+
+ <pre class="literalblock">
+Whether this upload is resumable.
+
+Returns:
+ True if resumable upload or False.
+
+</pre>
+ <dl class="fields">
+ </dl>
+</td></tr></table>
+</div>
+<a name="getbytes"></a>
+<div>
+<table class="details" border="1" cellpadding="3"
+ cellspacing="0" width="100%" bgcolor="white">
+<tr><td>
+ <table width="100%" cellpadding="0" cellspacing="0" border="0">
+ <tr valign="top"><td>
+ <h3 class="epydoc"><span class="sig"><span class="sig-name">getbytes</span>(<span class="sig-arg">self</span>,
+ <span class="sig-arg">begin</span>,
+ <span class="sig-arg">end</span>)</span>
+ </h3>
+ </td><td align="right" valign="top"
+ ><span class="codelink"><a href="apiclient.http-pysrc.html#MediaUpload.getbytes">source code</a></span>
+ </td>
+ </tr></table>
+
+ <pre class="literalblock">
+Get bytes from the media.
+
+Args:
+ begin: int, offset from beginning of file.
+ length: int, number of bytes to read, starting at begin.
+
+Returns:
+ A string of bytes read. May be shorter than length if EOF was reached
+ first.
+
+</pre>
+ <dl class="fields">
+ </dl>
+</td></tr></table>
+</div>
<a name="_to_json"></a>
<div class="private">
<table class="details" border="1" cellpadding="3"
@@ -424,7 +569,7 @@
<table border="0" cellpadding="0" cellspacing="0" width="100%%">
<tr>
<td align="left" class="footer">
- Generated by Epydoc 3.0.1 on Tue Jun 5 09:03:07 2012
+ Generated by Epydoc 3.0.1 on Thu Jun 14 08:01:56 2012
</td>
<td align="right" class="footer">
<a target="mainFrame" href="http://epydoc.sourceforge.net"
diff --git a/docs/epy/apiclient.http.MediaUploadProgress-class.html b/docs/epy/apiclient.http.MediaUploadProgress-class.html
index 42b8c3c..8c774eb 100644
--- a/docs/epy/apiclient.http.MediaUploadProgress-class.html
+++ b/docs/epy/apiclient.http.MediaUploadProgress-class.html
@@ -55,12 +55,12 @@
<!-- ==================== CLASS DESCRIPTION ==================== -->
<h1 class="epydoc">Class MediaUploadProgress</h1><p class="nomargin-top"><span class="codelink"><a href="apiclient.http-pysrc.html#MediaUploadProgress">source code</a></span></p>
<center>
-<center> <map id="uml_class_diagram_for_apiclien_20" name="uml_class_diagram_for_apiclien_20">
+<center> <map id="uml_class_diagram_for_apiclien_21" name="uml_class_diagram_for_apiclien_21">
<area shape="rect" href="apiclient.http.MediaUploadProgress-class.html#__init__" title="Constructor." alt="" coords="17,36,287,55"/>
<area shape="rect" href="apiclient.http.MediaUploadProgress-class.html#progress" title="Percent of upload completed, as a float." alt="" coords="17,55,287,73"/>
<area shape="rect" href="apiclient.http.MediaUploadProgress-class.html" title="Status of a resumable upload." alt="" coords="16,11,288,75"/>
</map>
- <img src="uml_class_diagram_for_apiclien_20.gif" alt='' usemap="#uml_class_diagram_for_apiclien_20" ismap="ismap" class="graph-without-title" />
+ <img src="uml_class_diagram_for_apiclien_21.gif" alt='' usemap="#uml_class_diagram_for_apiclien_21" ismap="ismap" class="graph-without-title" />
</center>
</center>
<hr />
@@ -111,7 +111,7 @@
</td><td class="summary">
<table width="100%" cellpadding="0" cellspacing="0" border="0">
<tr>
- <td><span class="summary-sig"><a name="progress"></a><span class="summary-sig-name">progress</span>(<span class="summary-sig-arg">self</span>)</span><br />
+ <td><span class="summary-sig"><a href="apiclient.http.MediaUploadProgress-class.html#progress" class="summary-sig-name">progress</a>(<span class="summary-sig-arg">self</span>)</span><br />
Percent of upload completed, as a float.</td>
<td align="right" valign="top">
<span class="codelink"><a href="apiclient.http-pysrc.html#MediaUploadProgress.progress">source code</a></span>
@@ -206,7 +206,8 @@
Args:
resumable_progress: int, bytes sent so far.
- total_size: int, total bytes in complete upload.
+ total_size: int, total bytes in complete upload, or None if the total
+ upload size isn't known ahead of time.
</pre>
<dl class="fields">
@@ -216,6 +217,32 @@
</dl>
</td></tr></table>
</div>
+<a name="progress"></a>
+<div>
+<table class="details" border="1" cellpadding="3"
+ cellspacing="0" width="100%" bgcolor="white">
+<tr><td>
+ <table width="100%" cellpadding="0" cellspacing="0" border="0">
+ <tr valign="top"><td>
+ <h3 class="epydoc"><span class="sig"><span class="sig-name">progress</span>(<span class="sig-arg">self</span>)</span>
+ </h3>
+ </td><td align="right" valign="top"
+ ><span class="codelink"><a href="apiclient.http-pysrc.html#MediaUploadProgress.progress">source code</a></span>
+ </td>
+ </tr></table>
+
+ <pre class="literalblock">
+Percent of upload completed, as a float.
+
+Returns:
+ the percentage complete as a float, returning 0.0 if the total size of
+ the upload is unknown.
+
+</pre>
+ <dl class="fields">
+ </dl>
+</td></tr></table>
+</div>
<br />
<!-- ==================== NAVIGATION BAR ==================== -->
<table class="navbar" border="0" width="100%" cellpadding="0"
@@ -240,7 +267,7 @@
<table border="0" cellpadding="0" cellspacing="0" width="100%%">
<tr>
<td align="left" class="footer">
- Generated by Epydoc 3.0.1 on Tue Jun 5 09:03:07 2012
+ Generated by Epydoc 3.0.1 on Thu Jun 14 08:01:56 2012
</td>
<td align="right" class="footer">
<a target="mainFrame" href="http://epydoc.sourceforge.net"
diff --git a/docs/epy/apiclient.http.RequestMockBuilder-class.html b/docs/epy/apiclient.http.RequestMockBuilder-class.html
index 8210e7c..ae4d4b3 100644
--- a/docs/epy/apiclient.http.RequestMockBuilder-class.html
+++ b/docs/epy/apiclient.http.RequestMockBuilder-class.html
@@ -55,12 +55,12 @@
<!-- ==================== CLASS DESCRIPTION ==================== -->
<h1 class="epydoc">Class RequestMockBuilder</h1><p class="nomargin-top"><span class="codelink"><a href="apiclient.http-pysrc.html#RequestMockBuilder">source code</a></span></p>
<center>
-<center> <map id="uml_class_diagram_for_apiclien_21" name="uml_class_diagram_for_apiclien_21">
+<center> <map id="uml_class_diagram_for_apiclien_22" name="uml_class_diagram_for_apiclien_22">
<area shape="rect" href="apiclient.http.RequestMockBuilder-class.html#__init__" title="Constructor for RequestMockBuilder" alt="" coords="17,36,671,55"/>
<area shape="rect" href="apiclient.http.RequestMockBuilder-class.html#__call__" title="Implements the callable interface that discovery.build() expects of requestBuilder, which is to build an object compatible with HttpRequest.execute()." alt="" coords="17,55,671,73"/>
<area shape="rect" href="apiclient.http.RequestMockBuilder-class.html" title="A simple mock of HttpRequest" alt="" coords="16,11,672,75"/>
</map>
- <img src="uml_class_diagram_for_apiclien_21.gif" alt='' usemap="#uml_class_diagram_for_apiclien_21" ismap="ismap" class="graph-without-title" />
+ <img src="uml_class_diagram_for_apiclien_22.gif" alt='' usemap="#uml_class_diagram_for_apiclien_22" ismap="ismap" class="graph-without-title" />
</center>
</center>
<hr />
@@ -313,7 +313,7 @@
<table border="0" cellpadding="0" cellspacing="0" width="100%%">
<tr>
<td align="left" class="footer">
- Generated by Epydoc 3.0.1 on Tue Jun 5 09:03:07 2012
+ Generated by Epydoc 3.0.1 on Thu Jun 14 08:01:56 2012
</td>
<td align="right" class="footer">
<a target="mainFrame" href="http://epydoc.sourceforge.net"
diff --git a/docs/epy/apiclient.mimeparse-module.html b/docs/epy/apiclient.mimeparse-module.html
index a8b952d..4f4c2b4 100644
--- a/docs/epy/apiclient.mimeparse-module.html
+++ b/docs/epy/apiclient.mimeparse-module.html
@@ -491,7 +491,7 @@
<table border="0" cellpadding="0" cellspacing="0" width="100%%">
<tr>
<td align="left" class="footer">
- Generated by Epydoc 3.0.1 on Tue Jun 5 09:03:05 2012
+ Generated by Epydoc 3.0.1 on Thu Jun 14 08:01:54 2012
</td>
<td align="right" class="footer">
<a target="mainFrame" href="http://epydoc.sourceforge.net"
diff --git a/docs/epy/apiclient.mimeparse-pysrc.html b/docs/epy/apiclient.mimeparse-pysrc.html
index 2cf4439..e2c2a87 100644
--- a/docs/epy/apiclient.mimeparse-pysrc.html
+++ b/docs/epy/apiclient.mimeparse-pysrc.html
@@ -255,7 +255,7 @@
<table border="0" cellpadding="0" cellspacing="0" width="100%%">
<tr>
<td align="left" class="footer">
- Generated by Epydoc 3.0.1 on Tue Jun 5 09:03:11 2012
+ Generated by Epydoc 3.0.1 on Thu Jun 14 08:01:59 2012
</td>
<td align="right" class="footer">
<a target="mainFrame" href="http://epydoc.sourceforge.net"
diff --git a/docs/epy/apiclient.model-module.html b/docs/epy/apiclient.model-module.html
index df6e3d4..bbafdb9 100644
--- a/docs/epy/apiclient.model-module.html
+++ b/docs/epy/apiclient.model-module.html
@@ -292,7 +292,7 @@
<table border="0" cellpadding="0" cellspacing="0" width="100%%">
<tr>
<td align="left" class="footer">
- Generated by Epydoc 3.0.1 on Tue Jun 5 09:03:05 2012
+ Generated by Epydoc 3.0.1 on Thu Jun 14 08:01:54 2012
</td>
<td align="right" class="footer">
<a target="mainFrame" href="http://epydoc.sourceforge.net"
diff --git a/docs/epy/apiclient.model-pysrc.html b/docs/epy/apiclient.model-pysrc.html
index f16fbed..8389db9 100644
--- a/docs/epy/apiclient.model-pysrc.html
+++ b/docs/epy/apiclient.model-pysrc.html
@@ -519,7 +519,7 @@
<table border="0" cellpadding="0" cellspacing="0" width="100%%">
<tr>
<td align="left" class="footer">
- Generated by Epydoc 3.0.1 on Tue Jun 5 09:03:11 2012
+ Generated by Epydoc 3.0.1 on Thu Jun 14 08:01:59 2012
</td>
<td align="right" class="footer">
<a target="mainFrame" href="http://epydoc.sourceforge.net"
diff --git a/docs/epy/apiclient.model.BaseModel-class.html b/docs/epy/apiclient.model.BaseModel-class.html
index dd5205d..91e8ab0 100644
--- a/docs/epy/apiclient.model.BaseModel-class.html
+++ b/docs/epy/apiclient.model.BaseModel-class.html
@@ -55,7 +55,7 @@
<!-- ==================== CLASS DESCRIPTION ==================== -->
<h1 class="epydoc">Class BaseModel</h1><p class="nomargin-top"><span class="codelink"><a href="apiclient.model-pysrc.html#BaseModel">source code</a></span></p>
<center>
-<center> <map id="uml_class_diagram_for_apiclien_22" name="uml_class_diagram_for_apiclien_22">
+<center> <map id="uml_class_diagram_for_apiclien_23" name="uml_class_diagram_for_apiclien_23">
<area shape="rect" href="apiclient.model.BaseModel-class.html#accept" title="apiclient.model.BaseModel.accept" alt="" coords="17,89,393,108"/>
<area shape="rect" href="apiclient.model.BaseModel-class.html#content_type" title="apiclient.model.BaseModel.content_type" alt="" coords="17,108,393,127"/>
<area shape="rect" href="apiclient.model.BaseModel-class.html#no_content_response" title="apiclient.model.BaseModel.no_content_response" alt="" coords="17,127,393,145"/>
@@ -65,12 +65,12 @@
<area shape="rect" href="apiclient.model.BaseModel-class.html#serialize" title="Perform the actual Python object serialization." alt="" coords="17,204,393,223"/>
<area shape="rect" href="apiclient.model.BaseModel-class.html#deserialize" title="Perform the actual deserialization from response string to Python object." alt="" coords="17,223,393,241"/>
<area shape="rect" href="apiclient.model.BaseModel-class.html" title="Base model class." alt="" coords="16,72,395,243"/>
-<area shape="rect" href="apiclient.model.ProtocolBufferModel-class.html" title="Model class for protocol buffers." alt="" coords="63,272,193,299"/>
-<area shape="rect" href="apiclient.model.JsonModel-class.html" title="Model class for JSON." alt="" coords="244,272,321,299"/>
+<area shape="rect" href="apiclient.model.JsonModel-class.html" title="Model class for JSON." alt="" coords="89,272,167,299"/>
+<area shape="rect" href="apiclient.model.ProtocolBufferModel-class.html" title="Model class for protocol buffers." alt="" coords="217,272,348,299"/>
<area shape="rect" href="apiclient.model.Model-class.html" title="Model base class." alt="" coords="187,11,224,43"/>
-<area shape="rect" href="apiclient.model.RawModel-class.html" title="Model class for requests that don't return JSON." alt="" coords="245,328,320,355"/>
+<area shape="rect" href="apiclient.model.RawModel-class.html" title="Model class for requests that don't return JSON." alt="" coords="91,328,165,355"/>
</map>
- <img src="uml_class_diagram_for_apiclien_22.gif" alt='' usemap="#uml_class_diagram_for_apiclien_22" ismap="ismap" class="graph-without-title" />
+ <img src="uml_class_diagram_for_apiclien_23.gif" alt='' usemap="#uml_class_diagram_for_apiclien_23" ismap="ismap" class="graph-without-title" />
</center>
</center>
<hr />
@@ -542,7 +542,7 @@
<table border="0" cellpadding="0" cellspacing="0" width="100%%">
<tr>
<td align="left" class="footer">
- Generated by Epydoc 3.0.1 on Tue Jun 5 09:03:07 2012
+ Generated by Epydoc 3.0.1 on Thu Jun 14 08:01:56 2012
</td>
<td align="right" class="footer">
<a target="mainFrame" href="http://epydoc.sourceforge.net"
diff --git a/docs/epy/apiclient.model.JsonModel-class.html b/docs/epy/apiclient.model.JsonModel-class.html
index a479e38..06611ea 100644
--- a/docs/epy/apiclient.model.JsonModel-class.html
+++ b/docs/epy/apiclient.model.JsonModel-class.html
@@ -55,7 +55,7 @@
<!-- ==================== CLASS DESCRIPTION ==================== -->
<h1 class="epydoc">Class JsonModel</h1><p class="nomargin-top"><span class="codelink"><a href="apiclient.model-pysrc.html#JsonModel">source code</a></span></p>
<center>
-<center> <map id="uml_class_diagram_for_apiclien_23" name="uml_class_diagram_for_apiclien_23">
+<center> <map id="uml_class_diagram_for_apiclien_24" name="uml_class_diagram_for_apiclien_24">
<area shape="rect" href="apiclient.model.JsonModel-class.html#accept" title="apiclient.model.JsonModel.accept" alt="" coords="103,183,308,201"/>
<area shape="rect" href="apiclient.model.JsonModel-class.html#content_type" title="apiclient.model.JsonModel.content_type" alt="" coords="103,201,308,220"/>
<area shape="rect" href="apiclient.model.JsonModel-class.html#alt_param" title="apiclient.model.JsonModel.alt_param" alt="" coords="103,220,308,239"/>
@@ -70,7 +70,7 @@
<area shape="rect" href="apiclient.model.BaseModel-class.html" title="Base model class." alt="" coords="16,72,395,136"/>
<area shape="rect" href="apiclient.model.Model-class.html" title="Model base class." alt="" coords="187,11,224,43"/>
</map>
- <img src="uml_class_diagram_for_apiclien_23.gif" alt='' usemap="#uml_class_diagram_for_apiclien_23" ismap="ismap" class="graph-without-title" />
+ <img src="uml_class_diagram_for_apiclien_24.gif" alt='' usemap="#uml_class_diagram_for_apiclien_24" ismap="ismap" class="graph-without-title" />
</center>
</center>
<hr />
@@ -425,7 +425,7 @@
<table border="0" cellpadding="0" cellspacing="0" width="100%%">
<tr>
<td align="left" class="footer">
- Generated by Epydoc 3.0.1 on Tue Jun 5 09:03:07 2012
+ Generated by Epydoc 3.0.1 on Thu Jun 14 08:01:56 2012
</td>
<td align="right" class="footer">
<a target="mainFrame" href="http://epydoc.sourceforge.net"
diff --git a/docs/epy/apiclient.model.Model-class.html b/docs/epy/apiclient.model.Model-class.html
index 92c0a73..421680d 100644
--- a/docs/epy/apiclient.model.Model-class.html
+++ b/docs/epy/apiclient.model.Model-class.html
@@ -55,16 +55,16 @@
<!-- ==================== CLASS DESCRIPTION ==================== -->
<h1 class="epydoc">Class Model</h1><p class="nomargin-top"><span class="codelink"><a href="apiclient.model-pysrc.html#Model">source code</a></span></p>
<center>
-<center> <map id="uml_class_diagram_for_apiclien_24" name="uml_class_diagram_for_apiclien_24">
+<center> <map id="uml_class_diagram_for_apiclien_25" name="uml_class_diagram_for_apiclien_25">
<area shape="rect" href="apiclient.model.Model-class.html#request" title="Updates outgoing requests with a serialized body." alt="" coords="17,36,393,55"/>
<area shape="rect" href="apiclient.model.Model-class.html#response" title="Convert the response wire format into a Python object." alt="" coords="17,55,393,73"/>
<area shape="rect" href="apiclient.model.Model-class.html" title="Model base class." alt="" coords="16,11,395,75"/>
<area shape="rect" href="apiclient.model.BaseModel-class.html" title="Base model class." alt="" coords="165,104,245,131"/>
-<area shape="rect" href="apiclient.model.ProtocolBufferModel-class.html" title="Model class for protocol buffers." alt="" coords="63,160,193,187"/>
-<area shape="rect" href="apiclient.model.JsonModel-class.html" title="Model class for JSON." alt="" coords="244,160,321,187"/>
-<area shape="rect" href="apiclient.model.RawModel-class.html" title="Model class for requests that don't return JSON." alt="" coords="245,216,320,243"/>
+<area shape="rect" href="apiclient.model.JsonModel-class.html" title="Model class for JSON." alt="" coords="89,160,167,187"/>
+<area shape="rect" href="apiclient.model.ProtocolBufferModel-class.html" title="Model class for protocol buffers." alt="" coords="217,160,348,187"/>
+<area shape="rect" href="apiclient.model.RawModel-class.html" title="Model class for requests that don't return JSON." alt="" coords="91,216,165,243"/>
</map>
- <img src="uml_class_diagram_for_apiclien_24.gif" alt='' usemap="#uml_class_diagram_for_apiclien_24" ismap="ismap" class="graph-without-title" />
+ <img src="uml_class_diagram_for_apiclien_25.gif" alt='' usemap="#uml_class_diagram_for_apiclien_25" ismap="ismap" class="graph-without-title" />
</center>
</center>
<hr />
@@ -295,7 +295,7 @@
<table border="0" cellpadding="0" cellspacing="0" width="100%%">
<tr>
<td align="left" class="footer">
- Generated by Epydoc 3.0.1 on Tue Jun 5 09:03:07 2012
+ Generated by Epydoc 3.0.1 on Thu Jun 14 08:01:56 2012
</td>
<td align="right" class="footer">
<a target="mainFrame" href="http://epydoc.sourceforge.net"
diff --git a/docs/epy/apiclient.model.ProtocolBufferModel-class.html b/docs/epy/apiclient.model.ProtocolBufferModel-class.html
index e480924..e05410f 100644
--- a/docs/epy/apiclient.model.ProtocolBufferModel-class.html
+++ b/docs/epy/apiclient.model.ProtocolBufferModel-class.html
@@ -55,7 +55,7 @@
<!-- ==================== CLASS DESCRIPTION ==================== -->
<h1 class="epydoc">Class ProtocolBufferModel</h1><p class="nomargin-top"><span class="codelink"><a href="apiclient.model-pysrc.html#ProtocolBufferModel">source code</a></span></p>
<center>
-<center> <map id="uml_class_diagram_for_apiclien_25" name="uml_class_diagram_for_apiclien_25">
+<center> <map id="uml_class_diagram_for_apiclien_26" name="uml_class_diagram_for_apiclien_26">
<area shape="rect" href="apiclient.model.ProtocolBufferModel-class.html#accept" title="apiclient.model.ProtocolBufferModel.accept" alt="" coords="120,183,291,201"/>
<area shape="rect" href="apiclient.model.ProtocolBufferModel-class.html#content_type" title="apiclient.model.ProtocolBufferModel.content_type" alt="" coords="120,201,291,220"/>
<area shape="rect" href="apiclient.model.ProtocolBufferModel-class.html#alt_param" title="apiclient.model.ProtocolBufferModel.alt_param" alt="" coords="120,220,291,239"/>
@@ -69,7 +69,7 @@
<area shape="rect" href="apiclient.model.BaseModel-class.html" title="Base model class." alt="" coords="16,72,395,136"/>
<area shape="rect" href="apiclient.model.Model-class.html" title="Model base class." alt="" coords="187,11,224,43"/>
</map>
- <img src="uml_class_diagram_for_apiclien_25.gif" alt='' usemap="#uml_class_diagram_for_apiclien_25" ismap="ismap" class="graph-without-title" />
+ <img src="uml_class_diagram_for_apiclien_26.gif" alt='' usemap="#uml_class_diagram_for_apiclien_26" ismap="ismap" class="graph-without-title" />
</center>
</center>
<hr />
@@ -428,7 +428,7 @@
<table border="0" cellpadding="0" cellspacing="0" width="100%%">
<tr>
<td align="left" class="footer">
- Generated by Epydoc 3.0.1 on Tue Jun 5 09:03:07 2012
+ Generated by Epydoc 3.0.1 on Thu Jun 14 08:01:56 2012
</td>
<td align="right" class="footer">
<a target="mainFrame" href="http://epydoc.sourceforge.net"
diff --git a/docs/epy/apiclient.model.RawModel-class.html b/docs/epy/apiclient.model.RawModel-class.html
index a35f8b7..4a70aa2 100644
--- a/docs/epy/apiclient.model.RawModel-class.html
+++ b/docs/epy/apiclient.model.RawModel-class.html
@@ -55,7 +55,7 @@
<!-- ==================== CLASS DESCRIPTION ==================== -->
<h1 class="epydoc">Class RawModel</h1><p class="nomargin-top"><span class="codelink"><a href="apiclient.model-pysrc.html#RawModel">source code</a></span></p>
<center>
-<center> <map id="uml_class_diagram_for_apiclien_26" name="uml_class_diagram_for_apiclien_26">
+<center> <map id="uml_class_diagram_for_apiclien_27" name="uml_class_diagram_for_apiclien_27">
<area shape="rect" href="apiclient.model.RawModel-class.html#accept" title="apiclient.model.RawModel.accept" alt="" coords="132,276,279,295"/>
<area shape="rect" href="apiclient.model.RawModel-class.html#content_type" title="apiclient.model.RawModel.content_type" alt="" coords="132,295,279,313"/>
<area shape="rect" href="apiclient.model.RawModel-class.html#alt_param" title="apiclient.model.RawModel.alt_param" alt="" coords="132,313,279,332"/>
@@ -65,12 +65,12 @@
<area shape="rect" href="apiclient.model.JsonModel-class.html#__init__" title="Construct a JsonModel." alt="" coords="103,191,308,209"/>
<area shape="rect" href="apiclient.model.JsonModel-class.html#serialize" title="Perform the actual Python object serialization." alt="" coords="103,209,308,228"/>
<area shape="rect" href="apiclient.model.JsonModel-class.html" title="Model class for JSON." alt="" coords="101,165,309,229"/>
+<area shape="rect" href="apiclient.model.Model-class.html" title="Model base class." alt="" coords="187,11,224,43"/>
<area shape="rect" href="apiclient.model.BaseModel-class.html#request" title="Updates outgoing requests with a serialized body." alt="" coords="17,97,393,116"/>
<area shape="rect" href="apiclient.model.BaseModel-class.html#response" title="Convert the response wire format into a Python object." alt="" coords="17,116,393,135"/>
<area shape="rect" href="apiclient.model.BaseModel-class.html" title="Base model class." alt="" coords="16,72,395,136"/>
-<area shape="rect" href="apiclient.model.Model-class.html" title="Model base class." alt="" coords="187,11,224,43"/>
</map>
- <img src="uml_class_diagram_for_apiclien_26.gif" alt='' usemap="#uml_class_diagram_for_apiclien_26" ismap="ismap" class="graph-without-title" />
+ <img src="uml_class_diagram_for_apiclien_27.gif" alt='' usemap="#uml_class_diagram_for_apiclien_27" ismap="ismap" class="graph-without-title" />
</center>
</center>
<hr />
@@ -331,7 +331,7 @@
<table border="0" cellpadding="0" cellspacing="0" width="100%%">
<tr>
<td align="left" class="footer">
- Generated by Epydoc 3.0.1 on Tue Jun 5 09:03:07 2012
+ Generated by Epydoc 3.0.1 on Thu Jun 14 08:01:56 2012
</td>
<td align="right" class="footer">
<a target="mainFrame" href="http://epydoc.sourceforge.net"
diff --git a/docs/epy/apiclient.schema-module.html b/docs/epy/apiclient.schema-module.html
index ce8692a..da3fe27 100644
--- a/docs/epy/apiclient.schema-module.html
+++ b/docs/epy/apiclient.schema-module.html
@@ -186,7 +186,7 @@
<table border="0" cellpadding="0" cellspacing="0" width="100%%">
<tr>
<td align="left" class="footer">
- Generated by Epydoc 3.0.1 on Tue Jun 5 09:03:05 2012
+ Generated by Epydoc 3.0.1 on Thu Jun 14 08:01:54 2012
</td>
<td align="right" class="footer">
<a target="mainFrame" href="http://epydoc.sourceforge.net"
diff --git a/docs/epy/apiclient.schema-pysrc.html b/docs/epy/apiclient.schema-pysrc.html
index 5b95a02..cc35c68 100644
--- a/docs/epy/apiclient.schema-pysrc.html
+++ b/docs/epy/apiclient.schema-pysrc.html
@@ -434,7 +434,7 @@
<table border="0" cellpadding="0" cellspacing="0" width="100%%">
<tr>
<td align="left" class="footer">
- Generated by Epydoc 3.0.1 on Tue Jun 5 09:03:12 2012
+ Generated by Epydoc 3.0.1 on Thu Jun 14 08:01:59 2012
</td>
<td align="right" class="footer">
<a target="mainFrame" href="http://epydoc.sourceforge.net"
diff --git a/docs/epy/apiclient.schema.Schemas-class.html b/docs/epy/apiclient.schema.Schemas-class.html
index 95de676..39062c6 100644
--- a/docs/epy/apiclient.schema.Schemas-class.html
+++ b/docs/epy/apiclient.schema.Schemas-class.html
@@ -55,14 +55,14 @@
<!-- ==================== CLASS DESCRIPTION ==================== -->
<h1 class="epydoc">Class Schemas</h1><p class="nomargin-top"><span class="codelink"><a href="apiclient.schema-pysrc.html#Schemas">source code</a></span></p>
<center>
-<center> <map id="uml_class_diagram_for_apiclien_27" name="uml_class_diagram_for_apiclien_27">
+<center> <map id="uml_class_diagram_for_apiclien_28" name="uml_class_diagram_for_apiclien_28">
<area shape="rect" href="apiclient.schema.Schemas-class.html#__init__" title="Constructor." alt="" coords="17,36,215,55"/>
<area shape="rect" href="apiclient.schema.Schemas-class.html#prettyPrintByName" title="Get pretty printed object prototype from the schema name." alt="" coords="17,55,215,73"/>
<area shape="rect" href="apiclient.schema.Schemas-class.html#prettyPrintSchema" title="Get pretty printed object prototype of schema." alt="" coords="17,73,215,92"/>
<area shape="rect" href="apiclient.schema.Schemas-class.html#get" title="Get deserialized JSON schema from the schema name." alt="" coords="17,92,215,111"/>
<area shape="rect" href="apiclient.schema.Schemas-class.html" title="Schemas for an API." alt="" coords="16,11,216,112"/>
</map>
- <img src="uml_class_diagram_for_apiclien_27.gif" alt='' usemap="#uml_class_diagram_for_apiclien_27" ismap="ismap" class="graph-without-title" />
+ <img src="uml_class_diagram_for_apiclien_28.gif" alt='' usemap="#uml_class_diagram_for_apiclien_28" ismap="ismap" class="graph-without-title" />
</center>
</center>
<hr />
@@ -471,7 +471,7 @@
<table border="0" cellpadding="0" cellspacing="0" width="100%%">
<tr>
<td align="left" class="footer">
- Generated by Epydoc 3.0.1 on Tue Jun 5 09:03:07 2012
+ Generated by Epydoc 3.0.1 on Thu Jun 14 08:01:56 2012
</td>
<td align="right" class="footer">
<a target="mainFrame" href="http://epydoc.sourceforge.net"
diff --git a/docs/epy/apiclient.schema._SchemaToStruct-class.html b/docs/epy/apiclient.schema._SchemaToStruct-class.html
index 2165ffd..f74384b 100644
--- a/docs/epy/apiclient.schema._SchemaToStruct-class.html
+++ b/docs/epy/apiclient.schema._SchemaToStruct-class.html
@@ -55,7 +55,7 @@
<!-- ==================== CLASS DESCRIPTION ==================== -->
<h1 class="epydoc">Class _SchemaToStruct</h1><p class="nomargin-top"><span class="codelink"><a href="apiclient.schema-pysrc.html#_SchemaToStruct">source code</a></span></p>
<center>
-<center> <map id="uml_class_diagram_for_apiclien_28" name="uml_class_diagram_for_apiclien_28">
+<center> <map id="uml_class_diagram_for_apiclien_29" name="uml_class_diagram_for_apiclien_29">
<area shape="rect" href="apiclient.schema._SchemaToStruct-class.html#__init__" title="Constructor." alt="" coords="17,36,233,55"/>
<area shape="rect" href="apiclient.schema._SchemaToStruct-class.html#emit" title="Add text as a line to the output." alt="" coords="17,55,233,73"/>
<area shape="rect" href="apiclient.schema._SchemaToStruct-class.html#emitBegin" title="Add text to the output, but with no line terminator." alt="" coords="17,73,233,92"/>
@@ -65,7 +65,7 @@
<area shape="rect" href="apiclient.schema._SchemaToStruct-class.html#to_str" title="Prototype object based on the schema, in Python code with comments." alt="" coords="17,148,233,167"/>
<area shape="rect" href="apiclient.schema._SchemaToStruct-class.html" title="Convert schema to a prototype object." alt="" coords="16,11,235,168"/>
</map>
- <img src="uml_class_diagram_for_apiclien_28.gif" alt='' usemap="#uml_class_diagram_for_apiclien_28" ismap="ismap" class="graph-without-title" />
+ <img src="uml_class_diagram_for_apiclien_29.gif" alt='' usemap="#uml_class_diagram_for_apiclien_29" ismap="ismap" class="graph-without-title" />
</center>
</center>
<hr />
@@ -499,7 +499,7 @@
<table border="0" cellpadding="0" cellspacing="0" width="100%%">
<tr>
<td align="left" class="footer">
- Generated by Epydoc 3.0.1 on Tue Jun 5 09:03:07 2012
+ Generated by Epydoc 3.0.1 on Thu Jun 14 08:01:56 2012
</td>
<td align="right" class="footer">
<a target="mainFrame" href="http://epydoc.sourceforge.net"
diff --git a/docs/epy/class-tree.html b/docs/epy/class-tree.html
index cdb16ae..aeb7845 100644
--- a/docs/epy/class-tree.html
+++ b/docs/epy/class-tree.html
@@ -105,44 +105,11 @@
<li> <strong class="uidlink">exceptions.Exception</strong>:
<em class="summary">Common base class for all non-exit exceptions.</em>
<ul>
+ <li> <strong class="uidlink"><a href="oauth2client.locked_file.AlreadyLockedException-class.html">oauth2client.locked_file.AlreadyLockedException</a></strong>:
+ <em class="summary">Trying to lock a file that has already been locked by the LockedFile.</em>
+ </li>
<li> <strong class="uidlink"><a href="oauth2client.crypt.AppIdentityError-class.html">oauth2client.crypt.AppIdentityError</a></strong>
</li>
- <li> <strong class="uidlink"><a href="oauth2client.client.Error-class.html">oauth2client.client.Error</a></strong>:
- <em class="summary">Base error for this module.</em>
- <ul>
- <li> <strong class="uidlink"><a href="oauth2client.client.AccessTokenCredentialsError-class.html">oauth2client.client.AccessTokenCredentialsError</a></strong>:
- <em class="summary">Having only the access_token means no refresh is possible.</em>
- </li>
- <li> <strong class="uidlink"><a href="oauth2client.client.AccessTokenRefreshError-class.html">oauth2client.client.AccessTokenRefreshError</a></strong>:
- <em class="summary">Error trying to refresh an expired access token.</em>
- </li>
- <li> <strong class="uidlink"><a href="oauth2client.client.FlowExchangeError-class.html">oauth2client.client.FlowExchangeError</a></strong>:
- <em class="summary">Error trying to exchange an authorization grant for an access token.</em>
- </li>
- <li> <strong class="uidlink"><a href="oauth2client.client.UnknownClientSecretsFlowError-class.html">oauth2client.client.UnknownClientSecretsFlowError</a></strong>:
- <em class="summary">The client secrets file called for an unknown type of OAuth 2.0 flow.</em>
- </li>
- <li> <strong class="uidlink"><a href="oauth2client.client.VerifyJwtTokenError-class.html">oauth2client.client.VerifyJwtTokenError</a></strong>:
- <em class="summary">Could on retrieve certificates for validation.</em>
- </li>
- </ul>
- </li>
- <li> <strong class="uidlink"><a href="oauth2client.clientsecrets.Error-class.html">oauth2client.clientsecrets.Error</a></strong>:
- <em class="summary">Base error for this module.</em>
- <ul>
- <li> <strong class="uidlink"><a href="oauth2client.clientsecrets.InvalidClientSecretsError-class.html">oauth2client.clientsecrets.InvalidClientSecretsError</a></strong>:
- <em class="summary">Format of ClientSecrets file is invalid.</em>
- </li>
- </ul>
- </li>
- <li> <strong class="uidlink"><a href="oauth2client.multistore_file.Error-class.html">oauth2client.multistore_file.Error</a></strong>:
- <em class="summary">Base error for this module.</em>
- <ul>
- <li> <strong class="uidlink"><a href="oauth2client.multistore_file.NewerCredentialStoreError-class.html">oauth2client.multistore_file.NewerCredentialStoreError</a></strong>:
- <em class="summary">The credential store is a newer version that supported.</em>
- </li>
- </ul>
- </li>
<li> <strong class="uidlink"><a href="apiclient.errors.Error-class.html">apiclient.errors.Error</a></strong>:
<em class="summary">Base error for this module.</em>
<ul>
@@ -180,6 +147,42 @@
</li>
</ul>
</li>
+ <li> <strong class="uidlink"><a href="oauth2client.multistore_file.Error-class.html">oauth2client.multistore_file.Error</a></strong>:
+ <em class="summary">Base error for this module.</em>
+ <ul>
+ <li> <strong class="uidlink"><a href="oauth2client.multistore_file.NewerCredentialStoreError-class.html">oauth2client.multistore_file.NewerCredentialStoreError</a></strong>:
+ <em class="summary">The credential store is a newer version that supported.</em>
+ </li>
+ </ul>
+ </li>
+ <li> <strong class="uidlink"><a href="oauth2client.client.Error-class.html">oauth2client.client.Error</a></strong>:
+ <em class="summary">Base error for this module.</em>
+ <ul>
+ <li> <strong class="uidlink"><a href="oauth2client.client.AccessTokenCredentialsError-class.html">oauth2client.client.AccessTokenCredentialsError</a></strong>:
+ <em class="summary">Having only the access_token means no refresh is possible.</em>
+ </li>
+ <li> <strong class="uidlink"><a href="oauth2client.client.AccessTokenRefreshError-class.html">oauth2client.client.AccessTokenRefreshError</a></strong>:
+ <em class="summary">Error trying to refresh an expired access token.</em>
+ </li>
+ <li> <strong class="uidlink"><a href="oauth2client.client.FlowExchangeError-class.html">oauth2client.client.FlowExchangeError</a></strong>:
+ <em class="summary">Error trying to exchange an authorization grant for an access token.</em>
+ </li>
+ <li> <strong class="uidlink"><a href="oauth2client.client.UnknownClientSecretsFlowError-class.html">oauth2client.client.UnknownClientSecretsFlowError</a></strong>:
+ <em class="summary">The client secrets file called for an unknown type of OAuth 2.0 flow.</em>
+ </li>
+ <li> <strong class="uidlink"><a href="oauth2client.client.VerifyJwtTokenError-class.html">oauth2client.client.VerifyJwtTokenError</a></strong>:
+ <em class="summary">Could on retrieve certificates for validation.</em>
+ </li>
+ </ul>
+ </li>
+ <li> <strong class="uidlink"><a href="oauth2client.clientsecrets.Error-class.html">oauth2client.clientsecrets.Error</a></strong>:
+ <em class="summary">Base error for this module.</em>
+ <ul>
+ <li> <strong class="uidlink"><a href="oauth2client.clientsecrets.InvalidClientSecretsError-class.html">oauth2client.clientsecrets.InvalidClientSecretsError</a></strong>:
+ <em class="summary">Format of ClientSecrets file is invalid.</em>
+ </li>
+ </ul>
+ </li>
<li> <strong class="uidlink"><a href="oauth2client.appengine.InvalidClientSecretsError-class.html">oauth2client.appengine.InvalidClientSecretsError</a></strong>:
<em class="summary">The client_secrets.json file is malformed or missing required fields.</em>
</li>
@@ -214,8 +217,7 @@
</li>
</ul>
</li>
- <li> <strong class="uidlink">django.db.models.fields.Field</strong>:
- <em class="summary">Base class for all field types</em>
+ <li> <strong class="uidlink">django.db.models.fields.Field</strong>
<ul>
<li> <strong class="uidlink"><a href="oauth2client.django_orm.CredentialsField-class.html">oauth2client.django_orm.CredentialsField</a></strong>
</li>
@@ -243,6 +245,9 @@
<li> <strong class="uidlink"><a href="apiclient.http.HttpRequestMock-class.html">apiclient.http.HttpRequestMock</a></strong>:
<em class="summary">Mock of HttpRequest.</em>
</li>
+ <li> <strong class="uidlink"><a href="oauth2client.locked_file.LockedFile-class.html">oauth2client.locked_file.LockedFile</a></strong>:
+ <em class="summary">Represent a file that has exclusive access.</em>
+ </li>
<li> <strong class="uidlink"><a href="apiclient.http.MediaUpload-class.html">apiclient.http.MediaUpload</a></strong>:
<em class="summary">Describes a media object to upload.</em>
<ul>
@@ -252,6 +257,9 @@
<li> <strong class="uidlink"><a href="apiclient.http.MediaInMemoryUpload-class.html">apiclient.http.MediaInMemoryUpload</a></strong>:
<em class="summary">MediaUpload for a chunk of bytes.</em>
</li>
+ <li> <strong class="uidlink"><a href="apiclient.http.MediaIoBaseUpload-class.html">apiclient.http.MediaIoBaseUpload</a></strong>:
+ <em class="summary">A MediaUpload for a io.Base objects.</em>
+ </li>
</ul>
</li>
<li> <strong class="uidlink"><a href="apiclient.http.MediaUploadProgress-class.html">apiclient.http.MediaUploadProgress</a></strong>:
@@ -350,6 +358,17 @@
<li> <strong class="uidlink"><a href="oauth2client.multistore_file._MultiStore-class.html" onclick="show_private();">oauth2client.multistore_file._MultiStore</a></strong>:
<em class="summary">A file backed store for multiple credentials.</em>
</li>
+ <li> <strong class="uidlink"><a href="oauth2client.locked_file._Opener-class.html" onclick="show_private();">oauth2client.locked_file._Opener</a></strong>:
+ <em class="summary">Base class for different locking primitives.</em>
+ <ul>
+ <li> <strong class="uidlink"><a href="oauth2client.locked_file._FcntlOpener-class.html" onclick="show_private();">oauth2client.locked_file._FcntlOpener</a></strong>:
+ <em class="summary">Open, lock, and unlock a file using fcntl.lockf.</em>
+ </li>
+ <li> <strong class="uidlink"><a href="oauth2client.locked_file._PosixOpener-class.html" onclick="show_private();">oauth2client.locked_file._PosixOpener</a></strong>:
+ <em class="summary">Lock files using Posix advisory lock files.</em>
+ </li>
+ </ul>
+ </li>
<li> <strong class="uidlink"><a href="apiclient.schema._SchemaToStruct-class.html" onclick="show_private();">apiclient.schema._SchemaToStruct</a></strong>:
<em class="summary">Convert schema to a prototype object.</em>
</li>
@@ -390,7 +409,7 @@
<table border="0" cellpadding="0" cellspacing="0" width="100%%">
<tr>
<td align="left" class="footer">
- Generated by Epydoc 3.0.1 on Tue Jun 5 09:03:04 2012
+ Generated by Epydoc 3.0.1 on Thu Jun 14 08:01:54 2012
</td>
<td align="right" class="footer">
<a target="mainFrame" href="http://epydoc.sourceforge.net"
diff --git a/docs/epy/django.db.models.fields.subclassing.SubfieldBase-class.html b/docs/epy/django.db.models.fields.subclassing.SubfieldBase-class.html
index d9224e2..e7e995c 100644
--- a/docs/epy/django.db.models.fields.subclassing.SubfieldBase-class.html
+++ b/docs/epy/django.db.models.fields.subclassing.SubfieldBase-class.html
@@ -60,36 +60,36 @@
<h1 class="epydoc">Type SubfieldBase</h1><p class="nomargin-top"></p>
<center>
<center> <map id="uml_class_diagram_for_django_d" name="uml_class_diagram_for_django_d">
-<area shape="rect" href="django.db.models.fields.subclassing.SubfieldBase-class.html#__new__" title="django.db.models.fields.subclassing.SubfieldBase.__new__" alt="" coords="17,591,217,609"/>
-<area shape="rect" href="django.db.models.fields.subclassing.SubfieldBase-class.html" title="A metaclass for custom Field subclasses." alt="" coords="16,565,219,611"/>
-<area shape="rect" href="javascript:void(0);" title="type.__abstractmethods__" alt="" coords="52,28,183,47"/>
-<area shape="rect" href="javascript:void(0);" title="type.__base__" alt="" coords="52,47,183,65"/>
-<area shape="rect" href="javascript:void(0);" title="type.__bases__" alt="" coords="52,65,183,84"/>
-<area shape="rect" href="javascript:void(0);" title="type.__basicsize__" alt="" coords="52,84,183,103"/>
-<area shape="rect" href="javascript:void(0);" title="type.__dictoffset__" alt="" coords="52,103,183,121"/>
-<area shape="rect" href="javascript:void(0);" title="type.__flags__" alt="" coords="52,121,183,140"/>
-<area shape="rect" href="javascript:void(0);" title="type.__instancecheck__" alt="" coords="52,140,183,159"/>
-<area shape="rect" href="javascript:void(0);" title="type.__itemsize__" alt="" coords="52,159,183,177"/>
-<area shape="rect" href="javascript:void(0);" title="type.__mro__" alt="" coords="52,177,183,196"/>
-<area shape="rect" href="javascript:void(0);" title="type.__name__" alt="" coords="52,196,183,215"/>
-<area shape="rect" href="javascript:void(0);" title="type.__subclasscheck__" alt="" coords="52,215,183,233"/>
-<area shape="rect" href="javascript:void(0);" title="type.__weakrefoffset__" alt="" coords="52,233,183,252"/>
-<area shape="rect" href="javascript:void(0);" title="x(...)" alt="" coords="52,255,183,273"/>
-<area shape="rect" href="javascript:void(0);" title="x.__delattr__('name') <==> del x.name" alt="" coords="52,273,183,292"/>
-<area shape="rect" href="javascript:void(0);" title="x==y" alt="" coords="52,292,183,311"/>
-<area shape="rect" href="javascript:void(0);" title="x>=y" alt="" coords="52,311,183,329"/>
-<area shape="rect" href="javascript:void(0);" title="x.__getattribute__('name') <==> x.name" alt="" coords="52,329,183,348"/>
-<area shape="rect" href="javascript:void(0);" title="x>y" alt="" coords="52,348,183,367"/>
-<area shape="rect" href="javascript:void(0);" title="hash(x)" alt="" coords="52,367,183,385"/>
-<area shape="rect" href="javascript:void(0);" title="x.__init__(...) initializes x; see x.__class__.__doc__ for signature" alt="" coords="52,385,183,404"/>
-<area shape="rect" href="javascript:void(0);" title="x<=y" alt="" coords="52,404,183,423"/>
-<area shape="rect" href="javascript:void(0);" title="x<y" alt="" coords="52,423,183,441"/>
-<area shape="rect" href="javascript:void(0);" title="x!=y" alt="" coords="52,441,183,460"/>
-<area shape="rect" href="javascript:void(0);" title="repr(x)" alt="" coords="52,460,183,479"/>
-<area shape="rect" href="javascript:void(0);" title="x.__setattr__('name', value) <==> x.name = value" alt="" coords="52,479,183,497"/>
-<area shape="rect" href="javascript:void(0);" title="type.__subclasses__" alt="" coords="52,497,183,516"/>
-<area shape="rect" href="javascript:void(0);" title="return a type's method resolution order" alt="" coords="52,516,183,535"/>
-<area shape="rect" href="javascript:void(0);" title="type(object) -> the object's type..." alt="" coords="51,11,184,536"/>
+<area shape="rect" href="django.db.models.fields.subclassing.SubfieldBase-class.html#__new__" title="django.db.models.fields.subclassing.SubfieldBase.__new__" alt="" coords="17,591,209,609"/>
+<area shape="rect" href="django.db.models.fields.subclassing.SubfieldBase-class.html" title="A metaclass for custom Field subclasses." alt="" coords="16,565,211,611"/>
+<area shape="rect" href="javascript:void(0);" title="type.__abstractmethods__" alt="" coords="48,28,179,47"/>
+<area shape="rect" href="javascript:void(0);" title="type.__base__" alt="" coords="48,47,179,65"/>
+<area shape="rect" href="javascript:void(0);" title="type.__bases__" alt="" coords="48,65,179,84"/>
+<area shape="rect" href="javascript:void(0);" title="type.__basicsize__" alt="" coords="48,84,179,103"/>
+<area shape="rect" href="javascript:void(0);" title="type.__dictoffset__" alt="" coords="48,103,179,121"/>
+<area shape="rect" href="javascript:void(0);" title="type.__flags__" alt="" coords="48,121,179,140"/>
+<area shape="rect" href="javascript:void(0);" title="type.__instancecheck__" alt="" coords="48,140,179,159"/>
+<area shape="rect" href="javascript:void(0);" title="type.__itemsize__" alt="" coords="48,159,179,177"/>
+<area shape="rect" href="javascript:void(0);" title="type.__mro__" alt="" coords="48,177,179,196"/>
+<area shape="rect" href="javascript:void(0);" title="type.__name__" alt="" coords="48,196,179,215"/>
+<area shape="rect" href="javascript:void(0);" title="type.__subclasscheck__" alt="" coords="48,215,179,233"/>
+<area shape="rect" href="javascript:void(0);" title="type.__weakrefoffset__" alt="" coords="48,233,179,252"/>
+<area shape="rect" href="javascript:void(0);" title="x(...)" alt="" coords="48,255,179,273"/>
+<area shape="rect" href="javascript:void(0);" title="x.__delattr__('name') <==> del x.name" alt="" coords="48,273,179,292"/>
+<area shape="rect" href="javascript:void(0);" title="x==y" alt="" coords="48,292,179,311"/>
+<area shape="rect" href="javascript:void(0);" title="x>=y" alt="" coords="48,311,179,329"/>
+<area shape="rect" href="javascript:void(0);" title="x.__getattribute__('name') <==> x.name" alt="" coords="48,329,179,348"/>
+<area shape="rect" href="javascript:void(0);" title="x>y" alt="" coords="48,348,179,367"/>
+<area shape="rect" href="javascript:void(0);" title="hash(x)" alt="" coords="48,367,179,385"/>
+<area shape="rect" href="javascript:void(0);" title="x.__init__(...) initializes x; see x.__class__.__doc__ for signature" alt="" coords="48,385,179,404"/>
+<area shape="rect" href="javascript:void(0);" title="x<=y" alt="" coords="48,404,179,423"/>
+<area shape="rect" href="javascript:void(0);" title="x<y" alt="" coords="48,423,179,441"/>
+<area shape="rect" href="javascript:void(0);" title="x!=y" alt="" coords="48,441,179,460"/>
+<area shape="rect" href="javascript:void(0);" title="repr(x)" alt="" coords="48,460,179,479"/>
+<area shape="rect" href="javascript:void(0);" title="x.__setattr__('name', value) <==> x.name = value" alt="" coords="48,479,179,497"/>
+<area shape="rect" href="javascript:void(0);" title="type.__subclasses__" alt="" coords="48,497,179,516"/>
+<area shape="rect" href="javascript:void(0);" title="return a type's method resolution order" alt="" coords="48,516,179,535"/>
+<area shape="rect" href="javascript:void(0);" title="type(object) -> the object's type..." alt="" coords="47,11,180,536"/>
</map>
<img src="uml_class_diagram_for_django_d.gif" alt='' usemap="#uml_class_diagram_for_django_d" ismap="ismap" class="graph-without-title" />
</center>
@@ -176,8 +176,8 @@
<table width="100%" cellpadding="0" cellspacing="0" border="0">
<tr>
<td><span class="summary-sig"><a href="django.db.models.fields.subclassing.SubfieldBase-class.html#__new__" class="summary-sig-name">__new__</a>(<span class="summary-sig-arg">cls</span>,
+ <span class="summary-sig-arg">base</span>,
<span class="summary-sig-arg">name</span>,
- <span class="summary-sig-arg">bases</span>,
<span class="summary-sig-arg">attrs</span>)</span></td>
<td align="right" valign="top">
@@ -254,8 +254,8 @@
<table width="100%" cellpadding="0" cellspacing="0" border="0">
<tr valign="top"><td>
<h3 class="epydoc"><span class="sig"><span class="sig-name">__new__</span>(<span class="sig-arg">cls</span>,
+ <span class="sig-arg">base</span>,
<span class="sig-arg">name</span>,
- <span class="sig-arg">bases</span>,
<span class="sig-arg">attrs</span>)</span>
<br /><em class="fname">Static Method</em>
</h3>
@@ -304,7 +304,7 @@
<table border="0" cellpadding="0" cellspacing="0" width="100%%">
<tr>
<td align="left" class="footer">
- Generated by Epydoc 3.0.1 on Tue Jun 5 09:03:07 2012
+ Generated by Epydoc 3.0.1 on Thu Jun 14 08:01:56 2012
</td>
<td align="right" class="footer">
<a target="mainFrame" href="http://epydoc.sourceforge.net"
diff --git a/docs/epy/google.appengine.ext.db.PropertiedClass-class.html b/docs/epy/google.appengine.ext.db.PropertiedClass-class.html
index 13e0de4..7b96a17 100644
--- a/docs/epy/google.appengine.ext.db.PropertiedClass-class.html
+++ b/docs/epy/google.appengine.ext.db.PropertiedClass-class.html
@@ -322,7 +322,7 @@
<table border="0" cellpadding="0" cellspacing="0" width="100%%">
<tr>
<td align="left" class="footer">
- Generated by Epydoc 3.0.1 on Tue Jun 5 09:03:07 2012
+ Generated by Epydoc 3.0.1 on Thu Jun 14 08:01:56 2012
</td>
<td align="right" class="footer">
<a target="mainFrame" href="http://epydoc.sourceforge.net"
diff --git a/docs/epy/help.html b/docs/epy/help.html
index f51e129..210db28 100644
--- a/docs/epy/help.html
+++ b/docs/epy/help.html
@@ -240,7 +240,7 @@
<table border="0" cellpadding="0" cellspacing="0" width="100%%">
<tr>
<td align="left" class="footer">
- Generated by Epydoc 3.0.1 on Tue Jun 5 09:03:04 2012
+ Generated by Epydoc 3.0.1 on Thu Jun 14 08:01:54 2012
</td>
<td align="right" class="footer">
<a target="mainFrame" href="http://epydoc.sourceforge.net"
diff --git a/docs/epy/identifier-index.html b/docs/epy/identifier-index.html
index d1bb7cc..dd40306 100644
--- a/docs/epy/identifier-index.html
+++ b/docs/epy/identifier-index.html
@@ -89,43 +89,51 @@
<span class="index-where">(in <a href="apiclient.model.BaseModel-class.html">BaseModel</a>)</span></td>
<td width="33%" class="link-index"><a href="oauth2client.multistore_file._MultiStore._Storage-class.html#acquire_lock">acquire_lock()</a><br />
<span class="index-where">(in <a href="oauth2client.multistore_file._MultiStore._Storage-class.html" onclick="show_private();">_Storage</a>)</span></td>
-<td width="33%" class="link-index"><a href="oauth2client.crypt.AppIdentityError-class.html">AppIdentityError</a><br />
-<span class="index-where">(in <a href="oauth2client.crypt-module.html">oauth2client.crypt</a>)</span></td>
+<td width="33%" class="link-index"><a href="oauth2client.appengine-module.html">appengine</a><br />
+<span class="index-where">(in <a href="oauth2client-module.html">oauth2client</a>)</span></td>
</tr>
<tr>
<td width="33%" class="link-index"><a href="apiclient.model.JsonModel-class.html#accept">accept</a><br />
<span class="index-where">(in <a href="apiclient.model.JsonModel-class.html">JsonModel</a>)</span></td>
<td width="33%" class="link-index"><a href="apiclient.http.BatchHttpRequest-class.html#add">add()</a><br />
<span class="index-where">(in <a href="apiclient.http.BatchHttpRequest-class.html">BatchHttpRequest</a>)</span></td>
-<td width="33%" class="link-index"><a href="oauth2client.appengine-module.html#application">application</a><br />
-<span class="index-where">(in <a href="oauth2client.appengine-module.html">oauth2client.appengine</a>)</span></td>
+<td width="33%" class="link-index"><a href="oauth2client.crypt.AppIdentityError-class.html">AppIdentityError</a><br />
+<span class="index-where">(in <a href="oauth2client.crypt-module.html">oauth2client.crypt</a>)</span></td>
</tr>
<tr>
<td width="33%" class="link-index"><a href="apiclient.model.ProtocolBufferModel-class.html#accept">accept</a><br />
<span class="index-where">(in <a href="apiclient.model.ProtocolBufferModel-class.html">ProtocolBufferModel</a>)</span></td>
+<td width="33%" class="link-index"><a href="oauth2client.locked_file.AlreadyLockedException-class.html">AlreadyLockedException</a><br />
+<span class="index-where">(in <a href="oauth2client.locked_file-module.html">oauth2client.locked_file</a>)</span></td>
+<td width="33%" class="link-index"><a href="oauth2client.appengine-module.html#application">application</a><br />
+<span class="index-where">(in <a href="oauth2client.appengine-module.html">oauth2client.appengine</a>)</span></td>
+</tr>
+<tr>
+<td width="33%" class="link-index"><a href="apiclient.model.RawModel-class.html#accept">accept</a><br />
+<span class="index-where">(in <a href="apiclient.model.RawModel-class.html">RawModel</a>)</span></td>
<td width="33%" class="link-index"><a href="apiclient.model.BaseModel-class.html#alt_param">alt_param</a><br />
<span class="index-where">(in <a href="apiclient.model.BaseModel-class.html">BaseModel</a>)</span></td>
<td width="33%" class="link-index"><a href="oauth2client.client.Credentials-class.html#apply">apply()</a><br />
<span class="index-where">(in <a href="oauth2client.client.Credentials-class.html">Credentials</a>)</span></td>
</tr>
<tr>
-<td width="33%" class="link-index"><a href="apiclient.model.RawModel-class.html#accept">accept</a><br />
-<span class="index-where">(in <a href="apiclient.model.RawModel-class.html">RawModel</a>)</span></td>
+<td width="33%" class="link-index"><a href="oauth2client.client.OAuth2Credentials-class.html#access_token_expired">access_token_expired</a><br />
+<span class="index-where">(in <a href="oauth2client.client.OAuth2Credentials-class.html">OAuth2Credentials</a>)</span></td>
<td width="33%" class="link-index"><a href="apiclient.model.JsonModel-class.html#alt_param">alt_param</a><br />
<span class="index-where">(in <a href="apiclient.model.JsonModel-class.html">JsonModel</a>)</span></td>
<td width="33%" class="link-index"><a href="oauth2client.client.OAuth2Credentials-class.html#apply">apply()</a><br />
<span class="index-where">(in <a href="oauth2client.client.OAuth2Credentials-class.html">OAuth2Credentials</a>)</span></td>
</tr>
<tr>
-<td width="33%" class="link-index"><a href="oauth2client.client.OAuth2Credentials-class.html#access_token_expired">access_token_expired</a><br />
-<span class="index-where">(in <a href="oauth2client.client.OAuth2Credentials-class.html">OAuth2Credentials</a>)</span></td>
+<td width="33%" class="link-index"><a href="oauth2client.client.AccessTokenCredentials-class.html">AccessTokenCredentials</a><br />
+<span class="index-where">(in <a href="oauth2client.client-module.html">oauth2client.client</a>)</span></td>
<td width="33%" class="link-index"><a href="apiclient.model.ProtocolBufferModel-class.html#alt_param">alt_param</a><br />
<span class="index-where">(in <a href="apiclient.model.ProtocolBufferModel-class.html">ProtocolBufferModel</a>)</span></td>
<td width="33%" class="link-index"><a href="oauth2client.client.AssertionCredentials-class.html">AssertionCredentials</a><br />
<span class="index-where">(in <a href="oauth2client.client-module.html">oauth2client.client</a>)</span></td>
</tr>
<tr>
-<td width="33%" class="link-index"><a href="oauth2client.client.AccessTokenCredentials-class.html">AccessTokenCredentials</a><br />
+<td width="33%" class="link-index"><a href="oauth2client.client.AccessTokenCredentialsError-class.html">AccessTokenCredentialsError</a><br />
<span class="index-where">(in <a href="oauth2client.client-module.html">oauth2client.client</a>)</span></td>
<td width="33%" class="link-index"><a href="apiclient.model.RawModel-class.html#alt_param">alt_param</a><br />
<span class="index-where">(in <a href="apiclient.model.RawModel-class.html">RawModel</a>)</span></td>
@@ -133,7 +141,7 @@
<span class="index-where">(in <a href="oauth2client.crypt-module.html">oauth2client.crypt</a>)</span></td>
</tr>
<tr>
-<td width="33%" class="link-index"><a href="oauth2client.client.AccessTokenCredentialsError-class.html">AccessTokenCredentialsError</a><br />
+<td width="33%" class="link-index"><a href="oauth2client.client.AccessTokenRefreshError-class.html">AccessTokenRefreshError</a><br />
<span class="index-where">(in <a href="oauth2client.client-module.html">oauth2client.client</a>)</span></td>
<td width="33%" class="link-index"><a href="oauth2client.anyjson-module.html">anyjson</a><br />
<span class="index-where">(in <a href="oauth2client-module.html">oauth2client</a>)</span></td>
@@ -141,27 +149,20 @@
<span class="index-where">(in <a href="oauth2client.client.Credentials-class.html">Credentials</a>)</span></td>
</tr>
<tr>
-<td width="33%" class="link-index"><a href="oauth2client.client.AccessTokenRefreshError-class.html">AccessTokenRefreshError</a><br />
-<span class="index-where">(in <a href="oauth2client.client-module.html">oauth2client.client</a>)</span></td>
+<td width="33%" class="link-index"><a href="oauth2client.client.Storage-class.html#acquire_lock">acquire_lock()</a><br />
+<span class="index-where">(in <a href="oauth2client.client.Storage-class.html">Storage</a>)</span></td>
<td width="33%" class="link-index"><a href="apiclient-module.html">apiclient</a></td>
<td width="33%" class="link-index"><a href="oauth2client.client.OAuth2Credentials-class.html#authorize">authorize()</a><br />
<span class="index-where">(in <a href="oauth2client.client.OAuth2Credentials-class.html">OAuth2Credentials</a>)</span></td>
</tr>
<tr>
-<td width="33%" class="link-index"><a href="oauth2client.client.Storage-class.html#acquire_lock">acquire_lock()</a><br />
-<span class="index-where">(in <a href="oauth2client.client.Storage-class.html">Storage</a>)</span></td>
+<td width="33%" class="link-index"><a href="oauth2client.file.Storage-class.html#acquire_lock">acquire_lock()</a><br />
+<span class="index-where">(in <a href="oauth2client.file.Storage-class.html">Storage</a>)</span></td>
<td width="33%" class="link-index"><a href="oauth2client.appengine.AppAssertionCredentials-class.html">AppAssertionCredentials</a><br />
<span class="index-where">(in <a href="oauth2client.appengine-module.html">oauth2client.appengine</a>)</span></td>
<td width="33%" class="link-index"><a href="oauth2client.appengine.OAuth2Decorator-class.html#authorize_url">authorize_url()</a><br />
<span class="index-where">(in <a href="oauth2client.appengine.OAuth2Decorator-class.html">OAuth2Decorator</a>)</span></td>
</tr>
-<tr>
-<td width="33%" class="link-index"><a href="oauth2client.file.Storage-class.html#acquire_lock">acquire_lock()</a><br />
-<span class="index-where">(in <a href="oauth2client.file.Storage-class.html">Storage</a>)</span></td>
-<td width="33%" class="link-index"><a href="oauth2client.appengine-module.html">appengine</a><br />
-<span class="index-where">(in <a href="oauth2client-module.html">oauth2client</a>)</span></td>
-<td width="33%" class="link-index"> </td>
-</tr>
</table>
</td></tr>
<tr valign="top"><td valign="top" width="1%"><h2 class="epydoc"><a name="B">B</a></h2></td>
@@ -191,17 +192,25 @@
<tr>
<td width="33%" class="link-index"><a href="apiclient.http.MediaFileUpload-class.html#chunksize">chunksize()</a><br />
<span class="index-where">(in <a href="apiclient.http.MediaFileUpload-class.html">MediaFileUpload</a>)</span></td>
-<td width="33%" class="link-index"><a href="apiclient.model.BaseModel-class.html#content_type">content_type</a><br />
-<span class="index-where">(in <a href="apiclient.model.BaseModel-class.html">BaseModel</a>)</span></td>
+<td width="33%" class="link-index"><a href="oauth2client.crypt-module.html#CLOCK_SKEW_SECS">CLOCK_SKEW_SECS</a><br />
+<span class="index-where">(in <a href="oauth2client.crypt-module.html">oauth2client.crypt</a>)</span></td>
<td width="33%" class="link-index"><a href="oauth2client.appengine.CredentialsModel-class.html#credentials">credentials</a><br />
<span class="index-where">(in <a href="oauth2client.appengine.CredentialsModel-class.html">CredentialsModel</a>)</span></td>
</tr>
<tr>
<td width="33%" class="link-index"><a href="apiclient.http.MediaInMemoryUpload-class.html#chunksize">chunksize()</a><br />
<span class="index-where">(in <a href="apiclient.http.MediaInMemoryUpload-class.html">MediaInMemoryUpload</a>)</span></td>
+<td width="33%" class="link-index"><a href="apiclient.model.BaseModel-class.html#content_type">content_type</a><br />
+<span class="index-where">(in <a href="apiclient.model.BaseModel-class.html">BaseModel</a>)</span></td>
+<td width="33%" class="link-index"><a href="oauth2client.client.Credentials-class.html">Credentials</a><br />
+<span class="index-where">(in <a href="oauth2client.client-module.html">oauth2client.client</a>)</span></td>
+</tr>
+<tr>
+<td width="33%" class="link-index"><a href="apiclient.http.MediaIoBaseUpload-class.html#chunksize">chunksize()</a><br />
+<span class="index-where">(in <a href="apiclient.http.MediaIoBaseUpload-class.html">MediaIoBaseUpload</a>)</span></td>
<td width="33%" class="link-index"><a href="apiclient.model.JsonModel-class.html#content_type">content_type</a><br />
<span class="index-where">(in <a href="apiclient.model.JsonModel-class.html">JsonModel</a>)</span></td>
-<td width="33%" class="link-index"><a href="oauth2client.client.Credentials-class.html">Credentials</a><br />
+<td width="33%" class="link-index"><a href="oauth2client.client-module.html#credentials_from_clientsecrets_and_code">credentials_from_clientsecrets_and_code()</a><br />
<span class="index-where">(in <a href="oauth2client.client-module.html">oauth2client.client</a>)</span></td>
</tr>
<tr>
@@ -209,46 +218,40 @@
<span class="index-where">(in <a href="apiclient.http.MediaUpload-class.html">MediaUpload</a>)</span></td>
<td width="33%" class="link-index"><a href="apiclient.model.ProtocolBufferModel-class.html#content_type">content_type</a><br />
<span class="index-where">(in <a href="apiclient.model.ProtocolBufferModel-class.html">ProtocolBufferModel</a>)</span></td>
-<td width="33%" class="link-index"><a href="oauth2client.django_orm.CredentialsField-class.html">CredentialsField</a><br />
-<span class="index-where">(in <a href="oauth2client.django_orm-module.html">oauth2client.django_orm</a>)</span></td>
+<td width="33%" class="link-index"><a href="oauth2client.client-module.html#credentials_from_code">credentials_from_code()</a><br />
+<span class="index-where">(in <a href="oauth2client.client-module.html">oauth2client.client</a>)</span></td>
</tr>
<tr>
<td width="33%" class="link-index"><a href="oauth2client.client-module.html">client</a><br />
<span class="index-where">(in <a href="oauth2client-module.html">oauth2client</a>)</span></td>
<td width="33%" class="link-index"><a href="apiclient.model.RawModel-class.html#content_type">content_type</a><br />
<span class="index-where">(in <a href="apiclient.model.RawModel-class.html">RawModel</a>)</span></td>
-<td width="33%" class="link-index"><a href="oauth2client.appengine.CredentialsModel-class.html">CredentialsModel</a><br />
-<span class="index-where">(in <a href="oauth2client.appengine-module.html">oauth2client.appengine</a>)</span></td>
+<td width="33%" class="link-index"><a href="oauth2client.django_orm.CredentialsField-class.html">CredentialsField</a><br />
+<span class="index-where">(in <a href="oauth2client.django_orm-module.html">oauth2client.django_orm</a>)</span></td>
</tr>
<tr>
<td width="33%" class="link-index"><a href="oauth2client.tools.ClientRedirectHandler-class.html">ClientRedirectHandler</a><br />
<span class="index-where">(in <a href="oauth2client.tools-module.html">oauth2client.tools</a>)</span></td>
-<td width="33%" class="link-index"><a href="apiclient.contrib-module.html">contrib</a><br />
-<span class="index-where">(in <a href="apiclient-module.html">apiclient</a>)</span></td>
-<td width="33%" class="link-index"><a href="oauth2client.appengine.CredentialsProperty-class.html">CredentialsProperty</a><br />
+<td width="33%" class="link-index"><a href="oauth2client.django_orm.CredentialsField-class.html#contribute_to_class">contribute_to_class()</a><br />
+<span class="index-where">(in <a href="oauth2client.django_orm.CredentialsField-class.html">CredentialsField</a>)</span></td>
+<td width="33%" class="link-index"><a href="oauth2client.appengine.CredentialsModel-class.html">CredentialsModel</a><br />
<span class="index-where">(in <a href="oauth2client.appengine-module.html">oauth2client.appengine</a>)</span></td>
</tr>
<tr>
<td width="33%" class="link-index"><a href="oauth2client.tools.ClientRedirectServer-class.html">ClientRedirectServer</a><br />
<span class="index-where">(in <a href="oauth2client.tools-module.html">oauth2client.tools</a>)</span></td>
-<td width="33%" class="link-index"><a href="oauth2client.django_orm.CredentialsField-class.html#contribute_to_class">contribute_to_class()</a><br />
-<span class="index-where">(in <a href="oauth2client.django_orm.CredentialsField-class.html">CredentialsField</a>)</span></td>
-<td width="33%" class="link-index"><a href="oauth2client.crypt-module.html">crypt</a><br />
-<span class="index-where">(in <a href="oauth2client-module.html">oauth2client</a>)</span></td>
+<td width="33%" class="link-index"><a href="oauth2client.django_orm.FlowField-class.html#contribute_to_class">contribute_to_class()</a><br />
+<span class="index-where">(in <a href="oauth2client.django_orm.FlowField-class.html">FlowField</a>)</span></td>
+<td width="33%" class="link-index"><a href="oauth2client.appengine.CredentialsProperty-class.html">CredentialsProperty</a><br />
+<span class="index-where">(in <a href="oauth2client.appengine-module.html">oauth2client.appengine</a>)</span></td>
</tr>
<tr>
<td width="33%" class="link-index"><a href="oauth2client.clientsecrets-module.html">clientsecrets</a><br />
<span class="index-where">(in <a href="oauth2client-module.html">oauth2client</a>)</span></td>
-<td width="33%" class="link-index"><a href="oauth2client.django_orm.FlowField-class.html#contribute_to_class">contribute_to_class()</a><br />
-<span class="index-where">(in <a href="oauth2client.django_orm.FlowField-class.html">FlowField</a>)</span></td>
-<td width="33%" class="link-index"> </td>
-</tr>
-<tr>
-<td width="33%" class="link-index"><a href="oauth2client.crypt-module.html#CLOCK_SKEW_SECS">CLOCK_SKEW_SECS</a><br />
-<span class="index-where">(in <a href="oauth2client.crypt-module.html">oauth2client.crypt</a>)</span></td>
<td width="33%" class="link-index"><a href="apiclient.discovery-module.html#createResource">createResource()</a><br />
<span class="index-where">(in <a href="apiclient.discovery-module.html">apiclient.discovery</a>)</span></td>
-<td width="33%" class="link-index"> </td>
+<td width="33%" class="link-index"><a href="oauth2client.crypt-module.html">crypt</a><br />
+<span class="index-where">(in <a href="oauth2client-module.html">oauth2client</a>)</span></td>
</tr>
</table>
</td></tr>
@@ -256,6 +259,14 @@
<td valign="top">
<table class="link-index" width="100%" border="1">
<tr>
+<td width="33%" class="link-index"><a href="apiclient.http-module.html#DEFAULT_CHUNK_SIZE">DEFAULT_CHUNK_SIZE</a><br />
+<span class="index-where">(in <a href="apiclient.http-module.html">apiclient.http</a>)</span></td>
+<td width="33%" class="link-index"><a href="apiclient.model.BaseModel-class.html#deserialize">deserialize()</a><br />
+<span class="index-where">(in <a href="apiclient.model.BaseModel-class.html">BaseModel</a>)</span></td>
+<td width="33%" class="link-index"><a href="apiclient.discovery-module.html">discovery</a><br />
+<span class="index-where">(in <a href="apiclient-module.html">apiclient</a>)</span></td>
+</tr>
+<tr>
<td width="33%" class="link-index"><a href="apiclient.discovery-module.html#DEFAULT_METHOD_DOC">DEFAULT_METHOD_DOC</a><br />
<span class="index-where">(in <a href="apiclient.discovery-module.html">apiclient.discovery</a>)</span></td>
<td width="33%" class="link-index"><a href="apiclient.model.JsonModel-class.html#deserialize">deserialize()</a><br />
@@ -279,13 +290,6 @@
<td width="33%" class="link-index"><a href="oauth2client.tools.ClientRedirectHandler-class.html#do_GET">do_GET()</a><br />
<span class="index-where">(in <a href="oauth2client.tools.ClientRedirectHandler-class.html" onclick="show_private();">ClientRedirectHandler</a>)</span></td>
</tr>
-<tr>
-<td width="33%" class="link-index"><a href="apiclient.model.BaseModel-class.html#deserialize">deserialize()</a><br />
-<span class="index-where">(in <a href="apiclient.model.BaseModel-class.html">BaseModel</a>)</span></td>
-<td width="33%" class="link-index"><a href="apiclient.discovery-module.html">discovery</a><br />
-<span class="index-where">(in <a href="apiclient-module.html">apiclient</a>)</span></td>
-<td width="33%" class="link-index"> </td>
-</tr>
</table>
</td></tr>
<tr valign="top"><td valign="top" width="1%"><h2 class="epydoc"><a name="E">E</a></h2></td>
@@ -338,57 +342,67 @@
<tr>
<td width="33%" class="link-index"><a href="oauth2client.file-module.html">file</a><br />
<span class="index-where">(in <a href="oauth2client-module.html">oauth2client</a>)</span></td>
-<td width="33%" class="link-index"><a href="oauth2client.django_orm.FlowField-class.html">FlowField</a><br />
-<span class="index-where">(in <a href="oauth2client.django_orm-module.html">oauth2client.django_orm</a>)</span></td>
+<td width="33%" class="link-index"><a href="oauth2client.tools-module.html#FLAGS">FLAGS</a><br />
+<span class="index-where">(in <a href="oauth2client.tools-module.html">oauth2client.tools</a>)</span></td>
+<td width="33%" class="link-index"><a href="apiclient.http.MediaInMemoryUpload-class.html#from_json">from_json()</a><br />
+<span class="index-where">(in <a href="apiclient.http.MediaInMemoryUpload-class.html">MediaInMemoryUpload</a>)</span></td>
+</tr>
+<tr>
+<td width="33%" class="link-index"><a href="oauth2client.locked_file.LockedFile-class.html#file_handle">file_handle()</a><br />
+<span class="index-where">(in <a href="oauth2client.locked_file.LockedFile-class.html">LockedFile</a>)</span></td>
+<td width="33%" class="link-index"><a href="oauth2client.client.Flow-class.html">Flow</a><br />
+<span class="index-where">(in <a href="oauth2client.client-module.html">oauth2client.client</a>)</span></td>
+<td width="33%" class="link-index"><a href="oauth2client.appengine.AppAssertionCredentials-class.html#from_json">from_json()</a><br />
+<span class="index-where">(in <a href="oauth2client.appengine.AppAssertionCredentials-class.html">AppAssertionCredentials</a>)</span></td>
+</tr>
+<tr>
+<td width="33%" class="link-index"><a href="oauth2client.locked_file._Opener-class.html#file_handle">file_handle()</a><br />
+<span class="index-where">(in <a href="oauth2client.locked_file._Opener-class.html" onclick="show_private();">_Opener</a>)</span></td>
+<td width="33%" class="link-index"><a href="oauth2client.client-module.html#flow_from_clientsecrets">flow_from_clientsecrets()</a><br />
+<span class="index-where">(in <a href="oauth2client.client-module.html">oauth2client.client</a>)</span></td>
+<td width="33%" class="link-index"><a href="oauth2client.client.AccessTokenCredentials-class.html#from_json">from_json()</a><br />
+<span class="index-where">(in <a href="oauth2client.client.AccessTokenCredentials-class.html">AccessTokenCredentials</a>)</span></td>
+</tr>
+<tr>
+<td width="33%" class="link-index"><a href="oauth2client.locked_file.LockedFile-class.html#filename">filename()</a><br />
+<span class="index-where">(in <a href="oauth2client.locked_file.LockedFile-class.html">LockedFile</a>)</span></td>
+<td width="33%" class="link-index"><a href="oauth2client.client.FlowExchangeError-class.html">FlowExchangeError</a><br />
+<span class="index-where">(in <a href="oauth2client.client-module.html">oauth2client.client</a>)</span></td>
<td width="33%" class="link-index"><a href="oauth2client.client.Credentials-class.html#from_json">from_json()</a><br />
<span class="index-where">(in <a href="oauth2client.client.Credentials-class.html">Credentials</a>)</span></td>
</tr>
<tr>
+<td width="33%" class="link-index"><a href="oauth2client.locked_file._Opener-class.html#filename">filename()</a><br />
+<span class="index-where">(in <a href="oauth2client.locked_file._Opener-class.html" onclick="show_private();">_Opener</a>)</span></td>
+<td width="33%" class="link-index"><a href="oauth2client.django_orm.FlowField-class.html">FlowField</a><br />
+<span class="index-where">(in <a href="oauth2client.django_orm-module.html">oauth2client.django_orm</a>)</span></td>
+<td width="33%" class="link-index"><a href="oauth2client.client.OAuth2Credentials-class.html#from_json">from_json()</a><br />
+<span class="index-where">(in <a href="oauth2client.client.OAuth2Credentials-class.html">OAuth2Credentials</a>)</span></td>
+</tr>
+<tr>
<td width="33%" class="link-index"><a href="apiclient.mimeparse-module.html#fitness_and_quality_parsed">fitness_and_quality_parsed()</a><br />
<span class="index-where">(in <a href="apiclient.mimeparse-module.html">apiclient.mimeparse</a>)</span></td>
<td width="33%" class="link-index"><a href="oauth2client.appengine.FlowProperty-class.html">FlowProperty</a><br />
<span class="index-where">(in <a href="oauth2client.appengine-module.html">oauth2client.appengine</a>)</span></td>
-<td width="33%" class="link-index"><a href="oauth2client.client.OAuth2Credentials-class.html#from_json">from_json()</a><br />
-<span class="index-where">(in <a href="oauth2client.client.OAuth2Credentials-class.html">OAuth2Credentials</a>)</span></td>
-</tr>
-<tr>
-<td width="33%" class="link-index"><a href="apiclient.model-module.html#FLAGS">FLAGS</a><br />
-<span class="index-where">(in <a href="apiclient.model-module.html">apiclient.model</a>)</span></td>
-<td width="33%" class="link-index"><a href="apiclient.http.HttpRequest-class.html#from_json">from_json()</a><br />
-<span class="index-where">(in <a href="apiclient.http.HttpRequest-class.html">HttpRequest</a>)</span></td>
<td width="33%" class="link-index"><a href="oauth2client.client.SignedJwtAssertionCredentials-class.html#from_json">from_json()</a><br />
<span class="index-where">(in <a href="oauth2client.client.SignedJwtAssertionCredentials-class.html">SignedJwtAssertionCredentials</a>)</span></td>
</tr>
<tr>
-<td width="33%" class="link-index"><a href="oauth2client.tools-module.html#FLAGS">FLAGS</a><br />
-<span class="index-where">(in <a href="oauth2client.tools-module.html">oauth2client.tools</a>)</span></td>
-<td width="33%" class="link-index"><a href="apiclient.http.MediaFileUpload-class.html#from_json">from_json()</a><br />
-<span class="index-where">(in <a href="apiclient.http.MediaFileUpload-class.html">MediaFileUpload</a>)</span></td>
+<td width="33%" class="link-index"><a href="apiclient.discovery-module.html#fix_method_name">fix_method_name()</a><br />
+<span class="index-where">(in <a href="apiclient.discovery-module.html">apiclient.discovery</a>)</span></td>
+<td width="33%" class="link-index"><a href="apiclient.http.HttpRequest-class.html#from_json">from_json()</a><br />
+<span class="index-where">(in <a href="apiclient.http.HttpRequest-class.html">HttpRequest</a>)</span></td>
<td width="33%" class="link-index"><a href="oauth2client.crypt.Signer-class.html#from_string">from_string()</a><br />
<span class="index-where">(in <a href="oauth2client.crypt.Signer-class.html">Signer</a>)</span></td>
</tr>
<tr>
-<td width="33%" class="link-index"><a href="oauth2client.client.Flow-class.html">Flow</a><br />
-<span class="index-where">(in <a href="oauth2client.client-module.html">oauth2client.client</a>)</span></td>
-<td width="33%" class="link-index"><a href="apiclient.http.MediaInMemoryUpload-class.html#from_json">from_json()</a><br />
-<span class="index-where">(in <a href="apiclient.http.MediaInMemoryUpload-class.html">MediaInMemoryUpload</a>)</span></td>
+<td width="33%" class="link-index"><a href="apiclient.model-module.html#FLAGS">FLAGS</a><br />
+<span class="index-where">(in <a href="apiclient.model-module.html">apiclient.model</a>)</span></td>
+<td width="33%" class="link-index"><a href="apiclient.http.MediaFileUpload-class.html#from_json">from_json()</a><br />
+<span class="index-where">(in <a href="apiclient.http.MediaFileUpload-class.html">MediaFileUpload</a>)</span></td>
<td width="33%" class="link-index"><a href="oauth2client.crypt.Verifier-class.html#from_string">from_string()</a><br />
<span class="index-where">(in <a href="oauth2client.crypt.Verifier-class.html">Verifier</a>)</span></td>
</tr>
-<tr>
-<td width="33%" class="link-index"><a href="oauth2client.client-module.html#flow_from_clientsecrets">flow_from_clientsecrets()</a><br />
-<span class="index-where">(in <a href="oauth2client.client-module.html">oauth2client.client</a>)</span></td>
-<td width="33%" class="link-index"><a href="oauth2client.appengine.AppAssertionCredentials-class.html#from_json">from_json()</a><br />
-<span class="index-where">(in <a href="oauth2client.appengine.AppAssertionCredentials-class.html">AppAssertionCredentials</a>)</span></td>
-<td width="33%" class="link-index"> </td>
-</tr>
-<tr>
-<td width="33%" class="link-index"><a href="oauth2client.client.FlowExchangeError-class.html">FlowExchangeError</a><br />
-<span class="index-where">(in <a href="oauth2client.client-module.html">oauth2client.client</a>)</span></td>
-<td width="33%" class="link-index"><a href="oauth2client.client.AccessTokenCredentials-class.html#from_json">from_json()</a><br />
-<span class="index-where">(in <a href="oauth2client.client.AccessTokenCredentials-class.html">AccessTokenCredentials</a>)</span></td>
-<td width="33%" class="link-index"> </td>
-</tr>
</table>
</td></tr>
<tr valign="top"><td valign="top" width="1%"><h2 class="epydoc"><a name="G">G</a></h2></td>
@@ -423,15 +437,16 @@
<span class="index-where">(in <a href="oauth2client.client.Storage-class.html">Storage</a>)</span></td>
<td width="33%" class="link-index"><a href="oauth2client.django_orm.FlowField-class.html#get_internal_type">get_internal_type()</a><br />
<span class="index-where">(in <a href="oauth2client.django_orm.FlowField-class.html">FlowField</a>)</span></td>
-<td width="33%" class="link-index"><a href="apiclient.http.MediaUpload-class.html#getbytes">getbytes()</a><br />
-<span class="index-where">(in <a href="apiclient.http.MediaUpload-class.html">MediaUpload</a>)</span></td>
+<td width="33%" class="link-index"><a href="apiclient.http.MediaIoBaseUpload-class.html#getbytes">getbytes()</a><br />
+<span class="index-where">(in <a href="apiclient.http.MediaIoBaseUpload-class.html">MediaIoBaseUpload</a>)</span></td>
</tr>
<tr>
<td width="33%" class="link-index"><a href="oauth2client.multistore_file-module.html#get_credential_storage">get_credential_storage()</a><br />
<span class="index-where">(in <a href="oauth2client.multistore_file-module.html">oauth2client.multistore_file</a>)</span></td>
<td width="33%" class="link-index"><a href="oauth2client.appengine.CredentialsProperty-class.html#get_value_for_datastore">get_value_for_datastore()</a><br />
<span class="index-where">(in <a href="oauth2client.appengine.CredentialsProperty-class.html">CredentialsProperty</a>)</span></td>
-<td width="33%" class="link-index"> </td>
+<td width="33%" class="link-index"><a href="apiclient.http.MediaUpload-class.html#getbytes">getbytes()</a><br />
+<span class="index-where">(in <a href="apiclient.http.MediaUpload-class.html">MediaUpload</a>)</span></td>
</tr>
</table>
</td></tr>
@@ -470,16 +485,23 @@
<tr>
<td width="33%" class="link-index"><a href="oauth2client.client-module.html#ID_TOKEN_VERIFICATON_CERTS">ID_TOKEN_VERIFICATON_CERTS</a><br />
<span class="index-where">(in <a href="oauth2client.client-module.html">oauth2client.client</a>)</span></td>
-<td width="33%" class="link-index"><a href="oauth2client.appengine.InvalidClientSecretsError-class.html">InvalidClientSecretsError</a><br />
-<span class="index-where">(in <a href="oauth2client.appengine-module.html">oauth2client.appengine</a>)</span></td>
-<td width="33%" class="link-index"><a href="apiclient.errors.InvalidJsonError-class.html">InvalidJsonError</a><br />
-<span class="index-where">(in <a href="apiclient.errors-module.html">apiclient.errors</a>)</span></td>
+<td width="33%" class="link-index"><a href="oauth2client.clientsecrets.InvalidClientSecretsError-class.html">InvalidClientSecretsError</a><br />
+<span class="index-where">(in <a href="oauth2client.clientsecrets-module.html">oauth2client.clientsecrets</a>)</span></td>
+<td width="33%" class="link-index"><a href="oauth2client.locked_file._Opener-class.html#is_locked">is_locked()</a><br />
+<span class="index-where">(in <a href="oauth2client.locked_file._Opener-class.html" onclick="show_private();">_Opener</a>)</span></td>
</tr>
<tr>
<td width="33%" class="link-index"><a href="apiclient.schema._SchemaToStruct-class.html#indent">indent()</a><br />
<span class="index-where">(in <a href="apiclient.schema._SchemaToStruct-class.html" onclick="show_private();">_SchemaToStruct</a>)</span></td>
-<td width="33%" class="link-index"><a href="oauth2client.clientsecrets.InvalidClientSecretsError-class.html">InvalidClientSecretsError</a><br />
-<span class="index-where">(in <a href="oauth2client.clientsecrets-module.html">oauth2client.clientsecrets</a>)</span></td>
+<td width="33%" class="link-index"><a href="apiclient.errors.InvalidJsonError-class.html">InvalidJsonError</a><br />
+<span class="index-where">(in <a href="apiclient.errors-module.html">apiclient.errors</a>)</span></td>
+<td width="33%" class="link-index"> </td>
+</tr>
+<tr>
+<td width="33%" class="link-index"><a href="oauth2client.appengine.InvalidClientSecretsError-class.html">InvalidClientSecretsError</a><br />
+<span class="index-where">(in <a href="oauth2client.appengine-module.html">oauth2client.appengine</a>)</span></td>
+<td width="33%" class="link-index"><a href="oauth2client.locked_file.LockedFile-class.html#is_locked">is_locked()</a><br />
+<span class="index-where">(in <a href="oauth2client.locked_file.LockedFile-class.html">LockedFile</a>)</span></td>
<td width="33%" class="link-index"> </td>
</tr>
</table>
@@ -512,28 +534,20 @@
<td valign="top">
<table class="link-index" width="100%" border="1">
<tr>
-<td width="33%" class="link-index"><a href="apiclient.contrib.latitude-module.html">latitude</a><br />
-<span class="index-where">(in <a href="apiclient.contrib-module.html">apiclient.contrib</a>)</span></td>
-<td width="33%" class="link-index"><a href="oauth2client.multistore_file._MultiStore._Storage-class.html#locked_delete">locked_delete()</a><br />
-<span class="index-where">(in <a href="oauth2client.multistore_file._MultiStore._Storage-class.html" onclick="show_private();">_Storage</a>)</span></td>
-<td width="33%" class="link-index"><a href="oauth2client.django_orm.Storage-class.html#locked_put">locked_put()</a><br />
-<span class="index-where">(in <a href="oauth2client.django_orm.Storage-class.html">Storage</a>)</span></td>
-</tr>
-<tr>
<td width="33%" class="link-index"><a href="oauth2client.clientsecrets-module.html#load">load()</a><br />
<span class="index-where">(in <a href="oauth2client.clientsecrets-module.html">oauth2client.clientsecrets</a>)</span></td>
<td width="33%" class="link-index"><a href="oauth2client.appengine.StorageByKeyName-class.html#locked_get">locked_get()</a><br />
<span class="index-where">(in <a href="oauth2client.appengine.StorageByKeyName-class.html">StorageByKeyName</a>)</span></td>
-<td width="33%" class="link-index"><a href="oauth2client.file.Storage-class.html#locked_put">locked_put()</a><br />
-<span class="index-where">(in <a href="oauth2client.file.Storage-class.html">Storage</a>)</span></td>
+<td width="33%" class="link-index"><a href="oauth2client.multistore_file._MultiStore._Storage-class.html#locked_put">locked_put()</a><br />
+<span class="index-where">(in <a href="oauth2client.multistore_file._MultiStore._Storage-class.html" onclick="show_private();">_Storage</a>)</span></td>
</tr>
<tr>
<td width="33%" class="link-index"><a href="oauth2client.clientsecrets-module.html#loadfile">loadfile()</a><br />
<span class="index-where">(in <a href="oauth2client.clientsecrets-module.html">oauth2client.clientsecrets</a>)</span></td>
<td width="33%" class="link-index"><a href="oauth2client.client.Storage-class.html#locked_get">locked_get()</a><br />
<span class="index-where">(in <a href="oauth2client.client.Storage-class.html">Storage</a>)</span></td>
-<td width="33%" class="link-index"><a href="oauth2client.multistore_file._MultiStore._Storage-class.html#locked_put">locked_put()</a><br />
-<span class="index-where">(in <a href="oauth2client.multistore_file._MultiStore._Storage-class.html" onclick="show_private();">_Storage</a>)</span></td>
+<td width="33%" class="link-index"><a href="oauth2client.locked_file.LockedFile-class.html">LockedFile</a><br />
+<span class="index-where">(in <a href="oauth2client.locked_file-module.html">oauth2client.locked_file</a>)</span></td>
</tr>
<tr>
<td width="33%" class="link-index"><a href="oauth2client.clientsecrets-module.html#loads">loads()</a><br />
@@ -564,14 +578,29 @@
<span class="index-where">(in <a href="oauth2client.django_orm.Storage-class.html">Storage</a>)</span></td>
<td width="33%" class="link-index"><a href="oauth2client.appengine.StorageByKeyName-class.html#locked_put">locked_put()</a><br />
<span class="index-where">(in <a href="oauth2client.appengine.StorageByKeyName-class.html">StorageByKeyName</a>)</span></td>
-<td width="33%" class="link-index"><a href="oauth2client.multistore_file-module.html#logger">logger</a><br />
-<span class="index-where">(in <a href="oauth2client.multistore_file-module.html">oauth2client.multistore_file</a>)</span></td>
+<td width="33%" class="link-index"><a href="oauth2client.locked_file-module.html#logger">logger</a><br />
+<span class="index-where">(in <a href="oauth2client.locked_file-module.html">oauth2client.locked_file</a>)</span></td>
</tr>
<tr>
<td width="33%" class="link-index"><a href="oauth2client.file.Storage-class.html#locked_delete">locked_delete()</a><br />
<span class="index-where">(in <a href="oauth2client.file.Storage-class.html">Storage</a>)</span></td>
<td width="33%" class="link-index"><a href="oauth2client.client.Storage-class.html#locked_put">locked_put()</a><br />
<span class="index-where">(in <a href="oauth2client.client.Storage-class.html">Storage</a>)</span></td>
+<td width="33%" class="link-index"><a href="oauth2client.multistore_file-module.html#logger">logger</a><br />
+<span class="index-where">(in <a href="oauth2client.multistore_file-module.html">oauth2client.multistore_file</a>)</span></td>
+</tr>
+<tr>
+<td width="33%" class="link-index"><a href="oauth2client.multistore_file._MultiStore._Storage-class.html#locked_delete">locked_delete()</a><br />
+<span class="index-where">(in <a href="oauth2client.multistore_file._MultiStore._Storage-class.html" onclick="show_private();">_Storage</a>)</span></td>
+<td width="33%" class="link-index"><a href="oauth2client.django_orm.Storage-class.html#locked_put">locked_put()</a><br />
+<span class="index-where">(in <a href="oauth2client.django_orm.Storage-class.html">Storage</a>)</span></td>
+<td width="33%" class="link-index"> </td>
+</tr>
+<tr>
+<td width="33%" class="link-index"><a href="oauth2client.locked_file-module.html">locked_file</a><br />
+<span class="index-where">(in <a href="oauth2client-module.html">oauth2client</a>)</span></td>
+<td width="33%" class="link-index"><a href="oauth2client.file.Storage-class.html#locked_put">locked_put()</a><br />
+<span class="index-where">(in <a href="oauth2client.file.Storage-class.html">Storage</a>)</span></td>
<td width="33%" class="link-index"> </td>
</tr>
</table>
@@ -584,63 +613,64 @@
<span class="index-where">(in <a href="oauth2client.appengine-module.html">oauth2client.appengine</a>)</span></td>
<td width="33%" class="link-index"><a href="apiclient.http.MediaInMemoryUpload-class.html">MediaInMemoryUpload</a><br />
<span class="index-where">(in <a href="apiclient.http-module.html">apiclient.http</a>)</span></td>
-<td width="33%" class="link-index"><a href="apiclient.http.MediaInMemoryUpload-class.html#mimetype">mimetype()</a><br />
-<span class="index-where">(in <a href="apiclient.http.MediaInMemoryUpload-class.html">MediaInMemoryUpload</a>)</span></td>
+<td width="33%" class="link-index"><a href="apiclient.http.MediaFileUpload-class.html#mimetype">mimetype()</a><br />
+<span class="index-where">(in <a href="apiclient.http.MediaFileUpload-class.html">MediaFileUpload</a>)</span></td>
</tr>
<tr>
<td width="33%" class="link-index"><a href="oauth2client.crypt-module.html#make_signed_jwt">make_signed_jwt()</a><br />
<span class="index-where">(in <a href="oauth2client.crypt-module.html">oauth2client.crypt</a>)</span></td>
+<td width="33%" class="link-index"><a href="apiclient.http.MediaIoBaseUpload-class.html">MediaIoBaseUpload</a><br />
+<span class="index-where">(in <a href="apiclient.http-module.html">apiclient.http</a>)</span></td>
+<td width="33%" class="link-index"><a href="apiclient.http.MediaInMemoryUpload-class.html#mimetype">mimetype()</a><br />
+<span class="index-where">(in <a href="apiclient.http.MediaInMemoryUpload-class.html">MediaInMemoryUpload</a>)</span></td>
+</tr>
+<tr>
+<td width="33%" class="link-index"><a href="oauth2client.appengine.CredentialsProperty-class.html#make_value_from_datastore">make_value_from_datastore()</a><br />
+<span class="index-where">(in <a href="oauth2client.appengine.CredentialsProperty-class.html">CredentialsProperty</a>)</span></td>
<td width="33%" class="link-index"><a href="apiclient.http.MediaUpload-class.html">MediaUpload</a><br />
<span class="index-where">(in <a href="apiclient.http-module.html">apiclient.http</a>)</span></td>
+<td width="33%" class="link-index"><a href="apiclient.http.MediaIoBaseUpload-class.html#mimetype">mimetype()</a><br />
+<span class="index-where">(in <a href="apiclient.http.MediaIoBaseUpload-class.html">MediaIoBaseUpload</a>)</span></td>
+</tr>
+<tr>
+<td width="33%" class="link-index"><a href="oauth2client.appengine.FlowProperty-class.html#make_value_from_datastore">make_value_from_datastore()</a><br />
+<span class="index-where">(in <a href="oauth2client.appengine.FlowProperty-class.html">FlowProperty</a>)</span></td>
+<td width="33%" class="link-index"><a href="apiclient.http.MediaUploadProgress-class.html">MediaUploadProgress</a><br />
+<span class="index-where">(in <a href="apiclient.http-module.html">apiclient.http</a>)</span></td>
<td width="33%" class="link-index"><a href="apiclient.http.MediaUpload-class.html#mimetype">mimetype()</a><br />
<span class="index-where">(in <a href="apiclient.http.MediaUpload-class.html">MediaUpload</a>)</span></td>
</tr>
<tr>
-<td width="33%" class="link-index"><a href="oauth2client.appengine.CredentialsProperty-class.html#make_value_from_datastore">make_value_from_datastore()</a><br />
-<span class="index-where">(in <a href="oauth2client.appengine.CredentialsProperty-class.html">CredentialsProperty</a>)</span></td>
-<td width="33%" class="link-index"><a href="apiclient.http.MediaUploadProgress-class.html">MediaUploadProgress</a><br />
-<span class="index-where">(in <a href="apiclient.http-module.html">apiclient.http</a>)</span></td>
+<td width="33%" class="link-index"><a href="apiclient.model-module.html#makepatch">makepatch()</a><br />
+<span class="index-where">(in <a href="apiclient.model-module.html">apiclient.model</a>)</span></td>
+<td width="33%" class="link-index"><a href="apiclient.errors.MediaUploadSizeError-class.html">MediaUploadSizeError</a><br />
+<span class="index-where">(in <a href="apiclient.errors-module.html">apiclient.errors</a>)</span></td>
<td width="33%" class="link-index"><a href="apiclient.model-module.html">model</a><br />
<span class="index-where">(in <a href="apiclient-module.html">apiclient</a>)</span></td>
</tr>
<tr>
-<td width="33%" class="link-index"><a href="oauth2client.appengine.FlowProperty-class.html#make_value_from_datastore">make_value_from_datastore()</a><br />
-<span class="index-where">(in <a href="oauth2client.appengine.FlowProperty-class.html">FlowProperty</a>)</span></td>
-<td width="33%" class="link-index"><a href="apiclient.errors.MediaUploadSizeError-class.html">MediaUploadSizeError</a><br />
-<span class="index-where">(in <a href="apiclient.errors-module.html">apiclient.errors</a>)</span></td>
+<td width="33%" class="link-index"><a href="oauth2client.client.SignedJwtAssertionCredentials-class.html#MAX_TOKEN_LIFETIME_SECS">MAX_TOKEN_LIFETIME_SECS</a><br />
+<span class="index-where">(in <a href="oauth2client.client.SignedJwtAssertionCredentials-class.html">SignedJwtAssertionCredentials</a>)</span></td>
+<td width="33%" class="link-index"><a href="oauth2client.client.MemoryCache-class.html">MemoryCache</a><br />
+<span class="index-where">(in <a href="oauth2client.client-module.html">oauth2client.client</a>)</span></td>
<td width="33%" class="link-index"><a href="apiclient.model.Model-class.html">Model</a><br />
<span class="index-where">(in <a href="apiclient.model-module.html">apiclient.model</a>)</span></td>
</tr>
<tr>
-<td width="33%" class="link-index"><a href="apiclient.model-module.html#makepatch">makepatch()</a><br />
-<span class="index-where">(in <a href="apiclient.model-module.html">apiclient.model</a>)</span></td>
-<td width="33%" class="link-index"><a href="oauth2client.client.MemoryCache-class.html">MemoryCache</a><br />
-<span class="index-where">(in <a href="oauth2client.client-module.html">oauth2client.client</a>)</span></td>
-<td width="33%" class="link-index"><a href="apiclient.contrib.moderator-module.html">moderator</a><br />
-<span class="index-where">(in <a href="apiclient.contrib-module.html">apiclient.contrib</a>)</span></td>
-</tr>
-<tr>
-<td width="33%" class="link-index"><a href="oauth2client.client.SignedJwtAssertionCredentials-class.html#MAX_TOKEN_LIFETIME_SECS">MAX_TOKEN_LIFETIME_SECS</a><br />
-<span class="index-where">(in <a href="oauth2client.client.SignedJwtAssertionCredentials-class.html">SignedJwtAssertionCredentials</a>)</span></td>
+<td width="33%" class="link-index"><a href="oauth2client.crypt-module.html#MAX_TOKEN_LIFETIME_SECS">MAX_TOKEN_LIFETIME_SECS</a><br />
+<span class="index-where">(in <a href="oauth2client.crypt-module.html">oauth2client.crypt</a>)</span></td>
<td width="33%" class="link-index"><a href="mimetools.Message-class.html">Message</a></td>
<td width="33%" class="link-index"><a href="apiclient.discovery-module.html#MULTIPLIERS">MULTIPLIERS</a><br />
<span class="index-where">(in <a href="apiclient.discovery-module.html">apiclient.discovery</a>)</span></td>
</tr>
<tr>
-<td width="33%" class="link-index"><a href="oauth2client.crypt-module.html#MAX_TOKEN_LIFETIME_SECS">MAX_TOKEN_LIFETIME_SECS</a><br />
-<span class="index-where">(in <a href="oauth2client.crypt-module.html">oauth2client.crypt</a>)</span></td>
+<td width="33%" class="link-index"><a href="apiclient.http.MediaFileUpload-class.html">MediaFileUpload</a><br />
+<span class="index-where">(in <a href="apiclient.http-module.html">apiclient.http</a>)</span></td>
<td width="33%" class="link-index"><a href="apiclient.mimeparse-module.html">mimeparse</a><br />
<span class="index-where">(in <a href="apiclient-module.html">apiclient</a>)</span></td>
<td width="33%" class="link-index"><a href="oauth2client.multistore_file-module.html">multistore_file</a><br />
<span class="index-where">(in <a href="oauth2client-module.html">oauth2client</a>)</span></td>
</tr>
-<tr>
-<td width="33%" class="link-index"><a href="apiclient.http.MediaFileUpload-class.html">MediaFileUpload</a><br />
-<span class="index-where">(in <a href="apiclient.http-module.html">apiclient.http</a>)</span></td>
-<td width="33%" class="link-index"><a href="apiclient.http.MediaFileUpload-class.html#mimetype">mimetype()</a><br />
-<span class="index-where">(in <a href="apiclient.http.MediaFileUpload-class.html">MediaFileUpload</a>)</span></td>
-<td width="33%" class="link-index"> </td>
-</tr>
</table>
</td></tr>
<tr valign="top"><td valign="top" width="1%"><h2 class="epydoc"><a name="N">N</a></h2></td>
@@ -677,33 +707,42 @@
<table class="link-index" width="100%" border="1">
<tr>
<td width="33%" class="link-index"><a href="oauth2client-module.html">oauth2client</a></td>
-<td width="33%" class="link-index"><a href="oauth2client.appengine-module.html#oauth2decorator_from_clientsecrets">oauth2decorator_from_clientsecrets()</a><br />
-<span class="index-where">(in <a href="oauth2client.appengine-module.html">oauth2client.appengine</a>)</span></td>
-<td width="33%" class="link-index"><a href="oauth2client.appengine.OAuth2Decorator-class.html#oauth_aware">oauth_aware()</a><br />
-<span class="index-where">(in <a href="oauth2client.appengine.OAuth2Decorator-class.html">OAuth2Decorator</a>)</span></td>
-</tr>
-<tr>
-<td width="33%" class="link-index"><a href="oauth2client.appengine-module.html#OAUTH2CLIENT_NAMESPACE">OAUTH2CLIENT_NAMESPACE</a><br />
-<span class="index-where">(in <a href="oauth2client.appengine-module.html">oauth2client.appengine</a>)</span></td>
<td width="33%" class="link-index"><a href="oauth2client.appengine.OAuth2DecoratorFromClientSecrets-class.html">OAuth2DecoratorFromClientSecrets</a><br />
<span class="index-where">(in <a href="oauth2client.appengine-module.html">oauth2client.appengine</a>)</span></td>
-<td width="33%" class="link-index"><a href="oauth2client.appengine.OAuth2Decorator-class.html#oauth_required">oauth_required()</a><br />
-<span class="index-where">(in <a href="oauth2client.appengine.OAuth2Decorator-class.html">OAuth2Decorator</a>)</span></td>
-</tr>
-<tr>
-<td width="33%" class="link-index"><a href="oauth2client.client.OAuth2Credentials-class.html">OAuth2Credentials</a><br />
-<span class="index-where">(in <a href="oauth2client.client-module.html">oauth2client.client</a>)</span></td>
-<td width="33%" class="link-index"><a href="oauth2client.appengine.OAuth2Handler-class.html">OAuth2Handler</a><br />
-<span class="index-where">(in <a href="oauth2client.appengine-module.html">oauth2client.appengine</a>)</span></td>
<td width="33%" class="link-index"><a href="oauth2client.client-module.html#OOB_CALLBACK_URN">OOB_CALLBACK_URN</a><br />
<span class="index-where">(in <a href="oauth2client.client-module.html">oauth2client.client</a>)</span></td>
</tr>
<tr>
-<td width="33%" class="link-index"><a href="oauth2client.appengine.OAuth2Decorator-class.html">OAuth2Decorator</a><br />
+<td width="33%" class="link-index"><a href="oauth2client.appengine-module.html#OAUTH2CLIENT_NAMESPACE">OAUTH2CLIENT_NAMESPACE</a><br />
<span class="index-where">(in <a href="oauth2client.appengine-module.html">oauth2client.appengine</a>)</span></td>
+<td width="33%" class="link-index"><a href="oauth2client.appengine.OAuth2Handler-class.html">OAuth2Handler</a><br />
+<span class="index-where">(in <a href="oauth2client.appengine-module.html">oauth2client.appengine</a>)</span></td>
+<td width="33%" class="link-index"><a href="oauth2client.locked_file.LockedFile-class.html#open_and_lock">open_and_lock()</a><br />
+<span class="index-where">(in <a href="oauth2client.locked_file.LockedFile-class.html">LockedFile</a>)</span></td>
+</tr>
+<tr>
+<td width="33%" class="link-index"><a href="oauth2client.client.OAuth2Credentials-class.html">OAuth2Credentials</a><br />
+<span class="index-where">(in <a href="oauth2client.client-module.html">oauth2client.client</a>)</span></td>
<td width="33%" class="link-index"><a href="oauth2client.client.OAuth2WebServerFlow-class.html">OAuth2WebServerFlow</a><br />
<span class="index-where">(in <a href="oauth2client.client-module.html">oauth2client.client</a>)</span></td>
-<td width="33%" class="link-index"> </td>
+<td width="33%" class="link-index"><a href="oauth2client.locked_file._FcntlOpener-class.html#open_and_lock">open_and_lock()</a><br />
+<span class="index-where">(in <a href="oauth2client.locked_file._FcntlOpener-class.html" onclick="show_private();">_FcntlOpener</a>)</span></td>
+</tr>
+<tr>
+<td width="33%" class="link-index"><a href="oauth2client.appengine.OAuth2Decorator-class.html">OAuth2Decorator</a><br />
+<span class="index-where">(in <a href="oauth2client.appengine-module.html">oauth2client.appengine</a>)</span></td>
+<td width="33%" class="link-index"><a href="oauth2client.appengine.OAuth2Decorator-class.html#oauth_aware">oauth_aware()</a><br />
+<span class="index-where">(in <a href="oauth2client.appengine.OAuth2Decorator-class.html">OAuth2Decorator</a>)</span></td>
+<td width="33%" class="link-index"><a href="oauth2client.locked_file._Opener-class.html#open_and_lock">open_and_lock()</a><br />
+<span class="index-where">(in <a href="oauth2client.locked_file._Opener-class.html" onclick="show_private();">_Opener</a>)</span></td>
+</tr>
+<tr>
+<td width="33%" class="link-index"><a href="oauth2client.appengine-module.html#oauth2decorator_from_clientsecrets">oauth2decorator_from_clientsecrets()</a><br />
+<span class="index-where">(in <a href="oauth2client.appengine-module.html">oauth2client.appengine</a>)</span></td>
+<td width="33%" class="link-index"><a href="oauth2client.appengine.OAuth2Decorator-class.html#oauth_required">oauth_required()</a><br />
+<span class="index-where">(in <a href="oauth2client.appengine.OAuth2Decorator-class.html">OAuth2Decorator</a>)</span></td>
+<td width="33%" class="link-index"><a href="oauth2client.locked_file._PosixOpener-class.html#open_and_lock">open_and_lock()</a><br />
+<span class="index-where">(in <a href="oauth2client.locked_file._PosixOpener-class.html" onclick="show_private();">_PosixOpener</a>)</span></td>
</tr>
</table>
</td></tr>
@@ -772,31 +811,32 @@
<span class="index-where">(in <a href="oauth2client.client.OAuth2Credentials-class.html">OAuth2Credentials</a>)</span></td>
<td width="33%" class="link-index"><a href="apiclient.model.Model-class.html#request">request()</a><br />
<span class="index-where">(in <a href="apiclient.model.Model-class.html">Model</a>)</span></td>
-<td width="33%" class="link-index"><a href="apiclient.http.MediaUpload-class.html#resumable">resumable()</a><br />
-<span class="index-where">(in <a href="apiclient.http.MediaUpload-class.html">MediaUpload</a>)</span></td>
+<td width="33%" class="link-index"><a href="apiclient.http.MediaIoBaseUpload-class.html#resumable">resumable()</a><br />
+<span class="index-where">(in <a href="apiclient.http.MediaIoBaseUpload-class.html">MediaIoBaseUpload</a>)</span></td>
</tr>
<tr>
<td width="33%" class="link-index"><a href="oauth2client.client.Storage-class.html#release_lock">release_lock()</a><br />
<span class="index-where">(in <a href="oauth2client.client.Storage-class.html">Storage</a>)</span></td>
<td width="33%" class="link-index"><a href="apiclient.http.RequestMockBuilder-class.html">RequestMockBuilder</a><br />
<span class="index-where">(in <a href="apiclient.http-module.html">apiclient.http</a>)</span></td>
-<td width="33%" class="link-index"><a href="apiclient.errors.ResumableUploadError-class.html">ResumableUploadError</a><br />
-<span class="index-where">(in <a href="apiclient.errors-module.html">apiclient.errors</a>)</span></td>
+<td width="33%" class="link-index"><a href="apiclient.http.MediaUpload-class.html#resumable">resumable()</a><br />
+<span class="index-where">(in <a href="apiclient.http.MediaUpload-class.html">MediaUpload</a>)</span></td>
</tr>
<tr>
<td width="33%" class="link-index"><a href="oauth2client.file.Storage-class.html#release_lock">release_lock()</a><br />
<span class="index-where">(in <a href="oauth2client.file.Storage-class.html">Storage</a>)</span></td>
<td width="33%" class="link-index"><a href="apiclient.discovery-module.html#RESERVED_WORDS">RESERVED_WORDS</a><br />
<span class="index-where">(in <a href="apiclient.discovery-module.html">apiclient.discovery</a>)</span></td>
-<td width="33%" class="link-index"><a href="oauth2client.tools-module.html#run">run()</a><br />
-<span class="index-where">(in <a href="oauth2client.tools-module.html">oauth2client.tools</a>)</span></td>
+<td width="33%" class="link-index"><a href="apiclient.errors.ResumableUploadError-class.html">ResumableUploadError</a><br />
+<span class="index-where">(in <a href="apiclient.errors-module.html">apiclient.errors</a>)</span></td>
</tr>
<tr>
<td width="33%" class="link-index"><a href="oauth2client.multistore_file._MultiStore._Storage-class.html#release_lock">release_lock()</a><br />
<span class="index-where">(in <a href="oauth2client.multistore_file._MultiStore._Storage-class.html" onclick="show_private();">_Storage</a>)</span></td>
<td width="33%" class="link-index"><a href="apiclient.model.BaseModel-class.html#response">response()</a><br />
<span class="index-where">(in <a href="apiclient.model.BaseModel-class.html">BaseModel</a>)</span></td>
-<td width="33%" class="link-index"> </td>
+<td width="33%" class="link-index"><a href="oauth2client.tools-module.html#run">run()</a><br />
+<span class="index-where">(in <a href="oauth2client.tools-module.html">oauth2client.tools</a>)</span></td>
</tr>
<tr>
<td width="33%" class="link-index"><a href="apiclient.http.HttpMock-class.html#request">request()</a><br />
@@ -815,7 +855,7 @@
<span class="index-where">(in <a href="apiclient-module.html">apiclient</a>)</span></td>
<td width="33%" class="link-index"><a href="oauth2client.crypt.Signer-class.html#sign">sign()</a><br />
<span class="index-where">(in <a href="oauth2client.crypt.Signer-class.html">Signer</a>)</span></td>
-<td width="33%" class="link-index"><a href="oauth2client.client.OAuth2WebServerFlow-class.html#step2_exchange">step2_exchange()</a><br />
+<td width="33%" class="link-index"><a href="oauth2client.client.OAuth2WebServerFlow-class.html#step1_get_authorize_url">step1_get_authorize_url()</a><br />
<span class="index-where">(in <a href="oauth2client.client.OAuth2WebServerFlow-class.html">OAuth2WebServerFlow</a>)</span></td>
</tr>
<tr>
@@ -823,52 +863,53 @@
<span class="index-where">(in <a href="apiclient.schema-module.html">apiclient.schema</a>)</span></td>
<td width="33%" class="link-index"><a href="oauth2client.client.SignedJwtAssertionCredentials-class.html">SignedJwtAssertionCredentials</a><br />
<span class="index-where">(in <a href="oauth2client.client-module.html">oauth2client.client</a>)</span></td>
-<td width="33%" class="link-index"><a href="oauth2client.client.Storage-class.html">Storage</a><br />
-<span class="index-where">(in <a href="oauth2client.client-module.html">oauth2client.client</a>)</span></td>
+<td width="33%" class="link-index"><a href="oauth2client.client.OAuth2WebServerFlow-class.html#step2_exchange">step2_exchange()</a><br />
+<span class="index-where">(in <a href="oauth2client.client.OAuth2WebServerFlow-class.html">OAuth2WebServerFlow</a>)</span></td>
</tr>
<tr>
<td width="33%" class="link-index"><a href="apiclient.model.BaseModel-class.html#serialize">serialize()</a><br />
<span class="index-where">(in <a href="apiclient.model.BaseModel-class.html">BaseModel</a>)</span></td>
<td width="33%" class="link-index"><a href="oauth2client.crypt.Signer-class.html">Signer</a><br />
<span class="index-where">(in <a href="oauth2client.crypt-module.html">oauth2client.crypt</a>)</span></td>
-<td width="33%" class="link-index"><a href="oauth2client.django_orm.Storage-class.html">Storage</a><br />
-<span class="index-where">(in <a href="oauth2client.django_orm-module.html">oauth2client.django_orm</a>)</span></td>
+<td width="33%" class="link-index"><a href="oauth2client.client.Storage-class.html">Storage</a><br />
+<span class="index-where">(in <a href="oauth2client.client-module.html">oauth2client.client</a>)</span></td>
</tr>
<tr>
<td width="33%" class="link-index"><a href="apiclient.model.JsonModel-class.html#serialize">serialize()</a><br />
<span class="index-where">(in <a href="apiclient.model.JsonModel-class.html">JsonModel</a>)</span></td>
<td width="33%" class="link-index"><a href="apiclient.http.MediaFileUpload-class.html#size">size()</a><br />
<span class="index-where">(in <a href="apiclient.http.MediaFileUpload-class.html">MediaFileUpload</a>)</span></td>
-<td width="33%" class="link-index"><a href="oauth2client.file.Storage-class.html">Storage</a><br />
-<span class="index-where">(in <a href="oauth2client.file-module.html">oauth2client.file</a>)</span></td>
+<td width="33%" class="link-index"><a href="oauth2client.django_orm.Storage-class.html">Storage</a><br />
+<span class="index-where">(in <a href="oauth2client.django_orm-module.html">oauth2client.django_orm</a>)</span></td>
</tr>
<tr>
<td width="33%" class="link-index"><a href="apiclient.model.ProtocolBufferModel-class.html#serialize">serialize()</a><br />
<span class="index-where">(in <a href="apiclient.model.ProtocolBufferModel-class.html">ProtocolBufferModel</a>)</span></td>
<td width="33%" class="link-index"><a href="apiclient.http.MediaInMemoryUpload-class.html#size">size()</a><br />
<span class="index-where">(in <a href="apiclient.http.MediaInMemoryUpload-class.html">MediaInMemoryUpload</a>)</span></td>
-<td width="33%" class="link-index"><a href="oauth2client.appengine.StorageByKeyName-class.html">StorageByKeyName</a><br />
-<span class="index-where">(in <a href="oauth2client.appengine-module.html">oauth2client.appengine</a>)</span></td>
+<td width="33%" class="link-index"><a href="oauth2client.file.Storage-class.html">Storage</a><br />
+<span class="index-where">(in <a href="oauth2client.file-module.html">oauth2client.file</a>)</span></td>
</tr>
<tr>
<td width="33%" class="link-index"><a href="oauth2client.client.MemoryCache-class.html#set">set()</a><br />
<span class="index-where">(in <a href="oauth2client.client.MemoryCache-class.html">MemoryCache</a>)</span></td>
+<td width="33%" class="link-index"><a href="apiclient.http.MediaIoBaseUpload-class.html#size">size()</a><br />
+<span class="index-where">(in <a href="apiclient.http.MediaIoBaseUpload-class.html">MediaIoBaseUpload</a>)</span></td>
+<td width="33%" class="link-index"><a href="oauth2client.appengine.StorageByKeyName-class.html">StorageByKeyName</a><br />
+<span class="index-where">(in <a href="oauth2client.appengine-module.html">oauth2client.appengine</a>)</span></td>
+</tr>
+<tr>
+<td width="33%" class="link-index"><a href="oauth2client.client.OAuth2Credentials-class.html#set_store">set_store()</a><br />
+<span class="index-where">(in <a href="oauth2client.client.OAuth2Credentials-class.html">OAuth2Credentials</a>)</span></td>
<td width="33%" class="link-index"><a href="apiclient.http.MediaUpload-class.html#size">size()</a><br />
<span class="index-where">(in <a href="apiclient.http.MediaUpload-class.html">MediaUpload</a>)</span></td>
<td width="33%" class="link-index"><a href="django.db.models.fields.subclassing.SubfieldBase-class.html">SubfieldBase</a></td>
</tr>
<tr>
-<td width="33%" class="link-index"><a href="oauth2client.client.OAuth2Credentials-class.html#set_store">set_store()</a><br />
-<span class="index-where">(in <a href="oauth2client.client.OAuth2Credentials-class.html">OAuth2Credentials</a>)</span></td>
-<td width="33%" class="link-index"><a href="apiclient.discovery-module.html#STACK_QUERY_PARAMETERS">STACK_QUERY_PARAMETERS</a><br />
-<span class="index-where">(in <a href="apiclient.discovery-module.html">apiclient.discovery</a>)</span></td>
-<td width="33%" class="link-index"> </td>
-</tr>
-<tr>
<td width="33%" class="link-index"><a href="apiclient.http-module.html#set_user_agent">set_user_agent()</a><br />
<span class="index-where">(in <a href="apiclient.http-module.html">apiclient.http</a>)</span></td>
-<td width="33%" class="link-index"><a href="oauth2client.client.OAuth2WebServerFlow-class.html#step1_get_authorize_url">step1_get_authorize_url()</a><br />
-<span class="index-where">(in <a href="oauth2client.client.OAuth2WebServerFlow-class.html">OAuth2WebServerFlow</a>)</span></td>
+<td width="33%" class="link-index"><a href="apiclient.discovery-module.html#STACK_QUERY_PARAMETERS">STACK_QUERY_PARAMETERS</a><br />
+<span class="index-where">(in <a href="apiclient.discovery-module.html">apiclient.discovery</a>)</span></td>
<td width="33%" class="link-index"> </td>
</tr>
</table>
@@ -879,22 +920,30 @@
<tr>
<td width="33%" class="link-index"><a href="apiclient.http.HttpRequest-class.html#to_json">to_json()</a><br />
<span class="index-where">(in <a href="apiclient.http.HttpRequest-class.html">HttpRequest</a>)</span></td>
+<td width="33%" class="link-index"><a href="oauth2client.client.Credentials-class.html#to_json">to_json()</a><br />
+<span class="index-where">(in <a href="oauth2client.client.Credentials-class.html">Credentials</a>)</span></td>
+<td width="33%" class="link-index"><a href="oauth2client.tools-module.html">tools</a><br />
+<span class="index-where">(in <a href="oauth2client-module.html">oauth2client</a>)</span></td>
+</tr>
+<tr>
+<td width="33%" class="link-index"><a href="apiclient.http.MediaFileUpload-class.html#to_json">to_json()</a><br />
+<span class="index-where">(in <a href="apiclient.http.MediaFileUpload-class.html">MediaFileUpload</a>)</span></td>
<td width="33%" class="link-index"><a href="oauth2client.client.OAuth2Credentials-class.html#to_json">to_json()</a><br />
<span class="index-where">(in <a href="oauth2client.client.OAuth2Credentials-class.html">OAuth2Credentials</a>)</span></td>
<td width="33%" class="link-index"><a href="apiclient.http-module.html#tunnel_patch">tunnel_patch()</a><br />
<span class="index-where">(in <a href="apiclient.http-module.html">apiclient.http</a>)</span></td>
</tr>
<tr>
-<td width="33%" class="link-index"><a href="apiclient.http.MediaFileUpload-class.html#to_json">to_json()</a><br />
-<span class="index-where">(in <a href="apiclient.http.MediaFileUpload-class.html">MediaFileUpload</a>)</span></td>
+<td width="33%" class="link-index"><a href="apiclient.http.MediaInMemoryUpload-class.html#to_json">to_json()</a><br />
+<span class="index-where">(in <a href="apiclient.http.MediaInMemoryUpload-class.html">MediaInMemoryUpload</a>)</span></td>
<td width="33%" class="link-index"><a href="oauth2client.django_orm.CredentialsField-class.html#to_python">to_python()</a><br />
<span class="index-where">(in <a href="oauth2client.django_orm.CredentialsField-class.html">CredentialsField</a>)</span></td>
<td width="33%" class="link-index"><a href="oauth2client.clientsecrets-module.html#TYPE_INSTALLED">TYPE_INSTALLED</a><br />
<span class="index-where">(in <a href="oauth2client.clientsecrets-module.html">oauth2client.clientsecrets</a>)</span></td>
</tr>
<tr>
-<td width="33%" class="link-index"><a href="apiclient.http.MediaInMemoryUpload-class.html#to_json">to_json()</a><br />
-<span class="index-where">(in <a href="apiclient.http.MediaInMemoryUpload-class.html">MediaInMemoryUpload</a>)</span></td>
+<td width="33%" class="link-index"><a href="apiclient.http.MediaIoBaseUpload-class.html#to_json">to_json()</a><br />
+<span class="index-where">(in <a href="apiclient.http.MediaIoBaseUpload-class.html">MediaIoBaseUpload</a>)</span></td>
<td width="33%" class="link-index"><a href="oauth2client.django_orm.FlowField-class.html#to_python">to_python()</a><br />
<span class="index-where">(in <a href="oauth2client.django_orm.FlowField-class.html">FlowField</a>)</span></td>
<td width="33%" class="link-index"><a href="oauth2client.clientsecrets-module.html#TYPE_WEB">TYPE_WEB</a><br />
@@ -907,13 +956,6 @@
<span class="index-where">(in <a href="apiclient.schema._SchemaToStruct-class.html" onclick="show_private();">_SchemaToStruct</a>)</span></td>
<td width="33%" class="link-index"> </td>
</tr>
-<tr>
-<td width="33%" class="link-index"><a href="oauth2client.client.Credentials-class.html#to_json">to_json()</a><br />
-<span class="index-where">(in <a href="oauth2client.client.Credentials-class.html">Credentials</a>)</span></td>
-<td width="33%" class="link-index"><a href="oauth2client.tools-module.html">tools</a><br />
-<span class="index-where">(in <a href="oauth2client-module.html">oauth2client</a>)</span></td>
-<td width="33%" class="link-index"> </td>
-</tr>
</table>
</td></tr>
<tr valign="top"><td valign="top" width="1%"><h2 class="epydoc"><a name="U">U</a></h2></td>
@@ -922,25 +964,34 @@
<tr>
<td width="33%" class="link-index"><a href="apiclient.errors.UnacceptableMimeTypeError-class.html">UnacceptableMimeTypeError</a><br />
<span class="index-where">(in <a href="apiclient.errors-module.html">apiclient.errors</a>)</span></td>
-<td width="33%" class="link-index"><a href="apiclient.errors.UnexpectedMethodError-class.html">UnexpectedMethodError</a><br />
+<td width="33%" class="link-index"><a href="apiclient.errors.UnknownApiNameOrVersion-class.html">UnknownApiNameOrVersion</a><br />
<span class="index-where">(in <a href="apiclient.errors-module.html">apiclient.errors</a>)</span></td>
-<td width="33%" class="link-index"><a href="apiclient.errors.UnknownLinkType-class.html">UnknownLinkType</a><br />
-<span class="index-where">(in <a href="apiclient.errors-module.html">apiclient.errors</a>)</span></td>
+<td width="33%" class="link-index"><a href="oauth2client.locked_file._FcntlOpener-class.html#unlock_and_close">unlock_and_close()</a><br />
+<span class="index-where">(in <a href="oauth2client.locked_file._FcntlOpener-class.html" onclick="show_private();">_FcntlOpener</a>)</span></td>
</tr>
<tr>
<td width="33%" class="link-index"><a href="apiclient.schema._SchemaToStruct-class.html#undent">undent()</a><br />
<span class="index-where">(in <a href="apiclient.schema._SchemaToStruct-class.html" onclick="show_private();">_SchemaToStruct</a>)</span></td>
-<td width="33%" class="link-index"><a href="apiclient.errors.UnknownApiNameOrVersion-class.html">UnknownApiNameOrVersion</a><br />
-<span class="index-where">(in <a href="apiclient.errors-module.html">apiclient.errors</a>)</span></td>
-<td width="33%" class="link-index"><a href="apiclient.discovery-module.html#URITEMPLATE">URITEMPLATE</a><br />
-<span class="index-where">(in <a href="apiclient.discovery-module.html">apiclient.discovery</a>)</span></td>
+<td width="33%" class="link-index"><a href="oauth2client.client.UnknownClientSecretsFlowError-class.html">UnknownClientSecretsFlowError</a><br />
+<span class="index-where">(in <a href="oauth2client.client-module.html">oauth2client.client</a>)</span></td>
+<td width="33%" class="link-index"><a href="oauth2client.locked_file._Opener-class.html#unlock_and_close">unlock_and_close()</a><br />
+<span class="index-where">(in <a href="oauth2client.locked_file._Opener-class.html" onclick="show_private();">_Opener</a>)</span></td>
</tr>
<tr>
<td width="33%" class="link-index"><a href="apiclient.errors.UnexpectedBodyError-class.html">UnexpectedBodyError</a><br />
<span class="index-where">(in <a href="apiclient.errors-module.html">apiclient.errors</a>)</span></td>
-<td width="33%" class="link-index"><a href="oauth2client.client.UnknownClientSecretsFlowError-class.html">UnknownClientSecretsFlowError</a><br />
-<span class="index-where">(in <a href="oauth2client.client-module.html">oauth2client.client</a>)</span></td>
-<td width="33%" class="link-index"> </td>
+<td width="33%" class="link-index"><a href="apiclient.errors.UnknownLinkType-class.html">UnknownLinkType</a><br />
+<span class="index-where">(in <a href="apiclient.errors-module.html">apiclient.errors</a>)</span></td>
+<td width="33%" class="link-index"><a href="oauth2client.locked_file._PosixOpener-class.html#unlock_and_close">unlock_and_close()</a><br />
+<span class="index-where">(in <a href="oauth2client.locked_file._PosixOpener-class.html" onclick="show_private();">_PosixOpener</a>)</span></td>
+</tr>
+<tr>
+<td width="33%" class="link-index"><a href="apiclient.errors.UnexpectedMethodError-class.html">UnexpectedMethodError</a><br />
+<span class="index-where">(in <a href="apiclient.errors-module.html">apiclient.errors</a>)</span></td>
+<td width="33%" class="link-index"><a href="oauth2client.locked_file.LockedFile-class.html#unlock_and_close">unlock_and_close()</a><br />
+<span class="index-where">(in <a href="oauth2client.locked_file.LockedFile-class.html">LockedFile</a>)</span></td>
+<td width="33%" class="link-index"><a href="apiclient.discovery-module.html#URITEMPLATE">URITEMPLATE</a><br />
+<span class="index-where">(in <a href="apiclient.discovery-module.html">apiclient.discovery</a>)</span></td>
</tr>
</table>
</td></tr>
@@ -979,231 +1030,239 @@
<tr>
<td width="33%" class="link-index"><a href="apiclient.http.RequestMockBuilder-class.html#__call__">__call__()</a><br />
<span class="index-where">(in <a href="apiclient.http.RequestMockBuilder-class.html">RequestMockBuilder</a>)</span></td>
-<td width="33%" class="link-index"><a href="apiclient.discovery-module.html#__package__">__package__</a><br />
-<span class="index-where">(in <a href="apiclient.discovery-module.html">apiclient.discovery</a>)</span></td>
-<td width="33%" class="link-index"><a href="oauth2client.client.OAuth2Credentials-class.html#_generate_refresh_request_body">_generate_refresh_request_body()</a><br />
-<span class="index-where">(in <a href="oauth2client.client.OAuth2Credentials-class.html">OAuth2Credentials</a>)</span></td>
-</tr>
-<tr>
-<td width="33%" class="link-index"><a href="apiclient.mimeparse-module.html#__credits__">__credits__</a><br />
-<span class="index-where">(in <a href="apiclient.mimeparse-module.html">apiclient.mimeparse</a>)</span></td>
-<td width="33%" class="link-index"><a href="apiclient.errors-module.html#__package__">__package__</a><br />
-<span class="index-where">(in <a href="apiclient.errors-module.html">apiclient.errors</a>)</span></td>
-<td width="33%" class="link-index"><a href="oauth2client.client.OAuth2Credentials-class.html#_generate_refresh_request_headers">_generate_refresh_request_headers()</a><br />
-<span class="index-where">(in <a href="oauth2client.client.OAuth2Credentials-class.html">OAuth2Credentials</a>)</span></td>
-</tr>
-<tr>
-<td width="33%" class="link-index"><a href="apiclient.mimeparse-module.html#__email__">__email__</a><br />
-<span class="index-where">(in <a href="apiclient.mimeparse-module.html">apiclient.mimeparse</a>)</span></td>
<td width="33%" class="link-index"><a href="apiclient.ext-module.html#__package__">__package__</a><br />
<span class="index-where">(in <a href="apiclient.ext-module.html">apiclient.ext</a>)</span></td>
-<td width="33%" class="link-index"><a href="oauth2client.multistore_file._MultiStore-class.html#_get_credential">_get_credential()</a><br />
-<span class="index-where">(in <a href="oauth2client.multistore_file._MultiStore-class.html" onclick="show_private();">_MultiStore</a>)</span></td>
-</tr>
-<tr>
-<td width="33%" class="link-index"><a href="oauth2client.client.OAuth2Credentials-class.html#__getstate__">__getstate__()</a><br />
-<span class="index-where">(in <a href="oauth2client.client.OAuth2Credentials-class.html">OAuth2Credentials</a>)</span></td>
-<td width="33%" class="link-index"><a href="apiclient.http-module.html#__package__">__package__</a><br />
-<span class="index-where">(in <a href="apiclient.http-module.html">apiclient.http</a>)</span></td>
<td width="33%" class="link-index"><a href="apiclient.errors.HttpError-class.html#_get_reason">_get_reason()</a><br />
<span class="index-where">(in <a href="apiclient.errors.HttpError-class.html">HttpError</a>)</span></td>
</tr>
<tr>
-<td width="33%" class="link-index"><a href="apiclient.errors.BatchError-class.html#__init__">__init__()</a><br />
-<span class="index-where">(in <a href="apiclient.errors.BatchError-class.html">BatchError</a>)</span></td>
-<td width="33%" class="link-index"><a href="apiclient.mimeparse-module.html#__package__">__package__</a><br />
+<td width="33%" class="link-index"><a href="apiclient.mimeparse-module.html#__credits__">__credits__</a><br />
<span class="index-where">(in <a href="apiclient.mimeparse-module.html">apiclient.mimeparse</a>)</span></td>
+<td width="33%" class="link-index"><a href="apiclient.http-module.html#__package__">__package__</a><br />
+<span class="index-where">(in <a href="apiclient.http-module.html">apiclient.http</a>)</span></td>
<td width="33%" class="link-index"><a href="oauth2client.multistore_file._MultiStore-class.html#_get_storage">_get_storage()</a><br />
<span class="index-where">(in <a href="oauth2client.multistore_file._MultiStore-class.html" onclick="show_private();">_MultiStore</a>)</span></td>
</tr>
<tr>
-<td width="33%" class="link-index"><a href="apiclient.errors.HttpError-class.html#__init__">__init__()</a><br />
-<span class="index-where">(in <a href="apiclient.errors.HttpError-class.html">HttpError</a>)</span></td>
-<td width="33%" class="link-index"><a href="apiclient.model-module.html#__package__">__package__</a><br />
-<span class="index-where">(in <a href="apiclient.model-module.html">apiclient.model</a>)</span></td>
+<td width="33%" class="link-index"><a href="apiclient.mimeparse-module.html#__email__">__email__</a><br />
+<span class="index-where">(in <a href="apiclient.mimeparse-module.html">apiclient.mimeparse</a>)</span></td>
+<td width="33%" class="link-index"><a href="apiclient.mimeparse-module.html#__package__">__package__</a><br />
+<span class="index-where">(in <a href="apiclient.mimeparse-module.html">apiclient.mimeparse</a>)</span></td>
<td width="33%" class="link-index"><a href="apiclient.http.BatchHttpRequest-class.html#_header_to_id">_header_to_id()</a><br />
<span class="index-where">(in <a href="apiclient.http.BatchHttpRequest-class.html">BatchHttpRequest</a>)</span></td>
</tr>
<tr>
-<td width="33%" class="link-index"><a href="apiclient.errors.UnexpectedBodyError-class.html#__init__">__init__()</a><br />
-<span class="index-where">(in <a href="apiclient.errors.UnexpectedBodyError-class.html">UnexpectedBodyError</a>)</span></td>
-<td width="33%" class="link-index"><a href="apiclient.schema-module.html#__package__">__package__</a><br />
-<span class="index-where">(in <a href="apiclient.schema-module.html">apiclient.schema</a>)</span></td>
+<td width="33%" class="link-index"><a href="oauth2client.client.OAuth2Credentials-class.html#__getstate__">__getstate__()</a><br />
+<span class="index-where">(in <a href="oauth2client.client.OAuth2Credentials-class.html">OAuth2Credentials</a>)</span></td>
+<td width="33%" class="link-index"><a href="apiclient.model-module.html#__package__">__package__</a><br />
+<span class="index-where">(in <a href="apiclient.model-module.html">apiclient.model</a>)</span></td>
<td width="33%" class="link-index"><a href="apiclient.http.BatchHttpRequest-class.html#_id_to_header">_id_to_header()</a><br />
<span class="index-where">(in <a href="apiclient.http.BatchHttpRequest-class.html">BatchHttpRequest</a>)</span></td>
</tr>
<tr>
-<td width="33%" class="link-index"><a href="apiclient.errors.UnexpectedMethodError-class.html#__init__">__init__()</a><br />
-<span class="index-where">(in <a href="apiclient.errors.UnexpectedMethodError-class.html">UnexpectedMethodError</a>)</span></td>
-<td width="33%" class="link-index"><a href="oauth2client-module.html#__package__">__package__</a><br />
-<span class="index-where">(in <a href="oauth2client-module.html">oauth2client</a>)</span></td>
+<td width="33%" class="link-index"><a href="apiclient.errors.BatchError-class.html#__init__">__init__()</a><br />
+<span class="index-where">(in <a href="apiclient.errors.BatchError-class.html">BatchError</a>)</span></td>
+<td width="33%" class="link-index"><a href="apiclient.schema-module.html#__package__">__package__</a><br />
+<span class="index-where">(in <a href="apiclient.schema-module.html">apiclient.schema</a>)</span></td>
<td width="33%" class="link-index"><a href="oauth2client.crypt-module.html#_json_encode">_json_encode()</a><br />
<span class="index-where">(in <a href="oauth2client.crypt-module.html">oauth2client.crypt</a>)</span></td>
</tr>
<tr>
-<td width="33%" class="link-index"><a href="apiclient.http.BatchHttpRequest-class.html#__init__">__init__()</a><br />
-<span class="index-where">(in <a href="apiclient.http.BatchHttpRequest-class.html">BatchHttpRequest</a>)</span></td>
-<td width="33%" class="link-index"><a href="oauth2client.anyjson-module.html#__package__">__package__</a><br />
-<span class="index-where">(in <a href="oauth2client.anyjson-module.html">oauth2client.anyjson</a>)</span></td>
+<td width="33%" class="link-index"><a href="apiclient.errors.HttpError-class.html#__init__">__init__()</a><br />
+<span class="index-where">(in <a href="apiclient.errors.HttpError-class.html">HttpError</a>)</span></td>
+<td width="33%" class="link-index"><a href="oauth2client-module.html#__package__">__package__</a><br />
+<span class="index-where">(in <a href="oauth2client-module.html">oauth2client</a>)</span></td>
<td width="33%" class="link-index"><a href="oauth2client.multistore_file._MultiStore-class.html#_lock">_lock()</a><br />
<span class="index-where">(in <a href="oauth2client.multistore_file._MultiStore-class.html" onclick="show_private();">_MultiStore</a>)</span></td>
</tr>
<tr>
-<td width="33%" class="link-index"><a href="apiclient.http.HttpMock-class.html#__init__">__init__()</a><br />
-<span class="index-where">(in <a href="apiclient.http.HttpMock-class.html">HttpMock</a>)</span></td>
-<td width="33%" class="link-index"><a href="oauth2client.appengine-module.html#__package__">__package__</a><br />
-<span class="index-where">(in <a href="oauth2client.appengine-module.html">oauth2client.appengine</a>)</span></td>
+<td width="33%" class="link-index"><a href="apiclient.errors.UnexpectedBodyError-class.html#__init__">__init__()</a><br />
+<span class="index-where">(in <a href="apiclient.errors.UnexpectedBodyError-class.html">UnexpectedBodyError</a>)</span></td>
+<td width="33%" class="link-index"><a href="oauth2client.anyjson-module.html#__package__">__package__</a><br />
+<span class="index-where">(in <a href="oauth2client.anyjson-module.html">oauth2client.anyjson</a>)</span></td>
<td width="33%" class="link-index"><a href="oauth2client.multistore_file._MultiStore-class.html#_locked_json_read">_locked_json_read()</a><br />
<span class="index-where">(in <a href="oauth2client.multistore_file._MultiStore-class.html" onclick="show_private();">_MultiStore</a>)</span></td>
</tr>
<tr>
-<td width="33%" class="link-index"><a href="apiclient.http.HttpMockSequence-class.html#__init__">__init__()</a><br />
-<span class="index-where">(in <a href="apiclient.http.HttpMockSequence-class.html">HttpMockSequence</a>)</span></td>
-<td width="33%" class="link-index"><a href="oauth2client.client-module.html#__package__">__package__</a><br />
-<span class="index-where">(in <a href="oauth2client.client-module.html">oauth2client.client</a>)</span></td>
+<td width="33%" class="link-index"><a href="apiclient.errors.UnexpectedMethodError-class.html#__init__">__init__()</a><br />
+<span class="index-where">(in <a href="apiclient.errors.UnexpectedMethodError-class.html">UnexpectedMethodError</a>)</span></td>
+<td width="33%" class="link-index"><a href="oauth2client.appengine-module.html#__package__">__package__</a><br />
+<span class="index-where">(in <a href="oauth2client.appengine-module.html">oauth2client.appengine</a>)</span></td>
<td width="33%" class="link-index"><a href="oauth2client.multistore_file._MultiStore-class.html#_locked_json_write">_locked_json_write()</a><br />
<span class="index-where">(in <a href="oauth2client.multistore_file._MultiStore-class.html" onclick="show_private();">_MultiStore</a>)</span></td>
</tr>
<tr>
-<td width="33%" class="link-index"><a href="apiclient.http.HttpRequest-class.html#__init__">__init__()</a><br />
-<span class="index-where">(in <a href="apiclient.http.HttpRequest-class.html">HttpRequest</a>)</span></td>
-<td width="33%" class="link-index"><a href="oauth2client.clientsecrets-module.html#__package__">__package__</a><br />
-<span class="index-where">(in <a href="oauth2client.clientsecrets-module.html">oauth2client.clientsecrets</a>)</span></td>
+<td width="33%" class="link-index"><a href="apiclient.http.BatchHttpRequest-class.html#__init__">__init__()</a><br />
+<span class="index-where">(in <a href="apiclient.http.BatchHttpRequest-class.html">BatchHttpRequest</a>)</span></td>
+<td width="33%" class="link-index"><a href="oauth2client.client-module.html#__package__">__package__</a><br />
+<span class="index-where">(in <a href="oauth2client.client-module.html">oauth2client.client</a>)</span></td>
<td width="33%" class="link-index"><a href="apiclient.model.BaseModel-class.html#_log_request">_log_request()</a><br />
<span class="index-where">(in <a href="apiclient.model.BaseModel-class.html">BaseModel</a>)</span></td>
</tr>
<tr>
-<td width="33%" class="link-index"><a href="apiclient.http.HttpRequestMock-class.html#__init__">__init__()</a><br />
-<span class="index-where">(in <a href="apiclient.http.HttpRequestMock-class.html">HttpRequestMock</a>)</span></td>
-<td width="33%" class="link-index"><a href="oauth2client.crypt-module.html#__package__">__package__</a><br />
-<span class="index-where">(in <a href="oauth2client.crypt-module.html">oauth2client.crypt</a>)</span></td>
+<td width="33%" class="link-index"><a href="apiclient.http.HttpMock-class.html#__init__">__init__()</a><br />
+<span class="index-where">(in <a href="apiclient.http.HttpMock-class.html">HttpMock</a>)</span></td>
+<td width="33%" class="link-index"><a href="oauth2client.clientsecrets-module.html#__package__">__package__</a><br />
+<span class="index-where">(in <a href="oauth2client.clientsecrets-module.html">oauth2client.clientsecrets</a>)</span></td>
<td width="33%" class="link-index"><a href="apiclient.model.BaseModel-class.html#_log_response">_log_response()</a><br />
<span class="index-where">(in <a href="apiclient.model.BaseModel-class.html">BaseModel</a>)</span></td>
</tr>
<tr>
-<td width="33%" class="link-index"><a href="apiclient.http.MediaFileUpload-class.html#__init__">__init__()</a><br />
-<span class="index-where">(in <a href="apiclient.http.MediaFileUpload-class.html">MediaFileUpload</a>)</span></td>
-<td width="33%" class="link-index"><a href="oauth2client.django_orm-module.html#__package__">__package__</a><br />
-<span class="index-where">(in <a href="oauth2client.django_orm-module.html">oauth2client.django_orm</a>)</span></td>
+<td width="33%" class="link-index"><a href="apiclient.http.HttpMockSequence-class.html#__init__">__init__()</a><br />
+<span class="index-where">(in <a href="apiclient.http.HttpMockSequence-class.html">HttpMockSequence</a>)</span></td>
+<td width="33%" class="link-index"><a href="oauth2client.crypt-module.html#__package__">__package__</a><br />
+<span class="index-where">(in <a href="oauth2client.crypt-module.html">oauth2client.crypt</a>)</span></td>
<td width="33%" class="link-index"><a href="apiclient.discovery-module.html#_media_size_to_long">_media_size_to_long()</a><br />
<span class="index-where">(in <a href="apiclient.discovery-module.html">apiclient.discovery</a>)</span></td>
</tr>
<tr>
-<td width="33%" class="link-index"><a href="apiclient.http.MediaInMemoryUpload-class.html#__init__">__init__()</a><br />
-<span class="index-where">(in <a href="apiclient.http.MediaInMemoryUpload-class.html">MediaInMemoryUpload</a>)</span></td>
-<td width="33%" class="link-index"><a href="oauth2client.file-module.html#__package__">__package__</a><br />
-<span class="index-where">(in <a href="oauth2client.file-module.html">oauth2client.file</a>)</span></td>
+<td width="33%" class="link-index"><a href="apiclient.http.HttpRequest-class.html#__init__">__init__()</a><br />
+<span class="index-where">(in <a href="apiclient.http.HttpRequest-class.html">HttpRequest</a>)</span></td>
+<td width="33%" class="link-index"><a href="oauth2client.django_orm-module.html#__package__">__package__</a><br />
+<span class="index-where">(in <a href="oauth2client.django_orm-module.html">oauth2client.django_orm</a>)</span></td>
<td width="33%" class="link-index"><a href="oauth2client.multistore_file._MultiStore-class.html">_MultiStore</a><br />
<span class="index-where">(in <a href="oauth2client.multistore_file-module.html">oauth2client.multistore_file</a>)</span></td>
</tr>
<tr>
-<td width="33%" class="link-index"><a href="apiclient.http.MediaUploadProgress-class.html#__init__">__init__()</a><br />
-<span class="index-where">(in <a href="apiclient.http.MediaUploadProgress-class.html">MediaUploadProgress</a>)</span></td>
-<td width="33%" class="link-index"><a href="oauth2client.multistore_file-module.html#__package__">__package__</a><br />
-<span class="index-where">(in <a href="oauth2client.multistore_file-module.html">oauth2client.multistore_file</a>)</span></td>
+<td width="33%" class="link-index"><a href="apiclient.http.HttpRequestMock-class.html#__init__">__init__()</a><br />
+<span class="index-where">(in <a href="apiclient.http.HttpRequestMock-class.html">HttpRequestMock</a>)</span></td>
+<td width="33%" class="link-index"><a href="oauth2client.file-module.html#__package__">__package__</a><br />
+<span class="index-where">(in <a href="oauth2client.file-module.html">oauth2client.file</a>)</span></td>
<td width="33%" class="link-index"><a href="oauth2client.multistore_file-module.html#_multistores">_multistores</a><br />
<span class="index-where">(in <a href="oauth2client.multistore_file-module.html">oauth2client.multistore_file</a>)</span></td>
</tr>
<tr>
-<td width="33%" class="link-index"><a href="apiclient.http.RequestMockBuilder-class.html#__init__">__init__()</a><br />
-<span class="index-where">(in <a href="apiclient.http.RequestMockBuilder-class.html">RequestMockBuilder</a>)</span></td>
-<td width="33%" class="link-index"><a href="oauth2client.tools-module.html#__package__">__package__</a><br />
-<span class="index-where">(in <a href="oauth2client.tools-module.html">oauth2client.tools</a>)</span></td>
+<td width="33%" class="link-index"><a href="apiclient.http.MediaFileUpload-class.html#__init__">__init__()</a><br />
+<span class="index-where">(in <a href="apiclient.http.MediaFileUpload-class.html">MediaFileUpload</a>)</span></td>
+<td width="33%" class="link-index"><a href="oauth2client.locked_file-module.html#__package__">__package__</a><br />
+<span class="index-where">(in <a href="oauth2client.locked_file-module.html">oauth2client.locked_file</a>)</span></td>
<td width="33%" class="link-index"><a href="oauth2client.multistore_file-module.html#_multistores_lock">_multistores_lock</a><br />
<span class="index-where">(in <a href="oauth2client.multistore_file-module.html">oauth2client.multistore_file</a>)</span></td>
</tr>
<tr>
-<td width="33%" class="link-index"><a href="apiclient.model.JsonModel-class.html#__init__">__init__()</a><br />
-<span class="index-where">(in <a href="apiclient.model.JsonModel-class.html">JsonModel</a>)</span></td>
-<td width="33%" class="link-index"><a href="apiclient.errors.BatchError-class.html#__repr__">__repr__()</a><br />
-<span class="index-where">(in <a href="apiclient.errors.BatchError-class.html">BatchError</a>)</span></td>
+<td width="33%" class="link-index"><a href="apiclient.http.MediaInMemoryUpload-class.html#__init__">__init__()</a><br />
+<span class="index-where">(in <a href="apiclient.http.MediaInMemoryUpload-class.html">MediaInMemoryUpload</a>)</span></td>
+<td width="33%" class="link-index"><a href="oauth2client.multistore_file-module.html#__package__">__package__</a><br />
+<span class="index-where">(in <a href="oauth2client.multistore_file-module.html">oauth2client.multistore_file</a>)</span></td>
<td width="33%" class="link-index"><a href="apiclient.http.BatchHttpRequest-class.html#_new_id">_new_id()</a><br />
<span class="index-where">(in <a href="apiclient.http.BatchHttpRequest-class.html">BatchHttpRequest</a>)</span></td>
</tr>
<tr>
-<td width="33%" class="link-index"><a href="apiclient.model.ProtocolBufferModel-class.html#__init__">__init__()</a><br />
-<span class="index-where">(in <a href="apiclient.model.ProtocolBufferModel-class.html">ProtocolBufferModel</a>)</span></td>
+<td width="33%" class="link-index"><a href="apiclient.http.MediaIoBaseUpload-class.html#__init__">__init__()</a><br />
+<span class="index-where">(in <a href="apiclient.http.MediaIoBaseUpload-class.html">MediaIoBaseUpload</a>)</span></td>
+<td width="33%" class="link-index"><a href="oauth2client.tools-module.html#__package__">__package__</a><br />
+<span class="index-where">(in <a href="oauth2client.tools-module.html">oauth2client.tools</a>)</span></td>
+<td width="33%" class="link-index"><a href="oauth2client.locked_file._Opener-class.html">_Opener</a><br />
+<span class="index-where">(in <a href="oauth2client.locked_file-module.html">oauth2client.locked_file</a>)</span></td>
+</tr>
+<tr>
+<td width="33%" class="link-index"><a href="apiclient.http.MediaUploadProgress-class.html#__init__">__init__()</a><br />
+<span class="index-where">(in <a href="apiclient.http.MediaUploadProgress-class.html">MediaUploadProgress</a>)</span></td>
+<td width="33%" class="link-index"><a href="apiclient.errors.BatchError-class.html#__repr__">__repr__()</a><br />
+<span class="index-where">(in <a href="apiclient.errors.BatchError-class.html">BatchError</a>)</span></td>
+<td width="33%" class="link-index"><a href="oauth2client.locked_file._PosixOpener-class.html#_posix_lockfile">_posix_lockfile()</a><br />
+<span class="index-where">(in <a href="oauth2client.locked_file._PosixOpener-class.html" onclick="show_private();">_PosixOpener</a>)</span></td>
+</tr>
+<tr>
+<td width="33%" class="link-index"><a href="apiclient.http.RequestMockBuilder-class.html#__init__">__init__()</a><br />
+<span class="index-where">(in <a href="apiclient.http.RequestMockBuilder-class.html">RequestMockBuilder</a>)</span></td>
<td width="33%" class="link-index"><a href="apiclient.errors.HttpError-class.html#__repr__">__repr__()</a><br />
<span class="index-where">(in <a href="apiclient.errors.HttpError-class.html">HttpError</a>)</span></td>
+<td width="33%" class="link-index"><a href="oauth2client.locked_file._PosixOpener-class.html">_PosixOpener</a><br />
+<span class="index-where">(in <a href="oauth2client.locked_file-module.html">oauth2client.locked_file</a>)</span></td>
+</tr>
+<tr>
+<td width="33%" class="link-index"><a href="apiclient.model.JsonModel-class.html#__init__">__init__()</a><br />
+<span class="index-where">(in <a href="apiclient.model.JsonModel-class.html">JsonModel</a>)</span></td>
+<td width="33%" class="link-index"><a href="oauth2client.client.OAuth2Credentials-class.html#__setstate__">__setstate__()</a><br />
+<span class="index-where">(in <a href="oauth2client.client.OAuth2Credentials-class.html">OAuth2Credentials</a>)</span></td>
<td width="33%" class="link-index"><a href="apiclient.schema.Schemas-class.html#_prettyPrintByName">_prettyPrintByName()</a><br />
<span class="index-where">(in <a href="apiclient.schema.Schemas-class.html">Schemas</a>)</span></td>
</tr>
<tr>
+<td width="33%" class="link-index"><a href="apiclient.model.ProtocolBufferModel-class.html#__init__">__init__()</a><br />
+<span class="index-where">(in <a href="apiclient.model.ProtocolBufferModel-class.html">ProtocolBufferModel</a>)</span></td>
+<td width="33%" class="link-index"><a href="apiclient.model-module.html#_abstract">_abstract()</a><br />
+<span class="index-where">(in <a href="apiclient.model-module.html">apiclient.model</a>)</span></td>
+<td width="33%" class="link-index"><a href="apiclient.schema.Schemas-class.html#_prettyPrintSchema">_prettyPrintSchema()</a><br />
+<span class="index-where">(in <a href="apiclient.schema.Schemas-class.html">Schemas</a>)</span></td>
+</tr>
+<tr>
<td width="33%" class="link-index"><a href="apiclient.schema.Schemas-class.html#__init__">__init__()</a><br />
<span class="index-where">(in <a href="apiclient.schema.Schemas-class.html">Schemas</a>)</span></td>
-<td width="33%" class="link-index"><a href="oauth2client.client.OAuth2Credentials-class.html#__setstate__">__setstate__()</a><br />
-<span class="index-where">(in <a href="oauth2client.client.OAuth2Credentials-class.html">OAuth2Credentials</a>)</span></td>
-<td width="33%" class="link-index"><a href="apiclient.schema.Schemas-class.html#_prettyPrintSchema">_prettyPrintSchema()</a><br />
-<span class="index-where">(in <a href="apiclient.schema.Schemas-class.html">Schemas</a>)</span></td>
+<td width="33%" class="link-index"><a href="oauth2client.client-module.html#_abstract">_abstract()</a><br />
+<span class="index-where">(in <a href="oauth2client.client-module.html">oauth2client.client</a>)</span></td>
+<td width="33%" class="link-index"><a href="apiclient.http.HttpRequest-class.html#_process_response">_process_response()</a><br />
+<span class="index-where">(in <a href="apiclient.http.HttpRequest-class.html">HttpRequest</a>)</span></td>
</tr>
<tr>
<td width="33%" class="link-index"><a href="apiclient.schema._SchemaToStruct-class.html#__init__">__init__()</a><br />
<span class="index-where">(in <a href="apiclient.schema._SchemaToStruct-class.html" onclick="show_private();">_SchemaToStruct</a>)</span></td>
-<td width="33%" class="link-index"><a href="apiclient.model-module.html#_abstract">_abstract()</a><br />
-<span class="index-where">(in <a href="apiclient.model-module.html">apiclient.model</a>)</span></td>
+<td width="33%" class="link-index"><a href="apiclient.discovery-module.html#_add_query_parameter">_add_query_parameter()</a><br />
+<span class="index-where">(in <a href="apiclient.discovery-module.html">apiclient.discovery</a>)</span></td>
<td width="33%" class="link-index"><a href="oauth2client.appengine.CredentialsModel-class.html#_properties">_properties</a><br />
<span class="index-where">(in <a href="oauth2client.appengine.CredentialsModel-class.html">CredentialsModel</a>)</span></td>
</tr>
<tr>
<td width="33%" class="link-index"><a href="oauth2client.appengine.AppAssertionCredentials-class.html#__init__">__init__()</a><br />
<span class="index-where">(in <a href="oauth2client.appengine.AppAssertionCredentials-class.html">AppAssertionCredentials</a>)</span></td>
-<td width="33%" class="link-index"><a href="oauth2client.client-module.html#_abstract">_abstract()</a><br />
-<span class="index-where">(in <a href="oauth2client.client-module.html">oauth2client.client</a>)</span></td>
+<td width="33%" class="link-index"><a href="oauth2client.appengine.CredentialsModel-class.html#_all_properties">_all_properties</a><br />
+<span class="index-where">(in <a href="oauth2client.appengine.CredentialsModel-class.html">CredentialsModel</a>)</span></td>
<td width="33%" class="link-index"><a href="oauth2client.appengine.AppAssertionCredentials-class.html#_refresh">_refresh()</a><br />
<span class="index-where">(in <a href="oauth2client.appengine.AppAssertionCredentials-class.html">AppAssertionCredentials</a>)</span></td>
</tr>
<tr>
<td width="33%" class="link-index"><a href="oauth2client.appengine.OAuth2Decorator-class.html#__init__">__init__()</a><br />
<span class="index-where">(in <a href="oauth2client.appengine.OAuth2Decorator-class.html">OAuth2Decorator</a>)</span></td>
-<td width="33%" class="link-index"><a href="apiclient.discovery-module.html#_add_query_parameter">_add_query_parameter()</a><br />
-<span class="index-where">(in <a href="apiclient.discovery-module.html">apiclient.discovery</a>)</span></td>
+<td width="33%" class="link-index"><a href="apiclient.model.BaseModel-class.html#_build_query">_build_query()</a><br />
+<span class="index-where">(in <a href="apiclient.model.BaseModel-class.html">BaseModel</a>)</span></td>
<td width="33%" class="link-index"><a href="oauth2client.client.AccessTokenCredentials-class.html#_refresh">_refresh()</a><br />
<span class="index-where">(in <a href="oauth2client.client.AccessTokenCredentials-class.html">AccessTokenCredentials</a>)</span></td>
</tr>
<tr>
<td width="33%" class="link-index"><a href="oauth2client.appengine.OAuth2DecoratorFromClientSecrets-class.html#__init__">__init__()</a><br />
<span class="index-where">(in <a href="oauth2client.appengine.OAuth2DecoratorFromClientSecrets-class.html">OAuth2DecoratorFromClientSecrets</a>)</span></td>
-<td width="33%" class="link-index"><a href="oauth2client.appengine.CredentialsModel-class.html#_all_properties">_all_properties</a><br />
-<span class="index-where">(in <a href="oauth2client.appengine.CredentialsModel-class.html">CredentialsModel</a>)</span></td>
+<td width="33%" class="link-index"><a href="oauth2client.client-module.html#_cached_http">_cached_http</a><br />
+<span class="index-where">(in <a href="oauth2client.client-module.html">oauth2client.client</a>)</span></td>
<td width="33%" class="link-index"><a href="oauth2client.client.OAuth2Credentials-class.html#_refresh">_refresh()</a><br />
<span class="index-where">(in <a href="oauth2client.client.OAuth2Credentials-class.html">OAuth2Credentials</a>)</span></td>
</tr>
<tr>
<td width="33%" class="link-index"><a href="oauth2client.appengine.StorageByKeyName-class.html#__init__">__init__()</a><br />
<span class="index-where">(in <a href="oauth2client.appengine.StorageByKeyName-class.html">StorageByKeyName</a>)</span></td>
-<td width="33%" class="link-index"><a href="apiclient.model.BaseModel-class.html#_build_query">_build_query()</a><br />
-<span class="index-where">(in <a href="apiclient.model.BaseModel-class.html">BaseModel</a>)</span></td>
+<td width="33%" class="link-index"><a href="apiclient.discovery-module.html#_cast">_cast()</a><br />
+<span class="index-where">(in <a href="apiclient.discovery-module.html">apiclient.discovery</a>)</span></td>
<td width="33%" class="link-index"><a href="apiclient.http.BatchHttpRequest-class.html#_refresh_and_apply_credentials">_refresh_and_apply_credentials()</a><br />
<span class="index-where">(in <a href="apiclient.http.BatchHttpRequest-class.html">BatchHttpRequest</a>)</span></td>
</tr>
<tr>
<td width="33%" class="link-index"><a href="oauth2client.client.AccessTokenCredentials-class.html#__init__">__init__()</a><br />
<span class="index-where">(in <a href="oauth2client.client.AccessTokenCredentials-class.html">AccessTokenCredentials</a>)</span></td>
-<td width="33%" class="link-index"><a href="oauth2client.client-module.html#_cached_http">_cached_http</a><br />
-<span class="index-where">(in <a href="oauth2client.client-module.html">oauth2client.client</a>)</span></td>
+<td width="33%" class="link-index"><a href="oauth2client.file.Storage-class.html#_create_file_if_needed">_create_file_if_needed()</a><br />
+<span class="index-where">(in <a href="oauth2client.file.Storage-class.html">Storage</a>)</span></td>
<td width="33%" class="link-index"><a href="oauth2client.multistore_file._MultiStore-class.html#_refresh_data_cache">_refresh_data_cache()</a><br />
<span class="index-where">(in <a href="oauth2client.multistore_file._MultiStore-class.html" onclick="show_private();">_MultiStore</a>)</span></td>
</tr>
<tr>
<td width="33%" class="link-index"><a href="oauth2client.client.AssertionCredentials-class.html#__init__">__init__()</a><br />
<span class="index-where">(in <a href="oauth2client.client.AssertionCredentials-class.html">AssertionCredentials</a>)</span></td>
-<td width="33%" class="link-index"><a href="apiclient.discovery-module.html#_cast">_cast()</a><br />
-<span class="index-where">(in <a href="apiclient.discovery-module.html">apiclient.discovery</a>)</span></td>
+<td width="33%" class="link-index"><a href="oauth2client.multistore_file._MultiStore-class.html#_create_file_if_needed">_create_file_if_needed()</a><br />
+<span class="index-where">(in <a href="oauth2client.multistore_file._MultiStore-class.html" onclick="show_private();">_MultiStore</a>)</span></td>
<td width="33%" class="link-index"><a href="apiclient.schema._SchemaToStruct-class.html">_SchemaToStruct</a><br />
<span class="index-where">(in <a href="apiclient.schema-module.html">apiclient.schema</a>)</span></td>
</tr>
<tr>
<td width="33%" class="link-index"><a href="oauth2client.client.MemoryCache-class.html#__init__">__init__()</a><br />
<span class="index-where">(in <a href="oauth2client.client.MemoryCache-class.html">MemoryCache</a>)</span></td>
-<td width="33%" class="link-index"><a href="oauth2client.file.Storage-class.html#_create_file_if_needed">_create_file_if_needed()</a><br />
-<span class="index-where">(in <a href="oauth2client.file.Storage-class.html">Storage</a>)</span></td>
+<td width="33%" class="link-index"><a href="oauth2client.multistore_file._MultiStore-class.html#_decode_credential_from_json">_decode_credential_from_json()</a><br />
+<span class="index-where">(in <a href="oauth2client.multistore_file._MultiStore-class.html" onclick="show_private();">_MultiStore</a>)</span></td>
<td width="33%" class="link-index"><a href="apiclient.http.BatchHttpRequest-class.html#_serialize_request">_serialize_request()</a><br />
<span class="index-where">(in <a href="apiclient.http.BatchHttpRequest-class.html">BatchHttpRequest</a>)</span></td>
</tr>
<tr>
<td width="33%" class="link-index"><a href="oauth2client.client.OAuth2Credentials-class.html#__init__">__init__()</a><br />
<span class="index-where">(in <a href="oauth2client.client.OAuth2Credentials-class.html">OAuth2Credentials</a>)</span></td>
-<td width="33%" class="link-index"><a href="oauth2client.multistore_file._MultiStore-class.html#_create_file_if_needed">_create_file_if_needed()</a><br />
+<td width="33%" class="link-index"><a href="oauth2client.multistore_file._MultiStore-class.html#_delete_credential">_delete_credential()</a><br />
<span class="index-where">(in <a href="oauth2client.multistore_file._MultiStore-class.html" onclick="show_private();">_MultiStore</a>)</span></td>
<td width="33%" class="link-index"><a href="oauth2client.multistore_file._MultiStore._Storage-class.html">_Storage</a><br />
<span class="index-where">(in <a href="oauth2client.multistore_file._MultiStore-class.html" onclick="show_private();">_MultiStore</a>)</span></td>
@@ -1211,98 +1270,104 @@
<tr>
<td width="33%" class="link-index"><a href="oauth2client.client.OAuth2WebServerFlow-class.html#__init__">__init__()</a><br />
<span class="index-where">(in <a href="oauth2client.client.OAuth2WebServerFlow-class.html">OAuth2WebServerFlow</a>)</span></td>
-<td width="33%" class="link-index"><a href="oauth2client.multistore_file._MultiStore-class.html#_decode_credential_from_json">_decode_credential_from_json()</a><br />
-<span class="index-where">(in <a href="oauth2client.multistore_file._MultiStore-class.html" onclick="show_private();">_MultiStore</a>)</span></td>
+<td width="33%" class="link-index"><a href="apiclient.http.BatchHttpRequest-class.html#_deserialize_response">_deserialize_response()</a><br />
+<span class="index-where">(in <a href="apiclient.http.BatchHttpRequest-class.html">BatchHttpRequest</a>)</span></td>
<td width="33%" class="link-index"><a href="apiclient.http.MediaUpload-class.html#_to_json">_to_json()</a><br />
<span class="index-where">(in <a href="apiclient.http.MediaUpload-class.html">MediaUpload</a>)</span></td>
</tr>
<tr>
<td width="33%" class="link-index"><a href="oauth2client.client.SignedJwtAssertionCredentials-class.html#__init__">__init__()</a><br />
<span class="index-where">(in <a href="oauth2client.client.SignedJwtAssertionCredentials-class.html">SignedJwtAssertionCredentials</a>)</span></td>
-<td width="33%" class="link-index"><a href="oauth2client.multistore_file._MultiStore-class.html#_delete_credential">_delete_credential()</a><br />
-<span class="index-where">(in <a href="oauth2client.multistore_file._MultiStore-class.html" onclick="show_private();">_MultiStore</a>)</span></td>
+<td width="33%" class="link-index"><a href="oauth2client.appengine.OAuth2Decorator-class.html#_display_error_message">_display_error_message()</a><br />
+<span class="index-where">(in <a href="oauth2client.appengine.OAuth2Decorator-class.html">OAuth2Decorator</a>)</span></td>
<td width="33%" class="link-index"><a href="oauth2client.client.Credentials-class.html#_to_json">_to_json()</a><br />
<span class="index-where">(in <a href="oauth2client.client.Credentials-class.html">Credentials</a>)</span></td>
</tr>
<tr>
<td width="33%" class="link-index"><a href="oauth2client.crypt.Signer-class.html#__init__">__init__()</a><br />
<span class="index-where">(in <a href="oauth2client.crypt.Signer-class.html">Signer</a>)</span></td>
-<td width="33%" class="link-index"><a href="apiclient.http.BatchHttpRequest-class.html#_deserialize_response">_deserialize_response()</a><br />
-<span class="index-where">(in <a href="apiclient.http.BatchHttpRequest-class.html">BatchHttpRequest</a>)</span></td>
+<td width="33%" class="link-index"><a href="oauth2client.client.OAuth2Credentials-class.html#_do_refresh_request">_do_refresh_request()</a><br />
+<span class="index-where">(in <a href="oauth2client.client.OAuth2Credentials-class.html">OAuth2Credentials</a>)</span></td>
<td width="33%" class="link-index"><a href="apiclient.schema._SchemaToStruct-class.html#_to_str_impl">_to_str_impl()</a><br />
<span class="index-where">(in <a href="apiclient.schema._SchemaToStruct-class.html" onclick="show_private();">_SchemaToStruct</a>)</span></td>
</tr>
<tr>
<td width="33%" class="link-index"><a href="oauth2client.crypt.Verifier-class.html#__init__">__init__()</a><br />
<span class="index-where">(in <a href="oauth2client.crypt.Verifier-class.html">Verifier</a>)</span></td>
-<td width="33%" class="link-index"><a href="oauth2client.appengine.OAuth2Decorator-class.html#_display_error_message">_display_error_message()</a><br />
-<span class="index-where">(in <a href="oauth2client.appengine.OAuth2Decorator-class.html">OAuth2Decorator</a>)</span></td>
+<td width="33%" class="link-index"><a href="apiclient.http.BatchHttpRequest-class.html#_execute">_execute()</a><br />
+<span class="index-where">(in <a href="apiclient.http.BatchHttpRequest-class.html">BatchHttpRequest</a>)</span></td>
<td width="33%" class="link-index"><a href="oauth2client.multistore_file._MultiStore-class.html#_unlock">_unlock()</a><br />
<span class="index-where">(in <a href="oauth2client.multistore_file._MultiStore-class.html" onclick="show_private();">_MultiStore</a>)</span></td>
</tr>
<tr>
<td width="33%" class="link-index"><a href="oauth2client.django_orm.Storage-class.html#__init__">__init__()</a><br />
<span class="index-where">(in <a href="oauth2client.django_orm.Storage-class.html">Storage</a>)</span></td>
-<td width="33%" class="link-index"><a href="oauth2client.client.OAuth2Credentials-class.html#_do_refresh_request">_do_refresh_request()</a><br />
-<span class="index-where">(in <a href="oauth2client.client.OAuth2Credentials-class.html">OAuth2Credentials</a>)</span></td>
+<td width="33%" class="link-index"><a href="oauth2client.client-module.html#_extract_id_token">_extract_id_token()</a><br />
+<span class="index-where">(in <a href="oauth2client.client-module.html">oauth2client.client</a>)</span></td>
<td width="33%" class="link-index"><a href="oauth2client.multistore_file._MultiStore-class.html#_update_credential">_update_credential()</a><br />
<span class="index-where">(in <a href="oauth2client.multistore_file._MultiStore-class.html" onclick="show_private();">_MultiStore</a>)</span></td>
</tr>
<tr>
<td width="33%" class="link-index"><a href="oauth2client.file.Storage-class.html#__init__">__init__()</a><br />
<span class="index-where">(in <a href="oauth2client.file.Storage-class.html">Storage</a>)</span></td>
-<td width="33%" class="link-index"><a href="apiclient.http.BatchHttpRequest-class.html#_execute">_execute()</a><br />
-<span class="index-where">(in <a href="apiclient.http.BatchHttpRequest-class.html">BatchHttpRequest</a>)</span></td>
+<td width="33%" class="link-index"><a href="oauth2client.locked_file._FcntlOpener-class.html">_FcntlOpener</a><br />
+<span class="index-where">(in <a href="oauth2client.locked_file-module.html">oauth2client.locked_file</a>)</span></td>
<td width="33%" class="link-index"><a href="oauth2client.client.OAuth2Credentials-class.html#_updateFromCredential">_updateFromCredential()</a><br />
<span class="index-where">(in <a href="oauth2client.client.OAuth2Credentials-class.html">OAuth2Credentials</a>)</span></td>
</tr>
<tr>
-<td width="33%" class="link-index"><a href="oauth2client.multistore_file._MultiStore._Storage-class.html#__init__">__init__()</a><br />
-<span class="index-where">(in <a href="oauth2client.multistore_file._MultiStore._Storage-class.html" onclick="show_private();">_Storage</a>)</span></td>
-<td width="33%" class="link-index"><a href="oauth2client.client-module.html#_extract_id_token">_extract_id_token()</a><br />
-<span class="index-where">(in <a href="oauth2client.client-module.html">oauth2client.client</a>)</span></td>
+<td width="33%" class="link-index"><a href="oauth2client.locked_file.LockedFile-class.html#__init__">__init__()</a><br />
+<span class="index-where">(in <a href="oauth2client.locked_file.LockedFile-class.html">LockedFile</a>)</span></td>
+<td width="33%" class="link-index"><a href="apiclient.mimeparse-module.html#_filter_blank">_filter_blank()</a><br />
+<span class="index-where">(in <a href="apiclient.mimeparse-module.html">apiclient.mimeparse</a>)</span></td>
<td width="33%" class="link-index"><a href="oauth2client.client-module.html#_urlsafe_b64decode">_urlsafe_b64decode()</a><br />
<span class="index-where">(in <a href="oauth2client.client-module.html">oauth2client.client</a>)</span></td>
</tr>
<tr>
-<td width="33%" class="link-index"><a href="oauth2client.multistore_file._MultiStore-class.html#__init__">__init__()</a><br />
-<span class="index-where">(in <a href="oauth2client.multistore_file._MultiStore-class.html" onclick="show_private();">_MultiStore</a>)</span></td>
-<td width="33%" class="link-index"><a href="apiclient.mimeparse-module.html#_filter_blank">_filter_blank()</a><br />
-<span class="index-where">(in <a href="apiclient.mimeparse-module.html">apiclient.mimeparse</a>)</span></td>
+<td width="33%" class="link-index"><a href="oauth2client.locked_file._Opener-class.html#__init__">__init__()</a><br />
+<span class="index-where">(in <a href="oauth2client.locked_file._Opener-class.html" onclick="show_private();">_Opener</a>)</span></td>
+<td width="33%" class="link-index"><a href="oauth2client.client.AssertionCredentials-class.html#_generate_assertion">_generate_assertion()</a><br />
+<span class="index-where">(in <a href="oauth2client.client.AssertionCredentials-class.html">AssertionCredentials</a>)</span></td>
<td width="33%" class="link-index"><a href="oauth2client.crypt-module.html#_urlsafe_b64decode">_urlsafe_b64decode()</a><br />
<span class="index-where">(in <a href="oauth2client.crypt-module.html">oauth2client.crypt</a>)</span></td>
</tr>
<tr>
-<td width="33%" class="link-index"><a href="apiclient-module.html#__package__">__package__</a><br />
-<span class="index-where">(in <a href="apiclient-module.html">apiclient</a>)</span></td>
-<td width="33%" class="link-index"><a href="apiclient.discovery-module.html#_fix_method_name">_fix_method_name()</a><br />
-<span class="index-where">(in <a href="apiclient.discovery-module.html">apiclient.discovery</a>)</span></td>
+<td width="33%" class="link-index"><a href="oauth2client.multistore_file._MultiStore._Storage-class.html#__init__">__init__()</a><br />
+<span class="index-where">(in <a href="oauth2client.multistore_file._MultiStore._Storage-class.html" onclick="show_private();">_Storage</a>)</span></td>
+<td width="33%" class="link-index"><a href="oauth2client.client.SignedJwtAssertionCredentials-class.html#_generate_assertion">_generate_assertion()</a><br />
+<span class="index-where">(in <a href="oauth2client.client.SignedJwtAssertionCredentials-class.html">SignedJwtAssertionCredentials</a>)</span></td>
<td width="33%" class="link-index"><a href="oauth2client.crypt-module.html#_urlsafe_b64encode">_urlsafe_b64encode()</a><br />
<span class="index-where">(in <a href="oauth2client.crypt-module.html">oauth2client.crypt</a>)</span></td>
</tr>
<tr>
-<td width="33%" class="link-index"><a href="apiclient.contrib-module.html#__package__">__package__</a><br />
-<span class="index-where">(in <a href="apiclient.contrib-module.html">apiclient.contrib</a>)</span></td>
-<td width="33%" class="link-index"><a href="oauth2client.client.AssertionCredentials-class.html#_generate_assertion">_generate_assertion()</a><br />
+<td width="33%" class="link-index"><a href="oauth2client.multistore_file._MultiStore-class.html#__init__">__init__()</a><br />
+<span class="index-where">(in <a href="oauth2client.multistore_file._MultiStore-class.html" onclick="show_private();">_MultiStore</a>)</span></td>
+<td width="33%" class="link-index"><a href="oauth2client.client.AssertionCredentials-class.html#_generate_refresh_request_body">_generate_refresh_request_body()</a><br />
<span class="index-where">(in <a href="oauth2client.client.AssertionCredentials-class.html">AssertionCredentials</a>)</span></td>
<td width="33%" class="link-index"><a href="oauth2client.clientsecrets-module.html#_validate_clientsecrets">_validate_clientsecrets()</a><br />
<span class="index-where">(in <a href="oauth2client.clientsecrets-module.html">oauth2client.clientsecrets</a>)</span></td>
</tr>
<tr>
-<td width="33%" class="link-index"><a href="apiclient.contrib.latitude-module.html#__package__">__package__</a><br />
-<span class="index-where">(in <a href="apiclient.contrib.latitude-module.html">apiclient.contrib.latitude</a>)</span></td>
-<td width="33%" class="link-index"><a href="oauth2client.client.SignedJwtAssertionCredentials-class.html#_generate_assertion">_generate_assertion()</a><br />
-<span class="index-where">(in <a href="oauth2client.client.SignedJwtAssertionCredentials-class.html">SignedJwtAssertionCredentials</a>)</span></td>
+<td width="33%" class="link-index"><a href="apiclient-module.html#__package__">__package__</a><br />
+<span class="index-where">(in <a href="apiclient-module.html">apiclient</a>)</span></td>
+<td width="33%" class="link-index"><a href="oauth2client.client.OAuth2Credentials-class.html#_generate_refresh_request_body">_generate_refresh_request_body()</a><br />
+<span class="index-where">(in <a href="oauth2client.client.OAuth2Credentials-class.html">OAuth2Credentials</a>)</span></td>
<td width="33%" class="link-index"><a href="oauth2client.multistore_file._MultiStore-class.html#_write">_write()</a><br />
<span class="index-where">(in <a href="oauth2client.multistore_file._MultiStore-class.html" onclick="show_private();">_MultiStore</a>)</span></td>
</tr>
<tr>
-<td width="33%" class="link-index"><a href="apiclient.contrib.moderator-module.html#__package__">__package__</a><br />
-<span class="index-where">(in <a href="apiclient.contrib.moderator-module.html">apiclient.contrib.moderator</a>)</span></td>
-<td width="33%" class="link-index"><a href="oauth2client.client.AssertionCredentials-class.html#_generate_refresh_request_body">_generate_refresh_request_body()</a><br />
-<span class="index-where">(in <a href="oauth2client.client.AssertionCredentials-class.html">AssertionCredentials</a>)</span></td>
-<td width="33%" class="link-index"><a href="apiclient.discovery-module.html#_write_headers">_write_headers()</a><br />
+<td width="33%" class="link-index"><a href="apiclient.discovery-module.html#__package__">__package__</a><br />
<span class="index-where">(in <a href="apiclient.discovery-module.html">apiclient.discovery</a>)</span></td>
+<td width="33%" class="link-index"><a href="oauth2client.client.OAuth2Credentials-class.html#_generate_refresh_request_headers">_generate_refresh_request_headers()</a><br />
+<span class="index-where">(in <a href="oauth2client.client.OAuth2Credentials-class.html">OAuth2Credentials</a>)</span></td>
+<td width="33%" class="link-index"> </td>
+</tr>
+<tr>
+<td width="33%" class="link-index"><a href="apiclient.errors-module.html#__package__">__package__</a><br />
+<span class="index-where">(in <a href="apiclient.errors-module.html">apiclient.errors</a>)</span></td>
+<td width="33%" class="link-index"><a href="oauth2client.multistore_file._MultiStore-class.html#_get_credential">_get_credential()</a><br />
+<span class="index-where">(in <a href="oauth2client.multistore_file._MultiStore-class.html" onclick="show_private();">_MultiStore</a>)</span></td>
+<td width="33%" class="link-index"> </td>
</tr>
</table>
</td></tr>
@@ -1330,7 +1395,7 @@
<table border="0" cellpadding="0" cellspacing="0" width="100%%">
<tr>
<td align="left" class="footer">
- Generated by Epydoc 3.0.1 on Tue Jun 5 09:03:04 2012
+ Generated by Epydoc 3.0.1 on Thu Jun 14 08:01:54 2012
</td>
<td align="right" class="footer">
<a target="mainFrame" href="http://epydoc.sourceforge.net"
diff --git a/docs/epy/mimetools.Message-class.html b/docs/epy/mimetools.Message-class.html
index 2859d17..a010d8c 100644
--- a/docs/epy/mimetools.Message-class.html
+++ b/docs/epy/mimetools.Message-class.html
@@ -379,7 +379,7 @@
<table border="0" cellpadding="0" cellspacing="0" width="100%%">
<tr>
<td align="left" class="footer">
- Generated by Epydoc 3.0.1 on Tue Jun 5 09:03:08 2012
+ Generated by Epydoc 3.0.1 on Thu Jun 14 08:01:56 2012
</td>
<td align="right" class="footer">
<a target="mainFrame" href="http://epydoc.sourceforge.net"
diff --git a/docs/epy/module-tree.html b/docs/epy/module-tree.html
index 13daa3e..87bff80 100644
--- a/docs/epy/module-tree.html
+++ b/docs/epy/module-tree.html
@@ -54,12 +54,6 @@
<ul class="nomargin-top">
<li> <strong class="uidlink"><a href="apiclient-module.html">apiclient</a></strong>
<ul>
- <li> <strong class="uidlink"><a href="apiclient.contrib-module.html">apiclient.contrib</a></strong>
- <ul>
- <li> <strong class="uidlink"><a href="apiclient.contrib.latitude-module.html">apiclient.contrib.latitude</a></strong> </li>
- <li> <strong class="uidlink"><a href="apiclient.contrib.moderator-module.html">apiclient.contrib.moderator</a></strong> </li>
- </ul>
- </li>
<li> <strong class="uidlink"><a href="apiclient.discovery-module.html">apiclient.discovery</a></strong>: <em class="summary">Client for discovery based APIs</em> </li>
<li> <strong class="uidlink"><a href="apiclient.errors-module.html">apiclient.errors</a></strong>: <em class="summary">Errors for the library.</em> </li>
<li> <strong class="uidlink"><a href="apiclient.ext-module.html">apiclient.ext</a></strong> </li>
@@ -78,6 +72,7 @@
<li> <strong class="uidlink"><a href="oauth2client.crypt-module.html">oauth2client.crypt</a></strong> </li>
<li> <strong class="uidlink"><a href="oauth2client.django_orm-module.html">oauth2client.django_orm</a></strong>: <em class="summary">OAuth 2.0 utilities for Django.</em> </li>
<li> <strong class="uidlink"><a href="oauth2client.file-module.html">oauth2client.file</a></strong>: <em class="summary">Utilities for OAuth.</em> </li>
+ <li> <strong class="uidlink"><a href="oauth2client.locked_file-module.html">oauth2client.locked_file</a></strong>: <em class="summary">Locked file interface that should work on Unix and Windows pythons.</em> </li>
<li> <strong class="uidlink"><a href="oauth2client.multistore_file-module.html">oauth2client.multistore_file</a></strong>: <em class="summary">Multi-credential file store with lock support.</em> </li>
<li> <strong class="uidlink"><a href="oauth2client.tools-module.html">oauth2client.tools</a></strong>: <em class="summary">Command-line tools for authenticating via OAuth 2.0</em> </li>
</ul>
@@ -106,7 +101,7 @@
<table border="0" cellpadding="0" cellspacing="0" width="100%%">
<tr>
<td align="left" class="footer">
- Generated by Epydoc 3.0.1 on Tue Jun 5 09:03:04 2012
+ Generated by Epydoc 3.0.1 on Thu Jun 14 08:01:54 2012
</td>
<td align="right" class="footer">
<a target="mainFrame" href="http://epydoc.sourceforge.net"
diff --git a/docs/epy/oauth2client-module.html b/docs/epy/oauth2client-module.html
index 173cd89..df48d7c 100644
--- a/docs/epy/oauth2client-module.html
+++ b/docs/epy/oauth2client-module.html
@@ -82,6 +82,7 @@
<li> <strong class="uidlink"><a href="oauth2client.crypt-module.html">oauth2client.crypt</a></strong> </li>
<li> <strong class="uidlink"><a href="oauth2client.django_orm-module.html">oauth2client.django_orm</a></strong>: <em class="summary">OAuth 2.0 utilities for Django.</em> </li>
<li> <strong class="uidlink"><a href="oauth2client.file-module.html">oauth2client.file</a></strong>: <em class="summary">Utilities for OAuth.</em> </li>
+ <li> <strong class="uidlink"><a href="oauth2client.locked_file-module.html">oauth2client.locked_file</a></strong>: <em class="summary">Locked file interface that should work on Unix and Windows pythons.</em> </li>
<li> <strong class="uidlink"><a href="oauth2client.multistore_file-module.html">oauth2client.multistore_file</a></strong>: <em class="summary">Multi-credential file store with lock support.</em> </li>
<li> <strong class="uidlink"><a href="oauth2client.tools-module.html">oauth2client.tools</a></strong>: <em class="summary">Command-line tools for authenticating via OAuth 2.0</em> </li>
</ul></td></tr>
@@ -136,7 +137,7 @@
<table border="0" cellpadding="0" cellspacing="0" width="100%%">
<tr>
<td align="left" class="footer">
- Generated by Epydoc 3.0.1 on Tue Jun 5 09:03:05 2012
+ Generated by Epydoc 3.0.1 on Thu Jun 14 08:01:54 2012
</td>
<td align="right" class="footer">
<a target="mainFrame" href="http://epydoc.sourceforge.net"
diff --git a/docs/epy/oauth2client-pysrc.html b/docs/epy/oauth2client-pysrc.html
index a111d3a..81d06f3 100644
--- a/docs/epy/oauth2client-pysrc.html
+++ b/docs/epy/oauth2client-pysrc.html
@@ -83,7 +83,7 @@
<table border="0" cellpadding="0" cellspacing="0" width="100%%">
<tr>
<td align="left" class="footer">
- Generated by Epydoc 3.0.1 on Tue Jun 5 09:03:12 2012
+ Generated by Epydoc 3.0.1 on Thu Jun 14 08:01:59 2012
</td>
<td align="right" class="footer">
<a target="mainFrame" href="http://epydoc.sourceforge.net"
diff --git a/docs/epy/oauth2client.anyjson-module.html b/docs/epy/oauth2client.anyjson-module.html
index 64e3f28..a147981 100644
--- a/docs/epy/oauth2client.anyjson-module.html
+++ b/docs/epy/oauth2client.anyjson-module.html
@@ -113,7 +113,7 @@
<table border="0" cellpadding="0" cellspacing="0" width="100%%">
<tr>
<td align="left" class="footer">
- Generated by Epydoc 3.0.1 on Tue Jun 5 09:03:05 2012
+ Generated by Epydoc 3.0.1 on Thu Jun 14 08:01:54 2012
</td>
<td align="right" class="footer">
<a target="mainFrame" href="http://epydoc.sourceforge.net"
diff --git a/docs/epy/oauth2client.anyjson-pysrc.html b/docs/epy/oauth2client.anyjson-pysrc.html
index 5284fdc..dc94721 100644
--- a/docs/epy/oauth2client.anyjson-pysrc.html
+++ b/docs/epy/oauth2client.anyjson-pysrc.html
@@ -115,7 +115,7 @@
<table border="0" cellpadding="0" cellspacing="0" width="100%%">
<tr>
<td align="left" class="footer">
- Generated by Epydoc 3.0.1 on Tue Jun 5 09:03:11 2012
+ Generated by Epydoc 3.0.1 on Thu Jun 14 08:01:59 2012
</td>
<td align="right" class="footer">
<a target="mainFrame" href="http://epydoc.sourceforge.net"
diff --git a/docs/epy/oauth2client.appengine-module.html b/docs/epy/oauth2client.appengine-module.html
index 852b03d..19b4222 100644
--- a/docs/epy/oauth2client.appengine-module.html
+++ b/docs/epy/oauth2client.appengine-module.html
@@ -361,7 +361,7 @@
<table border="0" cellpadding="0" cellspacing="0" width="100%%">
<tr>
<td align="left" class="footer">
- Generated by Epydoc 3.0.1 on Tue Jun 5 09:03:05 2012
+ Generated by Epydoc 3.0.1 on Thu Jun 14 08:01:54 2012
</td>
<td align="right" class="footer">
<a target="mainFrame" href="http://epydoc.sourceforge.net"
diff --git a/docs/epy/oauth2client.appengine-pysrc.html b/docs/epy/oauth2client.appengine-pysrc.html
index b7f00b2..de55125 100644
--- a/docs/epy/oauth2client.appengine-pysrc.html
+++ b/docs/epy/oauth2client.appengine-pysrc.html
@@ -130,7 +130,7 @@
<a name="L73"></a><tt class="py-lineno"> 73</tt> <tt class="py-line"> <tt class="py-name">scope</tt> <tt class="py-op">=</tt> <tt class="py-string">' '</tt><tt class="py-op">.</tt><tt class="py-name">join</tt><tt class="py-op">(</tt><tt class="py-name">scope</tt><tt class="py-op">)</tt> </tt>
<a name="L74"></a><tt class="py-lineno"> 74</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">scope</tt> <tt class="py-op">=</tt> <tt class="py-name">scope</tt> </tt>
<a name="L75"></a><tt class="py-lineno"> 75</tt> <tt class="py-line"> </tt>
-<a name="L76"></a><tt class="py-lineno"> 76</tt> <tt class="py-line"> <tt class="py-name">super</tt><tt class="py-op">(</tt><tt id="link-26" class="py-name" targets="Class oauth2client.appengine.AppAssertionCredentials=oauth2client.appengine.AppAssertionCredentials-class.html"><a title="oauth2client.appengine.AppAssertionCredentials" class="py-name" href="#" onclick="return doclink('link-26', 'AppAssertionCredentials', 'link-26');">AppAssertionCredentials</a></tt><tt class="py-op">,</tt> <tt class="py-name">self</tt><tt class="py-op">)</tt><tt class="py-op">.</tt><tt id="link-27" class="py-name" targets="Method apiclient.errors.BatchError.__init__()=apiclient.errors.BatchError-class.html#__init__,Method apiclient.errors.HttpError.__init__()=apiclient.errors.HttpError-class.html#__init__,Method apiclient.errors.UnexpectedBodyError.__init__()=apiclient.errors.UnexpectedBodyError-class.html#__init__,Method apiclient.errors.UnexpectedMethodError.__init__()=apiclient.errors.UnexpectedMethodError-class.html#__init__,Method apiclient.http.BatchHttpRequest.__init__()=apiclient.http.BatchHttpRequest-class.html#__init__,Method apiclient.http.HttpMock.__init__()=apiclient.http.HttpMock-class.html#__init__,Method apiclient.http.HttpMockSequence.__init__()=apiclient.http.HttpMockSequence-class.html#__init__,Method apiclient.http.HttpRequest.__init__()=apiclient.http.HttpRequest-class.html#__init__,Method apiclient.http.HttpRequestMock.__init__()=apiclient.http.HttpRequestMock-class.html#__init__,Method apiclient.http.MediaFileUpload.__init__()=apiclient.http.MediaFileUpload-class.html#__init__,Method apiclient.http.MediaInMemoryUpload.__init__()=apiclient.http.MediaInMemoryUpload-class.html#__init__,Method apiclient.http.MediaUploadProgress.__init__()=apiclient.http.MediaUploadProgress-class.html#__init__,Method apiclient.http.RequestMockBuilder.__init__()=apiclient.http.RequestMockBuilder-class.html#__init__,Method apiclient.model.JsonModel.__init__()=apiclient.model.JsonModel-class.html#__init__,Method apiclient.model.ProtocolBufferModel.__init__()=apiclient.model.ProtocolBufferModel-class.html#__init__,Method apiclient.schema.Schemas.__init__()=apiclient.schema.Schemas-class.html#__init__,Method apiclient.schema._SchemaToStruct.__init__()=apiclient.schema._SchemaToStruct-class.html#__init__,Method oauth2client.appengine.AppAssertionCredentials.__init__()=oauth2client.appengine.AppAssertionCredentials-class.html#__init__,Method oauth2client.appengine.OAuth2Decorator.__init__()=oauth2client.appengine.OAuth2Decorator-class.html#__init__,Method oauth2client.appengine.OAuth2DecoratorFromClientSecrets.__init__()=oauth2client.appengine.OAuth2DecoratorFromClientSecrets-class.html#__init__,Method oauth2client.appengine.StorageByKeyName.__init__()=oauth2client.appengine.StorageByKeyName-class.html#__init__,Method oauth2client.client.AccessTokenCredentials.__init__()=oauth2client.client.AccessTokenCredentials-class.html#__init__,Method oauth2client.client.AssertionCredentials.__init__()=oauth2client.client.AssertionCredentials-class.html#__init__,Method oauth2client.client.MemoryCache.__init__()=oauth2client.client.MemoryCache-class.html#__init__,Method oauth2client.client.OAuth2Credentials.__init__()=oauth2client.client.OAuth2Credentials-class.html#__init__,Method oauth2client.client.OAuth2WebServerFlow.__init__()=oauth2client.client.OAuth2WebServerFlow-class.html#__init__,Method oauth2client.client.SignedJwtAssertionCredentials.__init__()=oauth2client.client.SignedJwtAssertionCredentials-class.html#__init__,Method oauth2client.crypt.Signer.__init__()=oauth2client.crypt.Signer-class.html#__init__,Method oauth2client.crypt.Verifier.__init__()=oauth2client.crypt.Verifier-class.html#__init__,Method oauth2client.django_orm.Storage.__init__()=oauth2client.django_orm.Storage-class.html#__init__,Method oauth2client.file.Storage.__init__()=oauth2client.file.Storage-class.html#__init__,Method oauth2client.multistore_file._MultiStore._Storage.__init__()=oauth2client.multistore_file._MultiStore._Storage-class.html#__init__,Method oauth2client.multistore_file._MultiStore.__init__()=oauth2client.multistore_file._MultiStore-class.html#__init__"><a title="apiclient.errors.BatchError.__init__
+<a name="L76"></a><tt class="py-lineno"> 76</tt> <tt class="py-line"> <tt class="py-name">super</tt><tt class="py-op">(</tt><tt id="link-26" class="py-name" targets="Class oauth2client.appengine.AppAssertionCredentials=oauth2client.appengine.AppAssertionCredentials-class.html"><a title="oauth2client.appengine.AppAssertionCredentials" class="py-name" href="#" onclick="return doclink('link-26', 'AppAssertionCredentials', 'link-26');">AppAssertionCredentials</a></tt><tt class="py-op">,</tt> <tt class="py-name">self</tt><tt class="py-op">)</tt><tt class="py-op">.</tt><tt id="link-27" class="py-name" targets="Method apiclient.errors.BatchError.__init__()=apiclient.errors.BatchError-class.html#__init__,Method apiclient.errors.HttpError.__init__()=apiclient.errors.HttpError-class.html#__init__,Method apiclient.errors.UnexpectedBodyError.__init__()=apiclient.errors.UnexpectedBodyError-class.html#__init__,Method apiclient.errors.UnexpectedMethodError.__init__()=apiclient.errors.UnexpectedMethodError-class.html#__init__,Method apiclient.http.BatchHttpRequest.__init__()=apiclient.http.BatchHttpRequest-class.html#__init__,Method apiclient.http.HttpMock.__init__()=apiclient.http.HttpMock-class.html#__init__,Method apiclient.http.HttpMockSequence.__init__()=apiclient.http.HttpMockSequence-class.html#__init__,Method apiclient.http.HttpRequest.__init__()=apiclient.http.HttpRequest-class.html#__init__,Method apiclient.http.HttpRequestMock.__init__()=apiclient.http.HttpRequestMock-class.html#__init__,Method apiclient.http.MediaFileUpload.__init__()=apiclient.http.MediaFileUpload-class.html#__init__,Method apiclient.http.MediaInMemoryUpload.__init__()=apiclient.http.MediaInMemoryUpload-class.html#__init__,Method apiclient.http.MediaIoBaseUpload.__init__()=apiclient.http.MediaIoBaseUpload-class.html#__init__,Method apiclient.http.MediaUploadProgress.__init__()=apiclient.http.MediaUploadProgress-class.html#__init__,Method apiclient.http.RequestMockBuilder.__init__()=apiclient.http.RequestMockBuilder-class.html#__init__,Method apiclient.model.JsonModel.__init__()=apiclient.model.JsonModel-class.html#__init__,Method apiclient.model.ProtocolBufferModel.__init__()=apiclient.model.ProtocolBufferModel-class.html#__init__,Method apiclient.schema.Schemas.__init__()=apiclient.schema.Schemas-class.html#__init__,Method apiclient.schema._SchemaToStruct.__init__()=apiclient.schema._SchemaToStruct-class.html#__init__,Method oauth2client.appengine.AppAssertionCredentials.__init__()=oauth2client.appengine.AppAssertionCredentials-class.html#__init__,Method oauth2client.appengine.OAuth2Decorator.__init__()=oauth2client.appengine.OAuth2Decorator-class.html#__init__,Method oauth2client.appengine.OAuth2DecoratorFromClientSecrets.__init__()=oauth2client.appengine.OAuth2DecoratorFromClientSecrets-class.html#__init__,Method oauth2client.appengine.StorageByKeyName.__init__()=oauth2client.appengine.StorageByKeyName-class.html#__init__,Method oauth2client.client.AccessTokenCredentials.__init__()=oauth2client.client.AccessTokenCredentials-class.html#__init__,Method oauth2client.client.AssertionCredentials.__init__()=oauth2client.client.AssertionCredentials-class.html#__init__,Method oauth2client.client.MemoryCache.__init__()=oauth2client.client.MemoryCache-class.html#__init__,Method oauth2client.client.OAuth2Credentials.__init__()=oauth2client.client.OAuth2Credentials-class.html#__init__,Method oauth2client.client.OAuth2WebServerFlow.__init__()=oauth2client.client.OAuth2WebServerFlow-class.html#__init__,Method oauth2client.client.SignedJwtAssertionCredentials.__init__()=oauth2client.client.SignedJwtAssertionCredentials-class.html#__init__,Method oauth2client.crypt.Signer.__init__()=oauth2client.crypt.Signer-class.html#__init__,Method oauth2client.crypt.Verifier.__init__()=oauth2client.crypt.Verifier-class.html#__init__,Method oauth2client.django_orm.Storage.__init__()=oauth2client.django_orm.Storage-class.html#__init__,Method oauth2client.file.Storage.__init__()=oauth2client.file.Storage-class.html#__init__,Method oauth2client.locked_file.LockedFile.__init__()=oauth2client.locked_file.LockedFile-class.html#__init__,Method oauth2client.locked_file._Opener.__init__()=oauth2client.locked_file._Opener-class.html#__init__,Method oauth2client.multistore_file._MultiStore._Storage.__init__()=oauth2client.multistore_file._MultiStore._Storage-class.html#__init__,Method oauth2client.multistore_file._MultiStore.__init__()=oauth2client.multistore_file._MultiStore-class.html#__init__"><a title="apiclient.errors.BatchError.__init__
apiclient.errors.HttpError.__init__
apiclient.errors.UnexpectedBodyError.__init__
apiclient.errors.UnexpectedMethodError.__init__
@@ -141,6 +141,7 @@
apiclient.http.HttpRequestMock.__init__
apiclient.http.MediaFileUpload.__init__
apiclient.http.MediaInMemoryUpload.__init__
+apiclient.http.MediaIoBaseUpload.__init__
apiclient.http.MediaUploadProgress.__init__
apiclient.http.RequestMockBuilder.__init__
apiclient.model.JsonModel.__init__
@@ -161,6 +162,8 @@
oauth2client.crypt.Verifier.__init__
oauth2client.django_orm.Storage.__init__
oauth2client.file.Storage.__init__
+oauth2client.locked_file.LockedFile.__init__
+oauth2client.locked_file._Opener.__init__
oauth2client.multistore_file._MultiStore._Storage.__init__
oauth2client.multistore_file._MultiStore.__init__" class="py-name" href="#" onclick="return doclink('link-27', '__init__', 'link-27');">__init__</a></tt><tt class="py-op">(</tt> </tt>
<a name="L77"></a><tt class="py-lineno"> 77</tt> <tt class="py-line"> <tt class="py-name">None</tt><tt class="py-op">,</tt> </tt>
@@ -249,9 +252,10 @@
<a name="L154"></a><tt class="py-lineno">154</tt> <tt class="py-line"> <tt class="py-keyword">if</tt> <tt class="py-name">cred</tt> <tt class="py-keyword">is</tt> <tt class="py-name">None</tt><tt class="py-op">:</tt> </tt>
<a name="L155"></a><tt class="py-lineno">155</tt> <tt class="py-line"> <tt class="py-name">cred</tt> <tt class="py-op">=</tt> <tt class="py-string">''</tt> </tt>
<a name="L156"></a><tt class="py-lineno">156</tt> <tt class="py-line"> <tt class="py-keyword">else</tt><tt class="py-op">:</tt> </tt>
-<a name="L157"></a><tt class="py-lineno">157</tt> <tt class="py-line"> <tt class="py-name">cred</tt> <tt class="py-op">=</tt> <tt class="py-name">cred</tt><tt class="py-op">.</tt><tt id="link-42" class="py-name" targets="Method apiclient.http.HttpRequest.to_json()=apiclient.http.HttpRequest-class.html#to_json,Method apiclient.http.MediaFileUpload.to_json()=apiclient.http.MediaFileUpload-class.html#to_json,Method apiclient.http.MediaInMemoryUpload.to_json()=apiclient.http.MediaInMemoryUpload-class.html#to_json,Method apiclient.http.MediaUpload.to_json()=apiclient.http.MediaUpload-class.html#to_json,Method oauth2client.client.Credentials.to_json()=oauth2client.client.Credentials-class.html#to_json,Method oauth2client.client.OAuth2Credentials.to_json()=oauth2client.client.OAuth2Credentials-class.html#to_json"><a title="apiclient.http.HttpRequest.to_json
+<a name="L157"></a><tt class="py-lineno">157</tt> <tt class="py-line"> <tt class="py-name">cred</tt> <tt class="py-op">=</tt> <tt class="py-name">cred</tt><tt class="py-op">.</tt><tt id="link-42" class="py-name" targets="Method apiclient.http.HttpRequest.to_json()=apiclient.http.HttpRequest-class.html#to_json,Method apiclient.http.MediaFileUpload.to_json()=apiclient.http.MediaFileUpload-class.html#to_json,Method apiclient.http.MediaInMemoryUpload.to_json()=apiclient.http.MediaInMemoryUpload-class.html#to_json,Method apiclient.http.MediaIoBaseUpload.to_json()=apiclient.http.MediaIoBaseUpload-class.html#to_json,Method apiclient.http.MediaUpload.to_json()=apiclient.http.MediaUpload-class.html#to_json,Method oauth2client.client.Credentials.to_json()=oauth2client.client.Credentials-class.html#to_json,Method oauth2client.client.OAuth2Credentials.to_json()=oauth2client.client.OAuth2Credentials-class.html#to_json"><a title="apiclient.http.HttpRequest.to_json
apiclient.http.MediaFileUpload.to_json
apiclient.http.MediaInMemoryUpload.to_json
+apiclient.http.MediaIoBaseUpload.to_json
apiclient.http.MediaUpload.to_json
oauth2client.client.Credentials.to_json
oauth2client.client.OAuth2Credentials.to_json" class="py-name" href="#" onclick="return doclink('link-42', 'to_json', 'link-42');">to_json</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
@@ -333,6 +337,7 @@
<a name="L227"></a><tt class="py-lineno">227</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">_cache</tt><tt class="py-op">.</tt><tt id="link-56" class="py-name" targets="Method oauth2client.client.MemoryCache.set()=oauth2client.client.MemoryCache-class.html#set"><a title="oauth2client.client.MemoryCache.set" class="py-name" href="#" onclick="return doclink('link-56', 'set', 'link-56');">set</a></tt><tt class="py-op">(</tt><tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">_key_name</tt><tt class="py-op">,</tt> <tt class="py-name">credential</tt><tt class="py-op">.</tt><tt id="link-57" class="py-name"><a title="apiclient.http.HttpRequest.to_json
apiclient.http.MediaFileUpload.to_json
apiclient.http.MediaInMemoryUpload.to_json
+apiclient.http.MediaIoBaseUpload.to_json
apiclient.http.MediaUpload.to_json
oauth2client.client.Credentials.to_json
oauth2client.client.OAuth2Credentials.to_json" class="py-name" href="#" onclick="return doclink('link-57', 'to_json', 'link-42');">to_json</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
@@ -352,6 +357,7 @@
<a name="L241"></a><tt class="py-lineno">241</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">_cache</tt><tt class="py-op">.</tt><tt id="link-60" class="py-name"><a title="oauth2client.client.MemoryCache.set" class="py-name" href="#" onclick="return doclink('link-60', 'set', 'link-56');">set</a></tt><tt class="py-op">(</tt><tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">_key_name</tt><tt class="py-op">,</tt> <tt id="link-61" class="py-name"><a title="oauth2client.appengine.CredentialsModel.credentials" class="py-name" href="#" onclick="return doclink('link-61', 'credentials', 'link-43');">credentials</a></tt><tt class="py-op">.</tt><tt id="link-62" class="py-name"><a title="apiclient.http.HttpRequest.to_json
apiclient.http.MediaFileUpload.to_json
apiclient.http.MediaInMemoryUpload.to_json
+apiclient.http.MediaIoBaseUpload.to_json
apiclient.http.MediaUpload.to_json
oauth2client.client.Credentials.to_json
oauth2client.client.OAuth2Credentials.to_json" class="py-name" href="#" onclick="return doclink('link-62', 'to_json', 'link-42');">to_json</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
@@ -599,12 +605,13 @@
<a name="L456"></a><tt class="py-lineno">456</tt> <tt class="py-line"><tt class="py-docstring"> decorator.</tt> </tt>
<a name="L457"></a><tt class="py-lineno">457</tt> <tt class="py-line"><tt class="py-docstring"> """</tt> </tt>
<a name="L458"></a><tt class="py-lineno">458</tt> <tt class="py-line"> <tt class="py-keyword">try</tt><tt class="py-op">:</tt> </tt>
-<a name="L459"></a><tt class="py-lineno">459</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-98" class="py-name"><a title="oauth2client.clientsecrets" class="py-name" href="#" onclick="return doclink('link-98', 'clientsecrets', 'link-0');">clientsecrets</a></tt><tt class="py-op">.</tt><tt id="link-99" 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-99', 'loadfile', 'link-99');">loadfile</a></tt><tt class="py-op">(</tt><tt class="py-name">filename</tt><tt class="py-op">)</tt> </tt>
-<a name="L460"></a><tt class="py-lineno">460</tt> <tt class="py-line"> <tt class="py-keyword">if</tt> <tt class="py-name">client_type</tt> <tt class="py-keyword">not</tt> <tt class="py-keyword">in</tt> <tt class="py-op">[</tt><tt id="link-100" class="py-name"><a title="oauth2client.clientsecrets" class="py-name" href="#" onclick="return doclink('link-100', 'clientsecrets', 'link-0');">clientsecrets</a></tt><tt class="py-op">.</tt><tt id="link-101" 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-101', 'TYPE_WEB', 'link-101');">TYPE_WEB</a></tt><tt class="py-op">,</tt> <tt id="link-102" class="py-name"><a title="oauth2client.clientsecrets" class="py-name" href="#" onclick="return doclink('link-102', 'clientsecrets', 'link-0');">clientsecrets</a></tt><tt class="py-op">.</tt><tt id="link-103" 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-103', 'TYPE_INSTALLED', 'link-103');">TYPE_INSTALLED</a></tt><tt class="py-op">]</tt><tt class="py-op">:</tt> </tt>
-<a name="L461"></a><tt class="py-lineno">461</tt> <tt class="py-line"> <tt class="py-keyword">raise</tt> <tt id="link-104" 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-104', 'InvalidClientSecretsError', 'link-104');">InvalidClientSecretsError</a></tt><tt class="py-op">(</tt><tt class="py-string">'OAuth2Decorator doesn\'t support this OAuth 2.0 flow.'</tt><tt class="py-op">)</tt> </tt>
-<a name="L462"></a><tt class="py-lineno">462</tt> <tt class="py-line"> <tt class="py-name">super</tt><tt class="py-op">(</tt><tt id="link-105" class="py-name" targets="Class oauth2client.appengine.OAuth2DecoratorFromClientSecrets=oauth2client.appengine.OAuth2DecoratorFromClientSecrets-class.html"><a title="oauth2client.appengine.OAuth2DecoratorFromClientSecrets" class="py-name" href="#" onclick="return doclink('link-105', 'OAuth2DecoratorFromClientSecrets', 'link-105');">OAuth2DecoratorFromClientSecrets</a></tt><tt class="py-op">,</tt> </tt>
-<a name="L463"></a><tt class="py-lineno">463</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">)</tt><tt class="py-op">.</tt><tt id="link-106" class="py-name"><a title="apiclient.errors.BatchError.__init__
+<a name="L459"></a><tt class="py-lineno">459</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-98" class="py-name"><a title="oauth2client.clientsecrets" class="py-name" href="#" onclick="return doclink('link-98', 'clientsecrets', 'link-0');">clientsecrets</a></tt><tt class="py-op">.</tt><tt id="link-99" 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-99', 'loadfile', 'link-99');">loadfile</a></tt><tt class="py-op">(</tt><tt id="link-100" 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-100', 'filename', 'link-100');">filename</a></tt><tt class="py-op">)</tt> </tt>
+<a name="L460"></a><tt class="py-lineno">460</tt> <tt class="py-line"> <tt class="py-keyword">if</tt> <tt class="py-name">client_type</tt> <tt class="py-keyword">not</tt> <tt class="py-keyword">in</tt> <tt class="py-op">[</tt><tt id="link-101" class="py-name"><a title="oauth2client.clientsecrets" class="py-name" href="#" onclick="return doclink('link-101', 'clientsecrets', 'link-0');">clientsecrets</a></tt><tt class="py-op">.</tt><tt id="link-102" 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-102', 'TYPE_WEB', 'link-102');">TYPE_WEB</a></tt><tt class="py-op">,</tt> <tt id="link-103" class="py-name"><a title="oauth2client.clientsecrets" class="py-name" href="#" onclick="return doclink('link-103', 'clientsecrets', 'link-0');">clientsecrets</a></tt><tt class="py-op">.</tt><tt id="link-104" 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-104', 'TYPE_INSTALLED', 'link-104');">TYPE_INSTALLED</a></tt><tt class="py-op">]</tt><tt class="py-op">:</tt> </tt>
+<a name="L461"></a><tt class="py-lineno">461</tt> <tt class="py-line"> <tt class="py-keyword">raise</tt> <tt id="link-105" 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-105', 'InvalidClientSecretsError', 'link-105');">InvalidClientSecretsError</a></tt><tt class="py-op">(</tt><tt class="py-string">'OAuth2Decorator doesn\'t support this OAuth 2.0 flow.'</tt><tt class="py-op">)</tt> </tt>
+<a name="L462"></a><tt class="py-lineno">462</tt> <tt class="py-line"> <tt class="py-name">super</tt><tt class="py-op">(</tt><tt id="link-106" class="py-name" targets="Class oauth2client.appengine.OAuth2DecoratorFromClientSecrets=oauth2client.appengine.OAuth2DecoratorFromClientSecrets-class.html"><a title="oauth2client.appengine.OAuth2DecoratorFromClientSecrets" class="py-name" href="#" onclick="return doclink('link-106', 'OAuth2DecoratorFromClientSecrets', 'link-106');">OAuth2DecoratorFromClientSecrets</a></tt><tt class="py-op">,</tt> </tt>
+<a name="L463"></a><tt class="py-lineno">463</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">)</tt><tt class="py-op">.</tt><tt id="link-107" class="py-name"><a title="apiclient.errors.BatchError.__init__
apiclient.errors.HttpError.__init__
apiclient.errors.UnexpectedBodyError.__init__
apiclient.errors.UnexpectedMethodError.__init__
@@ -615,6 +622,7 @@
apiclient.http.HttpRequestMock.__init__
apiclient.http.MediaFileUpload.__init__
apiclient.http.MediaInMemoryUpload.__init__
+apiclient.http.MediaIoBaseUpload.__init__
apiclient.http.MediaUploadProgress.__init__
apiclient.http.RequestMockBuilder.__init__
apiclient.model.JsonModel.__init__
@@ -635,16 +643,18 @@
oauth2client.crypt.Verifier.__init__
oauth2client.django_orm.Storage.__init__
oauth2client.file.Storage.__init__
+oauth2client.locked_file.LockedFile.__init__
+oauth2client.locked_file._Opener.__init__
oauth2client.multistore_file._MultiStore._Storage.__init__
-oauth2client.multistore_file._MultiStore.__init__" class="py-name" href="#" onclick="return doclink('link-106', '__init__', 'link-27');">__init__</a></tt><tt class="py-op">(</tt> </tt>
+oauth2client.multistore_file._MultiStore.__init__" class="py-name" href="#" onclick="return doclink('link-107', '__init__', 'link-27');">__init__</a></tt><tt class="py-op">(</tt> </tt>
<a name="L464"></a><tt class="py-lineno">464</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="L465"></a><tt class="py-lineno">465</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="L466"></a><tt class="py-lineno">466</tt> <tt class="py-line"> <tt class="py-name">scope</tt><tt class="py-op">,</tt> </tt>
<a name="L467"></a><tt class="py-lineno">467</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="L468"></a><tt class="py-lineno">468</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="L469"></a><tt class="py-lineno">469</tt> <tt class="py-line"> <tt class="py-name">message</tt><tt class="py-op">)</tt> </tt>
-<a name="L470"></a><tt class="py-lineno">470</tt> <tt class="py-line"> <tt class="py-keyword">except</tt> <tt id="link-107" class="py-name"><a title="oauth2client.clientsecrets" class="py-name" href="#" onclick="return doclink('link-107', 'clientsecrets', 'link-0');">clientsecrets</a></tt><tt class="py-op">.</tt><tt id="link-108" class="py-name"><a title="oauth2client.appengine.InvalidClientSecretsError
-oauth2client.clientsecrets.InvalidClientSecretsError" class="py-name" href="#" onclick="return doclink('link-108', 'InvalidClientSecretsError', 'link-104');">InvalidClientSecretsError</a></tt><tt class="py-op">:</tt> </tt>
+<a name="L470"></a><tt class="py-lineno">470</tt> <tt class="py-line"> <tt class="py-keyword">except</tt> <tt id="link-108" class="py-name"><a title="oauth2client.clientsecrets" class="py-name" href="#" onclick="return doclink('link-108', 'clientsecrets', 'link-0');">clientsecrets</a></tt><tt class="py-op">.</tt><tt id="link-109" class="py-name"><a title="oauth2client.appengine.InvalidClientSecretsError
+oauth2client.clientsecrets.InvalidClientSecretsError" class="py-name" href="#" onclick="return doclink('link-109', 'InvalidClientSecretsError', 'link-105');">InvalidClientSecretsError</a></tt><tt class="py-op">:</tt> </tt>
<a name="L471"></a><tt class="py-lineno">471</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">_in_error</tt> <tt class="py-op">=</tt> <tt class="py-name">True</tt> </tt>
<a name="L472"></a><tt class="py-lineno">472</tt> <tt class="py-line"> <tt class="py-keyword">if</tt> <tt class="py-name">message</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="L473"></a><tt class="py-lineno">473</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">_message</tt> <tt class="py-op">=</tt> <tt class="py-name">message</tt> </tt>
@@ -667,7 +677,8 @@
<a name="L490"></a><tt class="py-lineno">490</tt> <tt class="py-line"><tt class="py-docstring"> Returns: An OAuth2Decorator</tt> </tt>
<a name="L491"></a><tt class="py-lineno">491</tt> <tt class="py-line"><tt class="py-docstring"></tt> </tt>
<a name="L492"></a><tt class="py-lineno">492</tt> <tt class="py-line"><tt class="py-docstring"> """</tt> </tt>
-<a name="L493"></a><tt class="py-lineno">493</tt> <tt class="py-line"> <tt class="py-keyword">return</tt> <tt id="link-109" class="py-name"><a title="oauth2client.appengine.OAuth2DecoratorFromClientSecrets" class="py-name" href="#" onclick="return doclink('link-109', 'OAuth2DecoratorFromClientSecrets', 'link-105');">OAuth2DecoratorFromClientSecrets</a></tt><tt class="py-op">(</tt><tt class="py-name">filename</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>
+<a name="L493"></a><tt class="py-lineno">493</tt> <tt class="py-line"> <tt class="py-keyword">return</tt> <tt id="link-110" class="py-name"><a title="oauth2client.appengine.OAuth2DecoratorFromClientSecrets" class="py-name" href="#" onclick="return doclink('link-110', 'OAuth2DecoratorFromClientSecrets', 'link-106');">OAuth2DecoratorFromClientSecrets</a></tt><tt class="py-op">(</tt><tt id="link-111" class="py-name"><a title="oauth2client.locked_file.LockedFile.filename
+oauth2client.locked_file._Opener.filename" class="py-name" href="#" onclick="return doclink('link-111', 'filename', 'link-100');">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>
</div><a name="L494"></a><tt class="py-lineno">494</tt> <tt class="py-line"> </tt>
<a name="OAuth2Handler"></a><div id="OAuth2Handler-def"><a name="L495"></a><tt class="py-lineno">495</tt> <tt class="py-line"> </tt>
<a name="L496"></a><tt class="py-lineno">496</tt> <a class="py-toggle" href="#" id="OAuth2Handler-toggle" onclick="return toggle('OAuth2Handler');">-</a><tt class="py-line"><tt class="py-keyword">class</tt> <a class="py-def-name" href="oauth2client.appengine.OAuth2Handler-class.html">OAuth2Handler</a><tt class="py-op">(</tt><tt class="py-base-class">webapp</tt><tt class="py-op">.</tt><tt class="py-base-class">RequestHandler</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
@@ -675,59 +686,59 @@
<a name="L498"></a><tt class="py-lineno">498</tt> <tt class="py-line"> </tt>
<a name="L499"></a><tt class="py-lineno">499</tt> <tt class="py-line"> <tt class="py-decorator">@</tt><tt class="py-decorator">login_required</tt> </tt>
<a name="OAuth2Handler.get"></a><div id="OAuth2Handler.get-def"><a name="L500"></a><tt class="py-lineno">500</tt> <a class="py-toggle" href="#" id="OAuth2Handler.get-toggle" onclick="return toggle('OAuth2Handler.get');">-</a><tt class="py-line"> <tt class="py-keyword">def</tt> <a class="py-def-name" href="oauth2client.appengine.OAuth2Handler-class.html#get">get</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-</div><div id="OAuth2Handler.get-collapsed" style="display:none;" pad="+++" indent="++++++"></div><div id="OAuth2Handler.get-expanded"><a name="L501"></a><tt class="py-lineno">501</tt> <tt class="py-line"> <tt class="py-name">error</tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-110" 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-110', 'request', 'link-73');">request</a></tt><tt class="py-op">.</tt><tt id="link-111" 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-111', 'get', 'link-52');">get</a></tt><tt class="py-op">(</tt><tt class="py-string">'error'</tt><tt class="py-op">)</tt> </tt>
-<a name="L502"></a><tt class="py-lineno">502</tt> <tt class="py-line"> <tt class="py-keyword">if</tt> <tt class="py-name">error</tt><tt class="py-op">:</tt> </tt>
-<a name="L503"></a><tt class="py-lineno">503</tt> <tt class="py-line"> <tt class="py-name">errormsg</tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-112" class="py-name"><a title="apiclient.http.HttpMock.request
+</div><div id="OAuth2Handler.get-collapsed" style="display:none;" pad="+++" indent="++++++"></div><div id="OAuth2Handler.get-expanded"><a name="L501"></a><tt class="py-lineno">501</tt> <tt class="py-line"> <tt class="py-name">error</tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-112" 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-112', 'request', 'link-73');">request</a></tt><tt class="py-op">.</tt><tt id="link-113" 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-113', 'get', 'link-52');">get</a></tt><tt class="py-op">(</tt><tt class="py-string">'error_description'</tt><tt class="py-op">,</tt> <tt class="py-name">error</tt><tt class="py-op">)</tt> </tt>
-<a name="L504"></a><tt class="py-lineno">504</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-114" class="py-name"><a title="apiclient.model.BaseModel.response
-apiclient.model.Model.response" class="py-name" href="#" onclick="return doclink('link-114', 'response', 'link-69');">response</a></tt><tt class="py-op">.</tt><tt class="py-name">out</tt><tt class="py-op">.</tt><tt class="py-name">write</tt><tt class="py-op">(</tt> </tt>
+oauth2client.client.Storage.get" class="py-name" href="#" onclick="return doclink('link-113', 'get', 'link-52');">get</a></tt><tt class="py-op">(</tt><tt class="py-string">'error'</tt><tt class="py-op">)</tt> </tt>
+<a name="L502"></a><tt class="py-lineno">502</tt> <tt class="py-line"> <tt class="py-keyword">if</tt> <tt class="py-name">error</tt><tt class="py-op">:</tt> </tt>
+<a name="L503"></a><tt class="py-lineno">503</tt> <tt class="py-line"> <tt class="py-name">errormsg</tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-114" 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-114', 'request', 'link-73');">request</a></tt><tt class="py-op">.</tt><tt id="link-115" 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-115', 'get', 'link-52');">get</a></tt><tt class="py-op">(</tt><tt class="py-string">'error_description'</tt><tt class="py-op">,</tt> <tt class="py-name">error</tt><tt class="py-op">)</tt> </tt>
+<a name="L504"></a><tt class="py-lineno">504</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-116" class="py-name"><a title="apiclient.model.BaseModel.response
+apiclient.model.Model.response" class="py-name" href="#" onclick="return doclink('link-116', 'response', 'link-69');">response</a></tt><tt class="py-op">.</tt><tt class="py-name">out</tt><tt class="py-op">.</tt><tt class="py-name">write</tt><tt class="py-op">(</tt> </tt>
<a name="L505"></a><tt class="py-lineno">505</tt> <tt class="py-line"> <tt class="py-string">'The authorization request failed: %s'</tt> <tt class="py-op">%</tt> <tt class="py-name">errormsg</tt><tt class="py-op">)</tt> </tt>
<a name="L506"></a><tt class="py-lineno">506</tt> <tt class="py-line"> <tt class="py-keyword">else</tt><tt class="py-op">:</tt> </tt>
<a name="L507"></a><tt class="py-lineno">507</tt> <tt class="py-line"> <tt class="py-name">user</tt> <tt class="py-op">=</tt> <tt class="py-name">users</tt><tt class="py-op">.</tt><tt class="py-name">get_current_user</tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
-<a name="L508"></a><tt class="py-lineno">508</tt> <tt class="py-line"> <tt class="py-name">flow</tt> <tt class="py-op">=</tt> <tt class="py-name">pickle</tt><tt class="py-op">.</tt><tt id="link-115" class="py-name"><a title="oauth2client.clientsecrets.loads" class="py-name" href="#" onclick="return doclink('link-115', 'loads', 'link-28');">loads</a></tt><tt class="py-op">(</tt><tt class="py-name">memcache</tt><tt class="py-op">.</tt><tt id="link-116" class="py-name"><a title="apiclient.schema.Schemas.get
+<a name="L508"></a><tt class="py-lineno">508</tt> <tt class="py-line"> <tt class="py-name">flow</tt> <tt class="py-op">=</tt> <tt class="py-name">pickle</tt><tt class="py-op">.</tt><tt id="link-117" class="py-name"><a title="oauth2client.clientsecrets.loads" class="py-name" href="#" onclick="return doclink('link-117', 'loads', 'link-28');">loads</a></tt><tt class="py-op">(</tt><tt class="py-name">memcache</tt><tt class="py-op">.</tt><tt id="link-118" 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-116', 'get', 'link-52');">get</a></tt><tt class="py-op">(</tt><tt class="py-name">user</tt><tt class="py-op">.</tt><tt class="py-name">user_id</tt><tt class="py-op">(</tt><tt class="py-op">)</tt><tt class="py-op">,</tt> </tt>
-<a name="L509"></a><tt class="py-lineno">509</tt> <tt class="py-line"> <tt class="py-name">namespace</tt><tt class="py-op">=</tt><tt id="link-117" class="py-name"><a title="oauth2client.appengine.OAUTH2CLIENT_NAMESPACE" class="py-name" href="#" onclick="return doclink('link-117', 'OAUTH2CLIENT_NAMESPACE', 'link-25');">OAUTH2CLIENT_NAMESPACE</a></tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
+oauth2client.client.Storage.get" class="py-name" href="#" onclick="return doclink('link-118', 'get', 'link-52');">get</a></tt><tt class="py-op">(</tt><tt class="py-name">user</tt><tt class="py-op">.</tt><tt class="py-name">user_id</tt><tt class="py-op">(</tt><tt class="py-op">)</tt><tt class="py-op">,</tt> </tt>
+<a name="L509"></a><tt class="py-lineno">509</tt> <tt class="py-line"> <tt class="py-name">namespace</tt><tt class="py-op">=</tt><tt id="link-119" class="py-name"><a title="oauth2client.appengine.OAUTH2CLIENT_NAMESPACE" class="py-name" href="#" onclick="return doclink('link-119', 'OAUTH2CLIENT_NAMESPACE', 'link-25');">OAUTH2CLIENT_NAMESPACE</a></tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
<a name="L510"></a><tt class="py-lineno">510</tt> <tt class="py-line"> <tt class="py-comment"># This code should be ammended with application specific error</tt> </tt>
<a name="L511"></a><tt class="py-lineno">511</tt> <tt class="py-line"> <tt class="py-comment"># handling. The following cases should be considered:</tt> </tt>
<a name="L512"></a><tt class="py-lineno">512</tt> <tt class="py-line"> <tt class="py-comment"># 1. What if the flow doesn't exist in memcache? Or is corrupt?</tt> </tt>
<a name="L513"></a><tt class="py-lineno">513</tt> <tt class="py-line"> <tt class="py-comment"># 2. What if the step2_exchange fails?</tt> </tt>
<a name="L514"></a><tt class="py-lineno">514</tt> <tt class="py-line"> <tt class="py-keyword">if</tt> <tt class="py-name">flow</tt><tt class="py-op">:</tt> </tt>
-<a name="L515"></a><tt class="py-lineno">515</tt> <tt class="py-line"> <tt id="link-118" class="py-name"><a title="oauth2client.appengine.CredentialsModel.credentials" class="py-name" href="#" onclick="return doclink('link-118', 'credentials', 'link-43');">credentials</a></tt> <tt class="py-op">=</tt> <tt class="py-name">flow</tt><tt class="py-op">.</tt><tt id="link-119" class="py-name" targets="Method oauth2client.client.OAuth2WebServerFlow.step2_exchange()=oauth2client.client.OAuth2WebServerFlow-class.html#step2_exchange"><a title="oauth2client.client.OAuth2WebServerFlow.step2_exchange" class="py-name" href="#" onclick="return doclink('link-119', 'step2_exchange', 'link-119');">step2_exchange</a></tt><tt class="py-op">(</tt><tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-120" class="py-name"><a title="apiclient.http.HttpMock.request
+<a name="L515"></a><tt class="py-lineno">515</tt> <tt class="py-line"> <tt id="link-120" class="py-name"><a title="oauth2client.appengine.CredentialsModel.credentials" class="py-name" href="#" onclick="return doclink('link-120', 'credentials', 'link-43');">credentials</a></tt> <tt class="py-op">=</tt> <tt class="py-name">flow</tt><tt class="py-op">.</tt><tt id="link-121" class="py-name" targets="Method oauth2client.client.OAuth2WebServerFlow.step2_exchange()=oauth2client.client.OAuth2WebServerFlow-class.html#step2_exchange"><a title="oauth2client.client.OAuth2WebServerFlow.step2_exchange" class="py-name" href="#" onclick="return doclink('link-121', 'step2_exchange', 'link-121');">step2_exchange</a></tt><tt class="py-op">(</tt><tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-122" 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-120', 'request', 'link-73');">request</a></tt><tt class="py-op">.</tt><tt class="py-name">params</tt><tt class="py-op">)</tt> </tt>
-<a name="L516"></a><tt class="py-lineno">516</tt> <tt class="py-line"> <tt id="link-121" class="py-name"><a title="oauth2client.appengine.StorageByKeyName" class="py-name" href="#" onclick="return doclink('link-121', 'StorageByKeyName', 'link-76');">StorageByKeyName</a></tt><tt class="py-op">(</tt> </tt>
-<a name="L517"></a><tt class="py-lineno">517</tt> <tt class="py-line"> <tt id="link-122" class="py-name"><a title="oauth2client.appengine.CredentialsModel" class="py-name" href="#" onclick="return doclink('link-122', 'CredentialsModel', 'link-77');">CredentialsModel</a></tt><tt class="py-op">,</tt> <tt class="py-name">user</tt><tt class="py-op">.</tt><tt class="py-name">user_id</tt><tt class="py-op">(</tt><tt class="py-op">)</tt><tt class="py-op">,</tt> <tt class="py-string">'credentials'</tt><tt class="py-op">)</tt><tt class="py-op">.</tt><tt id="link-123" class="py-name"><a title="oauth2client.client.Storage.put" class="py-name" href="#" onclick="return doclink('link-123', 'put', 'link-59');">put</a></tt><tt class="py-op">(</tt><tt id="link-124" class="py-name"><a title="oauth2client.appengine.CredentialsModel.credentials" class="py-name" href="#" onclick="return doclink('link-124', 'credentials', 'link-43');">credentials</a></tt><tt class="py-op">)</tt> </tt>
-<a name="L518"></a><tt class="py-lineno">518</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">redirect</tt><tt class="py-op">(</tt><tt class="py-name">str</tt><tt class="py-op">(</tt><tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-125" class="py-name"><a title="apiclient.http.HttpMock.request
+apiclient.model.Model.request" class="py-name" href="#" onclick="return doclink('link-122', 'request', 'link-73');">request</a></tt><tt class="py-op">.</tt><tt class="py-name">params</tt><tt class="py-op">)</tt> </tt>
+<a name="L516"></a><tt class="py-lineno">516</tt> <tt class="py-line"> <tt id="link-123" class="py-name"><a title="oauth2client.appengine.StorageByKeyName" class="py-name" href="#" onclick="return doclink('link-123', 'StorageByKeyName', 'link-76');">StorageByKeyName</a></tt><tt class="py-op">(</tt> </tt>
+<a name="L517"></a><tt class="py-lineno">517</tt> <tt class="py-line"> <tt id="link-124" class="py-name"><a title="oauth2client.appengine.CredentialsModel" class="py-name" href="#" onclick="return doclink('link-124', 'CredentialsModel', 'link-77');">CredentialsModel</a></tt><tt class="py-op">,</tt> <tt class="py-name">user</tt><tt class="py-op">.</tt><tt class="py-name">user_id</tt><tt class="py-op">(</tt><tt class="py-op">)</tt><tt class="py-op">,</tt> <tt class="py-string">'credentials'</tt><tt class="py-op">)</tt><tt class="py-op">.</tt><tt id="link-125" class="py-name"><a title="oauth2client.client.Storage.put" class="py-name" href="#" onclick="return doclink('link-125', 'put', 'link-59');">put</a></tt><tt class="py-op">(</tt><tt id="link-126" class="py-name"><a title="oauth2client.appengine.CredentialsModel.credentials" class="py-name" href="#" onclick="return doclink('link-126', 'credentials', 'link-43');">credentials</a></tt><tt class="py-op">)</tt> </tt>
+<a name="L518"></a><tt class="py-lineno">518</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">redirect</tt><tt class="py-op">(</tt><tt class="py-name">str</tt><tt class="py-op">(</tt><tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-127" 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-125', 'request', 'link-73');">request</a></tt><tt class="py-op">.</tt><tt id="link-126" class="py-name"><a title="apiclient.schema.Schemas.get
+apiclient.model.Model.request" class="py-name" href="#" onclick="return doclink('link-127', 'request', 'link-73');">request</a></tt><tt class="py-op">.</tt><tt id="link-128" 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-126', 'get', 'link-52');">get</a></tt><tt class="py-op">(</tt><tt class="py-string">'state'</tt><tt class="py-op">)</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
+oauth2client.client.Storage.get" class="py-name" href="#" onclick="return doclink('link-128', 'get', 'link-52');">get</a></tt><tt class="py-op">(</tt><tt class="py-string">'state'</tt><tt class="py-op">)</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
<a name="L519"></a><tt class="py-lineno">519</tt> <tt class="py-line"> <tt class="py-keyword">else</tt><tt class="py-op">:</tt> </tt>
<a name="L520"></a><tt class="py-lineno">520</tt> <tt class="py-line"> <tt class="py-comment"># TODO Add error handling here.</tt> </tt>
<a name="L521"></a><tt class="py-lineno">521</tt> <tt class="py-line"> <tt class="py-keyword">pass</tt> </tt>
</div></div><a name="L522"></a><tt class="py-lineno">522</tt> <tt class="py-line"> </tt>
<a name="L523"></a><tt class="py-lineno">523</tt> <tt class="py-line"> </tt>
-<a name="L524"></a><tt class="py-lineno">524</tt> <tt class="py-line"><tt id="link-127" class="py-name" targets="Variable oauth2client.appengine.application=oauth2client.appengine-module.html#application"><a title="oauth2client.appengine.application" class="py-name" href="#" onclick="return doclink('link-127', 'application', 'link-127');">application</a></tt> <tt class="py-op">=</tt> <tt class="py-name">webapp</tt><tt class="py-op">.</tt><tt class="py-name">WSGIApplication</tt><tt class="py-op">(</tt><tt class="py-op">[</tt><tt class="py-op">(</tt><tt class="py-string">'/oauth2callback'</tt><tt class="py-op">,</tt> <tt id="link-128" class="py-name" targets="Class oauth2client.appengine.OAuth2Handler=oauth2client.appengine.OAuth2Handler-class.html"><a title="oauth2client.appengine.OAuth2Handler" class="py-name" href="#" onclick="return doclink('link-128', 'OAuth2Handler', 'link-128');">OAuth2Handler</a></tt><tt class="py-op">)</tt><tt class="py-op">]</tt><tt class="py-op">)</tt> </tt>
+<a name="L524"></a><tt class="py-lineno">524</tt> <tt class="py-line"><tt id="link-129" class="py-name" targets="Variable oauth2client.appengine.application=oauth2client.appengine-module.html#application"><a title="oauth2client.appengine.application" class="py-name" href="#" onclick="return doclink('link-129', 'application', 'link-129');">application</a></tt> <tt class="py-op">=</tt> <tt class="py-name">webapp</tt><tt class="py-op">.</tt><tt class="py-name">WSGIApplication</tt><tt class="py-op">(</tt><tt class="py-op">[</tt><tt class="py-op">(</tt><tt class="py-string">'/oauth2callback'</tt><tt class="py-op">,</tt> <tt id="link-130" class="py-name" targets="Class oauth2client.appengine.OAuth2Handler=oauth2client.appengine.OAuth2Handler-class.html"><a title="oauth2client.appengine.OAuth2Handler" class="py-name" href="#" onclick="return doclink('link-130', 'OAuth2Handler', 'link-130');">OAuth2Handler</a></tt><tt class="py-op">)</tt><tt class="py-op">]</tt><tt class="py-op">)</tt> </tt>
<a name="main"></a><div id="main-def"><a name="L525"></a><tt class="py-lineno">525</tt> <tt class="py-line"> </tt>
<a name="L526"></a><tt class="py-lineno">526</tt> <tt class="py-line"> </tt>
<a name="L527"></a><tt class="py-lineno">527</tt> <a class="py-toggle" href="#" id="main-toggle" onclick="return toggle('main');">-</a><tt class="py-line"><tt class="py-keyword">def</tt> <a class="py-def-name" href="oauth2client.appengine-module.html#main">main</a><tt class="py-op">(</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-</div><div id="main-collapsed" style="display:none;" pad="+++" indent="++++"></div><div id="main-expanded"><a name="L528"></a><tt class="py-lineno">528</tt> <tt class="py-line"> <tt class="py-name">run_wsgi_app</tt><tt class="py-op">(</tt><tt id="link-129" class="py-name"><a title="oauth2client.appengine.application" class="py-name" href="#" onclick="return doclink('link-129', 'application', 'link-127');">application</a></tt><tt class="py-op">)</tt> </tt>
+</div><div id="main-collapsed" style="display:none;" pad="+++" indent="++++"></div><div id="main-expanded"><a name="L528"></a><tt class="py-lineno">528</tt> <tt class="py-line"> <tt class="py-name">run_wsgi_app</tt><tt class="py-op">(</tt><tt id="link-131" class="py-name"><a title="oauth2client.appengine.application" class="py-name" href="#" onclick="return doclink('link-131', 'application', 'link-129');">application</a></tt><tt class="py-op">)</tt> </tt>
</div><a name="L529"></a><tt class="py-lineno">529</tt> <tt class="py-line"> </tt><script type="text/javascript">
<!--
expandto(location.href);
@@ -758,7 +769,7 @@
<table border="0" cellpadding="0" cellspacing="0" width="100%%">
<tr>
<td align="left" class="footer">
- Generated by Epydoc 3.0.1 on Tue Jun 5 09:03:11 2012
+ Generated by Epydoc 3.0.1 on Thu Jun 14 08:01:59 2012
</td>
<td align="right" class="footer">
<a target="mainFrame" href="http://epydoc.sourceforge.net"
diff --git a/docs/epy/oauth2client.appengine.AppAssertionCredentials-class.html b/docs/epy/oauth2client.appengine.AppAssertionCredentials-class.html
index eaac55f..faa7690 100644
--- a/docs/epy/oauth2client.appengine.AppAssertionCredentials-class.html
+++ b/docs/epy/oauth2client.appengine.AppAssertionCredentials-class.html
@@ -426,7 +426,7 @@
<table border="0" cellpadding="0" cellspacing="0" width="100%%">
<tr>
<td align="left" class="footer">
- Generated by Epydoc 3.0.1 on Tue Jun 5 09:03:08 2012
+ Generated by Epydoc 3.0.1 on Thu Jun 14 08:01:56 2012
</td>
<td align="right" class="footer">
<a target="mainFrame" href="http://epydoc.sourceforge.net"
diff --git a/docs/epy/oauth2client.appengine.CredentialsModel-class.html b/docs/epy/oauth2client.appengine.CredentialsModel-class.html
index 63cfd29..d77537c 100644
--- a/docs/epy/oauth2client.appengine.CredentialsModel-class.html
+++ b/docs/epy/oauth2client.appengine.CredentialsModel-class.html
@@ -264,7 +264,7 @@
<span class="summary-type"> </span>
</td><td class="summary">
<a href="oauth2client.appengine.CredentialsModel-class.html#_properties" class="summary-name" onclick="show_private();">_properties</a> = <code title="{'credentials': <oauth2client.appengine.CredentialsProperty object at \
-0x2532210>}"><code class="variable-group">{</code><code class="variable-quote">'</code><code class="variable-string">credentials</code><code class="variable-quote">'</code><code class="variable-op">: </code><oauth2client.appengine.Credenti<code class="variable-ellipsis">...</code></code>
+0x1e20c50>}"><code class="variable-group">{</code><code class="variable-quote">'</code><code class="variable-string">credentials</code><code class="variable-quote">'</code><code class="variable-op">: </code><oauth2client.appengine.Credenti<code class="variable-ellipsis">...</code></code>
</td>
</tr>
<tr>
@@ -331,7 +331,7 @@
<dt>Value:</dt>
<dd><table><tr><td><pre class="variable">
<code class="variable-group">{</code><code class="variable-quote">'</code><code class="variable-string">credentials</code><code class="variable-quote">'</code><code class="variable-op">: </code><oauth2client.appengine.CredentialsProperty object at <span class="variable-linewrap"><img src="crarr.png" alt="\" /></span>
-0x2532210><code class="variable-group">}</code>
+0x1e20c50><code class="variable-group">}</code>
</pre></td></tr></table>
</dd>
</dl>
@@ -361,7 +361,7 @@
<table border="0" cellpadding="0" cellspacing="0" width="100%%">
<tr>
<td align="left" class="footer">
- Generated by Epydoc 3.0.1 on Tue Jun 5 09:03:08 2012
+ Generated by Epydoc 3.0.1 on Thu Jun 14 08:01:57 2012
</td>
<td align="right" class="footer">
<a target="mainFrame" href="http://epydoc.sourceforge.net"
diff --git a/docs/epy/oauth2client.appengine.CredentialsProperty-class.html b/docs/epy/oauth2client.appengine.CredentialsProperty-class.html
index 82d9b66..006b489 100644
--- a/docs/epy/oauth2client.appengine.CredentialsProperty-class.html
+++ b/docs/epy/oauth2client.appengine.CredentialsProperty-class.html
@@ -56,11 +56,11 @@
<h1 class="epydoc">Class CredentialsProperty</h1><p class="nomargin-top"><span class="codelink"><a href="oauth2client.appengine-pysrc.html#CredentialsProperty">source code</a></span></p>
<center>
<center> <map id="uml_class_diagram_for_oauth2cl_3" name="uml_class_diagram_for_oauth2cl_3">
-<area shape="rect" href="oauth2client.client.Credentials-class.html" title="Base class for all Credentials objects." alt="" coords="249,247,519,265"/>
-<area shape="rect" href="oauth2client.appengine.CredentialsProperty-class.html#get_value_for_datastore" title="Datastore representation of this property." alt="" coords="249,268,519,287"/>
-<area shape="rect" href="oauth2client.appengine.CredentialsProperty-class.html#make_value_from_datastore" title="Native representation of this property." alt="" coords="249,287,519,305"/>
-<area shape="rect" href="oauth2client.appengine.CredentialsProperty-class.html#validate" title="Assert that provided value is compatible with this property." alt="" coords="249,305,519,324"/>
-<area shape="rect" href="oauth2client.appengine.CredentialsProperty-class.html" title="App Engine datastore Property for Credentials." alt="" coords="248,229,520,325"/>
+<area shape="rect" href="oauth2client.client.Credentials-class.html" title="Base class for all Credentials objects." alt="" coords="249,265,519,284"/>
+<area shape="rect" href="oauth2client.appengine.CredentialsProperty-class.html#get_value_for_datastore" title="Datastore representation of this property." alt="" coords="249,287,519,305"/>
+<area shape="rect" href="oauth2client.appengine.CredentialsProperty-class.html#make_value_from_datastore" title="Native representation of this property." alt="" coords="249,305,519,324"/>
+<area shape="rect" href="oauth2client.appengine.CredentialsProperty-class.html#validate" title="Assert that provided value is compatible with this property." alt="" coords="249,324,519,343"/>
+<area shape="rect" href="oauth2client.appengine.CredentialsProperty-class.html" title="App Engine datastore Property for Credentials." alt="" coords="248,248,520,344"/>
<area shape="rect" href="javascript:void(0);" title="google.appengine.ext.db.Property.creation_counter" alt="" coords="17,28,751,47"/>
<area shape="rect" href="javascript:void(0);" title="Initializes this Property with the given options." alt="" coords="17,49,751,68"/>
<area shape="rect" href="javascript:void(0);" title="Configure property, connecting it to its model." alt="" coords="17,68,751,87"/>
@@ -69,8 +69,9 @@
<area shape="rect" href="javascript:void(0);" title="Default value for unassigned values." alt="" coords="17,124,751,143"/>
<area shape="rect" href="javascript:void(0);" title="Determine if value is empty in the context of this property." alt="" coords="17,143,751,161"/>
<area shape="rect" href="javascript:void(0);" title="Determine new value for auto-updated property." alt="" coords="17,161,751,180"/>
-<area shape="rect" href="javascript:void(0);" title="Deprecated backwards-compatible accessor method for self.data_type." alt="" coords="17,180,751,199"/>
-<area shape="rect" href="javascript:void(0);" title="A Property is an attribute of a Model." alt="" coords="16,11,752,200"/>
+<area shape="rect" href="javascript:void(0);" title="google.appengine.ext.db.Property.make_value_from_datastore_index_value" alt="" coords="17,180,751,199"/>
+<area shape="rect" href="javascript:void(0);" title="Deprecated backwards-compatible accessor method for self.data_type." alt="" coords="17,199,751,217"/>
+<area shape="rect" href="javascript:void(0);" title="A Property is an attribute of a Model." alt="" coords="16,11,752,219"/>
</map>
<img src="uml_class_diagram_for_oauth2cl_3.gif" alt='' usemap="#uml_class_diagram_for_oauth2cl_3" ismap="ismap" class="graph-without-title" />
</center>
@@ -191,7 +192,8 @@
<code>datastore_type</code>,
<code>default_value</code>,
<code>empty</code>,
- <code>get_updated_value_for_datastore</code>
+ <code>get_updated_value_for_datastore</code>,
+ <code>make_value_from_datastore_index_value</code>
</p>
<div class="private"> <p class="indent-wrapped-lines"><b>Inherited from <code>google.appengine.ext.db.Property</code></b> (private):
<code>_attr_name</code>,
@@ -431,7 +433,7 @@
<table border="0" cellpadding="0" cellspacing="0" width="100%%">
<tr>
<td align="left" class="footer">
- Generated by Epydoc 3.0.1 on Tue Jun 5 09:03:08 2012
+ Generated by Epydoc 3.0.1 on Thu Jun 14 08:01:57 2012
</td>
<td align="right" class="footer">
<a target="mainFrame" href="http://epydoc.sourceforge.net"
diff --git a/docs/epy/oauth2client.appengine.FlowProperty-class.html b/docs/epy/oauth2client.appengine.FlowProperty-class.html
index 311d5ce..3f1f2ba 100644
--- a/docs/epy/oauth2client.appengine.FlowProperty-class.html
+++ b/docs/epy/oauth2client.appengine.FlowProperty-class.html
@@ -56,12 +56,12 @@
<h1 class="epydoc">Class FlowProperty</h1><p class="nomargin-top"><span class="codelink"><a href="oauth2client.appengine-pysrc.html#FlowProperty">source code</a></span></p>
<center>
<center> <map id="uml_class_diagram_for_oauth2cl_4" name="uml_class_diagram_for_oauth2cl_4">
-<area shape="rect" href="oauth2client.client.Flow-class.html" title="Base class for all Flow objects." alt="" coords="249,228,519,247"/>
-<area shape="rect" href="oauth2client.appengine.FlowProperty-class.html#get_value_for_datastore" title="Datastore representation of this property." alt="" coords="249,249,519,268"/>
-<area shape="rect" href="oauth2client.appengine.FlowProperty-class.html#make_value_from_datastore" title="Native representation of this property." alt="" coords="249,268,519,287"/>
-<area shape="rect" href="oauth2client.appengine.FlowProperty-class.html#validate" title="Assert that provided value is compatible with this property." alt="" coords="249,287,519,305"/>
-<area shape="rect" href="oauth2client.appengine.FlowProperty-class.html#empty" title="Determine if value is empty in the context of this property." alt="" coords="249,305,519,324"/>
-<area shape="rect" href="oauth2client.appengine.FlowProperty-class.html" title="App Engine datastore Property for Flow." alt="" coords="248,211,520,325"/>
+<area shape="rect" href="oauth2client.client.Flow-class.html" title="Base class for all Flow objects." alt="" coords="249,247,519,265"/>
+<area shape="rect" href="oauth2client.appengine.FlowProperty-class.html#get_value_for_datastore" title="Datastore representation of this property." alt="" coords="249,268,519,287"/>
+<area shape="rect" href="oauth2client.appengine.FlowProperty-class.html#make_value_from_datastore" title="Native representation of this property." alt="" coords="249,287,519,305"/>
+<area shape="rect" href="oauth2client.appengine.FlowProperty-class.html#validate" title="Assert that provided value is compatible with this property." alt="" coords="249,305,519,324"/>
+<area shape="rect" href="oauth2client.appengine.FlowProperty-class.html#empty" title="Determine if value is empty in the context of this property." alt="" coords="249,324,519,343"/>
+<area shape="rect" href="oauth2client.appengine.FlowProperty-class.html" title="App Engine datastore Property for Flow." alt="" coords="248,229,520,344"/>
<area shape="rect" href="javascript:void(0);" title="google.appengine.ext.db.Property.creation_counter" alt="" coords="17,28,751,47"/>
<area shape="rect" href="javascript:void(0);" title="Initializes this Property with the given options." alt="" coords="17,49,751,68"/>
<area shape="rect" href="javascript:void(0);" title="Configure property, connecting it to its model." alt="" coords="17,68,751,87"/>
@@ -69,8 +69,9 @@
<area shape="rect" href="javascript:void(0);" title="Sets the value for this property on the given model instance." alt="" coords="17,105,751,124"/>
<area shape="rect" href="javascript:void(0);" title="Default value for unassigned values." alt="" coords="17,124,751,143"/>
<area shape="rect" href="javascript:void(0);" title="Determine new value for auto-updated property." alt="" coords="17,143,751,161"/>
-<area shape="rect" href="javascript:void(0);" title="Deprecated backwards-compatible accessor method for self.data_type." alt="" coords="17,161,751,180"/>
-<area shape="rect" href="javascript:void(0);" title="A Property is an attribute of a Model." alt="" coords="16,11,752,181"/>
+<area shape="rect" href="javascript:void(0);" title="google.appengine.ext.db.Property.make_value_from_datastore_index_value" alt="" coords="17,161,751,180"/>
+<area shape="rect" href="javascript:void(0);" title="Deprecated backwards-compatible accessor method for self.data_type." alt="" coords="17,180,751,199"/>
+<area shape="rect" href="javascript:void(0);" title="A Property is an attribute of a Model." alt="" coords="16,11,752,200"/>
</map>
<img src="uml_class_diagram_for_oauth2cl_4.gif" alt='' usemap="#uml_class_diagram_for_oauth2cl_4" ismap="ismap" class="graph-without-title" />
</center>
@@ -208,7 +209,8 @@
<code>__set__</code>,
<code>datastore_type</code>,
<code>default_value</code>,
- <code>get_updated_value_for_datastore</code>
+ <code>get_updated_value_for_datastore</code>,
+ <code>make_value_from_datastore_index_value</code>
</p>
<div class="private"> <p class="indent-wrapped-lines"><b>Inherited from <code>google.appengine.ext.db.Property</code></b> (private):
<code>_attr_name</code>,
@@ -486,7 +488,7 @@
<table border="0" cellpadding="0" cellspacing="0" width="100%%">
<tr>
<td align="left" class="footer">
- Generated by Epydoc 3.0.1 on Tue Jun 5 09:03:08 2012
+ Generated by Epydoc 3.0.1 on Thu Jun 14 08:01:57 2012
</td>
<td align="right" class="footer">
<a target="mainFrame" href="http://epydoc.sourceforge.net"
diff --git a/docs/epy/oauth2client.appengine.InvalidClientSecretsError-class.html b/docs/epy/oauth2client.appengine.InvalidClientSecretsError-class.html
index 8cf4a19..8983c2d 100644
--- a/docs/epy/oauth2client.appengine.InvalidClientSecretsError-class.html
+++ b/docs/epy/oauth2client.appengine.InvalidClientSecretsError-class.html
@@ -180,7 +180,7 @@
<table border="0" cellpadding="0" cellspacing="0" width="100%%">
<tr>
<td align="left" class="footer">
- Generated by Epydoc 3.0.1 on Tue Jun 5 09:03:08 2012
+ Generated by Epydoc 3.0.1 on Thu Jun 14 08:01:57 2012
</td>
<td align="right" class="footer">
<a target="mainFrame" href="http://epydoc.sourceforge.net"
diff --git a/docs/epy/oauth2client.appengine.OAuth2Decorator-class.html b/docs/epy/oauth2client.appengine.OAuth2Decorator-class.html
index dd8a00c..ed7f623 100644
--- a/docs/epy/oauth2client.appengine.OAuth2Decorator-class.html
+++ b/docs/epy/oauth2client.appengine.OAuth2Decorator-class.html
@@ -514,7 +514,7 @@
<table border="0" cellpadding="0" cellspacing="0" width="100%%">
<tr>
<td align="left" class="footer">
- Generated by Epydoc 3.0.1 on Tue Jun 5 09:03:08 2012
+ Generated by Epydoc 3.0.1 on Thu Jun 14 08:01:57 2012
</td>
<td align="right" class="footer">
<a target="mainFrame" href="http://epydoc.sourceforge.net"
diff --git a/docs/epy/oauth2client.appengine.OAuth2DecoratorFromClientSecrets-class.html b/docs/epy/oauth2client.appengine.OAuth2DecoratorFromClientSecrets-class.html
index bfbb64e..3fc200f 100644
--- a/docs/epy/oauth2client.appengine.OAuth2DecoratorFromClientSecrets-class.html
+++ b/docs/epy/oauth2client.appengine.OAuth2DecoratorFromClientSecrets-class.html
@@ -263,7 +263,7 @@
<table border="0" cellpadding="0" cellspacing="0" width="100%%">
<tr>
<td align="left" class="footer">
- Generated by Epydoc 3.0.1 on Tue Jun 5 09:03:08 2012
+ Generated by Epydoc 3.0.1 on Thu Jun 14 08:01:57 2012
</td>
<td align="right" class="footer">
<a target="mainFrame" href="http://epydoc.sourceforge.net"
diff --git a/docs/epy/oauth2client.appengine.OAuth2Handler-class.html b/docs/epy/oauth2client.appengine.OAuth2Handler-class.html
index 093bb86..920483d 100644
--- a/docs/epy/oauth2client.appengine.OAuth2Handler-class.html
+++ b/docs/epy/oauth2client.appengine.OAuth2Handler-class.html
@@ -272,7 +272,7 @@
<table border="0" cellpadding="0" cellspacing="0" width="100%%">
<tr>
<td align="left" class="footer">
- Generated by Epydoc 3.0.1 on Tue Jun 5 09:03:08 2012
+ Generated by Epydoc 3.0.1 on Thu Jun 14 08:01:57 2012
</td>
<td align="right" class="footer">
<a target="mainFrame" href="http://epydoc.sourceforge.net"
diff --git a/docs/epy/oauth2client.appengine.StorageByKeyName-class.html b/docs/epy/oauth2client.appengine.StorageByKeyName-class.html
index 5002d12..fa22f64 100644
--- a/docs/epy/oauth2client.appengine.StorageByKeyName-class.html
+++ b/docs/epy/oauth2client.appengine.StorageByKeyName-class.html
@@ -384,7 +384,7 @@
<table border="0" cellpadding="0" cellspacing="0" width="100%%">
<tr>
<td align="left" class="footer">
- Generated by Epydoc 3.0.1 on Tue Jun 5 09:03:08 2012
+ Generated by Epydoc 3.0.1 on Thu Jun 14 08:01:57 2012
</td>
<td align="right" class="footer">
<a target="mainFrame" href="http://epydoc.sourceforge.net"
diff --git a/docs/epy/oauth2client.client-module.html b/docs/epy/oauth2client.client-module.html
index 757871f..f053b09 100644
--- a/docs/epy/oauth2client.client-module.html
+++ b/docs/epy/oauth2client.client-module.html
@@ -294,6 +294,52 @@
</td><td class="summary">
<table width="100%" cellpadding="0" cellspacing="0" border="0">
<tr>
+ <td><span class="summary-sig"><a href="oauth2client.client-module.html#credentials_from_code" class="summary-sig-name">credentials_from_code</a>(<span class="summary-sig-arg">client_id</span>,
+ <span class="summary-sig-arg">client_secret</span>,
+ <span class="summary-sig-arg">scope</span>,
+ <span class="summary-sig-arg">code</span>,
+ <span class="summary-sig-arg">redirect_uri</span>=<span class="summary-sig-default"><code class="variable-quote">'</code><code class="variable-string">postmessage</code><code class="variable-quote">'</code></span>,
+ <span class="summary-sig-arg">http</span>=<span class="summary-sig-default">None</span>,
+ <span class="summary-sig-arg">user_agent</span>=<span class="summary-sig-default">None</span>,
+ <span class="summary-sig-arg">token_uri</span>=<span class="summary-sig-default"><code class="variable-quote">'</code><code class="variable-string">https://accounts.google.com/o/oauth2/token</code><code class="variable-quote">'</code></span>)</span><br />
+ Exchanges an authorization code for an OAuth2Credentials object.</td>
+ <td align="right" valign="top">
+ <span class="codelink"><a href="oauth2client.client-pysrc.html#credentials_from_code">source code</a></span>
+
+ </td>
+ </tr>
+ </table>
+
+ </td>
+ </tr>
+<tr>
+ <td width="15%" align="right" valign="top" class="summary">
+ <span class="summary-type"> </span>
+ </td><td class="summary">
+ <table width="100%" cellpadding="0" cellspacing="0" border="0">
+ <tr>
+ <td><span class="summary-sig"><a href="oauth2client.client-module.html#credentials_from_clientsecrets_and_code" class="summary-sig-name">credentials_from_clientsecrets_and_code</a>(<span class="summary-sig-arg">filename</span>,
+ <span class="summary-sig-arg">scope</span>,
+ <span class="summary-sig-arg">code</span>,
+ <span class="summary-sig-arg">message</span>=<span class="summary-sig-default">None</span>,
+ <span class="summary-sig-arg">redirect_uri</span>=<span class="summary-sig-default"><code class="variable-quote">'</code><code class="variable-string">postmessage</code><code class="variable-quote">'</code></span>,
+ <span class="summary-sig-arg">http</span>=<span class="summary-sig-default">None</span>)</span><br />
+ Returns OAuth2Credentials from a clientsecrets file and an auth code.</td>
+ <td align="right" valign="top">
+ <span class="codelink"><a href="oauth2client.client-pysrc.html#credentials_from_clientsecrets_and_code">source code</a></span>
+
+ </td>
+ </tr>
+ </table>
+
+ </td>
+ </tr>
+<tr>
+ <td width="15%" align="right" valign="top" class="summary">
+ <span class="summary-type"> </span>
+ </td><td class="summary">
+ <table width="100%" cellpadding="0" cellspacing="0" border="0">
+ <tr>
<td><span class="summary-sig"><a href="oauth2client.client-module.html#flow_from_clientsecrets" class="summary-sig-name">flow_from_clientsecrets</a>(<span class="summary-sig-arg">filename</span>,
<span class="summary-sig-arg">scope</span>,
<span class="summary-sig-arg">message</span>=<span class="summary-sig-default">None</span>)</span><br />
@@ -462,6 +508,106 @@
</dl>
</td></tr></table>
</div>
+<a name="credentials_from_code"></a>
+<div>
+<table class="details" border="1" cellpadding="3"
+ cellspacing="0" width="100%" bgcolor="white">
+<tr><td>
+ <table width="100%" cellpadding="0" cellspacing="0" border="0">
+ <tr valign="top"><td>
+ <h3 class="epydoc"><span class="sig"><span class="sig-name">credentials_from_code</span>(<span class="sig-arg">client_id</span>,
+ <span class="sig-arg">client_secret</span>,
+ <span class="sig-arg">scope</span>,
+ <span class="sig-arg">code</span>,
+ <span class="sig-arg">redirect_uri</span>=<span class="sig-default"><code class="variable-quote">'</code><code class="variable-string">postmessage</code><code class="variable-quote">'</code></span>,
+ <span class="sig-arg">http</span>=<span class="sig-default">None</span>,
+ <span class="sig-arg">user_agent</span>=<span class="sig-default">None</span>,
+ <span class="sig-arg">token_uri</span>=<span class="sig-default"><code class="variable-quote">'</code><code class="variable-string">https://accounts.google.com/o/oauth2/token</code><code class="variable-quote">'</code></span>)</span>
+ </h3>
+ </td><td align="right" valign="top"
+ ><span class="codelink"><a href="oauth2client.client-pysrc.html#credentials_from_code">source code</a></span>
+ </td>
+ </tr></table>
+
+ <pre class="literalblock">
+Exchanges an authorization code for an OAuth2Credentials object.
+
+Args:
+ client_id: string, client identifier.
+ client_secret: string, client secret.
+ scope: string or list of strings, scope(s) to request.
+ code: string, An authroization code, most likely passed down from
+ the client
+ redirect_uri: string, this is generally set to 'postmessage' to match the
+ redirect_uri that the client specified
+ http: httplib2.Http, optional http instance to use to do the fetch
+ token_uri: string, URI for token endpoint. For convenience
+ defaults to Google's endpoints but any OAuth 2.0 provider can be used.
+Returns:
+ An OAuth2Credentials object.
+
+Raises:
+ FlowExchangeError if the authorization code cannot be exchanged for an
+ access token
+
+</pre>
+ <dl class="fields">
+ </dl>
+</td></tr></table>
+</div>
+<a name="credentials_from_clientsecrets_and_code"></a>
+<div>
+<table class="details" border="1" cellpadding="3"
+ cellspacing="0" width="100%" bgcolor="white">
+<tr><td>
+ <table width="100%" cellpadding="0" cellspacing="0" border="0">
+ <tr valign="top"><td>
+ <h3 class="epydoc"><span class="sig"><span class="sig-name">credentials_from_clientsecrets_and_code</span>(<span class="sig-arg">filename</span>,
+ <span class="sig-arg">scope</span>,
+ <span class="sig-arg">code</span>,
+ <span class="sig-arg">message</span>=<span class="sig-default">None</span>,
+ <span class="sig-arg">redirect_uri</span>=<span class="sig-default"><code class="variable-quote">'</code><code class="variable-string">postmessage</code><code class="variable-quote">'</code></span>,
+ <span class="sig-arg">http</span>=<span class="sig-default">None</span>)</span>
+ </h3>
+ </td><td align="right" valign="top"
+ ><span class="codelink"><a href="oauth2client.client-pysrc.html#credentials_from_clientsecrets_and_code">source code</a></span>
+ </td>
+ </tr></table>
+
+ <pre class="literalblock">
+Returns OAuth2Credentials from a clientsecrets file and an auth code.
+
+Will create the right kind of Flow based on the contents of the clientsecrets
+file or will raise InvalidClientSecretsError for unknown types of Flows.
+
+Args:
+ filename: string, File name of clientsecrets.
+ scope: string or list of strings, scope(s) to request.
+ code: string, An authroization code, most likely passed down from
+ the client
+ message: string, A friendly string to display to the user if the
+ clientsecrets file is missing or invalid. If message is provided then
+ sys.exit will be called in the case of an error. If message in not
+ provided then clientsecrets.InvalidClientSecretsError will be raised.
+ redirect_uri: string, this is generally set to 'postmessage' to match the
+ redirect_uri that the client specified
+ http: httplib2.Http, optional http instance to use to do the fetch
+
+Returns:
+ An OAuth2Credentials object.
+
+Raises:
+ FlowExchangeError if the authorization code cannot be exchanged for an
+ access token
+ UnknownClientSecretsFlowError if the file describes an unknown kind of Flow.
+ clientsecrets.InvalidClientSecretsError if the clientsecrets file is
+ invalid.
+
+</pre>
+ <dl class="fields">
+ </dl>
+</td></tr></table>
+</div>
<a name="flow_from_clientsecrets"></a>
<div>
<table class="details" border="1" cellpadding="3"
@@ -566,7 +712,7 @@
<table border="0" cellpadding="0" cellspacing="0" width="100%%">
<tr>
<td align="left" class="footer">
- Generated by Epydoc 3.0.1 on Tue Jun 5 09:03:05 2012
+ Generated by Epydoc 3.0.1 on Thu Jun 14 08:01:54 2012
</td>
<td align="right" class="footer">
<a target="mainFrame" href="http://epydoc.sourceforge.net"
diff --git a/docs/epy/oauth2client.client-pysrc.html b/docs/epy/oauth2client.client-pysrc.html
index 0bc92a2..3ebb181 100644
--- a/docs/epy/oauth2client.client-pysrc.html
+++ b/docs/epy/oauth2client.client-pysrc.html
@@ -102,8 +102,9 @@
<a name="L47"></a><tt class="py-lineno"> 47</tt> <tt class="py-line"><tt class="py-keyword">except</tt> <tt class="py-name">ImportError</tt><tt class="py-op">:</tt> </tt>
<a name="L48"></a><tt class="py-lineno"> 48</tt> <tt class="py-line"> <tt class="py-keyword">from</tt> <tt class="py-name">cgi</tt> <tt class="py-keyword">import</tt> <tt class="py-name">parse_qsl</tt> </tt>
<a name="L49"></a><tt class="py-lineno"> 49</tt> <tt class="py-line"> </tt>
-<a name="L50"></a><tt class="py-lineno"> 50</tt> <tt class="py-line"><tt id="link-13" class="py-name" targets="Variable apiclient.discovery.logger=apiclient.discovery-module.html#logger,Variable oauth2client.client.logger=oauth2client.client-module.html#logger,Variable oauth2client.multistore_file.logger=oauth2client.multistore_file-module.html#logger"><a title="apiclient.discovery.logger
+<a name="L50"></a><tt class="py-lineno"> 50</tt> <tt class="py-line"><tt id="link-13" class="py-name" targets="Variable apiclient.discovery.logger=apiclient.discovery-module.html#logger,Variable oauth2client.client.logger=oauth2client.client-module.html#logger,Variable oauth2client.locked_file.logger=oauth2client.locked_file-module.html#logger,Variable oauth2client.multistore_file.logger=oauth2client.multistore_file-module.html#logger"><a title="apiclient.discovery.logger
oauth2client.client.logger
+oauth2client.locked_file.logger
oauth2client.multistore_file.logger" class="py-name" href="#" onclick="return doclink('link-13', 'logger', 'link-13');">logger</a></tt> <tt class="py-op">=</tt> <tt class="py-name">logging</tt><tt class="py-op">.</tt><tt class="py-name">getLogger</tt><tt class="py-op">(</tt><tt class="py-name">__name__</tt><tt class="py-op">)</tt> </tt>
<a name="L51"></a><tt class="py-lineno"> 51</tt> <tt class="py-line"> </tt>
<a name="L52"></a><tt class="py-lineno"> 52</tt> <tt class="py-line"><tt class="py-comment"># Expiry is stored in RFC3339 UTC format</tt> </tt>
@@ -509,6 +510,7 @@
<a name="L400"></a><tt class="py-lineno"> 400</tt> <tt class="py-line"> <tt class="py-keyword">if</tt> <tt class="py-keyword">not</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">access_token</tt><tt class="py-op">:</tt> </tt>
<a name="L401"></a><tt class="py-lineno"> 401</tt> <tt class="py-line"> <tt id="link-45" 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-45', '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">'Attempting refresh to obtain initial access_token'</tt><tt class="py-op">)</tt> </tt>
<a name="L402"></a><tt class="py-lineno"> 402</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-46" class="py-name" targets="Method oauth2client.appengine.AppAssertionCredentials._refresh()=oauth2client.appengine.AppAssertionCredentials-class.html#_refresh,Method oauth2client.client.AccessTokenCredentials._refresh()=oauth2client.client.AccessTokenCredentials-class.html#_refresh,Method oauth2client.client.OAuth2Credentials._refresh()=oauth2client.client.OAuth2Credentials-class.html#_refresh"><a title="oauth2client.appengine.AppAssertionCredentials._refresh
oauth2client.client.AccessTokenCredentials._refresh
@@ -533,6 +535,7 @@
<a name="L419"></a><tt class="py-lineno"> 419</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">401</tt><tt class="py-op">:</tt> </tt>
<a name="L420"></a><tt class="py-lineno"> 420</tt> <tt class="py-line"> <tt id="link-48" 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-48', '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 due to a 401'</tt><tt class="py-op">)</tt> </tt>
<a name="L421"></a><tt class="py-lineno"> 421</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-49" class="py-name"><a title="oauth2client.appengine.AppAssertionCredentials._refresh
oauth2client.client.AccessTokenCredentials._refresh
@@ -638,6 +641,7 @@
<a name="L500"></a><tt class="py-lineno"> 500</tt> <tt class="py-line"> <tt class="py-keyword">if</tt> <tt class="py-name">now</tt> <tt class="py-op">>=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">token_expiry</tt><tt class="py-op">:</tt> </tt>
<a name="L501"></a><tt class="py-lineno"> 501</tt> <tt class="py-line"> <tt id="link-66" 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-66', '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">'access_token is expired. Now: %s, token_expiry: %s'</tt><tt class="py-op">,</tt> </tt>
<a name="L502"></a><tt class="py-lineno"> 502</tt> <tt class="py-line"> <tt class="py-name">now</tt><tt class="py-op">,</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">token_expiry</tt><tt class="py-op">)</tt> </tt>
<a name="L503"></a><tt class="py-lineno"> 503</tt> <tt class="py-line"> <tt class="py-keyword">return</tt> <tt class="py-name">True</tt> </tt>
@@ -721,6 +725,7 @@
<a name="L575"></a><tt class="py-lineno"> 575</tt> <tt class="py-line"> <tt class="py-name">new_cred</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">access_token</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
<a name="L576"></a><tt class="py-lineno"> 576</tt> <tt class="py-line"> <tt id="link-71" 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-71', '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">'Updated access_token read from Storage'</tt><tt class="py-op">)</tt> </tt>
<a name="L577"></a><tt class="py-lineno"> 577</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-72" class="py-name" targets="Method oauth2client.client.OAuth2Credentials._updateFromCredential()=oauth2client.client.OAuth2Credentials-class.html#_updateFromCredential"><a title="oauth2client.client.OAuth2Credentials._updateFromCredential" class="py-name" href="#" onclick="return doclink('link-72', '_updateFromCredential', 'link-72');">_updateFromCredential</a></tt><tt class="py-op">(</tt><tt class="py-name">new_cred</tt><tt class="py-op">)</tt> </tt>
<a name="L578"></a><tt class="py-lineno"> 578</tt> <tt class="py-line"> <tt class="py-keyword">else</tt><tt class="py-op">:</tt> </tt>
@@ -746,6 +751,7 @@
<a name="L595"></a><tt class="py-lineno"> 595</tt> <tt class="py-line"> </tt>
<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>
<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>
@@ -773,6 +779,7 @@
<a name="L613"></a><tt class="py-lineno"> 613</tt> <tt class="py-line"> <tt class="py-comment"># so we flag the credentials as such.</tt> </tt>
<a name="L614"></a><tt class="py-lineno"> 614</tt> <tt class="py-line"> <tt id="link-81" 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-81', '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="L615"></a><tt class="py-lineno"> 615</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="L616"></a><tt class="py-lineno"> 616</tt> <tt class="py-line"> <tt class="py-keyword">try</tt><tt class="py-op">:</tt> </tt>
@@ -830,7 +837,7 @@
<a name="L664"></a><tt class="py-lineno"> 664</tt> <tt class="py-line"><tt class="py-docstring"> store: callable, a callable that when passed a Credential</tt> </tt>
<a name="L665"></a><tt class="py-lineno"> 665</tt> <tt class="py-line"><tt class="py-docstring"> will store the credential back to where it came from.</tt> </tt>
<a name="L666"></a><tt class="py-lineno"> 666</tt> <tt class="py-line"><tt class="py-docstring"> """</tt> </tt>
-<a name="L667"></a><tt class="py-lineno"> 667</tt> <tt class="py-line"> <tt class="py-name">super</tt><tt class="py-op">(</tt><tt id="link-85" class="py-name" targets="Class oauth2client.client.AccessTokenCredentials=oauth2client.client.AccessTokenCredentials-class.html"><a title="oauth2client.client.AccessTokenCredentials" class="py-name" href="#" onclick="return doclink('link-85', 'AccessTokenCredentials', 'link-85');">AccessTokenCredentials</a></tt><tt class="py-op">,</tt> <tt class="py-name">self</tt><tt class="py-op">)</tt><tt class="py-op">.</tt><tt id="link-86" class="py-name" targets="Method apiclient.errors.BatchError.__init__()=apiclient.errors.BatchError-class.html#__init__,Method apiclient.errors.HttpError.__init__()=apiclient.errors.HttpError-class.html#__init__,Method apiclient.errors.UnexpectedBodyError.__init__()=apiclient.errors.UnexpectedBodyError-class.html#__init__,Method apiclient.errors.UnexpectedMethodError.__init__()=apiclient.errors.UnexpectedMethodError-class.html#__init__,Method apiclient.http.BatchHttpRequest.__init__()=apiclient.http.BatchHttpRequest-class.html#__init__,Method apiclient.http.HttpMock.__init__()=apiclient.http.HttpMock-class.html#__init__,Method apiclient.http.HttpMockSequence.__init__()=apiclient.http.HttpMockSequence-class.html#__init__,Method apiclient.http.HttpRequest.__init__()=apiclient.http.HttpRequest-class.html#__init__,Method apiclient.http.HttpRequestMock.__init__()=apiclient.http.HttpRequestMock-class.html#__init__,Method apiclient.http.MediaFileUpload.__init__()=apiclient.http.MediaFileUpload-class.html#__init__,Method apiclient.http.MediaInMemoryUpload.__init__()=apiclient.http.MediaInMemoryUpload-class.html#__init__,Method apiclient.http.MediaUploadProgress.__init__()=apiclient.http.MediaUploadProgress-class.html#__init__,Method apiclient.http.RequestMockBuilder.__init__()=apiclient.http.RequestMockBuilder-class.html#__init__,Method apiclient.model.JsonModel.__init__()=apiclient.model.JsonModel-class.html#__init__,Method apiclient.model.ProtocolBufferModel.__init__()=apiclient.model.ProtocolBufferModel-class.html#__init__,Method apiclient.schema.Schemas.__init__()=apiclient.schema.Schemas-class.html#__init__,Method apiclient.schema._SchemaToStruct.__init__()=apiclient.schema._SchemaToStruct-class.html#__init__,Method oauth2client.appengine.AppAssertionCredentials.__init__()=oauth2client.appengine.AppAssertionCredentials-class.html#__init__,Method oauth2client.appengine.OAuth2Decorator.__init__()=oauth2client.appengine.OAuth2Decorator-class.html#__init__,Method oauth2client.appengine.OAuth2DecoratorFromClientSecrets.__init__()=oauth2client.appengine.OAuth2DecoratorFromClientSecrets-class.html#__init__,Method oauth2client.appengine.StorageByKeyName.__init__()=oauth2client.appengine.StorageByKeyName-class.html#__init__,Method oauth2client.client.AccessTokenCredentials.__init__()=oauth2client.client.AccessTokenCredentials-class.html#__init__,Method oauth2client.client.AssertionCredentials.__init__()=oauth2client.client.AssertionCredentials-class.html#__init__,Method oauth2client.client.MemoryCache.__init__()=oauth2client.client.MemoryCache-class.html#__init__,Method oauth2client.client.OAuth2Credentials.__init__()=oauth2client.client.OAuth2Credentials-class.html#__init__,Method oauth2client.client.OAuth2WebServerFlow.__init__()=oauth2client.client.OAuth2WebServerFlow-class.html#__init__,Method oauth2client.client.SignedJwtAssertionCredentials.__init__()=oauth2client.client.SignedJwtAssertionCredentials-class.html#__init__,Method oauth2client.crypt.Signer.__init__()=oauth2client.crypt.Signer-class.html#__init__,Method oauth2client.crypt.Verifier.__init__()=oauth2client.crypt.Verifier-class.html#__init__,Method oauth2client.django_orm.Storage.__init__()=oauth2client.django_orm.Storage-class.html#__init__,Method oauth2client.file.Storage.__init__()=oauth2client.file.Storage-class.html#__init__,Method oauth2client.multistore_file._MultiStore._Storage.__init__()=oauth2client.multistore_file._MultiStore._Storage-class.html#__init__,Method oauth2client.multistore_file._MultiStore.__init__()=oauth2client.multistore_file._MultiStore-class.html#__init__"><a title="apiclient.errors.BatchError.__init__
+<a name="L667"></a><tt class="py-lineno"> 667</tt> <tt class="py-line"> <tt class="py-name">super</tt><tt class="py-op">(</tt><tt id="link-85" class="py-name" targets="Class oauth2client.client.AccessTokenCredentials=oauth2client.client.AccessTokenCredentials-class.html"><a title="oauth2client.client.AccessTokenCredentials" class="py-name" href="#" onclick="return doclink('link-85', 'AccessTokenCredentials', 'link-85');">AccessTokenCredentials</a></tt><tt class="py-op">,</tt> <tt class="py-name">self</tt><tt class="py-op">)</tt><tt class="py-op">.</tt><tt id="link-86" class="py-name" targets="Method apiclient.errors.BatchError.__init__()=apiclient.errors.BatchError-class.html#__init__,Method apiclient.errors.HttpError.__init__()=apiclient.errors.HttpError-class.html#__init__,Method apiclient.errors.UnexpectedBodyError.__init__()=apiclient.errors.UnexpectedBodyError-class.html#__init__,Method apiclient.errors.UnexpectedMethodError.__init__()=apiclient.errors.UnexpectedMethodError-class.html#__init__,Method apiclient.http.BatchHttpRequest.__init__()=apiclient.http.BatchHttpRequest-class.html#__init__,Method apiclient.http.HttpMock.__init__()=apiclient.http.HttpMock-class.html#__init__,Method apiclient.http.HttpMockSequence.__init__()=apiclient.http.HttpMockSequence-class.html#__init__,Method apiclient.http.HttpRequest.__init__()=apiclient.http.HttpRequest-class.html#__init__,Method apiclient.http.HttpRequestMock.__init__()=apiclient.http.HttpRequestMock-class.html#__init__,Method apiclient.http.MediaFileUpload.__init__()=apiclient.http.MediaFileUpload-class.html#__init__,Method apiclient.http.MediaInMemoryUpload.__init__()=apiclient.http.MediaInMemoryUpload-class.html#__init__,Method apiclient.http.MediaIoBaseUpload.__init__()=apiclient.http.MediaIoBaseUpload-class.html#__init__,Method apiclient.http.MediaUploadProgress.__init__()=apiclient.http.MediaUploadProgress-class.html#__init__,Method apiclient.http.RequestMockBuilder.__init__()=apiclient.http.RequestMockBuilder-class.html#__init__,Method apiclient.model.JsonModel.__init__()=apiclient.model.JsonModel-class.html#__init__,Method apiclient.model.ProtocolBufferModel.__init__()=apiclient.model.ProtocolBufferModel-class.html#__init__,Method apiclient.schema.Schemas.__init__()=apiclient.schema.Schemas-class.html#__init__,Method apiclient.schema._SchemaToStruct.__init__()=apiclient.schema._SchemaToStruct-class.html#__init__,Method oauth2client.appengine.AppAssertionCredentials.__init__()=oauth2client.appengine.AppAssertionCredentials-class.html#__init__,Method oauth2client.appengine.OAuth2Decorator.__init__()=oauth2client.appengine.OAuth2Decorator-class.html#__init__,Method oauth2client.appengine.OAuth2DecoratorFromClientSecrets.__init__()=oauth2client.appengine.OAuth2DecoratorFromClientSecrets-class.html#__init__,Method oauth2client.appengine.StorageByKeyName.__init__()=oauth2client.appengine.StorageByKeyName-class.html#__init__,Method oauth2client.client.AccessTokenCredentials.__init__()=oauth2client.client.AccessTokenCredentials-class.html#__init__,Method oauth2client.client.AssertionCredentials.__init__()=oauth2client.client.AssertionCredentials-class.html#__init__,Method oauth2client.client.MemoryCache.__init__()=oauth2client.client.MemoryCache-class.html#__init__,Method oauth2client.client.OAuth2Credentials.__init__()=oauth2client.client.OAuth2Credentials-class.html#__init__,Method oauth2client.client.OAuth2WebServerFlow.__init__()=oauth2client.client.OAuth2WebServerFlow-class.html#__init__,Method oauth2client.client.SignedJwtAssertionCredentials.__init__()=oauth2client.client.SignedJwtAssertionCredentials-class.html#__init__,Method oauth2client.crypt.Signer.__init__()=oauth2client.crypt.Signer-class.html#__init__,Method oauth2client.crypt.Verifier.__init__()=oauth2client.crypt.Verifier-class.html#__init__,Method oauth2client.django_orm.Storage.__init__()=oauth2client.django_orm.Storage-class.html#__init__,Method oauth2client.file.Storage.__init__()=oauth2client.file.Storage-class.html#__init__,Method oauth2client.locked_file.LockedFile.__init__()=oauth2client.locked_file.LockedFile-class.html#__init__,Method oauth2client.locked_file._Opener.__init__()=oauth2client.locked_file._Opener-class.html#__init__,Method oauth2client.multistore_file._MultiStore._Storage.__init__()=oauth2client.multistore_file._MultiStore._Storage-class.html#__init__,Method oauth2client.multistore_file._MultiStore.__init__()=oauth2client.multistore_file._MultiStore-class.html#__init__"><a title="apiclient.errors.BatchError.__init__
apiclient.errors.HttpError.__init__
apiclient.errors.UnexpectedBodyError.__init__
apiclient.errors.UnexpectedMethodError.__init__
@@ -841,6 +848,7 @@
apiclient.http.HttpRequestMock.__init__
apiclient.http.MediaFileUpload.__init__
apiclient.http.MediaInMemoryUpload.__init__
+apiclient.http.MediaIoBaseUpload.__init__
apiclient.http.MediaUploadProgress.__init__
apiclient.http.RequestMockBuilder.__init__
apiclient.model.JsonModel.__init__
@@ -861,6 +869,8 @@
oauth2client.crypt.Verifier.__init__
oauth2client.django_orm.Storage.__init__
oauth2client.file.Storage.__init__
+oauth2client.locked_file.LockedFile.__init__
+oauth2client.locked_file._Opener.__init__
oauth2client.multistore_file._MultiStore._Storage.__init__
oauth2client.multistore_file._MultiStore.__init__" class="py-name" href="#" onclick="return doclink('link-86', '__init__', 'link-86');">__init__</a></tt><tt class="py-op">(</tt> </tt>
<a name="L668"></a><tt class="py-lineno"> 668</tt> <tt class="py-line"> <tt class="py-name">access_token</tt><tt class="py-op">,</tt> </tt>
@@ -919,6 +929,7 @@
apiclient.http.HttpRequestMock.__init__
apiclient.http.MediaFileUpload.__init__
apiclient.http.MediaInMemoryUpload.__init__
+apiclient.http.MediaIoBaseUpload.__init__
apiclient.http.MediaUploadProgress.__init__
apiclient.http.RequestMockBuilder.__init__
apiclient.model.JsonModel.__init__
@@ -939,6 +950,8 @@
oauth2client.crypt.Verifier.__init__
oauth2client.django_orm.Storage.__init__
oauth2client.file.Storage.__init__
+oauth2client.locked_file.LockedFile.__init__
+oauth2client.locked_file._Opener.__init__
oauth2client.multistore_file._MultiStore._Storage.__init__
oauth2client.multistore_file._MultiStore.__init__" class="py-name" href="#" onclick="return doclink('link-91', '__init__', 'link-86');">__init__</a></tt><tt class="py-op">(</tt> </tt>
<a name="L714"></a><tt class="py-lineno"> 714</tt> <tt class="py-line"> <tt class="py-name">None</tt><tt class="py-op">,</tt> </tt>
@@ -1018,6 +1031,7 @@
apiclient.http.HttpRequestMock.__init__
apiclient.http.MediaFileUpload.__init__
apiclient.http.MediaInMemoryUpload.__init__
+apiclient.http.MediaIoBaseUpload.__init__
apiclient.http.MediaUploadProgress.__init__
apiclient.http.RequestMockBuilder.__init__
apiclient.model.JsonModel.__init__
@@ -1038,6 +1052,8 @@
oauth2client.crypt.Verifier.__init__
oauth2client.django_orm.Storage.__init__
oauth2client.file.Storage.__init__
+oauth2client.locked_file.LockedFile.__init__
+oauth2client.locked_file._Opener.__init__
oauth2client.multistore_file._MultiStore._Storage.__init__
oauth2client.multistore_file._MultiStore.__init__" class="py-name" href="#" onclick="return doclink('link-97', '__init__', 'link-86');">__init__</a></tt><tt class="py-op">(</tt> </tt>
<a name="L778"></a><tt class="py-lineno"> 778</tt> <tt class="py-line"> <tt class="py-string">'http://oauth.net/grant_type/jwt/1.0/bearer'</tt><tt class="py-op">,</tt> </tt>
@@ -1083,6 +1099,7 @@
<a name="L817"></a><tt class="py-lineno"> 817</tt> <tt class="py-line"> <tt class="py-name">payload</tt><tt class="py-op">.</tt><tt class="py-name">update</tt><tt class="py-op">(</tt><tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">kwargs</tt><tt class="py-op">)</tt> </tt>
<a name="L818"></a><tt class="py-lineno"> 818</tt> <tt class="py-line"> <tt id="link-102" 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-102', 'logger', 'link-13');">logger</a></tt><tt class="py-op">.</tt><tt class="py-name">debug</tt><tt class="py-op">(</tt><tt class="py-name">str</tt><tt class="py-op">(</tt><tt class="py-name">payload</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
<a name="L819"></a><tt class="py-lineno"> 819</tt> <tt class="py-line"> </tt>
<a name="L820"></a><tt class="py-lineno"> 820</tt> <tt class="py-line"> <tt class="py-keyword">return</tt> <tt id="link-103" class="py-name"><a title="oauth2client.crypt.make_signed_jwt" class="py-name" href="#" onclick="return doclink('link-103', 'make_signed_jwt', 'link-8');">make_signed_jwt</a></tt><tt class="py-op">(</tt> </tt>
@@ -1157,194 +1174,272 @@
<a name="L882"></a><tt class="py-lineno"> 882</tt> <tt class="py-line"> <tt class="py-keyword">return</tt> <tt class="py-name">simplejson</tt><tt class="py-op">.</tt><tt id="link-118" class="py-name"><a title="oauth2client.clientsecrets.loads" class="py-name" href="#" onclick="return doclink('link-118', 'loads', 'link-26');">loads</a></tt><tt class="py-op">(</tt><tt id="link-119" class="py-name" targets="Function oauth2client.client._urlsafe_b64decode()=oauth2client.client-module.html#_urlsafe_b64decode,Function oauth2client.crypt._urlsafe_b64decode()=oauth2client.crypt-module.html#_urlsafe_b64decode"><a title="oauth2client.client._urlsafe_b64decode
oauth2client.crypt._urlsafe_b64decode" class="py-name" href="#" onclick="return doclink('link-119', '_urlsafe_b64decode', 'link-119');">_urlsafe_b64decode</a></tt><tt class="py-op">(</tt><tt class="py-name">segments</tt><tt class="py-op">[</tt><tt class="py-number">1</tt><tt class="py-op">]</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
</div><a name="L883"></a><tt class="py-lineno"> 883</tt> <tt class="py-line"> </tt>
-<a name="OAuth2WebServerFlow"></a><div id="OAuth2WebServerFlow-def"><a name="L884"></a><tt class="py-lineno"> 884</tt> <tt class="py-line"> </tt>
-<a name="L885"></a><tt class="py-lineno"> 885</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>
-</div><div id="OAuth2WebServerFlow-collapsed" style="display:none;" pad="++++" indent="++++"></div><div id="OAuth2WebServerFlow-expanded"><a name="L886"></a><tt class="py-lineno"> 886</tt> <tt class="py-line"> <tt class="py-docstring">"""Does the Web Server Flow for OAuth 2.0.</tt> </tt>
-<a name="L887"></a><tt class="py-lineno"> 887</tt> <tt class="py-line"><tt class="py-docstring"></tt> </tt>
-<a name="L888"></a><tt class="py-lineno"> 888</tt> <tt class="py-line"><tt class="py-docstring"> OAuth2Credentials objects may be safely pickled and unpickled.</tt> </tt>
-<a name="L889"></a><tt class="py-lineno"> 889</tt> <tt class="py-line"><tt class="py-docstring"> """</tt> </tt>
-<a name="L890"></a><tt class="py-lineno"> 890</tt> <tt class="py-line"> </tt>
-<a name="OAuth2WebServerFlow.__init__"></a><div id="OAuth2WebServerFlow.__init__-def"><a name="L891"></a><tt class="py-lineno"> 891</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 class="py-param">user_agent</tt><tt class="py-op">=</tt><tt class="py-name">None</tt><tt class="py-op">,</tt> </tt>
-<a name="L892"></a><tt class="py-lineno"> 892</tt> <tt class="py-line"> <tt class="py-param">auth_uri</tt><tt class="py-op">=</tt><tt class="py-string">'https://accounts.google.com/o/oauth2/auth'</tt><tt class="py-op">,</tt> </tt>
-<a name="L893"></a><tt class="py-lineno"> 893</tt> <tt class="py-line"> <tt class="py-param">token_uri</tt><tt class="py-op">=</tt><tt class="py-string">'https://accounts.google.com/o/oauth2/token'</tt><tt class="py-op">,</tt> </tt>
-<a name="L894"></a><tt class="py-lineno"> 894</tt> <tt class="py-line"> <tt class="py-op">**</tt><tt class="py-param">kwargs</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-</div><div id="OAuth2WebServerFlow.__init__-collapsed" style="display:none;" pad="++++" indent="++++++"></div><div id="OAuth2WebServerFlow.__init__-expanded"><a name="L895"></a><tt class="py-lineno"> 895</tt> <tt class="py-line"> <tt class="py-docstring">"""Constructor for OAuth2WebServerFlow.</tt> </tt>
-<a name="L896"></a><tt class="py-lineno"> 896</tt> <tt class="py-line"><tt class="py-docstring"></tt> </tt>
-<a name="L897"></a><tt class="py-lineno"> 897</tt> <tt class="py-line"><tt class="py-docstring"> Args:</tt> </tt>
-<a name="L898"></a><tt class="py-lineno"> 898</tt> <tt class="py-line"><tt class="py-docstring"> client_id: string, client identifier.</tt> </tt>
-<a name="L899"></a><tt class="py-lineno"> 899</tt> <tt class="py-line"><tt class="py-docstring"> client_secret: string client secret.</tt> </tt>
-<a name="L900"></a><tt class="py-lineno"> 900</tt> <tt class="py-line"><tt class="py-docstring"> scope: string or list of strings, scope(s) of the credentials being</tt> </tt>
-<a name="L901"></a><tt class="py-lineno"> 901</tt> <tt class="py-line"><tt class="py-docstring"> requested.</tt> </tt>
-<a name="L902"></a><tt class="py-lineno"> 902</tt> <tt class="py-line"><tt class="py-docstring"> user_agent: string, HTTP User-Agent to provide for this application.</tt> </tt>
-<a name="L903"></a><tt class="py-lineno"> 903</tt> <tt class="py-line"><tt class="py-docstring"> auth_uri: string, URI for authorization endpoint. For convenience</tt> </tt>
-<a name="L904"></a><tt class="py-lineno"> 904</tt> <tt class="py-line"><tt class="py-docstring"> defaults to Google's endpoints but any OAuth 2.0 provider can be used.</tt> </tt>
-<a name="L905"></a><tt class="py-lineno"> 905</tt> <tt class="py-line"><tt class="py-docstring"> token_uri: string, URI for token endpoint. For convenience</tt> </tt>
-<a name="L906"></a><tt class="py-lineno"> 906</tt> <tt class="py-line"><tt class="py-docstring"> defaults to Google's endpoints but any OAuth 2.0 provider can be used.</tt> </tt>
-<a name="L907"></a><tt class="py-lineno"> 907</tt> <tt class="py-line"><tt class="py-docstring"> **kwargs: dict, The keyword arguments are all optional and required</tt> </tt>
-<a name="L908"></a><tt class="py-lineno"> 908</tt> <tt class="py-line"><tt class="py-docstring"> parameters for the OAuth calls.</tt> </tt>
-<a name="L909"></a><tt class="py-lineno"> 909</tt> <tt class="py-line"><tt class="py-docstring"> """</tt> </tt>
-<a name="L910"></a><tt class="py-lineno"> 910</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">client_id</tt> <tt class="py-op">=</tt> <tt class="py-name">client_id</tt> </tt>
-<a name="L911"></a><tt class="py-lineno"> 911</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">client_secret</tt> </tt>
-<a name="L912"></a><tt class="py-lineno"> 912</tt> <tt class="py-line"> <tt class="py-keyword">if</tt> <tt class="py-name">type</tt><tt class="py-op">(</tt><tt class="py-name">scope</tt><tt class="py-op">)</tt> <tt class="py-keyword">is</tt> <tt class="py-name">list</tt><tt class="py-op">:</tt> </tt>
-<a name="L913"></a><tt class="py-lineno"> 913</tt> <tt class="py-line"> <tt class="py-name">scope</tt> <tt class="py-op">=</tt> <tt class="py-string">' '</tt><tt class="py-op">.</tt><tt class="py-name">join</tt><tt class="py-op">(</tt><tt class="py-name">scope</tt><tt class="py-op">)</tt> </tt>
-<a name="L914"></a><tt class="py-lineno"> 914</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">scope</tt> <tt class="py-op">=</tt> <tt class="py-name">scope</tt> </tt>
-<a name="L915"></a><tt class="py-lineno"> 915</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">user_agent</tt> <tt class="py-op">=</tt> <tt class="py-name">user_agent</tt> </tt>
-<a name="L916"></a><tt class="py-lineno"> 916</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">auth_uri</tt> <tt class="py-op">=</tt> <tt class="py-name">auth_uri</tt> </tt>
-<a name="L917"></a><tt class="py-lineno"> 917</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">token_uri</tt> </tt>
-<a name="L918"></a><tt class="py-lineno"> 918</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-op">{</tt> </tt>
-<a name="L919"></a><tt class="py-lineno"> 919</tt> <tt class="py-line"> <tt class="py-string">'access_type'</tt><tt class="py-op">:</tt> <tt class="py-string">'offline'</tt><tt class="py-op">,</tt> </tt>
-<a name="L920"></a><tt class="py-lineno"> 920</tt> <tt class="py-line"> <tt class="py-op">}</tt> </tt>
-<a name="L921"></a><tt class="py-lineno"> 921</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>
-<a name="L922"></a><tt class="py-lineno"> 922</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">None</tt> </tt>
-</div><a name="L923"></a><tt class="py-lineno"> 923</tt> <tt class="py-line"> </tt>
-<a name="OAuth2WebServerFlow.step1_get_authorize_url"></a><div id="OAuth2WebServerFlow.step1_get_authorize_url-def"><a name="L924"></a><tt class="py-lineno"> 924</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 id="link-120" class="py-name"><a title="oauth2client.client.OOB_CALLBACK_URN" class="py-name" href="#" onclick="return doclink('link-120', 'OOB_CALLBACK_URN', 'link-16');">OOB_CALLBACK_URN</a></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="L925"></a><tt class="py-lineno"> 925</tt> <tt class="py-line"> <tt class="py-docstring">"""Returns a URI to redirect to the provider.</tt> </tt>
+<a name="credentials_from_code"></a><div id="credentials_from_code-def"><a name="L884"></a><tt class="py-lineno"> 884</tt> <a class="py-toggle" href="#" id="credentials_from_code-toggle" onclick="return toggle('credentials_from_code');">-</a><tt class="py-line"><tt class="py-keyword">def</tt> <a class="py-def-name" href="oauth2client.client-module.html#credentials_from_code">credentials_from_code</a><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 class="py-param">code</tt><tt class="py-op">,</tt> </tt>
+<a name="L885"></a><tt class="py-lineno"> 885</tt> <tt class="py-line"> <tt class="py-param">redirect_uri</tt> <tt class="py-op">=</tt> <tt class="py-string">'postmessage'</tt><tt class="py-op">,</tt> </tt>
+<a name="L886"></a><tt class="py-lineno"> 886</tt> <tt class="py-line"> <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-param">user_agent</tt><tt class="py-op">=</tt><tt class="py-name">None</tt><tt class="py-op">,</tt> </tt>
+<a name="L887"></a><tt class="py-lineno"> 887</tt> <tt class="py-line"> <tt class="py-param">token_uri</tt><tt class="py-op">=</tt><tt class="py-string">'https://accounts.google.com/o/oauth2/token'</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+</div><div id="credentials_from_code-collapsed" style="display:none;" pad="++++" indent="++++"></div><div id="credentials_from_code-expanded"><a name="L888"></a><tt class="py-lineno"> 888</tt> <tt class="py-line"> <tt class="py-docstring">"""Exchanges an authorization code for an OAuth2Credentials object.</tt> </tt>
+<a name="L889"></a><tt class="py-lineno"> 889</tt> <tt class="py-line"><tt class="py-docstring"></tt> </tt>
+<a name="L890"></a><tt class="py-lineno"> 890</tt> <tt class="py-line"><tt class="py-docstring"> Args:</tt> </tt>
+<a name="L891"></a><tt class="py-lineno"> 891</tt> <tt class="py-line"><tt class="py-docstring"> client_id: string, client identifier.</tt> </tt>
+<a name="L892"></a><tt class="py-lineno"> 892</tt> <tt class="py-line"><tt class="py-docstring"> client_secret: string, client secret.</tt> </tt>
+<a name="L893"></a><tt class="py-lineno"> 893</tt> <tt class="py-line"><tt class="py-docstring"> scope: string or list of strings, scope(s) to request.</tt> </tt>
+<a name="L894"></a><tt class="py-lineno"> 894</tt> <tt class="py-line"><tt class="py-docstring"> code: string, An authroization code, most likely passed down from</tt> </tt>
+<a name="L895"></a><tt class="py-lineno"> 895</tt> <tt class="py-line"><tt class="py-docstring"> the client</tt> </tt>
+<a name="L896"></a><tt class="py-lineno"> 896</tt> <tt class="py-line"><tt class="py-docstring"> redirect_uri: string, this is generally set to 'postmessage' to match the</tt> </tt>
+<a name="L897"></a><tt class="py-lineno"> 897</tt> <tt class="py-line"><tt class="py-docstring"> redirect_uri that the client specified</tt> </tt>
+<a name="L898"></a><tt class="py-lineno"> 898</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="L899"></a><tt class="py-lineno"> 899</tt> <tt class="py-line"><tt class="py-docstring"> token_uri: string, URI for token endpoint. For convenience</tt> </tt>
+<a name="L900"></a><tt class="py-lineno"> 900</tt> <tt class="py-line"><tt class="py-docstring"> defaults to Google's endpoints but any OAuth 2.0 provider can be used.</tt> </tt>
+<a name="L901"></a><tt class="py-lineno"> 901</tt> <tt class="py-line"><tt class="py-docstring"> Returns:</tt> </tt>
+<a name="L902"></a><tt class="py-lineno"> 902</tt> <tt class="py-line"><tt class="py-docstring"> An OAuth2Credentials object.</tt> </tt>
+<a name="L903"></a><tt class="py-lineno"> 903</tt> <tt class="py-line"><tt class="py-docstring"></tt> </tt>
+<a name="L904"></a><tt class="py-lineno"> 904</tt> <tt class="py-line"><tt class="py-docstring"> Raises:</tt> </tt>
+<a name="L905"></a><tt class="py-lineno"> 905</tt> <tt class="py-line"><tt class="py-docstring"> FlowExchangeError if the authorization code cannot be exchanged for an</tt> </tt>
+<a name="L906"></a><tt class="py-lineno"> 906</tt> <tt class="py-line"><tt class="py-docstring"> access token</tt> </tt>
+<a name="L907"></a><tt class="py-lineno"> 907</tt> <tt class="py-line"><tt class="py-docstring"> """</tt> </tt>
+<a name="L908"></a><tt class="py-lineno"> 908</tt> <tt class="py-line"> <tt class="py-name">flow</tt> <tt class="py-op">=</tt> <tt id="link-120" class="py-name" targets="Class oauth2client.client.OAuth2WebServerFlow=oauth2client.client.OAuth2WebServerFlow-class.html"><a title="oauth2client.client.OAuth2WebServerFlow" class="py-name" href="#" onclick="return doclink('link-120', 'OAuth2WebServerFlow', 'link-120');">OAuth2WebServerFlow</a></tt><tt class="py-op">(</tt><tt class="py-name">client_id</tt><tt class="py-op">,</tt> <tt class="py-name">client_secret</tt><tt class="py-op">,</tt> <tt class="py-name">scope</tt><tt class="py-op">,</tt> <tt class="py-name">user_agent</tt><tt class="py-op">,</tt> </tt>
+<a name="L909"></a><tt class="py-lineno"> 909</tt> <tt class="py-line"> <tt class="py-string">'https://accounts.google.com/o/oauth2/auth'</tt><tt class="py-op">,</tt> </tt>
+<a name="L910"></a><tt class="py-lineno"> 910</tt> <tt class="py-line"> <tt class="py-name">token_uri</tt><tt class="py-op">)</tt> </tt>
+<a name="L911"></a><tt class="py-lineno"> 911</tt> <tt class="py-line"> </tt>
+<a name="L912"></a><tt class="py-lineno"> 912</tt> <tt class="py-line"> <tt class="py-comment"># We primarily make this call to set up the redirect_uri in the flow object</tt> </tt>
+<a name="L913"></a><tt class="py-lineno"> 913</tt> <tt class="py-line"> <tt class="py-name">uriThatWeDontReallyUse</tt> <tt class="py-op">=</tt> <tt class="py-name">flow</tt><tt class="py-op">.</tt><tt id="link-121" class="py-name" targets="Method oauth2client.client.OAuth2WebServerFlow.step1_get_authorize_url()=oauth2client.client.OAuth2WebServerFlow-class.html#step1_get_authorize_url"><a title="oauth2client.client.OAuth2WebServerFlow.step1_get_authorize_url" class="py-name" href="#" onclick="return doclink('link-121', 'step1_get_authorize_url', 'link-121');">step1_get_authorize_url</a></tt><tt class="py-op">(</tt><tt class="py-name">redirect_uri</tt><tt class="py-op">)</tt> </tt>
+<a name="L914"></a><tt class="py-lineno"> 914</tt> <tt class="py-line"> <tt id="link-122" class="py-name"><a title="oauth2client.appengine.CredentialsModel.credentials" class="py-name" href="#" onclick="return doclink('link-122', 'credentials', 'link-38');">credentials</a></tt> <tt class="py-op">=</tt> <tt class="py-name">flow</tt><tt class="py-op">.</tt><tt id="link-123" class="py-name" targets="Method oauth2client.client.OAuth2WebServerFlow.step2_exchange()=oauth2client.client.OAuth2WebServerFlow-class.html#step2_exchange"><a title="oauth2client.client.OAuth2WebServerFlow.step2_exchange" class="py-name" href="#" onclick="return doclink('link-123', 'step2_exchange', 'link-123');">step2_exchange</a></tt><tt class="py-op">(</tt><tt class="py-name">code</tt><tt class="py-op">,</tt> <tt id="link-124" class="py-name"><a title="apiclient.http
+oauth2client.appengine.OAuth2Decorator.http" class="py-name" href="#" onclick="return doclink('link-124', 'http', 'link-43');">http</a></tt><tt class="py-op">)</tt> </tt>
+<a name="L915"></a><tt class="py-lineno"> 915</tt> <tt class="py-line"> <tt class="py-keyword">return</tt> <tt id="link-125" class="py-name"><a title="oauth2client.appengine.CredentialsModel.credentials" class="py-name" href="#" onclick="return doclink('link-125', 'credentials', 'link-38');">credentials</a></tt> </tt>
+</div><a name="L916"></a><tt class="py-lineno"> 916</tt> <tt class="py-line"> </tt>
+<a name="credentials_from_clientsecrets_and_code"></a><div id="credentials_from_clientsecrets_and_code-def"><a name="L917"></a><tt class="py-lineno"> 917</tt> <tt class="py-line"> </tt>
+<a name="L918"></a><tt class="py-lineno"> 918</tt> <a class="py-toggle" href="#" id="credentials_from_clientsecrets_and_code-toggle" onclick="return toggle('credentials_from_clientsecrets_and_code');">-</a><tt class="py-line"><tt class="py-keyword">def</tt> <a class="py-def-name" href="oauth2client.client-module.html#credentials_from_clientsecrets_and_code">credentials_from_clientsecrets_and_code</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">code</tt><tt class="py-op">,</tt> </tt>
+<a name="L919"></a><tt class="py-lineno"> 919</tt> <tt class="py-line"> <tt class="py-param">message</tt> <tt class="py-op">=</tt> <tt class="py-name">None</tt><tt class="py-op">,</tt> </tt>
+<a name="L920"></a><tt class="py-lineno"> 920</tt> <tt class="py-line"> <tt class="py-param">redirect_uri</tt> <tt class="py-op">=</tt> <tt class="py-string">'postmessage'</tt><tt class="py-op">,</tt> </tt>
+<a name="L921"></a><tt class="py-lineno"> 921</tt> <tt class="py-line"> <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="credentials_from_clientsecrets_and_code-collapsed" style="display:none;" pad="++++" indent="++++"></div><div id="credentials_from_clientsecrets_and_code-expanded"><a name="L922"></a><tt class="py-lineno"> 922</tt> <tt class="py-line"> <tt class="py-docstring">"""Returns OAuth2Credentials from a clientsecrets file and an auth code.</tt> </tt>
+<a name="L923"></a><tt class="py-lineno"> 923</tt> <tt class="py-line"><tt class="py-docstring"></tt> </tt>
+<a name="L924"></a><tt class="py-lineno"> 924</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="L925"></a><tt class="py-lineno"> 925</tt> <tt class="py-line"><tt class="py-docstring"> file or will raise InvalidClientSecretsError for unknown types of Flows.</tt> </tt>
<a name="L926"></a><tt class="py-lineno"> 926</tt> <tt class="py-line"><tt class="py-docstring"></tt> </tt>
-<a name="L927"></a><tt class="py-lineno"> 927</tt> <tt class="py-line"><tt class="py-docstring"> Args:</tt> </tt>
-<a name="L928"></a><tt class="py-lineno"> 928</tt> <tt class="py-line"><tt class="py-docstring"> redirect_uri: string, Either the string 'urn:ietf:wg:oauth:2.0:oob' for</tt> </tt>
-<a name="L929"></a><tt class="py-lineno"> 929</tt> <tt class="py-line"><tt class="py-docstring"> a non-web-based application, or a URI that handles the callback from</tt> </tt>
-<a name="L930"></a><tt class="py-lineno"> 930</tt> <tt class="py-line"><tt class="py-docstring"> the authorization server.</tt> </tt>
-<a name="L931"></a><tt class="py-lineno"> 931</tt> <tt class="py-line"><tt class="py-docstring"></tt> </tt>
-<a name="L932"></a><tt class="py-lineno"> 932</tt> <tt class="py-line"><tt class="py-docstring"> If redirect_uri is 'urn:ietf:wg:oauth:2.0:oob' then pass in the</tt> </tt>
-<a name="L933"></a><tt class="py-lineno"> 933</tt> <tt class="py-line"><tt class="py-docstring"> generated verification code to step2_exchange,</tt> </tt>
-<a name="L934"></a><tt class="py-lineno"> 934</tt> <tt class="py-line"><tt class="py-docstring"> otherwise pass in the query parameters received</tt> </tt>
-<a name="L935"></a><tt class="py-lineno"> 935</tt> <tt class="py-line"><tt class="py-docstring"> at the callback uri to step2_exchange.</tt> </tt>
-<a name="L936"></a><tt class="py-lineno"> 936</tt> <tt class="py-line"><tt class="py-docstring"> """</tt> </tt>
-<a name="L937"></a><tt class="py-lineno"> 937</tt> <tt class="py-line"> </tt>
-<a name="L938"></a><tt class="py-lineno"> 938</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>
-<a name="L939"></a><tt class="py-lineno"> 939</tt> <tt class="py-line"> <tt class="py-name">query</tt> <tt class="py-op">=</tt> <tt class="py-op">{</tt> </tt>
-<a name="L940"></a><tt class="py-lineno"> 940</tt> <tt class="py-line"> <tt class="py-string">'response_type'</tt><tt class="py-op">:</tt> <tt class="py-string">'code'</tt><tt class="py-op">,</tt> </tt>
-<a name="L941"></a><tt class="py-lineno"> 941</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="L942"></a><tt class="py-lineno"> 942</tt> <tt class="py-line"> <tt class="py-string">'redirect_uri'</tt><tt class="py-op">:</tt> <tt class="py-name">redirect_uri</tt><tt class="py-op">,</tt> </tt>
-<a name="L943"></a><tt class="py-lineno"> 943</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="L944"></a><tt class="py-lineno"> 944</tt> <tt class="py-line"> <tt class="py-op">}</tt> </tt>
-<a name="L945"></a><tt class="py-lineno"> 945</tt> <tt class="py-line"> <tt class="py-name">query</tt><tt class="py-op">.</tt><tt class="py-name">update</tt><tt class="py-op">(</tt><tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">params</tt><tt class="py-op">)</tt> </tt>
-<a name="L946"></a><tt class="py-lineno"> 946</tt> <tt class="py-line"> <tt class="py-name">parts</tt> <tt class="py-op">=</tt> <tt class="py-name">list</tt><tt class="py-op">(</tt><tt class="py-name">urlparse</tt><tt class="py-op">.</tt><tt class="py-name">urlparse</tt><tt class="py-op">(</tt><tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">auth_uri</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
-<a name="L947"></a><tt class="py-lineno"> 947</tt> <tt class="py-line"> <tt class="py-name">query</tt><tt class="py-op">.</tt><tt class="py-name">update</tt><tt class="py-op">(</tt><tt class="py-name">dict</tt><tt class="py-op">(</tt><tt class="py-name">parse_qsl</tt><tt class="py-op">(</tt><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-op">)</tt><tt class="py-op">)</tt> <tt class="py-comment"># 4 is the index of the query part</tt> </tt>
-<a name="L948"></a><tt class="py-lineno"> 948</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="L949"></a><tt class="py-lineno"> 949</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="L950"></a><tt class="py-lineno"> 950</tt> <tt class="py-line"> </tt>
-<a name="OAuth2WebServerFlow.step2_exchange"></a><div id="OAuth2WebServerFlow.step2_exchange-def"><a name="L951"></a><tt class="py-lineno"> 951</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="L952"></a><tt class="py-lineno"> 952</tt> <tt class="py-line"> <tt class="py-docstring">"""Exhanges a code for OAuth2Credentials.</tt> </tt>
-<a name="L953"></a><tt class="py-lineno"> 953</tt> <tt class="py-line"><tt class="py-docstring"></tt> </tt>
-<a name="L954"></a><tt class="py-lineno"> 954</tt> <tt class="py-line"><tt class="py-docstring"> Args:</tt> </tt>
-<a name="L955"></a><tt class="py-lineno"> 955</tt> <tt class="py-line"><tt class="py-docstring"> code: string or dict, either the code as a string, or a dictionary</tt> </tt>
-<a name="L956"></a><tt class="py-lineno"> 956</tt> <tt class="py-line"><tt class="py-docstring"> of the query parameters to the redirect_uri, which contains</tt> </tt>
-<a name="L957"></a><tt class="py-lineno"> 957</tt> <tt class="py-line"><tt class="py-docstring"> the code.</tt> </tt>
-<a name="L958"></a><tt class="py-lineno"> 958</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="L959"></a><tt class="py-lineno"> 959</tt> <tt class="py-line"><tt class="py-docstring"> """</tt> </tt>
-<a name="L960"></a><tt class="py-lineno"> 960</tt> <tt class="py-line"> </tt>
-<a name="L961"></a><tt class="py-lineno"> 961</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="L962"></a><tt class="py-lineno"> 962</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="L963"></a><tt class="py-lineno"> 963</tt> <tt class="py-line"> </tt>
-<a name="L964"></a><tt class="py-lineno"> 964</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="L965"></a><tt class="py-lineno"> 965</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="L966"></a><tt class="py-lineno"> 966</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="L967"></a><tt class="py-lineno"> 967</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="L968"></a><tt class="py-lineno"> 968</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="L969"></a><tt class="py-lineno"> 969</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="L970"></a><tt class="py-lineno"> 970</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="L971"></a><tt class="py-lineno"> 971</tt> <tt class="py-line"> <tt class="py-op">}</tt><tt class="py-op">)</tt> </tt>
-<a name="L972"></a><tt class="py-lineno"> 972</tt> <tt class="py-line"> <tt class="py-name">headers</tt> <tt class="py-op">=</tt> <tt class="py-op">{</tt> </tt>
-<a name="L973"></a><tt class="py-lineno"> 973</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="L974"></a><tt class="py-lineno"> 974</tt> <tt class="py-line"> <tt class="py-op">}</tt> </tt>
-<a name="L975"></a><tt class="py-lineno"> 975</tt> <tt class="py-line"> </tt>
-<a name="L976"></a><tt class="py-lineno"> 976</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="L977"></a><tt class="py-lineno"> 977</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="L978"></a><tt class="py-lineno"> 978</tt> <tt class="py-line"> </tt>
-<a name="L979"></a><tt class="py-lineno"> 979</tt> <tt class="py-line"> <tt class="py-keyword">if</tt> <tt id="link-121" class="py-name"><a title="apiclient.http
-oauth2client.appengine.OAuth2Decorator.http" class="py-name" href="#" onclick="return doclink('link-121', '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="L980"></a><tt class="py-lineno"> 980</tt> <tt class="py-line"> <tt id="link-122" class="py-name"><a title="apiclient.http
-oauth2client.appengine.OAuth2Decorator.http" class="py-name" href="#" onclick="return doclink('link-122', '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="L981"></a><tt class="py-lineno"> 981</tt> <tt class="py-line"> </tt>
-<a name="L982"></a><tt class="py-lineno"> 982</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-123" class="py-name"><a title="apiclient.http
-oauth2client.appengine.OAuth2Decorator.http" class="py-name" href="#" onclick="return doclink('link-123', 'http', 'link-43');">http</a></tt><tt class="py-op">.</tt><tt id="link-124" class="py-name"><a title="apiclient.http.HttpMock.request
+<a name="L927"></a><tt class="py-lineno"> 927</tt> <tt class="py-line"><tt class="py-docstring"> Args:</tt> </tt>
+<a name="L928"></a><tt class="py-lineno"> 928</tt> <tt class="py-line"><tt class="py-docstring"> filename: string, File name of clientsecrets.</tt> </tt>
+<a name="L929"></a><tt class="py-lineno"> 929</tt> <tt class="py-line"><tt class="py-docstring"> scope: string or list of strings, scope(s) to request.</tt> </tt>
+<a name="L930"></a><tt class="py-lineno"> 930</tt> <tt class="py-line"><tt class="py-docstring"> code: string, An authroization code, most likely passed down from</tt> </tt>
+<a name="L931"></a><tt class="py-lineno"> 931</tt> <tt class="py-line"><tt class="py-docstring"> the client</tt> </tt>
+<a name="L932"></a><tt class="py-lineno"> 932</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="L933"></a><tt class="py-lineno"> 933</tt> <tt class="py-line"><tt class="py-docstring"> clientsecrets file is missing or invalid. If message is provided then</tt> </tt>
+<a name="L934"></a><tt class="py-lineno"> 934</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="L935"></a><tt class="py-lineno"> 935</tt> <tt class="py-line"><tt class="py-docstring"> provided then clientsecrets.InvalidClientSecretsError will be raised.</tt> </tt>
+<a name="L936"></a><tt class="py-lineno"> 936</tt> <tt class="py-line"><tt class="py-docstring"> redirect_uri: string, this is generally set to 'postmessage' to match the</tt> </tt>
+<a name="L937"></a><tt class="py-lineno"> 937</tt> <tt class="py-line"><tt class="py-docstring"> redirect_uri that the client specified</tt> </tt>
+<a name="L938"></a><tt class="py-lineno"> 938</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="L939"></a><tt class="py-lineno"> 939</tt> <tt class="py-line"><tt class="py-docstring"></tt> </tt>
+<a name="L940"></a><tt class="py-lineno"> 940</tt> <tt class="py-line"><tt class="py-docstring"> Returns:</tt> </tt>
+<a name="L941"></a><tt class="py-lineno"> 941</tt> <tt class="py-line"><tt class="py-docstring"> An OAuth2Credentials object.</tt> </tt>
+<a name="L942"></a><tt class="py-lineno"> 942</tt> <tt class="py-line"><tt class="py-docstring"></tt> </tt>
+<a name="L943"></a><tt class="py-lineno"> 943</tt> <tt class="py-line"><tt class="py-docstring"> Raises:</tt> </tt>
+<a name="L944"></a><tt class="py-lineno"> 944</tt> <tt class="py-line"><tt class="py-docstring"> FlowExchangeError if the authorization code cannot be exchanged for an</tt> </tt>
+<a name="L945"></a><tt class="py-lineno"> 945</tt> <tt class="py-line"><tt class="py-docstring"> access token</tt> </tt>
+<a name="L946"></a><tt class="py-lineno"> 946</tt> <tt class="py-line"><tt class="py-docstring"> UnknownClientSecretsFlowError if the file describes an unknown kind of Flow.</tt> </tt>
+<a name="L947"></a><tt class="py-lineno"> 947</tt> <tt class="py-line"><tt class="py-docstring"> clientsecrets.InvalidClientSecretsError if the clientsecrets file is</tt> </tt>
+<a name="L948"></a><tt class="py-lineno"> 948</tt> <tt class="py-line"><tt class="py-docstring"> invalid.</tt> </tt>
+<a name="L949"></a><tt class="py-lineno"> 949</tt> <tt class="py-line"><tt class="py-docstring"> """</tt> </tt>
+<a name="L950"></a><tt class="py-lineno"> 950</tt> <tt class="py-line"> <tt class="py-name">flow</tt> <tt class="py-op">=</tt> <tt id="link-126" 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-126', 'flow_from_clientsecrets', 'link-126');">flow_from_clientsecrets</a></tt><tt class="py-op">(</tt><tt id="link-127" 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-127', 'filename', 'link-127');">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>
+<a name="L951"></a><tt class="py-lineno"> 951</tt> <tt class="py-line"> <tt class="py-comment"># We primarily make this call to set up the redirect_uri in the flow object</tt> </tt>
+<a name="L952"></a><tt class="py-lineno"> 952</tt> <tt class="py-line"> <tt class="py-name">uriThatWeDontReallyUse</tt> <tt class="py-op">=</tt> <tt class="py-name">flow</tt><tt class="py-op">.</tt><tt id="link-128" class="py-name"><a title="oauth2client.client.OAuth2WebServerFlow.step1_get_authorize_url" class="py-name" href="#" onclick="return doclink('link-128', 'step1_get_authorize_url', 'link-121');">step1_get_authorize_url</a></tt><tt class="py-op">(</tt><tt class="py-name">redirect_uri</tt><tt class="py-op">)</tt> </tt>
+<a name="L953"></a><tt class="py-lineno"> 953</tt> <tt class="py-line"> <tt id="link-129" class="py-name"><a title="oauth2client.appengine.CredentialsModel.credentials" class="py-name" href="#" onclick="return doclink('link-129', 'credentials', 'link-38');">credentials</a></tt> <tt class="py-op">=</tt> <tt class="py-name">flow</tt><tt class="py-op">.</tt><tt id="link-130" class="py-name"><a title="oauth2client.client.OAuth2WebServerFlow.step2_exchange" class="py-name" href="#" onclick="return doclink('link-130', 'step2_exchange', 'link-123');">step2_exchange</a></tt><tt class="py-op">(</tt><tt class="py-name">code</tt><tt class="py-op">,</tt> <tt id="link-131" class="py-name"><a title="apiclient.http
+oauth2client.appengine.OAuth2Decorator.http" class="py-name" href="#" onclick="return doclink('link-131', 'http', 'link-43');">http</a></tt><tt class="py-op">)</tt> </tt>
+<a name="L954"></a><tt class="py-lineno"> 954</tt> <tt class="py-line"> <tt class="py-keyword">return</tt> <tt id="link-132" class="py-name"><a title="oauth2client.appengine.CredentialsModel.credentials" class="py-name" href="#" onclick="return doclink('link-132', 'credentials', 'link-38');">credentials</a></tt> </tt>
+</div><a name="L955"></a><tt class="py-lineno"> 955</tt> <tt class="py-line"> </tt>
+<a name="OAuth2WebServerFlow"></a><div id="OAuth2WebServerFlow-def"><a name="L956"></a><tt class="py-lineno"> 956</tt> <tt class="py-line"> </tt>
+<a name="L957"></a><tt class="py-lineno"> 957</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>
+</div><div id="OAuth2WebServerFlow-collapsed" style="display:none;" pad="++++" indent="++++"></div><div id="OAuth2WebServerFlow-expanded"><a name="L958"></a><tt class="py-lineno"> 958</tt> <tt class="py-line"> <tt class="py-docstring">"""Does the Web Server Flow for OAuth 2.0.</tt> </tt>
+<a name="L959"></a><tt class="py-lineno"> 959</tt> <tt class="py-line"><tt class="py-docstring"></tt> </tt>
+<a name="L960"></a><tt class="py-lineno"> 960</tt> <tt class="py-line"><tt class="py-docstring"> OAuth2Credentials objects may be safely pickled and unpickled.</tt> </tt>
+<a name="L961"></a><tt class="py-lineno"> 961</tt> <tt class="py-line"><tt class="py-docstring"> """</tt> </tt>
+<a name="L962"></a><tt class="py-lineno"> 962</tt> <tt class="py-line"> </tt>
+<a name="OAuth2WebServerFlow.__init__"></a><div id="OAuth2WebServerFlow.__init__-def"><a name="L963"></a><tt class="py-lineno"> 963</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 class="py-param">user_agent</tt><tt class="py-op">=</tt><tt class="py-name">None</tt><tt class="py-op">,</tt> </tt>
+<a name="L964"></a><tt class="py-lineno"> 964</tt> <tt class="py-line"> <tt class="py-param">auth_uri</tt><tt class="py-op">=</tt><tt class="py-string">'https://accounts.google.com/o/oauth2/auth'</tt><tt class="py-op">,</tt> </tt>
+<a name="L965"></a><tt class="py-lineno"> 965</tt> <tt class="py-line"> <tt class="py-param">token_uri</tt><tt class="py-op">=</tt><tt class="py-string">'https://accounts.google.com/o/oauth2/token'</tt><tt class="py-op">,</tt> </tt>
+<a name="L966"></a><tt class="py-lineno"> 966</tt> <tt class="py-line"> <tt class="py-op">**</tt><tt class="py-param">kwargs</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+</div><div id="OAuth2WebServerFlow.__init__-collapsed" style="display:none;" pad="++++" indent="++++++"></div><div id="OAuth2WebServerFlow.__init__-expanded"><a name="L967"></a><tt class="py-lineno"> 967</tt> <tt class="py-line"> <tt class="py-docstring">"""Constructor for OAuth2WebServerFlow.</tt> </tt>
+<a name="L968"></a><tt class="py-lineno"> 968</tt> <tt class="py-line"><tt class="py-docstring"></tt> </tt>
+<a name="L969"></a><tt class="py-lineno"> 969</tt> <tt class="py-line"><tt class="py-docstring"> Args:</tt> </tt>
+<a name="L970"></a><tt class="py-lineno"> 970</tt> <tt class="py-line"><tt class="py-docstring"> client_id: string, client identifier.</tt> </tt>
+<a name="L971"></a><tt class="py-lineno"> 971</tt> <tt class="py-line"><tt class="py-docstring"> client_secret: string client secret.</tt> </tt>
+<a name="L972"></a><tt class="py-lineno"> 972</tt> <tt class="py-line"><tt class="py-docstring"> scope: string or list of strings, scope(s) of the credentials being</tt> </tt>
+<a name="L973"></a><tt class="py-lineno"> 973</tt> <tt class="py-line"><tt class="py-docstring"> requested.</tt> </tt>
+<a name="L974"></a><tt class="py-lineno"> 974</tt> <tt class="py-line"><tt class="py-docstring"> user_agent: string, HTTP User-Agent to provide for this application.</tt> </tt>
+<a name="L975"></a><tt class="py-lineno"> 975</tt> <tt class="py-line"><tt class="py-docstring"> auth_uri: string, URI for authorization endpoint. For convenience</tt> </tt>
+<a name="L976"></a><tt class="py-lineno"> 976</tt> <tt class="py-line"><tt class="py-docstring"> defaults to Google's endpoints but any OAuth 2.0 provider can be used.</tt> </tt>
+<a name="L977"></a><tt class="py-lineno"> 977</tt> <tt class="py-line"><tt class="py-docstring"> token_uri: string, URI for token endpoint. For convenience</tt> </tt>
+<a name="L978"></a><tt class="py-lineno"> 978</tt> <tt class="py-line"><tt class="py-docstring"> defaults to Google's endpoints but any OAuth 2.0 provider can be used.</tt> </tt>
+<a name="L979"></a><tt class="py-lineno"> 979</tt> <tt class="py-line"><tt class="py-docstring"> **kwargs: dict, The keyword arguments are all optional and required</tt> </tt>
+<a name="L980"></a><tt class="py-lineno"> 980</tt> <tt class="py-line"><tt class="py-docstring"> parameters for the OAuth calls.</tt> </tt>
+<a name="L981"></a><tt class="py-lineno"> 981</tt> <tt class="py-line"><tt class="py-docstring"> """</tt> </tt>
+<a name="L982"></a><tt class="py-lineno"> 982</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">client_id</tt> <tt class="py-op">=</tt> <tt class="py-name">client_id</tt> </tt>
+<a name="L983"></a><tt class="py-lineno"> 983</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">client_secret</tt> </tt>
+<a name="L984"></a><tt class="py-lineno"> 984</tt> <tt class="py-line"> <tt class="py-keyword">if</tt> <tt class="py-name">type</tt><tt class="py-op">(</tt><tt class="py-name">scope</tt><tt class="py-op">)</tt> <tt class="py-keyword">is</tt> <tt class="py-name">list</tt><tt class="py-op">:</tt> </tt>
+<a name="L985"></a><tt class="py-lineno"> 985</tt> <tt class="py-line"> <tt class="py-name">scope</tt> <tt class="py-op">=</tt> <tt class="py-string">' '</tt><tt class="py-op">.</tt><tt class="py-name">join</tt><tt class="py-op">(</tt><tt class="py-name">scope</tt><tt class="py-op">)</tt> </tt>
+<a name="L986"></a><tt class="py-lineno"> 986</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">scope</tt> <tt class="py-op">=</tt> <tt class="py-name">scope</tt> </tt>
+<a name="L987"></a><tt class="py-lineno"> 987</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">user_agent</tt> <tt class="py-op">=</tt> <tt class="py-name">user_agent</tt> </tt>
+<a name="L988"></a><tt class="py-lineno"> 988</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">auth_uri</tt> <tt class="py-op">=</tt> <tt class="py-name">auth_uri</tt> </tt>
+<a name="L989"></a><tt class="py-lineno"> 989</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">token_uri</tt> </tt>
+<a name="L990"></a><tt class="py-lineno"> 990</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-op">{</tt> </tt>
+<a name="L991"></a><tt class="py-lineno"> 991</tt> <tt class="py-line"> <tt class="py-string">'access_type'</tt><tt class="py-op">:</tt> <tt class="py-string">'offline'</tt><tt class="py-op">,</tt> </tt>
+<a name="L992"></a><tt class="py-lineno"> 992</tt> <tt class="py-line"> <tt class="py-op">}</tt> </tt>
+<a name="L993"></a><tt class="py-lineno"> 993</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>
+<a name="L994"></a><tt class="py-lineno"> 994</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">None</tt> </tt>
+</div><a name="L995"></a><tt class="py-lineno"> 995</tt> <tt class="py-line"> </tt>
+<a name="OAuth2WebServerFlow.step1_get_authorize_url"></a><div id="OAuth2WebServerFlow.step1_get_authorize_url-def"><a name="L996"></a><tt class="py-lineno"> 996</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 id="link-133" class="py-name"><a title="oauth2client.client.OOB_CALLBACK_URN" class="py-name" href="#" onclick="return doclink('link-133', 'OOB_CALLBACK_URN', 'link-16');">OOB_CALLBACK_URN</a></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="L997"></a><tt class="py-lineno"> 997</tt> <tt class="py-line"> <tt class="py-docstring">"""Returns a URI to redirect to the provider.</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-docstring"> Args:</tt> </tt>
+<a name="L1000"></a><tt class="py-lineno">1000</tt> <tt class="py-line"><tt class="py-docstring"> redirect_uri: string, Either the string 'urn:ietf:wg:oauth:2.0:oob' for</tt> </tt>
+<a name="L1001"></a><tt class="py-lineno">1001</tt> <tt class="py-line"><tt class="py-docstring"> a non-web-based application, or a URI that handles the callback from</tt> </tt>
+<a name="L1002"></a><tt class="py-lineno">1002</tt> <tt class="py-line"><tt class="py-docstring"> the authorization server.</tt> </tt>
+<a name="L1003"></a><tt class="py-lineno">1003</tt> <tt class="py-line"><tt class="py-docstring"></tt> </tt>
+<a name="L1004"></a><tt class="py-lineno">1004</tt> <tt class="py-line"><tt class="py-docstring"> If redirect_uri is 'urn:ietf:wg:oauth:2.0:oob' then pass in the</tt> </tt>
+<a name="L1005"></a><tt class="py-lineno">1005</tt> <tt class="py-line"><tt class="py-docstring"> generated verification code to step2_exchange,</tt> </tt>
+<a name="L1006"></a><tt class="py-lineno">1006</tt> <tt class="py-line"><tt class="py-docstring"> otherwise pass in the query parameters received</tt> </tt>
+<a name="L1007"></a><tt class="py-lineno">1007</tt> <tt class="py-line"><tt class="py-docstring"> at the callback uri to step2_exchange.</tt> </tt>
+<a name="L1008"></a><tt class="py-lineno">1008</tt> <tt class="py-line"><tt class="py-docstring"> """</tt> </tt>
+<a name="L1009"></a><tt class="py-lineno">1009</tt> <tt class="py-line"> </tt>
+<a name="L1010"></a><tt class="py-lineno">1010</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>
+<a name="L1011"></a><tt class="py-lineno">1011</tt> <tt class="py-line"> <tt class="py-name">query</tt> <tt class="py-op">=</tt> <tt class="py-op">{</tt> </tt>
+<a name="L1012"></a><tt class="py-lineno">1012</tt> <tt class="py-line"> <tt class="py-string">'response_type'</tt><tt class="py-op">:</tt> <tt class="py-string">'code'</tt><tt class="py-op">,</tt> </tt>
+<a name="L1013"></a><tt class="py-lineno">1013</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="L1014"></a><tt class="py-lineno">1014</tt> <tt class="py-line"> <tt class="py-string">'redirect_uri'</tt><tt class="py-op">:</tt> <tt class="py-name">redirect_uri</tt><tt class="py-op">,</tt> </tt>
+<a name="L1015"></a><tt class="py-lineno">1015</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="L1016"></a><tt class="py-lineno">1016</tt> <tt class="py-line"> <tt class="py-op">}</tt> </tt>
+<a name="L1017"></a><tt class="py-lineno">1017</tt> <tt class="py-line"> <tt class="py-name">query</tt><tt class="py-op">.</tt><tt class="py-name">update</tt><tt class="py-op">(</tt><tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">params</tt><tt class="py-op">)</tt> </tt>
+<a name="L1018"></a><tt class="py-lineno">1018</tt> <tt class="py-line"> <tt class="py-name">parts</tt> <tt class="py-op">=</tt> <tt class="py-name">list</tt><tt class="py-op">(</tt><tt class="py-name">urlparse</tt><tt class="py-op">.</tt><tt class="py-name">urlparse</tt><tt class="py-op">(</tt><tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">auth_uri</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
+<a name="L1019"></a><tt class="py-lineno">1019</tt> <tt class="py-line"> <tt class="py-name">query</tt><tt class="py-op">.</tt><tt class="py-name">update</tt><tt class="py-op">(</tt><tt class="py-name">dict</tt><tt class="py-op">(</tt><tt class="py-name">parse_qsl</tt><tt class="py-op">(</tt><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-op">)</tt><tt class="py-op">)</tt> <tt class="py-comment"># 4 is the index of the query part</tt> </tt>
+<a name="L1020"></a><tt class="py-lineno">1020</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="L1021"></a><tt class="py-lineno">1021</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="L1022"></a><tt class="py-lineno">1022</tt> <tt class="py-line"> </tt>
+<a name="OAuth2WebServerFlow.step2_exchange"></a><div id="OAuth2WebServerFlow.step2_exchange-def"><a name="L1023"></a><tt class="py-lineno">1023</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="L1024"></a><tt class="py-lineno">1024</tt> <tt class="py-line"> <tt class="py-docstring">"""Exhanges a code for OAuth2Credentials.</tt> </tt>
+<a name="L1025"></a><tt class="py-lineno">1025</tt> <tt class="py-line"><tt class="py-docstring"></tt> </tt>
+<a name="L1026"></a><tt class="py-lineno">1026</tt> <tt class="py-line"><tt class="py-docstring"> Args:</tt> </tt>
+<a name="L1027"></a><tt class="py-lineno">1027</tt> <tt class="py-line"><tt class="py-docstring"> code: string or dict, either the code as a string, or a dictionary</tt> </tt>
+<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
apiclient.http.HttpMockSequence.request
apiclient.model.BaseModel.request
-apiclient.model.Model.request" class="py-name" href="#" onclick="return doclink('link-124', '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="L983"></a><tt class="py-lineno"> 983</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="L984"></a><tt class="py-lineno"> 984</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="L985"></a><tt class="py-lineno"> 985</tt> <tt class="py-line"> <tt class="py-comment"># TODO(jcgregorio) Raise an error if simplejson.loads fails?</tt> </tt>
-<a name="L986"></a><tt class="py-lineno"> 986</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-125" class="py-name"><a title="oauth2client.clientsecrets.loads" class="py-name" href="#" onclick="return doclink('link-125', '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="L987"></a><tt class="py-lineno"> 987</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="L988"></a><tt class="py-lineno"> 988</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-126" class="py-name"><a title="apiclient.schema.Schemas.get
+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
oauth2client.appengine.OAuth2Handler.get
oauth2client.client.MemoryCache.get
-oauth2client.client.Storage.get" class="py-name" href="#" onclick="return doclink('link-126', '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="L989"></a><tt class="py-lineno"> 989</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="L990"></a><tt class="py-lineno"> 990</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="L991"></a><tt class="py-lineno"> 991</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="L992"></a><tt class="py-lineno"> 992</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="L993"></a><tt class="py-lineno"> 993</tt> <tt class="py-line"> </tt>
-<a name="L994"></a><tt class="py-lineno"> 994</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="L995"></a><tt class="py-lineno"> 995</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-127" 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-127', '_extract_id_token', 'link-127');">_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="L996"></a><tt class="py-lineno"> 996</tt> <tt class="py-line"> </tt>
-<a name="L997"></a><tt class="py-lineno"> 997</tt> <tt class="py-line"> <tt id="link-128" class="py-name"><a title="apiclient.discovery.logger
+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.logger
-oauth2client.multistore_file.logger" class="py-name" href="#" onclick="return doclink('link-128', '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="L998"></a><tt class="py-lineno"> 998</tt> <tt class="py-line"> <tt class="py-keyword">return</tt> <tt id="link-129" class="py-name"><a title="oauth2client.client.OAuth2Credentials" class="py-name" href="#" onclick="return doclink('link-129', '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="L999"></a><tt class="py-lineno"> 999</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="L1000"></a><tt class="py-lineno">1000</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="L1001"></a><tt class="py-lineno">1001</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-130" class="py-name"><a title="apiclient.schema.Schemas.get
+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.appengine.OAuth2Handler.get
oauth2client.client.MemoryCache.get
-oauth2client.client.Storage.get" class="py-name" href="#" onclick="return doclink('link-130', '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="L1002"></a><tt class="py-lineno">1002</tt> <tt class="py-line"> <tt class="py-keyword">else</tt><tt class="py-op">:</tt> </tt>
-<a name="L1003"></a><tt class="py-lineno">1003</tt> <tt class="py-line"> <tt id="link-131" class="py-name"><a title="apiclient.discovery.logger
+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.logger
-oauth2client.multistore_file.logger" class="py-name" href="#" onclick="return doclink('link-131', '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="L1004"></a><tt class="py-lineno">1004</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="L1005"></a><tt class="py-lineno">1005</tt> <tt class="py-line"> <tt class="py-keyword">try</tt><tt class="py-op">:</tt> </tt>
-<a name="L1006"></a><tt class="py-lineno">1006</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-132" class="py-name"><a title="oauth2client.clientsecrets.loads" class="py-name" href="#" onclick="return doclink('link-132', '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="L1007"></a><tt class="py-lineno">1007</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="L1008"></a><tt class="py-lineno">1008</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="L1009"></a><tt class="py-lineno">1009</tt> <tt class="py-line"> <tt class="py-keyword">except</tt><tt class="py-op">:</tt> </tt>
-<a name="L1010"></a><tt class="py-lineno">1010</tt> <tt class="py-line"> <tt class="py-keyword">pass</tt> </tt>
-<a name="L1011"></a><tt class="py-lineno">1011</tt> <tt class="py-line"> </tt>
-<a name="L1012"></a><tt class="py-lineno">1012</tt> <tt class="py-line"> <tt class="py-keyword">raise</tt> <tt id="link-133" 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-133', 'FlowExchangeError', 'link-133');">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="L1013"></a><tt class="py-lineno">1013</tt> <tt class="py-line"> </tt>
-<a name="flow_from_clientsecrets"></a><div id="flow_from_clientsecrets-def"><a name="L1014"></a><tt class="py-lineno">1014</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="L1015"></a><tt class="py-lineno">1015</tt> <tt class="py-line"> <tt class="py-docstring">"""Create a Flow from a clientsecrets file.</tt> </tt>
-<a name="L1016"></a><tt class="py-lineno">1016</tt> <tt class="py-line"><tt class="py-docstring"></tt> </tt>
-<a name="L1017"></a><tt class="py-lineno">1017</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="L1018"></a><tt class="py-lineno">1018</tt> <tt class="py-line"><tt class="py-docstring"> file or will raise InvalidClientSecretsError for unknown types of Flows.</tt> </tt>
-<a name="L1019"></a><tt class="py-lineno">1019</tt> <tt class="py-line"><tt class="py-docstring"></tt> </tt>
-<a name="L1020"></a><tt class="py-lineno">1020</tt> <tt class="py-line"><tt class="py-docstring"> Args:</tt> </tt>
-<a name="L1021"></a><tt class="py-lineno">1021</tt> <tt class="py-line"><tt class="py-docstring"> filename: string, File name of client secrets.</tt> </tt>
-<a name="L1022"></a><tt class="py-lineno">1022</tt> <tt class="py-line"><tt class="py-docstring"> scope: string or list of strings, scope(s) to request.</tt> </tt>
-<a name="L1023"></a><tt class="py-lineno">1023</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="L1024"></a><tt class="py-lineno">1024</tt> <tt class="py-line"><tt class="py-docstring"> clientsecrets file is missing or invalid. If message is provided then</tt> </tt>
-<a name="L1025"></a><tt class="py-lineno">1025</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="L1026"></a><tt class="py-lineno">1026</tt> <tt class="py-line"><tt class="py-docstring"> provided then clientsecrets.InvalidClientSecretsError will be raised.</tt> </tt>
-<a name="L1027"></a><tt class="py-lineno">1027</tt> <tt class="py-line"><tt class="py-docstring"></tt> </tt>
-<a name="L1028"></a><tt class="py-lineno">1028</tt> <tt class="py-line"><tt class="py-docstring"> Returns:</tt> </tt>
-<a name="L1029"></a><tt class="py-lineno">1029</tt> <tt class="py-line"><tt class="py-docstring"> A Flow object.</tt> </tt>
-<a name="L1030"></a><tt class="py-lineno">1030</tt> <tt class="py-line"><tt class="py-docstring"></tt> </tt>
-<a name="L1031"></a><tt class="py-lineno">1031</tt> <tt class="py-line"><tt class="py-docstring"> Raises:</tt> </tt>
-<a name="L1032"></a><tt class="py-lineno">1032</tt> <tt class="py-line"><tt class="py-docstring"> UnknownClientSecretsFlowError if the file describes an unknown kind of Flow.</tt> </tt>
-<a name="L1033"></a><tt class="py-lineno">1033</tt> <tt class="py-line"><tt class="py-docstring"> clientsecrets.InvalidClientSecretsError if the clientsecrets file is</tt> </tt>
-<a name="L1034"></a><tt class="py-lineno">1034</tt> <tt class="py-line"><tt class="py-docstring"> invalid.</tt> </tt>
-<a name="L1035"></a><tt class="py-lineno">1035</tt> <tt class="py-line"><tt class="py-docstring"> """</tt> </tt>
-<a name="L1036"></a><tt class="py-lineno">1036</tt> <tt class="py-line"> <tt class="py-keyword">try</tt><tt class="py-op">:</tt> </tt>
-<a name="L1037"></a><tt class="py-lineno">1037</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-134" class="py-name"><a title="oauth2client.clientsecrets" class="py-name" href="#" onclick="return doclink('link-134', 'clientsecrets', 'link-0');">clientsecrets</a></tt><tt class="py-op">.</tt><tt id="link-135" 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-135', 'loadfile', 'link-135');">loadfile</a></tt><tt class="py-op">(</tt><tt class="py-name">filename</tt><tt class="py-op">)</tt> </tt>
-<a name="L1038"></a><tt class="py-lineno">1038</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-136" class="py-name"><a title="oauth2client.clientsecrets" class="py-name" href="#" onclick="return doclink('link-136', 'clientsecrets', 'link-0');">clientsecrets</a></tt><tt class="py-op">.</tt><tt id="link-137" 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-137', 'TYPE_WEB', 'link-137');">TYPE_WEB</a></tt><tt class="py-op">,</tt> <tt id="link-138" class="py-name"><a title="oauth2client.clientsecrets" class="py-name" href="#" onclick="return doclink('link-138', 'clientsecrets', 'link-0');">clientsecrets</a></tt><tt class="py-op">.</tt><tt id="link-139" 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-139', 'TYPE_INSTALLED', 'link-139');">TYPE_INSTALLED</a></tt><tt class="py-op">]</tt><tt class="py-op">:</tt> </tt>
-<a name="L1039"></a><tt class="py-lineno">1039</tt> <tt class="py-line"> <tt class="py-keyword">return</tt> <tt id="link-140" class="py-name" targets="Class oauth2client.client.OAuth2WebServerFlow=oauth2client.client.OAuth2WebServerFlow-class.html"><a title="oauth2client.client.OAuth2WebServerFlow" class="py-name" href="#" onclick="return doclink('link-140', 'OAuth2WebServerFlow', 'link-140');">OAuth2WebServerFlow</a></tt><tt class="py-op">(</tt> </tt>
-<a name="L1040"></a><tt class="py-lineno">1040</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="L1041"></a><tt class="py-lineno">1041</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="L1042"></a><tt class="py-lineno">1042</tt> <tt class="py-line"> <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-name">None</tt><tt class="py-op">,</tt> <tt class="py-comment"># user_agent</tt> </tt>
-<a name="L1044"></a><tt class="py-lineno">1044</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="L1045"></a><tt class="py-lineno">1045</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="L1046"></a><tt class="py-lineno">1046</tt> <tt class="py-line"> <tt class="py-keyword">except</tt> <tt id="link-141" class="py-name"><a title="oauth2client.clientsecrets" class="py-name" href="#" onclick="return doclink('link-141', 'clientsecrets', 'link-0');">clientsecrets</a></tt><tt class="py-op">.</tt><tt id="link-142" 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-142', 'InvalidClientSecretsError', 'link-142');">InvalidClientSecretsError</a></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">if</tt> <tt class="py-name">message</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">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="L1049"></a><tt class="py-lineno">1049</tt> <tt class="py-line"> <tt class="py-keyword">else</tt><tt class="py-op">:</tt> </tt>
-<a name="L1050"></a><tt class="py-lineno">1050</tt> <tt class="py-line"> <tt class="py-keyword">raise</tt> </tt>
-<a name="L1051"></a><tt class="py-lineno">1051</tt> <tt class="py-line"> <tt class="py-keyword">else</tt><tt class="py-op">:</tt> </tt>
-<a name="L1052"></a><tt class="py-lineno">1052</tt> <tt class="py-line"> <tt class="py-keyword">raise</tt> <tt id="link-143" 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-143', 'UnknownClientSecretsFlowError', 'link-143');">UnknownClientSecretsFlowError</a></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">'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="L1054"></a><tt class="py-lineno">1054</tt> <tt class="py-line"> </tt><script type="text/javascript">
+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>
+<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">
<!--
expandto(location.href);
// -->
@@ -1374,7 +1469,7 @@
<table border="0" cellpadding="0" cellspacing="0" width="100%%">
<tr>
<td align="left" class="footer">
- Generated by Epydoc 3.0.1 on Tue Jun 5 09:03:12 2012
+ Generated by Epydoc 3.0.1 on Thu Jun 14 08:01:59 2012
</td>
<td align="right" class="footer">
<a target="mainFrame" href="http://epydoc.sourceforge.net"
diff --git a/docs/epy/oauth2client.client.AccessTokenCredentials-class.html b/docs/epy/oauth2client.client.AccessTokenCredentials-class.html
index ec7ebdc..80abe9e 100644
--- a/docs/epy/oauth2client.client.AccessTokenCredentials-class.html
+++ b/docs/epy/oauth2client.client.AccessTokenCredentials-class.html
@@ -443,7 +443,7 @@
<table border="0" cellpadding="0" cellspacing="0" width="100%%">
<tr>
<td align="left" class="footer">
- Generated by Epydoc 3.0.1 on Tue Jun 5 09:03:08 2012
+ Generated by Epydoc 3.0.1 on Thu Jun 14 08:01:57 2012
</td>
<td align="right" class="footer">
<a target="mainFrame" href="http://epydoc.sourceforge.net"
diff --git a/docs/epy/oauth2client.client.AccessTokenCredentialsError-class.html b/docs/epy/oauth2client.client.AccessTokenCredentialsError-class.html
index 08081a9..e486bd1 100644
--- a/docs/epy/oauth2client.client.AccessTokenCredentialsError-class.html
+++ b/docs/epy/oauth2client.client.AccessTokenCredentialsError-class.html
@@ -58,6 +58,9 @@
<center> <map id="uml_class_diagram_for_oauth2cl_11" name="uml_class_diagram_for_oauth2cl_11">
<area shape="rect" href="oauth2client.client.AccessTokenCredentialsError-class.html" title="Having only the access_token means no refresh is possible." alt="" coords="16,440,189,472"/>
<area shape="rect" href="oauth2client.client.Error-class.html" title="Base error for this module." alt="" coords="87,379,119,411"/>
+<area shape="rect" href="javascript:void(0);" title="x.__init__(...) initializes x; see x.__class__.__doc__ for signature" alt="" coords="40,311,165,329"/>
+<area shape="rect" href="javascript:void(0);" title="exceptions.Exception.__new__" alt="" coords="40,329,165,348"/>
+<area shape="rect" href="javascript:void(0);" title="Common base class for all non-exit exceptions." alt="" coords="39,285,167,349"/>
<area shape="rect" href="javascript:void(0);" title="exceptions.BaseException.args" alt="" coords="25,28,180,47"/>
<area shape="rect" href="javascript:void(0);" title="exceptions.BaseException.message" alt="" coords="25,47,180,65"/>
<area shape="rect" href="javascript:void(0);" title="x.__delattr__('name') <==> del x.name" alt="" coords="25,68,180,87"/>
@@ -71,9 +74,6 @@
<area shape="rect" href="javascript:void(0);" title="str(x)" alt="" coords="25,217,180,236"/>
<area shape="rect" href="javascript:void(0);" title="exceptions.BaseException.__unicode__" alt="" coords="25,236,180,255"/>
<area shape="rect" href="javascript:void(0);" title="Common base class for all exceptions" alt="" coords="24,11,181,256"/>
-<area shape="rect" href="javascript:void(0);" title="x.__init__(...) initializes x; see x.__class__.__doc__ for signature" alt="" coords="40,311,165,329"/>
-<area shape="rect" href="javascript:void(0);" title="exceptions.Exception.__new__" alt="" coords="40,329,165,348"/>
-<area shape="rect" href="javascript:void(0);" title="Common base class for all non-exit exceptions." alt="" coords="39,285,167,349"/>
</map>
<img src="uml_class_diagram_for_oauth2cl_11.gif" alt='' usemap="#uml_class_diagram_for_oauth2cl_11" ismap="ismap" class="graph-without-title" />
</center>
@@ -181,7 +181,7 @@
<table border="0" cellpadding="0" cellspacing="0" width="100%%">
<tr>
<td align="left" class="footer">
- Generated by Epydoc 3.0.1 on Tue Jun 5 09:03:08 2012
+ Generated by Epydoc 3.0.1 on Thu Jun 14 08:01:57 2012
</td>
<td align="right" class="footer">
<a target="mainFrame" href="http://epydoc.sourceforge.net"
diff --git a/docs/epy/oauth2client.client.AccessTokenRefreshError-class.html b/docs/epy/oauth2client.client.AccessTokenRefreshError-class.html
index ffe39ec..43ccb78 100644
--- a/docs/epy/oauth2client.client.AccessTokenRefreshError-class.html
+++ b/docs/epy/oauth2client.client.AccessTokenRefreshError-class.html
@@ -58,6 +58,9 @@
<center> <map id="uml_class_diagram_for_oauth2cl_12" name="uml_class_diagram_for_oauth2cl_12">
<area shape="rect" href="oauth2client.client.AccessTokenRefreshError-class.html" title="Error trying to refresh an expired access token." alt="" coords="17,440,172,472"/>
<area shape="rect" href="oauth2client.client.Error-class.html" title="Base error for this module." alt="" coords="79,379,111,411"/>
+<area shape="rect" href="javascript:void(0);" title="x.__init__(...) initializes x; see x.__class__.__doc__ for signature" alt="" coords="32,311,157,329"/>
+<area shape="rect" href="javascript:void(0);" title="exceptions.Exception.__new__" alt="" coords="32,329,157,348"/>
+<area shape="rect" href="javascript:void(0);" title="Common base class for all non-exit exceptions." alt="" coords="31,285,159,349"/>
<area shape="rect" href="javascript:void(0);" title="exceptions.BaseException.args" alt="" coords="17,28,172,47"/>
<area shape="rect" href="javascript:void(0);" title="exceptions.BaseException.message" alt="" coords="17,47,172,65"/>
<area shape="rect" href="javascript:void(0);" title="x.__delattr__('name') <==> del x.name" alt="" coords="17,68,172,87"/>
@@ -71,9 +74,6 @@
<area shape="rect" href="javascript:void(0);" title="str(x)" alt="" coords="17,217,172,236"/>
<area shape="rect" href="javascript:void(0);" title="exceptions.BaseException.__unicode__" alt="" coords="17,236,172,255"/>
<area shape="rect" href="javascript:void(0);" title="Common base class for all exceptions" alt="" coords="16,11,173,256"/>
-<area shape="rect" href="javascript:void(0);" title="x.__init__(...) initializes x; see x.__class__.__doc__ for signature" alt="" coords="32,311,157,329"/>
-<area shape="rect" href="javascript:void(0);" title="exceptions.Exception.__new__" alt="" coords="32,329,157,348"/>
-<area shape="rect" href="javascript:void(0);" title="Common base class for all non-exit exceptions." alt="" coords="31,285,159,349"/>
</map>
<img src="uml_class_diagram_for_oauth2cl_12.gif" alt='' usemap="#uml_class_diagram_for_oauth2cl_12" ismap="ismap" class="graph-without-title" />
</center>
@@ -181,7 +181,7 @@
<table border="0" cellpadding="0" cellspacing="0" width="100%%">
<tr>
<td align="left" class="footer">
- Generated by Epydoc 3.0.1 on Tue Jun 5 09:03:09 2012
+ Generated by Epydoc 3.0.1 on Thu Jun 14 08:01:57 2012
</td>
<td align="right" class="footer">
<a target="mainFrame" href="http://epydoc.sourceforge.net"
diff --git a/docs/epy/oauth2client.client.AssertionCredentials-class.html b/docs/epy/oauth2client.client.AssertionCredentials-class.html
index 2b34623..a5ad797 100644
--- a/docs/epy/oauth2client.client.AssertionCredentials-class.html
+++ b/docs/epy/oauth2client.client.AssertionCredentials-class.html
@@ -58,8 +58,8 @@
<center> <map id="uml_class_diagram_for_oauth2cl_13" name="uml_class_diagram_for_oauth2cl_13">
<area shape="rect" href="oauth2client.client.AssertionCredentials-class.html#__init__" title="Constructor for AssertionFlowCredentials." alt="" coords="17,343,697,361"/>
<area shape="rect" href="oauth2client.client.AssertionCredentials-class.html" title="Abstract Credentials object used for OAuth 2.0 assertion grants." alt="" coords="16,317,699,363"/>
-<area shape="rect" href="oauth2client.appengine.AppAssertionCredentials-class.html" title="Credentials object for App Engine Assertion Grants" alt="" coords="119,392,340,419"/>
-<area shape="rect" href="oauth2client.client.SignedJwtAssertionCredentials-class.html" title="Credentials object used for OAuth 2.0 Signed JWT assertion grants." alt="" coords="391,392,583,419"/>
+<area shape="rect" href="oauth2client.client.SignedJwtAssertionCredentials-class.html" title="Credentials object used for OAuth 2.0 Signed JWT assertion grants." alt="" coords="133,392,325,419"/>
+<area shape="rect" href="oauth2client.appengine.AppAssertionCredentials-class.html" title="Credentials object for App Engine Assertion Grants" alt="" coords="376,392,597,419"/>
<area shape="rect" href="oauth2client.client.OAuth2Credentials-class.html#access_token_expired" title="True if the credential is expired or invalid." alt="" coords="284,116,431,135"/>
<area shape="rect" href="oauth2client.client.OAuth2Credentials-class.html#authorize" title="Authorize an httplib2.Http instance with these credentials." alt="" coords="284,137,431,156"/>
<area shape="rect" href="oauth2client.client.OAuth2Credentials-class.html#refresh" title="Forces a refresh of the access_token." alt="" coords="284,156,431,175"/>
@@ -386,7 +386,7 @@
<table border="0" cellpadding="0" cellspacing="0" width="100%%">
<tr>
<td align="left" class="footer">
- Generated by Epydoc 3.0.1 on Tue Jun 5 09:03:09 2012
+ Generated by Epydoc 3.0.1 on Thu Jun 14 08:01:57 2012
</td>
<td align="right" class="footer">
<a target="mainFrame" href="http://epydoc.sourceforge.net"
diff --git a/docs/epy/oauth2client.client.Credentials-class.html b/docs/epy/oauth2client.client.Credentials-class.html
index 1055c3e..2bc9a5b 100644
--- a/docs/epy/oauth2client.client.Credentials-class.html
+++ b/docs/epy/oauth2client.client.Credentials-class.html
@@ -56,19 +56,19 @@
<h1 class="epydoc">Class Credentials</h1><p class="nomargin-top"><span class="codelink"><a href="oauth2client.client-pysrc.html#Credentials">source code</a></span></p>
<center>
<center> <map id="uml_class_diagram_for_oauth2cl_14" name="uml_class_diagram_for_oauth2cl_14">
-<area shape="rect" href="oauth2client.client.Credentials-class.html#NON_SERIALIZED_MEMBERS" title="oauth2client.client.Credentials.NON_SERIALIZED_MEMBERS" alt="" coords="243,28,432,47"/>
-<area shape="rect" href="oauth2client.client.Credentials-class.html#authorize" title="Take an httplib2.Http instance (or equivalent) and authorizes it for the set of credentials, usually by replacing http.request() with a method that adds in the appropriate headers and then delegates to the original Http.request() method." alt="" coords="243,49,432,68"/>
-<area shape="rect" href="oauth2client.client.Credentials-class.html#refresh" title="Forces a refresh of the access_token." alt="" coords="243,68,432,87"/>
-<area shape="rect" href="oauth2client.client.Credentials-class.html#apply" title="Add the authorization to the headers." alt="" coords="243,87,432,105"/>
-<area shape="rect" href="oauth2client.client.Credentials-class.html#to_json" title="Creating a JSON representation of an instance of Credentials." alt="" coords="243,105,432,124"/>
-<area shape="rect" href="oauth2client.client.Credentials-class.html#new_from_json" title="Utility class method to instantiate a Credentials subclass from a JSON representation produced by to_json()." alt="" coords="243,124,432,143"/>
-<area shape="rect" href="oauth2client.client.Credentials-class.html#from_json" title="Instantiate a Credentials object from a JSON description of it." alt="" coords="243,143,432,161"/>
-<area shape="rect" href="oauth2client.client.Credentials-class.html" title="Base class for all Credentials objects." alt="" coords="241,11,433,163"/>
-<area shape="rect" href="oauth2client.client.OAuth2Credentials-class.html" title="Credentials object for OAuth 2.0." alt="" coords="276,192,399,219"/>
-<area shape="rect" href="oauth2client.client.AssertionCredentials-class.html" title="Abstract Credentials object used for OAuth 2.0 assertion grants." alt="" coords="173,248,307,275"/>
-<area shape="rect" href="oauth2client.client.AccessTokenCredentials-class.html" title="Credentials object for OAuth 2.0." alt="" coords="357,248,515,275"/>
-<area shape="rect" href="oauth2client.client.SignedJwtAssertionCredentials-class.html" title="Credentials object used for OAuth 2.0 Signed JWT assertion grants." alt="" coords="16,304,208,331"/>
-<area shape="rect" href="oauth2client.appengine.AppAssertionCredentials-class.html" title="Credentials object for App Engine Assertion Grants" alt="" coords="259,304,480,331"/>
+<area shape="rect" href="oauth2client.client.OAuth2Credentials-class.html" title="Credentials object for OAuth 2.0." alt="" coords="291,192,413,219"/>
+<area shape="rect" href="oauth2client.client.AssertionCredentials-class.html" title="Abstract Credentials object used for OAuth 2.0 assertion grants." alt="" coords="188,248,321,275"/>
+<area shape="rect" href="oauth2client.client.AccessTokenCredentials-class.html" title="Credentials object for OAuth 2.0." alt="" coords="372,248,529,275"/>
+<area shape="rect" href="oauth2client.appengine.AppAssertionCredentials-class.html" title="Credentials object for App Engine Assertion Grants" alt="" coords="16,304,237,331"/>
+<area shape="rect" href="oauth2client.client.SignedJwtAssertionCredentials-class.html" title="Credentials object used for OAuth 2.0 Signed JWT assertion grants." alt="" coords="288,304,480,331"/>
+<area shape="rect" href="oauth2client.client.Credentials-class.html#NON_SERIALIZED_MEMBERS" title="oauth2client.client.Credentials.NON_SERIALIZED_MEMBERS" alt="" coords="257,28,447,47"/>
+<area shape="rect" href="oauth2client.client.Credentials-class.html#authorize" title="Take an httplib2.Http instance (or equivalent) and authorizes it for the set of credentials, usually by replacing http.request() with a method that adds in the appropriate headers and then delegates to the original Http.request() method." alt="" coords="257,49,447,68"/>
+<area shape="rect" href="oauth2client.client.Credentials-class.html#refresh" title="Forces a refresh of the access_token." alt="" coords="257,68,447,87"/>
+<area shape="rect" href="oauth2client.client.Credentials-class.html#apply" title="Add the authorization to the headers." alt="" coords="257,87,447,105"/>
+<area shape="rect" href="oauth2client.client.Credentials-class.html#to_json" title="Creating a JSON representation of an instance of Credentials." alt="" coords="257,105,447,124"/>
+<area shape="rect" href="oauth2client.client.Credentials-class.html#new_from_json" title="Utility class method to instantiate a Credentials subclass from a JSON representation produced by to_json()." alt="" coords="257,124,447,143"/>
+<area shape="rect" href="oauth2client.client.Credentials-class.html#from_json" title="Instantiate a Credentials object from a JSON description of it." alt="" coords="257,143,447,161"/>
+<area shape="rect" href="oauth2client.client.Credentials-class.html" title="Base class for all Credentials objects." alt="" coords="256,11,448,163"/>
</map>
<img src="uml_class_diagram_for_oauth2cl_14.gif" alt='' usemap="#uml_class_diagram_for_oauth2cl_14" ismap="ismap" class="graph-without-title" />
</center>
@@ -535,7 +535,7 @@
<table border="0" cellpadding="0" cellspacing="0" width="100%%">
<tr>
<td align="left" class="footer">
- Generated by Epydoc 3.0.1 on Tue Jun 5 09:03:09 2012
+ Generated by Epydoc 3.0.1 on Thu Jun 14 08:01:57 2012
</td>
<td align="right" class="footer">
<a target="mainFrame" href="http://epydoc.sourceforge.net"
diff --git a/docs/epy/oauth2client.client.Error-class.html b/docs/epy/oauth2client.client.Error-class.html
index b22614f..dad1111 100644
--- a/docs/epy/oauth2client.client.Error-class.html
+++ b/docs/epy/oauth2client.client.Error-class.html
@@ -56,28 +56,28 @@
<h1 class="epydoc">Class Error</h1><p class="nomargin-top"><span class="codelink"><a href="oauth2client.client-pysrc.html#Error">source code</a></span></p>
<center>
<center> <map id="uml_class_diagram_for_oauth2cl_15" name="uml_class_diagram_for_oauth2cl_15">
-<area shape="rect" href="oauth2client.client.Error-class.html" title="Base error for this module." alt="" coords="487,379,519,411"/>
+<area shape="rect" href="oauth2client.client.Error-class.html" title="Base error for this module." alt="" coords="512,379,544,411"/>
<area shape="rect" href="oauth2client.client.FlowExchangeError-class.html" title="Error trying to exchange an authorization grant for an access token." alt="" coords="16,440,144,467"/>
-<area shape="rect" href="oauth2client.client.AccessTokenRefreshError-class.html" title="Error trying to refresh an expired access token." alt="" coords="195,440,360,467"/>
-<area shape="rect" href="oauth2client.client.AccessTokenCredentialsError-class.html" title="Having only the access_token means no refresh is possible." alt="" coords="411,440,595,467"/>
-<area shape="rect" href="oauth2client.client.VerifyJwtTokenError-class.html" title="Could on retrieve certificates for validation." alt="" coords="645,440,773,467"/>
-<area shape="rect" href="oauth2client.client.UnknownClientSecretsFlowError-class.html" title="The client secrets file called for an unknown type of OAuth 2.0 flow." alt="" coords="824,440,1024,467"/>
-<area shape="rect" href="javascript:void(0);" title="x.__init__(...) initializes x; see x.__class__.__doc__ for signature" alt="" coords="440,311,565,329"/>
-<area shape="rect" href="javascript:void(0);" title="exceptions.Exception.__new__" alt="" coords="440,329,565,348"/>
-<area shape="rect" href="javascript:void(0);" title="Common base class for all non-exit exceptions." alt="" coords="439,285,567,349"/>
-<area shape="rect" href="javascript:void(0);" title="exceptions.BaseException.args" alt="" coords="425,28,580,47"/>
-<area shape="rect" href="javascript:void(0);" title="exceptions.BaseException.message" alt="" coords="425,47,580,65"/>
-<area shape="rect" href="javascript:void(0);" title="x.__delattr__('name') <==> del x.name" alt="" coords="425,68,580,87"/>
-<area shape="rect" href="javascript:void(0);" title="x.__getattribute__('name') <==> x.name" alt="" coords="425,87,580,105"/>
-<area shape="rect" href="javascript:void(0);" title="x[y]" alt="" coords="425,105,580,124"/>
-<area shape="rect" href="javascript:void(0);" title="x[i:j]" alt="" coords="425,124,580,143"/>
-<area shape="rect" href="javascript:void(0);" title="helper for pickle" alt="" coords="425,143,580,161"/>
-<area shape="rect" href="javascript:void(0);" title="repr(x)" alt="" coords="425,161,580,180"/>
-<area shape="rect" href="javascript:void(0);" title="x.__setattr__('name', value) <==> x.name = value" alt="" coords="425,180,580,199"/>
-<area shape="rect" href="javascript:void(0);" title="exceptions.BaseException.__setstate__" alt="" coords="425,199,580,217"/>
-<area shape="rect" href="javascript:void(0);" title="str(x)" alt="" coords="425,217,580,236"/>
-<area shape="rect" href="javascript:void(0);" title="exceptions.BaseException.__unicode__" alt="" coords="425,236,580,255"/>
-<area shape="rect" href="javascript:void(0);" title="Common base class for all exceptions" alt="" coords="424,11,581,256"/>
+<area shape="rect" href="oauth2client.client.UnknownClientSecretsFlowError-class.html" title="The client secrets file called for an unknown type of OAuth 2.0 flow." alt="" coords="195,440,395,467"/>
+<area shape="rect" href="oauth2client.client.AccessTokenRefreshError-class.html" title="Error trying to refresh an expired access token." alt="" coords="445,440,611,467"/>
+<area shape="rect" href="oauth2client.client.AccessTokenCredentialsError-class.html" title="Having only the access_token means no refresh is possible." alt="" coords="661,440,845,467"/>
+<area shape="rect" href="oauth2client.client.VerifyJwtTokenError-class.html" title="Could on retrieve certificates for validation." alt="" coords="896,440,1024,467"/>
+<area shape="rect" href="javascript:void(0);" title="x.__init__(...) initializes x; see x.__class__.__doc__ for signature" alt="" coords="465,311,591,329"/>
+<area shape="rect" href="javascript:void(0);" title="exceptions.Exception.__new__" alt="" coords="465,329,591,348"/>
+<area shape="rect" href="javascript:void(0);" title="Common base class for all non-exit exceptions." alt="" coords="464,285,592,349"/>
+<area shape="rect" href="javascript:void(0);" title="exceptions.BaseException.args" alt="" coords="451,28,605,47"/>
+<area shape="rect" href="javascript:void(0);" title="exceptions.BaseException.message" alt="" coords="451,47,605,65"/>
+<area shape="rect" href="javascript:void(0);" title="x.__delattr__('name') <==> del x.name" alt="" coords="451,68,605,87"/>
+<area shape="rect" href="javascript:void(0);" title="x.__getattribute__('name') <==> x.name" alt="" coords="451,87,605,105"/>
+<area shape="rect" href="javascript:void(0);" title="x[y]" alt="" coords="451,105,605,124"/>
+<area shape="rect" href="javascript:void(0);" title="x[i:j]" alt="" coords="451,124,605,143"/>
+<area shape="rect" href="javascript:void(0);" title="helper for pickle" alt="" coords="451,143,605,161"/>
+<area shape="rect" href="javascript:void(0);" title="repr(x)" alt="" coords="451,161,605,180"/>
+<area shape="rect" href="javascript:void(0);" title="x.__setattr__('name', value) <==> x.name = value" alt="" coords="451,180,605,199"/>
+<area shape="rect" href="javascript:void(0);" title="exceptions.BaseException.__setstate__" alt="" coords="451,199,605,217"/>
+<area shape="rect" href="javascript:void(0);" title="str(x)" alt="" coords="451,217,605,236"/>
+<area shape="rect" href="javascript:void(0);" title="exceptions.BaseException.__unicode__" alt="" coords="451,236,605,255"/>
+<area shape="rect" href="javascript:void(0);" title="Common base class for all exceptions" alt="" coords="449,11,607,256"/>
</map>
<img src="uml_class_diagram_for_oauth2cl_15.gif" alt='' usemap="#uml_class_diagram_for_oauth2cl_15" ismap="ismap" class="graph-without-title" />
</center>
@@ -185,7 +185,7 @@
<table border="0" cellpadding="0" cellspacing="0" width="100%%">
<tr>
<td align="left" class="footer">
- Generated by Epydoc 3.0.1 on Tue Jun 5 09:03:09 2012
+ Generated by Epydoc 3.0.1 on Thu Jun 14 08:01:57 2012
</td>
<td align="right" class="footer">
<a target="mainFrame" href="http://epydoc.sourceforge.net"
diff --git a/docs/epy/oauth2client.client.Flow-class.html b/docs/epy/oauth2client.client.Flow-class.html
index c46c951..33328ed 100644
--- a/docs/epy/oauth2client.client.Flow-class.html
+++ b/docs/epy/oauth2client.client.Flow-class.html
@@ -153,7 +153,7 @@
<table border="0" cellpadding="0" cellspacing="0" width="100%%">
<tr>
<td align="left" class="footer">
- Generated by Epydoc 3.0.1 on Tue Jun 5 09:03:09 2012
+ Generated by Epydoc 3.0.1 on Thu Jun 14 08:01:57 2012
</td>
<td align="right" class="footer">
<a target="mainFrame" href="http://epydoc.sourceforge.net"
diff --git a/docs/epy/oauth2client.client.FlowExchangeError-class.html b/docs/epy/oauth2client.client.FlowExchangeError-class.html
index 0a8646b..0007856 100644
--- a/docs/epy/oauth2client.client.FlowExchangeError-class.html
+++ b/docs/epy/oauth2client.client.FlowExchangeError-class.html
@@ -58,6 +58,9 @@
<center> <map id="uml_class_diagram_for_oauth2cl_17" name="uml_class_diagram_for_oauth2cl_17">
<area shape="rect" href="oauth2client.client.FlowExchangeError-class.html" title="Error trying to exchange an authorization grant for an access token." alt="" coords="36,440,153,472"/>
<area shape="rect" href="oauth2client.client.Error-class.html" title="Base error for this module." alt="" coords="79,379,111,411"/>
+<area shape="rect" href="javascript:void(0);" title="x.__init__(...) initializes x; see x.__class__.__doc__ for signature" alt="" coords="32,311,157,329"/>
+<area shape="rect" href="javascript:void(0);" title="exceptions.Exception.__new__" alt="" coords="32,329,157,348"/>
+<area shape="rect" href="javascript:void(0);" title="Common base class for all non-exit exceptions." alt="" coords="31,285,159,349"/>
<area shape="rect" href="javascript:void(0);" title="exceptions.BaseException.args" alt="" coords="17,28,172,47"/>
<area shape="rect" href="javascript:void(0);" title="exceptions.BaseException.message" alt="" coords="17,47,172,65"/>
<area shape="rect" href="javascript:void(0);" title="x.__delattr__('name') <==> del x.name" alt="" coords="17,68,172,87"/>
@@ -71,9 +74,6 @@
<area shape="rect" href="javascript:void(0);" title="str(x)" alt="" coords="17,217,172,236"/>
<area shape="rect" href="javascript:void(0);" title="exceptions.BaseException.__unicode__" alt="" coords="17,236,172,255"/>
<area shape="rect" href="javascript:void(0);" title="Common base class for all exceptions" alt="" coords="16,11,173,256"/>
-<area shape="rect" href="javascript:void(0);" title="x.__init__(...) initializes x; see x.__class__.__doc__ for signature" alt="" coords="32,311,157,329"/>
-<area shape="rect" href="javascript:void(0);" title="exceptions.Exception.__new__" alt="" coords="32,329,157,348"/>
-<area shape="rect" href="javascript:void(0);" title="Common base class for all non-exit exceptions." alt="" coords="31,285,159,349"/>
</map>
<img src="uml_class_diagram_for_oauth2cl_17.gif" alt='' usemap="#uml_class_diagram_for_oauth2cl_17" ismap="ismap" class="graph-without-title" />
</center>
@@ -181,7 +181,7 @@
<table border="0" cellpadding="0" cellspacing="0" width="100%%">
<tr>
<td align="left" class="footer">
- Generated by Epydoc 3.0.1 on Tue Jun 5 09:03:09 2012
+ Generated by Epydoc 3.0.1 on Thu Jun 14 08:01:57 2012
</td>
<td align="right" class="footer">
<a target="mainFrame" href="http://epydoc.sourceforge.net"
diff --git a/docs/epy/oauth2client.client.MemoryCache-class.html b/docs/epy/oauth2client.client.MemoryCache-class.html
index d49bc9e..bad85dd 100644
--- a/docs/epy/oauth2client.client.MemoryCache-class.html
+++ b/docs/epy/oauth2client.client.MemoryCache-class.html
@@ -270,7 +270,7 @@
<table border="0" cellpadding="0" cellspacing="0" width="100%%">
<tr>
<td align="left" class="footer">
- Generated by Epydoc 3.0.1 on Tue Jun 5 09:03:09 2012
+ Generated by Epydoc 3.0.1 on Thu Jun 14 08:01:57 2012
</td>
<td align="right" class="footer">
<a target="mainFrame" href="http://epydoc.sourceforge.net"
diff --git a/docs/epy/oauth2client.client.OAuth2Credentials-class.html b/docs/epy/oauth2client.client.OAuth2Credentials-class.html
index c96aca6..6a15ee7 100644
--- a/docs/epy/oauth2client.client.OAuth2Credentials-class.html
+++ b/docs/epy/oauth2client.client.OAuth2Credentials-class.html
@@ -69,11 +69,11 @@
<area shape="rect" href="oauth2client.client.OAuth2Credentials-class.html" title="Credentials object for OAuth 2.0." alt="" coords="16,99,720,307"/>
<area shape="rect" href="oauth2client.client.AssertionCredentials-class.html" title="Abstract Credentials object used for OAuth 2.0 assertion grants." alt="" coords="204,336,337,363"/>
<area shape="rect" href="oauth2client.client.AccessTokenCredentials-class.html" title="Credentials object for OAuth 2.0." alt="" coords="388,336,545,363"/>
+<area shape="rect" href="oauth2client.appengine.AppAssertionCredentials-class.html" title="Credentials object for App Engine Assertion Grants" alt="" coords="32,392,253,419"/>
+<area shape="rect" href="oauth2client.client.SignedJwtAssertionCredentials-class.html" title="Credentials object used for OAuth 2.0 Signed JWT assertion grants." alt="" coords="304,392,496,419"/>
<area shape="rect" href="oauth2client.client.Credentials-class.html#NON_SERIALIZED_MEMBERS" title="oauth2client.client.Credentials.NON_SERIALIZED_MEMBERS" alt="" coords="273,28,463,47"/>
<area shape="rect" href="oauth2client.client.Credentials-class.html#new_from_json" title="Utility class method to instantiate a Credentials subclass from a JSON representation produced by to_json()." alt="" coords="273,49,463,68"/>
<area shape="rect" href="oauth2client.client.Credentials-class.html" title="Base class for all Credentials objects." alt="" coords="272,11,464,69"/>
-<area shape="rect" href="oauth2client.client.SignedJwtAssertionCredentials-class.html" title="Credentials object used for OAuth 2.0 Signed JWT assertion grants." alt="" coords="47,392,239,419"/>
-<area shape="rect" href="oauth2client.appengine.AppAssertionCredentials-class.html" title="Credentials object for App Engine Assertion Grants" alt="" coords="289,392,511,419"/>
</map>
<img src="uml_class_diagram_for_oauth2cl_19.gif" alt='' usemap="#uml_class_diagram_for_oauth2cl_19" ismap="ismap" class="graph-without-title" />
</center>
@@ -867,7 +867,7 @@
<table border="0" cellpadding="0" cellspacing="0" width="100%%">
<tr>
<td align="left" class="footer">
- Generated by Epydoc 3.0.1 on Tue Jun 5 09:03:09 2012
+ Generated by Epydoc 3.0.1 on Thu Jun 14 08:01:57 2012
</td>
<td align="right" class="footer">
<a target="mainFrame" href="http://epydoc.sourceforge.net"
diff --git a/docs/epy/oauth2client.client.OAuth2WebServerFlow-class.html b/docs/epy/oauth2client.client.OAuth2WebServerFlow-class.html
index f2a003b..fae2616 100644
--- a/docs/epy/oauth2client.client.OAuth2WebServerFlow-class.html
+++ b/docs/epy/oauth2client.client.OAuth2WebServerFlow-class.html
@@ -346,7 +346,7 @@
<table border="0" cellpadding="0" cellspacing="0" width="100%%">
<tr>
<td align="left" class="footer">
- Generated by Epydoc 3.0.1 on Tue Jun 5 09:03:09 2012
+ Generated by Epydoc 3.0.1 on Thu Jun 14 08:01:57 2012
</td>
<td align="right" class="footer">
<a target="mainFrame" href="http://epydoc.sourceforge.net"
diff --git a/docs/epy/oauth2client.client.SignedJwtAssertionCredentials-class.html b/docs/epy/oauth2client.client.SignedJwtAssertionCredentials-class.html
index 3b56d5e..910ad08 100644
--- a/docs/epy/oauth2client.client.SignedJwtAssertionCredentials-class.html
+++ b/docs/epy/oauth2client.client.SignedJwtAssertionCredentials-class.html
@@ -435,7 +435,7 @@
<table border="0" cellpadding="0" cellspacing="0" width="100%%">
<tr>
<td align="left" class="footer">
- Generated by Epydoc 3.0.1 on Tue Jun 5 09:03:09 2012
+ Generated by Epydoc 3.0.1 on Thu Jun 14 08:01:57 2012
</td>
<td align="right" class="footer">
<a target="mainFrame" href="http://epydoc.sourceforge.net"
diff --git a/docs/epy/oauth2client.client.Storage-class.html b/docs/epy/oauth2client.client.Storage-class.html
index 975f3ba..007c748 100644
--- a/docs/epy/oauth2client.client.Storage-class.html
+++ b/docs/epy/oauth2client.client.Storage-class.html
@@ -56,18 +56,18 @@
<h1 class="epydoc">Class Storage</h1><p class="nomargin-top"><span class="codelink"><a href="oauth2client.client-pysrc.html#Storage">source code</a></span></p>
<center>
<div class="private"><center> <map id="uml_class_diagram_for_oauth2cl_22" name="uml_class_diagram_for_oauth2cl_22">
-<area shape="rect" href="oauth2client.client.Storage-class.html#acquire_lock" title="Acquires any lock necessary to access this Storage." alt="" coords="337,36,505,55"/>
-<area shape="rect" href="oauth2client.client.Storage-class.html#release_lock" title="Release the Storage lock." alt="" coords="337,55,505,73"/>
-<area shape="rect" href="oauth2client.client.Storage-class.html#locked_get" title="Retrieve credential." alt="" coords="337,73,505,92"/>
-<area shape="rect" href="oauth2client.client.Storage-class.html#locked_put" title="Write a credential." alt="" coords="337,92,505,111"/>
-<area shape="rect" href="oauth2client.client.Storage-class.html#locked_delete" title="Delete a credential." alt="" coords="337,111,505,129"/>
-<area shape="rect" href="oauth2client.client.Storage-class.html#get" title="Retrieve credential." alt="" coords="337,129,505,148"/>
-<area shape="rect" href="oauth2client.client.Storage-class.html#put" title="Write a credential." alt="" coords="337,148,505,167"/>
-<area shape="rect" href="oauth2client.client.Storage-class.html#delete" title="Delete credential." alt="" coords="337,167,505,185"/>
-<area shape="rect" href="oauth2client.client.Storage-class.html" title="Base class for all Storage objects." alt="" coords="336,11,507,187"/>
+<area shape="rect" href="oauth2client.client.Storage-class.html#acquire_lock" title="Acquires any lock necessary to access this Storage." alt="" coords="395,36,563,55"/>
+<area shape="rect" href="oauth2client.client.Storage-class.html#release_lock" title="Release the Storage lock." alt="" coords="395,55,563,73"/>
+<area shape="rect" href="oauth2client.client.Storage-class.html#locked_get" title="Retrieve credential." alt="" coords="395,73,563,92"/>
+<area shape="rect" href="oauth2client.client.Storage-class.html#locked_put" title="Write a credential." alt="" coords="395,92,563,111"/>
+<area shape="rect" href="oauth2client.client.Storage-class.html#locked_delete" title="Delete a credential." alt="" coords="395,111,563,129"/>
+<area shape="rect" href="oauth2client.client.Storage-class.html#get" title="Retrieve credential." alt="" coords="395,129,563,148"/>
+<area shape="rect" href="oauth2client.client.Storage-class.html#put" title="Write a credential." alt="" coords="395,148,563,167"/>
+<area shape="rect" href="oauth2client.client.Storage-class.html#delete" title="Delete credential." alt="" coords="395,167,563,185"/>
+<area shape="rect" href="oauth2client.client.Storage-class.html" title="Base class for all Storage objects." alt="" coords="393,11,564,187"/>
<area shape="rect" href="oauth2client.multistore_file._MultiStore._Storage-class.html" title="A Storage object that knows how to read/write a single credential." alt="" coords="16,216,237,243"/>
-<area shape="rect" href="oauth2client.file.Storage-class.html" title="Store and retrieve a single credential to and from a file." alt="" coords="288,216,368,243"/>
-<area shape="rect" href="oauth2client.appengine.StorageByKeyName-class.html" title="Store and retrieve a single credential to and from the App Engine datastore." alt="" coords="419,216,613,243"/>
+<area shape="rect" href="oauth2client.appengine.StorageByKeyName-class.html" title="Store and retrieve a single credential to and from the App Engine datastore." alt="" coords="288,216,483,243"/>
+<area shape="rect" href="oauth2client.file.Storage-class.html" title="Store and retrieve a single credential to and from a file." alt="" coords="533,216,613,243"/>
<area shape="rect" href="oauth2client.django_orm.Storage-class.html" title="Store and retrieve a single credential to and from the datastore." alt="" coords="664,216,795,243"/>
</map>
<img src="uml_class_diagram_for_oauth2cl_22.gif" alt='' usemap="#uml_class_diagram_for_oauth2cl_22" ismap="ismap" class="graph-without-title" />
@@ -552,7 +552,7 @@
<table border="0" cellpadding="0" cellspacing="0" width="100%%">
<tr>
<td align="left" class="footer">
- Generated by Epydoc 3.0.1 on Tue Jun 5 09:03:10 2012
+ Generated by Epydoc 3.0.1 on Thu Jun 14 08:01:57 2012
</td>
<td align="right" class="footer">
<a target="mainFrame" href="http://epydoc.sourceforge.net"
diff --git a/docs/epy/oauth2client.client.UnknownClientSecretsFlowError-class.html b/docs/epy/oauth2client.client.UnknownClientSecretsFlowError-class.html
index 5ebff41..cf51df2 100644
--- a/docs/epy/oauth2client.client.UnknownClientSecretsFlowError-class.html
+++ b/docs/epy/oauth2client.client.UnknownClientSecretsFlowError-class.html
@@ -58,6 +58,9 @@
<center> <map id="uml_class_diagram_for_oauth2cl_24" name="uml_class_diagram_for_oauth2cl_24">
<area shape="rect" href="oauth2client.client.UnknownClientSecretsFlowError-class.html" title="The client secrets file called for an unknown type of OAuth 2.0 flow." alt="" coords="16,440,205,472"/>
<area shape="rect" href="oauth2client.client.Error-class.html" title="Base error for this module." alt="" coords="95,379,127,411"/>
+<area shape="rect" href="javascript:void(0);" title="x.__init__(...) initializes x; see x.__class__.__doc__ for signature" alt="" coords="48,311,173,329"/>
+<area shape="rect" href="javascript:void(0);" title="exceptions.Exception.__new__" alt="" coords="48,329,173,348"/>
+<area shape="rect" href="javascript:void(0);" title="Common base class for all non-exit exceptions." alt="" coords="47,285,175,349"/>
<area shape="rect" href="javascript:void(0);" title="exceptions.BaseException.args" alt="" coords="33,28,188,47"/>
<area shape="rect" href="javascript:void(0);" title="exceptions.BaseException.message" alt="" coords="33,47,188,65"/>
<area shape="rect" href="javascript:void(0);" title="x.__delattr__('name') <==> del x.name" alt="" coords="33,68,188,87"/>
@@ -71,9 +74,6 @@
<area shape="rect" href="javascript:void(0);" title="str(x)" alt="" coords="33,217,188,236"/>
<area shape="rect" href="javascript:void(0);" title="exceptions.BaseException.__unicode__" alt="" coords="33,236,188,255"/>
<area shape="rect" href="javascript:void(0);" title="Common base class for all exceptions" alt="" coords="32,11,189,256"/>
-<area shape="rect" href="javascript:void(0);" title="x.__init__(...) initializes x; see x.__class__.__doc__ for signature" alt="" coords="48,311,173,329"/>
-<area shape="rect" href="javascript:void(0);" title="exceptions.Exception.__new__" alt="" coords="48,329,173,348"/>
-<area shape="rect" href="javascript:void(0);" title="Common base class for all non-exit exceptions." alt="" coords="47,285,175,349"/>
</map>
<img src="uml_class_diagram_for_oauth2cl_24.gif" alt='' usemap="#uml_class_diagram_for_oauth2cl_24" ismap="ismap" class="graph-without-title" />
</center>
@@ -181,7 +181,7 @@
<table border="0" cellpadding="0" cellspacing="0" width="100%%">
<tr>
<td align="left" class="footer">
- Generated by Epydoc 3.0.1 on Tue Jun 5 09:03:10 2012
+ Generated by Epydoc 3.0.1 on Thu Jun 14 08:01:57 2012
</td>
<td align="right" class="footer">
<a target="mainFrame" href="http://epydoc.sourceforge.net"
diff --git a/docs/epy/oauth2client.client.VerifyJwtTokenError-class.html b/docs/epy/oauth2client.client.VerifyJwtTokenError-class.html
index 5119845..f939c08 100644
--- a/docs/epy/oauth2client.client.VerifyJwtTokenError-class.html
+++ b/docs/epy/oauth2client.client.VerifyJwtTokenError-class.html
@@ -58,6 +58,9 @@
<center> <map id="uml_class_diagram_for_oauth2cl_25" name="uml_class_diagram_for_oauth2cl_25">
<area shape="rect" href="oauth2client.client.VerifyJwtTokenError-class.html" title="Could on retrieve certificates for validation." alt="" coords="36,440,153,472"/>
<area shape="rect" href="oauth2client.client.Error-class.html" title="Base error for this module." alt="" coords="79,379,111,411"/>
+<area shape="rect" href="javascript:void(0);" title="x.__init__(...) initializes x; see x.__class__.__doc__ for signature" alt="" coords="32,311,157,329"/>
+<area shape="rect" href="javascript:void(0);" title="exceptions.Exception.__new__" alt="" coords="32,329,157,348"/>
+<area shape="rect" href="javascript:void(0);" title="Common base class for all non-exit exceptions." alt="" coords="31,285,159,349"/>
<area shape="rect" href="javascript:void(0);" title="exceptions.BaseException.args" alt="" coords="17,28,172,47"/>
<area shape="rect" href="javascript:void(0);" title="exceptions.BaseException.message" alt="" coords="17,47,172,65"/>
<area shape="rect" href="javascript:void(0);" title="x.__delattr__('name') <==> del x.name" alt="" coords="17,68,172,87"/>
@@ -71,9 +74,6 @@
<area shape="rect" href="javascript:void(0);" title="str(x)" alt="" coords="17,217,172,236"/>
<area shape="rect" href="javascript:void(0);" title="exceptions.BaseException.__unicode__" alt="" coords="17,236,172,255"/>
<area shape="rect" href="javascript:void(0);" title="Common base class for all exceptions" alt="" coords="16,11,173,256"/>
-<area shape="rect" href="javascript:void(0);" title="x.__init__(...) initializes x; see x.__class__.__doc__ for signature" alt="" coords="32,311,157,329"/>
-<area shape="rect" href="javascript:void(0);" title="exceptions.Exception.__new__" alt="" coords="32,329,157,348"/>
-<area shape="rect" href="javascript:void(0);" title="Common base class for all non-exit exceptions." alt="" coords="31,285,159,349"/>
</map>
<img src="uml_class_diagram_for_oauth2cl_25.gif" alt='' usemap="#uml_class_diagram_for_oauth2cl_25" ismap="ismap" class="graph-without-title" />
</center>
@@ -181,7 +181,7 @@
<table border="0" cellpadding="0" cellspacing="0" width="100%%">
<tr>
<td align="left" class="footer">
- Generated by Epydoc 3.0.1 on Tue Jun 5 09:03:10 2012
+ Generated by Epydoc 3.0.1 on Thu Jun 14 08:01:57 2012
</td>
<td align="right" class="footer">
<a target="mainFrame" href="http://epydoc.sourceforge.net"
diff --git a/docs/epy/oauth2client.clientsecrets-module.html b/docs/epy/oauth2client.clientsecrets-module.html
index 7afa255..ee2e9b0 100644
--- a/docs/epy/oauth2client.clientsecrets-module.html
+++ b/docs/epy/oauth2client.clientsecrets-module.html
@@ -303,7 +303,7 @@
<table border="0" cellpadding="0" cellspacing="0" width="100%%">
<tr>
<td align="left" class="footer">
- Generated by Epydoc 3.0.1 on Tue Jun 5 09:03:05 2012
+ Generated by Epydoc 3.0.1 on Thu Jun 14 08:01:54 2012
</td>
<td align="right" class="footer">
<a target="mainFrame" href="http://epydoc.sourceforge.net"
diff --git a/docs/epy/oauth2client.clientsecrets-pysrc.html b/docs/epy/oauth2client.clientsecrets-pysrc.html
index c2b8e2e..cd112d8 100644
--- a/docs/epy/oauth2client.clientsecrets-pysrc.html
+++ b/docs/epy/oauth2client.clientsecrets-pysrc.html
@@ -154,15 +154,17 @@
<a name="L95"></a><tt class="py-lineno"> 95</tt> <tt class="py-line"> </tt>
<a name="loadfile"></a><div id="loadfile-def"><a name="L96"></a><tt class="py-lineno"> 96</tt> <a class="py-toggle" href="#" id="loadfile-toggle" onclick="return toggle('loadfile');">-</a><tt class="py-line"><tt class="py-keyword">def</tt> <a class="py-def-name" href="oauth2client.clientsecrets-module.html#loadfile">loadfile</a><tt class="py-op">(</tt><tt class="py-param">filename</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
</div><div id="loadfile-collapsed" style="display:none;" pad="+++" indent="++++"></div><div id="loadfile-expanded"><a name="L97"></a><tt class="py-lineno"> 97</tt> <tt class="py-line"> <tt class="py-keyword">try</tt><tt class="py-op">:</tt> </tt>
-<a name="L98"></a><tt class="py-lineno"> 98</tt> <tt class="py-line"> <tt class="py-name">fp</tt> <tt class="py-op">=</tt> <tt id="link-17" class="py-name" targets="Module oauth2client.file=oauth2client.file-module.html"><a title="oauth2client.file" class="py-name" href="#" onclick="return doclink('link-17', 'file', 'link-17');">file</a></tt><tt class="py-op">(</tt><tt class="py-name">filename</tt><tt class="py-op">,</tt> <tt class="py-string">'r'</tt><tt class="py-op">)</tt> </tt>
+<a name="L98"></a><tt class="py-lineno"> 98</tt> <tt class="py-line"> <tt class="py-name">fp</tt> <tt class="py-op">=</tt> <tt id="link-17" class="py-name" targets="Module oauth2client.file=oauth2client.file-module.html"><a title="oauth2client.file" class="py-name" href="#" onclick="return doclink('link-17', 'file', 'link-17');">file</a></tt><tt class="py-op">(</tt><tt id="link-18" 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-18', 'filename', 'link-18');">filename</a></tt><tt class="py-op">,</tt> <tt class="py-string">'r'</tt><tt class="py-op">)</tt> </tt>
<a name="L99"></a><tt class="py-lineno"> 99</tt> <tt class="py-line"> <tt class="py-keyword">try</tt><tt class="py-op">:</tt> </tt>
-<a name="L100"></a><tt class="py-lineno">100</tt> <tt class="py-line"> <tt class="py-name">obj</tt> <tt class="py-op">=</tt> <tt class="py-name">simplejson</tt><tt class="py-op">.</tt><tt id="link-18" class="py-name"><a title="oauth2client.clientsecrets.load" class="py-name" href="#" onclick="return doclink('link-18', 'load', 'link-13');">load</a></tt><tt class="py-op">(</tt><tt class="py-name">fp</tt><tt class="py-op">)</tt> </tt>
+<a name="L100"></a><tt class="py-lineno">100</tt> <tt class="py-line"> <tt class="py-name">obj</tt> <tt class="py-op">=</tt> <tt class="py-name">simplejson</tt><tt class="py-op">.</tt><tt id="link-19" class="py-name"><a title="oauth2client.clientsecrets.load" class="py-name" href="#" onclick="return doclink('link-19', 'load', 'link-13');">load</a></tt><tt class="py-op">(</tt><tt class="py-name">fp</tt><tt class="py-op">)</tt> </tt>
<a name="L101"></a><tt class="py-lineno">101</tt> <tt class="py-line"> <tt class="py-keyword">finally</tt><tt class="py-op">:</tt> </tt>
<a name="L102"></a><tt class="py-lineno">102</tt> <tt class="py-line"> <tt class="py-name">fp</tt><tt class="py-op">.</tt><tt class="py-name">close</tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
<a name="L103"></a><tt class="py-lineno">103</tt> <tt class="py-line"> <tt class="py-keyword">except</tt> <tt class="py-name">IOError</tt><tt class="py-op">:</tt> </tt>
-<a name="L104"></a><tt class="py-lineno">104</tt> <tt class="py-line"> <tt class="py-keyword">raise</tt> <tt id="link-19" class="py-name"><a title="oauth2client.appengine.InvalidClientSecretsError
-oauth2client.clientsecrets.InvalidClientSecretsError" class="py-name" href="#" onclick="return doclink('link-19', 'InvalidClientSecretsError', 'link-6');">InvalidClientSecretsError</a></tt><tt class="py-op">(</tt><tt class="py-string">'File not found: "%s"'</tt> <tt class="py-op">%</tt> <tt class="py-name">filename</tt><tt class="py-op">)</tt> </tt>
-<a name="L105"></a><tt class="py-lineno">105</tt> <tt class="py-line"> <tt class="py-keyword">return</tt> <tt id="link-20" class="py-name"><a title="oauth2client.clientsecrets._validate_clientsecrets" class="py-name" href="#" onclick="return doclink('link-20', '_validate_clientsecrets', 'link-14');">_validate_clientsecrets</a></tt><tt class="py-op">(</tt><tt class="py-name">obj</tt><tt class="py-op">)</tt> </tt>
+<a name="L104"></a><tt class="py-lineno">104</tt> <tt class="py-line"> <tt class="py-keyword">raise</tt> <tt id="link-20" class="py-name"><a title="oauth2client.appengine.InvalidClientSecretsError
+oauth2client.clientsecrets.InvalidClientSecretsError" class="py-name" href="#" onclick="return doclink('link-20', 'InvalidClientSecretsError', 'link-6');">InvalidClientSecretsError</a></tt><tt class="py-op">(</tt><tt class="py-string">'File not found: "%s"'</tt> <tt class="py-op">%</tt> <tt id="link-21" class="py-name"><a title="oauth2client.locked_file.LockedFile.filename
+oauth2client.locked_file._Opener.filename" class="py-name" href="#" onclick="return doclink('link-21', 'filename', 'link-18');">filename</a></tt><tt class="py-op">)</tt> </tt>
+<a name="L105"></a><tt class="py-lineno">105</tt> <tt class="py-line"> <tt class="py-keyword">return</tt> <tt id="link-22" class="py-name"><a title="oauth2client.clientsecrets._validate_clientsecrets" class="py-name" href="#" onclick="return doclink('link-22', '_validate_clientsecrets', 'link-14');">_validate_clientsecrets</a></tt><tt class="py-op">(</tt><tt class="py-name">obj</tt><tt class="py-op">)</tt> </tt>
</div><a name="L106"></a><tt class="py-lineno">106</tt> <tt class="py-line"> </tt><script type="text/javascript">
<!--
expandto(location.href);
@@ -193,7 +195,7 @@
<table border="0" cellpadding="0" cellspacing="0" width="100%%">
<tr>
<td align="left" class="footer">
- Generated by Epydoc 3.0.1 on Tue Jun 5 09:03:11 2012
+ Generated by Epydoc 3.0.1 on Thu Jun 14 08:01:59 2012
</td>
<td align="right" class="footer">
<a target="mainFrame" href="http://epydoc.sourceforge.net"
diff --git a/docs/epy/oauth2client.clientsecrets.Error-class.html b/docs/epy/oauth2client.clientsecrets.Error-class.html
index f821a0f..510cad4 100644
--- a/docs/epy/oauth2client.clientsecrets.Error-class.html
+++ b/docs/epy/oauth2client.clientsecrets.Error-class.html
@@ -181,7 +181,7 @@
<table border="0" cellpadding="0" cellspacing="0" width="100%%">
<tr>
<td align="left" class="footer">
- Generated by Epydoc 3.0.1 on Tue Jun 5 09:03:10 2012
+ Generated by Epydoc 3.0.1 on Thu Jun 14 08:01:57 2012
</td>
<td align="right" class="footer">
<a target="mainFrame" href="http://epydoc.sourceforge.net"
diff --git a/docs/epy/oauth2client.clientsecrets.InvalidClientSecretsError-class.html b/docs/epy/oauth2client.clientsecrets.InvalidClientSecretsError-class.html
index b3680cc..d25399e 100644
--- a/docs/epy/oauth2client.clientsecrets.InvalidClientSecretsError-class.html
+++ b/docs/epy/oauth2client.clientsecrets.InvalidClientSecretsError-class.html
@@ -58,6 +58,9 @@
<center> <map id="uml_class_diagram_for_oauth2cl_27" name="uml_class_diagram_for_oauth2cl_27">
<area shape="rect" href="oauth2client.clientsecrets.InvalidClientSecretsError-class.html" title="Format of ClientSecrets file is invalid." alt="" coords="23,440,167,472"/>
<area shape="rect" href="oauth2client.clientsecrets.Error-class.html" title="Base error for this module." alt="" coords="79,379,111,411"/>
+<area shape="rect" href="javascript:void(0);" title="x.__init__(...) initializes x; see x.__class__.__doc__ for signature" alt="" coords="32,311,157,329"/>
+<area shape="rect" href="javascript:void(0);" title="exceptions.Exception.__new__" alt="" coords="32,329,157,348"/>
+<area shape="rect" href="javascript:void(0);" title="Common base class for all non-exit exceptions." alt="" coords="31,285,159,349"/>
<area shape="rect" href="javascript:void(0);" title="exceptions.BaseException.args" alt="" coords="17,28,172,47"/>
<area shape="rect" href="javascript:void(0);" title="exceptions.BaseException.message" alt="" coords="17,47,172,65"/>
<area shape="rect" href="javascript:void(0);" title="x.__delattr__('name') <==> del x.name" alt="" coords="17,68,172,87"/>
@@ -71,9 +74,6 @@
<area shape="rect" href="javascript:void(0);" title="str(x)" alt="" coords="17,217,172,236"/>
<area shape="rect" href="javascript:void(0);" title="exceptions.BaseException.__unicode__" alt="" coords="17,236,172,255"/>
<area shape="rect" href="javascript:void(0);" title="Common base class for all exceptions" alt="" coords="16,11,173,256"/>
-<area shape="rect" href="javascript:void(0);" title="x.__init__(...) initializes x; see x.__class__.__doc__ for signature" alt="" coords="32,311,157,329"/>
-<area shape="rect" href="javascript:void(0);" title="exceptions.Exception.__new__" alt="" coords="32,329,157,348"/>
-<area shape="rect" href="javascript:void(0);" title="Common base class for all non-exit exceptions." alt="" coords="31,285,159,349"/>
</map>
<img src="uml_class_diagram_for_oauth2cl_27.gif" alt='' usemap="#uml_class_diagram_for_oauth2cl_27" ismap="ismap" class="graph-without-title" />
</center>
@@ -181,7 +181,7 @@
<table border="0" cellpadding="0" cellspacing="0" width="100%%">
<tr>
<td align="left" class="footer">
- Generated by Epydoc 3.0.1 on Tue Jun 5 09:03:10 2012
+ Generated by Epydoc 3.0.1 on Thu Jun 14 08:01:58 2012
</td>
<td align="right" class="footer">
<a target="mainFrame" href="http://epydoc.sourceforge.net"
diff --git a/docs/epy/oauth2client.crypt-module.html b/docs/epy/oauth2client.crypt-module.html
index 878b552..ffa0f9a 100644
--- a/docs/epy/oauth2client.crypt-module.html
+++ b/docs/epy/oauth2client.crypt-module.html
@@ -355,7 +355,7 @@
<table border="0" cellpadding="0" cellspacing="0" width="100%%">
<tr>
<td align="left" class="footer">
- Generated by Epydoc 3.0.1 on Tue Jun 5 09:03:05 2012
+ Generated by Epydoc 3.0.1 on Thu Jun 14 08:01:54 2012
</td>
<td align="right" class="footer">
<a target="mainFrame" href="http://epydoc.sourceforge.net"
diff --git a/docs/epy/oauth2client.crypt-pysrc.html b/docs/epy/oauth2client.crypt-pysrc.html
index 9f7d54b..abf9a7e 100644
--- a/docs/epy/oauth2client.crypt-pysrc.html
+++ b/docs/epy/oauth2client.crypt-pysrc.html
@@ -341,7 +341,7 @@
<table border="0" cellpadding="0" cellspacing="0" width="100%%">
<tr>
<td align="left" class="footer">
- Generated by Epydoc 3.0.1 on Tue Jun 5 09:03:12 2012
+ Generated by Epydoc 3.0.1 on Thu Jun 14 08:01:59 2012
</td>
<td align="right" class="footer">
<a target="mainFrame" href="http://epydoc.sourceforge.net"
diff --git a/docs/epy/oauth2client.crypt.AppIdentityError-class.html b/docs/epy/oauth2client.crypt.AppIdentityError-class.html
index ac6f4c6..a0707d6 100644
--- a/docs/epy/oauth2client.crypt.AppIdentityError-class.html
+++ b/docs/epy/oauth2client.crypt.AppIdentityError-class.html
@@ -175,7 +175,7 @@
<table border="0" cellpadding="0" cellspacing="0" width="100%%">
<tr>
<td align="left" class="footer">
- Generated by Epydoc 3.0.1 on Tue Jun 5 09:03:10 2012
+ Generated by Epydoc 3.0.1 on Thu Jun 14 08:01:58 2012
</td>
<td align="right" class="footer">
<a target="mainFrame" href="http://epydoc.sourceforge.net"
diff --git a/docs/epy/oauth2client.crypt.Signer-class.html b/docs/epy/oauth2client.crypt.Signer-class.html
index f5c7999..bff426a 100644
--- a/docs/epy/oauth2client.crypt.Signer-class.html
+++ b/docs/epy/oauth2client.crypt.Signer-class.html
@@ -338,7 +338,7 @@
<table border="0" cellpadding="0" cellspacing="0" width="100%%">
<tr>
<td align="left" class="footer">
- Generated by Epydoc 3.0.1 on Tue Jun 5 09:03:10 2012
+ Generated by Epydoc 3.0.1 on Thu Jun 14 08:01:58 2012
</td>
<td align="right" class="footer">
<a target="mainFrame" href="http://epydoc.sourceforge.net"
diff --git a/docs/epy/oauth2client.crypt.Verifier-class.html b/docs/epy/oauth2client.crypt.Verifier-class.html
index 31da846..5dce398 100644
--- a/docs/epy/oauth2client.crypt.Verifier-class.html
+++ b/docs/epy/oauth2client.crypt.Verifier-class.html
@@ -343,7 +343,7 @@
<table border="0" cellpadding="0" cellspacing="0" width="100%%">
<tr>
<td align="left" class="footer">
- Generated by Epydoc 3.0.1 on Tue Jun 5 09:03:10 2012
+ Generated by Epydoc 3.0.1 on Thu Jun 14 08:01:58 2012
</td>
<td align="right" class="footer">
<a target="mainFrame" href="http://epydoc.sourceforge.net"
diff --git a/docs/epy/oauth2client.django_orm-module.html b/docs/epy/oauth2client.django_orm-module.html
index 7f03830..fe9379f 100644
--- a/docs/epy/oauth2client.django_orm-module.html
+++ b/docs/epy/oauth2client.django_orm-module.html
@@ -154,7 +154,7 @@
<table border="0" cellpadding="0" cellspacing="0" width="100%%">
<tr>
<td align="left" class="footer">
- Generated by Epydoc 3.0.1 on Tue Jun 5 09:03:05 2012
+ Generated by Epydoc 3.0.1 on Thu Jun 14 08:01:54 2012
</td>
<td align="right" class="footer">
<a target="mainFrame" href="http://epydoc.sourceforge.net"
diff --git a/docs/epy/oauth2client.django_orm-pysrc.html b/docs/epy/oauth2client.django_orm-pysrc.html
index df725ae..77d5ef8 100644
--- a/docs/epy/oauth2client.django_orm-pysrc.html
+++ b/docs/epy/oauth2client.django_orm-pysrc.html
@@ -206,7 +206,7 @@
<table border="0" cellpadding="0" cellspacing="0" width="100%%">
<tr>
<td align="left" class="footer">
- Generated by Epydoc 3.0.1 on Tue Jun 5 09:03:12 2012
+ Generated by Epydoc 3.0.1 on Thu Jun 14 08:01:59 2012
</td>
<td align="right" class="footer">
<a target="mainFrame" href="http://epydoc.sourceforge.net"
diff --git a/docs/epy/oauth2client.django_orm.CredentialsField-class.html b/docs/epy/oauth2client.django_orm.CredentialsField-class.html
index de6a76a..3679506 100644
--- a/docs/epy/oauth2client.django_orm.CredentialsField-class.html
+++ b/docs/epy/oauth2client.django_orm.CredentialsField-class.html
@@ -56,36 +56,33 @@
<h1 class="epydoc">Class CredentialsField</h1><p class="nomargin-top"><span class="codelink"><a href="oauth2client.django_orm-pysrc.html#CredentialsField">source code</a></span></p>
<center>
<center> <map id="uml_class_diagram_for_oauth2cl_31" name="uml_class_diagram_for_oauth2cl_31">
-<area shape="rect" href="django.db.models.fields.subclassing.SubfieldBase-class.html" title="A metaclass for custom Field subclasses." alt="" coords="1183,527,1529,545"/>
-<area shape="rect" href="oauth2client.django_orm.CredentialsField-class.html#get_internal_type" title="oauth2client.django_orm.CredentialsField.get_internal_type" alt="" coords="1183,548,1529,567"/>
-<area shape="rect" href="oauth2client.django_orm.CredentialsField-class.html#to_python" title="Converts the input value into the expected Python data type, raising django.core.exceptions.ValidationError if the data can't be converted." alt="" coords="1183,567,1529,585"/>
-<area shape="rect" href="oauth2client.django_orm.CredentialsField-class.html#get_db_prep_value" title="Returns field's value prepared for interacting with the database backend." alt="" coords="1183,585,1529,604"/>
-<area shape="rect" href="oauth2client.django_orm.CredentialsField-class.html#contribute_to_class" title="oauth2client.django_orm.CredentialsField.contribute_to_class" alt="" coords="1183,604,1529,623"/>
-<area shape="rect" href="oauth2client.django_orm.CredentialsField-class.html" title="oauth2client.django_orm.CredentialsField" alt="" coords="1181,509,1531,624"/>
-<area shape="rect" href="javascript:void(0);" title="django.db.models.fields.Field.auto_creation_counter" alt="" coords="17,28,2695,47"/>
-<area shape="rect" href="javascript:void(0);" title="django.db.models.fields.Field.choices" alt="" coords="17,47,2695,65"/>
-<area shape="rect" href="javascript:void(0);" title="django.db.models.fields.Field.creation_counter" alt="" coords="17,65,2695,84"/>
-<area shape="rect" href="javascript:void(0);" title="django.db.models.fields.Field.default_error_messages" alt="" coords="17,84,2695,103"/>
-<area shape="rect" href="javascript:void(0);" title="django.db.models.fields.Field.default_validators" alt="" coords="17,103,2695,121"/>
-<area shape="rect" href="javascript:void(0);" title="django.db.models.fields.Field.description" alt="" coords="17,121,2695,140"/>
-<area shape="rect" href="javascript:void(0);" title="django.db.models.fields.Field.empty_strings_allowed" alt="" coords="17,140,2695,159"/>
-<area shape="rect" href="javascript:void(0);" title="Flattened version of choices tuple." alt="" coords="17,159,2695,177"/>
-<area shape="rect" href="javascript:void(0);" title="django.db.models.fields.Field.unique" alt="" coords="17,177,2695,196"/>
-<area shape="rect" href="javascript:void(0);" title="django.db.models.fields.Field.__cmp__" alt="" coords="17,199,2695,217"/>
-<area shape="rect" href="javascript:void(0);" title="django.db.models.fields.Field.__deepcopy__" alt="" coords="17,217,2695,236"/>
-<area shape="rect" href="javascript:void(0);" title="x.__init__(...) initializes x; see x.__class__.__doc__ for signature" alt="" coords="17,236,2695,255"/>
-<area shape="rect" href="javascript:void(0);" title="Displays the module, class and name of the field." alt="" coords="17,255,2695,273"/>
-<area shape="rect" href="javascript:void(0);" title="django.db.models.fields.Field.bind" alt="" coords="17,273,2695,292"/>
-<area shape="rect" href="javascript:void(0);" title="Convert the value's type and run validation." alt="" coords="17,292,2695,311"/>
-<area shape="rect" href="javascript:void(0);" title="Returns the database column data type for this field, for the provided connection." alt="" coords="17,311,2695,329"/>
-<area shape="rect" href="javascript:void(0);" title="Returns a django.forms.Field instance for this database Field." alt="" coords="17,329,2695,348"/>
-<area shape="rect" href="javascript:void(0);" title="django.db.models.fields.Field.get_attname" alt="" coords="17,348,2695,367"/>
-<area shape="rect" href="javascript:void(0);" title="django.db.models.fields.Field.get_attname_column" alt="" coords="17,367,2695,385"/>
-<area shape="rect" href="javascript:void(0);" title="django.db.models.fields.Field.get_cache_name" alt="" coords="17,385,2695,404"/>
-<area shape="rect" href="javascript:void(0);" title="Returns choices with a default blank choices included, for use as SelectField choices for this field." alt="" coords="17,404,2695,423"/>
-<area shape="rect" href="javascript:void(0);" title="django.db.models.fields.Field.get_choices_default" alt="" coords="17,423,2695,441"/>
-<area shape="rect" href="javascript:void(0);" title="Returns a string value of this field from the passed obj." alt="" coords="17,460,2695,479"/>
-<area shape="rect" href="javascript:void(0);" title="Base class for all field types" alt="" coords="16,11,2696,480"/>
+<area shape="rect" href="django.db.models.fields.subclassing.SubfieldBase-class.html" title="A metaclass for custom Field subclasses." alt="" coords="1075,471,1421,489"/>
+<area shape="rect" href="oauth2client.django_orm.CredentialsField-class.html#get_internal_type" title="oauth2client.django_orm.CredentialsField.get_internal_type" alt="" coords="1075,492,1421,511"/>
+<area shape="rect" href="oauth2client.django_orm.CredentialsField-class.html#to_python" title="Converts the input value into the expected Python data type, raising django.core.exceptions.ValidationError if the data can't be converted." alt="" coords="1075,511,1421,529"/>
+<area shape="rect" href="oauth2client.django_orm.CredentialsField-class.html#get_db_prep_value" title="Returns field's value prepared for interacting with the database backend." alt="" coords="1075,529,1421,548"/>
+<area shape="rect" href="oauth2client.django_orm.CredentialsField-class.html#contribute_to_class" title="oauth2client.django_orm.CredentialsField.contribute_to_class" alt="" coords="1075,548,1421,567"/>
+<area shape="rect" href="oauth2client.django_orm.CredentialsField-class.html" title="oauth2client.django_orm.CredentialsField" alt="" coords="1073,453,1423,568"/>
+<area shape="rect" href="javascript:void(0);" title="django.db.models.fields.Field.auto_creation_counter" alt="" coords="17,28,2479,47"/>
+<area shape="rect" href="javascript:void(0);" title="django.db.models.fields.Field.choices" alt="" coords="17,47,2479,65"/>
+<area shape="rect" href="javascript:void(0);" title="django.db.models.fields.Field.creation_counter" alt="" coords="17,65,2479,84"/>
+<area shape="rect" href="javascript:void(0);" title="django.db.models.fields.Field.empty_strings_allowed" alt="" coords="17,84,2479,103"/>
+<area shape="rect" href="javascript:void(0);" title="Flattened version of choices tuple." alt="" coords="17,103,2479,121"/>
+<area shape="rect" href="javascript:void(0);" title="django.db.models.fields.Field.unique" alt="" coords="17,121,2479,140"/>
+<area shape="rect" href="javascript:void(0);" title="django.db.models.fields.Field.__cmp__" alt="" coords="17,143,2479,161"/>
+<area shape="rect" href="javascript:void(0);" title="django.db.models.fields.Field.__deepcopy__" alt="" coords="17,161,2479,180"/>
+<area shape="rect" href="javascript:void(0);" title="x.__init__(...) initializes x; see x.__class__.__doc__ for signature" alt="" coords="17,180,2479,199"/>
+<area shape="rect" href="javascript:void(0);" title="django.db.models.fields.Field.bind" alt="" coords="17,199,2479,217"/>
+<area shape="rect" href="javascript:void(0);" title="Returns the database column data type for this field, taking into account the DATABASE_ENGINE setting." alt="" coords="17,217,2479,236"/>
+<area shape="rect" href="javascript:void(0);" title="Returns a django.forms.Field instance for this database Field." alt="" coords="17,236,2479,255"/>
+<area shape="rect" href="javascript:void(0);" title="django.db.models.fields.Field.get_attname" alt="" coords="17,255,2479,273"/>
+<area shape="rect" href="javascript:void(0);" title="django.db.models.fields.Field.get_attname_column" alt="" coords="17,273,2479,292"/>
+<area shape="rect" href="javascript:void(0);" title="django.db.models.fields.Field.get_cache_name" alt="" coords="17,292,2479,311"/>
+<area shape="rect" href="javascript:void(0);" title="Returns choices with a default blank choices included, for use as SelectField choices for this field." alt="" coords="17,311,2479,329"/>
+<area shape="rect" href="javascript:void(0);" title="django.db.models.fields.Field.get_choices_default" alt="" coords="17,329,2479,348"/>
+<area shape="rect" href="javascript:void(0);" title="Returns field's value prepared for database lookup." alt="" coords="17,348,2479,367"/>
+<area shape="rect" href="javascript:void(0);" title="Returns field's value prepared for saving into a database." alt="" coords="17,367,2479,385"/>
+<area shape="rect" href="javascript:void(0);" title="Returns a string value of this field from the passed obj." alt="" coords="17,404,2479,423"/>
+<area shape="rect" href="javascript:void(0);" title="django.db.models.fields.Field" alt="" coords="16,11,2480,424"/>
</map>
<img src="uml_class_diagram_for_oauth2cl_31.gif" alt='' usemap="#uml_class_diagram_for_oauth2cl_31" ismap="ismap" class="graph-without-title" />
</center>
@@ -214,9 +211,7 @@
<code>__cmp__</code>,
<code>__deepcopy__</code>,
<code>__init__</code>,
- <code>__repr__</code>,
<code>bind</code>,
- <code>clean</code>,
<code>db_type</code>,
<code>formfield</code>,
<code>get_attname</code>,
@@ -228,20 +223,15 @@
<code>get_db_prep_save</code>,
<code>get_default</code>,
<code>get_flatchoices</code>,
- <code>get_prep_lookup</code>,
- <code>get_prep_value</code>,
<code>get_validator_unique_lookup_type</code>,
<code>has_default</code>,
<code>pre_save</code>,
- <code>run_validators</code>,
<code>save_form_data</code>,
<code>set_attributes_from_name</code>,
- <code>validate</code>,
<code>value_from_object</code>,
<code>value_to_string</code>
</p>
<div class="private"> <p class="indent-wrapped-lines"><b>Inherited from <code>django.db.models.fields.Field</code></b> (private):
- <code>_description</code>,
<code>_get_choices</code>,
<code>_get_flatchoices</code>,
<code>_get_val_from_obj</code>
@@ -254,6 +244,7 @@
<code>__new__</code>,
<code>__reduce__</code>,
<code>__reduce_ex__</code>,
+ <code>__repr__</code>,
<code>__setattr__</code>,
<code>__sizeof__</code>,
<code>__str__</code>,
@@ -284,8 +275,6 @@
<p class="indent-wrapped-lines"><b>Inherited from <code>django.db.models.fields.Field</code></b>:
<code>auto_creation_counter</code>,
<code>creation_counter</code>,
- <code>default_error_messages</code>,
- <code>default_validators</code>,
<code>empty_strings_allowed</code>
</p>
</td>
@@ -312,7 +301,6 @@
<td colspan="2" class="summary">
<p class="indent-wrapped-lines"><b>Inherited from <code>django.db.models.fields.Field</code></b>:
<code>choices</code>,
- <code>description</code>,
<code>flatchoices</code>,
<code>unique</code>
</p>
@@ -473,7 +461,7 @@
<table border="0" cellpadding="0" cellspacing="0" width="100%%">
<tr>
<td align="left" class="footer">
- Generated by Epydoc 3.0.1 on Tue Jun 5 09:03:10 2012
+ Generated by Epydoc 3.0.1 on Thu Jun 14 08:01:58 2012
</td>
<td align="right" class="footer">
<a target="mainFrame" href="http://epydoc.sourceforge.net"
diff --git a/docs/epy/oauth2client.django_orm.FlowField-class.html b/docs/epy/oauth2client.django_orm.FlowField-class.html
index 406ccfb..e0d3fb4 100644
--- a/docs/epy/oauth2client.django_orm.FlowField-class.html
+++ b/docs/epy/oauth2client.django_orm.FlowField-class.html
@@ -56,36 +56,33 @@
<h1 class="epydoc">Class FlowField</h1><p class="nomargin-top"><span class="codelink"><a href="oauth2client.django_orm-pysrc.html#FlowField">source code</a></span></p>
<center>
<center> <map id="uml_class_diagram_for_oauth2cl_32" name="uml_class_diagram_for_oauth2cl_32">
-<area shape="rect" href="django.db.models.fields.subclassing.SubfieldBase-class.html" title="A metaclass for custom Field subclasses." alt="" coords="1183,527,1529,545"/>
-<area shape="rect" href="oauth2client.django_orm.FlowField-class.html#get_internal_type" title="oauth2client.django_orm.FlowField.get_internal_type" alt="" coords="1183,548,1529,567"/>
-<area shape="rect" href="oauth2client.django_orm.FlowField-class.html#to_python" title="Converts the input value into the expected Python data type, raising django.core.exceptions.ValidationError if the data can't be converted." alt="" coords="1183,567,1529,585"/>
-<area shape="rect" href="oauth2client.django_orm.FlowField-class.html#get_db_prep_value" title="Returns field's value prepared for interacting with the database backend." alt="" coords="1183,585,1529,604"/>
-<area shape="rect" href="oauth2client.django_orm.FlowField-class.html#contribute_to_class" title="oauth2client.django_orm.FlowField.contribute_to_class" alt="" coords="1183,604,1529,623"/>
-<area shape="rect" href="oauth2client.django_orm.FlowField-class.html" title="oauth2client.django_orm.FlowField" alt="" coords="1181,509,1531,624"/>
-<area shape="rect" href="javascript:void(0);" title="django.db.models.fields.Field.auto_creation_counter" alt="" coords="17,28,2695,47"/>
-<area shape="rect" href="javascript:void(0);" title="django.db.models.fields.Field.choices" alt="" coords="17,47,2695,65"/>
-<area shape="rect" href="javascript:void(0);" title="django.db.models.fields.Field.creation_counter" alt="" coords="17,65,2695,84"/>
-<area shape="rect" href="javascript:void(0);" title="django.db.models.fields.Field.default_error_messages" alt="" coords="17,84,2695,103"/>
-<area shape="rect" href="javascript:void(0);" title="django.db.models.fields.Field.default_validators" alt="" coords="17,103,2695,121"/>
-<area shape="rect" href="javascript:void(0);" title="django.db.models.fields.Field.description" alt="" coords="17,121,2695,140"/>
-<area shape="rect" href="javascript:void(0);" title="django.db.models.fields.Field.empty_strings_allowed" alt="" coords="17,140,2695,159"/>
-<area shape="rect" href="javascript:void(0);" title="Flattened version of choices tuple." alt="" coords="17,159,2695,177"/>
-<area shape="rect" href="javascript:void(0);" title="django.db.models.fields.Field.unique" alt="" coords="17,177,2695,196"/>
-<area shape="rect" href="javascript:void(0);" title="django.db.models.fields.Field.__cmp__" alt="" coords="17,199,2695,217"/>
-<area shape="rect" href="javascript:void(0);" title="django.db.models.fields.Field.__deepcopy__" alt="" coords="17,217,2695,236"/>
-<area shape="rect" href="javascript:void(0);" title="x.__init__(...) initializes x; see x.__class__.__doc__ for signature" alt="" coords="17,236,2695,255"/>
-<area shape="rect" href="javascript:void(0);" title="Displays the module, class and name of the field." alt="" coords="17,255,2695,273"/>
-<area shape="rect" href="javascript:void(0);" title="django.db.models.fields.Field.bind" alt="" coords="17,273,2695,292"/>
-<area shape="rect" href="javascript:void(0);" title="Convert the value's type and run validation." alt="" coords="17,292,2695,311"/>
-<area shape="rect" href="javascript:void(0);" title="Returns the database column data type for this field, for the provided connection." alt="" coords="17,311,2695,329"/>
-<area shape="rect" href="javascript:void(0);" title="Returns a django.forms.Field instance for this database Field." alt="" coords="17,329,2695,348"/>
-<area shape="rect" href="javascript:void(0);" title="django.db.models.fields.Field.get_attname" alt="" coords="17,348,2695,367"/>
-<area shape="rect" href="javascript:void(0);" title="django.db.models.fields.Field.get_attname_column" alt="" coords="17,367,2695,385"/>
-<area shape="rect" href="javascript:void(0);" title="django.db.models.fields.Field.get_cache_name" alt="" coords="17,385,2695,404"/>
-<area shape="rect" href="javascript:void(0);" title="Returns choices with a default blank choices included, for use as SelectField choices for this field." alt="" coords="17,404,2695,423"/>
-<area shape="rect" href="javascript:void(0);" title="django.db.models.fields.Field.get_choices_default" alt="" coords="17,423,2695,441"/>
-<area shape="rect" href="javascript:void(0);" title="Returns a string value of this field from the passed obj." alt="" coords="17,460,2695,479"/>
-<area shape="rect" href="javascript:void(0);" title="Base class for all field types" alt="" coords="16,11,2696,480"/>
+<area shape="rect" href="django.db.models.fields.subclassing.SubfieldBase-class.html" title="A metaclass for custom Field subclasses." alt="" coords="1075,471,1421,489"/>
+<area shape="rect" href="oauth2client.django_orm.FlowField-class.html#get_internal_type" title="oauth2client.django_orm.FlowField.get_internal_type" alt="" coords="1075,492,1421,511"/>
+<area shape="rect" href="oauth2client.django_orm.FlowField-class.html#to_python" title="Converts the input value into the expected Python data type, raising django.core.exceptions.ValidationError if the data can't be converted." alt="" coords="1075,511,1421,529"/>
+<area shape="rect" href="oauth2client.django_orm.FlowField-class.html#get_db_prep_value" title="Returns field's value prepared for interacting with the database backend." alt="" coords="1075,529,1421,548"/>
+<area shape="rect" href="oauth2client.django_orm.FlowField-class.html#contribute_to_class" title="oauth2client.django_orm.FlowField.contribute_to_class" alt="" coords="1075,548,1421,567"/>
+<area shape="rect" href="oauth2client.django_orm.FlowField-class.html" title="oauth2client.django_orm.FlowField" alt="" coords="1073,453,1423,568"/>
+<area shape="rect" href="javascript:void(0);" title="django.db.models.fields.Field.auto_creation_counter" alt="" coords="17,28,2479,47"/>
+<area shape="rect" href="javascript:void(0);" title="django.db.models.fields.Field.choices" alt="" coords="17,47,2479,65"/>
+<area shape="rect" href="javascript:void(0);" title="django.db.models.fields.Field.creation_counter" alt="" coords="17,65,2479,84"/>
+<area shape="rect" href="javascript:void(0);" title="django.db.models.fields.Field.empty_strings_allowed" alt="" coords="17,84,2479,103"/>
+<area shape="rect" href="javascript:void(0);" title="Flattened version of choices tuple." alt="" coords="17,103,2479,121"/>
+<area shape="rect" href="javascript:void(0);" title="django.db.models.fields.Field.unique" alt="" coords="17,121,2479,140"/>
+<area shape="rect" href="javascript:void(0);" title="django.db.models.fields.Field.__cmp__" alt="" coords="17,143,2479,161"/>
+<area shape="rect" href="javascript:void(0);" title="django.db.models.fields.Field.__deepcopy__" alt="" coords="17,161,2479,180"/>
+<area shape="rect" href="javascript:void(0);" title="x.__init__(...) initializes x; see x.__class__.__doc__ for signature" alt="" coords="17,180,2479,199"/>
+<area shape="rect" href="javascript:void(0);" title="django.db.models.fields.Field.bind" alt="" coords="17,199,2479,217"/>
+<area shape="rect" href="javascript:void(0);" title="Returns the database column data type for this field, taking into account the DATABASE_ENGINE setting." alt="" coords="17,217,2479,236"/>
+<area shape="rect" href="javascript:void(0);" title="Returns a django.forms.Field instance for this database Field." alt="" coords="17,236,2479,255"/>
+<area shape="rect" href="javascript:void(0);" title="django.db.models.fields.Field.get_attname" alt="" coords="17,255,2479,273"/>
+<area shape="rect" href="javascript:void(0);" title="django.db.models.fields.Field.get_attname_column" alt="" coords="17,273,2479,292"/>
+<area shape="rect" href="javascript:void(0);" title="django.db.models.fields.Field.get_cache_name" alt="" coords="17,292,2479,311"/>
+<area shape="rect" href="javascript:void(0);" title="Returns choices with a default blank choices included, for use as SelectField choices for this field." alt="" coords="17,311,2479,329"/>
+<area shape="rect" href="javascript:void(0);" title="django.db.models.fields.Field.get_choices_default" alt="" coords="17,329,2479,348"/>
+<area shape="rect" href="javascript:void(0);" title="Returns field's value prepared for database lookup." alt="" coords="17,348,2479,367"/>
+<area shape="rect" href="javascript:void(0);" title="Returns field's value prepared for saving into a database." alt="" coords="17,367,2479,385"/>
+<area shape="rect" href="javascript:void(0);" title="Returns a string value of this field from the passed obj." alt="" coords="17,404,2479,423"/>
+<area shape="rect" href="javascript:void(0);" title="django.db.models.fields.Field" alt="" coords="16,11,2480,424"/>
</map>
<img src="uml_class_diagram_for_oauth2cl_32.gif" alt='' usemap="#uml_class_diagram_for_oauth2cl_32" ismap="ismap" class="graph-without-title" />
</center>
@@ -214,9 +211,7 @@
<code>__cmp__</code>,
<code>__deepcopy__</code>,
<code>__init__</code>,
- <code>__repr__</code>,
<code>bind</code>,
- <code>clean</code>,
<code>db_type</code>,
<code>formfield</code>,
<code>get_attname</code>,
@@ -228,20 +223,15 @@
<code>get_db_prep_save</code>,
<code>get_default</code>,
<code>get_flatchoices</code>,
- <code>get_prep_lookup</code>,
- <code>get_prep_value</code>,
<code>get_validator_unique_lookup_type</code>,
<code>has_default</code>,
<code>pre_save</code>,
- <code>run_validators</code>,
<code>save_form_data</code>,
<code>set_attributes_from_name</code>,
- <code>validate</code>,
<code>value_from_object</code>,
<code>value_to_string</code>
</p>
<div class="private"> <p class="indent-wrapped-lines"><b>Inherited from <code>django.db.models.fields.Field</code></b> (private):
- <code>_description</code>,
<code>_get_choices</code>,
<code>_get_flatchoices</code>,
<code>_get_val_from_obj</code>
@@ -254,6 +244,7 @@
<code>__new__</code>,
<code>__reduce__</code>,
<code>__reduce_ex__</code>,
+ <code>__repr__</code>,
<code>__setattr__</code>,
<code>__sizeof__</code>,
<code>__str__</code>,
@@ -284,8 +275,6 @@
<p class="indent-wrapped-lines"><b>Inherited from <code>django.db.models.fields.Field</code></b>:
<code>auto_creation_counter</code>,
<code>creation_counter</code>,
- <code>default_error_messages</code>,
- <code>default_validators</code>,
<code>empty_strings_allowed</code>
</p>
</td>
@@ -312,7 +301,6 @@
<td colspan="2" class="summary">
<p class="indent-wrapped-lines"><b>Inherited from <code>django.db.models.fields.Field</code></b>:
<code>choices</code>,
- <code>description</code>,
<code>flatchoices</code>,
<code>unique</code>
</p>
@@ -473,7 +461,7 @@
<table border="0" cellpadding="0" cellspacing="0" width="100%%">
<tr>
<td align="left" class="footer">
- Generated by Epydoc 3.0.1 on Tue Jun 5 09:03:11 2012
+ Generated by Epydoc 3.0.1 on Thu Jun 14 08:01:58 2012
</td>
<td align="right" class="footer">
<a target="mainFrame" href="http://epydoc.sourceforge.net"
diff --git a/docs/epy/oauth2client.django_orm.Storage-class.html b/docs/epy/oauth2client.django_orm.Storage-class.html
index f454fb5..d1d0182 100644
--- a/docs/epy/oauth2client.django_orm.Storage-class.html
+++ b/docs/epy/oauth2client.django_orm.Storage-class.html
@@ -383,7 +383,7 @@
<table border="0" cellpadding="0" cellspacing="0" width="100%%">
<tr>
<td align="left" class="footer">
- Generated by Epydoc 3.0.1 on Tue Jun 5 09:03:11 2012
+ Generated by Epydoc 3.0.1 on Thu Jun 14 08:01:58 2012
</td>
<td align="right" class="footer">
<a target="mainFrame" href="http://epydoc.sourceforge.net"
diff --git a/docs/epy/oauth2client.file-module.html b/docs/epy/oauth2client.file-module.html
index 1fb2452..a5ad605 100644
--- a/docs/epy/oauth2client.file-module.html
+++ b/docs/epy/oauth2client.file-module.html
@@ -139,7 +139,7 @@
<table border="0" cellpadding="0" cellspacing="0" width="100%%">
<tr>
<td align="left" class="footer">
- Generated by Epydoc 3.0.1 on Tue Jun 5 09:03:05 2012
+ Generated by Epydoc 3.0.1 on Thu Jun 14 08:01:54 2012
</td>
<td align="right" class="footer">
<a target="mainFrame" href="http://epydoc.sourceforge.net"
diff --git a/docs/epy/oauth2client.file-pysrc.html b/docs/epy/oauth2client.file-pysrc.html
index 99aec2c..bdcd747 100644
--- a/docs/epy/oauth2client.file-pysrc.html
+++ b/docs/epy/oauth2client.file-pysrc.html
@@ -90,14 +90,15 @@
</div><div id="Storage-collapsed" style="display:none;" pad="+++" indent="++++"></div><div id="Storage-expanded"><a name="L33"></a><tt class="py-lineno"> 33</tt> <tt class="py-line"> <tt class="py-docstring">"""Store and retrieve a single credential to and from a file."""</tt> </tt>
<a name="L34"></a><tt class="py-lineno"> 34</tt> <tt class="py-line"> </tt>
<a name="Storage.__init__"></a><div id="Storage.__init__-def"><a name="L35"></a><tt class="py-lineno"> 35</tt> <a class="py-toggle" href="#" id="Storage.__init__-toggle" onclick="return toggle('Storage.__init__');">-</a><tt class="py-line"> <tt class="py-keyword">def</tt> <a class="py-def-name" href="oauth2client.file.Storage-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">filename</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-</div><div id="Storage.__init__-collapsed" style="display:none;" pad="+++" indent="++++++"></div><div id="Storage.__init__-expanded"><a name="L36"></a><tt class="py-lineno"> 36</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">_filename</tt> <tt class="py-op">=</tt> <tt class="py-name">filename</tt> </tt>
-<a name="L37"></a><tt class="py-lineno"> 37</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-5" class="py-name" targets="Method oauth2client.multistore_file._MultiStore._lock()=oauth2client.multistore_file._MultiStore-class.html#_lock"><a title="oauth2client.multistore_file._MultiStore._lock" class="py-name" href="#" onclick="return doclink('link-5', '_lock', 'link-5');">_lock</a></tt> <tt class="py-op">=</tt> <tt class="py-name">threading</tt><tt class="py-op">.</tt><tt class="py-name">Lock</tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
+</div><div id="Storage.__init__-collapsed" style="display:none;" pad="+++" indent="++++++"></div><div id="Storage.__init__-expanded"><a name="L36"></a><tt class="py-lineno"> 36</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">_filename</tt> <tt class="py-op">=</tt> <tt id="link-5" 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-5', 'filename', 'link-5');">filename</a></tt> </tt>
+<a name="L37"></a><tt class="py-lineno"> 37</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-6" class="py-name" targets="Method oauth2client.multistore_file._MultiStore._lock()=oauth2client.multistore_file._MultiStore-class.html#_lock"><a title="oauth2client.multistore_file._MultiStore._lock" class="py-name" href="#" onclick="return doclink('link-6', '_lock', 'link-6');">_lock</a></tt> <tt class="py-op">=</tt> <tt class="py-name">threading</tt><tt class="py-op">.</tt><tt class="py-name">Lock</tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
</div><a name="L38"></a><tt class="py-lineno"> 38</tt> <tt class="py-line"> </tt>
<a name="Storage.acquire_lock"></a><div id="Storage.acquire_lock-def"><a name="L39"></a><tt class="py-lineno"> 39</tt> <a class="py-toggle" href="#" id="Storage.acquire_lock-toggle" onclick="return toggle('Storage.acquire_lock');">-</a><tt class="py-line"> <tt class="py-keyword">def</tt> <a class="py-def-name" href="oauth2client.file.Storage-class.html#acquire_lock">acquire_lock</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
</div><div id="Storage.acquire_lock-collapsed" style="display:none;" pad="+++" indent="++++++"></div><div id="Storage.acquire_lock-expanded"><a name="L40"></a><tt class="py-lineno"> 40</tt> <tt class="py-line"> <tt class="py-docstring">"""Acquires any lock necessary to access this Storage.</tt> </tt>
<a name="L41"></a><tt class="py-lineno"> 41</tt> <tt class="py-line"><tt class="py-docstring"></tt> </tt>
<a name="L42"></a><tt class="py-lineno"> 42</tt> <tt class="py-line"><tt class="py-docstring"> This lock is not reentrant."""</tt> </tt>
-<a name="L43"></a><tt class="py-lineno"> 43</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-6" class="py-name"><a title="oauth2client.multistore_file._MultiStore._lock" class="py-name" href="#" onclick="return doclink('link-6', '_lock', 'link-5');">_lock</a></tt><tt class="py-op">.</tt><tt class="py-name">acquire</tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
+<a name="L43"></a><tt class="py-lineno"> 43</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-7" class="py-name"><a title="oauth2client.multistore_file._MultiStore._lock" class="py-name" href="#" onclick="return doclink('link-7', '_lock', 'link-6');">_lock</a></tt><tt class="py-op">.</tt><tt class="py-name">acquire</tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
</div><a name="L44"></a><tt class="py-lineno"> 44</tt> <tt class="py-line"> </tt>
<a name="Storage.release_lock"></a><div id="Storage.release_lock-def"><a name="L45"></a><tt class="py-lineno"> 45</tt> <a class="py-toggle" href="#" id="Storage.release_lock-toggle" onclick="return toggle('Storage.release_lock');">-</a><tt class="py-line"> <tt class="py-keyword">def</tt> <a class="py-def-name" href="oauth2client.file.Storage-class.html#release_lock">release_lock</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
</div><div id="Storage.release_lock-collapsed" style="display:none;" pad="+++" indent="++++++"></div><div id="Storage.release_lock-expanded"><a name="L46"></a><tt class="py-lineno"> 46</tt> <tt class="py-line"> <tt class="py-docstring">"""Release the Storage lock.</tt> </tt>
@@ -105,7 +106,7 @@
<a name="L48"></a><tt class="py-lineno"> 48</tt> <tt class="py-line"><tt class="py-docstring"> Trying to release a lock that isn't held will result in a</tt> </tt>
<a name="L49"></a><tt class="py-lineno"> 49</tt> <tt class="py-line"><tt class="py-docstring"> RuntimeError.</tt> </tt>
<a name="L50"></a><tt class="py-lineno"> 50</tt> <tt class="py-line"><tt class="py-docstring"> """</tt> </tt>
-<a name="L51"></a><tt class="py-lineno"> 51</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-7" class="py-name"><a title="oauth2client.multistore_file._MultiStore._lock" class="py-name" href="#" onclick="return doclink('link-7', '_lock', 'link-5');">_lock</a></tt><tt class="py-op">.</tt><tt class="py-name">release</tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
+<a name="L51"></a><tt class="py-lineno"> 51</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-8" class="py-name"><a title="oauth2client.multistore_file._MultiStore._lock" class="py-name" href="#" onclick="return doclink('link-8', '_lock', 'link-6');">_lock</a></tt><tt class="py-op">.</tt><tt class="py-name">release</tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
</div><a name="L52"></a><tt class="py-lineno"> 52</tt> <tt class="py-line"> </tt>
<a name="Storage.locked_get"></a><div id="Storage.locked_get-def"><a name="L53"></a><tt class="py-lineno"> 53</tt> <a class="py-toggle" href="#" id="Storage.locked_get-toggle" onclick="return toggle('Storage.locked_get');">-</a><tt class="py-line"> <tt class="py-keyword">def</tt> <a class="py-def-name" href="oauth2client.file.Storage-class.html#locked_get">locked_get</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
</div><div id="Storage.locked_get-collapsed" style="display:none;" pad="+++" indent="++++++"></div><div id="Storage.locked_get-expanded"><a name="L54"></a><tt class="py-lineno"> 54</tt> <tt class="py-line"> <tt class="py-docstring">"""Retrieve Credential from file.</tt> </tt>
@@ -113,22 +114,22 @@
<a name="L56"></a><tt class="py-lineno"> 56</tt> <tt class="py-line"><tt class="py-docstring"> Returns:</tt> </tt>
<a name="L57"></a><tt class="py-lineno"> 57</tt> <tt class="py-line"><tt class="py-docstring"> oauth2client.client.Credentials</tt> </tt>
<a name="L58"></a><tt class="py-lineno"> 58</tt> <tt class="py-line"><tt class="py-docstring"> """</tt> </tt>
-<a name="L59"></a><tt class="py-lineno"> 59</tt> <tt class="py-line"> <tt id="link-8" class="py-name" targets="Variable oauth2client.appengine.CredentialsModel.credentials=oauth2client.appengine.CredentialsModel-class.html#credentials"><a title="oauth2client.appengine.CredentialsModel.credentials" class="py-name" href="#" onclick="return doclink('link-8', 'credentials', 'link-8');">credentials</a></tt> <tt class="py-op">=</tt> <tt class="py-name">None</tt> </tt>
+<a name="L59"></a><tt class="py-lineno"> 59</tt> <tt class="py-line"> <tt id="link-9" class="py-name" targets="Variable oauth2client.appengine.CredentialsModel.credentials=oauth2client.appengine.CredentialsModel-class.html#credentials"><a title="oauth2client.appengine.CredentialsModel.credentials" class="py-name" href="#" onclick="return doclink('link-9', 'credentials', 'link-9');">credentials</a></tt> <tt class="py-op">=</tt> <tt class="py-name">None</tt> </tt>
<a name="L60"></a><tt class="py-lineno"> 60</tt> <tt class="py-line"> <tt class="py-keyword">try</tt><tt class="py-op">:</tt> </tt>
<a name="L61"></a><tt class="py-lineno"> 61</tt> <tt class="py-line"> <tt class="py-name">f</tt> <tt class="py-op">=</tt> <tt class="py-name">open</tt><tt class="py-op">(</tt><tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">_filename</tt><tt class="py-op">,</tt> <tt class="py-string">'rb'</tt><tt class="py-op">)</tt> </tt>
<a name="L62"></a><tt class="py-lineno"> 62</tt> <tt class="py-line"> <tt class="py-name">content</tt> <tt class="py-op">=</tt> <tt class="py-name">f</tt><tt class="py-op">.</tt><tt class="py-name">read</tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
<a name="L63"></a><tt class="py-lineno"> 63</tt> <tt class="py-line"> <tt class="py-name">f</tt><tt class="py-op">.</tt><tt class="py-name">close</tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
<a name="L64"></a><tt class="py-lineno"> 64</tt> <tt class="py-line"> <tt class="py-keyword">except</tt> <tt class="py-name">IOError</tt><tt class="py-op">:</tt> </tt>
-<a name="L65"></a><tt class="py-lineno"> 65</tt> <tt class="py-line"> <tt class="py-keyword">return</tt> <tt id="link-9" class="py-name"><a title="oauth2client.appengine.CredentialsModel.credentials" class="py-name" href="#" onclick="return doclink('link-9', 'credentials', 'link-8');">credentials</a></tt> </tt>
+<a name="L65"></a><tt class="py-lineno"> 65</tt> <tt class="py-line"> <tt class="py-keyword">return</tt> <tt id="link-10" class="py-name"><a title="oauth2client.appengine.CredentialsModel.credentials" class="py-name" href="#" onclick="return doclink('link-10', 'credentials', 'link-9');">credentials</a></tt> </tt>
<a name="L66"></a><tt class="py-lineno"> 66</tt> <tt class="py-line"> </tt>
<a name="L67"></a><tt class="py-lineno"> 67</tt> <tt class="py-line"> <tt class="py-keyword">try</tt><tt class="py-op">:</tt> </tt>
-<a name="L68"></a><tt class="py-lineno"> 68</tt> <tt class="py-line"> <tt id="link-10" class="py-name"><a title="oauth2client.appengine.CredentialsModel.credentials" class="py-name" href="#" onclick="return doclink('link-10', 'credentials', 'link-8');">credentials</a></tt> <tt class="py-op">=</tt> <tt id="link-11" class="py-name"><a title="oauth2client.client.Credentials" class="py-name" href="#" onclick="return doclink('link-11', 'Credentials', 'link-4');">Credentials</a></tt><tt class="py-op">.</tt><tt id="link-12" class="py-name" targets="Class Method apiclient.http.MediaUpload.new_from_json()=apiclient.http.MediaUpload-class.html#new_from_json,Class Method oauth2client.client.Credentials.new_from_json()=oauth2client.client.Credentials-class.html#new_from_json"><a title="apiclient.http.MediaUpload.new_from_json
-oauth2client.client.Credentials.new_from_json" class="py-name" href="#" onclick="return doclink('link-12', 'new_from_json', 'link-12');">new_from_json</a></tt><tt class="py-op">(</tt><tt class="py-name">content</tt><tt class="py-op">)</tt> </tt>
-<a name="L69"></a><tt class="py-lineno"> 69</tt> <tt class="py-line"> <tt id="link-13" class="py-name"><a title="oauth2client.appengine.CredentialsModel.credentials" class="py-name" href="#" onclick="return doclink('link-13', 'credentials', 'link-8');">credentials</a></tt><tt class="py-op">.</tt><tt id="link-14" class="py-name" targets="Method oauth2client.client.OAuth2Credentials.set_store()=oauth2client.client.OAuth2Credentials-class.html#set_store"><a title="oauth2client.client.OAuth2Credentials.set_store" class="py-name" href="#" onclick="return doclink('link-14', 'set_store', 'link-14');">set_store</a></tt><tt class="py-op">(</tt><tt class="py-name">self</tt><tt class="py-op">)</tt> </tt>
+<a name="L68"></a><tt class="py-lineno"> 68</tt> <tt class="py-line"> <tt id="link-11" class="py-name"><a title="oauth2client.appengine.CredentialsModel.credentials" class="py-name" href="#" onclick="return doclink('link-11', 'credentials', 'link-9');">credentials</a></tt> <tt class="py-op">=</tt> <tt id="link-12" class="py-name"><a title="oauth2client.client.Credentials" class="py-name" href="#" onclick="return doclink('link-12', 'Credentials', 'link-4');">Credentials</a></tt><tt class="py-op">.</tt><tt id="link-13" class="py-name" targets="Class Method apiclient.http.MediaUpload.new_from_json()=apiclient.http.MediaUpload-class.html#new_from_json,Class Method oauth2client.client.Credentials.new_from_json()=oauth2client.client.Credentials-class.html#new_from_json"><a title="apiclient.http.MediaUpload.new_from_json
+oauth2client.client.Credentials.new_from_json" class="py-name" href="#" onclick="return doclink('link-13', 'new_from_json', 'link-13');">new_from_json</a></tt><tt class="py-op">(</tt><tt class="py-name">content</tt><tt class="py-op">)</tt> </tt>
+<a name="L69"></a><tt class="py-lineno"> 69</tt> <tt class="py-line"> <tt id="link-14" class="py-name"><a title="oauth2client.appengine.CredentialsModel.credentials" class="py-name" href="#" onclick="return doclink('link-14', 'credentials', 'link-9');">credentials</a></tt><tt class="py-op">.</tt><tt id="link-15" class="py-name" targets="Method oauth2client.client.OAuth2Credentials.set_store()=oauth2client.client.OAuth2Credentials-class.html#set_store"><a title="oauth2client.client.OAuth2Credentials.set_store" class="py-name" href="#" onclick="return doclink('link-15', 'set_store', 'link-15');">set_store</a></tt><tt class="py-op">(</tt><tt class="py-name">self</tt><tt class="py-op">)</tt> </tt>
<a name="L70"></a><tt class="py-lineno"> 70</tt> <tt class="py-line"> <tt class="py-keyword">except</tt> <tt class="py-name">ValueError</tt><tt class="py-op">:</tt> </tt>
<a name="L71"></a><tt class="py-lineno"> 71</tt> <tt class="py-line"> <tt class="py-keyword">pass</tt> </tt>
<a name="L72"></a><tt class="py-lineno"> 72</tt> <tt class="py-line"> </tt>
-<a name="L73"></a><tt class="py-lineno"> 73</tt> <tt class="py-line"> <tt class="py-keyword">return</tt> <tt id="link-15" class="py-name"><a title="oauth2client.appengine.CredentialsModel.credentials" class="py-name" href="#" onclick="return doclink('link-15', 'credentials', 'link-8');">credentials</a></tt> </tt>
+<a name="L73"></a><tt class="py-lineno"> 73</tt> <tt class="py-line"> <tt class="py-keyword">return</tt> <tt id="link-16" class="py-name"><a title="oauth2client.appengine.CredentialsModel.credentials" class="py-name" href="#" onclick="return doclink('link-16', 'credentials', 'link-9');">credentials</a></tt> </tt>
</div><a name="L74"></a><tt class="py-lineno"> 74</tt> <tt class="py-line"> </tt>
<a name="Storage._create_file_if_needed"></a><div id="Storage._create_file_if_needed-def"><a name="L75"></a><tt class="py-lineno"> 75</tt> <a class="py-toggle" href="#" id="Storage._create_file_if_needed-toggle" onclick="return toggle('Storage._create_file_if_needed');">-</a><tt class="py-line"> <tt class="py-keyword">def</tt> <a class="py-def-name" href="oauth2client.file.Storage-class.html#_create_file_if_needed">_create_file_if_needed</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
</div><div id="Storage._create_file_if_needed-collapsed" style="display:none;" pad="+++" indent="++++++"></div><div id="Storage._create_file_if_needed-expanded"><a name="L76"></a><tt class="py-lineno"> 76</tt> <tt class="py-line"> <tt class="py-docstring">"""Create an empty file if necessary.</tt> </tt>
@@ -150,15 +151,16 @@
<a name="L92"></a><tt class="py-lineno"> 92</tt> <tt class="py-line"><tt class="py-docstring"> credentials: Credentials, the credentials to store.</tt> </tt>
<a name="L93"></a><tt class="py-lineno"> 93</tt> <tt class="py-line"><tt class="py-docstring"> """</tt> </tt>
<a name="L94"></a><tt class="py-lineno"> 94</tt> <tt class="py-line"> </tt>
-<a name="L95"></a><tt class="py-lineno"> 95</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-16" class="py-name" targets="Method oauth2client.file.Storage._create_file_if_needed()=oauth2client.file.Storage-class.html#_create_file_if_needed,Method oauth2client.multistore_file._MultiStore._create_file_if_needed()=oauth2client.multistore_file._MultiStore-class.html#_create_file_if_needed"><a title="oauth2client.file.Storage._create_file_if_needed
-oauth2client.multistore_file._MultiStore._create_file_if_needed" class="py-name" href="#" onclick="return doclink('link-16', '_create_file_if_needed', 'link-16');">_create_file_if_needed</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
+<a name="L95"></a><tt class="py-lineno"> 95</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-17" class="py-name" targets="Method oauth2client.file.Storage._create_file_if_needed()=oauth2client.file.Storage-class.html#_create_file_if_needed,Method oauth2client.multistore_file._MultiStore._create_file_if_needed()=oauth2client.multistore_file._MultiStore-class.html#_create_file_if_needed"><a title="oauth2client.file.Storage._create_file_if_needed
+oauth2client.multistore_file._MultiStore._create_file_if_needed" class="py-name" href="#" onclick="return doclink('link-17', '_create_file_if_needed', 'link-17');">_create_file_if_needed</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
<a name="L96"></a><tt class="py-lineno"> 96</tt> <tt class="py-line"> <tt class="py-name">f</tt> <tt class="py-op">=</tt> <tt class="py-name">open</tt><tt class="py-op">(</tt><tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">_filename</tt><tt class="py-op">,</tt> <tt class="py-string">'wb'</tt><tt class="py-op">)</tt> </tt>
-<a name="L97"></a><tt class="py-lineno"> 97</tt> <tt class="py-line"> <tt class="py-name">f</tt><tt class="py-op">.</tt><tt class="py-name">write</tt><tt class="py-op">(</tt><tt id="link-17" class="py-name"><a title="oauth2client.appengine.CredentialsModel.credentials" class="py-name" href="#" onclick="return doclink('link-17', 'credentials', 'link-8');">credentials</a></tt><tt class="py-op">.</tt><tt id="link-18" class="py-name" targets="Method apiclient.http.HttpRequest.to_json()=apiclient.http.HttpRequest-class.html#to_json,Method apiclient.http.MediaFileUpload.to_json()=apiclient.http.MediaFileUpload-class.html#to_json,Method apiclient.http.MediaInMemoryUpload.to_json()=apiclient.http.MediaInMemoryUpload-class.html#to_json,Method apiclient.http.MediaUpload.to_json()=apiclient.http.MediaUpload-class.html#to_json,Method oauth2client.client.Credentials.to_json()=oauth2client.client.Credentials-class.html#to_json,Method oauth2client.client.OAuth2Credentials.to_json()=oauth2client.client.OAuth2Credentials-class.html#to_json"><a title="apiclient.http.HttpRequest.to_json
+<a name="L97"></a><tt class="py-lineno"> 97</tt> <tt class="py-line"> <tt class="py-name">f</tt><tt class="py-op">.</tt><tt class="py-name">write</tt><tt class="py-op">(</tt><tt id="link-18" class="py-name"><a title="oauth2client.appengine.CredentialsModel.credentials" class="py-name" href="#" onclick="return doclink('link-18', 'credentials', 'link-9');">credentials</a></tt><tt class="py-op">.</tt><tt id="link-19" class="py-name" targets="Method apiclient.http.HttpRequest.to_json()=apiclient.http.HttpRequest-class.html#to_json,Method apiclient.http.MediaFileUpload.to_json()=apiclient.http.MediaFileUpload-class.html#to_json,Method apiclient.http.MediaInMemoryUpload.to_json()=apiclient.http.MediaInMemoryUpload-class.html#to_json,Method apiclient.http.MediaIoBaseUpload.to_json()=apiclient.http.MediaIoBaseUpload-class.html#to_json,Method apiclient.http.MediaUpload.to_json()=apiclient.http.MediaUpload-class.html#to_json,Method oauth2client.client.Credentials.to_json()=oauth2client.client.Credentials-class.html#to_json,Method oauth2client.client.OAuth2Credentials.to_json()=oauth2client.client.OAuth2Credentials-class.html#to_json"><a title="apiclient.http.HttpRequest.to_json
apiclient.http.MediaFileUpload.to_json
apiclient.http.MediaInMemoryUpload.to_json
+apiclient.http.MediaIoBaseUpload.to_json
apiclient.http.MediaUpload.to_json
oauth2client.client.Credentials.to_json
-oauth2client.client.OAuth2Credentials.to_json" class="py-name" href="#" onclick="return doclink('link-18', 'to_json', 'link-18');">to_json</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
+oauth2client.client.OAuth2Credentials.to_json" class="py-name" href="#" onclick="return doclink('link-19', 'to_json', 'link-19');">to_json</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
<a name="L98"></a><tt class="py-lineno"> 98</tt> <tt class="py-line"> <tt class="py-name">f</tt><tt class="py-op">.</tt><tt class="py-name">close</tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
</div><a name="L99"></a><tt class="py-lineno"> 99</tt> <tt class="py-line"> </tt>
<a name="Storage.locked_delete"></a><div id="Storage.locked_delete-def"><a name="L100"></a><tt class="py-lineno">100</tt> <a class="py-toggle" href="#" id="Storage.locked_delete-toggle" onclick="return toggle('Storage.locked_delete');">-</a><tt class="py-line"> <tt class="py-keyword">def</tt> <a class="py-def-name" href="oauth2client.file.Storage-class.html#locked_delete">locked_delete</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
@@ -199,7 +201,7 @@
<table border="0" cellpadding="0" cellspacing="0" width="100%%">
<tr>
<td align="left" class="footer">
- Generated by Epydoc 3.0.1 on Tue Jun 5 09:03:12 2012
+ Generated by Epydoc 3.0.1 on Thu Jun 14 08:01:59 2012
</td>
<td align="right" class="footer">
<a target="mainFrame" href="http://epydoc.sourceforge.net"
diff --git a/docs/epy/oauth2client.file.Storage-class.html b/docs/epy/oauth2client.file.Storage-class.html
index 206bb85..e2b77aa 100644
--- a/docs/epy/oauth2client.file.Storage-class.html
+++ b/docs/epy/oauth2client.file.Storage-class.html
@@ -499,7 +499,7 @@
<table border="0" cellpadding="0" cellspacing="0" width="100%%">
<tr>
<td align="left" class="footer">
- Generated by Epydoc 3.0.1 on Tue Jun 5 09:03:11 2012
+ Generated by Epydoc 3.0.1 on Thu Jun 14 08:01:58 2012
</td>
<td align="right" class="footer">
<a target="mainFrame" href="http://epydoc.sourceforge.net"
diff --git a/docs/epy/oauth2client.locked_file-module.html b/docs/epy/oauth2client.locked_file-module.html
new file mode 100644
index 0000000..d6f0e0c
--- /dev/null
+++ b/docs/epy/oauth2client.locked_file-module.html
@@ -0,0 +1,210 @@
+<?xml version="1.0" encoding="ascii"?>
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
+ "DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
+<head>
+ <title>oauth2client.locked_file</title>
+ <link rel="stylesheet" href="epydoc.css" type="text/css" />
+ <script type="text/javascript" src="epydoc.js"></script>
+</head>
+
+<body bgcolor="white" text="black" link="blue" vlink="#204080"
+ alink="#204080">
+<!-- ==================== NAVIGATION BAR ==================== -->
+<table class="navbar" border="0" width="100%" cellpadding="0"
+ bgcolor="#a0c0ff" cellspacing="0">
+ <tr valign="middle">
+
+ <!-- Tree link -->
+ <th> <a
+ href="module-tree.html">Trees</a> </th>
+
+ <!-- Index link -->
+ <th> <a
+ href="identifier-index.html">Indices</a> </th>
+
+ <!-- Help link -->
+ <th> <a
+ href="help.html">Help</a> </th>
+
+ <th class="navbar" width="100%"></th>
+ </tr>
+</table>
+<table width="100%" cellpadding="0" cellspacing="0">
+ <tr valign="top">
+ <td width="100%">
+ <span class="breadcrumbs">
+ <a href="oauth2client-module.html">Package oauth2client</a> ::
+ Module locked_file
+ </span>
+ </td>
+ <td>
+ <table cellpadding="0" cellspacing="0">
+ <!-- hide/show private -->
+ <tr><td align="right"><span class="options">[<a href="javascript:void(0);" class="privatelink"
+ onclick="toggle_private();">hide private</a>]</span></td></tr>
+ <tr><td align="right"><span class="options"
+ >[<a href="frames.html" target="_top">frames</a
+ >] | <a href="oauth2client.locked_file-module.html"
+ target="_top">no frames</a>]</span></td></tr>
+ </table>
+ </td>
+ </tr>
+</table>
+<!-- ==================== MODULE DESCRIPTION ==================== -->
+<h1 class="epydoc">Module locked_file</h1><p class="nomargin-top"><span class="codelink"><a href="oauth2client.locked_file-pysrc.html">source code</a></span></p>
+<pre class="literalblock">
+Locked file interface that should work on Unix and Windows pythons.
+
+This module first tries to use fcntl locking to ensure serialized access
+to a file, then falls back on a lock file if that is unavialable.
+
+Usage:
+ f = LockedFile('filename', 'r+b', 'rb')
+ f.open_and_lock()
+ if f.is_locked():
+ print 'Acquired filename with r+b mode'
+ f.file_handle().write('locked data')
+ else:
+ print 'Aquired filename with rb mode'
+ f.unlock_and_close()
+
+</pre>
+
+<hr />
+<div class="fields"> <p><strong>Author:</strong>
+ cache@google.com (David T McWherter)
+ </p>
+</div><!-- ==================== CLASSES ==================== -->
+<a name="section-Classes"></a>
+<table class="summary" border="1" cellpadding="3"
+ cellspacing="0" width="100%" bgcolor="white">
+<tr bgcolor="#70b0f0" class="table-header">
+ <td colspan="2" class="table-header">
+ <table border="0" cellpadding="0" cellspacing="0" width="100%">
+ <tr valign="top">
+ <td align="left"><span class="table-header">Classes</span></td>
+ <td align="right" valign="top"
+ ><span class="options">[<a href="#section-Classes"
+ class="privatelink" onclick="toggle_private();"
+ >hide private</a>]</span></td>
+ </tr>
+ </table>
+ </td>
+</tr>
+<tr>
+ <td width="15%" align="right" valign="top" class="summary">
+ <span class="summary-type"> </span>
+ </td><td class="summary">
+ <a href="oauth2client.locked_file.AlreadyLockedException-class.html" class="summary-name">AlreadyLockedException</a><br />
+ Trying to lock a file that has already been locked by the LockedFile.
+ </td>
+ </tr>
+<tr class="private">
+ <td width="15%" align="right" valign="top" class="summary">
+ <span class="summary-type"> </span>
+ </td><td class="summary">
+ <a href="oauth2client.locked_file._Opener-class.html" class="summary-name" onclick="show_private();">_Opener</a><br />
+ Base class for different locking primitives.
+ </td>
+ </tr>
+<tr class="private">
+ <td width="15%" align="right" valign="top" class="summary">
+ <span class="summary-type"> </span>
+ </td><td class="summary">
+ <a href="oauth2client.locked_file._PosixOpener-class.html" class="summary-name" onclick="show_private();">_PosixOpener</a><br />
+ Lock files using Posix advisory lock files.
+ </td>
+ </tr>
+<tr class="private">
+ <td width="15%" align="right" valign="top" class="summary">
+ <span class="summary-type"> </span>
+ </td><td class="summary">
+ <a href="oauth2client.locked_file._FcntlOpener-class.html" class="summary-name" onclick="show_private();">_FcntlOpener</a><br />
+ Open, lock, and unlock a file using fcntl.lockf.
+ </td>
+ </tr>
+<tr>
+ <td width="15%" align="right" valign="top" class="summary">
+ <span class="summary-type"> </span>
+ </td><td class="summary">
+ <a href="oauth2client.locked_file.LockedFile-class.html" class="summary-name">LockedFile</a><br />
+ Represent a file that has exclusive access.
+ </td>
+ </tr>
+</table>
+<!-- ==================== VARIABLES ==================== -->
+<a name="section-Variables"></a>
+<table class="summary" border="1" cellpadding="3"
+ cellspacing="0" width="100%" bgcolor="white">
+<tr bgcolor="#70b0f0" class="table-header">
+ <td colspan="2" class="table-header">
+ <table border="0" cellpadding="0" cellspacing="0" width="100%">
+ <tr valign="top">
+ <td align="left"><span class="table-header">Variables</span></td>
+ <td align="right" valign="top"
+ ><span class="options">[<a href="#section-Variables"
+ class="privatelink" onclick="toggle_private();"
+ >hide private</a>]</span></td>
+ </tr>
+ </table>
+ </td>
+</tr>
+<tr>
+ <td width="15%" align="right" valign="top" class="summary">
+ <span class="summary-type"> </span>
+ </td><td class="summary">
+ <a name="logger"></a><span class="summary-name">logger</span> = <code title="logging.getLogger(__name__)">logging.getLogger(__name__)</code>
+ </td>
+ </tr>
+<tr>
+ <td width="15%" align="right" valign="top" class="summary">
+ <span class="summary-type"> </span>
+ </td><td class="summary">
+ <a name="__package__"></a><span class="summary-name">__package__</span> = <code title="'oauth2client'"><code class="variable-quote">'</code><code class="variable-string">oauth2client</code><code class="variable-quote">'</code></code>
+ </td>
+ </tr>
+</table>
+<!-- ==================== NAVIGATION BAR ==================== -->
+<table class="navbar" border="0" width="100%" cellpadding="0"
+ bgcolor="#a0c0ff" cellspacing="0">
+ <tr valign="middle">
+
+ <!-- Tree link -->
+ <th> <a
+ href="module-tree.html">Trees</a> </th>
+
+ <!-- Index link -->
+ <th> <a
+ href="identifier-index.html">Indices</a> </th>
+
+ <!-- Help link -->
+ <th> <a
+ href="help.html">Help</a> </th>
+
+ <th class="navbar" width="100%"></th>
+ </tr>
+</table>
+<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:54 2012
+ </td>
+ <td align="right" class="footer">
+ <a target="mainFrame" href="http://epydoc.sourceforge.net"
+ >http://epydoc.sourceforge.net</a>
+ </td>
+ </tr>
+</table>
+
+<script type="text/javascript">
+ <!--
+ // Private objects are initially displayed (because if
+ // javascript is turned off then we want them to be
+ // visible); but by default, we want to hide them. So hide
+ // them unless we have a cookie that says to show them.
+ checkCookie();
+ // -->
+</script>
+</body>
+</html>
diff --git a/docs/epy/oauth2client.locked_file-pysrc.html b/docs/epy/oauth2client.locked_file-pysrc.html
new file mode 100644
index 0000000..f4b4c06
--- /dev/null
+++ b/docs/epy/oauth2client.locked_file-pysrc.html
@@ -0,0 +1,381 @@
+<?xml version="1.0" encoding="ascii"?>
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
+ "DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
+<head>
+ <title>oauth2client.locked_file</title>
+ <link rel="stylesheet" href="epydoc.css" type="text/css" />
+ <script type="text/javascript" src="epydoc.js"></script>
+</head>
+
+<body bgcolor="white" text="black" link="blue" vlink="#204080"
+ alink="#204080">
+<!-- ==================== NAVIGATION BAR ==================== -->
+<table class="navbar" border="0" width="100%" cellpadding="0"
+ bgcolor="#a0c0ff" cellspacing="0">
+ <tr valign="middle">
+
+ <!-- Tree link -->
+ <th> <a
+ href="module-tree.html">Trees</a> </th>
+
+ <!-- Index link -->
+ <th> <a
+ href="identifier-index.html">Indices</a> </th>
+
+ <!-- Help link -->
+ <th> <a
+ href="help.html">Help</a> </th>
+
+ <th class="navbar" width="100%"></th>
+ </tr>
+</table>
+<table width="100%" cellpadding="0" cellspacing="0">
+ <tr valign="top">
+ <td width="100%">
+ <span class="breadcrumbs">
+ <a href="oauth2client-module.html">Package oauth2client</a> ::
+ Module locked_file
+ </span>
+ </td>
+ <td>
+ <table cellpadding="0" cellspacing="0">
+ <!-- hide/show private -->
+ <tr><td align="right"><span class="options">[<a href="javascript:void(0);" class="privatelink"
+ onclick="toggle_private();">hide private</a>]</span></td></tr>
+ <tr><td align="right"><span class="options"
+ >[<a href="frames.html" target="_top">frames</a
+ >] | <a href="oauth2client.locked_file-pysrc.html"
+ target="_top">no frames</a>]</span></td></tr>
+ </table>
+ </td>
+ </tr>
+</table>
+<h1 class="epydoc">Source Code for <a href="oauth2client.locked_file-module.html">Module oauth2client.locked_file</a></h1>
+<pre class="py-src">
+<a name="L1"></a><tt class="py-lineno"> 1</tt> <tt class="py-line"><tt class="py-comment"># Copyright 2011 Google Inc. All Rights Reserved.</tt> </tt>
+<a name="L2"></a><tt class="py-lineno"> 2</tt> <tt class="py-line"> </tt>
+<a name="L3"></a><tt class="py-lineno"> 3</tt> <tt class="py-line"><tt class="py-docstring">"""Locked file interface that should work on Unix and Windows pythons.</tt> </tt>
+<a name="L4"></a><tt class="py-lineno"> 4</tt> <tt class="py-line"><tt class="py-docstring"></tt> </tt>
+<a name="L5"></a><tt class="py-lineno"> 5</tt> <tt class="py-line"><tt class="py-docstring">This module first tries to use fcntl locking to ensure serialized access</tt> </tt>
+<a name="L6"></a><tt class="py-lineno"> 6</tt> <tt class="py-line"><tt class="py-docstring">to a file, then falls back on a lock file if that is unavialable.</tt> </tt>
+<a name="L7"></a><tt class="py-lineno"> 7</tt> <tt class="py-line"><tt class="py-docstring"></tt> </tt>
+<a name="L8"></a><tt class="py-lineno"> 8</tt> <tt class="py-line"><tt class="py-docstring">Usage:</tt> </tt>
+<a name="L9"></a><tt class="py-lineno"> 9</tt> <tt class="py-line"><tt class="py-docstring"> f = LockedFile('filename', 'r+b', 'rb')</tt> </tt>
+<a name="L10"></a><tt class="py-lineno"> 10</tt> <tt class="py-line"><tt class="py-docstring"> f.open_and_lock()</tt> </tt>
+<a name="L11"></a><tt class="py-lineno"> 11</tt> <tt class="py-line"><tt class="py-docstring"> if f.is_locked():</tt> </tt>
+<a name="L12"></a><tt class="py-lineno"> 12</tt> <tt class="py-line"><tt class="py-docstring"> print 'Acquired filename with r+b mode'</tt> </tt>
+<a name="L13"></a><tt class="py-lineno"> 13</tt> <tt class="py-line"><tt class="py-docstring"> f.file_handle().write('locked data')</tt> </tt>
+<a name="L14"></a><tt class="py-lineno"> 14</tt> <tt class="py-line"><tt class="py-docstring"> else:</tt> </tt>
+<a name="L15"></a><tt class="py-lineno"> 15</tt> <tt class="py-line"><tt class="py-docstring"> print 'Aquired filename with rb mode'</tt> </tt>
+<a name="L16"></a><tt class="py-lineno"> 16</tt> <tt class="py-line"><tt class="py-docstring"> f.unlock_and_close()</tt> </tt>
+<a name="L17"></a><tt class="py-lineno"> 17</tt> <tt class="py-line"><tt class="py-docstring">"""</tt> </tt>
+<a name="L18"></a><tt class="py-lineno"> 18</tt> <tt class="py-line"> </tt>
+<a name="L19"></a><tt class="py-lineno"> 19</tt> <tt class="py-line"><tt class="py-name">__author__</tt> <tt class="py-op">=</tt> <tt class="py-string">'cache@google.com (David T McWherter)'</tt> </tt>
+<a name="L20"></a><tt class="py-lineno"> 20</tt> <tt class="py-line"> </tt>
+<a name="L21"></a><tt class="py-lineno"> 21</tt> <tt class="py-line"><tt class="py-keyword">import</tt> <tt class="py-name">errno</tt> </tt>
+<a name="L22"></a><tt class="py-lineno"> 22</tt> <tt class="py-line"><tt class="py-keyword">import</tt> <tt class="py-name">logging</tt> </tt>
+<a name="L23"></a><tt class="py-lineno"> 23</tt> <tt class="py-line"><tt class="py-keyword">import</tt> <tt class="py-name">os</tt> </tt>
+<a name="L24"></a><tt class="py-lineno"> 24</tt> <tt class="py-line"><tt class="py-keyword">import</tt> <tt class="py-name">time</tt> </tt>
+<a name="L25"></a><tt class="py-lineno"> 25</tt> <tt class="py-line"> </tt>
+<a name="L26"></a><tt class="py-lineno"> 26</tt> <tt class="py-line"><tt id="link-0" class="py-name" targets="Variable apiclient.discovery.logger=apiclient.discovery-module.html#logger,Variable oauth2client.client.logger=oauth2client.client-module.html#logger,Variable oauth2client.locked_file.logger=oauth2client.locked_file-module.html#logger,Variable oauth2client.multistore_file.logger=oauth2client.multistore_file-module.html#logger"><a title="apiclient.discovery.logger
+oauth2client.client.logger
+oauth2client.locked_file.logger
+oauth2client.multistore_file.logger" class="py-name" href="#" onclick="return doclink('link-0', 'logger', 'link-0');">logger</a></tt> <tt class="py-op">=</tt> <tt class="py-name">logging</tt><tt class="py-op">.</tt><tt class="py-name">getLogger</tt><tt class="py-op">(</tt><tt class="py-name">__name__</tt><tt class="py-op">)</tt> </tt>
+<a name="L27"></a><tt class="py-lineno"> 27</tt> <tt class="py-line"> </tt>
+<a name="L28"></a><tt class="py-lineno"> 28</tt> <tt class="py-line"> </tt>
+<a name="AlreadyLockedException"></a><div id="AlreadyLockedException-def"><a name="L29"></a><tt class="py-lineno"> 29</tt> <a class="py-toggle" href="#" id="AlreadyLockedException-toggle" onclick="return toggle('AlreadyLockedException');">-</a><tt class="py-line"><tt class="py-keyword">class</tt> <a class="py-def-name" href="oauth2client.locked_file.AlreadyLockedException-class.html">AlreadyLockedException</a><tt class="py-op">(</tt><tt class="py-base-class">Exception</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+</div><div id="AlreadyLockedException-collapsed" style="display:none;" pad="+++" indent="++++"></div><div id="AlreadyLockedException-expanded"><a name="L30"></a><tt class="py-lineno"> 30</tt> <tt class="py-line"> <tt class="py-docstring">"""Trying to lock a file that has already been locked by the LockedFile."""</tt> </tt>
+<a name="L31"></a><tt class="py-lineno"> 31</tt> <tt class="py-line"> <tt class="py-keyword">pass</tt> </tt>
+</div><a name="L32"></a><tt class="py-lineno"> 32</tt> <tt class="py-line"> </tt>
+<a name="L33"></a><tt class="py-lineno"> 33</tt> <tt class="py-line"> </tt>
+<a name="_Opener"></a><div id="_Opener-def"><a name="L34"></a><tt class="py-lineno"> 34</tt> <a class="py-toggle" href="#" id="_Opener-toggle" onclick="return toggle('_Opener');">-</a><tt class="py-line"><tt class="py-keyword">class</tt> <a class="py-def-name" href="oauth2client.locked_file._Opener-class.html">_Opener</a><tt class="py-op">(</tt><tt class="py-base-class">object</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+</div><div id="_Opener-collapsed" style="display:none;" pad="+++" indent="++++"></div><div id="_Opener-expanded"><a name="L35"></a><tt class="py-lineno"> 35</tt> <tt class="py-line"> <tt class="py-docstring">"""Base class for different locking primitives."""</tt> </tt>
+<a name="L36"></a><tt class="py-lineno"> 36</tt> <tt class="py-line"> </tt>
+<a name="_Opener.__init__"></a><div id="_Opener.__init__-def"><a name="L37"></a><tt class="py-lineno"> 37</tt> <a class="py-toggle" href="#" id="_Opener.__init__-toggle" onclick="return toggle('_Opener.__init__');">-</a><tt class="py-line"> <tt class="py-keyword">def</tt> <a class="py-def-name" href="oauth2client.locked_file._Opener-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">filename</tt><tt class="py-op">,</tt> <tt class="py-param">mode</tt><tt class="py-op">,</tt> <tt class="py-param">fallback_mode</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+</div><div id="_Opener.__init__-collapsed" style="display:none;" pad="+++" indent="++++++"></div><div id="_Opener.__init__-expanded"><a name="L38"></a><tt class="py-lineno"> 38</tt> <tt class="py-line"> <tt class="py-docstring">"""Create an Opener.</tt> </tt>
+<a name="L39"></a><tt class="py-lineno"> 39</tt> <tt class="py-line"><tt class="py-docstring"></tt> </tt>
+<a name="L40"></a><tt class="py-lineno"> 40</tt> <tt class="py-line"><tt class="py-docstring"> Args:</tt> </tt>
+<a name="L41"></a><tt class="py-lineno"> 41</tt> <tt class="py-line"><tt class="py-docstring"> filename: string, The pathname of the file.</tt> </tt>
+<a name="L42"></a><tt class="py-lineno"> 42</tt> <tt class="py-line"><tt class="py-docstring"> mode: string, The preferred mode to access the file with.</tt> </tt>
+<a name="L43"></a><tt class="py-lineno"> 43</tt> <tt class="py-line"><tt class="py-docstring"> fallback_mode: string, The mode to use if locking fails.</tt> </tt>
+<a name="L44"></a><tt class="py-lineno"> 44</tt> <tt class="py-line"><tt class="py-docstring"> """</tt> </tt>
+<a name="L45"></a><tt class="py-lineno"> 45</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">_locked</tt> <tt class="py-op">=</tt> <tt class="py-name">False</tt> </tt>
+<a name="L46"></a><tt class="py-lineno"> 46</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">_filename</tt> <tt class="py-op">=</tt> <tt id="link-1" 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-1', 'filename', 'link-1');">filename</a></tt> </tt>
+<a name="L47"></a><tt class="py-lineno"> 47</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">_mode</tt> <tt class="py-op">=</tt> <tt class="py-name">mode</tt> </tt>
+<a name="L48"></a><tt class="py-lineno"> 48</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">_fallback_mode</tt> <tt class="py-op">=</tt> <tt class="py-name">fallback_mode</tt> </tt>
+<a name="L49"></a><tt class="py-lineno"> 49</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">_fh</tt> <tt class="py-op">=</tt> <tt class="py-name">None</tt> </tt>
+</div><a name="L50"></a><tt class="py-lineno"> 50</tt> <tt class="py-line"> </tt>
+<a name="_Opener.is_locked"></a><div id="_Opener.is_locked-def"><a name="L51"></a><tt class="py-lineno"> 51</tt> <a class="py-toggle" href="#" id="_Opener.is_locked-toggle" onclick="return toggle('_Opener.is_locked');">-</a><tt class="py-line"> <tt class="py-keyword">def</tt> <a class="py-def-name" href="oauth2client.locked_file._Opener-class.html#is_locked">is_locked</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+</div><div id="_Opener.is_locked-collapsed" style="display:none;" pad="+++" indent="++++++"></div><div id="_Opener.is_locked-expanded"><a name="L52"></a><tt class="py-lineno"> 52</tt> <tt class="py-line"> <tt class="py-docstring">"""Was the file locked."""</tt> </tt>
+<a name="L53"></a><tt class="py-lineno"> 53</tt> <tt class="py-line"> <tt class="py-keyword">return</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">_locked</tt> </tt>
+</div><a name="L54"></a><tt class="py-lineno"> 54</tt> <tt class="py-line"> </tt>
+<a name="_Opener.file_handle"></a><div id="_Opener.file_handle-def"><a name="L55"></a><tt class="py-lineno"> 55</tt> <a class="py-toggle" href="#" id="_Opener.file_handle-toggle" onclick="return toggle('_Opener.file_handle');">-</a><tt class="py-line"> <tt class="py-keyword">def</tt> <a class="py-def-name" href="oauth2client.locked_file._Opener-class.html#file_handle">file_handle</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+</div><div id="_Opener.file_handle-collapsed" style="display:none;" pad="+++" indent="++++++"></div><div id="_Opener.file_handle-expanded"><a name="L56"></a><tt class="py-lineno"> 56</tt> <tt class="py-line"> <tt class="py-docstring">"""The file handle to the file. Valid only after opened."""</tt> </tt>
+<a name="L57"></a><tt class="py-lineno"> 57</tt> <tt class="py-line"> <tt class="py-keyword">return</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">_fh</tt> </tt>
+</div><a name="L58"></a><tt class="py-lineno"> 58</tt> <tt class="py-line"> </tt>
+<a name="_Opener.filename"></a><div id="_Opener.filename-def"><a name="L59"></a><tt class="py-lineno"> 59</tt> <a class="py-toggle" href="#" id="_Opener.filename-toggle" onclick="return toggle('_Opener.filename');">-</a><tt class="py-line"> <tt class="py-keyword">def</tt> <a class="py-def-name" href="oauth2client.locked_file._Opener-class.html#filename">filename</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+</div><div id="_Opener.filename-collapsed" style="display:none;" pad="+++" indent="++++++"></div><div id="_Opener.filename-expanded"><a name="L60"></a><tt class="py-lineno"> 60</tt> <tt class="py-line"> <tt class="py-docstring">"""The filename that is being locked."""</tt> </tt>
+<a name="L61"></a><tt class="py-lineno"> 61</tt> <tt class="py-line"> <tt class="py-keyword">return</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">_filename</tt> </tt>
+</div><a name="L62"></a><tt class="py-lineno"> 62</tt> <tt class="py-line"> </tt>
+<a name="_Opener.open_and_lock"></a><div id="_Opener.open_and_lock-def"><a name="L63"></a><tt class="py-lineno"> 63</tt> <a class="py-toggle" href="#" id="_Opener.open_and_lock-toggle" onclick="return toggle('_Opener.open_and_lock');">-</a><tt class="py-line"> <tt class="py-keyword">def</tt> <a class="py-def-name" href="oauth2client.locked_file._Opener-class.html#open_and_lock">open_and_lock</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">,</tt> <tt class="py-param">timeout</tt><tt class="py-op">,</tt> <tt class="py-param">delay</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+</div><div id="_Opener.open_and_lock-collapsed" style="display:none;" pad="+++" indent="++++++"></div><div id="_Opener.open_and_lock-expanded"><a name="L64"></a><tt class="py-lineno"> 64</tt> <tt class="py-line"> <tt class="py-docstring">"""Open the file and lock it.</tt> </tt>
+<a name="L65"></a><tt class="py-lineno"> 65</tt> <tt class="py-line"><tt class="py-docstring"></tt> </tt>
+<a name="L66"></a><tt class="py-lineno"> 66</tt> <tt class="py-line"><tt class="py-docstring"> Args:</tt> </tt>
+<a name="L67"></a><tt class="py-lineno"> 67</tt> <tt class="py-line"><tt class="py-docstring"> timeout: float, How long to try to lock for.</tt> </tt>
+<a name="L68"></a><tt class="py-lineno"> 68</tt> <tt class="py-line"><tt class="py-docstring"> delay: float, How long to wait between retries.</tt> </tt>
+<a name="L69"></a><tt class="py-lineno"> 69</tt> <tt class="py-line"><tt class="py-docstring"> """</tt> </tt>
+<a name="L70"></a><tt class="py-lineno"> 70</tt> <tt class="py-line"> <tt class="py-keyword">pass</tt> </tt>
+</div><a name="L71"></a><tt class="py-lineno"> 71</tt> <tt class="py-line"> </tt>
+<a name="_Opener.unlock_and_close"></a><div id="_Opener.unlock_and_close-def"><a name="L72"></a><tt class="py-lineno"> 72</tt> <a class="py-toggle" href="#" id="_Opener.unlock_and_close-toggle" onclick="return toggle('_Opener.unlock_and_close');">-</a><tt class="py-line"> <tt class="py-keyword">def</tt> <a class="py-def-name" href="oauth2client.locked_file._Opener-class.html#unlock_and_close">unlock_and_close</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+</div><div id="_Opener.unlock_and_close-collapsed" style="display:none;" pad="+++" indent="++++++"></div><div id="_Opener.unlock_and_close-expanded"><a name="L73"></a><tt class="py-lineno"> 73</tt> <tt class="py-line"> <tt class="py-docstring">"""Unlock and close the file."""</tt> </tt>
+<a name="L74"></a><tt class="py-lineno"> 74</tt> <tt class="py-line"> <tt class="py-keyword">pass</tt> </tt>
+</div></div><a name="L75"></a><tt class="py-lineno"> 75</tt> <tt class="py-line"> </tt>
+<a name="L76"></a><tt class="py-lineno"> 76</tt> <tt class="py-line"> </tt>
+<a name="_PosixOpener"></a><div id="_PosixOpener-def"><a name="L77"></a><tt class="py-lineno"> 77</tt> <a class="py-toggle" href="#" id="_PosixOpener-toggle" onclick="return toggle('_PosixOpener');">-</a><tt class="py-line"><tt class="py-keyword">class</tt> <a class="py-def-name" href="oauth2client.locked_file._PosixOpener-class.html">_PosixOpener</a><tt class="py-op">(</tt><tt class="py-base-class">_Opener</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+</div><div id="_PosixOpener-collapsed" style="display:none;" pad="+++" indent="++++"></div><div id="_PosixOpener-expanded"><a name="L78"></a><tt class="py-lineno"> 78</tt> <tt class="py-line"> <tt class="py-docstring">"""Lock files using Posix advisory lock files."""</tt> </tt>
+<a name="L79"></a><tt class="py-lineno"> 79</tt> <tt class="py-line"> </tt>
+<a name="_PosixOpener.open_and_lock"></a><div id="_PosixOpener.open_and_lock-def"><a name="L80"></a><tt class="py-lineno"> 80</tt> <a class="py-toggle" href="#" id="_PosixOpener.open_and_lock-toggle" onclick="return toggle('_PosixOpener.open_and_lock');">-</a><tt class="py-line"> <tt class="py-keyword">def</tt> <a class="py-def-name" href="oauth2client.locked_file._PosixOpener-class.html#open_and_lock">open_and_lock</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">,</tt> <tt class="py-param">timeout</tt><tt class="py-op">,</tt> <tt class="py-param">delay</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+</div><div id="_PosixOpener.open_and_lock-collapsed" style="display:none;" pad="+++" indent="++++++"></div><div id="_PosixOpener.open_and_lock-expanded"><a name="L81"></a><tt class="py-lineno"> 81</tt> <tt class="py-line"> <tt class="py-docstring">"""Open the file and lock it.</tt> </tt>
+<a name="L82"></a><tt class="py-lineno"> 82</tt> <tt class="py-line"><tt class="py-docstring"></tt> </tt>
+<a name="L83"></a><tt class="py-lineno"> 83</tt> <tt class="py-line"><tt class="py-docstring"> Tries to create a .lock file next to the file we're trying to open.</tt> </tt>
+<a name="L84"></a><tt class="py-lineno"> 84</tt> <tt class="py-line"><tt class="py-docstring"></tt> </tt>
+<a name="L85"></a><tt class="py-lineno"> 85</tt> <tt class="py-line"><tt class="py-docstring"> Args:</tt> </tt>
+<a name="L86"></a><tt class="py-lineno"> 86</tt> <tt class="py-line"><tt class="py-docstring"> timeout: float, How long to try to lock for.</tt> </tt>
+<a name="L87"></a><tt class="py-lineno"> 87</tt> <tt class="py-line"><tt class="py-docstring"> delay: float, How long to wait between retries.</tt> </tt>
+<a name="L88"></a><tt class="py-lineno"> 88</tt> <tt class="py-line"><tt class="py-docstring"></tt> </tt>
+<a name="L89"></a><tt class="py-lineno"> 89</tt> <tt class="py-line"><tt class="py-docstring"> Raises:</tt> </tt>
+<a name="L90"></a><tt class="py-lineno"> 90</tt> <tt class="py-line"><tt class="py-docstring"> AlreadyLockedException: if the lock is already acquired.</tt> </tt>
+<a name="L91"></a><tt class="py-lineno"> 91</tt> <tt class="py-line"><tt class="py-docstring"> IOError: if the open fails.</tt> </tt>
+<a name="L92"></a><tt class="py-lineno"> 92</tt> <tt class="py-line"><tt class="py-docstring"> """</tt> </tt>
+<a name="L93"></a><tt class="py-lineno"> 93</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">_locked</tt><tt class="py-op">:</tt> </tt>
+<a name="L94"></a><tt class="py-lineno"> 94</tt> <tt class="py-line"> <tt class="py-keyword">raise</tt> <tt id="link-2" class="py-name" targets="Class oauth2client.locked_file.AlreadyLockedException=oauth2client.locked_file.AlreadyLockedException-class.html"><a title="oauth2client.locked_file.AlreadyLockedException" class="py-name" href="#" onclick="return doclink('link-2', 'AlreadyLockedException', 'link-2');">AlreadyLockedException</a></tt><tt class="py-op">(</tt><tt class="py-string">'File %s is already locked'</tt> <tt class="py-op">%</tt> </tt>
+<a name="L95"></a><tt class="py-lineno"> 95</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">_filename</tt><tt class="py-op">)</tt> </tt>
+<a name="L96"></a><tt class="py-lineno"> 96</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">_locked</tt> <tt class="py-op">=</tt> <tt class="py-name">False</tt> </tt>
+<a name="L97"></a><tt class="py-lineno"> 97</tt> <tt class="py-line"> </tt>
+<a name="L98"></a><tt class="py-lineno"> 98</tt> <tt class="py-line"> <tt class="py-keyword">try</tt><tt class="py-op">:</tt> </tt>
+<a name="L99"></a><tt class="py-lineno"> 99</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">_fh</tt> <tt class="py-op">=</tt> <tt class="py-name">open</tt><tt class="py-op">(</tt><tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">_filename</tt><tt class="py-op">,</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">_mode</tt><tt class="py-op">)</tt> </tt>
+<a name="L100"></a><tt class="py-lineno">100</tt> <tt class="py-line"> <tt class="py-keyword">except</tt> <tt class="py-name">IOError</tt><tt class="py-op">,</tt> <tt class="py-name">e</tt><tt class="py-op">:</tt> </tt>
+<a name="L101"></a><tt class="py-lineno">101</tt> <tt class="py-line"> <tt class="py-comment"># If we can't access with _mode, try _fallback_mode and don't lock.</tt> </tt>
+<a name="L102"></a><tt class="py-lineno">102</tt> <tt class="py-line"> <tt class="py-keyword">if</tt> <tt class="py-name">e</tt><tt class="py-op">.</tt><tt class="py-name">errno</tt> <tt class="py-op">==</tt> <tt class="py-name">errno</tt><tt class="py-op">.</tt><tt class="py-name">EACCES</tt><tt class="py-op">:</tt> </tt>
+<a name="L103"></a><tt class="py-lineno">103</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">_fh</tt> <tt class="py-op">=</tt> <tt class="py-name">open</tt><tt class="py-op">(</tt><tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">_filename</tt><tt class="py-op">,</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">_fallback_mode</tt><tt class="py-op">)</tt> </tt>
+<a name="L104"></a><tt class="py-lineno">104</tt> <tt class="py-line"> <tt class="py-keyword">return</tt> </tt>
+<a name="L105"></a><tt class="py-lineno">105</tt> <tt class="py-line"> </tt>
+<a name="L106"></a><tt class="py-lineno">106</tt> <tt class="py-line"> <tt class="py-name">lock_filename</tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-3" class="py-name" targets="Method oauth2client.locked_file._PosixOpener._posix_lockfile()=oauth2client.locked_file._PosixOpener-class.html#_posix_lockfile"><a title="oauth2client.locked_file._PosixOpener._posix_lockfile" class="py-name" href="#" onclick="return doclink('link-3', '_posix_lockfile', 'link-3');">_posix_lockfile</a></tt><tt class="py-op">(</tt><tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">_filename</tt><tt class="py-op">)</tt> </tt>
+<a name="L107"></a><tt class="py-lineno">107</tt> <tt class="py-line"> <tt class="py-name">start_time</tt> <tt class="py-op">=</tt> <tt class="py-name">time</tt><tt class="py-op">.</tt><tt class="py-name">time</tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
+<a name="L108"></a><tt class="py-lineno">108</tt> <tt class="py-line"> <tt class="py-keyword">while</tt> <tt class="py-name">True</tt><tt class="py-op">:</tt> </tt>
+<a name="L109"></a><tt class="py-lineno">109</tt> <tt class="py-line"> <tt class="py-keyword">try</tt><tt class="py-op">:</tt> </tt>
+<a name="L110"></a><tt class="py-lineno">110</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">_lock_fd</tt> <tt class="py-op">=</tt> <tt class="py-name">os</tt><tt class="py-op">.</tt><tt class="py-name">open</tt><tt class="py-op">(</tt><tt class="py-name">lock_filename</tt><tt class="py-op">,</tt> </tt>
+<a name="L111"></a><tt class="py-lineno">111</tt> <tt class="py-line"> <tt class="py-name">os</tt><tt class="py-op">.</tt><tt class="py-name">O_CREAT</tt><tt class="py-op">|</tt><tt class="py-name">os</tt><tt class="py-op">.</tt><tt class="py-name">O_EXCL</tt><tt class="py-op">|</tt><tt class="py-name">os</tt><tt class="py-op">.</tt><tt class="py-name">O_RDWR</tt><tt class="py-op">)</tt> </tt>
+<a name="L112"></a><tt class="py-lineno">112</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">_locked</tt> <tt class="py-op">=</tt> <tt class="py-name">True</tt> </tt>
+<a name="L113"></a><tt class="py-lineno">113</tt> <tt class="py-line"> <tt class="py-keyword">break</tt> </tt>
+<a name="L114"></a><tt class="py-lineno">114</tt> <tt class="py-line"> </tt>
+<a name="L115"></a><tt class="py-lineno">115</tt> <tt class="py-line"> <tt class="py-keyword">except</tt> <tt class="py-name">OSError</tt><tt class="py-op">,</tt> <tt class="py-name">e</tt><tt class="py-op">:</tt> </tt>
+<a name="L116"></a><tt class="py-lineno">116</tt> <tt class="py-line"> <tt class="py-keyword">if</tt> <tt class="py-name">e</tt><tt class="py-op">.</tt><tt class="py-name">errno</tt> <tt class="py-op">!=</tt> <tt class="py-name">errno</tt><tt class="py-op">.</tt><tt class="py-name">EEXIST</tt><tt class="py-op">:</tt> </tt>
+<a name="L117"></a><tt class="py-lineno">117</tt> <tt class="py-line"> <tt class="py-keyword">raise</tt> </tt>
+<a name="L118"></a><tt class="py-lineno">118</tt> <tt class="py-line"> <tt class="py-keyword">if</tt> <tt class="py-op">(</tt><tt class="py-name">time</tt><tt class="py-op">.</tt><tt class="py-name">time</tt><tt class="py-op">(</tt><tt class="py-op">)</tt> <tt class="py-op">-</tt> <tt class="py-name">start_time</tt><tt class="py-op">)</tt> <tt class="py-op">>=</tt> <tt class="py-name">timeout</tt><tt class="py-op">:</tt> </tt>
+<a name="L119"></a><tt class="py-lineno">119</tt> <tt class="py-line"> <tt id="link-4" 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-4', 'logger', 'link-0');">logger</a></tt><tt class="py-op">.</tt><tt class="py-name">warn</tt><tt class="py-op">(</tt><tt class="py-string">'Could not acquire lock %s in %s seconds'</tt> <tt class="py-op">%</tt> <tt class="py-op">(</tt> </tt>
+<a name="L120"></a><tt class="py-lineno">120</tt> <tt class="py-line"> <tt class="py-name">lock_filename</tt><tt class="py-op">,</tt> <tt class="py-name">timeout</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
+<a name="L121"></a><tt class="py-lineno">121</tt> <tt class="py-line"> <tt class="py-comment"># Close the file and open in fallback_mode.</tt> </tt>
+<a name="L122"></a><tt class="py-lineno">122</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">_fh</tt><tt class="py-op">:</tt> </tt>
+<a name="L123"></a><tt class="py-lineno">123</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">_fh</tt><tt class="py-op">.</tt><tt class="py-name">close</tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
+<a name="L124"></a><tt class="py-lineno">124</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">_fh</tt> <tt class="py-op">=</tt> <tt class="py-name">open</tt><tt class="py-op">(</tt><tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">_filename</tt><tt class="py-op">,</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">_fallback_mode</tt><tt class="py-op">)</tt> </tt>
+<a name="L125"></a><tt class="py-lineno">125</tt> <tt class="py-line"> <tt class="py-keyword">return</tt> </tt>
+<a name="L126"></a><tt class="py-lineno">126</tt> <tt class="py-line"> <tt class="py-name">time</tt><tt class="py-op">.</tt><tt class="py-name">sleep</tt><tt class="py-op">(</tt><tt class="py-name">delay</tt><tt class="py-op">)</tt> </tt>
+</div><a name="L127"></a><tt class="py-lineno">127</tt> <tt class="py-line"> </tt>
+<a name="_PosixOpener.unlock_and_close"></a><div id="_PosixOpener.unlock_and_close-def"><a name="L128"></a><tt class="py-lineno">128</tt> <a class="py-toggle" href="#" id="_PosixOpener.unlock_and_close-toggle" onclick="return toggle('_PosixOpener.unlock_and_close');">-</a><tt class="py-line"> <tt class="py-keyword">def</tt> <a class="py-def-name" href="oauth2client.locked_file._PosixOpener-class.html#unlock_and_close">unlock_and_close</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+</div><div id="_PosixOpener.unlock_and_close-collapsed" style="display:none;" pad="+++" indent="++++++"></div><div id="_PosixOpener.unlock_and_close-expanded"><a name="L129"></a><tt class="py-lineno">129</tt> <tt class="py-line"> <tt class="py-docstring">"""Unlock a file by removing the .lock file, and close the handle."""</tt> </tt>
+<a name="L130"></a><tt class="py-lineno">130</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">_locked</tt><tt class="py-op">:</tt> </tt>
+<a name="L131"></a><tt class="py-lineno">131</tt> <tt class="py-line"> <tt class="py-name">lock_filename</tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-5" class="py-name"><a title="oauth2client.locked_file._PosixOpener._posix_lockfile" class="py-name" href="#" onclick="return doclink('link-5', '_posix_lockfile', 'link-3');">_posix_lockfile</a></tt><tt class="py-op">(</tt><tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">_filename</tt><tt class="py-op">)</tt> </tt>
+<a name="L132"></a><tt class="py-lineno">132</tt> <tt class="py-line"> <tt class="py-name">os</tt><tt class="py-op">.</tt><tt class="py-name">unlink</tt><tt class="py-op">(</tt><tt class="py-name">lock_filename</tt><tt class="py-op">)</tt> </tt>
+<a name="L133"></a><tt class="py-lineno">133</tt> <tt class="py-line"> <tt class="py-name">os</tt><tt class="py-op">.</tt><tt class="py-name">close</tt><tt class="py-op">(</tt><tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">_lock_fd</tt><tt class="py-op">)</tt> </tt>
+<a name="L134"></a><tt class="py-lineno">134</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">_locked</tt> <tt class="py-op">=</tt> <tt class="py-name">False</tt> </tt>
+<a name="L135"></a><tt class="py-lineno">135</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">_lock_fd</tt> <tt class="py-op">=</tt> <tt class="py-name">None</tt> </tt>
+<a name="L136"></a><tt class="py-lineno">136</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">_fh</tt><tt class="py-op">:</tt> </tt>
+<a name="L137"></a><tt class="py-lineno">137</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">_fh</tt><tt class="py-op">.</tt><tt class="py-name">close</tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
+</div><a name="L138"></a><tt class="py-lineno">138</tt> <tt class="py-line"> </tt>
+<a name="_PosixOpener._posix_lockfile"></a><div id="_PosixOpener._posix_lockfile-def"><a name="L139"></a><tt class="py-lineno">139</tt> <a class="py-toggle" href="#" id="_PosixOpener._posix_lockfile-toggle" onclick="return toggle('_PosixOpener._posix_lockfile');">-</a><tt class="py-line"> <tt class="py-keyword">def</tt> <a class="py-def-name" href="oauth2client.locked_file._PosixOpener-class.html#_posix_lockfile">_posix_lockfile</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">,</tt> <tt class="py-param">filename</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+</div><div id="_PosixOpener._posix_lockfile-collapsed" style="display:none;" pad="+++" indent="++++++"></div><div id="_PosixOpener._posix_lockfile-expanded"><a name="L140"></a><tt class="py-lineno">140</tt> <tt class="py-line"> <tt class="py-docstring">"""The name of the lock file to use for posix locking."""</tt> </tt>
+<a name="L141"></a><tt class="py-lineno">141</tt> <tt class="py-line"> <tt class="py-keyword">return</tt> <tt class="py-string">'%s.lock'</tt> <tt class="py-op">%</tt> <tt id="link-6" class="py-name"><a title="oauth2client.locked_file.LockedFile.filename
+oauth2client.locked_file._Opener.filename" class="py-name" href="#" onclick="return doclink('link-6', 'filename', 'link-1');">filename</a></tt> </tt>
+</div></div><a name="L142"></a><tt class="py-lineno">142</tt> <tt class="py-line"> </tt>
+<a name="L143"></a><tt class="py-lineno">143</tt> <tt class="py-line"> </tt>
+<a name="L144"></a><tt class="py-lineno">144</tt> <tt class="py-line"><tt class="py-keyword">try</tt><tt class="py-op">:</tt> </tt>
+<a name="L145"></a><tt class="py-lineno">145</tt> <tt class="py-line"> <tt class="py-keyword">import</tt> <tt class="py-name">fcntl</tt> </tt>
+<a name="_FcntlOpener"></a><div id="_FcntlOpener-def"><a name="L146"></a><tt class="py-lineno">146</tt> <a class="py-toggle" href="#" id="_FcntlOpener-toggle" onclick="return toggle('_FcntlOpener');">-</a><tt class="py-line"> <tt class="py-keyword">class</tt> <a class="py-def-name" href="oauth2client.locked_file._FcntlOpener-class.html">_FcntlOpener</a><tt class="py-op">(</tt><tt class="py-base-class">_Opener</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+</div><div id="_FcntlOpener-collapsed" style="display:none;" pad="+++" indent="++++++"></div><div id="_FcntlOpener-expanded"><a name="L147"></a><tt class="py-lineno">147</tt> <tt class="py-line"> <tt class="py-docstring">"""Open, lock, and unlock a file using fcntl.lockf."""</tt> </tt>
+<a name="L148"></a><tt class="py-lineno">148</tt> <tt class="py-line"> </tt>
+<a name="_FcntlOpener.open_and_lock"></a><div id="_FcntlOpener.open_and_lock-def"><a name="L149"></a><tt class="py-lineno">149</tt> <a class="py-toggle" href="#" id="_FcntlOpener.open_and_lock-toggle" onclick="return toggle('_FcntlOpener.open_and_lock');">-</a><tt class="py-line"> <tt class="py-keyword">def</tt> <a class="py-def-name" href="oauth2client.locked_file._FcntlOpener-class.html#open_and_lock">open_and_lock</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">,</tt> <tt class="py-param">timeout</tt><tt class="py-op">,</tt> <tt class="py-param">delay</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+</div><div id="_FcntlOpener.open_and_lock-collapsed" style="display:none;" pad="+++" indent="++++++++++"></div><div id="_FcntlOpener.open_and_lock-expanded"><a name="L150"></a><tt class="py-lineno">150</tt> <tt class="py-line"> <tt class="py-docstring">"""Open the file and lock it.</tt> </tt>
+<a name="L151"></a><tt class="py-lineno">151</tt> <tt class="py-line"><tt class="py-docstring"></tt> </tt>
+<a name="L152"></a><tt class="py-lineno">152</tt> <tt class="py-line"><tt class="py-docstring"> Args:</tt> </tt>
+<a name="L153"></a><tt class="py-lineno">153</tt> <tt class="py-line"><tt class="py-docstring"> timeout: float, How long to try to lock for.</tt> </tt>
+<a name="L154"></a><tt class="py-lineno">154</tt> <tt class="py-line"><tt class="py-docstring"> delay: float, How long to wait between retries</tt> </tt>
+<a name="L155"></a><tt class="py-lineno">155</tt> <tt class="py-line"><tt class="py-docstring"></tt> </tt>
+<a name="L156"></a><tt class="py-lineno">156</tt> <tt class="py-line"><tt class="py-docstring"> Raises:</tt> </tt>
+<a name="L157"></a><tt class="py-lineno">157</tt> <tt class="py-line"><tt class="py-docstring"> AlreadyLockedException: if the lock is already acquired.</tt> </tt>
+<a name="L158"></a><tt class="py-lineno">158</tt> <tt class="py-line"><tt class="py-docstring"> IOError: if the open fails.</tt> </tt>
+<a name="L159"></a><tt class="py-lineno">159</tt> <tt class="py-line"><tt class="py-docstring"> """</tt> </tt>
+<a name="L160"></a><tt class="py-lineno">160</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">_locked</tt><tt class="py-op">:</tt> </tt>
+<a name="L161"></a><tt class="py-lineno">161</tt> <tt class="py-line"> <tt class="py-keyword">raise</tt> <tt id="link-7" class="py-name"><a title="oauth2client.locked_file.AlreadyLockedException" class="py-name" href="#" onclick="return doclink('link-7', 'AlreadyLockedException', 'link-2');">AlreadyLockedException</a></tt><tt class="py-op">(</tt><tt class="py-string">'File %s is already locked'</tt> <tt class="py-op">%</tt> </tt>
+<a name="L162"></a><tt class="py-lineno">162</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">_filename</tt><tt class="py-op">)</tt> </tt>
+<a name="L163"></a><tt class="py-lineno">163</tt> <tt class="py-line"> <tt class="py-name">start_time</tt> <tt class="py-op">=</tt> <tt class="py-name">time</tt><tt class="py-op">.</tt><tt class="py-name">time</tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
+<a name="L164"></a><tt class="py-lineno">164</tt> <tt class="py-line"> </tt>
+<a name="L165"></a><tt class="py-lineno">165</tt> <tt class="py-line"> <tt class="py-keyword">try</tt><tt class="py-op">:</tt> </tt>
+<a name="L166"></a><tt class="py-lineno">166</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">_fh</tt> <tt class="py-op">=</tt> <tt class="py-name">open</tt><tt class="py-op">(</tt><tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">_filename</tt><tt class="py-op">,</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">_mode</tt><tt class="py-op">)</tt> </tt>
+<a name="L167"></a><tt class="py-lineno">167</tt> <tt class="py-line"> <tt class="py-keyword">except</tt> <tt class="py-name">IOError</tt><tt class="py-op">,</tt> <tt class="py-name">e</tt><tt class="py-op">:</tt> </tt>
+<a name="L168"></a><tt class="py-lineno">168</tt> <tt class="py-line"> <tt class="py-comment"># If we can't access with _mode, try _fallback_mode and don't lock.</tt> </tt>
+<a name="L169"></a><tt class="py-lineno">169</tt> <tt class="py-line"> <tt class="py-keyword">if</tt> <tt class="py-name">e</tt><tt class="py-op">.</tt><tt class="py-name">errno</tt> <tt class="py-op">==</tt> <tt class="py-name">errno</tt><tt class="py-op">.</tt><tt class="py-name">EACCES</tt><tt class="py-op">:</tt> </tt>
+<a name="L170"></a><tt class="py-lineno">170</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">_fh</tt> <tt class="py-op">=</tt> <tt class="py-name">open</tt><tt class="py-op">(</tt><tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">_filename</tt><tt class="py-op">,</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">_fallback_mode</tt><tt class="py-op">)</tt> </tt>
+<a name="L171"></a><tt class="py-lineno">171</tt> <tt class="py-line"> <tt class="py-keyword">return</tt> </tt>
+<a name="L172"></a><tt class="py-lineno">172</tt> <tt class="py-line"> </tt>
+<a name="L173"></a><tt class="py-lineno">173</tt> <tt class="py-line"> <tt class="py-comment"># We opened in _mode, try to lock the file.</tt> </tt>
+<a name="L174"></a><tt class="py-lineno">174</tt> <tt class="py-line"> <tt class="py-keyword">while</tt> <tt class="py-name">True</tt><tt class="py-op">:</tt> </tt>
+<a name="L175"></a><tt class="py-lineno">175</tt> <tt class="py-line"> <tt class="py-keyword">try</tt><tt class="py-op">:</tt> </tt>
+<a name="L176"></a><tt class="py-lineno">176</tt> <tt class="py-line"> <tt class="py-name">fcntl</tt><tt class="py-op">.</tt><tt class="py-name">lockf</tt><tt class="py-op">(</tt><tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">_fh</tt><tt class="py-op">.</tt><tt class="py-name">fileno</tt><tt class="py-op">(</tt><tt class="py-op">)</tt><tt class="py-op">,</tt> <tt class="py-name">fcntl</tt><tt class="py-op">.</tt><tt class="py-name">LOCK_EX</tt><tt class="py-op">)</tt> </tt>
+<a name="L177"></a><tt class="py-lineno">177</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">_locked</tt> <tt class="py-op">=</tt> <tt class="py-name">True</tt> </tt>
+<a name="L178"></a><tt class="py-lineno">178</tt> <tt class="py-line"> <tt class="py-keyword">return</tt> </tt>
+<a name="L179"></a><tt class="py-lineno">179</tt> <tt class="py-line"> <tt class="py-keyword">except</tt> <tt class="py-name">IOError</tt><tt class="py-op">,</tt> <tt class="py-name">e</tt><tt class="py-op">:</tt> </tt>
+<a name="L180"></a><tt class="py-lineno">180</tt> <tt class="py-line"> <tt class="py-comment"># If not retrying, then just pass on the error.</tt> </tt>
+<a name="L181"></a><tt class="py-lineno">181</tt> <tt class="py-line"> <tt class="py-keyword">if</tt> <tt class="py-name">timeout</tt> <tt class="py-op">==</tt> <tt class="py-number">0</tt><tt class="py-op">:</tt> </tt>
+<a name="L182"></a><tt class="py-lineno">182</tt> <tt class="py-line"> <tt class="py-keyword">raise</tt> <tt class="py-name">e</tt> </tt>
+<a name="L183"></a><tt class="py-lineno">183</tt> <tt class="py-line"> <tt class="py-keyword">if</tt> <tt class="py-name">e</tt><tt class="py-op">.</tt><tt class="py-name">errno</tt> <tt class="py-op">!=</tt> <tt class="py-name">errno</tt><tt class="py-op">.</tt><tt class="py-name">EACCES</tt><tt class="py-op">:</tt> </tt>
+<a name="L184"></a><tt class="py-lineno">184</tt> <tt class="py-line"> <tt class="py-keyword">raise</tt> <tt class="py-name">e</tt> </tt>
+<a name="L185"></a><tt class="py-lineno">185</tt> <tt class="py-line"> <tt class="py-comment"># We could not acquire the lock. Try again.</tt> </tt>
+<a name="L186"></a><tt class="py-lineno">186</tt> <tt class="py-line"> <tt class="py-keyword">if</tt> <tt class="py-op">(</tt><tt class="py-name">time</tt><tt class="py-op">.</tt><tt class="py-name">time</tt><tt class="py-op">(</tt><tt class="py-op">)</tt> <tt class="py-op">-</tt> <tt class="py-name">start_time</tt><tt class="py-op">)</tt> <tt class="py-op">>=</tt> <tt class="py-name">timeout</tt><tt class="py-op">:</tt> </tt>
+<a name="L187"></a><tt class="py-lineno">187</tt> <tt class="py-line"> <tt id="link-8" 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-8', 'logger', 'link-0');">logger</a></tt><tt class="py-op">.</tt><tt class="py-name">warn</tt><tt class="py-op">(</tt><tt class="py-string">'Could not lock %s in %s seconds'</tt> <tt class="py-op">%</tt> <tt class="py-op">(</tt> </tt>
+<a name="L188"></a><tt class="py-lineno">188</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">_filename</tt><tt class="py-op">,</tt> <tt class="py-name">timeout</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
+<a name="L189"></a><tt class="py-lineno">189</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">_fh</tt><tt class="py-op">:</tt> </tt>
+<a name="L190"></a><tt class="py-lineno">190</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">_fh</tt><tt class="py-op">.</tt><tt class="py-name">close</tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
+<a name="L191"></a><tt class="py-lineno">191</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">_fh</tt> <tt class="py-op">=</tt> <tt class="py-name">open</tt><tt class="py-op">(</tt><tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">_filename</tt><tt class="py-op">,</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">_fallback_mode</tt><tt class="py-op">)</tt> </tt>
+<a name="L192"></a><tt class="py-lineno">192</tt> <tt class="py-line"> <tt class="py-keyword">return</tt> </tt>
+<a name="L193"></a><tt class="py-lineno">193</tt> <tt class="py-line"> <tt class="py-name">time</tt><tt class="py-op">.</tt><tt class="py-name">sleep</tt><tt class="py-op">(</tt><tt class="py-name">delay</tt><tt class="py-op">)</tt> </tt>
+</div><a name="L194"></a><tt class="py-lineno">194</tt> <tt class="py-line"> </tt>
+<a name="L195"></a><tt class="py-lineno">195</tt> <tt class="py-line"> </tt>
+<a name="_FcntlOpener.unlock_and_close"></a><div id="_FcntlOpener.unlock_and_close-def"><a name="L196"></a><tt class="py-lineno">196</tt> <a class="py-toggle" href="#" id="_FcntlOpener.unlock_and_close-toggle" onclick="return toggle('_FcntlOpener.unlock_and_close');">-</a><tt class="py-line"> <tt class="py-keyword">def</tt> <a class="py-def-name" href="oauth2client.locked_file._FcntlOpener-class.html#unlock_and_close">unlock_and_close</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+</div><div id="_FcntlOpener.unlock_and_close-collapsed" style="display:none;" pad="+++" indent="++++++++++"></div><div id="_FcntlOpener.unlock_and_close-expanded"><a name="L197"></a><tt class="py-lineno">197</tt> <tt class="py-line"> <tt class="py-docstring">"""Close and unlock the file using the fcntl.lockf primitive."""</tt> </tt>
+<a name="L198"></a><tt class="py-lineno">198</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">_locked</tt><tt class="py-op">:</tt> </tt>
+<a name="L199"></a><tt class="py-lineno">199</tt> <tt class="py-line"> <tt class="py-name">fcntl</tt><tt class="py-op">.</tt><tt class="py-name">lockf</tt><tt class="py-op">(</tt><tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">_fh</tt><tt class="py-op">.</tt><tt class="py-name">fileno</tt><tt class="py-op">(</tt><tt class="py-op">)</tt><tt class="py-op">,</tt> <tt class="py-name">fcntl</tt><tt class="py-op">.</tt><tt class="py-name">LOCK_UN</tt><tt class="py-op">)</tt> </tt>
+<a name="L200"></a><tt class="py-lineno">200</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">_locked</tt> <tt class="py-op">=</tt> <tt class="py-name">False</tt> </tt>
+<a name="L201"></a><tt class="py-lineno">201</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">_fh</tt><tt class="py-op">:</tt> </tt>
+<a name="L202"></a><tt class="py-lineno">202</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">_fh</tt><tt class="py-op">.</tt><tt class="py-name">close</tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
+</div></div><a name="L203"></a><tt class="py-lineno">203</tt> <tt class="py-line"><tt class="py-keyword">except</tt> <tt class="py-name">ImportError</tt><tt class="py-op">:</tt> </tt>
+<a name="L204"></a><tt class="py-lineno">204</tt> <tt class="py-line"> <tt id="link-9" class="py-name" targets="Class oauth2client.locked_file._FcntlOpener=oauth2client.locked_file._FcntlOpener-class.html"><a title="oauth2client.locked_file._FcntlOpener" class="py-name" href="#" onclick="return doclink('link-9', '_FcntlOpener', 'link-9');">_FcntlOpener</a></tt> <tt class="py-op">=</tt> <tt class="py-name">None</tt> </tt>
+<a name="L205"></a><tt class="py-lineno">205</tt> <tt class="py-line"> </tt>
+<a name="L206"></a><tt class="py-lineno">206</tt> <tt class="py-line"> </tt>
+<a name="LockedFile"></a><div id="LockedFile-def"><a name="L207"></a><tt class="py-lineno">207</tt> <a class="py-toggle" href="#" id="LockedFile-toggle" onclick="return toggle('LockedFile');">-</a><tt class="py-line"><tt class="py-keyword">class</tt> <a class="py-def-name" href="oauth2client.locked_file.LockedFile-class.html">LockedFile</a><tt class="py-op">(</tt><tt class="py-base-class">object</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+</div><div id="LockedFile-collapsed" style="display:none;" pad="+++" indent="++++"></div><div id="LockedFile-expanded"><a name="L208"></a><tt class="py-lineno">208</tt> <tt class="py-line"> <tt class="py-docstring">"""Represent a file that has exclusive access."""</tt> </tt>
+<a name="L209"></a><tt class="py-lineno">209</tt> <tt class="py-line"> </tt>
+<a name="LockedFile.__init__"></a><div id="LockedFile.__init__-def"><a name="L210"></a><tt class="py-lineno">210</tt> <a class="py-toggle" href="#" id="LockedFile.__init__-toggle" onclick="return toggle('LockedFile.__init__');">-</a><tt class="py-line"> <tt class="py-keyword">def</tt> <a class="py-def-name" href="oauth2client.locked_file.LockedFile-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">filename</tt><tt class="py-op">,</tt> <tt class="py-param">mode</tt><tt class="py-op">,</tt> <tt class="py-param">fallback_mode</tt><tt class="py-op">,</tt> <tt class="py-param">use_fcntl</tt><tt class="py-op">=</tt><tt class="py-name">True</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+</div><div id="LockedFile.__init__-collapsed" style="display:none;" pad="+++" indent="++++++"></div><div id="LockedFile.__init__-expanded"><a name="L211"></a><tt class="py-lineno">211</tt> <tt class="py-line"> <tt class="py-docstring">"""Construct a LockedFile.</tt> </tt>
+<a name="L212"></a><tt class="py-lineno">212</tt> <tt class="py-line"><tt class="py-docstring"></tt> </tt>
+<a name="L213"></a><tt class="py-lineno">213</tt> <tt class="py-line"><tt class="py-docstring"> Args:</tt> </tt>
+<a name="L214"></a><tt class="py-lineno">214</tt> <tt class="py-line"><tt class="py-docstring"> filename: string, The path of the file to open.</tt> </tt>
+<a name="L215"></a><tt class="py-lineno">215</tt> <tt class="py-line"><tt class="py-docstring"> mode: string, The mode to try to open the file with.</tt> </tt>
+<a name="L216"></a><tt class="py-lineno">216</tt> <tt class="py-line"><tt class="py-docstring"> fallback_mode: string, The mode to use if locking fails.</tt> </tt>
+<a name="L217"></a><tt class="py-lineno">217</tt> <tt class="py-line"><tt class="py-docstring"> use_fcntl: string, Whether or not fcntl-based locking should be used.</tt> </tt>
+<a name="L218"></a><tt class="py-lineno">218</tt> <tt class="py-line"><tt class="py-docstring"> """</tt> </tt>
+<a name="L219"></a><tt class="py-lineno">219</tt> <tt class="py-line"> <tt class="py-keyword">if</tt> <tt class="py-keyword">not</tt> <tt class="py-name">use_fcntl</tt><tt class="py-op">:</tt> </tt>
+<a name="L220"></a><tt class="py-lineno">220</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">_opener</tt> <tt class="py-op">=</tt> <tt id="link-10" class="py-name" targets="Class oauth2client.locked_file._PosixOpener=oauth2client.locked_file._PosixOpener-class.html"><a title="oauth2client.locked_file._PosixOpener" class="py-name" href="#" onclick="return doclink('link-10', '_PosixOpener', 'link-10');">_PosixOpener</a></tt><tt class="py-op">(</tt><tt id="link-11" class="py-name"><a title="oauth2client.locked_file.LockedFile.filename
+oauth2client.locked_file._Opener.filename" class="py-name" href="#" onclick="return doclink('link-11', 'filename', 'link-1');">filename</a></tt><tt class="py-op">,</tt> <tt class="py-name">mode</tt><tt class="py-op">,</tt> <tt class="py-name">fallback_mode</tt><tt class="py-op">)</tt> </tt>
+<a name="L221"></a><tt class="py-lineno">221</tt> <tt class="py-line"> <tt class="py-keyword">else</tt><tt class="py-op">:</tt> </tt>
+<a name="L222"></a><tt class="py-lineno">222</tt> <tt class="py-line"> <tt class="py-keyword">if</tt> <tt id="link-12" class="py-name"><a title="oauth2client.locked_file._FcntlOpener" class="py-name" href="#" onclick="return doclink('link-12', '_FcntlOpener', 'link-9');">_FcntlOpener</a></tt><tt class="py-op">:</tt> </tt>
+<a name="L223"></a><tt class="py-lineno">223</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">_opener</tt> <tt class="py-op">=</tt> <tt id="link-13" class="py-name"><a title="oauth2client.locked_file._FcntlOpener" class="py-name" href="#" onclick="return doclink('link-13', '_FcntlOpener', 'link-9');">_FcntlOpener</a></tt><tt class="py-op">(</tt><tt id="link-14" class="py-name"><a title="oauth2client.locked_file.LockedFile.filename
+oauth2client.locked_file._Opener.filename" class="py-name" href="#" onclick="return doclink('link-14', 'filename', 'link-1');">filename</a></tt><tt class="py-op">,</tt> <tt class="py-name">mode</tt><tt class="py-op">,</tt> <tt class="py-name">fallback_mode</tt><tt class="py-op">)</tt> </tt>
+<a name="L224"></a><tt class="py-lineno">224</tt> <tt class="py-line"> <tt class="py-keyword">else</tt><tt class="py-op">:</tt> </tt>
+<a name="L225"></a><tt class="py-lineno">225</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">_opener</tt> <tt class="py-op">=</tt> <tt id="link-15" class="py-name"><a title="oauth2client.locked_file._PosixOpener" class="py-name" href="#" onclick="return doclink('link-15', '_PosixOpener', 'link-10');">_PosixOpener</a></tt><tt class="py-op">(</tt><tt id="link-16" class="py-name"><a title="oauth2client.locked_file.LockedFile.filename
+oauth2client.locked_file._Opener.filename" class="py-name" href="#" onclick="return doclink('link-16', 'filename', 'link-1');">filename</a></tt><tt class="py-op">,</tt> <tt class="py-name">mode</tt><tt class="py-op">,</tt> <tt class="py-name">fallback_mode</tt><tt class="py-op">)</tt> </tt>
+</div><a name="L226"></a><tt class="py-lineno">226</tt> <tt class="py-line"> </tt>
+<a name="LockedFile.filename"></a><div id="LockedFile.filename-def"><a name="L227"></a><tt class="py-lineno">227</tt> <a class="py-toggle" href="#" id="LockedFile.filename-toggle" onclick="return toggle('LockedFile.filename');">-</a><tt class="py-line"> <tt class="py-keyword">def</tt> <a class="py-def-name" href="oauth2client.locked_file.LockedFile-class.html#filename">filename</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+</div><div id="LockedFile.filename-collapsed" style="display:none;" pad="+++" indent="++++++"></div><div id="LockedFile.filename-expanded"><a name="L228"></a><tt class="py-lineno">228</tt> <tt class="py-line"> <tt class="py-docstring">"""Return the filename we were constructed with."""</tt> </tt>
+<a name="L229"></a><tt class="py-lineno">229</tt> <tt class="py-line"> <tt class="py-keyword">return</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">_opener</tt><tt class="py-op">.</tt><tt class="py-name">_filename</tt> </tt>
+</div><a name="L230"></a><tt class="py-lineno">230</tt> <tt class="py-line"> </tt>
+<a name="LockedFile.file_handle"></a><div id="LockedFile.file_handle-def"><a name="L231"></a><tt class="py-lineno">231</tt> <a class="py-toggle" href="#" id="LockedFile.file_handle-toggle" onclick="return toggle('LockedFile.file_handle');">-</a><tt class="py-line"> <tt class="py-keyword">def</tt> <a class="py-def-name" href="oauth2client.locked_file.LockedFile-class.html#file_handle">file_handle</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+</div><div id="LockedFile.file_handle-collapsed" style="display:none;" pad="+++" indent="++++++"></div><div id="LockedFile.file_handle-expanded"><a name="L232"></a><tt class="py-lineno">232</tt> <tt class="py-line"> <tt class="py-docstring">"""Return the file_handle to the opened file."""</tt> </tt>
+<a name="L233"></a><tt class="py-lineno">233</tt> <tt class="py-line"> <tt class="py-keyword">return</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">_opener</tt><tt class="py-op">.</tt><tt id="link-17" class="py-name" targets="Method oauth2client.locked_file.LockedFile.file_handle()=oauth2client.locked_file.LockedFile-class.html#file_handle,Method oauth2client.locked_file._Opener.file_handle()=oauth2client.locked_file._Opener-class.html#file_handle"><a title="oauth2client.locked_file.LockedFile.file_handle
+oauth2client.locked_file._Opener.file_handle" class="py-name" href="#" onclick="return doclink('link-17', 'file_handle', 'link-17');">file_handle</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
+</div><a name="L234"></a><tt class="py-lineno">234</tt> <tt class="py-line"> </tt>
+<a name="LockedFile.is_locked"></a><div id="LockedFile.is_locked-def"><a name="L235"></a><tt class="py-lineno">235</tt> <a class="py-toggle" href="#" id="LockedFile.is_locked-toggle" onclick="return toggle('LockedFile.is_locked');">-</a><tt class="py-line"> <tt class="py-keyword">def</tt> <a class="py-def-name" href="oauth2client.locked_file.LockedFile-class.html#is_locked">is_locked</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+</div><div id="LockedFile.is_locked-collapsed" style="display:none;" pad="+++" indent="++++++"></div><div id="LockedFile.is_locked-expanded"><a name="L236"></a><tt class="py-lineno">236</tt> <tt class="py-line"> <tt class="py-docstring">"""Return whether we successfully locked the file."""</tt> </tt>
+<a name="L237"></a><tt class="py-lineno">237</tt> <tt class="py-line"> <tt class="py-keyword">return</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">_opener</tt><tt class="py-op">.</tt><tt id="link-18" class="py-name" targets="Method oauth2client.locked_file.LockedFile.is_locked()=oauth2client.locked_file.LockedFile-class.html#is_locked,Method oauth2client.locked_file._Opener.is_locked()=oauth2client.locked_file._Opener-class.html#is_locked"><a title="oauth2client.locked_file.LockedFile.is_locked
+oauth2client.locked_file._Opener.is_locked" class="py-name" href="#" onclick="return doclink('link-18', 'is_locked', 'link-18');">is_locked</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
+</div><a name="L238"></a><tt class="py-lineno">238</tt> <tt class="py-line"> </tt>
+<a name="LockedFile.open_and_lock"></a><div id="LockedFile.open_and_lock-def"><a name="L239"></a><tt class="py-lineno">239</tt> <a class="py-toggle" href="#" id="LockedFile.open_and_lock-toggle" onclick="return toggle('LockedFile.open_and_lock');">-</a><tt class="py-line"> <tt class="py-keyword">def</tt> <a class="py-def-name" href="oauth2client.locked_file.LockedFile-class.html#open_and_lock">open_and_lock</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">,</tt> <tt class="py-param">timeout</tt><tt class="py-op">=</tt><tt class="py-number">0</tt><tt class="py-op">,</tt> <tt class="py-param">delay</tt><tt class="py-op">=</tt><tt class="py-number">0.05</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+</div><div id="LockedFile.open_and_lock-collapsed" style="display:none;" pad="+++" indent="++++++"></div><div id="LockedFile.open_and_lock-expanded"><a name="L240"></a><tt class="py-lineno">240</tt> <tt class="py-line"> <tt class="py-docstring">"""Open the file, trying to lock it.</tt> </tt>
+<a name="L241"></a><tt class="py-lineno">241</tt> <tt class="py-line"><tt class="py-docstring"></tt> </tt>
+<a name="L242"></a><tt class="py-lineno">242</tt> <tt class="py-line"><tt class="py-docstring"> Args:</tt> </tt>
+<a name="L243"></a><tt class="py-lineno">243</tt> <tt class="py-line"><tt class="py-docstring"> timeout: float, The number of seconds to try to acquire the lock.</tt> </tt>
+<a name="L244"></a><tt class="py-lineno">244</tt> <tt class="py-line"><tt class="py-docstring"> delay: float, The number of seconds to wait between retry attempts.</tt> </tt>
+<a name="L245"></a><tt class="py-lineno">245</tt> <tt class="py-line"><tt class="py-docstring"></tt> </tt>
+<a name="L246"></a><tt class="py-lineno">246</tt> <tt class="py-line"><tt class="py-docstring"> Raises:</tt> </tt>
+<a name="L247"></a><tt class="py-lineno">247</tt> <tt class="py-line"><tt class="py-docstring"> AlreadyLockedException: if the lock is already acquired.</tt> </tt>
+<a name="L248"></a><tt class="py-lineno">248</tt> <tt class="py-line"><tt class="py-docstring"> IOError: if the open fails.</tt> </tt>
+<a name="L249"></a><tt class="py-lineno">249</tt> <tt class="py-line"><tt class="py-docstring"> """</tt> </tt>
+<a name="L250"></a><tt class="py-lineno">250</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">_opener</tt><tt class="py-op">.</tt><tt id="link-19" class="py-name" targets="Method oauth2client.locked_file.LockedFile.open_and_lock()=oauth2client.locked_file.LockedFile-class.html#open_and_lock,Method oauth2client.locked_file._FcntlOpener.open_and_lock()=oauth2client.locked_file._FcntlOpener-class.html#open_and_lock,Method oauth2client.locked_file._Opener.open_and_lock()=oauth2client.locked_file._Opener-class.html#open_and_lock,Method oauth2client.locked_file._PosixOpener.open_and_lock()=oauth2client.locked_file._PosixOpener-class.html#open_and_lock"><a title="oauth2client.locked_file.LockedFile.open_and_lock
+oauth2client.locked_file._FcntlOpener.open_and_lock
+oauth2client.locked_file._Opener.open_and_lock
+oauth2client.locked_file._PosixOpener.open_and_lock" class="py-name" href="#" onclick="return doclink('link-19', 'open_and_lock', 'link-19');">open_and_lock</a></tt><tt class="py-op">(</tt><tt class="py-name">timeout</tt><tt class="py-op">,</tt> <tt class="py-name">delay</tt><tt class="py-op">)</tt> </tt>
+</div><a name="L251"></a><tt class="py-lineno">251</tt> <tt class="py-line"> </tt>
+<a name="LockedFile.unlock_and_close"></a><div id="LockedFile.unlock_and_close-def"><a name="L252"></a><tt class="py-lineno">252</tt> <a class="py-toggle" href="#" id="LockedFile.unlock_and_close-toggle" onclick="return toggle('LockedFile.unlock_and_close');">-</a><tt class="py-line"> <tt class="py-keyword">def</tt> <a class="py-def-name" href="oauth2client.locked_file.LockedFile-class.html#unlock_and_close">unlock_and_close</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+</div><div id="LockedFile.unlock_and_close-collapsed" style="display:none;" pad="+++" indent="++++++"></div><div id="LockedFile.unlock_and_close-expanded"><a name="L253"></a><tt class="py-lineno">253</tt> <tt class="py-line"> <tt class="py-docstring">"""Unlock and close a file."""</tt> </tt>
+<a name="L254"></a><tt class="py-lineno">254</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">_opener</tt><tt class="py-op">.</tt><tt id="link-20" class="py-name" targets="Method oauth2client.locked_file.LockedFile.unlock_and_close()=oauth2client.locked_file.LockedFile-class.html#unlock_and_close,Method oauth2client.locked_file._FcntlOpener.unlock_and_close()=oauth2client.locked_file._FcntlOpener-class.html#unlock_and_close,Method oauth2client.locked_file._Opener.unlock_and_close()=oauth2client.locked_file._Opener-class.html#unlock_and_close,Method oauth2client.locked_file._PosixOpener.unlock_and_close()=oauth2client.locked_file._PosixOpener-class.html#unlock_and_close"><a title="oauth2client.locked_file.LockedFile.unlock_and_close
+oauth2client.locked_file._FcntlOpener.unlock_and_close
+oauth2client.locked_file._Opener.unlock_and_close
+oauth2client.locked_file._PosixOpener.unlock_and_close" class="py-name" href="#" onclick="return doclink('link-20', 'unlock_and_close', 'link-20');">unlock_and_close</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
+</div></div><a name="L255"></a><tt class="py-lineno">255</tt> <tt class="py-line"> </tt><script type="text/javascript">
+<!--
+expandto(location.href);
+// -->
+</script>
+</pre>
+<br />
+<!-- ==================== NAVIGATION BAR ==================== -->
+<table class="navbar" border="0" width="100%" cellpadding="0"
+ bgcolor="#a0c0ff" cellspacing="0">
+ <tr valign="middle">
+
+ <!-- Tree link -->
+ <th> <a
+ href="module-tree.html">Trees</a> </th>
+
+ <!-- Index link -->
+ <th> <a
+ href="identifier-index.html">Indices</a> </th>
+
+ <!-- Help link -->
+ <th> <a
+ href="help.html">Help</a> </th>
+
+ <th class="navbar" width="100%"></th>
+ </tr>
+</table>
+<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
+ </td>
+ <td align="right" class="footer">
+ <a target="mainFrame" href="http://epydoc.sourceforge.net"
+ >http://epydoc.sourceforge.net</a>
+ </td>
+ </tr>
+</table>
+
+<script type="text/javascript">
+ <!--
+ // Private objects are initially displayed (because if
+ // javascript is turned off then we want them to be
+ // visible); but by default, we want to hide them. So hide
+ // them unless we have a cookie that says to show them.
+ checkCookie();
+ // -->
+</script>
+</body>
+</html>
diff --git a/docs/epy/oauth2client.locked_file.AlreadyLockedException-class.html b/docs/epy/oauth2client.locked_file.AlreadyLockedException-class.html
new file mode 100644
index 0000000..50e0dba
--- /dev/null
+++ b/docs/epy/oauth2client.locked_file.AlreadyLockedException-class.html
@@ -0,0 +1,202 @@
+<?xml version="1.0" encoding="ascii"?>
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
+ "DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
+<head>
+ <title>oauth2client.locked_file.AlreadyLockedException</title>
+ <link rel="stylesheet" href="epydoc.css" type="text/css" />
+ <script type="text/javascript" src="epydoc.js"></script>
+</head>
+
+<body bgcolor="white" text="black" link="blue" vlink="#204080"
+ alink="#204080">
+<!-- ==================== NAVIGATION BAR ==================== -->
+<table class="navbar" border="0" width="100%" cellpadding="0"
+ bgcolor="#a0c0ff" cellspacing="0">
+ <tr valign="middle">
+
+ <!-- Tree link -->
+ <th> <a
+ href="module-tree.html">Trees</a> </th>
+
+ <!-- Index link -->
+ <th> <a
+ href="identifier-index.html">Indices</a> </th>
+
+ <!-- Help link -->
+ <th> <a
+ href="help.html">Help</a> </th>
+
+ <th class="navbar" width="100%"></th>
+ </tr>
+</table>
+<table width="100%" cellpadding="0" cellspacing="0">
+ <tr valign="top">
+ <td width="100%">
+ <span class="breadcrumbs">
+ <a href="oauth2client-module.html">Package oauth2client</a> ::
+ <a href="oauth2client.locked_file-module.html">Module locked_file</a> ::
+ Class AlreadyLockedException
+ </span>
+ </td>
+ <td>
+ <table cellpadding="0" cellspacing="0">
+ <!-- hide/show private -->
+ <tr><td align="right"><span class="options">[<a href="javascript:void(0);" class="privatelink"
+ onclick="toggle_private();">hide private</a>]</span></td></tr>
+ <tr><td align="right"><span class="options"
+ >[<a href="frames.html" target="_top">frames</a
+ >] | <a href="oauth2client.locked_file.AlreadyLockedException-class.html"
+ target="_top">no frames</a>]</span></td></tr>
+ </table>
+ </td>
+ </tr>
+</table>
+<!-- ==================== CLASS DESCRIPTION ==================== -->
+<h1 class="epydoc">Class AlreadyLockedException</h1><p class="nomargin-top"><span class="codelink"><a href="oauth2client.locked_file-pysrc.html#AlreadyLockedException">source code</a></span></p>
+<center>
+<center> <map id="uml_class_diagram_for_oauth2cl_35" name="uml_class_diagram_for_oauth2cl_35">
+<area shape="rect" href="oauth2client.locked_file.AlreadyLockedException-class.html" title="Trying to lock a file that has already been locked by the LockedFile." alt="" coords="21,379,168,411"/>
+<area shape="rect" href="javascript:void(0);" title="x.__init__(...) initializes x; see x.__class__.__doc__ for signature" alt="" coords="32,311,157,329"/>
+<area shape="rect" href="javascript:void(0);" title="exceptions.Exception.__new__" alt="" coords="32,329,157,348"/>
+<area shape="rect" href="javascript:void(0);" title="Common base class for all non-exit exceptions." alt="" coords="31,285,159,349"/>
+<area shape="rect" href="javascript:void(0);" title="exceptions.BaseException.args" alt="" coords="17,28,172,47"/>
+<area shape="rect" href="javascript:void(0);" title="exceptions.BaseException.message" alt="" coords="17,47,172,65"/>
+<area shape="rect" href="javascript:void(0);" title="x.__delattr__('name') <==> del x.name" alt="" coords="17,68,172,87"/>
+<area shape="rect" href="javascript:void(0);" title="x.__getattribute__('name') <==> x.name" alt="" coords="17,87,172,105"/>
+<area shape="rect" href="javascript:void(0);" title="x[y]" alt="" coords="17,105,172,124"/>
+<area shape="rect" href="javascript:void(0);" title="x[i:j]" alt="" coords="17,124,172,143"/>
+<area shape="rect" href="javascript:void(0);" title="helper for pickle" alt="" coords="17,143,172,161"/>
+<area shape="rect" href="javascript:void(0);" title="repr(x)" alt="" coords="17,161,172,180"/>
+<area shape="rect" href="javascript:void(0);" title="x.__setattr__('name', value) <==> x.name = value" alt="" coords="17,180,172,199"/>
+<area shape="rect" href="javascript:void(0);" title="exceptions.BaseException.__setstate__" alt="" coords="17,199,172,217"/>
+<area shape="rect" href="javascript:void(0);" title="str(x)" alt="" coords="17,217,172,236"/>
+<area shape="rect" href="javascript:void(0);" title="exceptions.BaseException.__unicode__" alt="" coords="17,236,172,255"/>
+<area shape="rect" href="javascript:void(0);" title="Common base class for all exceptions" alt="" coords="16,11,173,256"/>
+</map>
+ <img src="uml_class_diagram_for_oauth2cl_35.gif" alt='' usemap="#uml_class_diagram_for_oauth2cl_35" ismap="ismap" class="graph-without-title" />
+</center>
+</center>
+<hr />
+<pre class="literalblock">
+Trying to lock a file that has already been locked by the LockedFile.
+
+</pre>
+
+<!-- ==================== INSTANCE METHODS ==================== -->
+<a name="section-InstanceMethods"></a>
+<table class="summary" border="1" cellpadding="3"
+ cellspacing="0" width="100%" bgcolor="white">
+<tr bgcolor="#70b0f0" class="table-header">
+ <td colspan="2" class="table-header">
+ <table border="0" cellpadding="0" cellspacing="0" width="100%">
+ <tr valign="top">
+ <td align="left"><span class="table-header">Instance Methods</span></td>
+ <td align="right" valign="top"
+ ><span class="options">[<a href="#section-InstanceMethods"
+ class="privatelink" onclick="toggle_private();"
+ >hide private</a>]</span></td>
+ </tr>
+ </table>
+ </td>
+</tr>
+ <tr>
+ <td colspan="2" class="summary">
+ <p class="indent-wrapped-lines"><b>Inherited from <code>exceptions.Exception</code></b>:
+ <code>__init__</code>,
+ <code>__new__</code>
+ </p>
+ <p class="indent-wrapped-lines"><b>Inherited from <code>exceptions.BaseException</code></b>:
+ <code>__delattr__</code>,
+ <code>__getattribute__</code>,
+ <code>__getitem__</code>,
+ <code>__getslice__</code>,
+ <code>__reduce__</code>,
+ <code>__repr__</code>,
+ <code>__setattr__</code>,
+ <code>__setstate__</code>,
+ <code>__str__</code>,
+ <code>__unicode__</code>
+ </p>
+ <p class="indent-wrapped-lines"><b>Inherited from <code>object</code></b>:
+ <code>__format__</code>,
+ <code>__hash__</code>,
+ <code>__reduce_ex__</code>,
+ <code>__sizeof__</code>,
+ <code>__subclasshook__</code>
+ </p>
+ </td>
+ </tr>
+</table>
+<!-- ==================== PROPERTIES ==================== -->
+<a name="section-Properties"></a>
+<table class="summary" border="1" cellpadding="3"
+ cellspacing="0" width="100%" bgcolor="white">
+<tr bgcolor="#70b0f0" class="table-header">
+ <td colspan="2" class="table-header">
+ <table border="0" cellpadding="0" cellspacing="0" width="100%">
+ <tr valign="top">
+ <td align="left"><span class="table-header">Properties</span></td>
+ <td align="right" valign="top"
+ ><span class="options">[<a href="#section-Properties"
+ class="privatelink" onclick="toggle_private();"
+ >hide private</a>]</span></td>
+ </tr>
+ </table>
+ </td>
+</tr>
+ <tr>
+ <td colspan="2" class="summary">
+ <p class="indent-wrapped-lines"><b>Inherited from <code>exceptions.BaseException</code></b>:
+ <code>args</code>,
+ <code>message</code>
+ </p>
+ <p class="indent-wrapped-lines"><b>Inherited from <code>object</code></b>:
+ <code>__class__</code>
+ </p>
+ </td>
+ </tr>
+</table>
+<!-- ==================== NAVIGATION BAR ==================== -->
+<table class="navbar" border="0" width="100%" cellpadding="0"
+ bgcolor="#a0c0ff" cellspacing="0">
+ <tr valign="middle">
+
+ <!-- Tree link -->
+ <th> <a
+ href="module-tree.html">Trees</a> </th>
+
+ <!-- Index link -->
+ <th> <a
+ href="identifier-index.html">Indices</a> </th>
+
+ <!-- Help link -->
+ <th> <a
+ href="help.html">Help</a> </th>
+
+ <th class="navbar" width="100%"></th>
+ </tr>
+</table>
+<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:58 2012
+ </td>
+ <td align="right" class="footer">
+ <a target="mainFrame" href="http://epydoc.sourceforge.net"
+ >http://epydoc.sourceforge.net</a>
+ </td>
+ </tr>
+</table>
+
+<script type="text/javascript">
+ <!--
+ // Private objects are initially displayed (because if
+ // javascript is turned off then we want them to be
+ // visible); but by default, we want to hide them. So hide
+ // them unless we have a cookie that says to show them.
+ checkCookie();
+ // -->
+</script>
+</body>
+</html>
diff --git a/docs/epy/oauth2client.locked_file.LockedFile-class.html b/docs/epy/oauth2client.locked_file.LockedFile-class.html
new file mode 100644
index 0000000..1345b66
--- /dev/null
+++ b/docs/epy/oauth2client.locked_file.LockedFile-class.html
@@ -0,0 +1,374 @@
+<?xml version="1.0" encoding="ascii"?>
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
+ "DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
+<head>
+ <title>oauth2client.locked_file.LockedFile</title>
+ <link rel="stylesheet" href="epydoc.css" type="text/css" />
+ <script type="text/javascript" src="epydoc.js"></script>
+</head>
+
+<body bgcolor="white" text="black" link="blue" vlink="#204080"
+ alink="#204080">
+<!-- ==================== NAVIGATION BAR ==================== -->
+<table class="navbar" border="0" width="100%" cellpadding="0"
+ bgcolor="#a0c0ff" cellspacing="0">
+ <tr valign="middle">
+
+ <!-- Tree link -->
+ <th> <a
+ href="module-tree.html">Trees</a> </th>
+
+ <!-- Index link -->
+ <th> <a
+ href="identifier-index.html">Indices</a> </th>
+
+ <!-- Help link -->
+ <th> <a
+ href="help.html">Help</a> </th>
+
+ <th class="navbar" width="100%"></th>
+ </tr>
+</table>
+<table width="100%" cellpadding="0" cellspacing="0">
+ <tr valign="top">
+ <td width="100%">
+ <span class="breadcrumbs">
+ <a href="oauth2client-module.html">Package oauth2client</a> ::
+ <a href="oauth2client.locked_file-module.html">Module locked_file</a> ::
+ Class LockedFile
+ </span>
+ </td>
+ <td>
+ <table cellpadding="0" cellspacing="0">
+ <!-- hide/show private -->
+ <tr><td align="right"><span class="options">[<a href="javascript:void(0);" class="privatelink"
+ onclick="toggle_private();">hide private</a>]</span></td></tr>
+ <tr><td align="right"><span class="options"
+ >[<a href="frames.html" target="_top">frames</a
+ >] | <a href="oauth2client.locked_file.LockedFile-class.html"
+ target="_top">no frames</a>]</span></td></tr>
+ </table>
+ </td>
+ </tr>
+</table>
+<!-- ==================== CLASS DESCRIPTION ==================== -->
+<h1 class="epydoc">Class LockedFile</h1><p class="nomargin-top"><span class="codelink"><a href="oauth2client.locked_file-pysrc.html#LockedFile">source code</a></span></p>
+<center>
+<center> <map id="uml_class_diagram_for_oauth2cl_36" name="uml_class_diagram_for_oauth2cl_36">
+<area shape="rect" href="oauth2client.locked_file.LockedFile-class.html#__init__" title="Construct a LockedFile." alt="" coords="17,36,377,55"/>
+<area shape="rect" href="oauth2client.locked_file.LockedFile-class.html#filename" title="Return the filename we were constructed with." alt="" coords="17,55,377,73"/>
+<area shape="rect" href="oauth2client.locked_file.LockedFile-class.html#file_handle" title="Return the file_handle to the opened file." alt="" coords="17,73,377,92"/>
+<area shape="rect" href="oauth2client.locked_file.LockedFile-class.html#is_locked" title="Return whether we successfully locked the file." alt="" coords="17,92,377,111"/>
+<area shape="rect" href="oauth2client.locked_file.LockedFile-class.html#open_and_lock" title="Open the file, trying to lock it." alt="" coords="17,111,377,129"/>
+<area shape="rect" href="oauth2client.locked_file.LockedFile-class.html#unlock_and_close" title="Unlock and close a file." alt="" coords="17,129,377,148"/>
+<area shape="rect" href="oauth2client.locked_file.LockedFile-class.html" title="Represent a file that has exclusive access." alt="" coords="16,11,379,149"/>
+</map>
+ <img src="uml_class_diagram_for_oauth2cl_36.gif" alt='' usemap="#uml_class_diagram_for_oauth2cl_36" ismap="ismap" class="graph-without-title" />
+</center>
+</center>
+<hr />
+<pre class="literalblock">
+Represent a file that has exclusive access.
+
+</pre>
+
+<!-- ==================== INSTANCE METHODS ==================== -->
+<a name="section-InstanceMethods"></a>
+<table class="summary" border="1" cellpadding="3"
+ cellspacing="0" width="100%" bgcolor="white">
+<tr bgcolor="#70b0f0" class="table-header">
+ <td colspan="2" class="table-header">
+ <table border="0" cellpadding="0" cellspacing="0" width="100%">
+ <tr valign="top">
+ <td align="left"><span class="table-header">Instance Methods</span></td>
+ <td align="right" valign="top"
+ ><span class="options">[<a href="#section-InstanceMethods"
+ class="privatelink" onclick="toggle_private();"
+ >hide private</a>]</span></td>
+ </tr>
+ </table>
+ </td>
+</tr>
+<tr>
+ <td width="15%" align="right" valign="top" class="summary">
+ <span class="summary-type"> </span>
+ </td><td class="summary">
+ <table width="100%" cellpadding="0" cellspacing="0" border="0">
+ <tr>
+ <td><span class="summary-sig"><a href="oauth2client.locked_file.LockedFile-class.html#__init__" class="summary-sig-name">__init__</a>(<span class="summary-sig-arg">self</span>,
+ <span class="summary-sig-arg">filename</span>,
+ <span class="summary-sig-arg">mode</span>,
+ <span class="summary-sig-arg">fallback_mode</span>,
+ <span class="summary-sig-arg">use_fcntl</span>=<span class="summary-sig-default">True</span>)</span><br />
+ Construct a LockedFile.</td>
+ <td align="right" valign="top">
+ <span class="codelink"><a href="oauth2client.locked_file-pysrc.html#LockedFile.__init__">source code</a></span>
+
+ </td>
+ </tr>
+ </table>
+
+ </td>
+ </tr>
+<tr>
+ <td width="15%" align="right" valign="top" class="summary">
+ <span class="summary-type"> </span>
+ </td><td class="summary">
+ <table width="100%" cellpadding="0" cellspacing="0" border="0">
+ <tr>
+ <td><span class="summary-sig"><a name="filename"></a><span class="summary-sig-name">filename</span>(<span class="summary-sig-arg">self</span>)</span><br />
+ Return the filename we were constructed with.</td>
+ <td align="right" valign="top">
+ <span class="codelink"><a href="oauth2client.locked_file-pysrc.html#LockedFile.filename">source code</a></span>
+
+ </td>
+ </tr>
+ </table>
+
+ </td>
+ </tr>
+<tr>
+ <td width="15%" align="right" valign="top" class="summary">
+ <span class="summary-type"> </span>
+ </td><td class="summary">
+ <table width="100%" cellpadding="0" cellspacing="0" border="0">
+ <tr>
+ <td><span class="summary-sig"><a name="file_handle"></a><span class="summary-sig-name">file_handle</span>(<span class="summary-sig-arg">self</span>)</span><br />
+ Return the file_handle to the opened file.</td>
+ <td align="right" valign="top">
+ <span class="codelink"><a href="oauth2client.locked_file-pysrc.html#LockedFile.file_handle">source code</a></span>
+
+ </td>
+ </tr>
+ </table>
+
+ </td>
+ </tr>
+<tr>
+ <td width="15%" align="right" valign="top" class="summary">
+ <span class="summary-type"> </span>
+ </td><td class="summary">
+ <table width="100%" cellpadding="0" cellspacing="0" border="0">
+ <tr>
+ <td><span class="summary-sig"><a name="is_locked"></a><span class="summary-sig-name">is_locked</span>(<span class="summary-sig-arg">self</span>)</span><br />
+ Return whether we successfully locked the file.</td>
+ <td align="right" valign="top">
+ <span class="codelink"><a href="oauth2client.locked_file-pysrc.html#LockedFile.is_locked">source code</a></span>
+
+ </td>
+ </tr>
+ </table>
+
+ </td>
+ </tr>
+<tr>
+ <td width="15%" align="right" valign="top" class="summary">
+ <span class="summary-type"> </span>
+ </td><td class="summary">
+ <table width="100%" cellpadding="0" cellspacing="0" border="0">
+ <tr>
+ <td><span class="summary-sig"><a href="oauth2client.locked_file.LockedFile-class.html#open_and_lock" class="summary-sig-name">open_and_lock</a>(<span class="summary-sig-arg">self</span>,
+ <span class="summary-sig-arg">timeout</span>=<span class="summary-sig-default">0</span>,
+ <span class="summary-sig-arg">delay</span>=<span class="summary-sig-default">0.05</span>)</span><br />
+ Open the file, trying to lock it.</td>
+ <td align="right" valign="top">
+ <span class="codelink"><a href="oauth2client.locked_file-pysrc.html#LockedFile.open_and_lock">source code</a></span>
+
+ </td>
+ </tr>
+ </table>
+
+ </td>
+ </tr>
+<tr>
+ <td width="15%" align="right" valign="top" class="summary">
+ <span class="summary-type"> </span>
+ </td><td class="summary">
+ <table width="100%" cellpadding="0" cellspacing="0" border="0">
+ <tr>
+ <td><span class="summary-sig"><a name="unlock_and_close"></a><span class="summary-sig-name">unlock_and_close</span>(<span class="summary-sig-arg">self</span>)</span><br />
+ Unlock and close a file.</td>
+ <td align="right" valign="top">
+ <span class="codelink"><a href="oauth2client.locked_file-pysrc.html#LockedFile.unlock_and_close">source code</a></span>
+
+ </td>
+ </tr>
+ </table>
+
+ </td>
+ </tr>
+ <tr>
+ <td colspan="2" class="summary">
+ <p class="indent-wrapped-lines"><b>Inherited from <code>object</code></b>:
+ <code>__delattr__</code>,
+ <code>__format__</code>,
+ <code>__getattribute__</code>,
+ <code>__hash__</code>,
+ <code>__new__</code>,
+ <code>__reduce__</code>,
+ <code>__reduce_ex__</code>,
+ <code>__repr__</code>,
+ <code>__setattr__</code>,
+ <code>__sizeof__</code>,
+ <code>__str__</code>,
+ <code>__subclasshook__</code>
+ </p>
+ </td>
+ </tr>
+</table>
+<!-- ==================== PROPERTIES ==================== -->
+<a name="section-Properties"></a>
+<table class="summary" border="1" cellpadding="3"
+ cellspacing="0" width="100%" bgcolor="white">
+<tr bgcolor="#70b0f0" class="table-header">
+ <td colspan="2" class="table-header">
+ <table border="0" cellpadding="0" cellspacing="0" width="100%">
+ <tr valign="top">
+ <td align="left"><span class="table-header">Properties</span></td>
+ <td align="right" valign="top"
+ ><span class="options">[<a href="#section-Properties"
+ class="privatelink" onclick="toggle_private();"
+ >hide private</a>]</span></td>
+ </tr>
+ </table>
+ </td>
+</tr>
+ <tr>
+ <td colspan="2" class="summary">
+ <p class="indent-wrapped-lines"><b>Inherited from <code>object</code></b>:
+ <code>__class__</code>
+ </p>
+ </td>
+ </tr>
+</table>
+<!-- ==================== METHOD DETAILS ==================== -->
+<a name="section-MethodDetails"></a>
+<table class="details" border="1" cellpadding="3"
+ cellspacing="0" width="100%" bgcolor="white">
+<tr bgcolor="#70b0f0" class="table-header">
+ <td colspan="2" class="table-header">
+ <table border="0" cellpadding="0" cellspacing="0" width="100%">
+ <tr valign="top">
+ <td align="left"><span class="table-header">Method Details</span></td>
+ <td align="right" valign="top"
+ ><span class="options">[<a href="#section-MethodDetails"
+ class="privatelink" onclick="toggle_private();"
+ >hide private</a>]</span></td>
+ </tr>
+ </table>
+ </td>
+</tr>
+</table>
+<a name="__init__"></a>
+<div>
+<table class="details" border="1" cellpadding="3"
+ cellspacing="0" width="100%" bgcolor="white">
+<tr><td>
+ <table width="100%" cellpadding="0" cellspacing="0" border="0">
+ <tr valign="top"><td>
+ <h3 class="epydoc"><span class="sig"><span class="sig-name">__init__</span>(<span class="sig-arg">self</span>,
+ <span class="sig-arg">filename</span>,
+ <span class="sig-arg">mode</span>,
+ <span class="sig-arg">fallback_mode</span>,
+ <span class="sig-arg">use_fcntl</span>=<span class="sig-default">True</span>)</span>
+ <br /><em class="fname">(Constructor)</em>
+ </h3>
+ </td><td align="right" valign="top"
+ ><span class="codelink"><a href="oauth2client.locked_file-pysrc.html#LockedFile.__init__">source code</a></span>
+ </td>
+ </tr></table>
+
+ <pre class="literalblock">
+Construct a LockedFile.
+
+Args:
+ filename: string, The path of the file to open.
+ mode: string, The mode to try to open the file with.
+ fallback_mode: string, The mode to use if locking fails.
+ use_fcntl: string, Whether or not fcntl-based locking should be used.
+
+</pre>
+ <dl class="fields">
+ <dt>Overrides:
+ object.__init__
+ </dt>
+ </dl>
+</td></tr></table>
+</div>
+<a name="open_and_lock"></a>
+<div>
+<table class="details" border="1" cellpadding="3"
+ cellspacing="0" width="100%" bgcolor="white">
+<tr><td>
+ <table width="100%" cellpadding="0" cellspacing="0" border="0">
+ <tr valign="top"><td>
+ <h3 class="epydoc"><span class="sig"><span class="sig-name">open_and_lock</span>(<span class="sig-arg">self</span>,
+ <span class="sig-arg">timeout</span>=<span class="sig-default">0</span>,
+ <span class="sig-arg">delay</span>=<span class="sig-default">0.05</span>)</span>
+ </h3>
+ </td><td align="right" valign="top"
+ ><span class="codelink"><a href="oauth2client.locked_file-pysrc.html#LockedFile.open_and_lock">source code</a></span>
+ </td>
+ </tr></table>
+
+ <pre class="literalblock">
+Open the file, trying to lock it.
+
+Args:
+ timeout: float, The number of seconds to try to acquire the lock.
+ delay: float, The number of seconds to wait between retry attempts.
+
+Raises:
+ AlreadyLockedException: if the lock is already acquired.
+ IOError: if the open fails.
+
+</pre>
+ <dl class="fields">
+ </dl>
+</td></tr></table>
+</div>
+<br />
+<!-- ==================== NAVIGATION BAR ==================== -->
+<table class="navbar" border="0" width="100%" cellpadding="0"
+ bgcolor="#a0c0ff" cellspacing="0">
+ <tr valign="middle">
+
+ <!-- Tree link -->
+ <th> <a
+ href="module-tree.html">Trees</a> </th>
+
+ <!-- Index link -->
+ <th> <a
+ href="identifier-index.html">Indices</a> </th>
+
+ <!-- Help link -->
+ <th> <a
+ href="help.html">Help</a> </th>
+
+ <th class="navbar" width="100%"></th>
+ </tr>
+</table>
+<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:58 2012
+ </td>
+ <td align="right" class="footer">
+ <a target="mainFrame" href="http://epydoc.sourceforge.net"
+ >http://epydoc.sourceforge.net</a>
+ </td>
+ </tr>
+</table>
+
+<script type="text/javascript">
+ <!--
+ // Private objects are initially displayed (because if
+ // javascript is turned off then we want them to be
+ // visible); but by default, we want to hide them. So hide
+ // them unless we have a cookie that says to show them.
+ checkCookie();
+ // -->
+</script>
+</body>
+</html>
diff --git a/docs/epy/oauth2client.locked_file._FcntlOpener-class.html b/docs/epy/oauth2client.locked_file._FcntlOpener-class.html
new file mode 100644
index 0000000..f6c481c
--- /dev/null
+++ b/docs/epy/oauth2client.locked_file._FcntlOpener-class.html
@@ -0,0 +1,301 @@
+<?xml version="1.0" encoding="ascii"?>
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
+ "DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
+<head>
+ <title>oauth2client.locked_file._FcntlOpener</title>
+ <link rel="stylesheet" href="epydoc.css" type="text/css" />
+ <script type="text/javascript" src="epydoc.js"></script>
+</head>
+
+<body bgcolor="white" text="black" link="blue" vlink="#204080"
+ alink="#204080">
+<!-- ==================== NAVIGATION BAR ==================== -->
+<table class="navbar" border="0" width="100%" cellpadding="0"
+ bgcolor="#a0c0ff" cellspacing="0">
+ <tr valign="middle">
+
+ <!-- Tree link -->
+ <th> <a
+ href="module-tree.html">Trees</a> </th>
+
+ <!-- Index link -->
+ <th> <a
+ href="identifier-index.html">Indices</a> </th>
+
+ <!-- Help link -->
+ <th> <a
+ href="help.html">Help</a> </th>
+
+ <th class="navbar" width="100%"></th>
+ </tr>
+</table>
+<table width="100%" cellpadding="0" cellspacing="0">
+ <tr valign="top">
+ <td width="100%">
+ <span class="breadcrumbs">
+ <a href="oauth2client-module.html">Package oauth2client</a> ::
+ <a href="oauth2client.locked_file-module.html">Module locked_file</a> ::
+ Class _FcntlOpener
+ </span>
+ </td>
+ <td>
+ <table cellpadding="0" cellspacing="0">
+ <!-- hide/show private -->
+ <tr><td align="right"><span class="options">[<a href="javascript:void(0);" class="privatelink"
+ onclick="toggle_private();">hide private</a>]</span></td></tr>
+ <tr><td align="right"><span class="options"
+ >[<a href="frames.html" target="_top">frames</a
+ >] | <a href="oauth2client.locked_file._FcntlOpener-class.html"
+ target="_top">no frames</a>]</span></td></tr>
+ </table>
+ </td>
+ </tr>
+</table>
+<!-- ==================== CLASS DESCRIPTION ==================== -->
+<h1 class="epydoc">Class _FcntlOpener</h1><p class="nomargin-top"><span class="codelink"><a href="oauth2client.locked_file-pysrc.html#_FcntlOpener">source code</a></span></p>
+<center>
+<center> <map id="uml_class_diagram_for_oauth2cl_37" name="uml_class_diagram_for_oauth2cl_37">
+<area shape="rect" href="oauth2client.locked_file._FcntlOpener-class.html#open_and_lock" title="Open the file and lock it." alt="" coords="45,167,256,185"/>
+<area shape="rect" href="oauth2client.locked_file._FcntlOpener-class.html#unlock_and_close" title="Close and unlock the file using the fcntl.lockf primitive." alt="" coords="45,185,256,204"/>
+<area shape="rect" href="oauth2client.locked_file._FcntlOpener-class.html" title="Open, lock, and unlock a file using fcntl.lockf." alt="" coords="44,141,257,205"/>
+<area shape="rect" href="oauth2client.locked_file._Opener-class.html#__init__" title="Create an Opener." alt="" coords="17,36,284,55"/>
+<area shape="rect" href="oauth2client.locked_file._Opener-class.html#is_locked" title="Was the file locked." alt="" coords="17,55,284,73"/>
+<area shape="rect" href="oauth2client.locked_file._Opener-class.html#file_handle" title="The file handle to the file." alt="" coords="17,73,284,92"/>
+<area shape="rect" href="oauth2client.locked_file._Opener-class.html#filename" title="The filename that is being locked." alt="" coords="17,92,284,111"/>
+<area shape="rect" href="oauth2client.locked_file._Opener-class.html" title="Base class for different locking primitives." alt="" coords="16,11,285,112"/>
+</map>
+ <img src="uml_class_diagram_for_oauth2cl_37.gif" alt='' usemap="#uml_class_diagram_for_oauth2cl_37" ismap="ismap" class="graph-without-title" />
+</center>
+</center>
+<hr />
+<pre class="literalblock">
+Open, lock, and unlock a file using fcntl.lockf.
+
+</pre>
+
+<!-- ==================== INSTANCE METHODS ==================== -->
+<a name="section-InstanceMethods"></a>
+<table class="summary" border="1" cellpadding="3"
+ cellspacing="0" width="100%" bgcolor="white">
+<tr bgcolor="#70b0f0" class="table-header">
+ <td colspan="2" class="table-header">
+ <table border="0" cellpadding="0" cellspacing="0" width="100%">
+ <tr valign="top">
+ <td align="left"><span class="table-header">Instance Methods</span></td>
+ <td align="right" valign="top"
+ ><span class="options">[<a href="#section-InstanceMethods"
+ class="privatelink" onclick="toggle_private();"
+ >hide private</a>]</span></td>
+ </tr>
+ </table>
+ </td>
+</tr>
+<tr>
+ <td width="15%" align="right" valign="top" class="summary">
+ <span class="summary-type"> </span>
+ </td><td class="summary">
+ <table width="100%" cellpadding="0" cellspacing="0" border="0">
+ <tr>
+ <td><span class="summary-sig"><a href="oauth2client.locked_file._FcntlOpener-class.html#open_and_lock" class="summary-sig-name">open_and_lock</a>(<span class="summary-sig-arg">self</span>,
+ <span class="summary-sig-arg">timeout</span>,
+ <span class="summary-sig-arg">delay</span>)</span><br />
+ Open the file and lock it.</td>
+ <td align="right" valign="top">
+ <span class="codelink"><a href="oauth2client.locked_file-pysrc.html#_FcntlOpener.open_and_lock">source code</a></span>
+
+ </td>
+ </tr>
+ </table>
+
+ </td>
+ </tr>
+<tr>
+ <td width="15%" align="right" valign="top" class="summary">
+ <span class="summary-type"> </span>
+ </td><td class="summary">
+ <table width="100%" cellpadding="0" cellspacing="0" border="0">
+ <tr>
+ <td><span class="summary-sig"><a href="oauth2client.locked_file._FcntlOpener-class.html#unlock_and_close" class="summary-sig-name">unlock_and_close</a>(<span class="summary-sig-arg">self</span>)</span><br />
+ Close and unlock the file using the fcntl.lockf primitive.</td>
+ <td align="right" valign="top">
+ <span class="codelink"><a href="oauth2client.locked_file-pysrc.html#_FcntlOpener.unlock_and_close">source code</a></span>
+
+ </td>
+ </tr>
+ </table>
+
+ </td>
+ </tr>
+ <tr>
+ <td colspan="2" class="summary">
+ <p class="indent-wrapped-lines"><b>Inherited from <code><a href="oauth2client.locked_file._Opener-class.html" onclick="show_private();">_Opener</a></code></b>:
+ <code><a href="oauth2client.locked_file._Opener-class.html#__init__">__init__</a></code>,
+ <code><a href="oauth2client.locked_file._Opener-class.html#file_handle">file_handle</a></code>,
+ <code><a href="oauth2client.locked_file._Opener-class.html#filename">filename</a></code>,
+ <code><a href="oauth2client.locked_file._Opener-class.html#is_locked">is_locked</a></code>
+ </p>
+ <p class="indent-wrapped-lines"><b>Inherited from <code>object</code></b>:
+ <code>__delattr__</code>,
+ <code>__format__</code>,
+ <code>__getattribute__</code>,
+ <code>__hash__</code>,
+ <code>__new__</code>,
+ <code>__reduce__</code>,
+ <code>__reduce_ex__</code>,
+ <code>__repr__</code>,
+ <code>__setattr__</code>,
+ <code>__sizeof__</code>,
+ <code>__str__</code>,
+ <code>__subclasshook__</code>
+ </p>
+ </td>
+ </tr>
+</table>
+<!-- ==================== PROPERTIES ==================== -->
+<a name="section-Properties"></a>
+<table class="summary" border="1" cellpadding="3"
+ cellspacing="0" width="100%" bgcolor="white">
+<tr bgcolor="#70b0f0" class="table-header">
+ <td colspan="2" class="table-header">
+ <table border="0" cellpadding="0" cellspacing="0" width="100%">
+ <tr valign="top">
+ <td align="left"><span class="table-header">Properties</span></td>
+ <td align="right" valign="top"
+ ><span class="options">[<a href="#section-Properties"
+ class="privatelink" onclick="toggle_private();"
+ >hide private</a>]</span></td>
+ </tr>
+ </table>
+ </td>
+</tr>
+ <tr>
+ <td colspan="2" class="summary">
+ <p class="indent-wrapped-lines"><b>Inherited from <code>object</code></b>:
+ <code>__class__</code>
+ </p>
+ </td>
+ </tr>
+</table>
+<!-- ==================== METHOD DETAILS ==================== -->
+<a name="section-MethodDetails"></a>
+<table class="details" border="1" cellpadding="3"
+ cellspacing="0" width="100%" bgcolor="white">
+<tr bgcolor="#70b0f0" class="table-header">
+ <td colspan="2" class="table-header">
+ <table border="0" cellpadding="0" cellspacing="0" width="100%">
+ <tr valign="top">
+ <td align="left"><span class="table-header">Method Details</span></td>
+ <td align="right" valign="top"
+ ><span class="options">[<a href="#section-MethodDetails"
+ class="privatelink" onclick="toggle_private();"
+ >hide private</a>]</span></td>
+ </tr>
+ </table>
+ </td>
+</tr>
+</table>
+<a name="open_and_lock"></a>
+<div>
+<table class="details" border="1" cellpadding="3"
+ cellspacing="0" width="100%" bgcolor="white">
+<tr><td>
+ <table width="100%" cellpadding="0" cellspacing="0" border="0">
+ <tr valign="top"><td>
+ <h3 class="epydoc"><span class="sig"><span class="sig-name">open_and_lock</span>(<span class="sig-arg">self</span>,
+ <span class="sig-arg">timeout</span>,
+ <span class="sig-arg">delay</span>)</span>
+ </h3>
+ </td><td align="right" valign="top"
+ ><span class="codelink"><a href="oauth2client.locked_file-pysrc.html#_FcntlOpener.open_and_lock">source code</a></span>
+ </td>
+ </tr></table>
+
+ <pre class="literalblock">
+Open the file and lock it.
+
+Args:
+ timeout: float, How long to try to lock for.
+ delay: float, How long to wait between retries
+
+Raises:
+ AlreadyLockedException: if the lock is already acquired.
+ IOError: if the open fails.
+
+</pre>
+ <dl class="fields">
+ <dt>Overrides:
+ <a href="oauth2client.locked_file._Opener-class.html#open_and_lock">_Opener.open_and_lock</a>
+ </dt>
+ </dl>
+</td></tr></table>
+</div>
+<a name="unlock_and_close"></a>
+<div>
+<table class="details" border="1" cellpadding="3"
+ cellspacing="0" width="100%" bgcolor="white">
+<tr><td>
+ <table width="100%" cellpadding="0" cellspacing="0" border="0">
+ <tr valign="top"><td>
+ <h3 class="epydoc"><span class="sig"><span class="sig-name">unlock_and_close</span>(<span class="sig-arg">self</span>)</span>
+ </h3>
+ </td><td align="right" valign="top"
+ ><span class="codelink"><a href="oauth2client.locked_file-pysrc.html#_FcntlOpener.unlock_and_close">source code</a></span>
+ </td>
+ </tr></table>
+
+ <pre class="literalblock">
+Close and unlock the file using the fcntl.lockf primitive.
+
+</pre>
+ <dl class="fields">
+ <dt>Overrides:
+ <a href="oauth2client.locked_file._Opener-class.html#unlock_and_close">_Opener.unlock_and_close</a>
+ </dt>
+ </dl>
+</td></tr></table>
+</div>
+<br />
+<!-- ==================== NAVIGATION BAR ==================== -->
+<table class="navbar" border="0" width="100%" cellpadding="0"
+ bgcolor="#a0c0ff" cellspacing="0">
+ <tr valign="middle">
+
+ <!-- Tree link -->
+ <th> <a
+ href="module-tree.html">Trees</a> </th>
+
+ <!-- Index link -->
+ <th> <a
+ href="identifier-index.html">Indices</a> </th>
+
+ <!-- Help link -->
+ <th> <a
+ href="help.html">Help</a> </th>
+
+ <th class="navbar" width="100%"></th>
+ </tr>
+</table>
+<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:58 2012
+ </td>
+ <td align="right" class="footer">
+ <a target="mainFrame" href="http://epydoc.sourceforge.net"
+ >http://epydoc.sourceforge.net</a>
+ </td>
+ </tr>
+</table>
+
+<script type="text/javascript">
+ <!--
+ // Private objects are initially displayed (because if
+ // javascript is turned off then we want them to be
+ // visible); but by default, we want to hide them. So hide
+ // them unless we have a cookie that says to show them.
+ checkCookie();
+ // -->
+</script>
+</body>
+</html>
diff --git a/docs/epy/oauth2client.locked_file._Opener-class.html b/docs/epy/oauth2client.locked_file._Opener-class.html
new file mode 100644
index 0000000..c395e7b
--- /dev/null
+++ b/docs/epy/oauth2client.locked_file._Opener-class.html
@@ -0,0 +1,402 @@
+<?xml version="1.0" encoding="ascii"?>
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
+ "DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
+<head>
+ <title>oauth2client.locked_file._Opener</title>
+ <link rel="stylesheet" href="epydoc.css" type="text/css" />
+ <script type="text/javascript" src="epydoc.js"></script>
+</head>
+
+<body bgcolor="white" text="black" link="blue" vlink="#204080"
+ alink="#204080">
+<!-- ==================== NAVIGATION BAR ==================== -->
+<table class="navbar" border="0" width="100%" cellpadding="0"
+ bgcolor="#a0c0ff" cellspacing="0">
+ <tr valign="middle">
+
+ <!-- Tree link -->
+ <th> <a
+ href="module-tree.html">Trees</a> </th>
+
+ <!-- Index link -->
+ <th> <a
+ href="identifier-index.html">Indices</a> </th>
+
+ <!-- Help link -->
+ <th> <a
+ href="help.html">Help</a> </th>
+
+ <th class="navbar" width="100%"></th>
+ </tr>
+</table>
+<table width="100%" cellpadding="0" cellspacing="0">
+ <tr valign="top">
+ <td width="100%">
+ <span class="breadcrumbs">
+ <a href="oauth2client-module.html">Package oauth2client</a> ::
+ <a href="oauth2client.locked_file-module.html">Module locked_file</a> ::
+ Class _Opener
+ </span>
+ </td>
+ <td>
+ <table cellpadding="0" cellspacing="0">
+ <!-- hide/show private -->
+ <tr><td align="right"><span class="options">[<a href="javascript:void(0);" class="privatelink"
+ onclick="toggle_private();">hide private</a>]</span></td></tr>
+ <tr><td align="right"><span class="options"
+ >[<a href="frames.html" target="_top">frames</a
+ >] | <a href="oauth2client.locked_file._Opener-class.html"
+ target="_top">no frames</a>]</span></td></tr>
+ </table>
+ </td>
+ </tr>
+</table>
+<!-- ==================== CLASS DESCRIPTION ==================== -->
+<h1 class="epydoc">Class _Opener</h1><p class="nomargin-top"><span class="codelink"><a href="oauth2client.locked_file-pysrc.html#_Opener">source code</a></span></p>
+<center>
+ <div class="private"><center> <map id="uml_class_diagram_for_oauth2cl_38" name="uml_class_diagram_for_oauth2cl_38">
+<area shape="rect" href="oauth2client.locked_file._Opener-class.html#__init__" title="Create an Opener." alt="" coords="17,36,284,55"/>
+<area shape="rect" href="oauth2client.locked_file._Opener-class.html#is_locked" title="Was the file locked." alt="" coords="17,55,284,73"/>
+<area shape="rect" href="oauth2client.locked_file._Opener-class.html#file_handle" title="The file handle to the file." alt="" coords="17,73,284,92"/>
+<area shape="rect" href="oauth2client.locked_file._Opener-class.html#filename" title="The filename that is being locked." alt="" coords="17,92,284,111"/>
+<area shape="rect" href="oauth2client.locked_file._Opener-class.html#open_and_lock" title="Open the file and lock it." alt="" coords="17,111,284,129"/>
+<area shape="rect" href="oauth2client.locked_file._Opener-class.html#unlock_and_close" title="Unlock and close the file." alt="" coords="17,129,284,148"/>
+<area shape="rect" href="oauth2client.locked_file._Opener-class.html" title="Base class for different locking primitives." alt="" coords="16,11,285,149"/>
+<area shape="rect" href="oauth2client.locked_file._FcntlOpener-class.html" title="Open, lock, and unlock a file using fcntl.lockf." alt="" coords="32,179,125,205"/>
+<area shape="rect" href="oauth2client.locked_file._PosixOpener-class.html" title="Lock files using Posix advisory lock files." alt="" coords="176,179,272,205"/>
+</map>
+ <img src="uml_class_diagram_for_oauth2cl_38.gif" alt='' usemap="#uml_class_diagram_for_oauth2cl_38" ismap="ismap" class="graph-without-title" />
+</center></div>
+ <div class="public" style="display:none"><center> <map id="uml_class_diagram_for_oauth2cl_39" name="uml_class_diagram_for_oauth2cl_39">
+<area shape="rect" href="oauth2client.locked_file._Opener-class.html#__init__" title="Create an Opener." alt="" coords="17,36,284,55"/>
+<area shape="rect" href="oauth2client.locked_file._Opener-class.html#is_locked" title="Was the file locked." alt="" coords="17,55,284,73"/>
+<area shape="rect" href="oauth2client.locked_file._Opener-class.html#file_handle" title="The file handle to the file." alt="" coords="17,73,284,92"/>
+<area shape="rect" href="oauth2client.locked_file._Opener-class.html#filename" title="The filename that is being locked." alt="" coords="17,92,284,111"/>
+<area shape="rect" href="oauth2client.locked_file._Opener-class.html#open_and_lock" title="Open the file and lock it." alt="" coords="17,111,284,129"/>
+<area shape="rect" href="oauth2client.locked_file._Opener-class.html#unlock_and_close" title="Unlock and close the file." alt="" coords="17,129,284,148"/>
+<area shape="rect" href="oauth2client.locked_file._Opener-class.html" title="Base class for different locking primitives." alt="" coords="16,11,285,149"/>
+</map>
+ <img src="uml_class_diagram_for_oauth2cl_39.gif" alt='' usemap="#uml_class_diagram_for_oauth2cl_39" ismap="ismap" class="graph-without-title" />
+</center></div>
+</center>
+<hr />
+<pre class="literalblock">
+Base class for different locking primitives.
+
+</pre>
+
+<!-- ==================== INSTANCE METHODS ==================== -->
+<a name="section-InstanceMethods"></a>
+<table class="summary" border="1" cellpadding="3"
+ cellspacing="0" width="100%" bgcolor="white">
+<tr bgcolor="#70b0f0" class="table-header">
+ <td colspan="2" class="table-header">
+ <table border="0" cellpadding="0" cellspacing="0" width="100%">
+ <tr valign="top">
+ <td align="left"><span class="table-header">Instance Methods</span></td>
+ <td align="right" valign="top"
+ ><span class="options">[<a href="#section-InstanceMethods"
+ class="privatelink" onclick="toggle_private();"
+ >hide private</a>]</span></td>
+ </tr>
+ </table>
+ </td>
+</tr>
+<tr>
+ <td width="15%" align="right" valign="top" class="summary">
+ <span class="summary-type"> </span>
+ </td><td class="summary">
+ <table width="100%" cellpadding="0" cellspacing="0" border="0">
+ <tr>
+ <td><span class="summary-sig"><a href="oauth2client.locked_file._Opener-class.html#__init__" class="summary-sig-name">__init__</a>(<span class="summary-sig-arg">self</span>,
+ <span class="summary-sig-arg">filename</span>,
+ <span class="summary-sig-arg">mode</span>,
+ <span class="summary-sig-arg">fallback_mode</span>)</span><br />
+ Create an Opener.</td>
+ <td align="right" valign="top">
+ <span class="codelink"><a href="oauth2client.locked_file-pysrc.html#_Opener.__init__">source code</a></span>
+
+ </td>
+ </tr>
+ </table>
+
+ </td>
+ </tr>
+<tr>
+ <td width="15%" align="right" valign="top" class="summary">
+ <span class="summary-type"> </span>
+ </td><td class="summary">
+ <table width="100%" cellpadding="0" cellspacing="0" border="0">
+ <tr>
+ <td><span class="summary-sig"><a name="is_locked"></a><span class="summary-sig-name">is_locked</span>(<span class="summary-sig-arg">self</span>)</span><br />
+ Was the file locked.</td>
+ <td align="right" valign="top">
+ <span class="codelink"><a href="oauth2client.locked_file-pysrc.html#_Opener.is_locked">source code</a></span>
+
+ </td>
+ </tr>
+ </table>
+
+ </td>
+ </tr>
+<tr>
+ <td width="15%" align="right" valign="top" class="summary">
+ <span class="summary-type"> </span>
+ </td><td class="summary">
+ <table width="100%" cellpadding="0" cellspacing="0" border="0">
+ <tr>
+ <td><span class="summary-sig"><a href="oauth2client.locked_file._Opener-class.html#file_handle" class="summary-sig-name">file_handle</a>(<span class="summary-sig-arg">self</span>)</span><br />
+ The file handle to the file.</td>
+ <td align="right" valign="top">
+ <span class="codelink"><a href="oauth2client.locked_file-pysrc.html#_Opener.file_handle">source code</a></span>
+
+ </td>
+ </tr>
+ </table>
+
+ </td>
+ </tr>
+<tr>
+ <td width="15%" align="right" valign="top" class="summary">
+ <span class="summary-type"> </span>
+ </td><td class="summary">
+ <table width="100%" cellpadding="0" cellspacing="0" border="0">
+ <tr>
+ <td><span class="summary-sig"><a name="filename"></a><span class="summary-sig-name">filename</span>(<span class="summary-sig-arg">self</span>)</span><br />
+ The filename that is being locked.</td>
+ <td align="right" valign="top">
+ <span class="codelink"><a href="oauth2client.locked_file-pysrc.html#_Opener.filename">source code</a></span>
+
+ </td>
+ </tr>
+ </table>
+
+ </td>
+ </tr>
+<tr>
+ <td width="15%" align="right" valign="top" class="summary">
+ <span class="summary-type"> </span>
+ </td><td class="summary">
+ <table width="100%" cellpadding="0" cellspacing="0" border="0">
+ <tr>
+ <td><span class="summary-sig"><a href="oauth2client.locked_file._Opener-class.html#open_and_lock" class="summary-sig-name">open_and_lock</a>(<span class="summary-sig-arg">self</span>,
+ <span class="summary-sig-arg">timeout</span>,
+ <span class="summary-sig-arg">delay</span>)</span><br />
+ Open the file and lock it.</td>
+ <td align="right" valign="top">
+ <span class="codelink"><a href="oauth2client.locked_file-pysrc.html#_Opener.open_and_lock">source code</a></span>
+
+ </td>
+ </tr>
+ </table>
+
+ </td>
+ </tr>
+<tr>
+ <td width="15%" align="right" valign="top" class="summary">
+ <span class="summary-type"> </span>
+ </td><td class="summary">
+ <table width="100%" cellpadding="0" cellspacing="0" border="0">
+ <tr>
+ <td><span class="summary-sig"><a name="unlock_and_close"></a><span class="summary-sig-name">unlock_and_close</span>(<span class="summary-sig-arg">self</span>)</span><br />
+ Unlock and close the file.</td>
+ <td align="right" valign="top">
+ <span class="codelink"><a href="oauth2client.locked_file-pysrc.html#_Opener.unlock_and_close">source code</a></span>
+
+ </td>
+ </tr>
+ </table>
+
+ </td>
+ </tr>
+ <tr>
+ <td colspan="2" class="summary">
+ <p class="indent-wrapped-lines"><b>Inherited from <code>object</code></b>:
+ <code>__delattr__</code>,
+ <code>__format__</code>,
+ <code>__getattribute__</code>,
+ <code>__hash__</code>,
+ <code>__new__</code>,
+ <code>__reduce__</code>,
+ <code>__reduce_ex__</code>,
+ <code>__repr__</code>,
+ <code>__setattr__</code>,
+ <code>__sizeof__</code>,
+ <code>__str__</code>,
+ <code>__subclasshook__</code>
+ </p>
+ </td>
+ </tr>
+</table>
+<!-- ==================== PROPERTIES ==================== -->
+<a name="section-Properties"></a>
+<table class="summary" border="1" cellpadding="3"
+ cellspacing="0" width="100%" bgcolor="white">
+<tr bgcolor="#70b0f0" class="table-header">
+ <td colspan="2" class="table-header">
+ <table border="0" cellpadding="0" cellspacing="0" width="100%">
+ <tr valign="top">
+ <td align="left"><span class="table-header">Properties</span></td>
+ <td align="right" valign="top"
+ ><span class="options">[<a href="#section-Properties"
+ class="privatelink" onclick="toggle_private();"
+ >hide private</a>]</span></td>
+ </tr>
+ </table>
+ </td>
+</tr>
+ <tr>
+ <td colspan="2" class="summary">
+ <p class="indent-wrapped-lines"><b>Inherited from <code>object</code></b>:
+ <code>__class__</code>
+ </p>
+ </td>
+ </tr>
+</table>
+<!-- ==================== METHOD DETAILS ==================== -->
+<a name="section-MethodDetails"></a>
+<table class="details" border="1" cellpadding="3"
+ cellspacing="0" width="100%" bgcolor="white">
+<tr bgcolor="#70b0f0" class="table-header">
+ <td colspan="2" class="table-header">
+ <table border="0" cellpadding="0" cellspacing="0" width="100%">
+ <tr valign="top">
+ <td align="left"><span class="table-header">Method Details</span></td>
+ <td align="right" valign="top"
+ ><span class="options">[<a href="#section-MethodDetails"
+ class="privatelink" onclick="toggle_private();"
+ >hide private</a>]</span></td>
+ </tr>
+ </table>
+ </td>
+</tr>
+</table>
+<a name="__init__"></a>
+<div>
+<table class="details" border="1" cellpadding="3"
+ cellspacing="0" width="100%" bgcolor="white">
+<tr><td>
+ <table width="100%" cellpadding="0" cellspacing="0" border="0">
+ <tr valign="top"><td>
+ <h3 class="epydoc"><span class="sig"><span class="sig-name">__init__</span>(<span class="sig-arg">self</span>,
+ <span class="sig-arg">filename</span>,
+ <span class="sig-arg">mode</span>,
+ <span class="sig-arg">fallback_mode</span>)</span>
+ <br /><em class="fname">(Constructor)</em>
+ </h3>
+ </td><td align="right" valign="top"
+ ><span class="codelink"><a href="oauth2client.locked_file-pysrc.html#_Opener.__init__">source code</a></span>
+ </td>
+ </tr></table>
+
+ <pre class="literalblock">
+Create an Opener.
+
+Args:
+ filename: string, The pathname of the file.
+ mode: string, The preferred mode to access the file with.
+ fallback_mode: string, The mode to use if locking fails.
+
+</pre>
+ <dl class="fields">
+ <dt>Overrides:
+ object.__init__
+ </dt>
+ </dl>
+</td></tr></table>
+</div>
+<a name="file_handle"></a>
+<div>
+<table class="details" border="1" cellpadding="3"
+ cellspacing="0" width="100%" bgcolor="white">
+<tr><td>
+ <table width="100%" cellpadding="0" cellspacing="0" border="0">
+ <tr valign="top"><td>
+ <h3 class="epydoc"><span class="sig"><span class="sig-name">file_handle</span>(<span class="sig-arg">self</span>)</span>
+ </h3>
+ </td><td align="right" valign="top"
+ ><span class="codelink"><a href="oauth2client.locked_file-pysrc.html#_Opener.file_handle">source code</a></span>
+ </td>
+ </tr></table>
+
+ <pre class="literalblock">
+The file handle to the file. Valid only after opened.
+
+</pre>
+ <dl class="fields">
+ </dl>
+</td></tr></table>
+</div>
+<a name="open_and_lock"></a>
+<div>
+<table class="details" border="1" cellpadding="3"
+ cellspacing="0" width="100%" bgcolor="white">
+<tr><td>
+ <table width="100%" cellpadding="0" cellspacing="0" border="0">
+ <tr valign="top"><td>
+ <h3 class="epydoc"><span class="sig"><span class="sig-name">open_and_lock</span>(<span class="sig-arg">self</span>,
+ <span class="sig-arg">timeout</span>,
+ <span class="sig-arg">delay</span>)</span>
+ </h3>
+ </td><td align="right" valign="top"
+ ><span class="codelink"><a href="oauth2client.locked_file-pysrc.html#_Opener.open_and_lock">source code</a></span>
+ </td>
+ </tr></table>
+
+ <pre class="literalblock">
+Open the file and lock it.
+
+Args:
+ timeout: float, How long to try to lock for.
+ delay: float, How long to wait between retries.
+
+</pre>
+ <dl class="fields">
+ </dl>
+</td></tr></table>
+</div>
+<br />
+<!-- ==================== NAVIGATION BAR ==================== -->
+<table class="navbar" border="0" width="100%" cellpadding="0"
+ bgcolor="#a0c0ff" cellspacing="0">
+ <tr valign="middle">
+
+ <!-- Tree link -->
+ <th> <a
+ href="module-tree.html">Trees</a> </th>
+
+ <!-- Index link -->
+ <th> <a
+ href="identifier-index.html">Indices</a> </th>
+
+ <!-- Help link -->
+ <th> <a
+ href="help.html">Help</a> </th>
+
+ <th class="navbar" width="100%"></th>
+ </tr>
+</table>
+<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:58 2012
+ </td>
+ <td align="right" class="footer">
+ <a target="mainFrame" href="http://epydoc.sourceforge.net"
+ >http://epydoc.sourceforge.net</a>
+ </td>
+ </tr>
+</table>
+
+<script type="text/javascript">
+ <!--
+ // Private objects are initially displayed (because if
+ // javascript is turned off then we want them to be
+ // visible); but by default, we want to hide them. So hide
+ // them unless we have a cookie that says to show them.
+ checkCookie();
+ // -->
+</script>
+</body>
+</html>
diff --git a/docs/epy/oauth2client.locked_file._PosixOpener-class.html b/docs/epy/oauth2client.locked_file._PosixOpener-class.html
new file mode 100644
index 0000000..91e43b8
--- /dev/null
+++ b/docs/epy/oauth2client.locked_file._PosixOpener-class.html
@@ -0,0 +1,321 @@
+<?xml version="1.0" encoding="ascii"?>
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
+ "DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
+<head>
+ <title>oauth2client.locked_file._PosixOpener</title>
+ <link rel="stylesheet" href="epydoc.css" type="text/css" />
+ <script type="text/javascript" src="epydoc.js"></script>
+</head>
+
+<body bgcolor="white" text="black" link="blue" vlink="#204080"
+ alink="#204080">
+<!-- ==================== NAVIGATION BAR ==================== -->
+<table class="navbar" border="0" width="100%" cellpadding="0"
+ bgcolor="#a0c0ff" cellspacing="0">
+ <tr valign="middle">
+
+ <!-- Tree link -->
+ <th> <a
+ href="module-tree.html">Trees</a> </th>
+
+ <!-- Index link -->
+ <th> <a
+ href="identifier-index.html">Indices</a> </th>
+
+ <!-- Help link -->
+ <th> <a
+ href="help.html">Help</a> </th>
+
+ <th class="navbar" width="100%"></th>
+ </tr>
+</table>
+<table width="100%" cellpadding="0" cellspacing="0">
+ <tr valign="top">
+ <td width="100%">
+ <span class="breadcrumbs">
+ <a href="oauth2client-module.html">Package oauth2client</a> ::
+ <a href="oauth2client.locked_file-module.html">Module locked_file</a> ::
+ Class _PosixOpener
+ </span>
+ </td>
+ <td>
+ <table cellpadding="0" cellspacing="0">
+ <!-- hide/show private -->
+ <tr><td align="right"><span class="options">[<a href="javascript:void(0);" class="privatelink"
+ onclick="toggle_private();">hide private</a>]</span></td></tr>
+ <tr><td align="right"><span class="options"
+ >[<a href="frames.html" target="_top">frames</a
+ >] | <a href="oauth2client.locked_file._PosixOpener-class.html"
+ target="_top">no frames</a>]</span></td></tr>
+ </table>
+ </td>
+ </tr>
+</table>
+<!-- ==================== CLASS DESCRIPTION ==================== -->
+<h1 class="epydoc">Class _PosixOpener</h1><p class="nomargin-top"><span class="codelink"><a href="oauth2client.locked_file-pysrc.html#_PosixOpener">source code</a></span></p>
+<center>
+<center> <map id="uml_class_diagram_for_oauth2cl_40" name="uml_class_diagram_for_oauth2cl_40">
+<area shape="rect" href="oauth2client.locked_file._PosixOpener-class.html#open_and_lock" title="Open the file and lock it." alt="" coords="45,167,256,185"/>
+<area shape="rect" href="oauth2client.locked_file._PosixOpener-class.html#unlock_and_close" title="Unlock a file by removing the .lock file, and close the handle." alt="" coords="45,185,256,204"/>
+<area shape="rect" href="oauth2client.locked_file._PosixOpener-class.html" title="Lock files using Posix advisory lock files." alt="" coords="44,141,257,205"/>
+<area shape="rect" href="oauth2client.locked_file._Opener-class.html#__init__" title="Create an Opener." alt="" coords="17,36,284,55"/>
+<area shape="rect" href="oauth2client.locked_file._Opener-class.html#is_locked" title="Was the file locked." alt="" coords="17,55,284,73"/>
+<area shape="rect" href="oauth2client.locked_file._Opener-class.html#file_handle" title="The file handle to the file." alt="" coords="17,73,284,92"/>
+<area shape="rect" href="oauth2client.locked_file._Opener-class.html#filename" title="The filename that is being locked." alt="" coords="17,92,284,111"/>
+<area shape="rect" href="oauth2client.locked_file._Opener-class.html" title="Base class for different locking primitives." alt="" coords="16,11,285,112"/>
+</map>
+ <img src="uml_class_diagram_for_oauth2cl_40.gif" alt='' usemap="#uml_class_diagram_for_oauth2cl_40" ismap="ismap" class="graph-without-title" />
+</center>
+</center>
+<hr />
+<pre class="literalblock">
+Lock files using Posix advisory lock files.
+
+</pre>
+
+<!-- ==================== INSTANCE METHODS ==================== -->
+<a name="section-InstanceMethods"></a>
+<table class="summary" border="1" cellpadding="3"
+ cellspacing="0" width="100%" bgcolor="white">
+<tr bgcolor="#70b0f0" class="table-header">
+ <td colspan="2" class="table-header">
+ <table border="0" cellpadding="0" cellspacing="0" width="100%">
+ <tr valign="top">
+ <td align="left"><span class="table-header">Instance Methods</span></td>
+ <td align="right" valign="top"
+ ><span class="options">[<a href="#section-InstanceMethods"
+ class="privatelink" onclick="toggle_private();"
+ >hide private</a>]</span></td>
+ </tr>
+ </table>
+ </td>
+</tr>
+<tr>
+ <td width="15%" align="right" valign="top" class="summary">
+ <span class="summary-type"> </span>
+ </td><td class="summary">
+ <table width="100%" cellpadding="0" cellspacing="0" border="0">
+ <tr>
+ <td><span class="summary-sig"><a href="oauth2client.locked_file._PosixOpener-class.html#open_and_lock" class="summary-sig-name">open_and_lock</a>(<span class="summary-sig-arg">self</span>,
+ <span class="summary-sig-arg">timeout</span>,
+ <span class="summary-sig-arg">delay</span>)</span><br />
+ Open the file and lock it.</td>
+ <td align="right" valign="top">
+ <span class="codelink"><a href="oauth2client.locked_file-pysrc.html#_PosixOpener.open_and_lock">source code</a></span>
+
+ </td>
+ </tr>
+ </table>
+
+ </td>
+ </tr>
+<tr>
+ <td width="15%" align="right" valign="top" class="summary">
+ <span class="summary-type"> </span>
+ </td><td class="summary">
+ <table width="100%" cellpadding="0" cellspacing="0" border="0">
+ <tr>
+ <td><span class="summary-sig"><a href="oauth2client.locked_file._PosixOpener-class.html#unlock_and_close" class="summary-sig-name">unlock_and_close</a>(<span class="summary-sig-arg">self</span>)</span><br />
+ Unlock a file by removing the .lock file, and close the handle.</td>
+ <td align="right" valign="top">
+ <span class="codelink"><a href="oauth2client.locked_file-pysrc.html#_PosixOpener.unlock_and_close">source code</a></span>
+
+ </td>
+ </tr>
+ </table>
+
+ </td>
+ </tr>
+<tr class="private">
+ <td width="15%" align="right" valign="top" class="summary">
+ <span class="summary-type"> </span>
+ </td><td class="summary">
+ <table width="100%" cellpadding="0" cellspacing="0" border="0">
+ <tr>
+ <td><span class="summary-sig"><a name="_posix_lockfile"></a><span class="summary-sig-name">_posix_lockfile</span>(<span class="summary-sig-arg">self</span>,
+ <span class="summary-sig-arg">filename</span>)</span><br />
+ The name of the lock file to use for posix locking.</td>
+ <td align="right" valign="top">
+ <span class="codelink"><a href="oauth2client.locked_file-pysrc.html#_PosixOpener._posix_lockfile">source code</a></span>
+
+ </td>
+ </tr>
+ </table>
+
+ </td>
+ </tr>
+ <tr>
+ <td colspan="2" class="summary">
+ <p class="indent-wrapped-lines"><b>Inherited from <code><a href="oauth2client.locked_file._Opener-class.html" onclick="show_private();">_Opener</a></code></b>:
+ <code><a href="oauth2client.locked_file._Opener-class.html#__init__">__init__</a></code>,
+ <code><a href="oauth2client.locked_file._Opener-class.html#file_handle">file_handle</a></code>,
+ <code><a href="oauth2client.locked_file._Opener-class.html#filename">filename</a></code>,
+ <code><a href="oauth2client.locked_file._Opener-class.html#is_locked">is_locked</a></code>
+ </p>
+ <p class="indent-wrapped-lines"><b>Inherited from <code>object</code></b>:
+ <code>__delattr__</code>,
+ <code>__format__</code>,
+ <code>__getattribute__</code>,
+ <code>__hash__</code>,
+ <code>__new__</code>,
+ <code>__reduce__</code>,
+ <code>__reduce_ex__</code>,
+ <code>__repr__</code>,
+ <code>__setattr__</code>,
+ <code>__sizeof__</code>,
+ <code>__str__</code>,
+ <code>__subclasshook__</code>
+ </p>
+ </td>
+ </tr>
+</table>
+<!-- ==================== PROPERTIES ==================== -->
+<a name="section-Properties"></a>
+<table class="summary" border="1" cellpadding="3"
+ cellspacing="0" width="100%" bgcolor="white">
+<tr bgcolor="#70b0f0" class="table-header">
+ <td colspan="2" class="table-header">
+ <table border="0" cellpadding="0" cellspacing="0" width="100%">
+ <tr valign="top">
+ <td align="left"><span class="table-header">Properties</span></td>
+ <td align="right" valign="top"
+ ><span class="options">[<a href="#section-Properties"
+ class="privatelink" onclick="toggle_private();"
+ >hide private</a>]</span></td>
+ </tr>
+ </table>
+ </td>
+</tr>
+ <tr>
+ <td colspan="2" class="summary">
+ <p class="indent-wrapped-lines"><b>Inherited from <code>object</code></b>:
+ <code>__class__</code>
+ </p>
+ </td>
+ </tr>
+</table>
+<!-- ==================== METHOD DETAILS ==================== -->
+<a name="section-MethodDetails"></a>
+<table class="details" border="1" cellpadding="3"
+ cellspacing="0" width="100%" bgcolor="white">
+<tr bgcolor="#70b0f0" class="table-header">
+ <td colspan="2" class="table-header">
+ <table border="0" cellpadding="0" cellspacing="0" width="100%">
+ <tr valign="top">
+ <td align="left"><span class="table-header">Method Details</span></td>
+ <td align="right" valign="top"
+ ><span class="options">[<a href="#section-MethodDetails"
+ class="privatelink" onclick="toggle_private();"
+ >hide private</a>]</span></td>
+ </tr>
+ </table>
+ </td>
+</tr>
+</table>
+<a name="open_and_lock"></a>
+<div>
+<table class="details" border="1" cellpadding="3"
+ cellspacing="0" width="100%" bgcolor="white">
+<tr><td>
+ <table width="100%" cellpadding="0" cellspacing="0" border="0">
+ <tr valign="top"><td>
+ <h3 class="epydoc"><span class="sig"><span class="sig-name">open_and_lock</span>(<span class="sig-arg">self</span>,
+ <span class="sig-arg">timeout</span>,
+ <span class="sig-arg">delay</span>)</span>
+ </h3>
+ </td><td align="right" valign="top"
+ ><span class="codelink"><a href="oauth2client.locked_file-pysrc.html#_PosixOpener.open_and_lock">source code</a></span>
+ </td>
+ </tr></table>
+
+ <pre class="literalblock">
+Open the file and lock it.
+
+Tries to create a .lock file next to the file we're trying to open.
+
+Args:
+ timeout: float, How long to try to lock for.
+ delay: float, How long to wait between retries.
+
+Raises:
+ AlreadyLockedException: if the lock is already acquired.
+ IOError: if the open fails.
+
+</pre>
+ <dl class="fields">
+ <dt>Overrides:
+ <a href="oauth2client.locked_file._Opener-class.html#open_and_lock">_Opener.open_and_lock</a>
+ </dt>
+ </dl>
+</td></tr></table>
+</div>
+<a name="unlock_and_close"></a>
+<div>
+<table class="details" border="1" cellpadding="3"
+ cellspacing="0" width="100%" bgcolor="white">
+<tr><td>
+ <table width="100%" cellpadding="0" cellspacing="0" border="0">
+ <tr valign="top"><td>
+ <h3 class="epydoc"><span class="sig"><span class="sig-name">unlock_and_close</span>(<span class="sig-arg">self</span>)</span>
+ </h3>
+ </td><td align="right" valign="top"
+ ><span class="codelink"><a href="oauth2client.locked_file-pysrc.html#_PosixOpener.unlock_and_close">source code</a></span>
+ </td>
+ </tr></table>
+
+ <pre class="literalblock">
+Unlock a file by removing the .lock file, and close the handle.
+
+</pre>
+ <dl class="fields">
+ <dt>Overrides:
+ <a href="oauth2client.locked_file._Opener-class.html#unlock_and_close">_Opener.unlock_and_close</a>
+ </dt>
+ </dl>
+</td></tr></table>
+</div>
+<br />
+<!-- ==================== NAVIGATION BAR ==================== -->
+<table class="navbar" border="0" width="100%" cellpadding="0"
+ bgcolor="#a0c0ff" cellspacing="0">
+ <tr valign="middle">
+
+ <!-- Tree link -->
+ <th> <a
+ href="module-tree.html">Trees</a> </th>
+
+ <!-- Index link -->
+ <th> <a
+ href="identifier-index.html">Indices</a> </th>
+
+ <!-- Help link -->
+ <th> <a
+ href="help.html">Help</a> </th>
+
+ <th class="navbar" width="100%"></th>
+ </tr>
+</table>
+<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:58 2012
+ </td>
+ <td align="right" class="footer">
+ <a target="mainFrame" href="http://epydoc.sourceforge.net"
+ >http://epydoc.sourceforge.net</a>
+ </td>
+ </tr>
+</table>
+
+<script type="text/javascript">
+ <!--
+ // Private objects are initially displayed (because if
+ // javascript is turned off then we want them to be
+ // visible); but by default, we want to hide them. So hide
+ // them unless we have a cookie that says to show them.
+ checkCookie();
+ // -->
+</script>
+</body>
+</html>
diff --git a/docs/epy/oauth2client.multistore_file-module.html b/docs/epy/oauth2client.multistore_file-module.html
index 6698c6f..ae3a099 100644
--- a/docs/epy/oauth2client.multistore_file-module.html
+++ b/docs/epy/oauth2client.multistore_file-module.html
@@ -294,7 +294,7 @@
<table border="0" cellpadding="0" cellspacing="0" width="100%%">
<tr>
<td align="left" class="footer">
- Generated by Epydoc 3.0.1 on Tue Jun 5 09:03:05 2012
+ Generated by Epydoc 3.0.1 on Thu Jun 14 08:01:54 2012
</td>
<td align="right" class="footer">
<a target="mainFrame" href="http://epydoc.sourceforge.net"
diff --git a/docs/epy/oauth2client.multistore_file-pysrc.html b/docs/epy/oauth2client.multistore_file-pysrc.html
index ce0c922..ec87e4c 100644
--- a/docs/epy/oauth2client.multistore_file-pysrc.html
+++ b/docs/epy/oauth2client.multistore_file-pysrc.html
@@ -88,24 +88,25 @@
<a name="L33"></a><tt class="py-lineno"> 33</tt> <tt class="py-line"> </tt>
<a name="L34"></a><tt class="py-lineno"> 34</tt> <tt class="py-line"><tt class="py-keyword">import</tt> <tt class="py-name">base64</tt> </tt>
<a name="L35"></a><tt class="py-lineno"> 35</tt> <tt class="py-line"><tt class="py-keyword">import</tt> <tt class="py-name">errno</tt> </tt>
-<a name="L36"></a><tt class="py-lineno"> 36</tt> <tt class="py-line"><tt class="py-keyword">import</tt> <tt class="py-name">fcntl</tt> </tt>
-<a name="L37"></a><tt class="py-lineno"> 37</tt> <tt class="py-line"><tt class="py-keyword">import</tt> <tt class="py-name">logging</tt> </tt>
-<a name="L38"></a><tt class="py-lineno"> 38</tt> <tt class="py-line"><tt class="py-keyword">import</tt> <tt class="py-name">os</tt> </tt>
-<a name="L39"></a><tt class="py-lineno"> 39</tt> <tt class="py-line"><tt class="py-keyword">import</tt> <tt class="py-name">threading</tt> </tt>
-<a name="L40"></a><tt class="py-lineno"> 40</tt> <tt class="py-line"> </tt>
-<a name="L41"></a><tt class="py-lineno"> 41</tt> <tt class="py-line"><tt class="py-keyword">from</tt> <tt id="link-0" class="py-name" targets="Module oauth2client.anyjson=oauth2client.anyjson-module.html"><a title="oauth2client.anyjson" class="py-name" href="#" onclick="return doclink('link-0', 'anyjson', 'link-0');">anyjson</a></tt> <tt class="py-keyword">import</tt> <tt class="py-name">simplejson</tt> </tt>
-<a name="L42"></a><tt class="py-lineno"> 42</tt> <tt class="py-line"><tt class="py-keyword">from</tt> <tt id="link-1" class="py-name" targets="Module oauth2client.client=oauth2client.client-module.html"><a title="oauth2client.client" class="py-name" href="#" onclick="return doclink('link-1', 'client', 'link-1');">client</a></tt> <tt class="py-keyword">import</tt> <tt id="link-2" class="py-name" targets="Class oauth2client.client.Storage=oauth2client.client.Storage-class.html,Class oauth2client.django_orm.Storage=oauth2client.django_orm.Storage-class.html,Class oauth2client.file.Storage=oauth2client.file.Storage-class.html"><a title="oauth2client.client.Storage
+<a name="L36"></a><tt class="py-lineno"> 36</tt> <tt class="py-line"><tt class="py-keyword">import</tt> <tt class="py-name">logging</tt> </tt>
+<a name="L37"></a><tt class="py-lineno"> 37</tt> <tt class="py-line"><tt class="py-keyword">import</tt> <tt class="py-name">os</tt> </tt>
+<a name="L38"></a><tt class="py-lineno"> 38</tt> <tt class="py-line"><tt class="py-keyword">import</tt> <tt class="py-name">threading</tt> </tt>
+<a name="L39"></a><tt class="py-lineno"> 39</tt> <tt class="py-line"> </tt>
+<a name="L40"></a><tt class="py-lineno"> 40</tt> <tt class="py-line"><tt class="py-keyword">from</tt> <tt id="link-0" class="py-name" targets="Module oauth2client.anyjson=oauth2client.anyjson-module.html"><a title="oauth2client.anyjson" class="py-name" href="#" onclick="return doclink('link-0', 'anyjson', 'link-0');">anyjson</a></tt> <tt class="py-keyword">import</tt> <tt class="py-name">simplejson</tt> </tt>
+<a name="L41"></a><tt class="py-lineno"> 41</tt> <tt class="py-line"><tt class="py-keyword">from</tt> <tt id="link-1" class="py-name" targets="Module oauth2client.client=oauth2client.client-module.html"><a title="oauth2client.client" class="py-name" href="#" onclick="return doclink('link-1', 'client', 'link-1');">client</a></tt> <tt class="py-keyword">import</tt> <tt id="link-2" class="py-name" targets="Class oauth2client.client.Storage=oauth2client.client.Storage-class.html,Class oauth2client.django_orm.Storage=oauth2client.django_orm.Storage-class.html,Class oauth2client.file.Storage=oauth2client.file.Storage-class.html"><a title="oauth2client.client.Storage
oauth2client.django_orm.Storage
oauth2client.file.Storage" class="py-name" href="#" onclick="return doclink('link-2', 'Storage', 'link-2');">Storage</a></tt> <tt class="py-keyword">as</tt> <tt class="py-name">BaseStorage</tt> </tt>
-<a name="L43"></a><tt class="py-lineno"> 43</tt> <tt class="py-line"><tt class="py-keyword">from</tt> <tt id="link-3" class="py-name"><a title="oauth2client.client" class="py-name" href="#" onclick="return doclink('link-3', 'client', 'link-1');">client</a></tt> <tt class="py-keyword">import</tt> <tt id="link-4" class="py-name" targets="Class oauth2client.client.Credentials=oauth2client.client.Credentials-class.html"><a title="oauth2client.client.Credentials" class="py-name" href="#" onclick="return doclink('link-4', 'Credentials', 'link-4');">Credentials</a></tt> </tt>
+<a name="L42"></a><tt class="py-lineno"> 42</tt> <tt class="py-line"><tt class="py-keyword">from</tt> <tt id="link-3" class="py-name"><a title="oauth2client.client" class="py-name" href="#" onclick="return doclink('link-3', 'client', 'link-1');">client</a></tt> <tt class="py-keyword">import</tt> <tt id="link-4" class="py-name" targets="Class oauth2client.client.Credentials=oauth2client.client.Credentials-class.html"><a title="oauth2client.client.Credentials" class="py-name" href="#" onclick="return doclink('link-4', 'Credentials', 'link-4');">Credentials</a></tt> </tt>
+<a name="L43"></a><tt class="py-lineno"> 43</tt> <tt class="py-line"><tt class="py-keyword">from</tt> <tt id="link-5" class="py-name" targets="Module oauth2client.locked_file=oauth2client.locked_file-module.html"><a title="oauth2client.locked_file" class="py-name" href="#" onclick="return doclink('link-5', 'locked_file', 'link-5');">locked_file</a></tt> <tt class="py-keyword">import</tt> <tt id="link-6" class="py-name" targets="Class oauth2client.locked_file.LockedFile=oauth2client.locked_file.LockedFile-class.html"><a title="oauth2client.locked_file.LockedFile" class="py-name" href="#" onclick="return doclink('link-6', 'LockedFile', 'link-6');">LockedFile</a></tt> </tt>
<a name="L44"></a><tt class="py-lineno"> 44</tt> <tt class="py-line"> </tt>
-<a name="L45"></a><tt class="py-lineno"> 45</tt> <tt class="py-line"><tt id="link-5" class="py-name" targets="Variable apiclient.discovery.logger=apiclient.discovery-module.html#logger,Variable oauth2client.client.logger=oauth2client.client-module.html#logger,Variable oauth2client.multistore_file.logger=oauth2client.multistore_file-module.html#logger"><a title="apiclient.discovery.logger
+<a name="L45"></a><tt class="py-lineno"> 45</tt> <tt class="py-line"><tt id="link-7" class="py-name" targets="Variable apiclient.discovery.logger=apiclient.discovery-module.html#logger,Variable oauth2client.client.logger=oauth2client.client-module.html#logger,Variable oauth2client.locked_file.logger=oauth2client.locked_file-module.html#logger,Variable oauth2client.multistore_file.logger=oauth2client.multistore_file-module.html#logger"><a title="apiclient.discovery.logger
oauth2client.client.logger
-oauth2client.multistore_file.logger" class="py-name" href="#" onclick="return doclink('link-5', 'logger', 'link-5');">logger</a></tt> <tt class="py-op">=</tt> <tt class="py-name">logging</tt><tt class="py-op">.</tt><tt class="py-name">getLogger</tt><tt class="py-op">(</tt><tt class="py-name">__name__</tt><tt class="py-op">)</tt> </tt>
+oauth2client.locked_file.logger
+oauth2client.multistore_file.logger" class="py-name" href="#" onclick="return doclink('link-7', 'logger', 'link-7');">logger</a></tt> <tt class="py-op">=</tt> <tt class="py-name">logging</tt><tt class="py-op">.</tt><tt class="py-name">getLogger</tt><tt class="py-op">(</tt><tt class="py-name">__name__</tt><tt class="py-op">)</tt> </tt>
<a name="L46"></a><tt class="py-lineno"> 46</tt> <tt class="py-line"> </tt>
<a name="L47"></a><tt class="py-lineno"> 47</tt> <tt class="py-line"><tt class="py-comment"># A dict from 'filename'->_MultiStore instances</tt> </tt>
-<a name="L48"></a><tt class="py-lineno"> 48</tt> <tt class="py-line"><tt id="link-6" class="py-name" targets="Variable oauth2client.multistore_file._multistores=oauth2client.multistore_file-module.html#_multistores"><a title="oauth2client.multistore_file._multistores" class="py-name" href="#" onclick="return doclink('link-6', '_multistores', 'link-6');">_multistores</a></tt> <tt class="py-op">=</tt> <tt class="py-op">{</tt><tt class="py-op">}</tt> </tt>
-<a name="L49"></a><tt class="py-lineno"> 49</tt> <tt class="py-line"><tt id="link-7" class="py-name" targets="Variable oauth2client.multistore_file._multistores_lock=oauth2client.multistore_file-module.html#_multistores_lock"><a title="oauth2client.multistore_file._multistores_lock" class="py-name" href="#" onclick="return doclink('link-7', '_multistores_lock', 'link-7');">_multistores_lock</a></tt> <tt class="py-op">=</tt> <tt class="py-name">threading</tt><tt class="py-op">.</tt><tt class="py-name">Lock</tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
+<a name="L48"></a><tt class="py-lineno"> 48</tt> <tt class="py-line"><tt id="link-8" class="py-name" targets="Variable oauth2client.multistore_file._multistores=oauth2client.multistore_file-module.html#_multistores"><a title="oauth2client.multistore_file._multistores" class="py-name" href="#" onclick="return doclink('link-8', '_multistores', 'link-8');">_multistores</a></tt> <tt class="py-op">=</tt> <tt class="py-op">{</tt><tt class="py-op">}</tt> </tt>
+<a name="L49"></a><tt class="py-lineno"> 49</tt> <tt class="py-line"><tt id="link-9" class="py-name" targets="Variable oauth2client.multistore_file._multistores_lock=oauth2client.multistore_file-module.html#_multistores_lock"><a title="oauth2client.multistore_file._multistores_lock" class="py-name" href="#" onclick="return doclink('link-9', '_multistores_lock', 'link-9');">_multistores_lock</a></tt> <tt class="py-op">=</tt> <tt class="py-name">threading</tt><tt class="py-op">.</tt><tt class="py-name">Lock</tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
<a name="L50"></a><tt class="py-lineno"> 50</tt> <tt class="py-line"> </tt>
<a name="L51"></a><tt class="py-lineno"> 51</tt> <tt class="py-line"> </tt>
<a name="Error"></a><div id="Error-def"><a name="L52"></a><tt class="py-lineno"> 52</tt> <a class="py-toggle" href="#" id="Error-toggle" onclick="return toggle('Error');">-</a><tt class="py-line"><tt class="py-keyword">class</tt> <a class="py-def-name" href="oauth2client.multistore_file.Error-class.html">Error</a><tt class="py-op">(</tt><tt class="py-base-class">Exception</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
@@ -133,16 +134,20 @@
<a name="L74"></a><tt class="py-lineno"> 74</tt> <tt class="py-line"><tt class="py-docstring"> An object derived from client.Storage for getting/setting the</tt> </tt>
<a name="L75"></a><tt class="py-lineno"> 75</tt> <tt class="py-line"><tt class="py-docstring"> credential.</tt> </tt>
<a name="L76"></a><tt class="py-lineno"> 76</tt> <tt class="py-line"><tt class="py-docstring"> """</tt> </tt>
-<a name="L77"></a><tt class="py-lineno"> 77</tt> <tt class="py-line"> <tt class="py-name">filename</tt> <tt class="py-op">=</tt> <tt class="py-name">os</tt><tt class="py-op">.</tt><tt class="py-name">path</tt><tt class="py-op">.</tt><tt class="py-name">realpath</tt><tt class="py-op">(</tt><tt class="py-name">os</tt><tt class="py-op">.</tt><tt class="py-name">path</tt><tt class="py-op">.</tt><tt class="py-name">expanduser</tt><tt class="py-op">(</tt><tt class="py-name">filename</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
-<a name="L78"></a><tt class="py-lineno"> 78</tt> <tt class="py-line"> <tt id="link-8" class="py-name"><a title="oauth2client.multistore_file._multistores_lock" class="py-name" href="#" onclick="return doclink('link-8', '_multistores_lock', 'link-7');">_multistores_lock</a></tt><tt class="py-op">.</tt><tt class="py-name">acquire</tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
+<a name="L77"></a><tt class="py-lineno"> 77</tt> <tt class="py-line"> <tt id="link-10" 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-10', 'filename', 'link-10');">filename</a></tt> <tt class="py-op">=</tt> <tt class="py-name">os</tt><tt class="py-op">.</tt><tt class="py-name">path</tt><tt class="py-op">.</tt><tt class="py-name">realpath</tt><tt class="py-op">(</tt><tt class="py-name">os</tt><tt class="py-op">.</tt><tt class="py-name">path</tt><tt class="py-op">.</tt><tt class="py-name">expanduser</tt><tt class="py-op">(</tt><tt id="link-11" class="py-name"><a title="oauth2client.locked_file.LockedFile.filename
+oauth2client.locked_file._Opener.filename" class="py-name" href="#" onclick="return doclink('link-11', 'filename', 'link-10');">filename</a></tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
+<a name="L78"></a><tt class="py-lineno"> 78</tt> <tt class="py-line"> <tt id="link-12" class="py-name"><a title="oauth2client.multistore_file._multistores_lock" class="py-name" href="#" onclick="return doclink('link-12', '_multistores_lock', 'link-9');">_multistores_lock</a></tt><tt class="py-op">.</tt><tt class="py-name">acquire</tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
<a name="L79"></a><tt class="py-lineno"> 79</tt> <tt class="py-line"> <tt class="py-keyword">try</tt><tt class="py-op">:</tt> </tt>
-<a name="L80"></a><tt class="py-lineno"> 80</tt> <tt class="py-line"> <tt class="py-name">multistore</tt> <tt class="py-op">=</tt> <tt id="link-9" class="py-name"><a title="oauth2client.multistore_file._multistores" class="py-name" href="#" onclick="return doclink('link-9', '_multistores', 'link-6');">_multistores</a></tt><tt class="py-op">.</tt><tt class="py-name">setdefault</tt><tt class="py-op">(</tt> </tt>
-<a name="L81"></a><tt class="py-lineno"> 81</tt> <tt class="py-line"> <tt class="py-name">filename</tt><tt class="py-op">,</tt> <tt id="link-10" class="py-name" targets="Class oauth2client.multistore_file._MultiStore=oauth2client.multistore_file._MultiStore-class.html"><a title="oauth2client.multistore_file._MultiStore" class="py-name" href="#" onclick="return doclink('link-10', '_MultiStore', 'link-10');">_MultiStore</a></tt><tt class="py-op">(</tt><tt class="py-name">filename</tt><tt class="py-op">,</tt> <tt class="py-name">warn_on_readonly</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
+<a name="L80"></a><tt class="py-lineno"> 80</tt> <tt class="py-line"> <tt class="py-name">multistore</tt> <tt class="py-op">=</tt> <tt id="link-13" class="py-name"><a title="oauth2client.multistore_file._multistores" class="py-name" href="#" onclick="return doclink('link-13', '_multistores', 'link-8');">_multistores</a></tt><tt class="py-op">.</tt><tt class="py-name">setdefault</tt><tt class="py-op">(</tt> </tt>
+<a name="L81"></a><tt class="py-lineno"> 81</tt> <tt class="py-line"> <tt id="link-14" class="py-name"><a title="oauth2client.locked_file.LockedFile.filename
+oauth2client.locked_file._Opener.filename" class="py-name" href="#" onclick="return doclink('link-14', 'filename', 'link-10');">filename</a></tt><tt class="py-op">,</tt> <tt id="link-15" class="py-name" targets="Class oauth2client.multistore_file._MultiStore=oauth2client.multistore_file._MultiStore-class.html"><a title="oauth2client.multistore_file._MultiStore" class="py-name" href="#" onclick="return doclink('link-15', '_MultiStore', 'link-15');">_MultiStore</a></tt><tt class="py-op">(</tt><tt id="link-16" class="py-name"><a title="oauth2client.locked_file.LockedFile.filename
+oauth2client.locked_file._Opener.filename" class="py-name" href="#" onclick="return doclink('link-16', 'filename', 'link-10');">filename</a></tt><tt class="py-op">,</tt> <tt class="py-name">warn_on_readonly</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
<a name="L82"></a><tt class="py-lineno"> 82</tt> <tt class="py-line"> <tt class="py-keyword">finally</tt><tt class="py-op">:</tt> </tt>
-<a name="L83"></a><tt class="py-lineno"> 83</tt> <tt class="py-line"> <tt id="link-11" class="py-name"><a title="oauth2client.multistore_file._multistores_lock" class="py-name" href="#" onclick="return doclink('link-11', '_multistores_lock', 'link-7');">_multistores_lock</a></tt><tt class="py-op">.</tt><tt class="py-name">release</tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
+<a name="L83"></a><tt class="py-lineno"> 83</tt> <tt class="py-line"> <tt id="link-17" class="py-name"><a title="oauth2client.multistore_file._multistores_lock" class="py-name" href="#" onclick="return doclink('link-17', '_multistores_lock', 'link-9');">_multistores_lock</a></tt><tt class="py-op">.</tt><tt class="py-name">release</tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
<a name="L84"></a><tt class="py-lineno"> 84</tt> <tt class="py-line"> <tt class="py-keyword">if</tt> <tt class="py-name">type</tt><tt class="py-op">(</tt><tt class="py-name">scope</tt><tt class="py-op">)</tt> <tt class="py-keyword">is</tt> <tt class="py-name">list</tt><tt class="py-op">:</tt> </tt>
<a name="L85"></a><tt class="py-lineno"> 85</tt> <tt class="py-line"> <tt class="py-name">scope</tt> <tt class="py-op">=</tt> <tt class="py-string">' '</tt><tt class="py-op">.</tt><tt class="py-name">join</tt><tt class="py-op">(</tt><tt class="py-name">scope</tt><tt class="py-op">)</tt> </tt>
-<a name="L86"></a><tt class="py-lineno"> 86</tt> <tt class="py-line"> <tt class="py-keyword">return</tt> <tt class="py-name">multistore</tt><tt class="py-op">.</tt><tt id="link-12" class="py-name" targets="Method oauth2client.multistore_file._MultiStore._get_storage()=oauth2client.multistore_file._MultiStore-class.html#_get_storage"><a title="oauth2client.multistore_file._MultiStore._get_storage" class="py-name" href="#" onclick="return doclink('link-12', '_get_storage', 'link-12');">_get_storage</a></tt><tt class="py-op">(</tt><tt class="py-name">client_id</tt><tt class="py-op">,</tt> <tt class="py-name">user_agent</tt><tt class="py-op">,</tt> <tt class="py-name">scope</tt><tt class="py-op">)</tt> </tt>
+<a name="L86"></a><tt class="py-lineno"> 86</tt> <tt class="py-line"> <tt class="py-keyword">return</tt> <tt class="py-name">multistore</tt><tt class="py-op">.</tt><tt id="link-18" class="py-name" targets="Method oauth2client.multistore_file._MultiStore._get_storage()=oauth2client.multistore_file._MultiStore-class.html#_get_storage"><a title="oauth2client.multistore_file._MultiStore._get_storage" class="py-name" href="#" onclick="return doclink('link-18', '_get_storage', 'link-18');">_get_storage</a></tt><tt class="py-op">(</tt><tt class="py-name">client_id</tt><tt class="py-op">,</tt> <tt class="py-name">user_agent</tt><tt class="py-op">,</tt> <tt class="py-name">scope</tt><tt class="py-op">)</tt> </tt>
</div><a name="L87"></a><tt class="py-lineno"> 87</tt> <tt class="py-line"> </tt>
<a name="L88"></a><tt class="py-lineno"> 88</tt> <tt class="py-line"> </tt>
<a name="_MultiStore"></a><div id="_MultiStore-def"><a name="L89"></a><tt class="py-lineno"> 89</tt> <a class="py-toggle" href="#" id="_MultiStore-toggle" onclick="return toggle('_MultiStore');">-</a><tt class="py-line"><tt class="py-keyword">class</tt> <a class="py-def-name" href="oauth2client.multistore_file._MultiStore-class.html">_MultiStore</a><tt class="py-op">(</tt><tt class="py-base-class">object</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
@@ -153,319 +158,333 @@
<a name="L94"></a><tt class="py-lineno"> 94</tt> <tt class="py-line"><tt class="py-docstring"></tt> </tt>
<a name="L95"></a><tt class="py-lineno"> 95</tt> <tt class="py-line"><tt class="py-docstring"> This will create the file if necessary.</tt> </tt>
<a name="L96"></a><tt class="py-lineno"> 96</tt> <tt class="py-line"><tt class="py-docstring"> """</tt> </tt>
-<a name="L97"></a><tt class="py-lineno"> 97</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">_filename</tt> <tt class="py-op">=</tt> <tt class="py-name">filename</tt> </tt>
+<a name="L97"></a><tt class="py-lineno"> 97</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">_file</tt> <tt class="py-op">=</tt> <tt id="link-19" class="py-name"><a title="oauth2client.locked_file.LockedFile" class="py-name" href="#" onclick="return doclink('link-19', 'LockedFile', 'link-6');">LockedFile</a></tt><tt class="py-op">(</tt><tt id="link-20" class="py-name"><a title="oauth2client.locked_file.LockedFile.filename
+oauth2client.locked_file._Opener.filename" class="py-name" href="#" onclick="return doclink('link-20', 'filename', 'link-10');">filename</a></tt><tt class="py-op">,</tt> <tt class="py-string">'r+b'</tt><tt class="py-op">,</tt> <tt class="py-string">'rb'</tt><tt class="py-op">)</tt> </tt>
<a name="L98"></a><tt class="py-lineno"> 98</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">_thread_lock</tt> <tt class="py-op">=</tt> <tt class="py-name">threading</tt><tt class="py-op">.</tt><tt class="py-name">Lock</tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
-<a name="L99"></a><tt class="py-lineno"> 99</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">_file_handle</tt> <tt class="py-op">=</tt> <tt class="py-name">None</tt> </tt>
-<a name="L100"></a><tt class="py-lineno">100</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">_read_only</tt> <tt class="py-op">=</tt> <tt class="py-name">False</tt> </tt>
-<a name="L101"></a><tt class="py-lineno">101</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">_warn_on_readonly</tt> <tt class="py-op">=</tt> <tt class="py-name">warn_on_readonly</tt> </tt>
-<a name="L102"></a><tt class="py-lineno">102</tt> <tt class="py-line"> </tt>
-<a name="L103"></a><tt class="py-lineno">103</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-13" class="py-name" targets="Method oauth2client.file.Storage._create_file_if_needed()=oauth2client.file.Storage-class.html#_create_file_if_needed,Method oauth2client.multistore_file._MultiStore._create_file_if_needed()=oauth2client.multistore_file._MultiStore-class.html#_create_file_if_needed"><a title="oauth2client.file.Storage._create_file_if_needed
-oauth2client.multistore_file._MultiStore._create_file_if_needed" class="py-name" href="#" onclick="return doclink('link-13', '_create_file_if_needed', 'link-13');">_create_file_if_needed</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
-<a name="L104"></a><tt class="py-lineno">104</tt> <tt class="py-line"> </tt>
-<a name="L105"></a><tt class="py-lineno">105</tt> <tt class="py-line"> <tt class="py-comment"># Cache of deserialized store. This is only valid after the</tt> </tt>
-<a name="L106"></a><tt class="py-lineno">106</tt> <tt class="py-line"> <tt class="py-comment"># _MultiStore is locked or _refresh_data_cache is called. This is</tt> </tt>
-<a name="L107"></a><tt class="py-lineno">107</tt> <tt class="py-line"> <tt class="py-comment"># of the form of:</tt> </tt>
-<a name="L108"></a><tt class="py-lineno">108</tt> <tt class="py-line"> <tt class="py-comment">#</tt> </tt>
-<a name="L109"></a><tt class="py-lineno">109</tt> <tt class="py-line"> <tt class="py-comment"># (client_id, user_agent, scope) -> OAuth2Credential</tt> </tt>
-<a name="L110"></a><tt class="py-lineno">110</tt> <tt class="py-line"> <tt class="py-comment">#</tt> </tt>
-<a name="L111"></a><tt class="py-lineno">111</tt> <tt class="py-line"> <tt class="py-comment"># If this is None, then the store hasn't been read yet.</tt> </tt>
-<a name="L112"></a><tt class="py-lineno">112</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">_data</tt> <tt class="py-op">=</tt> <tt class="py-name">None</tt> </tt>
-</div><a name="L113"></a><tt class="py-lineno">113</tt> <tt class="py-line"> </tt>
-<a name="_MultiStore._Storage"></a><div id="_MultiStore._Storage-def"><a name="L114"></a><tt class="py-lineno">114</tt> <a class="py-toggle" href="#" id="_MultiStore._Storage-toggle" onclick="return toggle('_MultiStore._Storage');">-</a><tt class="py-line"> <tt class="py-keyword">class</tt> <a class="py-def-name" href="oauth2client.multistore_file._MultiStore._Storage-class.html">_Storage</a><tt class="py-op">(</tt><tt class="py-base-class">BaseStorage</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-</div><div id="_MultiStore._Storage-collapsed" style="display:none;" pad="+++" indent="++++++"></div><div id="_MultiStore._Storage-expanded"><a name="L115"></a><tt class="py-lineno">115</tt> <tt class="py-line"> <tt class="py-docstring">"""A Storage object that knows how to read/write a single credential."""</tt> </tt>
-<a name="L116"></a><tt class="py-lineno">116</tt> <tt class="py-line"> </tt>
-<a name="_MultiStore._Storage.__init__"></a><div id="_MultiStore._Storage.__init__-def"><a name="L117"></a><tt class="py-lineno">117</tt> <a class="py-toggle" href="#" id="_MultiStore._Storage.__init__-toggle" onclick="return toggle('_MultiStore._Storage.__init__');">-</a><tt class="py-line"> <tt class="py-keyword">def</tt> <a class="py-def-name" href="oauth2client.multistore_file._MultiStore._Storage-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">multistore</tt><tt class="py-op">,</tt> <tt class="py-param">client_id</tt><tt class="py-op">,</tt> <tt class="py-param">user_agent</tt><tt class="py-op">,</tt> <tt class="py-param">scope</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-</div><div id="_MultiStore._Storage.__init__-collapsed" style="display:none;" pad="+++" indent="++++++++++"></div><div id="_MultiStore._Storage.__init__-expanded"><a name="L118"></a><tt class="py-lineno">118</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">_multistore</tt> <tt class="py-op">=</tt> <tt class="py-name">multistore</tt> </tt>
-<a name="L119"></a><tt class="py-lineno">119</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">_client_id</tt> <tt class="py-op">=</tt> <tt class="py-name">client_id</tt> </tt>
-<a name="L120"></a><tt class="py-lineno">120</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">_user_agent</tt> <tt class="py-op">=</tt> <tt class="py-name">user_agent</tt> </tt>
-<a name="L121"></a><tt class="py-lineno">121</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">_scope</tt> <tt class="py-op">=</tt> <tt class="py-name">scope</tt> </tt>
-</div><a name="L122"></a><tt class="py-lineno">122</tt> <tt class="py-line"> </tt>
-<a name="_MultiStore._Storage.acquire_lock"></a><div id="_MultiStore._Storage.acquire_lock-def"><a name="L123"></a><tt class="py-lineno">123</tt> <a class="py-toggle" href="#" id="_MultiStore._Storage.acquire_lock-toggle" onclick="return toggle('_MultiStore._Storage.acquire_lock');">-</a><tt class="py-line"> <tt class="py-keyword">def</tt> <a class="py-def-name" href="oauth2client.multistore_file._MultiStore._Storage-class.html#acquire_lock">acquire_lock</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-</div><div id="_MultiStore._Storage.acquire_lock-collapsed" style="display:none;" pad="+++" indent="++++++++++"></div><div id="_MultiStore._Storage.acquire_lock-expanded"><a name="L124"></a><tt class="py-lineno">124</tt> <tt class="py-line"> <tt class="py-docstring">"""Acquires any lock necessary to access this Storage.</tt> </tt>
-<a name="L125"></a><tt class="py-lineno">125</tt> <tt class="py-line"><tt class="py-docstring"></tt> </tt>
-<a name="L126"></a><tt class="py-lineno">126</tt> <tt class="py-line"><tt class="py-docstring"> This lock is not reentrant.</tt> </tt>
-<a name="L127"></a><tt class="py-lineno">127</tt> <tt class="py-line"><tt class="py-docstring"> """</tt> </tt>
-<a name="L128"></a><tt class="py-lineno">128</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">_multistore</tt><tt class="py-op">.</tt><tt id="link-14" class="py-name" targets="Method oauth2client.multistore_file._MultiStore._lock()=oauth2client.multistore_file._MultiStore-class.html#_lock"><a title="oauth2client.multistore_file._MultiStore._lock" class="py-name" href="#" onclick="return doclink('link-14', '_lock', 'link-14');">_lock</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
-</div><a name="L129"></a><tt class="py-lineno">129</tt> <tt class="py-line"> </tt>
-<a name="_MultiStore._Storage.release_lock"></a><div id="_MultiStore._Storage.release_lock-def"><a name="L130"></a><tt class="py-lineno">130</tt> <a class="py-toggle" href="#" id="_MultiStore._Storage.release_lock-toggle" onclick="return toggle('_MultiStore._Storage.release_lock');">-</a><tt class="py-line"> <tt class="py-keyword">def</tt> <a class="py-def-name" href="oauth2client.multistore_file._MultiStore._Storage-class.html#release_lock">release_lock</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-</div><div id="_MultiStore._Storage.release_lock-collapsed" style="display:none;" pad="+++" indent="++++++++++"></div><div id="_MultiStore._Storage.release_lock-expanded"><a name="L131"></a><tt class="py-lineno">131</tt> <tt class="py-line"> <tt class="py-docstring">"""Release the Storage lock.</tt> </tt>
-<a name="L132"></a><tt class="py-lineno">132</tt> <tt class="py-line"><tt class="py-docstring"></tt> </tt>
-<a name="L133"></a><tt class="py-lineno">133</tt> <tt class="py-line"><tt class="py-docstring"> Trying to release a lock that isn't held will result in a</tt> </tt>
-<a name="L134"></a><tt class="py-lineno">134</tt> <tt class="py-line"><tt class="py-docstring"> RuntimeError.</tt> </tt>
-<a name="L135"></a><tt class="py-lineno">135</tt> <tt class="py-line"><tt class="py-docstring"> """</tt> </tt>
-<a name="L136"></a><tt class="py-lineno">136</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">_multistore</tt><tt class="py-op">.</tt><tt id="link-15" class="py-name" targets="Method oauth2client.multistore_file._MultiStore._unlock()=oauth2client.multistore_file._MultiStore-class.html#_unlock"><a title="oauth2client.multistore_file._MultiStore._unlock" class="py-name" href="#" onclick="return doclink('link-15', '_unlock', 'link-15');">_unlock</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
-</div><a name="L137"></a><tt class="py-lineno">137</tt> <tt class="py-line"> </tt>
-<a name="_MultiStore._Storage.locked_get"></a><div id="_MultiStore._Storage.locked_get-def"><a name="L138"></a><tt class="py-lineno">138</tt> <a class="py-toggle" href="#" id="_MultiStore._Storage.locked_get-toggle" onclick="return toggle('_MultiStore._Storage.locked_get');">-</a><tt class="py-line"> <tt class="py-keyword">def</tt> <a class="py-def-name" href="oauth2client.multistore_file._MultiStore._Storage-class.html#locked_get">locked_get</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-</div><div id="_MultiStore._Storage.locked_get-collapsed" style="display:none;" pad="+++" indent="++++++++++"></div><div id="_MultiStore._Storage.locked_get-expanded"><a name="L139"></a><tt class="py-lineno">139</tt> <tt class="py-line"> <tt class="py-docstring">"""Retrieve credential.</tt> </tt>
-<a name="L140"></a><tt class="py-lineno">140</tt> <tt class="py-line"><tt class="py-docstring"></tt> </tt>
-<a name="L141"></a><tt class="py-lineno">141</tt> <tt class="py-line"><tt class="py-docstring"> The Storage lock must be held when this is called.</tt> </tt>
-<a name="L142"></a><tt class="py-lineno">142</tt> <tt class="py-line"><tt class="py-docstring"></tt> </tt>
-<a name="L143"></a><tt class="py-lineno">143</tt> <tt class="py-line"><tt class="py-docstring"> Returns:</tt> </tt>
-<a name="L144"></a><tt class="py-lineno">144</tt> <tt class="py-line"><tt class="py-docstring"> oauth2client.client.Credentials</tt> </tt>
-<a name="L145"></a><tt class="py-lineno">145</tt> <tt class="py-line"><tt class="py-docstring"> """</tt> </tt>
-<a name="L146"></a><tt class="py-lineno">146</tt> <tt class="py-line"> <tt class="py-name">credential</tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">_multistore</tt><tt class="py-op">.</tt><tt id="link-16" class="py-name" targets="Method oauth2client.multistore_file._MultiStore._get_credential()=oauth2client.multistore_file._MultiStore-class.html#_get_credential"><a title="oauth2client.multistore_file._MultiStore._get_credential" class="py-name" href="#" onclick="return doclink('link-16', '_get_credential', 'link-16');">_get_credential</a></tt><tt class="py-op">(</tt> </tt>
-<a name="L147"></a><tt class="py-lineno">147</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">_client_id</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 class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">_scope</tt><tt class="py-op">)</tt> </tt>
-<a name="L148"></a><tt class="py-lineno">148</tt> <tt class="py-line"> <tt class="py-keyword">if</tt> <tt class="py-name">credential</tt><tt class="py-op">:</tt> </tt>
-<a name="L149"></a><tt class="py-lineno">149</tt> <tt class="py-line"> <tt class="py-name">credential</tt><tt class="py-op">.</tt><tt id="link-17" class="py-name" targets="Method oauth2client.client.OAuth2Credentials.set_store()=oauth2client.client.OAuth2Credentials-class.html#set_store"><a title="oauth2client.client.OAuth2Credentials.set_store" class="py-name" href="#" onclick="return doclink('link-17', 'set_store', 'link-17');">set_store</a></tt><tt class="py-op">(</tt><tt class="py-name">self</tt><tt class="py-op">)</tt> </tt>
-<a name="L150"></a><tt class="py-lineno">150</tt> <tt class="py-line"> <tt class="py-keyword">return</tt> <tt class="py-name">credential</tt> </tt>
-</div><a name="L151"></a><tt class="py-lineno">151</tt> <tt class="py-line"> </tt>
-<a name="_MultiStore._Storage.locked_put"></a><div id="_MultiStore._Storage.locked_put-def"><a name="L152"></a><tt class="py-lineno">152</tt> <a class="py-toggle" href="#" id="_MultiStore._Storage.locked_put-toggle" onclick="return toggle('_MultiStore._Storage.locked_put');">-</a><tt class="py-line"> <tt class="py-keyword">def</tt> <a class="py-def-name" href="oauth2client.multistore_file._MultiStore._Storage-class.html#locked_put">locked_put</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">,</tt> <tt class="py-param">credentials</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-</div><div id="_MultiStore._Storage.locked_put-collapsed" style="display:none;" pad="+++" indent="++++++++++"></div><div id="_MultiStore._Storage.locked_put-expanded"><a name="L153"></a><tt class="py-lineno">153</tt> <tt class="py-line"> <tt class="py-docstring">"""Write a credential.</tt> </tt>
-<a name="L154"></a><tt class="py-lineno">154</tt> <tt class="py-line"><tt class="py-docstring"></tt> </tt>
-<a name="L155"></a><tt class="py-lineno">155</tt> <tt class="py-line"><tt class="py-docstring"> The Storage lock must be held when this is called.</tt> </tt>
-<a name="L156"></a><tt class="py-lineno">156</tt> <tt class="py-line"><tt class="py-docstring"></tt> </tt>
-<a name="L157"></a><tt class="py-lineno">157</tt> <tt class="py-line"><tt class="py-docstring"> Args:</tt> </tt>
-<a name="L158"></a><tt class="py-lineno">158</tt> <tt class="py-line"><tt class="py-docstring"> credentials: Credentials, the credentials to store.</tt> </tt>
-<a name="L159"></a><tt class="py-lineno">159</tt> <tt class="py-line"><tt class="py-docstring"> """</tt> </tt>
-<a name="L160"></a><tt class="py-lineno">160</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">_multistore</tt><tt class="py-op">.</tt><tt id="link-18" class="py-name" targets="Method oauth2client.multistore_file._MultiStore._update_credential()=oauth2client.multistore_file._MultiStore-class.html#_update_credential"><a title="oauth2client.multistore_file._MultiStore._update_credential" class="py-name" href="#" onclick="return doclink('link-18', '_update_credential', 'link-18');">_update_credential</a></tt><tt class="py-op">(</tt><tt id="link-19" class="py-name" targets="Variable oauth2client.appengine.CredentialsModel.credentials=oauth2client.appengine.CredentialsModel-class.html#credentials"><a title="oauth2client.appengine.CredentialsModel.credentials" class="py-name" href="#" onclick="return doclink('link-19', 'credentials', 'link-19');">credentials</a></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>
-</div><a name="L161"></a><tt class="py-lineno">161</tt> <tt class="py-line"> </tt>
-<a name="_MultiStore._Storage.locked_delete"></a><div id="_MultiStore._Storage.locked_delete-def"><a name="L162"></a><tt class="py-lineno">162</tt> <a class="py-toggle" href="#" id="_MultiStore._Storage.locked_delete-toggle" onclick="return toggle('_MultiStore._Storage.locked_delete');">-</a><tt class="py-line"> <tt class="py-keyword">def</tt> <a class="py-def-name" href="oauth2client.multistore_file._MultiStore._Storage-class.html#locked_delete">locked_delete</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-</div><div id="_MultiStore._Storage.locked_delete-collapsed" style="display:none;" pad="+++" indent="++++++++++"></div><div id="_MultiStore._Storage.locked_delete-expanded"><a name="L163"></a><tt class="py-lineno">163</tt> <tt class="py-line"> <tt class="py-docstring">"""Delete a credential.</tt> </tt>
-<a name="L164"></a><tt class="py-lineno">164</tt> <tt class="py-line"><tt class="py-docstring"></tt> </tt>
-<a name="L165"></a><tt class="py-lineno">165</tt> <tt class="py-line"><tt class="py-docstring"> The Storage lock must be held when this is called.</tt> </tt>
-<a name="L166"></a><tt class="py-lineno">166</tt> <tt class="py-line"><tt class="py-docstring"></tt> </tt>
-<a name="L167"></a><tt class="py-lineno">167</tt> <tt class="py-line"><tt class="py-docstring"> Args:</tt> </tt>
-<a name="L168"></a><tt class="py-lineno">168</tt> <tt class="py-line"><tt class="py-docstring"> credentials: Credentials, the credentials to store.</tt> </tt>
-<a name="L169"></a><tt class="py-lineno">169</tt> <tt class="py-line"><tt class="py-docstring"> """</tt> </tt>
-<a name="L170"></a><tt class="py-lineno">170</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">_multistore</tt><tt class="py-op">.</tt><tt id="link-20" class="py-name" targets="Method oauth2client.multistore_file._MultiStore._delete_credential()=oauth2client.multistore_file._MultiStore-class.html#_delete_credential"><a title="oauth2client.multistore_file._MultiStore._delete_credential" class="py-name" href="#" onclick="return doclink('link-20', '_delete_credential', 'link-20');">_delete_credential</a></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 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="L171"></a><tt class="py-lineno">171</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">_scope</tt><tt class="py-op">)</tt> </tt>
-</div></div><a name="L172"></a><tt class="py-lineno">172</tt> <tt class="py-line"> </tt>
-<a name="_MultiStore._create_file_if_needed"></a><div id="_MultiStore._create_file_if_needed-def"><a name="L173"></a><tt class="py-lineno">173</tt> <a class="py-toggle" href="#" id="_MultiStore._create_file_if_needed-toggle" onclick="return toggle('_MultiStore._create_file_if_needed');">-</a><tt class="py-line"> <tt class="py-keyword">def</tt> <a class="py-def-name" href="oauth2client.multistore_file._MultiStore-class.html#_create_file_if_needed">_create_file_if_needed</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-</div><div id="_MultiStore._create_file_if_needed-collapsed" style="display:none;" pad="+++" indent="++++++"></div><div id="_MultiStore._create_file_if_needed-expanded"><a name="L174"></a><tt class="py-lineno">174</tt> <tt class="py-line"> <tt class="py-docstring">"""Create an empty file if necessary.</tt> </tt>
-<a name="L175"></a><tt class="py-lineno">175</tt> <tt class="py-line"><tt class="py-docstring"></tt> </tt>
-<a name="L176"></a><tt class="py-lineno">176</tt> <tt class="py-line"><tt class="py-docstring"> This method will not initialize the file. Instead it implements a</tt> </tt>
-<a name="L177"></a><tt class="py-lineno">177</tt> <tt class="py-line"><tt class="py-docstring"> simple version of "touch" to ensure the file has been created.</tt> </tt>
-<a name="L178"></a><tt class="py-lineno">178</tt> <tt class="py-line"><tt class="py-docstring"> """</tt> </tt>
-<a name="L179"></a><tt class="py-lineno">179</tt> <tt class="py-line"> <tt class="py-keyword">if</tt> <tt class="py-keyword">not</tt> <tt class="py-name">os</tt><tt class="py-op">.</tt><tt class="py-name">path</tt><tt class="py-op">.</tt><tt class="py-name">exists</tt><tt class="py-op">(</tt><tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">_filename</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-<a name="L180"></a><tt class="py-lineno">180</tt> <tt class="py-line"> <tt class="py-name">old_umask</tt> <tt class="py-op">=</tt> <tt class="py-name">os</tt><tt class="py-op">.</tt><tt class="py-name">umask</tt><tt class="py-op">(</tt><tt class="py-number">0177</tt><tt class="py-op">)</tt> </tt>
-<a name="L181"></a><tt class="py-lineno">181</tt> <tt class="py-line"> <tt class="py-keyword">try</tt><tt class="py-op">:</tt> </tt>
-<a name="L182"></a><tt class="py-lineno">182</tt> <tt class="py-line"> <tt class="py-name">open</tt><tt class="py-op">(</tt><tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">_filename</tt><tt class="py-op">,</tt> <tt class="py-string">'a+b'</tt><tt class="py-op">)</tt><tt class="py-op">.</tt><tt class="py-name">close</tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
-<a name="L183"></a><tt class="py-lineno">183</tt> <tt class="py-line"> <tt class="py-keyword">finally</tt><tt class="py-op">:</tt> </tt>
-<a name="L184"></a><tt class="py-lineno">184</tt> <tt class="py-line"> <tt class="py-name">os</tt><tt class="py-op">.</tt><tt class="py-name">umask</tt><tt class="py-op">(</tt><tt class="py-name">old_umask</tt><tt class="py-op">)</tt> </tt>
-</div><a name="L185"></a><tt class="py-lineno">185</tt> <tt class="py-line"> </tt>
-<a name="_MultiStore._lock"></a><div id="_MultiStore._lock-def"><a name="L186"></a><tt class="py-lineno">186</tt> <a class="py-toggle" href="#" id="_MultiStore._lock-toggle" onclick="return toggle('_MultiStore._lock');">-</a><tt class="py-line"> <tt class="py-keyword">def</tt> <a class="py-def-name" href="oauth2client.multistore_file._MultiStore-class.html#_lock">_lock</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-</div><div id="_MultiStore._lock-collapsed" style="display:none;" pad="+++" indent="++++++"></div><div id="_MultiStore._lock-expanded"><a name="L187"></a><tt class="py-lineno">187</tt> <tt class="py-line"> <tt class="py-docstring">"""Lock the entire multistore."""</tt> </tt>
-<a name="L188"></a><tt class="py-lineno">188</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">_thread_lock</tt><tt class="py-op">.</tt><tt class="py-name">acquire</tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
-<a name="L189"></a><tt class="py-lineno">189</tt> <tt class="py-line"> <tt class="py-comment"># Check to see if the file is writeable.</tt> </tt>
-<a name="L190"></a><tt class="py-lineno">190</tt> <tt class="py-line"> <tt class="py-keyword">try</tt><tt class="py-op">:</tt> </tt>
-<a name="L191"></a><tt class="py-lineno">191</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">_file_handle</tt> <tt class="py-op">=</tt> <tt class="py-name">open</tt><tt class="py-op">(</tt><tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">_filename</tt><tt class="py-op">,</tt> <tt class="py-string">'r+b'</tt><tt class="py-op">)</tt> </tt>
-<a name="L192"></a><tt class="py-lineno">192</tt> <tt class="py-line"> <tt class="py-name">fcntl</tt><tt class="py-op">.</tt><tt class="py-name">lockf</tt><tt class="py-op">(</tt><tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">_file_handle</tt><tt class="py-op">.</tt><tt class="py-name">fileno</tt><tt class="py-op">(</tt><tt class="py-op">)</tt><tt class="py-op">,</tt> <tt class="py-name">fcntl</tt><tt class="py-op">.</tt><tt class="py-name">LOCK_EX</tt><tt class="py-op">)</tt> </tt>
-<a name="L193"></a><tt class="py-lineno">193</tt> <tt class="py-line"> <tt class="py-keyword">except</tt> <tt class="py-name">IOError</tt><tt class="py-op">,</tt> <tt class="py-name">e</tt><tt class="py-op">:</tt> </tt>
-<a name="L194"></a><tt class="py-lineno">194</tt> <tt class="py-line"> <tt class="py-keyword">if</tt> <tt class="py-name">e</tt><tt class="py-op">.</tt><tt class="py-name">errno</tt> <tt class="py-op">!=</tt> <tt class="py-name">errno</tt><tt class="py-op">.</tt><tt class="py-name">EACCES</tt><tt class="py-op">:</tt> </tt>
-<a name="L195"></a><tt class="py-lineno">195</tt> <tt class="py-line"> <tt class="py-keyword">raise</tt> <tt class="py-name">e</tt> </tt>
-<a name="L196"></a><tt class="py-lineno">196</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">_file_handle</tt> <tt class="py-op">=</tt> <tt class="py-name">open</tt><tt class="py-op">(</tt><tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">_filename</tt><tt class="py-op">,</tt> <tt class="py-string">'rb'</tt><tt class="py-op">)</tt> </tt>
-<a name="L197"></a><tt class="py-lineno">197</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">_read_only</tt> <tt class="py-op">=</tt> <tt class="py-name">True</tt> </tt>
-<a name="L198"></a><tt class="py-lineno">198</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">_warn_on_readonly</tt><tt class="py-op">:</tt> </tt>
-<a name="L199"></a><tt class="py-lineno">199</tt> <tt class="py-line"> <tt id="link-21" class="py-name"><a title="apiclient.discovery.logger
+<a name="L99"></a><tt class="py-lineno"> 99</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">_read_only</tt> <tt class="py-op">=</tt> <tt class="py-name">False</tt> </tt>
+<a name="L100"></a><tt class="py-lineno">100</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">_warn_on_readonly</tt> <tt class="py-op">=</tt> <tt class="py-name">warn_on_readonly</tt> </tt>
+<a name="L101"></a><tt class="py-lineno">101</tt> <tt class="py-line"> </tt>
+<a name="L102"></a><tt class="py-lineno">102</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-21" class="py-name" targets="Method oauth2client.file.Storage._create_file_if_needed()=oauth2client.file.Storage-class.html#_create_file_if_needed,Method oauth2client.multistore_file._MultiStore._create_file_if_needed()=oauth2client.multistore_file._MultiStore-class.html#_create_file_if_needed"><a title="oauth2client.file.Storage._create_file_if_needed
+oauth2client.multistore_file._MultiStore._create_file_if_needed" class="py-name" href="#" onclick="return doclink('link-21', '_create_file_if_needed', 'link-21');">_create_file_if_needed</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
+<a name="L103"></a><tt class="py-lineno">103</tt> <tt class="py-line"> </tt>
+<a name="L104"></a><tt class="py-lineno">104</tt> <tt class="py-line"> <tt class="py-comment"># Cache of deserialized store. This is only valid after the</tt> </tt>
+<a name="L105"></a><tt class="py-lineno">105</tt> <tt class="py-line"> <tt class="py-comment"># _MultiStore is locked or _refresh_data_cache is called. This is</tt> </tt>
+<a name="L106"></a><tt class="py-lineno">106</tt> <tt class="py-line"> <tt class="py-comment"># of the form of:</tt> </tt>
+<a name="L107"></a><tt class="py-lineno">107</tt> <tt class="py-line"> <tt class="py-comment">#</tt> </tt>
+<a name="L108"></a><tt class="py-lineno">108</tt> <tt class="py-line"> <tt class="py-comment"># (client_id, user_agent, scope) -> OAuth2Credential</tt> </tt>
+<a name="L109"></a><tt class="py-lineno">109</tt> <tt class="py-line"> <tt class="py-comment">#</tt> </tt>
+<a name="L110"></a><tt class="py-lineno">110</tt> <tt class="py-line"> <tt class="py-comment"># If this is None, then the store hasn't been read yet.</tt> </tt>
+<a name="L111"></a><tt class="py-lineno">111</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">_data</tt> <tt class="py-op">=</tt> <tt class="py-name">None</tt> </tt>
+</div><a name="L112"></a><tt class="py-lineno">112</tt> <tt class="py-line"> </tt>
+<a name="_MultiStore._Storage"></a><div id="_MultiStore._Storage-def"><a name="L113"></a><tt class="py-lineno">113</tt> <a class="py-toggle" href="#" id="_MultiStore._Storage-toggle" onclick="return toggle('_MultiStore._Storage');">-</a><tt class="py-line"> <tt class="py-keyword">class</tt> <a class="py-def-name" href="oauth2client.multistore_file._MultiStore._Storage-class.html">_Storage</a><tt class="py-op">(</tt><tt class="py-base-class">BaseStorage</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+</div><div id="_MultiStore._Storage-collapsed" style="display:none;" pad="+++" indent="++++++"></div><div id="_MultiStore._Storage-expanded"><a name="L114"></a><tt class="py-lineno">114</tt> <tt class="py-line"> <tt class="py-docstring">"""A Storage object that knows how to read/write a single credential."""</tt> </tt>
+<a name="L115"></a><tt class="py-lineno">115</tt> <tt class="py-line"> </tt>
+<a name="_MultiStore._Storage.__init__"></a><div id="_MultiStore._Storage.__init__-def"><a name="L116"></a><tt class="py-lineno">116</tt> <a class="py-toggle" href="#" id="_MultiStore._Storage.__init__-toggle" onclick="return toggle('_MultiStore._Storage.__init__');">-</a><tt class="py-line"> <tt class="py-keyword">def</tt> <a class="py-def-name" href="oauth2client.multistore_file._MultiStore._Storage-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">multistore</tt><tt class="py-op">,</tt> <tt class="py-param">client_id</tt><tt class="py-op">,</tt> <tt class="py-param">user_agent</tt><tt class="py-op">,</tt> <tt class="py-param">scope</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+</div><div id="_MultiStore._Storage.__init__-collapsed" style="display:none;" pad="+++" indent="++++++++++"></div><div id="_MultiStore._Storage.__init__-expanded"><a name="L117"></a><tt class="py-lineno">117</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">_multistore</tt> <tt class="py-op">=</tt> <tt class="py-name">multistore</tt> </tt>
+<a name="L118"></a><tt class="py-lineno">118</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">_client_id</tt> <tt class="py-op">=</tt> <tt class="py-name">client_id</tt> </tt>
+<a name="L119"></a><tt class="py-lineno">119</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">_user_agent</tt> <tt class="py-op">=</tt> <tt class="py-name">user_agent</tt> </tt>
+<a name="L120"></a><tt class="py-lineno">120</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">_scope</tt> <tt class="py-op">=</tt> <tt class="py-name">scope</tt> </tt>
+</div><a name="L121"></a><tt class="py-lineno">121</tt> <tt class="py-line"> </tt>
+<a name="_MultiStore._Storage.acquire_lock"></a><div id="_MultiStore._Storage.acquire_lock-def"><a name="L122"></a><tt class="py-lineno">122</tt> <a class="py-toggle" href="#" id="_MultiStore._Storage.acquire_lock-toggle" onclick="return toggle('_MultiStore._Storage.acquire_lock');">-</a><tt class="py-line"> <tt class="py-keyword">def</tt> <a class="py-def-name" href="oauth2client.multistore_file._MultiStore._Storage-class.html#acquire_lock">acquire_lock</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+</div><div id="_MultiStore._Storage.acquire_lock-collapsed" style="display:none;" pad="+++" indent="++++++++++"></div><div id="_MultiStore._Storage.acquire_lock-expanded"><a name="L123"></a><tt class="py-lineno">123</tt> <tt class="py-line"> <tt class="py-docstring">"""Acquires any lock necessary to access this Storage.</tt> </tt>
+<a name="L124"></a><tt class="py-lineno">124</tt> <tt class="py-line"><tt class="py-docstring"></tt> </tt>
+<a name="L125"></a><tt class="py-lineno">125</tt> <tt class="py-line"><tt class="py-docstring"> This lock is not reentrant.</tt> </tt>
+<a name="L126"></a><tt class="py-lineno">126</tt> <tt class="py-line"><tt class="py-docstring"> """</tt> </tt>
+<a name="L127"></a><tt class="py-lineno">127</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">_multistore</tt><tt class="py-op">.</tt><tt id="link-22" class="py-name" targets="Method oauth2client.multistore_file._MultiStore._lock()=oauth2client.multistore_file._MultiStore-class.html#_lock"><a title="oauth2client.multistore_file._MultiStore._lock" class="py-name" href="#" onclick="return doclink('link-22', '_lock', 'link-22');">_lock</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
+</div><a name="L128"></a><tt class="py-lineno">128</tt> <tt class="py-line"> </tt>
+<a name="_MultiStore._Storage.release_lock"></a><div id="_MultiStore._Storage.release_lock-def"><a name="L129"></a><tt class="py-lineno">129</tt> <a class="py-toggle" href="#" id="_MultiStore._Storage.release_lock-toggle" onclick="return toggle('_MultiStore._Storage.release_lock');">-</a><tt class="py-line"> <tt class="py-keyword">def</tt> <a class="py-def-name" href="oauth2client.multistore_file._MultiStore._Storage-class.html#release_lock">release_lock</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+</div><div id="_MultiStore._Storage.release_lock-collapsed" style="display:none;" pad="+++" indent="++++++++++"></div><div id="_MultiStore._Storage.release_lock-expanded"><a name="L130"></a><tt class="py-lineno">130</tt> <tt class="py-line"> <tt class="py-docstring">"""Release the Storage lock.</tt> </tt>
+<a name="L131"></a><tt class="py-lineno">131</tt> <tt class="py-line"><tt class="py-docstring"></tt> </tt>
+<a name="L132"></a><tt class="py-lineno">132</tt> <tt class="py-line"><tt class="py-docstring"> Trying to release a lock that isn't held will result in a</tt> </tt>
+<a name="L133"></a><tt class="py-lineno">133</tt> <tt class="py-line"><tt class="py-docstring"> RuntimeError.</tt> </tt>
+<a name="L134"></a><tt class="py-lineno">134</tt> <tt class="py-line"><tt class="py-docstring"> """</tt> </tt>
+<a name="L135"></a><tt class="py-lineno">135</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">_multistore</tt><tt class="py-op">.</tt><tt id="link-23" class="py-name" targets="Method oauth2client.multistore_file._MultiStore._unlock()=oauth2client.multistore_file._MultiStore-class.html#_unlock"><a title="oauth2client.multistore_file._MultiStore._unlock" class="py-name" href="#" onclick="return doclink('link-23', '_unlock', 'link-23');">_unlock</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
+</div><a name="L136"></a><tt class="py-lineno">136</tt> <tt class="py-line"> </tt>
+<a name="_MultiStore._Storage.locked_get"></a><div id="_MultiStore._Storage.locked_get-def"><a name="L137"></a><tt class="py-lineno">137</tt> <a class="py-toggle" href="#" id="_MultiStore._Storage.locked_get-toggle" onclick="return toggle('_MultiStore._Storage.locked_get');">-</a><tt class="py-line"> <tt class="py-keyword">def</tt> <a class="py-def-name" href="oauth2client.multistore_file._MultiStore._Storage-class.html#locked_get">locked_get</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+</div><div id="_MultiStore._Storage.locked_get-collapsed" style="display:none;" pad="+++" indent="++++++++++"></div><div id="_MultiStore._Storage.locked_get-expanded"><a name="L138"></a><tt class="py-lineno">138</tt> <tt class="py-line"> <tt class="py-docstring">"""Retrieve credential.</tt> </tt>
+<a name="L139"></a><tt class="py-lineno">139</tt> <tt class="py-line"><tt class="py-docstring"></tt> </tt>
+<a name="L140"></a><tt class="py-lineno">140</tt> <tt class="py-line"><tt class="py-docstring"> The Storage lock must be held when this is called.</tt> </tt>
+<a name="L141"></a><tt class="py-lineno">141</tt> <tt class="py-line"><tt class="py-docstring"></tt> </tt>
+<a name="L142"></a><tt class="py-lineno">142</tt> <tt class="py-line"><tt class="py-docstring"> Returns:</tt> </tt>
+<a name="L143"></a><tt class="py-lineno">143</tt> <tt class="py-line"><tt class="py-docstring"> oauth2client.client.Credentials</tt> </tt>
+<a name="L144"></a><tt class="py-lineno">144</tt> <tt class="py-line"><tt class="py-docstring"> """</tt> </tt>
+<a name="L145"></a><tt class="py-lineno">145</tt> <tt class="py-line"> <tt class="py-name">credential</tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">_multistore</tt><tt class="py-op">.</tt><tt id="link-24" class="py-name" targets="Method oauth2client.multistore_file._MultiStore._get_credential()=oauth2client.multistore_file._MultiStore-class.html#_get_credential"><a title="oauth2client.multistore_file._MultiStore._get_credential" class="py-name" href="#" onclick="return doclink('link-24', '_get_credential', 'link-24');">_get_credential</a></tt><tt class="py-op">(</tt> </tt>
+<a name="L146"></a><tt class="py-lineno">146</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">_client_id</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 class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">_scope</tt><tt class="py-op">)</tt> </tt>
+<a name="L147"></a><tt class="py-lineno">147</tt> <tt class="py-line"> <tt class="py-keyword">if</tt> <tt class="py-name">credential</tt><tt class="py-op">:</tt> </tt>
+<a name="L148"></a><tt class="py-lineno">148</tt> <tt class="py-line"> <tt class="py-name">credential</tt><tt class="py-op">.</tt><tt id="link-25" class="py-name" targets="Method oauth2client.client.OAuth2Credentials.set_store()=oauth2client.client.OAuth2Credentials-class.html#set_store"><a title="oauth2client.client.OAuth2Credentials.set_store" class="py-name" href="#" onclick="return doclink('link-25', 'set_store', 'link-25');">set_store</a></tt><tt class="py-op">(</tt><tt class="py-name">self</tt><tt class="py-op">)</tt> </tt>
+<a name="L149"></a><tt class="py-lineno">149</tt> <tt class="py-line"> <tt class="py-keyword">return</tt> <tt class="py-name">credential</tt> </tt>
+</div><a name="L150"></a><tt class="py-lineno">150</tt> <tt class="py-line"> </tt>
+<a name="_MultiStore._Storage.locked_put"></a><div id="_MultiStore._Storage.locked_put-def"><a name="L151"></a><tt class="py-lineno">151</tt> <a class="py-toggle" href="#" id="_MultiStore._Storage.locked_put-toggle" onclick="return toggle('_MultiStore._Storage.locked_put');">-</a><tt class="py-line"> <tt class="py-keyword">def</tt> <a class="py-def-name" href="oauth2client.multistore_file._MultiStore._Storage-class.html#locked_put">locked_put</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">,</tt> <tt class="py-param">credentials</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+</div><div id="_MultiStore._Storage.locked_put-collapsed" style="display:none;" pad="+++" indent="++++++++++"></div><div id="_MultiStore._Storage.locked_put-expanded"><a name="L152"></a><tt class="py-lineno">152</tt> <tt class="py-line"> <tt class="py-docstring">"""Write a credential.</tt> </tt>
+<a name="L153"></a><tt class="py-lineno">153</tt> <tt class="py-line"><tt class="py-docstring"></tt> </tt>
+<a name="L154"></a><tt class="py-lineno">154</tt> <tt class="py-line"><tt class="py-docstring"> The Storage lock must be held when this is called.</tt> </tt>
+<a name="L155"></a><tt class="py-lineno">155</tt> <tt class="py-line"><tt class="py-docstring"></tt> </tt>
+<a name="L156"></a><tt class="py-lineno">156</tt> <tt class="py-line"><tt class="py-docstring"> Args:</tt> </tt>
+<a name="L157"></a><tt class="py-lineno">157</tt> <tt class="py-line"><tt class="py-docstring"> credentials: Credentials, the credentials to store.</tt> </tt>
+<a name="L158"></a><tt class="py-lineno">158</tt> <tt class="py-line"><tt class="py-docstring"> """</tt> </tt>
+<a name="L159"></a><tt class="py-lineno">159</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">_multistore</tt><tt class="py-op">.</tt><tt id="link-26" class="py-name" targets="Method oauth2client.multistore_file._MultiStore._update_credential()=oauth2client.multistore_file._MultiStore-class.html#_update_credential"><a title="oauth2client.multistore_file._MultiStore._update_credential" class="py-name" href="#" onclick="return doclink('link-26', '_update_credential', 'link-26');">_update_credential</a></tt><tt class="py-op">(</tt><tt id="link-27" class="py-name" targets="Variable oauth2client.appengine.CredentialsModel.credentials=oauth2client.appengine.CredentialsModel-class.html#credentials"><a title="oauth2client.appengine.CredentialsModel.credentials" class="py-name" href="#" onclick="return doclink('link-27', 'credentials', 'link-27');">credentials</a></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>
+</div><a name="L160"></a><tt class="py-lineno">160</tt> <tt class="py-line"> </tt>
+<a name="_MultiStore._Storage.locked_delete"></a><div id="_MultiStore._Storage.locked_delete-def"><a name="L161"></a><tt class="py-lineno">161</tt> <a class="py-toggle" href="#" id="_MultiStore._Storage.locked_delete-toggle" onclick="return toggle('_MultiStore._Storage.locked_delete');">-</a><tt class="py-line"> <tt class="py-keyword">def</tt> <a class="py-def-name" href="oauth2client.multistore_file._MultiStore._Storage-class.html#locked_delete">locked_delete</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+</div><div id="_MultiStore._Storage.locked_delete-collapsed" style="display:none;" pad="+++" indent="++++++++++"></div><div id="_MultiStore._Storage.locked_delete-expanded"><a name="L162"></a><tt class="py-lineno">162</tt> <tt class="py-line"> <tt class="py-docstring">"""Delete a credential.</tt> </tt>
+<a name="L163"></a><tt class="py-lineno">163</tt> <tt class="py-line"><tt class="py-docstring"></tt> </tt>
+<a name="L164"></a><tt class="py-lineno">164</tt> <tt class="py-line"><tt class="py-docstring"> The Storage lock must be held when this is called.</tt> </tt>
+<a name="L165"></a><tt class="py-lineno">165</tt> <tt class="py-line"><tt class="py-docstring"></tt> </tt>
+<a name="L166"></a><tt class="py-lineno">166</tt> <tt class="py-line"><tt class="py-docstring"> Args:</tt> </tt>
+<a name="L167"></a><tt class="py-lineno">167</tt> <tt class="py-line"><tt class="py-docstring"> credentials: Credentials, the credentials to store.</tt> </tt>
+<a name="L168"></a><tt class="py-lineno">168</tt> <tt class="py-line"><tt class="py-docstring"> """</tt> </tt>
+<a name="L169"></a><tt class="py-lineno">169</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">_multistore</tt><tt class="py-op">.</tt><tt id="link-28" class="py-name" targets="Method oauth2client.multistore_file._MultiStore._delete_credential()=oauth2client.multistore_file._MultiStore-class.html#_delete_credential"><a title="oauth2client.multistore_file._MultiStore._delete_credential" class="py-name" href="#" onclick="return doclink('link-28', '_delete_credential', 'link-28');">_delete_credential</a></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 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="L170"></a><tt class="py-lineno">170</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">_scope</tt><tt class="py-op">)</tt> </tt>
+</div></div><a name="L171"></a><tt class="py-lineno">171</tt> <tt class="py-line"> </tt>
+<a name="_MultiStore._create_file_if_needed"></a><div id="_MultiStore._create_file_if_needed-def"><a name="L172"></a><tt class="py-lineno">172</tt> <a class="py-toggle" href="#" id="_MultiStore._create_file_if_needed-toggle" onclick="return toggle('_MultiStore._create_file_if_needed');">-</a><tt class="py-line"> <tt class="py-keyword">def</tt> <a class="py-def-name" href="oauth2client.multistore_file._MultiStore-class.html#_create_file_if_needed">_create_file_if_needed</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+</div><div id="_MultiStore._create_file_if_needed-collapsed" style="display:none;" pad="+++" indent="++++++"></div><div id="_MultiStore._create_file_if_needed-expanded"><a name="L173"></a><tt class="py-lineno">173</tt> <tt class="py-line"> <tt class="py-docstring">"""Create an empty file if necessary.</tt> </tt>
+<a name="L174"></a><tt class="py-lineno">174</tt> <tt class="py-line"><tt class="py-docstring"></tt> </tt>
+<a name="L175"></a><tt class="py-lineno">175</tt> <tt class="py-line"><tt class="py-docstring"> This method will not initialize the file. Instead it implements a</tt> </tt>
+<a name="L176"></a><tt class="py-lineno">176</tt> <tt class="py-line"><tt class="py-docstring"> simple version of "touch" to ensure the file has been created.</tt> </tt>
+<a name="L177"></a><tt class="py-lineno">177</tt> <tt class="py-line"><tt class="py-docstring"> """</tt> </tt>
+<a name="L178"></a><tt class="py-lineno">178</tt> <tt class="py-line"> <tt class="py-keyword">if</tt> <tt class="py-keyword">not</tt> <tt class="py-name">os</tt><tt class="py-op">.</tt><tt class="py-name">path</tt><tt class="py-op">.</tt><tt class="py-name">exists</tt><tt class="py-op">(</tt><tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">_file</tt><tt class="py-op">.</tt><tt id="link-29" class="py-name"><a title="oauth2client.locked_file.LockedFile.filename
+oauth2client.locked_file._Opener.filename" class="py-name" href="#" onclick="return doclink('link-29', 'filename', 'link-10');">filename</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+<a name="L179"></a><tt class="py-lineno">179</tt> <tt class="py-line"> <tt class="py-name">old_umask</tt> <tt class="py-op">=</tt> <tt class="py-name">os</tt><tt class="py-op">.</tt><tt class="py-name">umask</tt><tt class="py-op">(</tt><tt class="py-number">0177</tt><tt class="py-op">)</tt> </tt>
+<a name="L180"></a><tt class="py-lineno">180</tt> <tt class="py-line"> <tt class="py-keyword">try</tt><tt class="py-op">:</tt> </tt>
+<a name="L181"></a><tt class="py-lineno">181</tt> <tt class="py-line"> <tt class="py-name">open</tt><tt class="py-op">(</tt><tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">_file</tt><tt class="py-op">.</tt><tt id="link-30" class="py-name"><a title="oauth2client.locked_file.LockedFile.filename
+oauth2client.locked_file._Opener.filename" class="py-name" href="#" onclick="return doclink('link-30', 'filename', 'link-10');">filename</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt><tt class="py-op">,</tt> <tt class="py-string">'a+b'</tt><tt class="py-op">)</tt><tt class="py-op">.</tt><tt class="py-name">close</tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
+<a name="L182"></a><tt class="py-lineno">182</tt> <tt class="py-line"> <tt class="py-keyword">finally</tt><tt class="py-op">:</tt> </tt>
+<a name="L183"></a><tt class="py-lineno">183</tt> <tt class="py-line"> <tt class="py-name">os</tt><tt class="py-op">.</tt><tt class="py-name">umask</tt><tt class="py-op">(</tt><tt class="py-name">old_umask</tt><tt class="py-op">)</tt> </tt>
+</div><a name="L184"></a><tt class="py-lineno">184</tt> <tt class="py-line"> </tt>
+<a name="_MultiStore._lock"></a><div id="_MultiStore._lock-def"><a name="L185"></a><tt class="py-lineno">185</tt> <a class="py-toggle" href="#" id="_MultiStore._lock-toggle" onclick="return toggle('_MultiStore._lock');">-</a><tt class="py-line"> <tt class="py-keyword">def</tt> <a class="py-def-name" href="oauth2client.multistore_file._MultiStore-class.html#_lock">_lock</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+</div><div id="_MultiStore._lock-collapsed" style="display:none;" pad="+++" indent="++++++"></div><div id="_MultiStore._lock-expanded"><a name="L186"></a><tt class="py-lineno">186</tt> <tt class="py-line"> <tt class="py-docstring">"""Lock the entire multistore."""</tt> </tt>
+<a name="L187"></a><tt class="py-lineno">187</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">_thread_lock</tt><tt class="py-op">.</tt><tt class="py-name">acquire</tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
+<a name="L188"></a><tt class="py-lineno">188</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">_file</tt><tt class="py-op">.</tt><tt id="link-31" class="py-name" targets="Method oauth2client.locked_file.LockedFile.open_and_lock()=oauth2client.locked_file.LockedFile-class.html#open_and_lock,Method oauth2client.locked_file._FcntlOpener.open_and_lock()=oauth2client.locked_file._FcntlOpener-class.html#open_and_lock,Method oauth2client.locked_file._Opener.open_and_lock()=oauth2client.locked_file._Opener-class.html#open_and_lock,Method oauth2client.locked_file._PosixOpener.open_and_lock()=oauth2client.locked_file._PosixOpener-class.html#open_and_lock"><a title="oauth2client.locked_file.LockedFile.open_and_lock
+oauth2client.locked_file._FcntlOpener.open_and_lock
+oauth2client.locked_file._Opener.open_and_lock
+oauth2client.locked_file._PosixOpener.open_and_lock" class="py-name" href="#" onclick="return doclink('link-31', 'open_and_lock', 'link-31');">open_and_lock</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
+<a name="L189"></a><tt class="py-lineno">189</tt> <tt class="py-line"> <tt class="py-keyword">if</tt> <tt class="py-keyword">not</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">_file</tt><tt class="py-op">.</tt><tt id="link-32" class="py-name" targets="Method oauth2client.locked_file.LockedFile.is_locked()=oauth2client.locked_file.LockedFile-class.html#is_locked,Method oauth2client.locked_file._Opener.is_locked()=oauth2client.locked_file._Opener-class.html#is_locked"><a title="oauth2client.locked_file.LockedFile.is_locked
+oauth2client.locked_file._Opener.is_locked" class="py-name" href="#" onclick="return doclink('link-32', 'is_locked', 'link-32');">is_locked</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+<a name="L190"></a><tt class="py-lineno">190</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">_read_only</tt> <tt class="py-op">=</tt> <tt class="py-name">True</tt> </tt>
+<a name="L191"></a><tt class="py-lineno">191</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">_warn_on_readonly</tt><tt class="py-op">:</tt> </tt>
+<a name="L192"></a><tt class="py-lineno">192</tt> <tt class="py-line"> <tt id="link-33" class="py-name"><a title="apiclient.discovery.logger
oauth2client.client.logger
-oauth2client.multistore_file.logger" class="py-name" href="#" onclick="return doclink('link-21', 'logger', 'link-5');">logger</a></tt><tt class="py-op">.</tt><tt class="py-name">warn</tt><tt class="py-op">(</tt><tt class="py-string">'The credentials file (%s) is not writable. Opening in '</tt> </tt>
-<a name="L200"></a><tt class="py-lineno">200</tt> <tt class="py-line"> <tt class="py-string">'read-only mode. Any refreshed credentials will only be '</tt> </tt>
-<a name="L201"></a><tt class="py-lineno">201</tt> <tt class="py-line"> <tt class="py-string">'valid for this run.'</tt> <tt class="py-op">%</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">_filename</tt><tt class="py-op">)</tt> </tt>
-<a name="L202"></a><tt class="py-lineno">202</tt> <tt class="py-line"> <tt class="py-keyword">if</tt> <tt class="py-name">os</tt><tt class="py-op">.</tt><tt class="py-name">path</tt><tt class="py-op">.</tt><tt class="py-name">getsize</tt><tt class="py-op">(</tt><tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">_filename</tt><tt class="py-op">)</tt> <tt class="py-op">==</tt> <tt class="py-number">0</tt><tt class="py-op">:</tt> </tt>
-<a name="L203"></a><tt class="py-lineno">203</tt> <tt class="py-line"> <tt id="link-22" class="py-name"><a title="apiclient.discovery.logger
+oauth2client.locked_file.logger
+oauth2client.multistore_file.logger" class="py-name" href="#" onclick="return doclink('link-33', 'logger', 'link-7');">logger</a></tt><tt class="py-op">.</tt><tt class="py-name">warn</tt><tt class="py-op">(</tt><tt class="py-string">'The credentials file (%s) is not writable. Opening in '</tt> </tt>
+<a name="L193"></a><tt class="py-lineno">193</tt> <tt class="py-line"> <tt class="py-string">'read-only mode. Any refreshed credentials will only be '</tt> </tt>
+<a name="L194"></a><tt class="py-lineno">194</tt> <tt class="py-line"> <tt class="py-string">'valid for this run.'</tt> <tt class="py-op">%</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">_file</tt><tt class="py-op">.</tt><tt id="link-34" class="py-name"><a title="oauth2client.locked_file.LockedFile.filename
+oauth2client.locked_file._Opener.filename" class="py-name" href="#" onclick="return doclink('link-34', 'filename', 'link-10');">filename</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
+<a name="L195"></a><tt class="py-lineno">195</tt> <tt class="py-line"> <tt class="py-keyword">if</tt> <tt class="py-name">os</tt><tt class="py-op">.</tt><tt class="py-name">path</tt><tt class="py-op">.</tt><tt class="py-name">getsize</tt><tt class="py-op">(</tt><tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">_file</tt><tt class="py-op">.</tt><tt id="link-35" class="py-name"><a title="oauth2client.locked_file.LockedFile.filename
+oauth2client.locked_file._Opener.filename" class="py-name" href="#" onclick="return doclink('link-35', 'filename', 'link-10');">filename</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> <tt class="py-op">==</tt> <tt class="py-number">0</tt><tt class="py-op">:</tt> </tt>
+<a name="L196"></a><tt class="py-lineno">196</tt> <tt class="py-line"> <tt id="link-36" class="py-name"><a title="apiclient.discovery.logger
oauth2client.client.logger
-oauth2client.multistore_file.logger" class="py-name" href="#" onclick="return doclink('link-22', 'logger', 'link-5');">logger</a></tt><tt class="py-op">.</tt><tt class="py-name">debug</tt><tt class="py-op">(</tt><tt class="py-string">'Initializing empty multistore file'</tt><tt class="py-op">)</tt> </tt>
-<a name="L204"></a><tt class="py-lineno">204</tt> <tt class="py-line"> <tt class="py-comment"># The multistore is empty so write out an empty file.</tt> </tt>
-<a name="L205"></a><tt class="py-lineno">205</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">_data</tt> <tt class="py-op">=</tt> <tt class="py-op">{</tt><tt class="py-op">}</tt> </tt>
-<a name="L206"></a><tt class="py-lineno">206</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-23" class="py-name" targets="Method oauth2client.multistore_file._MultiStore._write()=oauth2client.multistore_file._MultiStore-class.html#_write"><a title="oauth2client.multistore_file._MultiStore._write" class="py-name" href="#" onclick="return doclink('link-23', '_write', 'link-23');">_write</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
-<a name="L207"></a><tt class="py-lineno">207</tt> <tt class="py-line"> <tt class="py-keyword">elif</tt> <tt class="py-keyword">not</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">_read_only</tt> <tt class="py-keyword">or</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">_data</tt> <tt class="py-keyword">is</tt> <tt class="py-name">None</tt><tt class="py-op">:</tt> </tt>
-<a name="L208"></a><tt class="py-lineno">208</tt> <tt class="py-line"> <tt class="py-comment"># Only refresh the data if we are read/write or we haven't</tt> </tt>
-<a name="L209"></a><tt class="py-lineno">209</tt> <tt class="py-line"> <tt class="py-comment"># cached the data yet. If we are readonly, we assume is isn't</tt> </tt>
-<a name="L210"></a><tt class="py-lineno">210</tt> <tt class="py-line"> <tt class="py-comment"># changing out from under us and that we only have to read it</tt> </tt>
-<a name="L211"></a><tt class="py-lineno">211</tt> <tt class="py-line"> <tt class="py-comment"># once. This prevents us from whacking any new access keys that</tt> </tt>
-<a name="L212"></a><tt class="py-lineno">212</tt> <tt class="py-line"> <tt class="py-comment"># we have cached in memory but were unable to write out.</tt> </tt>
-<a name="L213"></a><tt class="py-lineno">213</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-24" class="py-name" targets="Method oauth2client.multistore_file._MultiStore._refresh_data_cache()=oauth2client.multistore_file._MultiStore-class.html#_refresh_data_cache"><a title="oauth2client.multistore_file._MultiStore._refresh_data_cache" class="py-name" href="#" onclick="return doclink('link-24', '_refresh_data_cache', 'link-24');">_refresh_data_cache</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
-</div><a name="L214"></a><tt class="py-lineno">214</tt> <tt class="py-line"> </tt>
-<a name="_MultiStore._unlock"></a><div id="_MultiStore._unlock-def"><a name="L215"></a><tt class="py-lineno">215</tt> <a class="py-toggle" href="#" id="_MultiStore._unlock-toggle" onclick="return toggle('_MultiStore._unlock');">-</a><tt class="py-line"> <tt class="py-keyword">def</tt> <a class="py-def-name" href="oauth2client.multistore_file._MultiStore-class.html#_unlock">_unlock</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-</div><div id="_MultiStore._unlock-collapsed" style="display:none;" pad="+++" indent="++++++"></div><div id="_MultiStore._unlock-expanded"><a name="L216"></a><tt class="py-lineno">216</tt> <tt class="py-line"> <tt class="py-docstring">"""Release the lock on the multistore."""</tt> </tt>
-<a name="L217"></a><tt class="py-lineno">217</tt> <tt class="py-line"> <tt class="py-keyword">if</tt> <tt class="py-keyword">not</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">_read_only</tt><tt class="py-op">:</tt> </tt>
-<a name="L218"></a><tt class="py-lineno">218</tt> <tt class="py-line"> <tt class="py-name">fcntl</tt><tt class="py-op">.</tt><tt class="py-name">lockf</tt><tt class="py-op">(</tt><tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">_file_handle</tt><tt class="py-op">.</tt><tt class="py-name">fileno</tt><tt class="py-op">(</tt><tt class="py-op">)</tt><tt class="py-op">,</tt> <tt class="py-name">fcntl</tt><tt class="py-op">.</tt><tt class="py-name">LOCK_UN</tt><tt class="py-op">)</tt> </tt>
-<a name="L219"></a><tt class="py-lineno">219</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">_file_handle</tt><tt class="py-op">.</tt><tt class="py-name">close</tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
-<a name="L220"></a><tt class="py-lineno">220</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">_thread_lock</tt><tt class="py-op">.</tt><tt class="py-name">release</tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
-</div><a name="L221"></a><tt class="py-lineno">221</tt> <tt class="py-line"> </tt>
-<a name="_MultiStore._locked_json_read"></a><div id="_MultiStore._locked_json_read-def"><a name="L222"></a><tt class="py-lineno">222</tt> <a class="py-toggle" href="#" id="_MultiStore._locked_json_read-toggle" onclick="return toggle('_MultiStore._locked_json_read');">-</a><tt class="py-line"> <tt class="py-keyword">def</tt> <a class="py-def-name" href="oauth2client.multistore_file._MultiStore-class.html#_locked_json_read">_locked_json_read</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-</div><div id="_MultiStore._locked_json_read-collapsed" style="display:none;" pad="+++" indent="++++++"></div><div id="_MultiStore._locked_json_read-expanded"><a name="L223"></a><tt class="py-lineno">223</tt> <tt class="py-line"> <tt class="py-docstring">"""Get the raw content of the multistore file.</tt> </tt>
-<a name="L224"></a><tt class="py-lineno">224</tt> <tt class="py-line"><tt class="py-docstring"></tt> </tt>
-<a name="L225"></a><tt class="py-lineno">225</tt> <tt class="py-line"><tt class="py-docstring"> The multistore must be locked when this is called.</tt> </tt>
-<a name="L226"></a><tt class="py-lineno">226</tt> <tt class="py-line"><tt class="py-docstring"></tt> </tt>
-<a name="L227"></a><tt class="py-lineno">227</tt> <tt class="py-line"><tt class="py-docstring"> Returns:</tt> </tt>
-<a name="L228"></a><tt class="py-lineno">228</tt> <tt class="py-line"><tt class="py-docstring"> The contents of the multistore decoded as JSON.</tt> </tt>
-<a name="L229"></a><tt class="py-lineno">229</tt> <tt class="py-line"><tt class="py-docstring"> """</tt> </tt>
-<a name="L230"></a><tt class="py-lineno">230</tt> <tt class="py-line"> <tt class="py-keyword">assert</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">_thread_lock</tt><tt class="py-op">.</tt><tt class="py-name">locked</tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
-<a name="L231"></a><tt class="py-lineno">231</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">_file_handle</tt><tt class="py-op">.</tt><tt class="py-name">seek</tt><tt class="py-op">(</tt><tt class="py-number">0</tt><tt class="py-op">)</tt> </tt>
-<a name="L232"></a><tt class="py-lineno">232</tt> <tt class="py-line"> <tt class="py-keyword">return</tt> <tt class="py-name">simplejson</tt><tt class="py-op">.</tt><tt id="link-25" class="py-name" targets="Function oauth2client.clientsecrets.load()=oauth2client.clientsecrets-module.html#load"><a title="oauth2client.clientsecrets.load" class="py-name" href="#" onclick="return doclink('link-25', 'load', 'link-25');">load</a></tt><tt class="py-op">(</tt><tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">_file_handle</tt><tt class="py-op">)</tt> </tt>
-</div><a name="L233"></a><tt class="py-lineno">233</tt> <tt class="py-line"> </tt>
-<a name="_MultiStore._locked_json_write"></a><div id="_MultiStore._locked_json_write-def"><a name="L234"></a><tt class="py-lineno">234</tt> <a class="py-toggle" href="#" id="_MultiStore._locked_json_write-toggle" onclick="return toggle('_MultiStore._locked_json_write');">-</a><tt class="py-line"> <tt class="py-keyword">def</tt> <a class="py-def-name" href="oauth2client.multistore_file._MultiStore-class.html#_locked_json_write">_locked_json_write</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">,</tt> <tt class="py-param">data</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-</div><div id="_MultiStore._locked_json_write-collapsed" style="display:none;" pad="+++" indent="++++++"></div><div id="_MultiStore._locked_json_write-expanded"><a name="L235"></a><tt class="py-lineno">235</tt> <tt class="py-line"> <tt class="py-docstring">"""Write a JSON serializable data structure to the multistore.</tt> </tt>
-<a name="L236"></a><tt class="py-lineno">236</tt> <tt class="py-line"><tt class="py-docstring"></tt> </tt>
-<a name="L237"></a><tt class="py-lineno">237</tt> <tt class="py-line"><tt class="py-docstring"> The multistore must be locked when this is called.</tt> </tt>
-<a name="L238"></a><tt class="py-lineno">238</tt> <tt class="py-line"><tt class="py-docstring"></tt> </tt>
-<a name="L239"></a><tt class="py-lineno">239</tt> <tt class="py-line"><tt class="py-docstring"> Args:</tt> </tt>
-<a name="L240"></a><tt class="py-lineno">240</tt> <tt class="py-line"><tt class="py-docstring"> data: The data to be serialized and written.</tt> </tt>
-<a name="L241"></a><tt class="py-lineno">241</tt> <tt class="py-line"><tt class="py-docstring"> """</tt> </tt>
-<a name="L242"></a><tt class="py-lineno">242</tt> <tt class="py-line"> <tt class="py-keyword">assert</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">_thread_lock</tt><tt class="py-op">.</tt><tt class="py-name">locked</tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
-<a name="L243"></a><tt class="py-lineno">243</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">_read_only</tt><tt class="py-op">:</tt> </tt>
-<a name="L244"></a><tt class="py-lineno">244</tt> <tt class="py-line"> <tt class="py-keyword">return</tt> </tt>
-<a name="L245"></a><tt class="py-lineno">245</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">_file_handle</tt><tt class="py-op">.</tt><tt class="py-name">seek</tt><tt class="py-op">(</tt><tt class="py-number">0</tt><tt class="py-op">)</tt> </tt>
-<a name="L246"></a><tt class="py-lineno">246</tt> <tt class="py-line"> <tt class="py-name">simplejson</tt><tt class="py-op">.</tt><tt class="py-name">dump</tt><tt class="py-op">(</tt><tt class="py-name">data</tt><tt class="py-op">,</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">_file_handle</tt><tt class="py-op">,</tt> <tt class="py-name">sort_keys</tt><tt class="py-op">=</tt><tt class="py-name">True</tt><tt class="py-op">,</tt> <tt id="link-26" class="py-name" targets="Method apiclient.schema._SchemaToStruct.indent()=apiclient.schema._SchemaToStruct-class.html#indent"><a title="apiclient.schema._SchemaToStruct.indent" class="py-name" href="#" onclick="return doclink('link-26', 'indent', 'link-26');">indent</a></tt><tt class="py-op">=</tt><tt class="py-number">2</tt><tt class="py-op">)</tt> </tt>
-<a name="L247"></a><tt class="py-lineno">247</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">_file_handle</tt><tt class="py-op">.</tt><tt class="py-name">truncate</tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
-</div><a name="L248"></a><tt class="py-lineno">248</tt> <tt class="py-line"> </tt>
-<a name="_MultiStore._refresh_data_cache"></a><div id="_MultiStore._refresh_data_cache-def"><a name="L249"></a><tt class="py-lineno">249</tt> <a class="py-toggle" href="#" id="_MultiStore._refresh_data_cache-toggle" onclick="return toggle('_MultiStore._refresh_data_cache');">-</a><tt class="py-line"> <tt class="py-keyword">def</tt> <a class="py-def-name" href="oauth2client.multistore_file._MultiStore-class.html#_refresh_data_cache">_refresh_data_cache</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-</div><div id="_MultiStore._refresh_data_cache-collapsed" style="display:none;" pad="+++" indent="++++++"></div><div id="_MultiStore._refresh_data_cache-expanded"><a name="L250"></a><tt class="py-lineno">250</tt> <tt class="py-line"> <tt class="py-docstring">"""Refresh the contents of the multistore.</tt> </tt>
-<a name="L251"></a><tt class="py-lineno">251</tt> <tt class="py-line"><tt class="py-docstring"></tt> </tt>
-<a name="L252"></a><tt class="py-lineno">252</tt> <tt class="py-line"><tt class="py-docstring"> The multistore must be locked when this is called.</tt> </tt>
-<a name="L253"></a><tt class="py-lineno">253</tt> <tt class="py-line"><tt class="py-docstring"></tt> </tt>
-<a name="L254"></a><tt class="py-lineno">254</tt> <tt class="py-line"><tt class="py-docstring"> Raises:</tt> </tt>
-<a name="L255"></a><tt class="py-lineno">255</tt> <tt class="py-line"><tt class="py-docstring"> NewerCredentialStoreError: Raised when a newer client has written the</tt> </tt>
-<a name="L256"></a><tt class="py-lineno">256</tt> <tt class="py-line"><tt class="py-docstring"> store.</tt> </tt>
-<a name="L257"></a><tt class="py-lineno">257</tt> <tt class="py-line"><tt class="py-docstring"> """</tt> </tt>
-<a name="L258"></a><tt class="py-lineno">258</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">_data</tt> <tt class="py-op">=</tt> <tt class="py-op">{</tt><tt class="py-op">}</tt> </tt>
-<a name="L259"></a><tt class="py-lineno">259</tt> <tt class="py-line"> <tt class="py-keyword">try</tt><tt class="py-op">:</tt> </tt>
-<a name="L260"></a><tt class="py-lineno">260</tt> <tt class="py-line"> <tt class="py-name">raw_data</tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-27" class="py-name" targets="Method oauth2client.multistore_file._MultiStore._locked_json_read()=oauth2client.multistore_file._MultiStore-class.html#_locked_json_read"><a title="oauth2client.multistore_file._MultiStore._locked_json_read" class="py-name" href="#" onclick="return doclink('link-27', '_locked_json_read', 'link-27');">_locked_json_read</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
-<a name="L261"></a><tt class="py-lineno">261</tt> <tt class="py-line"> <tt class="py-keyword">except</tt> <tt class="py-name">Exception</tt><tt class="py-op">:</tt> </tt>
-<a name="L262"></a><tt class="py-lineno">262</tt> <tt class="py-line"> <tt id="link-28" class="py-name"><a title="apiclient.discovery.logger
+oauth2client.locked_file.logger
+oauth2client.multistore_file.logger" class="py-name" href="#" onclick="return doclink('link-36', 'logger', 'link-7');">logger</a></tt><tt class="py-op">.</tt><tt class="py-name">debug</tt><tt class="py-op">(</tt><tt class="py-string">'Initializing empty multistore file'</tt><tt class="py-op">)</tt> </tt>
+<a name="L197"></a><tt class="py-lineno">197</tt> <tt class="py-line"> <tt class="py-comment"># The multistore is empty so write out an empty file.</tt> </tt>
+<a name="L198"></a><tt class="py-lineno">198</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">_data</tt> <tt class="py-op">=</tt> <tt class="py-op">{</tt><tt class="py-op">}</tt> </tt>
+<a name="L199"></a><tt class="py-lineno">199</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-37" class="py-name" targets="Method oauth2client.multistore_file._MultiStore._write()=oauth2client.multistore_file._MultiStore-class.html#_write"><a title="oauth2client.multistore_file._MultiStore._write" class="py-name" href="#" onclick="return doclink('link-37', '_write', 'link-37');">_write</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
+<a name="L200"></a><tt class="py-lineno">200</tt> <tt class="py-line"> <tt class="py-keyword">elif</tt> <tt class="py-keyword">not</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">_read_only</tt> <tt class="py-keyword">or</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">_data</tt> <tt class="py-keyword">is</tt> <tt class="py-name">None</tt><tt class="py-op">:</tt> </tt>
+<a name="L201"></a><tt class="py-lineno">201</tt> <tt class="py-line"> <tt class="py-comment"># Only refresh the data if we are read/write or we haven't</tt> </tt>
+<a name="L202"></a><tt class="py-lineno">202</tt> <tt class="py-line"> <tt class="py-comment"># cached the data yet. If we are readonly, we assume is isn't</tt> </tt>
+<a name="L203"></a><tt class="py-lineno">203</tt> <tt class="py-line"> <tt class="py-comment"># changing out from under us and that we only have to read it</tt> </tt>
+<a name="L204"></a><tt class="py-lineno">204</tt> <tt class="py-line"> <tt class="py-comment"># once. This prevents us from whacking any new access keys that</tt> </tt>
+<a name="L205"></a><tt class="py-lineno">205</tt> <tt class="py-line"> <tt class="py-comment"># we have cached in memory but were unable to write out.</tt> </tt>
+<a name="L206"></a><tt class="py-lineno">206</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-38" class="py-name" targets="Method oauth2client.multistore_file._MultiStore._refresh_data_cache()=oauth2client.multistore_file._MultiStore-class.html#_refresh_data_cache"><a title="oauth2client.multistore_file._MultiStore._refresh_data_cache" class="py-name" href="#" onclick="return doclink('link-38', '_refresh_data_cache', 'link-38');">_refresh_data_cache</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
+</div><a name="L207"></a><tt class="py-lineno">207</tt> <tt class="py-line"> </tt>
+<a name="_MultiStore._unlock"></a><div id="_MultiStore._unlock-def"><a name="L208"></a><tt class="py-lineno">208</tt> <a class="py-toggle" href="#" id="_MultiStore._unlock-toggle" onclick="return toggle('_MultiStore._unlock');">-</a><tt class="py-line"> <tt class="py-keyword">def</tt> <a class="py-def-name" href="oauth2client.multistore_file._MultiStore-class.html#_unlock">_unlock</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+</div><div id="_MultiStore._unlock-collapsed" style="display:none;" pad="+++" indent="++++++"></div><div id="_MultiStore._unlock-expanded"><a name="L209"></a><tt class="py-lineno">209</tt> <tt class="py-line"> <tt class="py-docstring">"""Release the lock on the multistore."""</tt> </tt>
+<a name="L210"></a><tt class="py-lineno">210</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">_file</tt><tt class="py-op">.</tt><tt id="link-39" class="py-name" targets="Method oauth2client.locked_file.LockedFile.unlock_and_close()=oauth2client.locked_file.LockedFile-class.html#unlock_and_close,Method oauth2client.locked_file._FcntlOpener.unlock_and_close()=oauth2client.locked_file._FcntlOpener-class.html#unlock_and_close,Method oauth2client.locked_file._Opener.unlock_and_close()=oauth2client.locked_file._Opener-class.html#unlock_and_close,Method oauth2client.locked_file._PosixOpener.unlock_and_close()=oauth2client.locked_file._PosixOpener-class.html#unlock_and_close"><a title="oauth2client.locked_file.LockedFile.unlock_and_close
+oauth2client.locked_file._FcntlOpener.unlock_and_close
+oauth2client.locked_file._Opener.unlock_and_close
+oauth2client.locked_file._PosixOpener.unlock_and_close" class="py-name" href="#" onclick="return doclink('link-39', 'unlock_and_close', 'link-39');">unlock_and_close</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
+<a name="L211"></a><tt class="py-lineno">211</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">_thread_lock</tt><tt class="py-op">.</tt><tt class="py-name">release</tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
+</div><a name="L212"></a><tt class="py-lineno">212</tt> <tt class="py-line"> </tt>
+<a name="_MultiStore._locked_json_read"></a><div id="_MultiStore._locked_json_read-def"><a name="L213"></a><tt class="py-lineno">213</tt> <a class="py-toggle" href="#" id="_MultiStore._locked_json_read-toggle" onclick="return toggle('_MultiStore._locked_json_read');">-</a><tt class="py-line"> <tt class="py-keyword">def</tt> <a class="py-def-name" href="oauth2client.multistore_file._MultiStore-class.html#_locked_json_read">_locked_json_read</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+</div><div id="_MultiStore._locked_json_read-collapsed" style="display:none;" pad="+++" indent="++++++"></div><div id="_MultiStore._locked_json_read-expanded"><a name="L214"></a><tt class="py-lineno">214</tt> <tt class="py-line"> <tt class="py-docstring">"""Get the raw content of the multistore file.</tt> </tt>
+<a name="L215"></a><tt class="py-lineno">215</tt> <tt class="py-line"><tt class="py-docstring"></tt> </tt>
+<a name="L216"></a><tt class="py-lineno">216</tt> <tt class="py-line"><tt class="py-docstring"> The multistore must be locked when this is called.</tt> </tt>
+<a name="L217"></a><tt class="py-lineno">217</tt> <tt class="py-line"><tt class="py-docstring"></tt> </tt>
+<a name="L218"></a><tt class="py-lineno">218</tt> <tt class="py-line"><tt class="py-docstring"> Returns:</tt> </tt>
+<a name="L219"></a><tt class="py-lineno">219</tt> <tt class="py-line"><tt class="py-docstring"> The contents of the multistore decoded as JSON.</tt> </tt>
+<a name="L220"></a><tt class="py-lineno">220</tt> <tt class="py-line"><tt class="py-docstring"> """</tt> </tt>
+<a name="L221"></a><tt class="py-lineno">221</tt> <tt class="py-line"> <tt class="py-keyword">assert</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">_thread_lock</tt><tt class="py-op">.</tt><tt class="py-name">locked</tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
+<a name="L222"></a><tt class="py-lineno">222</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">_file</tt><tt class="py-op">.</tt><tt id="link-40" class="py-name" targets="Method oauth2client.locked_file.LockedFile.file_handle()=oauth2client.locked_file.LockedFile-class.html#file_handle,Method oauth2client.locked_file._Opener.file_handle()=oauth2client.locked_file._Opener-class.html#file_handle"><a title="oauth2client.locked_file.LockedFile.file_handle
+oauth2client.locked_file._Opener.file_handle" class="py-name" href="#" onclick="return doclink('link-40', 'file_handle', 'link-40');">file_handle</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt><tt class="py-op">.</tt><tt class="py-name">seek</tt><tt class="py-op">(</tt><tt class="py-number">0</tt><tt class="py-op">)</tt> </tt>
+<a name="L223"></a><tt class="py-lineno">223</tt> <tt class="py-line"> <tt class="py-keyword">return</tt> <tt class="py-name">simplejson</tt><tt class="py-op">.</tt><tt id="link-41" class="py-name" targets="Function oauth2client.clientsecrets.load()=oauth2client.clientsecrets-module.html#load"><a title="oauth2client.clientsecrets.load" class="py-name" href="#" onclick="return doclink('link-41', 'load', 'link-41');">load</a></tt><tt class="py-op">(</tt><tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">_file</tt><tt class="py-op">.</tt><tt id="link-42" class="py-name"><a title="oauth2client.locked_file.LockedFile.file_handle
+oauth2client.locked_file._Opener.file_handle" class="py-name" href="#" onclick="return doclink('link-42', 'file_handle', 'link-40');">file_handle</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
+</div><a name="L224"></a><tt class="py-lineno">224</tt> <tt class="py-line"> </tt>
+<a name="_MultiStore._locked_json_write"></a><div id="_MultiStore._locked_json_write-def"><a name="L225"></a><tt class="py-lineno">225</tt> <a class="py-toggle" href="#" id="_MultiStore._locked_json_write-toggle" onclick="return toggle('_MultiStore._locked_json_write');">-</a><tt class="py-line"> <tt class="py-keyword">def</tt> <a class="py-def-name" href="oauth2client.multistore_file._MultiStore-class.html#_locked_json_write">_locked_json_write</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">,</tt> <tt class="py-param">data</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+</div><div id="_MultiStore._locked_json_write-collapsed" style="display:none;" pad="+++" indent="++++++"></div><div id="_MultiStore._locked_json_write-expanded"><a name="L226"></a><tt class="py-lineno">226</tt> <tt class="py-line"> <tt class="py-docstring">"""Write a JSON serializable data structure to the multistore.</tt> </tt>
+<a name="L227"></a><tt class="py-lineno">227</tt> <tt class="py-line"><tt class="py-docstring"></tt> </tt>
+<a name="L228"></a><tt class="py-lineno">228</tt> <tt class="py-line"><tt class="py-docstring"> The multistore must be locked when this is called.</tt> </tt>
+<a name="L229"></a><tt class="py-lineno">229</tt> <tt class="py-line"><tt class="py-docstring"></tt> </tt>
+<a name="L230"></a><tt class="py-lineno">230</tt> <tt class="py-line"><tt class="py-docstring"> Args:</tt> </tt>
+<a name="L231"></a><tt class="py-lineno">231</tt> <tt class="py-line"><tt class="py-docstring"> data: The data to be serialized and written.</tt> </tt>
+<a name="L232"></a><tt class="py-lineno">232</tt> <tt class="py-line"><tt class="py-docstring"> """</tt> </tt>
+<a name="L233"></a><tt class="py-lineno">233</tt> <tt class="py-line"> <tt class="py-keyword">assert</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">_thread_lock</tt><tt class="py-op">.</tt><tt class="py-name">locked</tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
+<a name="L234"></a><tt class="py-lineno">234</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">_read_only</tt><tt class="py-op">:</tt> </tt>
+<a name="L235"></a><tt class="py-lineno">235</tt> <tt class="py-line"> <tt class="py-keyword">return</tt> </tt>
+<a name="L236"></a><tt class="py-lineno">236</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">_file</tt><tt class="py-op">.</tt><tt id="link-43" class="py-name"><a title="oauth2client.locked_file.LockedFile.file_handle
+oauth2client.locked_file._Opener.file_handle" class="py-name" href="#" onclick="return doclink('link-43', 'file_handle', 'link-40');">file_handle</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt><tt class="py-op">.</tt><tt class="py-name">seek</tt><tt class="py-op">(</tt><tt class="py-number">0</tt><tt class="py-op">)</tt> </tt>
+<a name="L237"></a><tt class="py-lineno">237</tt> <tt class="py-line"> <tt class="py-name">simplejson</tt><tt class="py-op">.</tt><tt class="py-name">dump</tt><tt class="py-op">(</tt><tt class="py-name">data</tt><tt class="py-op">,</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">_file</tt><tt class="py-op">.</tt><tt id="link-44" class="py-name"><a title="oauth2client.locked_file.LockedFile.file_handle
+oauth2client.locked_file._Opener.file_handle" class="py-name" href="#" onclick="return doclink('link-44', 'file_handle', 'link-40');">file_handle</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt><tt class="py-op">,</tt> <tt class="py-name">sort_keys</tt><tt class="py-op">=</tt><tt class="py-name">True</tt><tt class="py-op">,</tt> <tt id="link-45" class="py-name" targets="Method apiclient.schema._SchemaToStruct.indent()=apiclient.schema._SchemaToStruct-class.html#indent"><a title="apiclient.schema._SchemaToStruct.indent" class="py-name" href="#" onclick="return doclink('link-45', 'indent', 'link-45');">indent</a></tt><tt class="py-op">=</tt><tt class="py-number">2</tt><tt class="py-op">)</tt> </tt>
+<a name="L238"></a><tt class="py-lineno">238</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">_file</tt><tt class="py-op">.</tt><tt id="link-46" class="py-name"><a title="oauth2client.locked_file.LockedFile.file_handle
+oauth2client.locked_file._Opener.file_handle" class="py-name" href="#" onclick="return doclink('link-46', 'file_handle', 'link-40');">file_handle</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt><tt class="py-op">.</tt><tt class="py-name">truncate</tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
+</div><a name="L239"></a><tt class="py-lineno">239</tt> <tt class="py-line"> </tt>
+<a name="_MultiStore._refresh_data_cache"></a><div id="_MultiStore._refresh_data_cache-def"><a name="L240"></a><tt class="py-lineno">240</tt> <a class="py-toggle" href="#" id="_MultiStore._refresh_data_cache-toggle" onclick="return toggle('_MultiStore._refresh_data_cache');">-</a><tt class="py-line"> <tt class="py-keyword">def</tt> <a class="py-def-name" href="oauth2client.multistore_file._MultiStore-class.html#_refresh_data_cache">_refresh_data_cache</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+</div><div id="_MultiStore._refresh_data_cache-collapsed" style="display:none;" pad="+++" indent="++++++"></div><div id="_MultiStore._refresh_data_cache-expanded"><a name="L241"></a><tt class="py-lineno">241</tt> <tt class="py-line"> <tt class="py-docstring">"""Refresh the contents of the multistore.</tt> </tt>
+<a name="L242"></a><tt class="py-lineno">242</tt> <tt class="py-line"><tt class="py-docstring"></tt> </tt>
+<a name="L243"></a><tt class="py-lineno">243</tt> <tt class="py-line"><tt class="py-docstring"> The multistore must be locked when this is called.</tt> </tt>
+<a name="L244"></a><tt class="py-lineno">244</tt> <tt class="py-line"><tt class="py-docstring"></tt> </tt>
+<a name="L245"></a><tt class="py-lineno">245</tt> <tt class="py-line"><tt class="py-docstring"> Raises:</tt> </tt>
+<a name="L246"></a><tt class="py-lineno">246</tt> <tt class="py-line"><tt class="py-docstring"> NewerCredentialStoreError: Raised when a newer client has written the</tt> </tt>
+<a name="L247"></a><tt class="py-lineno">247</tt> <tt class="py-line"><tt class="py-docstring"> store.</tt> </tt>
+<a name="L248"></a><tt class="py-lineno">248</tt> <tt class="py-line"><tt class="py-docstring"> """</tt> </tt>
+<a name="L249"></a><tt class="py-lineno">249</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">_data</tt> <tt class="py-op">=</tt> <tt class="py-op">{</tt><tt class="py-op">}</tt> </tt>
+<a name="L250"></a><tt class="py-lineno">250</tt> <tt class="py-line"> <tt class="py-keyword">try</tt><tt class="py-op">:</tt> </tt>
+<a name="L251"></a><tt class="py-lineno">251</tt> <tt class="py-line"> <tt class="py-name">raw_data</tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-47" class="py-name" targets="Method oauth2client.multistore_file._MultiStore._locked_json_read()=oauth2client.multistore_file._MultiStore-class.html#_locked_json_read"><a title="oauth2client.multistore_file._MultiStore._locked_json_read" class="py-name" href="#" onclick="return doclink('link-47', '_locked_json_read', 'link-47');">_locked_json_read</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
+<a name="L252"></a><tt class="py-lineno">252</tt> <tt class="py-line"> <tt class="py-keyword">except</tt> <tt class="py-name">Exception</tt><tt class="py-op">:</tt> </tt>
+<a name="L253"></a><tt class="py-lineno">253</tt> <tt class="py-line"> <tt id="link-48" class="py-name"><a title="apiclient.discovery.logger
oauth2client.client.logger
-oauth2client.multistore_file.logger" class="py-name" href="#" onclick="return doclink('link-28', 'logger', 'link-5');">logger</a></tt><tt class="py-op">.</tt><tt class="py-name">warn</tt><tt class="py-op">(</tt><tt class="py-string">'Credential data store could not be loaded. '</tt> </tt>
-<a name="L263"></a><tt class="py-lineno">263</tt> <tt class="py-line"> <tt class="py-string">'Will ignore and overwrite.'</tt><tt class="py-op">)</tt> </tt>
-<a name="L264"></a><tt class="py-lineno">264</tt> <tt class="py-line"> <tt class="py-keyword">return</tt> </tt>
-<a name="L265"></a><tt class="py-lineno">265</tt> <tt class="py-line"> </tt>
-<a name="L266"></a><tt class="py-lineno">266</tt> <tt class="py-line"> <tt class="py-name">version</tt> <tt class="py-op">=</tt> <tt class="py-number">0</tt> </tt>
-<a name="L267"></a><tt class="py-lineno">267</tt> <tt class="py-line"> <tt class="py-keyword">try</tt><tt class="py-op">:</tt> </tt>
-<a name="L268"></a><tt class="py-lineno">268</tt> <tt class="py-line"> <tt class="py-name">version</tt> <tt class="py-op">=</tt> <tt class="py-name">raw_data</tt><tt class="py-op">[</tt><tt class="py-string">'file_version'</tt><tt class="py-op">]</tt> </tt>
-<a name="L269"></a><tt class="py-lineno">269</tt> <tt class="py-line"> <tt class="py-keyword">except</tt> <tt class="py-name">Exception</tt><tt class="py-op">:</tt> </tt>
-<a name="L270"></a><tt class="py-lineno">270</tt> <tt class="py-line"> <tt id="link-29" class="py-name"><a title="apiclient.discovery.logger
+oauth2client.locked_file.logger
+oauth2client.multistore_file.logger" class="py-name" href="#" onclick="return doclink('link-48', 'logger', 'link-7');">logger</a></tt><tt class="py-op">.</tt><tt class="py-name">warn</tt><tt class="py-op">(</tt><tt class="py-string">'Credential data store could not be loaded. '</tt> </tt>
+<a name="L254"></a><tt class="py-lineno">254</tt> <tt class="py-line"> <tt class="py-string">'Will ignore and overwrite.'</tt><tt class="py-op">)</tt> </tt>
+<a name="L255"></a><tt class="py-lineno">255</tt> <tt class="py-line"> <tt class="py-keyword">return</tt> </tt>
+<a name="L256"></a><tt class="py-lineno">256</tt> <tt class="py-line"> </tt>
+<a name="L257"></a><tt class="py-lineno">257</tt> <tt class="py-line"> <tt class="py-name">version</tt> <tt class="py-op">=</tt> <tt class="py-number">0</tt> </tt>
+<a name="L258"></a><tt class="py-lineno">258</tt> <tt class="py-line"> <tt class="py-keyword">try</tt><tt class="py-op">:</tt> </tt>
+<a name="L259"></a><tt class="py-lineno">259</tt> <tt class="py-line"> <tt class="py-name">version</tt> <tt class="py-op">=</tt> <tt class="py-name">raw_data</tt><tt class="py-op">[</tt><tt class="py-string">'file_version'</tt><tt class="py-op">]</tt> </tt>
+<a name="L260"></a><tt class="py-lineno">260</tt> <tt class="py-line"> <tt class="py-keyword">except</tt> <tt class="py-name">Exception</tt><tt class="py-op">:</tt> </tt>
+<a name="L261"></a><tt class="py-lineno">261</tt> <tt class="py-line"> <tt id="link-49" class="py-name"><a title="apiclient.discovery.logger
oauth2client.client.logger
-oauth2client.multistore_file.logger" class="py-name" href="#" onclick="return doclink('link-29', 'logger', 'link-5');">logger</a></tt><tt class="py-op">.</tt><tt class="py-name">warn</tt><tt class="py-op">(</tt><tt class="py-string">'Missing version for credential data store. It may be '</tt> </tt>
-<a name="L271"></a><tt class="py-lineno">271</tt> <tt class="py-line"> <tt class="py-string">'corrupt or an old version. Overwriting.'</tt><tt class="py-op">)</tt> </tt>
-<a name="L272"></a><tt class="py-lineno">272</tt> <tt class="py-line"> <tt class="py-keyword">if</tt> <tt class="py-name">version</tt> <tt class="py-op">></tt> <tt class="py-number">1</tt><tt class="py-op">:</tt> </tt>
-<a name="L273"></a><tt class="py-lineno">273</tt> <tt class="py-line"> <tt class="py-keyword">raise</tt> <tt id="link-30" class="py-name" targets="Class oauth2client.multistore_file.NewerCredentialStoreError=oauth2client.multistore_file.NewerCredentialStoreError-class.html"><a title="oauth2client.multistore_file.NewerCredentialStoreError" class="py-name" href="#" onclick="return doclink('link-30', 'NewerCredentialStoreError', 'link-30');">NewerCredentialStoreError</a></tt><tt class="py-op">(</tt> </tt>
-<a name="L274"></a><tt class="py-lineno">274</tt> <tt class="py-line"> <tt class="py-string">'Credential file has file_version of %d. '</tt> </tt>
-<a name="L275"></a><tt class="py-lineno">275</tt> <tt class="py-line"> <tt class="py-string">'Only file_version of 1 is supported.'</tt> <tt class="py-op">%</tt> <tt class="py-name">version</tt><tt class="py-op">)</tt> </tt>
-<a name="L276"></a><tt class="py-lineno">276</tt> <tt class="py-line"> </tt>
-<a name="L277"></a><tt class="py-lineno">277</tt> <tt class="py-line"> <tt id="link-31" class="py-name"><a title="oauth2client.appengine.CredentialsModel.credentials" class="py-name" href="#" onclick="return doclink('link-31', 'credentials', 'link-19');">credentials</a></tt> <tt class="py-op">=</tt> <tt class="py-op">[</tt><tt class="py-op">]</tt> </tt>
-<a name="L278"></a><tt class="py-lineno">278</tt> <tt class="py-line"> <tt class="py-keyword">try</tt><tt class="py-op">:</tt> </tt>
-<a name="L279"></a><tt class="py-lineno">279</tt> <tt class="py-line"> <tt id="link-32" class="py-name"><a title="oauth2client.appengine.CredentialsModel.credentials" class="py-name" href="#" onclick="return doclink('link-32', 'credentials', 'link-19');">credentials</a></tt> <tt class="py-op">=</tt> <tt class="py-name">raw_data</tt><tt class="py-op">[</tt><tt class="py-string">'data'</tt><tt class="py-op">]</tt> </tt>
-<a name="L280"></a><tt class="py-lineno">280</tt> <tt class="py-line"> <tt class="py-keyword">except</tt> <tt class="py-op">(</tt><tt class="py-name">TypeError</tt><tt class="py-op">,</tt> <tt class="py-name">KeyError</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-<a name="L281"></a><tt class="py-lineno">281</tt> <tt class="py-line"> <tt class="py-keyword">pass</tt> </tt>
-<a name="L282"></a><tt class="py-lineno">282</tt> <tt class="py-line"> </tt>
-<a name="L283"></a><tt class="py-lineno">283</tt> <tt class="py-line"> <tt class="py-keyword">for</tt> <tt class="py-name">cred_entry</tt> <tt class="py-keyword">in</tt> <tt id="link-33" class="py-name"><a title="oauth2client.appengine.CredentialsModel.credentials" class="py-name" href="#" onclick="return doclink('link-33', 'credentials', 'link-19');">credentials</a></tt><tt class="py-op">:</tt> </tt>
-<a name="L284"></a><tt class="py-lineno">284</tt> <tt class="py-line"> <tt class="py-keyword">try</tt><tt class="py-op">:</tt> </tt>
-<a name="L285"></a><tt class="py-lineno">285</tt> <tt class="py-line"> <tt class="py-op">(</tt><tt class="py-name">key</tt><tt class="py-op">,</tt> <tt class="py-name">credential</tt><tt class="py-op">)</tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-34" class="py-name" targets="Method oauth2client.multistore_file._MultiStore._decode_credential_from_json()=oauth2client.multistore_file._MultiStore-class.html#_decode_credential_from_json"><a title="oauth2client.multistore_file._MultiStore._decode_credential_from_json" class="py-name" href="#" onclick="return doclink('link-34', '_decode_credential_from_json', 'link-34');">_decode_credential_from_json</a></tt><tt class="py-op">(</tt><tt class="py-name">cred_entry</tt><tt class="py-op">)</tt> </tt>
-<a name="L286"></a><tt class="py-lineno">286</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">_data</tt><tt class="py-op">[</tt><tt class="py-name">key</tt><tt class="py-op">]</tt> <tt class="py-op">=</tt> <tt class="py-name">credential</tt> </tt>
-<a name="L287"></a><tt class="py-lineno">287</tt> <tt class="py-line"> <tt class="py-keyword">except</tt><tt class="py-op">:</tt> </tt>
-<a name="L288"></a><tt class="py-lineno">288</tt> <tt class="py-line"> <tt class="py-comment"># If something goes wrong loading a credential, just ignore it</tt> </tt>
-<a name="L289"></a><tt class="py-lineno">289</tt> <tt class="py-line"> <tt id="link-35" class="py-name"><a title="apiclient.discovery.logger
+oauth2client.locked_file.logger
+oauth2client.multistore_file.logger" class="py-name" href="#" onclick="return doclink('link-49', 'logger', 'link-7');">logger</a></tt><tt class="py-op">.</tt><tt class="py-name">warn</tt><tt class="py-op">(</tt><tt class="py-string">'Missing version for credential data store. It may be '</tt> </tt>
+<a name="L262"></a><tt class="py-lineno">262</tt> <tt class="py-line"> <tt class="py-string">'corrupt or an old version. Overwriting.'</tt><tt class="py-op">)</tt> </tt>
+<a name="L263"></a><tt class="py-lineno">263</tt> <tt class="py-line"> <tt class="py-keyword">if</tt> <tt class="py-name">version</tt> <tt class="py-op">></tt> <tt class="py-number">1</tt><tt class="py-op">:</tt> </tt>
+<a name="L264"></a><tt class="py-lineno">264</tt> <tt class="py-line"> <tt class="py-keyword">raise</tt> <tt id="link-50" class="py-name" targets="Class oauth2client.multistore_file.NewerCredentialStoreError=oauth2client.multistore_file.NewerCredentialStoreError-class.html"><a title="oauth2client.multistore_file.NewerCredentialStoreError" class="py-name" href="#" onclick="return doclink('link-50', 'NewerCredentialStoreError', 'link-50');">NewerCredentialStoreError</a></tt><tt class="py-op">(</tt> </tt>
+<a name="L265"></a><tt class="py-lineno">265</tt> <tt class="py-line"> <tt class="py-string">'Credential file has file_version of %d. '</tt> </tt>
+<a name="L266"></a><tt class="py-lineno">266</tt> <tt class="py-line"> <tt class="py-string">'Only file_version of 1 is supported.'</tt> <tt class="py-op">%</tt> <tt class="py-name">version</tt><tt class="py-op">)</tt> </tt>
+<a name="L267"></a><tt class="py-lineno">267</tt> <tt class="py-line"> </tt>
+<a name="L268"></a><tt class="py-lineno">268</tt> <tt class="py-line"> <tt id="link-51" class="py-name"><a title="oauth2client.appengine.CredentialsModel.credentials" class="py-name" href="#" onclick="return doclink('link-51', 'credentials', 'link-27');">credentials</a></tt> <tt class="py-op">=</tt> <tt class="py-op">[</tt><tt class="py-op">]</tt> </tt>
+<a name="L269"></a><tt class="py-lineno">269</tt> <tt class="py-line"> <tt class="py-keyword">try</tt><tt class="py-op">:</tt> </tt>
+<a name="L270"></a><tt class="py-lineno">270</tt> <tt class="py-line"> <tt id="link-52" class="py-name"><a title="oauth2client.appengine.CredentialsModel.credentials" class="py-name" href="#" onclick="return doclink('link-52', 'credentials', 'link-27');">credentials</a></tt> <tt class="py-op">=</tt> <tt class="py-name">raw_data</tt><tt class="py-op">[</tt><tt class="py-string">'data'</tt><tt class="py-op">]</tt> </tt>
+<a name="L271"></a><tt class="py-lineno">271</tt> <tt class="py-line"> <tt class="py-keyword">except</tt> <tt class="py-op">(</tt><tt class="py-name">TypeError</tt><tt class="py-op">,</tt> <tt class="py-name">KeyError</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+<a name="L272"></a><tt class="py-lineno">272</tt> <tt class="py-line"> <tt class="py-keyword">pass</tt> </tt>
+<a name="L273"></a><tt class="py-lineno">273</tt> <tt class="py-line"> </tt>
+<a name="L274"></a><tt class="py-lineno">274</tt> <tt class="py-line"> <tt class="py-keyword">for</tt> <tt class="py-name">cred_entry</tt> <tt class="py-keyword">in</tt> <tt id="link-53" class="py-name"><a title="oauth2client.appengine.CredentialsModel.credentials" class="py-name" href="#" onclick="return doclink('link-53', 'credentials', 'link-27');">credentials</a></tt><tt class="py-op">:</tt> </tt>
+<a name="L275"></a><tt class="py-lineno">275</tt> <tt class="py-line"> <tt class="py-keyword">try</tt><tt class="py-op">:</tt> </tt>
+<a name="L276"></a><tt class="py-lineno">276</tt> <tt class="py-line"> <tt class="py-op">(</tt><tt class="py-name">key</tt><tt class="py-op">,</tt> <tt class="py-name">credential</tt><tt class="py-op">)</tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-54" class="py-name" targets="Method oauth2client.multistore_file._MultiStore._decode_credential_from_json()=oauth2client.multistore_file._MultiStore-class.html#_decode_credential_from_json"><a title="oauth2client.multistore_file._MultiStore._decode_credential_from_json" class="py-name" href="#" onclick="return doclink('link-54', '_decode_credential_from_json', 'link-54');">_decode_credential_from_json</a></tt><tt class="py-op">(</tt><tt class="py-name">cred_entry</tt><tt class="py-op">)</tt> </tt>
+<a name="L277"></a><tt class="py-lineno">277</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">_data</tt><tt class="py-op">[</tt><tt class="py-name">key</tt><tt class="py-op">]</tt> <tt class="py-op">=</tt> <tt class="py-name">credential</tt> </tt>
+<a name="L278"></a><tt class="py-lineno">278</tt> <tt class="py-line"> <tt class="py-keyword">except</tt><tt class="py-op">:</tt> </tt>
+<a name="L279"></a><tt class="py-lineno">279</tt> <tt class="py-line"> <tt class="py-comment"># If something goes wrong loading a credential, just ignore it</tt> </tt>
+<a name="L280"></a><tt class="py-lineno">280</tt> <tt class="py-line"> <tt id="link-55" class="py-name"><a title="apiclient.discovery.logger
oauth2client.client.logger
-oauth2client.multistore_file.logger" class="py-name" href="#" onclick="return doclink('link-35', 'logger', 'link-5');">logger</a></tt><tt class="py-op">.</tt><tt class="py-name">info</tt><tt class="py-op">(</tt><tt class="py-string">'Error decoding credential, skipping'</tt><tt class="py-op">,</tt> <tt class="py-name">exc_info</tt><tt class="py-op">=</tt><tt class="py-name">True</tt><tt class="py-op">)</tt> </tt>
-</div><a name="L290"></a><tt class="py-lineno">290</tt> <tt class="py-line"> </tt>
-<a name="_MultiStore._decode_credential_from_json"></a><div id="_MultiStore._decode_credential_from_json-def"><a name="L291"></a><tt class="py-lineno">291</tt> <a class="py-toggle" href="#" id="_MultiStore._decode_credential_from_json-toggle" onclick="return toggle('_MultiStore._decode_credential_from_json');">-</a><tt class="py-line"> <tt class="py-keyword">def</tt> <a class="py-def-name" href="oauth2client.multistore_file._MultiStore-class.html#_decode_credential_from_json">_decode_credential_from_json</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">,</tt> <tt class="py-param">cred_entry</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-</div><div id="_MultiStore._decode_credential_from_json-collapsed" style="display:none;" pad="+++" indent="++++++"></div><div id="_MultiStore._decode_credential_from_json-expanded"><a name="L292"></a><tt class="py-lineno">292</tt> <tt class="py-line"> <tt class="py-docstring">"""Load a credential from our JSON serialization.</tt> </tt>
-<a name="L293"></a><tt class="py-lineno">293</tt> <tt class="py-line"><tt class="py-docstring"></tt> </tt>
-<a name="L294"></a><tt class="py-lineno">294</tt> <tt class="py-line"><tt class="py-docstring"> Args:</tt> </tt>
-<a name="L295"></a><tt class="py-lineno">295</tt> <tt class="py-line"><tt class="py-docstring"> cred_entry: A dict entry from the data member of our format</tt> </tt>
-<a name="L296"></a><tt class="py-lineno">296</tt> <tt class="py-line"><tt class="py-docstring"></tt> </tt>
-<a name="L297"></a><tt class="py-lineno">297</tt> <tt class="py-line"><tt class="py-docstring"> Returns:</tt> </tt>
-<a name="L298"></a><tt class="py-lineno">298</tt> <tt class="py-line"><tt class="py-docstring"> (key, cred) where the key is the key tuple and the cred is the</tt> </tt>
-<a name="L299"></a><tt class="py-lineno">299</tt> <tt class="py-line"><tt class="py-docstring"> OAuth2Credential object.</tt> </tt>
-<a name="L300"></a><tt class="py-lineno">300</tt> <tt class="py-line"><tt class="py-docstring"> """</tt> </tt>
-<a name="L301"></a><tt class="py-lineno">301</tt> <tt class="py-line"> <tt class="py-name">raw_key</tt> <tt class="py-op">=</tt> <tt class="py-name">cred_entry</tt><tt class="py-op">[</tt><tt class="py-string">'key'</tt><tt class="py-op">]</tt> </tt>
-<a name="L302"></a><tt class="py-lineno">302</tt> <tt class="py-line"> <tt class="py-name">client_id</tt> <tt class="py-op">=</tt> <tt class="py-name">raw_key</tt><tt class="py-op">[</tt><tt class="py-string">'clientId'</tt><tt class="py-op">]</tt> </tt>
-<a name="L303"></a><tt class="py-lineno">303</tt> <tt class="py-line"> <tt class="py-name">user_agent</tt> <tt class="py-op">=</tt> <tt class="py-name">raw_key</tt><tt class="py-op">[</tt><tt class="py-string">'userAgent'</tt><tt class="py-op">]</tt> </tt>
-<a name="L304"></a><tt class="py-lineno">304</tt> <tt class="py-line"> <tt class="py-name">scope</tt> <tt class="py-op">=</tt> <tt class="py-name">raw_key</tt><tt class="py-op">[</tt><tt class="py-string">'scope'</tt><tt class="py-op">]</tt> </tt>
-<a name="L305"></a><tt class="py-lineno">305</tt> <tt class="py-line"> <tt class="py-name">key</tt> <tt class="py-op">=</tt> <tt class="py-op">(</tt><tt class="py-name">client_id</tt><tt class="py-op">,</tt> <tt class="py-name">user_agent</tt><tt class="py-op">,</tt> <tt class="py-name">scope</tt><tt class="py-op">)</tt> </tt>
-<a name="L306"></a><tt class="py-lineno">306</tt> <tt class="py-line"> <tt class="py-name">credential</tt> <tt class="py-op">=</tt> <tt class="py-name">None</tt> </tt>
-<a name="L307"></a><tt class="py-lineno">307</tt> <tt class="py-line"> <tt class="py-name">credential</tt> <tt class="py-op">=</tt> <tt id="link-36" class="py-name"><a title="oauth2client.client.Credentials" class="py-name" href="#" onclick="return doclink('link-36', 'Credentials', 'link-4');">Credentials</a></tt><tt class="py-op">.</tt><tt id="link-37" class="py-name" targets="Class Method apiclient.http.MediaUpload.new_from_json()=apiclient.http.MediaUpload-class.html#new_from_json,Class Method oauth2client.client.Credentials.new_from_json()=oauth2client.client.Credentials-class.html#new_from_json"><a title="apiclient.http.MediaUpload.new_from_json
-oauth2client.client.Credentials.new_from_json" class="py-name" href="#" onclick="return doclink('link-37', 'new_from_json', 'link-37');">new_from_json</a></tt><tt class="py-op">(</tt><tt class="py-name">simplejson</tt><tt class="py-op">.</tt><tt class="py-name">dumps</tt><tt class="py-op">(</tt><tt class="py-name">cred_entry</tt><tt class="py-op">[</tt><tt class="py-string">'credential'</tt><tt class="py-op">]</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
-<a name="L308"></a><tt class="py-lineno">308</tt> <tt class="py-line"> <tt class="py-keyword">return</tt> <tt class="py-op">(</tt><tt class="py-name">key</tt><tt class="py-op">,</tt> <tt class="py-name">credential</tt><tt class="py-op">)</tt> </tt>
-</div><a name="L309"></a><tt class="py-lineno">309</tt> <tt class="py-line"> </tt>
-<a name="_MultiStore._write"></a><div id="_MultiStore._write-def"><a name="L310"></a><tt class="py-lineno">310</tt> <a class="py-toggle" href="#" id="_MultiStore._write-toggle" onclick="return toggle('_MultiStore._write');">-</a><tt class="py-line"> <tt class="py-keyword">def</tt> <a class="py-def-name" href="oauth2client.multistore_file._MultiStore-class.html#_write">_write</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-</div><div id="_MultiStore._write-collapsed" style="display:none;" pad="+++" indent="++++++"></div><div id="_MultiStore._write-expanded"><a name="L311"></a><tt class="py-lineno">311</tt> <tt class="py-line"> <tt class="py-docstring">"""Write the cached data back out.</tt> </tt>
-<a name="L312"></a><tt class="py-lineno">312</tt> <tt class="py-line"><tt class="py-docstring"></tt> </tt>
-<a name="L313"></a><tt class="py-lineno">313</tt> <tt class="py-line"><tt class="py-docstring"> The multistore must be locked.</tt> </tt>
-<a name="L314"></a><tt class="py-lineno">314</tt> <tt class="py-line"><tt class="py-docstring"> """</tt> </tt>
-<a name="L315"></a><tt class="py-lineno">315</tt> <tt class="py-line"> <tt class="py-name">raw_data</tt> <tt class="py-op">=</tt> <tt class="py-op">{</tt><tt class="py-string">'file_version'</tt><tt class="py-op">:</tt> <tt class="py-number">1</tt><tt class="py-op">}</tt> </tt>
-<a name="L316"></a><tt class="py-lineno">316</tt> <tt class="py-line"> <tt class="py-name">raw_creds</tt> <tt class="py-op">=</tt> <tt class="py-op">[</tt><tt class="py-op">]</tt> </tt>
-<a name="L317"></a><tt class="py-lineno">317</tt> <tt class="py-line"> <tt class="py-name">raw_data</tt><tt class="py-op">[</tt><tt class="py-string">'data'</tt><tt class="py-op">]</tt> <tt class="py-op">=</tt> <tt class="py-name">raw_creds</tt> </tt>
-<a name="L318"></a><tt class="py-lineno">318</tt> <tt class="py-line"> <tt class="py-keyword">for</tt> <tt class="py-op">(</tt><tt class="py-name">cred_key</tt><tt class="py-op">,</tt> <tt class="py-name">cred</tt><tt class="py-op">)</tt> <tt class="py-keyword">in</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">_data</tt><tt class="py-op">.</tt><tt class="py-name">items</tt><tt class="py-op">(</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-<a name="L319"></a><tt class="py-lineno">319</tt> <tt class="py-line"> <tt class="py-name">raw_key</tt> <tt class="py-op">=</tt> <tt class="py-op">{</tt> </tt>
-<a name="L320"></a><tt class="py-lineno">320</tt> <tt class="py-line"> <tt class="py-string">'clientId'</tt><tt class="py-op">:</tt> <tt class="py-name">cred_key</tt><tt class="py-op">[</tt><tt class="py-number">0</tt><tt class="py-op">]</tt><tt class="py-op">,</tt> </tt>
-<a name="L321"></a><tt class="py-lineno">321</tt> <tt class="py-line"> <tt class="py-string">'userAgent'</tt><tt class="py-op">:</tt> <tt class="py-name">cred_key</tt><tt class="py-op">[</tt><tt class="py-number">1</tt><tt class="py-op">]</tt><tt class="py-op">,</tt> </tt>
-<a name="L322"></a><tt class="py-lineno">322</tt> <tt class="py-line"> <tt class="py-string">'scope'</tt><tt class="py-op">:</tt> <tt class="py-name">cred_key</tt><tt class="py-op">[</tt><tt class="py-number">2</tt><tt class="py-op">]</tt> </tt>
-<a name="L323"></a><tt class="py-lineno">323</tt> <tt class="py-line"> <tt class="py-op">}</tt> </tt>
-<a name="L324"></a><tt class="py-lineno">324</tt> <tt class="py-line"> <tt class="py-name">raw_cred</tt> <tt class="py-op">=</tt> <tt class="py-name">simplejson</tt><tt class="py-op">.</tt><tt id="link-38" class="py-name" targets="Function oauth2client.clientsecrets.loads()=oauth2client.clientsecrets-module.html#loads"><a title="oauth2client.clientsecrets.loads" class="py-name" href="#" onclick="return doclink('link-38', 'loads', 'link-38');">loads</a></tt><tt class="py-op">(</tt><tt class="py-name">cred</tt><tt class="py-op">.</tt><tt id="link-39" class="py-name" targets="Method apiclient.http.HttpRequest.to_json()=apiclient.http.HttpRequest-class.html#to_json,Method apiclient.http.MediaFileUpload.to_json()=apiclient.http.MediaFileUpload-class.html#to_json,Method apiclient.http.MediaInMemoryUpload.to_json()=apiclient.http.MediaInMemoryUpload-class.html#to_json,Method apiclient.http.MediaUpload.to_json()=apiclient.http.MediaUpload-class.html#to_json,Method oauth2client.client.Credentials.to_json()=oauth2client.client.Credentials-class.html#to_json,Method oauth2client.client.OAuth2Credentials.to_json()=oauth2client.client.OAuth2Credentials-class.html#to_json"><a title="apiclient.http.HttpRequest.to_json
+oauth2client.locked_file.logger
+oauth2client.multistore_file.logger" class="py-name" href="#" onclick="return doclink('link-55', 'logger', 'link-7');">logger</a></tt><tt class="py-op">.</tt><tt class="py-name">info</tt><tt class="py-op">(</tt><tt class="py-string">'Error decoding credential, skipping'</tt><tt class="py-op">,</tt> <tt class="py-name">exc_info</tt><tt class="py-op">=</tt><tt class="py-name">True</tt><tt class="py-op">)</tt> </tt>
+</div><a name="L281"></a><tt class="py-lineno">281</tt> <tt class="py-line"> </tt>
+<a name="_MultiStore._decode_credential_from_json"></a><div id="_MultiStore._decode_credential_from_json-def"><a name="L282"></a><tt class="py-lineno">282</tt> <a class="py-toggle" href="#" id="_MultiStore._decode_credential_from_json-toggle" onclick="return toggle('_MultiStore._decode_credential_from_json');">-</a><tt class="py-line"> <tt class="py-keyword">def</tt> <a class="py-def-name" href="oauth2client.multistore_file._MultiStore-class.html#_decode_credential_from_json">_decode_credential_from_json</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">,</tt> <tt class="py-param">cred_entry</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+</div><div id="_MultiStore._decode_credential_from_json-collapsed" style="display:none;" pad="+++" indent="++++++"></div><div id="_MultiStore._decode_credential_from_json-expanded"><a name="L283"></a><tt class="py-lineno">283</tt> <tt class="py-line"> <tt class="py-docstring">"""Load a credential from our JSON serialization.</tt> </tt>
+<a name="L284"></a><tt class="py-lineno">284</tt> <tt class="py-line"><tt class="py-docstring"></tt> </tt>
+<a name="L285"></a><tt class="py-lineno">285</tt> <tt class="py-line"><tt class="py-docstring"> Args:</tt> </tt>
+<a name="L286"></a><tt class="py-lineno">286</tt> <tt class="py-line"><tt class="py-docstring"> cred_entry: A dict entry from the data member of our format</tt> </tt>
+<a name="L287"></a><tt class="py-lineno">287</tt> <tt class="py-line"><tt class="py-docstring"></tt> </tt>
+<a name="L288"></a><tt class="py-lineno">288</tt> <tt class="py-line"><tt class="py-docstring"> Returns:</tt> </tt>
+<a name="L289"></a><tt class="py-lineno">289</tt> <tt class="py-line"><tt class="py-docstring"> (key, cred) where the key is the key tuple and the cred is the</tt> </tt>
+<a name="L290"></a><tt class="py-lineno">290</tt> <tt class="py-line"><tt class="py-docstring"> OAuth2Credential object.</tt> </tt>
+<a name="L291"></a><tt class="py-lineno">291</tt> <tt class="py-line"><tt class="py-docstring"> """</tt> </tt>
+<a name="L292"></a><tt class="py-lineno">292</tt> <tt class="py-line"> <tt class="py-name">raw_key</tt> <tt class="py-op">=</tt> <tt class="py-name">cred_entry</tt><tt class="py-op">[</tt><tt class="py-string">'key'</tt><tt class="py-op">]</tt> </tt>
+<a name="L293"></a><tt class="py-lineno">293</tt> <tt class="py-line"> <tt class="py-name">client_id</tt> <tt class="py-op">=</tt> <tt class="py-name">raw_key</tt><tt class="py-op">[</tt><tt class="py-string">'clientId'</tt><tt class="py-op">]</tt> </tt>
+<a name="L294"></a><tt class="py-lineno">294</tt> <tt class="py-line"> <tt class="py-name">user_agent</tt> <tt class="py-op">=</tt> <tt class="py-name">raw_key</tt><tt class="py-op">[</tt><tt class="py-string">'userAgent'</tt><tt class="py-op">]</tt> </tt>
+<a name="L295"></a><tt class="py-lineno">295</tt> <tt class="py-line"> <tt class="py-name">scope</tt> <tt class="py-op">=</tt> <tt class="py-name">raw_key</tt><tt class="py-op">[</tt><tt class="py-string">'scope'</tt><tt class="py-op">]</tt> </tt>
+<a name="L296"></a><tt class="py-lineno">296</tt> <tt class="py-line"> <tt class="py-name">key</tt> <tt class="py-op">=</tt> <tt class="py-op">(</tt><tt class="py-name">client_id</tt><tt class="py-op">,</tt> <tt class="py-name">user_agent</tt><tt class="py-op">,</tt> <tt class="py-name">scope</tt><tt class="py-op">)</tt> </tt>
+<a name="L297"></a><tt class="py-lineno">297</tt> <tt class="py-line"> <tt class="py-name">credential</tt> <tt class="py-op">=</tt> <tt class="py-name">None</tt> </tt>
+<a name="L298"></a><tt class="py-lineno">298</tt> <tt class="py-line"> <tt class="py-name">credential</tt> <tt class="py-op">=</tt> <tt id="link-56" class="py-name"><a title="oauth2client.client.Credentials" class="py-name" href="#" onclick="return doclink('link-56', 'Credentials', 'link-4');">Credentials</a></tt><tt class="py-op">.</tt><tt id="link-57" class="py-name" targets="Class Method apiclient.http.MediaUpload.new_from_json()=apiclient.http.MediaUpload-class.html#new_from_json,Class Method oauth2client.client.Credentials.new_from_json()=oauth2client.client.Credentials-class.html#new_from_json"><a title="apiclient.http.MediaUpload.new_from_json
+oauth2client.client.Credentials.new_from_json" class="py-name" href="#" onclick="return doclink('link-57', 'new_from_json', 'link-57');">new_from_json</a></tt><tt class="py-op">(</tt><tt class="py-name">simplejson</tt><tt class="py-op">.</tt><tt class="py-name">dumps</tt><tt class="py-op">(</tt><tt class="py-name">cred_entry</tt><tt class="py-op">[</tt><tt class="py-string">'credential'</tt><tt class="py-op">]</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
+<a name="L299"></a><tt class="py-lineno">299</tt> <tt class="py-line"> <tt class="py-keyword">return</tt> <tt class="py-op">(</tt><tt class="py-name">key</tt><tt class="py-op">,</tt> <tt class="py-name">credential</tt><tt class="py-op">)</tt> </tt>
+</div><a name="L300"></a><tt class="py-lineno">300</tt> <tt class="py-line"> </tt>
+<a name="_MultiStore._write"></a><div id="_MultiStore._write-def"><a name="L301"></a><tt class="py-lineno">301</tt> <a class="py-toggle" href="#" id="_MultiStore._write-toggle" onclick="return toggle('_MultiStore._write');">-</a><tt class="py-line"> <tt class="py-keyword">def</tt> <a class="py-def-name" href="oauth2client.multistore_file._MultiStore-class.html#_write">_write</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+</div><div id="_MultiStore._write-collapsed" style="display:none;" pad="+++" indent="++++++"></div><div id="_MultiStore._write-expanded"><a name="L302"></a><tt class="py-lineno">302</tt> <tt class="py-line"> <tt class="py-docstring">"""Write the cached data back out.</tt> </tt>
+<a name="L303"></a><tt class="py-lineno">303</tt> <tt class="py-line"><tt class="py-docstring"></tt> </tt>
+<a name="L304"></a><tt class="py-lineno">304</tt> <tt class="py-line"><tt class="py-docstring"> The multistore must be locked.</tt> </tt>
+<a name="L305"></a><tt class="py-lineno">305</tt> <tt class="py-line"><tt class="py-docstring"> """</tt> </tt>
+<a name="L306"></a><tt class="py-lineno">306</tt> <tt class="py-line"> <tt class="py-name">raw_data</tt> <tt class="py-op">=</tt> <tt class="py-op">{</tt><tt class="py-string">'file_version'</tt><tt class="py-op">:</tt> <tt class="py-number">1</tt><tt class="py-op">}</tt> </tt>
+<a name="L307"></a><tt class="py-lineno">307</tt> <tt class="py-line"> <tt class="py-name">raw_creds</tt> <tt class="py-op">=</tt> <tt class="py-op">[</tt><tt class="py-op">]</tt> </tt>
+<a name="L308"></a><tt class="py-lineno">308</tt> <tt class="py-line"> <tt class="py-name">raw_data</tt><tt class="py-op">[</tt><tt class="py-string">'data'</tt><tt class="py-op">]</tt> <tt class="py-op">=</tt> <tt class="py-name">raw_creds</tt> </tt>
+<a name="L309"></a><tt class="py-lineno">309</tt> <tt class="py-line"> <tt class="py-keyword">for</tt> <tt class="py-op">(</tt><tt class="py-name">cred_key</tt><tt class="py-op">,</tt> <tt class="py-name">cred</tt><tt class="py-op">)</tt> <tt class="py-keyword">in</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">_data</tt><tt class="py-op">.</tt><tt class="py-name">items</tt><tt class="py-op">(</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+<a name="L310"></a><tt class="py-lineno">310</tt> <tt class="py-line"> <tt class="py-name">raw_key</tt> <tt class="py-op">=</tt> <tt class="py-op">{</tt> </tt>
+<a name="L311"></a><tt class="py-lineno">311</tt> <tt class="py-line"> <tt class="py-string">'clientId'</tt><tt class="py-op">:</tt> <tt class="py-name">cred_key</tt><tt class="py-op">[</tt><tt class="py-number">0</tt><tt class="py-op">]</tt><tt class="py-op">,</tt> </tt>
+<a name="L312"></a><tt class="py-lineno">312</tt> <tt class="py-line"> <tt class="py-string">'userAgent'</tt><tt class="py-op">:</tt> <tt class="py-name">cred_key</tt><tt class="py-op">[</tt><tt class="py-number">1</tt><tt class="py-op">]</tt><tt class="py-op">,</tt> </tt>
+<a name="L313"></a><tt class="py-lineno">313</tt> <tt class="py-line"> <tt class="py-string">'scope'</tt><tt class="py-op">:</tt> <tt class="py-name">cred_key</tt><tt class="py-op">[</tt><tt class="py-number">2</tt><tt class="py-op">]</tt> </tt>
+<a name="L314"></a><tt class="py-lineno">314</tt> <tt class="py-line"> <tt class="py-op">}</tt> </tt>
+<a name="L315"></a><tt class="py-lineno">315</tt> <tt class="py-line"> <tt class="py-name">raw_cred</tt> <tt class="py-op">=</tt> <tt class="py-name">simplejson</tt><tt class="py-op">.</tt><tt id="link-58" class="py-name" targets="Function oauth2client.clientsecrets.loads()=oauth2client.clientsecrets-module.html#loads"><a title="oauth2client.clientsecrets.loads" class="py-name" href="#" onclick="return doclink('link-58', 'loads', 'link-58');">loads</a></tt><tt class="py-op">(</tt><tt class="py-name">cred</tt><tt class="py-op">.</tt><tt id="link-59" class="py-name" targets="Method apiclient.http.HttpRequest.to_json()=apiclient.http.HttpRequest-class.html#to_json,Method apiclient.http.MediaFileUpload.to_json()=apiclient.http.MediaFileUpload-class.html#to_json,Method apiclient.http.MediaInMemoryUpload.to_json()=apiclient.http.MediaInMemoryUpload-class.html#to_json,Method apiclient.http.MediaIoBaseUpload.to_json()=apiclient.http.MediaIoBaseUpload-class.html#to_json,Method apiclient.http.MediaUpload.to_json()=apiclient.http.MediaUpload-class.html#to_json,Method oauth2client.client.Credentials.to_json()=oauth2client.client.Credentials-class.html#to_json,Method oauth2client.client.OAuth2Credentials.to_json()=oauth2client.client.OAuth2Credentials-class.html#to_json"><a title="apiclient.http.HttpRequest.to_json
apiclient.http.MediaFileUpload.to_json
apiclient.http.MediaInMemoryUpload.to_json
+apiclient.http.MediaIoBaseUpload.to_json
apiclient.http.MediaUpload.to_json
oauth2client.client.Credentials.to_json
-oauth2client.client.OAuth2Credentials.to_json" class="py-name" href="#" onclick="return doclink('link-39', 'to_json', 'link-39');">to_json</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
-<a name="L325"></a><tt class="py-lineno">325</tt> <tt class="py-line"> <tt class="py-name">raw_creds</tt><tt class="py-op">.</tt><tt class="py-name">append</tt><tt class="py-op">(</tt><tt class="py-op">{</tt><tt class="py-string">'key'</tt><tt class="py-op">:</tt> <tt class="py-name">raw_key</tt><tt class="py-op">,</tt> <tt class="py-string">'credential'</tt><tt class="py-op">:</tt> <tt class="py-name">raw_cred</tt><tt class="py-op">}</tt><tt class="py-op">)</tt> </tt>
-<a name="L326"></a><tt class="py-lineno">326</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-40" class="py-name" targets="Method oauth2client.multistore_file._MultiStore._locked_json_write()=oauth2client.multistore_file._MultiStore-class.html#_locked_json_write"><a title="oauth2client.multistore_file._MultiStore._locked_json_write" class="py-name" href="#" onclick="return doclink('link-40', '_locked_json_write', 'link-40');">_locked_json_write</a></tt><tt class="py-op">(</tt><tt class="py-name">raw_data</tt><tt class="py-op">)</tt> </tt>
-</div><a name="L327"></a><tt class="py-lineno">327</tt> <tt class="py-line"> </tt>
-<a name="_MultiStore._get_credential"></a><div id="_MultiStore._get_credential-def"><a name="L328"></a><tt class="py-lineno">328</tt> <a class="py-toggle" href="#" id="_MultiStore._get_credential-toggle" onclick="return toggle('_MultiStore._get_credential');">-</a><tt class="py-line"> <tt class="py-keyword">def</tt> <a class="py-def-name" href="oauth2client.multistore_file._MultiStore-class.html#_get_credential">_get_credential</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">user_agent</tt><tt class="py-op">,</tt> <tt class="py-param">scope</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-</div><div id="_MultiStore._get_credential-collapsed" style="display:none;" pad="+++" indent="++++++"></div><div id="_MultiStore._get_credential-expanded"><a name="L329"></a><tt class="py-lineno">329</tt> <tt class="py-line"> <tt class="py-docstring">"""Get a credential from the multistore.</tt> </tt>
-<a name="L330"></a><tt class="py-lineno">330</tt> <tt class="py-line"><tt class="py-docstring"></tt> </tt>
-<a name="L331"></a><tt class="py-lineno">331</tt> <tt class="py-line"><tt class="py-docstring"> The multistore must be locked.</tt> </tt>
-<a name="L332"></a><tt class="py-lineno">332</tt> <tt class="py-line"><tt class="py-docstring"></tt> </tt>
-<a name="L333"></a><tt class="py-lineno">333</tt> <tt class="py-line"><tt class="py-docstring"> Args:</tt> </tt>
-<a name="L334"></a><tt class="py-lineno">334</tt> <tt class="py-line"><tt class="py-docstring"> client_id: The client_id for the credential</tt> </tt>
-<a name="L335"></a><tt class="py-lineno">335</tt> <tt class="py-line"><tt class="py-docstring"> user_agent: The user agent for the credential</tt> </tt>
-<a name="L336"></a><tt class="py-lineno">336</tt> <tt class="py-line"><tt class="py-docstring"> scope: A string for the scope(s) being requested</tt> </tt>
-<a name="L337"></a><tt class="py-lineno">337</tt> <tt class="py-line"><tt class="py-docstring"></tt> </tt>
-<a name="L338"></a><tt class="py-lineno">338</tt> <tt class="py-line"><tt class="py-docstring"> Returns:</tt> </tt>
-<a name="L339"></a><tt class="py-lineno">339</tt> <tt class="py-line"><tt class="py-docstring"> The credential specified or None if not present</tt> </tt>
-<a name="L340"></a><tt class="py-lineno">340</tt> <tt class="py-line"><tt class="py-docstring"> """</tt> </tt>
-<a name="L341"></a><tt class="py-lineno">341</tt> <tt class="py-line"> <tt class="py-name">key</tt> <tt class="py-op">=</tt> <tt class="py-op">(</tt><tt class="py-name">client_id</tt><tt class="py-op">,</tt> <tt class="py-name">user_agent</tt><tt class="py-op">,</tt> <tt class="py-name">scope</tt><tt class="py-op">)</tt> </tt>
-<a name="L342"></a><tt class="py-lineno">342</tt> <tt class="py-line"> </tt>
-<a name="L343"></a><tt class="py-lineno">343</tt> <tt class="py-line"> <tt class="py-keyword">return</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">_data</tt><tt class="py-op">.</tt><tt id="link-41" class="py-name" targets="Method apiclient.schema.Schemas.get()=apiclient.schema.Schemas-class.html#get,Method oauth2client.appengine.OAuth2Handler.get()=oauth2client.appengine.OAuth2Handler-class.html#get,Method oauth2client.client.MemoryCache.get()=oauth2client.client.MemoryCache-class.html#get,Method oauth2client.client.Storage.get()=oauth2client.client.Storage-class.html#get"><a title="apiclient.schema.Schemas.get
+oauth2client.client.OAuth2Credentials.to_json" class="py-name" href="#" onclick="return doclink('link-59', 'to_json', 'link-59');">to_json</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
+<a name="L316"></a><tt class="py-lineno">316</tt> <tt class="py-line"> <tt class="py-name">raw_creds</tt><tt class="py-op">.</tt><tt class="py-name">append</tt><tt class="py-op">(</tt><tt class="py-op">{</tt><tt class="py-string">'key'</tt><tt class="py-op">:</tt> <tt class="py-name">raw_key</tt><tt class="py-op">,</tt> <tt class="py-string">'credential'</tt><tt class="py-op">:</tt> <tt class="py-name">raw_cred</tt><tt class="py-op">}</tt><tt class="py-op">)</tt> </tt>
+<a name="L317"></a><tt class="py-lineno">317</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-60" class="py-name" targets="Method oauth2client.multistore_file._MultiStore._locked_json_write()=oauth2client.multistore_file._MultiStore-class.html#_locked_json_write"><a title="oauth2client.multistore_file._MultiStore._locked_json_write" class="py-name" href="#" onclick="return doclink('link-60', '_locked_json_write', 'link-60');">_locked_json_write</a></tt><tt class="py-op">(</tt><tt class="py-name">raw_data</tt><tt class="py-op">)</tt> </tt>
+</div><a name="L318"></a><tt class="py-lineno">318</tt> <tt class="py-line"> </tt>
+<a name="_MultiStore._get_credential"></a><div id="_MultiStore._get_credential-def"><a name="L319"></a><tt class="py-lineno">319</tt> <a class="py-toggle" href="#" id="_MultiStore._get_credential-toggle" onclick="return toggle('_MultiStore._get_credential');">-</a><tt class="py-line"> <tt class="py-keyword">def</tt> <a class="py-def-name" href="oauth2client.multistore_file._MultiStore-class.html#_get_credential">_get_credential</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">user_agent</tt><tt class="py-op">,</tt> <tt class="py-param">scope</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+</div><div id="_MultiStore._get_credential-collapsed" style="display:none;" pad="+++" indent="++++++"></div><div id="_MultiStore._get_credential-expanded"><a name="L320"></a><tt class="py-lineno">320</tt> <tt class="py-line"> <tt class="py-docstring">"""Get a credential from the multistore.</tt> </tt>
+<a name="L321"></a><tt class="py-lineno">321</tt> <tt class="py-line"><tt class="py-docstring"></tt> </tt>
+<a name="L322"></a><tt class="py-lineno">322</tt> <tt class="py-line"><tt class="py-docstring"> The multistore must be locked.</tt> </tt>
+<a name="L323"></a><tt class="py-lineno">323</tt> <tt class="py-line"><tt class="py-docstring"></tt> </tt>
+<a name="L324"></a><tt class="py-lineno">324</tt> <tt class="py-line"><tt class="py-docstring"> Args:</tt> </tt>
+<a name="L325"></a><tt class="py-lineno">325</tt> <tt class="py-line"><tt class="py-docstring"> client_id: The client_id for the credential</tt> </tt>
+<a name="L326"></a><tt class="py-lineno">326</tt> <tt class="py-line"><tt class="py-docstring"> user_agent: The user agent for the credential</tt> </tt>
+<a name="L327"></a><tt class="py-lineno">327</tt> <tt class="py-line"><tt class="py-docstring"> scope: A string for the scope(s) being requested</tt> </tt>
+<a name="L328"></a><tt class="py-lineno">328</tt> <tt class="py-line"><tt class="py-docstring"></tt> </tt>
+<a name="L329"></a><tt class="py-lineno">329</tt> <tt class="py-line"><tt class="py-docstring"> Returns:</tt> </tt>
+<a name="L330"></a><tt class="py-lineno">330</tt> <tt class="py-line"><tt class="py-docstring"> The credential specified or None if not present</tt> </tt>
+<a name="L331"></a><tt class="py-lineno">331</tt> <tt class="py-line"><tt class="py-docstring"> """</tt> </tt>
+<a name="L332"></a><tt class="py-lineno">332</tt> <tt class="py-line"> <tt class="py-name">key</tt> <tt class="py-op">=</tt> <tt class="py-op">(</tt><tt class="py-name">client_id</tt><tt class="py-op">,</tt> <tt class="py-name">user_agent</tt><tt class="py-op">,</tt> <tt class="py-name">scope</tt><tt class="py-op">)</tt> </tt>
+<a name="L333"></a><tt class="py-lineno">333</tt> <tt class="py-line"> </tt>
+<a name="L334"></a><tt class="py-lineno">334</tt> <tt class="py-line"> <tt class="py-keyword">return</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">_data</tt><tt class="py-op">.</tt><tt id="link-61" class="py-name" targets="Method apiclient.schema.Schemas.get()=apiclient.schema.Schemas-class.html#get,Method oauth2client.appengine.OAuth2Handler.get()=oauth2client.appengine.OAuth2Handler-class.html#get,Method oauth2client.client.MemoryCache.get()=oauth2client.client.MemoryCache-class.html#get,Method oauth2client.client.Storage.get()=oauth2client.client.Storage-class.html#get"><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-41', 'get', 'link-41');">get</a></tt><tt class="py-op">(</tt><tt class="py-name">key</tt><tt class="py-op">,</tt> <tt class="py-name">None</tt><tt class="py-op">)</tt> </tt>
-</div><a name="L344"></a><tt class="py-lineno">344</tt> <tt class="py-line"> </tt>
-<a name="_MultiStore._update_credential"></a><div id="_MultiStore._update_credential-def"><a name="L345"></a><tt class="py-lineno">345</tt> <a class="py-toggle" href="#" id="_MultiStore._update_credential-toggle" onclick="return toggle('_MultiStore._update_credential');">-</a><tt class="py-line"> <tt class="py-keyword">def</tt> <a class="py-def-name" href="oauth2client.multistore_file._MultiStore-class.html#_update_credential">_update_credential</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">,</tt> <tt class="py-param">cred</tt><tt class="py-op">,</tt> <tt class="py-param">scope</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-</div><div id="_MultiStore._update_credential-collapsed" style="display:none;" pad="+++" indent="++++++"></div><div id="_MultiStore._update_credential-expanded"><a name="L346"></a><tt class="py-lineno">346</tt> <tt class="py-line"> <tt class="py-docstring">"""Update a credential and write the multistore.</tt> </tt>
-<a name="L347"></a><tt class="py-lineno">347</tt> <tt class="py-line"><tt class="py-docstring"></tt> </tt>
-<a name="L348"></a><tt class="py-lineno">348</tt> <tt class="py-line"><tt class="py-docstring"> This must be called when the multistore is locked.</tt> </tt>
-<a name="L349"></a><tt class="py-lineno">349</tt> <tt class="py-line"><tt class="py-docstring"></tt> </tt>
-<a name="L350"></a><tt class="py-lineno">350</tt> <tt class="py-line"><tt class="py-docstring"> Args:</tt> </tt>
-<a name="L351"></a><tt class="py-lineno">351</tt> <tt class="py-line"><tt class="py-docstring"> cred: The OAuth2Credential to update/set</tt> </tt>
-<a name="L352"></a><tt class="py-lineno">352</tt> <tt class="py-line"><tt class="py-docstring"> scope: The scope(s) that this credential covers</tt> </tt>
-<a name="L353"></a><tt class="py-lineno">353</tt> <tt class="py-line"><tt class="py-docstring"> """</tt> </tt>
-<a name="L354"></a><tt class="py-lineno">354</tt> <tt class="py-line"> <tt class="py-name">key</tt> <tt class="py-op">=</tt> <tt class="py-op">(</tt><tt class="py-name">cred</tt><tt class="py-op">.</tt><tt class="py-name">client_id</tt><tt class="py-op">,</tt> <tt class="py-name">cred</tt><tt class="py-op">.</tt><tt class="py-name">user_agent</tt><tt class="py-op">,</tt> <tt class="py-name">scope</tt><tt class="py-op">)</tt> </tt>
-<a name="L355"></a><tt class="py-lineno">355</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">_data</tt><tt class="py-op">[</tt><tt class="py-name">key</tt><tt class="py-op">]</tt> <tt class="py-op">=</tt> <tt class="py-name">cred</tt> </tt>
-<a name="L356"></a><tt class="py-lineno">356</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-42" class="py-name"><a title="oauth2client.multistore_file._MultiStore._write" class="py-name" href="#" onclick="return doclink('link-42', '_write', 'link-23');">_write</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
-</div><a name="L357"></a><tt class="py-lineno">357</tt> <tt class="py-line"> </tt>
-<a name="_MultiStore._delete_credential"></a><div id="_MultiStore._delete_credential-def"><a name="L358"></a><tt class="py-lineno">358</tt> <a class="py-toggle" href="#" id="_MultiStore._delete_credential-toggle" onclick="return toggle('_MultiStore._delete_credential');">-</a><tt class="py-line"> <tt class="py-keyword">def</tt> <a class="py-def-name" href="oauth2client.multistore_file._MultiStore-class.html#_delete_credential">_delete_credential</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">user_agent</tt><tt class="py-op">,</tt> <tt class="py-param">scope</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-</div><div id="_MultiStore._delete_credential-collapsed" style="display:none;" pad="+++" indent="++++++"></div><div id="_MultiStore._delete_credential-expanded"><a name="L359"></a><tt class="py-lineno">359</tt> <tt class="py-line"> <tt class="py-docstring">"""Delete a credential and write the multistore.</tt> </tt>
-<a name="L360"></a><tt class="py-lineno">360</tt> <tt class="py-line"><tt class="py-docstring"></tt> </tt>
-<a name="L361"></a><tt class="py-lineno">361</tt> <tt class="py-line"><tt class="py-docstring"> This must be called when the multistore is locked.</tt> </tt>
-<a name="L362"></a><tt class="py-lineno">362</tt> <tt class="py-line"><tt class="py-docstring"></tt> </tt>
-<a name="L363"></a><tt class="py-lineno">363</tt> <tt class="py-line"><tt class="py-docstring"> Args:</tt> </tt>
-<a name="L364"></a><tt class="py-lineno">364</tt> <tt class="py-line"><tt class="py-docstring"> client_id: The client_id for the credential</tt> </tt>
-<a name="L365"></a><tt class="py-lineno">365</tt> <tt class="py-line"><tt class="py-docstring"> user_agent: The user agent for the credential</tt> </tt>
-<a name="L366"></a><tt class="py-lineno">366</tt> <tt class="py-line"><tt class="py-docstring"> scope: The scope(s) that this credential covers</tt> </tt>
-<a name="L367"></a><tt class="py-lineno">367</tt> <tt class="py-line"><tt class="py-docstring"> """</tt> </tt>
-<a name="L368"></a><tt class="py-lineno">368</tt> <tt class="py-line"> <tt class="py-name">key</tt> <tt class="py-op">=</tt> <tt class="py-op">(</tt><tt class="py-name">client_id</tt><tt class="py-op">,</tt> <tt class="py-name">user_agent</tt><tt class="py-op">,</tt> <tt class="py-name">scope</tt><tt class="py-op">)</tt> </tt>
-<a name="L369"></a><tt class="py-lineno">369</tt> <tt class="py-line"> <tt class="py-keyword">try</tt><tt class="py-op">:</tt> </tt>
-<a name="L370"></a><tt class="py-lineno">370</tt> <tt class="py-line"> <tt class="py-keyword">del</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">_data</tt><tt class="py-op">[</tt><tt class="py-name">key</tt><tt class="py-op">]</tt> </tt>
-<a name="L371"></a><tt class="py-lineno">371</tt> <tt class="py-line"> <tt class="py-keyword">except</tt> <tt class="py-name">KeyError</tt><tt class="py-op">:</tt> </tt>
-<a name="L372"></a><tt class="py-lineno">372</tt> <tt class="py-line"> <tt class="py-keyword">pass</tt> </tt>
-<a name="L373"></a><tt class="py-lineno">373</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-43" class="py-name"><a title="oauth2client.multistore_file._MultiStore._write" class="py-name" href="#" onclick="return doclink('link-43', '_write', 'link-23');">_write</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
-</div><a name="L374"></a><tt class="py-lineno">374</tt> <tt class="py-line"> </tt>
-<a name="_MultiStore._get_storage"></a><div id="_MultiStore._get_storage-def"><a name="L375"></a><tt class="py-lineno">375</tt> <a class="py-toggle" href="#" id="_MultiStore._get_storage-toggle" onclick="return toggle('_MultiStore._get_storage');">-</a><tt class="py-line"> <tt class="py-keyword">def</tt> <a class="py-def-name" href="oauth2client.multistore_file._MultiStore-class.html#_get_storage">_get_storage</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">user_agent</tt><tt class="py-op">,</tt> <tt class="py-param">scope</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-</div><div id="_MultiStore._get_storage-collapsed" style="display:none;" pad="+++" indent="++++++"></div><div id="_MultiStore._get_storage-expanded"><a name="L376"></a><tt class="py-lineno">376</tt> <tt class="py-line"> <tt class="py-docstring">"""Get a Storage object to get/set a credential.</tt> </tt>
-<a name="L377"></a><tt class="py-lineno">377</tt> <tt class="py-line"><tt class="py-docstring"></tt> </tt>
-<a name="L378"></a><tt class="py-lineno">378</tt> <tt class="py-line"><tt class="py-docstring"> This Storage is a 'view' into the multistore.</tt> </tt>
-<a name="L379"></a><tt class="py-lineno">379</tt> <tt class="py-line"><tt class="py-docstring"></tt> </tt>
-<a name="L380"></a><tt class="py-lineno">380</tt> <tt class="py-line"><tt class="py-docstring"> Args:</tt> </tt>
-<a name="L381"></a><tt class="py-lineno">381</tt> <tt class="py-line"><tt class="py-docstring"> client_id: The client_id for the credential</tt> </tt>
-<a name="L382"></a><tt class="py-lineno">382</tt> <tt class="py-line"><tt class="py-docstring"> user_agent: The user agent for the credential</tt> </tt>
-<a name="L383"></a><tt class="py-lineno">383</tt> <tt class="py-line"><tt class="py-docstring"> scope: A string for the scope(s) being requested</tt> </tt>
-<a name="L384"></a><tt class="py-lineno">384</tt> <tt class="py-line"><tt class="py-docstring"></tt> </tt>
-<a name="L385"></a><tt class="py-lineno">385</tt> <tt class="py-line"><tt class="py-docstring"> Returns:</tt> </tt>
-<a name="L386"></a><tt class="py-lineno">386</tt> <tt class="py-line"><tt class="py-docstring"> A Storage object that can be used to get/set this cred</tt> </tt>
-<a name="L387"></a><tt class="py-lineno">387</tt> <tt class="py-line"><tt class="py-docstring"> """</tt> </tt>
-<a name="L388"></a><tt class="py-lineno">388</tt> <tt class="py-line"> <tt class="py-keyword">return</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-44" class="py-name" targets="Class oauth2client.multistore_file._MultiStore._Storage=oauth2client.multistore_file._MultiStore._Storage-class.html"><a title="oauth2client.multistore_file._MultiStore._Storage" class="py-name" href="#" onclick="return doclink('link-44', '_Storage', 'link-44');">_Storage</a></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 class="py-name">user_agent</tt><tt class="py-op">,</tt> <tt class="py-name">scope</tt><tt class="py-op">)</tt> </tt>
-</div></div><a name="L389"></a><tt class="py-lineno">389</tt> <tt class="py-line"> </tt><script type="text/javascript">
+oauth2client.client.Storage.get" class="py-name" href="#" onclick="return doclink('link-61', 'get', 'link-61');">get</a></tt><tt class="py-op">(</tt><tt class="py-name">key</tt><tt class="py-op">,</tt> <tt class="py-name">None</tt><tt class="py-op">)</tt> </tt>
+</div><a name="L335"></a><tt class="py-lineno">335</tt> <tt class="py-line"> </tt>
+<a name="_MultiStore._update_credential"></a><div id="_MultiStore._update_credential-def"><a name="L336"></a><tt class="py-lineno">336</tt> <a class="py-toggle" href="#" id="_MultiStore._update_credential-toggle" onclick="return toggle('_MultiStore._update_credential');">-</a><tt class="py-line"> <tt class="py-keyword">def</tt> <a class="py-def-name" href="oauth2client.multistore_file._MultiStore-class.html#_update_credential">_update_credential</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">,</tt> <tt class="py-param">cred</tt><tt class="py-op">,</tt> <tt class="py-param">scope</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+</div><div id="_MultiStore._update_credential-collapsed" style="display:none;" pad="+++" indent="++++++"></div><div id="_MultiStore._update_credential-expanded"><a name="L337"></a><tt class="py-lineno">337</tt> <tt class="py-line"> <tt class="py-docstring">"""Update a credential and write the multistore.</tt> </tt>
+<a name="L338"></a><tt class="py-lineno">338</tt> <tt class="py-line"><tt class="py-docstring"></tt> </tt>
+<a name="L339"></a><tt class="py-lineno">339</tt> <tt class="py-line"><tt class="py-docstring"> This must be called when the multistore is locked.</tt> </tt>
+<a name="L340"></a><tt class="py-lineno">340</tt> <tt class="py-line"><tt class="py-docstring"></tt> </tt>
+<a name="L341"></a><tt class="py-lineno">341</tt> <tt class="py-line"><tt class="py-docstring"> Args:</tt> </tt>
+<a name="L342"></a><tt class="py-lineno">342</tt> <tt class="py-line"><tt class="py-docstring"> cred: The OAuth2Credential to update/set</tt> </tt>
+<a name="L343"></a><tt class="py-lineno">343</tt> <tt class="py-line"><tt class="py-docstring"> scope: The scope(s) that this credential covers</tt> </tt>
+<a name="L344"></a><tt class="py-lineno">344</tt> <tt class="py-line"><tt class="py-docstring"> """</tt> </tt>
+<a name="L345"></a><tt class="py-lineno">345</tt> <tt class="py-line"> <tt class="py-name">key</tt> <tt class="py-op">=</tt> <tt class="py-op">(</tt><tt class="py-name">cred</tt><tt class="py-op">.</tt><tt class="py-name">client_id</tt><tt class="py-op">,</tt> <tt class="py-name">cred</tt><tt class="py-op">.</tt><tt class="py-name">user_agent</tt><tt class="py-op">,</tt> <tt class="py-name">scope</tt><tt class="py-op">)</tt> </tt>
+<a name="L346"></a><tt class="py-lineno">346</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">_data</tt><tt class="py-op">[</tt><tt class="py-name">key</tt><tt class="py-op">]</tt> <tt class="py-op">=</tt> <tt class="py-name">cred</tt> </tt>
+<a name="L347"></a><tt class="py-lineno">347</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-62" class="py-name"><a title="oauth2client.multistore_file._MultiStore._write" class="py-name" href="#" onclick="return doclink('link-62', '_write', 'link-37');">_write</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
+</div><a name="L348"></a><tt class="py-lineno">348</tt> <tt class="py-line"> </tt>
+<a name="_MultiStore._delete_credential"></a><div id="_MultiStore._delete_credential-def"><a name="L349"></a><tt class="py-lineno">349</tt> <a class="py-toggle" href="#" id="_MultiStore._delete_credential-toggle" onclick="return toggle('_MultiStore._delete_credential');">-</a><tt class="py-line"> <tt class="py-keyword">def</tt> <a class="py-def-name" href="oauth2client.multistore_file._MultiStore-class.html#_delete_credential">_delete_credential</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">user_agent</tt><tt class="py-op">,</tt> <tt class="py-param">scope</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+</div><div id="_MultiStore._delete_credential-collapsed" style="display:none;" pad="+++" indent="++++++"></div><div id="_MultiStore._delete_credential-expanded"><a name="L350"></a><tt class="py-lineno">350</tt> <tt class="py-line"> <tt class="py-docstring">"""Delete a credential and write the multistore.</tt> </tt>
+<a name="L351"></a><tt class="py-lineno">351</tt> <tt class="py-line"><tt class="py-docstring"></tt> </tt>
+<a name="L352"></a><tt class="py-lineno">352</tt> <tt class="py-line"><tt class="py-docstring"> This must be called when the multistore is locked.</tt> </tt>
+<a name="L353"></a><tt class="py-lineno">353</tt> <tt class="py-line"><tt class="py-docstring"></tt> </tt>
+<a name="L354"></a><tt class="py-lineno">354</tt> <tt class="py-line"><tt class="py-docstring"> Args:</tt> </tt>
+<a name="L355"></a><tt class="py-lineno">355</tt> <tt class="py-line"><tt class="py-docstring"> client_id: The client_id for the credential</tt> </tt>
+<a name="L356"></a><tt class="py-lineno">356</tt> <tt class="py-line"><tt class="py-docstring"> user_agent: The user agent for the credential</tt> </tt>
+<a name="L357"></a><tt class="py-lineno">357</tt> <tt class="py-line"><tt class="py-docstring"> scope: The scope(s) that this credential covers</tt> </tt>
+<a name="L358"></a><tt class="py-lineno">358</tt> <tt class="py-line"><tt class="py-docstring"> """</tt> </tt>
+<a name="L359"></a><tt class="py-lineno">359</tt> <tt class="py-line"> <tt class="py-name">key</tt> <tt class="py-op">=</tt> <tt class="py-op">(</tt><tt class="py-name">client_id</tt><tt class="py-op">,</tt> <tt class="py-name">user_agent</tt><tt class="py-op">,</tt> <tt class="py-name">scope</tt><tt class="py-op">)</tt> </tt>
+<a name="L360"></a><tt class="py-lineno">360</tt> <tt class="py-line"> <tt class="py-keyword">try</tt><tt class="py-op">:</tt> </tt>
+<a name="L361"></a><tt class="py-lineno">361</tt> <tt class="py-line"> <tt class="py-keyword">del</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">_data</tt><tt class="py-op">[</tt><tt class="py-name">key</tt><tt class="py-op">]</tt> </tt>
+<a name="L362"></a><tt class="py-lineno">362</tt> <tt class="py-line"> <tt class="py-keyword">except</tt> <tt class="py-name">KeyError</tt><tt class="py-op">:</tt> </tt>
+<a name="L363"></a><tt class="py-lineno">363</tt> <tt class="py-line"> <tt class="py-keyword">pass</tt> </tt>
+<a name="L364"></a><tt class="py-lineno">364</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-63" class="py-name"><a title="oauth2client.multistore_file._MultiStore._write" class="py-name" href="#" onclick="return doclink('link-63', '_write', 'link-37');">_write</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
+</div><a name="L365"></a><tt class="py-lineno">365</tt> <tt class="py-line"> </tt>
+<a name="_MultiStore._get_storage"></a><div id="_MultiStore._get_storage-def"><a name="L366"></a><tt class="py-lineno">366</tt> <a class="py-toggle" href="#" id="_MultiStore._get_storage-toggle" onclick="return toggle('_MultiStore._get_storage');">-</a><tt class="py-line"> <tt class="py-keyword">def</tt> <a class="py-def-name" href="oauth2client.multistore_file._MultiStore-class.html#_get_storage">_get_storage</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">user_agent</tt><tt class="py-op">,</tt> <tt class="py-param">scope</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+</div><div id="_MultiStore._get_storage-collapsed" style="display:none;" pad="+++" indent="++++++"></div><div id="_MultiStore._get_storage-expanded"><a name="L367"></a><tt class="py-lineno">367</tt> <tt class="py-line"> <tt class="py-docstring">"""Get a Storage object to get/set a credential.</tt> </tt>
+<a name="L368"></a><tt class="py-lineno">368</tt> <tt class="py-line"><tt class="py-docstring"></tt> </tt>
+<a name="L369"></a><tt class="py-lineno">369</tt> <tt class="py-line"><tt class="py-docstring"> This Storage is a 'view' into the multistore.</tt> </tt>
+<a name="L370"></a><tt class="py-lineno">370</tt> <tt class="py-line"><tt class="py-docstring"></tt> </tt>
+<a name="L371"></a><tt class="py-lineno">371</tt> <tt class="py-line"><tt class="py-docstring"> Args:</tt> </tt>
+<a name="L372"></a><tt class="py-lineno">372</tt> <tt class="py-line"><tt class="py-docstring"> client_id: The client_id for the credential</tt> </tt>
+<a name="L373"></a><tt class="py-lineno">373</tt> <tt class="py-line"><tt class="py-docstring"> user_agent: The user agent for the credential</tt> </tt>
+<a name="L374"></a><tt class="py-lineno">374</tt> <tt class="py-line"><tt class="py-docstring"> scope: A string for the scope(s) being requested</tt> </tt>
+<a name="L375"></a><tt class="py-lineno">375</tt> <tt class="py-line"><tt class="py-docstring"></tt> </tt>
+<a name="L376"></a><tt class="py-lineno">376</tt> <tt class="py-line"><tt class="py-docstring"> Returns:</tt> </tt>
+<a name="L377"></a><tt class="py-lineno">377</tt> <tt class="py-line"><tt class="py-docstring"> A Storage object that can be used to get/set this cred</tt> </tt>
+<a name="L378"></a><tt class="py-lineno">378</tt> <tt class="py-line"><tt class="py-docstring"> """</tt> </tt>
+<a name="L379"></a><tt class="py-lineno">379</tt> <tt class="py-line"> <tt class="py-keyword">return</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-64" class="py-name" targets="Class oauth2client.multistore_file._MultiStore._Storage=oauth2client.multistore_file._MultiStore._Storage-class.html"><a title="oauth2client.multistore_file._MultiStore._Storage" class="py-name" href="#" onclick="return doclink('link-64', '_Storage', 'link-64');">_Storage</a></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 class="py-name">user_agent</tt><tt class="py-op">,</tt> <tt class="py-name">scope</tt><tt class="py-op">)</tt> </tt>
+</div></div><a name="L380"></a><tt class="py-lineno">380</tt> <tt class="py-line"> </tt><script type="text/javascript">
<!--
expandto(location.href);
// -->
@@ -495,7 +514,7 @@
<table border="0" cellpadding="0" cellspacing="0" width="100%%">
<tr>
<td align="left" class="footer">
- Generated by Epydoc 3.0.1 on Tue Jun 5 09:03:12 2012
+ Generated by Epydoc 3.0.1 on Thu Jun 14 08:01:59 2012
</td>
<td align="right" class="footer">
<a target="mainFrame" href="http://epydoc.sourceforge.net"
diff --git a/docs/epy/oauth2client.multistore_file.Error-class.html b/docs/epy/oauth2client.multistore_file.Error-class.html
index 7bd35bf..a2edc07 100644
--- a/docs/epy/oauth2client.multistore_file.Error-class.html
+++ b/docs/epy/oauth2client.multistore_file.Error-class.html
@@ -55,7 +55,7 @@
<!-- ==================== CLASS DESCRIPTION ==================== -->
<h1 class="epydoc">Class Error</h1><p class="nomargin-top"><span class="codelink"><a href="oauth2client.multistore_file-pysrc.html#Error">source code</a></span></p>
<center>
-<center> <map id="uml_class_diagram_for_oauth2cl_35" name="uml_class_diagram_for_oauth2cl_35">
+<center> <map id="uml_class_diagram_for_oauth2cl_41" name="uml_class_diagram_for_oauth2cl_41">
<area shape="rect" href="oauth2client.multistore_file.Error-class.html" title="Base error for this module." alt="" coords="84,379,116,411"/>
<area shape="rect" href="oauth2client.multistore_file.NewerCredentialStoreError-class.html" title="The credential store is a newer version that supported." alt="" coords="16,440,184,467"/>
<area shape="rect" href="javascript:void(0);" title="x.__init__(...) initializes x; see x.__class__.__doc__ for signature" alt="" coords="37,311,163,329"/>
@@ -75,7 +75,7 @@
<area shape="rect" href="javascript:void(0);" title="exceptions.BaseException.__unicode__" alt="" coords="23,236,177,255"/>
<area shape="rect" href="javascript:void(0);" title="Common base class for all exceptions" alt="" coords="21,11,179,256"/>
</map>
- <img src="uml_class_diagram_for_oauth2cl_35.gif" alt='' usemap="#uml_class_diagram_for_oauth2cl_35" ismap="ismap" class="graph-without-title" />
+ <img src="uml_class_diagram_for_oauth2cl_41.gif" alt='' usemap="#uml_class_diagram_for_oauth2cl_41" ismap="ismap" class="graph-without-title" />
</center>
</center>
<hr />
@@ -181,7 +181,7 @@
<table border="0" cellpadding="0" cellspacing="0" width="100%%">
<tr>
<td align="left" class="footer">
- Generated by Epydoc 3.0.1 on Tue Jun 5 09:03:11 2012
+ Generated by Epydoc 3.0.1 on Thu Jun 14 08:01:58 2012
</td>
<td align="right" class="footer">
<a target="mainFrame" href="http://epydoc.sourceforge.net"
diff --git a/docs/epy/oauth2client.multistore_file.NewerCredentialStoreError-class.html b/docs/epy/oauth2client.multistore_file.NewerCredentialStoreError-class.html
index 243c5c9..7b89fdc 100644
--- a/docs/epy/oauth2client.multistore_file.NewerCredentialStoreError-class.html
+++ b/docs/epy/oauth2client.multistore_file.NewerCredentialStoreError-class.html
@@ -55,9 +55,12 @@
<!-- ==================== CLASS DESCRIPTION ==================== -->
<h1 class="epydoc">Class NewerCredentialStoreError</h1><p class="nomargin-top"><span class="codelink"><a href="oauth2client.multistore_file-pysrc.html#NewerCredentialStoreError">source code</a></span></p>
<center>
-<center> <map id="uml_class_diagram_for_oauth2cl_36" name="uml_class_diagram_for_oauth2cl_36">
+<center> <map id="uml_class_diagram_for_oauth2cl_42" name="uml_class_diagram_for_oauth2cl_42">
<area shape="rect" href="oauth2client.multistore_file.NewerCredentialStoreError-class.html" title="The credential store is a newer version that supported." alt="" coords="16,440,173,472"/>
<area shape="rect" href="oauth2client.multistore_file.Error-class.html" title="Base error for this module." alt="" coords="79,379,111,411"/>
+<area shape="rect" href="javascript:void(0);" title="x.__init__(...) initializes x; see x.__class__.__doc__ for signature" alt="" coords="32,311,157,329"/>
+<area shape="rect" href="javascript:void(0);" title="exceptions.Exception.__new__" alt="" coords="32,329,157,348"/>
+<area shape="rect" href="javascript:void(0);" title="Common base class for all non-exit exceptions." alt="" coords="31,285,159,349"/>
<area shape="rect" href="javascript:void(0);" title="exceptions.BaseException.args" alt="" coords="17,28,172,47"/>
<area shape="rect" href="javascript:void(0);" title="exceptions.BaseException.message" alt="" coords="17,47,172,65"/>
<area shape="rect" href="javascript:void(0);" title="x.__delattr__('name') <==> del x.name" alt="" coords="17,68,172,87"/>
@@ -71,11 +74,8 @@
<area shape="rect" href="javascript:void(0);" title="str(x)" alt="" coords="17,217,172,236"/>
<area shape="rect" href="javascript:void(0);" title="exceptions.BaseException.__unicode__" alt="" coords="17,236,172,255"/>
<area shape="rect" href="javascript:void(0);" title="Common base class for all exceptions" alt="" coords="16,11,173,256"/>
-<area shape="rect" href="javascript:void(0);" title="x.__init__(...) initializes x; see x.__class__.__doc__ for signature" alt="" coords="32,311,157,329"/>
-<area shape="rect" href="javascript:void(0);" title="exceptions.Exception.__new__" alt="" coords="32,329,157,348"/>
-<area shape="rect" href="javascript:void(0);" title="Common base class for all non-exit exceptions." alt="" coords="31,285,159,349"/>
</map>
- <img src="uml_class_diagram_for_oauth2cl_36.gif" alt='' usemap="#uml_class_diagram_for_oauth2cl_36" ismap="ismap" class="graph-without-title" />
+ <img src="uml_class_diagram_for_oauth2cl_42.gif" alt='' usemap="#uml_class_diagram_for_oauth2cl_42" ismap="ismap" class="graph-without-title" />
</center>
</center>
<hr />
@@ -181,7 +181,7 @@
<table border="0" cellpadding="0" cellspacing="0" width="100%%">
<tr>
<td align="left" class="footer">
- Generated by Epydoc 3.0.1 on Tue Jun 5 09:03:11 2012
+ Generated by Epydoc 3.0.1 on Thu Jun 14 08:01:58 2012
</td>
<td align="right" class="footer">
<a target="mainFrame" href="http://epydoc.sourceforge.net"
diff --git a/docs/epy/oauth2client.multistore_file._MultiStore-class.html b/docs/epy/oauth2client.multistore_file._MultiStore-class.html
index a5f8b60..8f03d1d 100644
--- a/docs/epy/oauth2client.multistore_file._MultiStore-class.html
+++ b/docs/epy/oauth2client.multistore_file._MultiStore-class.html
@@ -55,11 +55,11 @@
<!-- ==================== CLASS DESCRIPTION ==================== -->
<h1 class="epydoc">Class _MultiStore</h1><p class="nomargin-top"><span class="codelink"><a href="oauth2client.multistore_file-pysrc.html#_MultiStore">source code</a></span></p>
<center>
-<center> <map id="uml_class_diagram_for_oauth2cl_37" name="uml_class_diagram_for_oauth2cl_37">
+<center> <map id="uml_class_diagram_for_oauth2cl_43" name="uml_class_diagram_for_oauth2cl_43">
<area shape="rect" href="oauth2client.multistore_file._MultiStore-class.html#__init__" title="Initialize the class." alt="" coords="17,36,297,55"/>
<area shape="rect" href="oauth2client.multistore_file._MultiStore-class.html" title="A file backed store for multiple credentials." alt="" coords="16,11,299,56"/>
</map>
- <img src="uml_class_diagram_for_oauth2cl_37.gif" alt='' usemap="#uml_class_diagram_for_oauth2cl_37" ismap="ismap" class="graph-without-title" />
+ <img src="uml_class_diagram_for_oauth2cl_43.gif" alt='' usemap="#uml_class_diagram_for_oauth2cl_43" ismap="ismap" class="graph-without-title" />
</center>
</center>
<hr />
@@ -757,7 +757,7 @@
<table border="0" cellpadding="0" cellspacing="0" width="100%%">
<tr>
<td align="left" class="footer">
- Generated by Epydoc 3.0.1 on Tue Jun 5 09:03:11 2012
+ Generated by Epydoc 3.0.1 on Thu Jun 14 08:01:58 2012
</td>
<td align="right" class="footer">
<a target="mainFrame" href="http://epydoc.sourceforge.net"
diff --git a/docs/epy/oauth2client.multistore_file._MultiStore._Storage-class.html b/docs/epy/oauth2client.multistore_file._MultiStore._Storage-class.html
index 8a8657c..5458343 100644
--- a/docs/epy/oauth2client.multistore_file._MultiStore._Storage-class.html
+++ b/docs/epy/oauth2client.multistore_file._MultiStore._Storage-class.html
@@ -56,7 +56,7 @@
<!-- ==================== CLASS DESCRIPTION ==================== -->
<h1 class="epydoc">Class _Storage</h1><p class="nomargin-top"><span class="codelink"><a href="oauth2client.multistore_file-pysrc.html#_MultiStore._Storage">source code</a></span></p>
<center>
-<center> <map id="uml_class_diagram_for_oauth2cl_38" name="uml_class_diagram_for_oauth2cl_38">
+<center> <map id="uml_class_diagram_for_oauth2cl_44" name="uml_class_diagram_for_oauth2cl_44">
<area shape="rect" href="oauth2client.multistore_file._MultiStore._Storage-class.html#__init__" title="x.__init__(...) initializes x; see x.__class__.__doc__ for signature" alt="" coords="17,148,332,167"/>
<area shape="rect" href="oauth2client.multistore_file._MultiStore._Storage-class.html#acquire_lock" title="Acquires any lock necessary to access this Storage." alt="" coords="17,167,332,185"/>
<area shape="rect" href="oauth2client.multistore_file._MultiStore._Storage-class.html#release_lock" title="Release the Storage lock." alt="" coords="17,185,332,204"/>
@@ -69,7 +69,7 @@
<area shape="rect" href="oauth2client.client.Storage-class.html#delete" title="Delete credential." alt="" coords="113,73,236,92"/>
<area shape="rect" href="oauth2client.client.Storage-class.html" title="Base class for all Storage objects." alt="" coords="112,11,237,93"/>
</map>
- <img src="uml_class_diagram_for_oauth2cl_38.gif" alt='' usemap="#uml_class_diagram_for_oauth2cl_38" ismap="ismap" class="graph-without-title" />
+ <img src="uml_class_diagram_for_oauth2cl_44.gif" alt='' usemap="#uml_class_diagram_for_oauth2cl_44" ismap="ismap" class="graph-without-title" />
</center>
</center>
<hr />
@@ -470,7 +470,7 @@
<table border="0" cellpadding="0" cellspacing="0" width="100%%">
<tr>
<td align="left" class="footer">
- Generated by Epydoc 3.0.1 on Tue Jun 5 09:03:11 2012
+ Generated by Epydoc 3.0.1 on Thu Jun 14 08:01:58 2012
</td>
<td align="right" class="footer">
<a target="mainFrame" href="http://epydoc.sourceforge.net"
diff --git a/docs/epy/oauth2client.tools-module.html b/docs/epy/oauth2client.tools-module.html
index 8ea8b02..e01a23c 100644
--- a/docs/epy/oauth2client.tools-module.html
+++ b/docs/epy/oauth2client.tools-module.html
@@ -244,7 +244,7 @@
<table border="0" cellpadding="0" cellspacing="0" width="100%%">
<tr>
<td align="left" class="footer">
- Generated by Epydoc 3.0.1 on Tue Jun 5 09:03:05 2012
+ Generated by Epydoc 3.0.1 on Thu Jun 14 08:01:54 2012
</td>
<td align="right" class="footer">
<a target="mainFrame" href="http://epydoc.sourceforge.net"
diff --git a/docs/epy/oauth2client.tools-pysrc.html b/docs/epy/oauth2client.tools-pysrc.html
index 6529a17..bd7335a 100644
--- a/docs/epy/oauth2client.tools-pysrc.html
+++ b/docs/epy/oauth2client.tools-pysrc.html
@@ -178,59 +178,67 @@
<a name="L118"></a><tt class="py-lineno">118</tt> <tt class="py-line"> <tt class="py-keyword">break</tt> </tt>
<a name="L119"></a><tt class="py-lineno">119</tt> <tt class="py-line"> <tt id="link-13" class="py-name"><a title="apiclient.model.FLAGS
oauth2client.tools.FLAGS" class="py-name" href="#" onclick="return doclink('link-13', 'FLAGS', 'link-4');">FLAGS</a></tt><tt class="py-op">.</tt><tt class="py-name">auth_local_webserver</tt> <tt class="py-op">=</tt> <tt class="py-name">success</tt> </tt>
-<a name="L120"></a><tt class="py-lineno">120</tt> <tt class="py-line"> </tt>
-<a name="L121"></a><tt class="py-lineno">121</tt> <tt class="py-line"> <tt class="py-keyword">if</tt> <tt id="link-14" class="py-name"><a title="apiclient.model.FLAGS
+<a name="L120"></a><tt class="py-lineno">120</tt> <tt class="py-line"> <tt class="py-keyword">if</tt> <tt class="py-keyword">not</tt> <tt class="py-name">success</tt><tt class="py-op">:</tt> </tt>
+<a name="L121"></a><tt class="py-lineno">121</tt> <tt class="py-line"> <tt class="py-keyword">print</tt> <tt class="py-string">'Failed to start a local webserver listening on either port 8080'</tt> </tt>
+<a name="L122"></a><tt class="py-lineno">122</tt> <tt class="py-line"> <tt class="py-keyword">print</tt> <tt class="py-string">'or port 9090. Please check your firewall settings and locally'</tt> </tt>
+<a name="L123"></a><tt class="py-lineno">123</tt> <tt class="py-line"> <tt class="py-keyword">print</tt> <tt class="py-string">'running programs that may be blocking or using those ports.'</tt> </tt>
+<a name="L124"></a><tt class="py-lineno">124</tt> <tt class="py-line"> <tt class="py-keyword">print</tt> </tt>
+<a name="L125"></a><tt class="py-lineno">125</tt> <tt class="py-line"> <tt class="py-keyword">print</tt> <tt class="py-string">'Falling back to --noauth_local_webserver and continuing with'</tt><tt class="py-op">,</tt> </tt>
+<a name="L126"></a><tt class="py-lineno">126</tt> <tt class="py-line"> <tt class="py-keyword">print</tt> <tt class="py-string">'authorization.'</tt> </tt>
+<a name="L127"></a><tt class="py-lineno">127</tt> <tt class="py-line"> <tt class="py-keyword">print</tt> </tt>
+<a name="L128"></a><tt class="py-lineno">128</tt> <tt class="py-line"> </tt>
+<a name="L129"></a><tt class="py-lineno">129</tt> <tt class="py-line"> <tt class="py-keyword">if</tt> <tt id="link-14" class="py-name"><a title="apiclient.model.FLAGS
oauth2client.tools.FLAGS" class="py-name" href="#" onclick="return doclink('link-14', 'FLAGS', 'link-4');">FLAGS</a></tt><tt class="py-op">.</tt><tt class="py-name">auth_local_webserver</tt><tt class="py-op">:</tt> </tt>
-<a name="L122"></a><tt class="py-lineno">122</tt> <tt class="py-line"> <tt class="py-name">oauth_callback</tt> <tt class="py-op">=</tt> <tt class="py-string">'http://%s:%s/'</tt> <tt class="py-op">%</tt> <tt class="py-op">(</tt><tt id="link-15" class="py-name"><a title="apiclient.model.FLAGS
+<a name="L130"></a><tt class="py-lineno">130</tt> <tt class="py-line"> <tt class="py-name">oauth_callback</tt> <tt class="py-op">=</tt> <tt class="py-string">'http://%s:%s/'</tt> <tt class="py-op">%</tt> <tt class="py-op">(</tt><tt id="link-15" class="py-name"><a title="apiclient.model.FLAGS
oauth2client.tools.FLAGS" class="py-name" href="#" onclick="return doclink('link-15', 'FLAGS', 'link-4');">FLAGS</a></tt><tt class="py-op">.</tt><tt class="py-name">auth_host_name</tt><tt class="py-op">,</tt> <tt class="py-name">port_number</tt><tt class="py-op">)</tt> </tt>
-<a name="L123"></a><tt class="py-lineno">123</tt> <tt class="py-line"> <tt class="py-keyword">else</tt><tt class="py-op">:</tt> </tt>
-<a name="L124"></a><tt class="py-lineno">124</tt> <tt class="py-line"> <tt class="py-name">oauth_callback</tt> <tt class="py-op">=</tt> <tt id="link-16" class="py-name"><a title="oauth2client.client.OOB_CALLBACK_URN" class="py-name" href="#" onclick="return doclink('link-16', 'OOB_CALLBACK_URN', 'link-3');">OOB_CALLBACK_URN</a></tt> </tt>
-<a name="L125"></a><tt class="py-lineno">125</tt> <tt class="py-line"> <tt id="link-17" class="py-name" targets="Method oauth2client.appengine.OAuth2Decorator.authorize_url()=oauth2client.appengine.OAuth2Decorator-class.html#authorize_url"><a title="oauth2client.appengine.OAuth2Decorator.authorize_url" class="py-name" href="#" onclick="return doclink('link-17', 'authorize_url', 'link-17');">authorize_url</a></tt> <tt class="py-op">=</tt> <tt class="py-name">flow</tt><tt class="py-op">.</tt><tt id="link-18" class="py-name" targets="Method oauth2client.client.OAuth2WebServerFlow.step1_get_authorize_url()=oauth2client.client.OAuth2WebServerFlow-class.html#step1_get_authorize_url"><a title="oauth2client.client.OAuth2WebServerFlow.step1_get_authorize_url" class="py-name" href="#" onclick="return doclink('link-18', 'step1_get_authorize_url', 'link-18');">step1_get_authorize_url</a></tt><tt class="py-op">(</tt><tt class="py-name">oauth_callback</tt><tt class="py-op">)</tt> </tt>
-<a name="L126"></a><tt class="py-lineno">126</tt> <tt class="py-line"> </tt>
-<a name="L127"></a><tt class="py-lineno">127</tt> <tt class="py-line"> <tt class="py-keyword">if</tt> <tt id="link-19" class="py-name"><a title="apiclient.model.FLAGS
+<a name="L131"></a><tt class="py-lineno">131</tt> <tt class="py-line"> <tt class="py-keyword">else</tt><tt class="py-op">:</tt> </tt>
+<a name="L132"></a><tt class="py-lineno">132</tt> <tt class="py-line"> <tt class="py-name">oauth_callback</tt> <tt class="py-op">=</tt> <tt id="link-16" class="py-name"><a title="oauth2client.client.OOB_CALLBACK_URN" class="py-name" href="#" onclick="return doclink('link-16', 'OOB_CALLBACK_URN', 'link-3');">OOB_CALLBACK_URN</a></tt> </tt>
+<a name="L133"></a><tt class="py-lineno">133</tt> <tt class="py-line"> <tt id="link-17" class="py-name" targets="Method oauth2client.appengine.OAuth2Decorator.authorize_url()=oauth2client.appengine.OAuth2Decorator-class.html#authorize_url"><a title="oauth2client.appengine.OAuth2Decorator.authorize_url" class="py-name" href="#" onclick="return doclink('link-17', 'authorize_url', 'link-17');">authorize_url</a></tt> <tt class="py-op">=</tt> <tt class="py-name">flow</tt><tt class="py-op">.</tt><tt id="link-18" class="py-name" targets="Method oauth2client.client.OAuth2WebServerFlow.step1_get_authorize_url()=oauth2client.client.OAuth2WebServerFlow-class.html#step1_get_authorize_url"><a title="oauth2client.client.OAuth2WebServerFlow.step1_get_authorize_url" class="py-name" href="#" onclick="return doclink('link-18', 'step1_get_authorize_url', 'link-18');">step1_get_authorize_url</a></tt><tt class="py-op">(</tt><tt class="py-name">oauth_callback</tt><tt class="py-op">)</tt> </tt>
+<a name="L134"></a><tt class="py-lineno">134</tt> <tt class="py-line"> </tt>
+<a name="L135"></a><tt class="py-lineno">135</tt> <tt class="py-line"> <tt class="py-keyword">if</tt> <tt id="link-19" class="py-name"><a title="apiclient.model.FLAGS
oauth2client.tools.FLAGS" class="py-name" href="#" onclick="return doclink('link-19', 'FLAGS', 'link-4');">FLAGS</a></tt><tt class="py-op">.</tt><tt class="py-name">auth_local_webserver</tt><tt class="py-op">:</tt> </tt>
-<a name="L128"></a><tt class="py-lineno">128</tt> <tt class="py-line"> <tt class="py-name">webbrowser</tt><tt class="py-op">.</tt><tt class="py-name">open</tt><tt class="py-op">(</tt><tt id="link-20" class="py-name"><a title="oauth2client.appengine.OAuth2Decorator.authorize_url" class="py-name" href="#" onclick="return doclink('link-20', 'authorize_url', 'link-17');">authorize_url</a></tt><tt class="py-op">,</tt> <tt class="py-name">new</tt><tt class="py-op">=</tt><tt class="py-number">1</tt><tt class="py-op">,</tt> <tt class="py-name">autoraise</tt><tt class="py-op">=</tt><tt class="py-name">True</tt><tt class="py-op">)</tt> </tt>
-<a name="L129"></a><tt class="py-lineno">129</tt> <tt class="py-line"> <tt class="py-keyword">print</tt> <tt class="py-string">'Your browser has been opened to visit:'</tt> </tt>
-<a name="L130"></a><tt class="py-lineno">130</tt> <tt class="py-line"> <tt class="py-keyword">print</tt> </tt>
-<a name="L131"></a><tt class="py-lineno">131</tt> <tt class="py-line"> <tt class="py-keyword">print</tt> <tt class="py-string">' '</tt> <tt class="py-op">+</tt> <tt id="link-21" class="py-name"><a title="oauth2client.appengine.OAuth2Decorator.authorize_url" class="py-name" href="#" onclick="return doclink('link-21', 'authorize_url', 'link-17');">authorize_url</a></tt> </tt>
-<a name="L132"></a><tt class="py-lineno">132</tt> <tt class="py-line"> <tt class="py-keyword">print</tt> </tt>
-<a name="L133"></a><tt class="py-lineno">133</tt> <tt class="py-line"> <tt class="py-keyword">print</tt> <tt class="py-string">'If your browser is on a different machine then exit and re-run this'</tt> </tt>
-<a name="L134"></a><tt class="py-lineno">134</tt> <tt class="py-line"> <tt class="py-keyword">print</tt> <tt class="py-string">'application with the command-line parameter '</tt> </tt>
-<a name="L135"></a><tt class="py-lineno">135</tt> <tt class="py-line"> <tt class="py-keyword">print</tt> </tt>
-<a name="L136"></a><tt class="py-lineno">136</tt> <tt class="py-line"> <tt class="py-keyword">print</tt> <tt class="py-string">' --noauth_local_webserver'</tt> </tt>
-<a name="L137"></a><tt class="py-lineno">137</tt> <tt class="py-line"> <tt class="py-keyword">print</tt> </tt>
-<a name="L138"></a><tt class="py-lineno">138</tt> <tt class="py-line"> <tt class="py-keyword">else</tt><tt class="py-op">:</tt> </tt>
-<a name="L139"></a><tt class="py-lineno">139</tt> <tt class="py-line"> <tt class="py-keyword">print</tt> <tt class="py-string">'Go to the following link in your browser:'</tt> </tt>
+<a name="L136"></a><tt class="py-lineno">136</tt> <tt class="py-line"> <tt class="py-name">webbrowser</tt><tt class="py-op">.</tt><tt class="py-name">open</tt><tt class="py-op">(</tt><tt id="link-20" class="py-name"><a title="oauth2client.appengine.OAuth2Decorator.authorize_url" class="py-name" href="#" onclick="return doclink('link-20', 'authorize_url', 'link-17');">authorize_url</a></tt><tt class="py-op">,</tt> <tt class="py-name">new</tt><tt class="py-op">=</tt><tt class="py-number">1</tt><tt class="py-op">,</tt> <tt class="py-name">autoraise</tt><tt class="py-op">=</tt><tt class="py-name">True</tt><tt class="py-op">)</tt> </tt>
+<a name="L137"></a><tt class="py-lineno">137</tt> <tt class="py-line"> <tt class="py-keyword">print</tt> <tt class="py-string">'Your browser has been opened to visit:'</tt> </tt>
+<a name="L138"></a><tt class="py-lineno">138</tt> <tt class="py-line"> <tt class="py-keyword">print</tt> </tt>
+<a name="L139"></a><tt class="py-lineno">139</tt> <tt class="py-line"> <tt class="py-keyword">print</tt> <tt class="py-string">' '</tt> <tt class="py-op">+</tt> <tt id="link-21" class="py-name"><a title="oauth2client.appengine.OAuth2Decorator.authorize_url" class="py-name" href="#" onclick="return doclink('link-21', 'authorize_url', 'link-17');">authorize_url</a></tt> </tt>
<a name="L140"></a><tt class="py-lineno">140</tt> <tt class="py-line"> <tt class="py-keyword">print</tt> </tt>
-<a name="L141"></a><tt class="py-lineno">141</tt> <tt class="py-line"> <tt class="py-keyword">print</tt> <tt class="py-string">' '</tt> <tt class="py-op">+</tt> <tt id="link-22" class="py-name"><a title="oauth2client.appengine.OAuth2Decorator.authorize_url" class="py-name" href="#" onclick="return doclink('link-22', 'authorize_url', 'link-17');">authorize_url</a></tt> </tt>
-<a name="L142"></a><tt class="py-lineno">142</tt> <tt class="py-line"> <tt class="py-keyword">print</tt> </tt>
-<a name="L143"></a><tt class="py-lineno">143</tt> <tt class="py-line"> </tt>
-<a name="L144"></a><tt class="py-lineno">144</tt> <tt class="py-line"> <tt class="py-name">code</tt> <tt class="py-op">=</tt> <tt class="py-name">None</tt> </tt>
-<a name="L145"></a><tt class="py-lineno">145</tt> <tt class="py-line"> <tt class="py-keyword">if</tt> <tt id="link-23" class="py-name"><a title="apiclient.model.FLAGS
+<a name="L141"></a><tt class="py-lineno">141</tt> <tt class="py-line"> <tt class="py-keyword">print</tt> <tt class="py-string">'If your browser is on a different machine then exit and re-run this'</tt> </tt>
+<a name="L142"></a><tt class="py-lineno">142</tt> <tt class="py-line"> <tt class="py-keyword">print</tt> <tt class="py-string">'application with the command-line parameter '</tt> </tt>
+<a name="L143"></a><tt class="py-lineno">143</tt> <tt class="py-line"> <tt class="py-keyword">print</tt> </tt>
+<a name="L144"></a><tt class="py-lineno">144</tt> <tt class="py-line"> <tt class="py-keyword">print</tt> <tt class="py-string">' --noauth_local_webserver'</tt> </tt>
+<a name="L145"></a><tt class="py-lineno">145</tt> <tt class="py-line"> <tt class="py-keyword">print</tt> </tt>
+<a name="L146"></a><tt class="py-lineno">146</tt> <tt class="py-line"> <tt class="py-keyword">else</tt><tt class="py-op">:</tt> </tt>
+<a name="L147"></a><tt class="py-lineno">147</tt> <tt class="py-line"> <tt class="py-keyword">print</tt> <tt class="py-string">'Go to the following link in your browser:'</tt> </tt>
+<a name="L148"></a><tt class="py-lineno">148</tt> <tt class="py-line"> <tt class="py-keyword">print</tt> </tt>
+<a name="L149"></a><tt class="py-lineno">149</tt> <tt class="py-line"> <tt class="py-keyword">print</tt> <tt class="py-string">' '</tt> <tt class="py-op">+</tt> <tt id="link-22" class="py-name"><a title="oauth2client.appengine.OAuth2Decorator.authorize_url" class="py-name" href="#" onclick="return doclink('link-22', 'authorize_url', 'link-17');">authorize_url</a></tt> </tt>
+<a name="L150"></a><tt class="py-lineno">150</tt> <tt class="py-line"> <tt class="py-keyword">print</tt> </tt>
+<a name="L151"></a><tt class="py-lineno">151</tt> <tt class="py-line"> </tt>
+<a name="L152"></a><tt class="py-lineno">152</tt> <tt class="py-line"> <tt class="py-name">code</tt> <tt class="py-op">=</tt> <tt class="py-name">None</tt> </tt>
+<a name="L153"></a><tt class="py-lineno">153</tt> <tt class="py-line"> <tt class="py-keyword">if</tt> <tt id="link-23" class="py-name"><a title="apiclient.model.FLAGS
oauth2client.tools.FLAGS" class="py-name" href="#" onclick="return doclink('link-23', 'FLAGS', 'link-4');">FLAGS</a></tt><tt class="py-op">.</tt><tt class="py-name">auth_local_webserver</tt><tt class="py-op">:</tt> </tt>
-<a name="L146"></a><tt class="py-lineno">146</tt> <tt class="py-line"> <tt class="py-name">httpd</tt><tt class="py-op">.</tt><tt class="py-name">handle_request</tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
-<a name="L147"></a><tt class="py-lineno">147</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">httpd</tt><tt class="py-op">.</tt><tt id="link-24" class="py-name"><a title="oauth2client.tools.ClientRedirectServer.query_params" class="py-name" href="#" onclick="return doclink('link-24', 'query_params', 'link-6');">query_params</a></tt><tt class="py-op">:</tt> </tt>
-<a name="L148"></a><tt class="py-lineno">148</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-string">'Authentication request was rejected.'</tt><tt class="py-op">)</tt> </tt>
-<a name="L149"></a><tt class="py-lineno">149</tt> <tt class="py-line"> <tt class="py-keyword">if</tt> <tt class="py-string">'code'</tt> <tt class="py-keyword">in</tt> <tt class="py-name">httpd</tt><tt class="py-op">.</tt><tt id="link-25" class="py-name"><a title="oauth2client.tools.ClientRedirectServer.query_params" class="py-name" href="#" onclick="return doclink('link-25', 'query_params', 'link-6');">query_params</a></tt><tt class="py-op">:</tt> </tt>
-<a name="L150"></a><tt class="py-lineno">150</tt> <tt class="py-line"> <tt class="py-name">code</tt> <tt class="py-op">=</tt> <tt class="py-name">httpd</tt><tt class="py-op">.</tt><tt id="link-26" class="py-name"><a title="oauth2client.tools.ClientRedirectServer.query_params" class="py-name" href="#" onclick="return doclink('link-26', 'query_params', 'link-6');">query_params</a></tt><tt class="py-op">[</tt><tt class="py-string">'code'</tt><tt class="py-op">]</tt> </tt>
-<a name="L151"></a><tt class="py-lineno">151</tt> <tt class="py-line"> <tt class="py-keyword">else</tt><tt class="py-op">:</tt> </tt>
-<a name="L152"></a><tt class="py-lineno">152</tt> <tt class="py-line"> <tt class="py-keyword">print</tt> <tt class="py-string">'Failed to find "code" in the query parameters of the redirect.'</tt> </tt>
-<a name="L153"></a><tt class="py-lineno">153</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-string">'Try running with --noauth_local_webserver.'</tt><tt class="py-op">)</tt> </tt>
-<a name="L154"></a><tt class="py-lineno">154</tt> <tt class="py-line"> <tt class="py-keyword">else</tt><tt class="py-op">:</tt> </tt>
-<a name="L155"></a><tt class="py-lineno">155</tt> <tt class="py-line"> <tt class="py-name">code</tt> <tt class="py-op">=</tt> <tt class="py-name">raw_input</tt><tt class="py-op">(</tt><tt class="py-string">'Enter verification code: '</tt><tt class="py-op">)</tt><tt class="py-op">.</tt><tt class="py-name">strip</tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
-<a name="L156"></a><tt class="py-lineno">156</tt> <tt class="py-line"> </tt>
-<a name="L157"></a><tt class="py-lineno">157</tt> <tt class="py-line"> <tt class="py-keyword">try</tt><tt class="py-op">:</tt> </tt>
-<a name="L158"></a><tt class="py-lineno">158</tt> <tt class="py-line"> <tt class="py-name">credential</tt> <tt class="py-op">=</tt> <tt class="py-name">flow</tt><tt class="py-op">.</tt><tt id="link-27" class="py-name" targets="Method oauth2client.client.OAuth2WebServerFlow.step2_exchange()=oauth2client.client.OAuth2WebServerFlow-class.html#step2_exchange"><a title="oauth2client.client.OAuth2WebServerFlow.step2_exchange" class="py-name" href="#" onclick="return doclink('link-27', 'step2_exchange', 'link-27');">step2_exchange</a></tt><tt class="py-op">(</tt><tt class="py-name">code</tt><tt class="py-op">,</tt> <tt id="link-28" class="py-name" targets="Module apiclient.http=apiclient.http-module.html,Method oauth2client.appengine.OAuth2Decorator.http()=oauth2client.appengine.OAuth2Decorator-class.html#http"><a title="apiclient.http
+<a name="L154"></a><tt class="py-lineno">154</tt> <tt class="py-line"> <tt class="py-name">httpd</tt><tt class="py-op">.</tt><tt class="py-name">handle_request</tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
+<a name="L155"></a><tt class="py-lineno">155</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">httpd</tt><tt class="py-op">.</tt><tt id="link-24" class="py-name"><a title="oauth2client.tools.ClientRedirectServer.query_params" class="py-name" href="#" onclick="return doclink('link-24', 'query_params', 'link-6');">query_params</a></tt><tt class="py-op">:</tt> </tt>
+<a name="L156"></a><tt class="py-lineno">156</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-string">'Authentication request was rejected.'</tt><tt class="py-op">)</tt> </tt>
+<a name="L157"></a><tt class="py-lineno">157</tt> <tt class="py-line"> <tt class="py-keyword">if</tt> <tt class="py-string">'code'</tt> <tt class="py-keyword">in</tt> <tt class="py-name">httpd</tt><tt class="py-op">.</tt><tt id="link-25" class="py-name"><a title="oauth2client.tools.ClientRedirectServer.query_params" class="py-name" href="#" onclick="return doclink('link-25', 'query_params', 'link-6');">query_params</a></tt><tt class="py-op">:</tt> </tt>
+<a name="L158"></a><tt class="py-lineno">158</tt> <tt class="py-line"> <tt class="py-name">code</tt> <tt class="py-op">=</tt> <tt class="py-name">httpd</tt><tt class="py-op">.</tt><tt id="link-26" class="py-name"><a title="oauth2client.tools.ClientRedirectServer.query_params" class="py-name" href="#" onclick="return doclink('link-26', 'query_params', 'link-6');">query_params</a></tt><tt class="py-op">[</tt><tt class="py-string">'code'</tt><tt class="py-op">]</tt> </tt>
+<a name="L159"></a><tt class="py-lineno">159</tt> <tt class="py-line"> <tt class="py-keyword">else</tt><tt class="py-op">:</tt> </tt>
+<a name="L160"></a><tt class="py-lineno">160</tt> <tt class="py-line"> <tt class="py-keyword">print</tt> <tt class="py-string">'Failed to find "code" in the query parameters of the redirect.'</tt> </tt>
+<a name="L161"></a><tt class="py-lineno">161</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-string">'Try running with --noauth_local_webserver.'</tt><tt class="py-op">)</tt> </tt>
+<a name="L162"></a><tt class="py-lineno">162</tt> <tt class="py-line"> <tt class="py-keyword">else</tt><tt class="py-op">:</tt> </tt>
+<a name="L163"></a><tt class="py-lineno">163</tt> <tt class="py-line"> <tt class="py-name">code</tt> <tt class="py-op">=</tt> <tt class="py-name">raw_input</tt><tt class="py-op">(</tt><tt class="py-string">'Enter verification code: '</tt><tt class="py-op">)</tt><tt class="py-op">.</tt><tt class="py-name">strip</tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
+<a name="L164"></a><tt class="py-lineno">164</tt> <tt class="py-line"> </tt>
+<a name="L165"></a><tt class="py-lineno">165</tt> <tt class="py-line"> <tt class="py-keyword">try</tt><tt class="py-op">:</tt> </tt>
+<a name="L166"></a><tt class="py-lineno">166</tt> <tt class="py-line"> <tt class="py-name">credential</tt> <tt class="py-op">=</tt> <tt class="py-name">flow</tt><tt class="py-op">.</tt><tt id="link-27" class="py-name" targets="Method oauth2client.client.OAuth2WebServerFlow.step2_exchange()=oauth2client.client.OAuth2WebServerFlow-class.html#step2_exchange"><a title="oauth2client.client.OAuth2WebServerFlow.step2_exchange" class="py-name" href="#" onclick="return doclink('link-27', 'step2_exchange', 'link-27');">step2_exchange</a></tt><tt class="py-op">(</tt><tt class="py-name">code</tt><tt class="py-op">,</tt> <tt id="link-28" class="py-name" targets="Module apiclient.http=apiclient.http-module.html,Method oauth2client.appengine.OAuth2Decorator.http()=oauth2client.appengine.OAuth2Decorator-class.html#http"><a title="apiclient.http
oauth2client.appengine.OAuth2Decorator.http" class="py-name" href="#" onclick="return doclink('link-28', 'http', 'link-28');">http</a></tt><tt class="py-op">)</tt> </tt>
-<a name="L159"></a><tt class="py-lineno">159</tt> <tt class="py-line"> <tt class="py-keyword">except</tt> <tt id="link-29" class="py-name"><a title="oauth2client.client.FlowExchangeError" class="py-name" href="#" onclick="return doclink('link-29', 'FlowExchangeError', 'link-1');">FlowExchangeError</a></tt><tt class="py-op">,</tt> <tt class="py-name">e</tt><tt class="py-op">:</tt> </tt>
-<a name="L160"></a><tt class="py-lineno">160</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-string">'Authentication has failed: %s'</tt> <tt class="py-op">%</tt> <tt class="py-name">e</tt><tt class="py-op">)</tt> </tt>
-<a name="L161"></a><tt class="py-lineno">161</tt> <tt class="py-line"> </tt>
-<a name="L162"></a><tt class="py-lineno">162</tt> <tt class="py-line"> <tt class="py-name">storage</tt><tt class="py-op">.</tt><tt id="link-30" class="py-name" targets="Method oauth2client.client.Storage.put()=oauth2client.client.Storage-class.html#put"><a title="oauth2client.client.Storage.put" class="py-name" href="#" onclick="return doclink('link-30', 'put', 'link-30');">put</a></tt><tt class="py-op">(</tt><tt class="py-name">credential</tt><tt class="py-op">)</tt> </tt>
-<a name="L163"></a><tt class="py-lineno">163</tt> <tt class="py-line"> <tt class="py-name">credential</tt><tt class="py-op">.</tt><tt id="link-31" class="py-name" targets="Method oauth2client.client.OAuth2Credentials.set_store()=oauth2client.client.OAuth2Credentials-class.html#set_store"><a title="oauth2client.client.OAuth2Credentials.set_store" class="py-name" href="#" onclick="return doclink('link-31', 'set_store', 'link-31');">set_store</a></tt><tt class="py-op">(</tt><tt class="py-name">storage</tt><tt class="py-op">)</tt> </tt>
-<a name="L164"></a><tt class="py-lineno">164</tt> <tt class="py-line"> <tt class="py-keyword">print</tt> <tt class="py-string">'Authentication successful.'</tt> </tt>
-<a name="L165"></a><tt class="py-lineno">165</tt> <tt class="py-line"> </tt>
-<a name="L166"></a><tt class="py-lineno">166</tt> <tt class="py-line"> <tt class="py-keyword">return</tt> <tt class="py-name">credential</tt> </tt>
-</div><a name="L167"></a><tt class="py-lineno">167</tt> <tt class="py-line"> </tt><script type="text/javascript">
+<a name="L167"></a><tt class="py-lineno">167</tt> <tt class="py-line"> <tt class="py-keyword">except</tt> <tt id="link-29" class="py-name"><a title="oauth2client.client.FlowExchangeError" class="py-name" href="#" onclick="return doclink('link-29', 'FlowExchangeError', 'link-1');">FlowExchangeError</a></tt><tt class="py-op">,</tt> <tt class="py-name">e</tt><tt class="py-op">:</tt> </tt>
+<a name="L168"></a><tt class="py-lineno">168</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-string">'Authentication has failed: %s'</tt> <tt class="py-op">%</tt> <tt class="py-name">e</tt><tt class="py-op">)</tt> </tt>
+<a name="L169"></a><tt class="py-lineno">169</tt> <tt class="py-line"> </tt>
+<a name="L170"></a><tt class="py-lineno">170</tt> <tt class="py-line"> <tt class="py-name">storage</tt><tt class="py-op">.</tt><tt id="link-30" class="py-name" targets="Method oauth2client.client.Storage.put()=oauth2client.client.Storage-class.html#put"><a title="oauth2client.client.Storage.put" class="py-name" href="#" onclick="return doclink('link-30', 'put', 'link-30');">put</a></tt><tt class="py-op">(</tt><tt class="py-name">credential</tt><tt class="py-op">)</tt> </tt>
+<a name="L171"></a><tt class="py-lineno">171</tt> <tt class="py-line"> <tt class="py-name">credential</tt><tt class="py-op">.</tt><tt id="link-31" class="py-name" targets="Method oauth2client.client.OAuth2Credentials.set_store()=oauth2client.client.OAuth2Credentials-class.html#set_store"><a title="oauth2client.client.OAuth2Credentials.set_store" class="py-name" href="#" onclick="return doclink('link-31', 'set_store', 'link-31');">set_store</a></tt><tt class="py-op">(</tt><tt class="py-name">storage</tt><tt class="py-op">)</tt> </tt>
+<a name="L172"></a><tt class="py-lineno">172</tt> <tt class="py-line"> <tt class="py-keyword">print</tt> <tt class="py-string">'Authentication successful.'</tt> </tt>
+<a name="L173"></a><tt class="py-lineno">173</tt> <tt class="py-line"> </tt>
+<a name="L174"></a><tt class="py-lineno">174</tt> <tt class="py-line"> <tt class="py-keyword">return</tt> <tt class="py-name">credential</tt> </tt>
+</div><a name="L175"></a><tt class="py-lineno">175</tt> <tt class="py-line"> </tt><script type="text/javascript">
<!--
expandto(location.href);
// -->
@@ -260,7 +268,7 @@
<table border="0" cellpadding="0" cellspacing="0" width="100%%">
<tr>
<td align="left" class="footer">
- Generated by Epydoc 3.0.1 on Tue Jun 5 09:03:12 2012
+ Generated by Epydoc 3.0.1 on Thu Jun 14 08:01:59 2012
</td>
<td align="right" class="footer">
<a target="mainFrame" href="http://epydoc.sourceforge.net"
diff --git a/docs/epy/oauth2client.tools.ClientRedirectHandler-class.html b/docs/epy/oauth2client.tools.ClientRedirectHandler-class.html
index bfd01dd..547d778 100644
--- a/docs/epy/oauth2client.tools.ClientRedirectHandler-class.html
+++ b/docs/epy/oauth2client.tools.ClientRedirectHandler-class.html
@@ -55,7 +55,7 @@
<!-- ==================== CLASS DESCRIPTION ==================== -->
<h1 class="epydoc">Class ClientRedirectHandler</h1><p class="nomargin-top"><span class="codelink"><a href="oauth2client.tools-pysrc.html#ClientRedirectHandler">source code</a></span></p>
<center>
-<center> <map id="uml_class_diagram_for_oauth2cl_39" name="uml_class_diagram_for_oauth2cl_39">
+<center> <map id="uml_class_diagram_for_oauth2cl_45" name="uml_class_diagram_for_oauth2cl_45">
<area shape="rect" href="oauth2client.tools.ClientRedirectHandler-class.html#do_GET" title="Handle a GET request." alt="" coords="53,716,245,735"/>
<area shape="rect" href="oauth2client.tools.ClientRedirectHandler-class.html#log_message" title="Do not log messages to stdout while running as command line program." alt="" coords="53,735,245,753"/>
<area shape="rect" href="oauth2client.tools.ClientRedirectHandler-class.html" title="A handler for OAuth 2.0 redirects back to localhost." alt="" coords="52,691,247,755"/>
@@ -91,7 +91,7 @@
<area shape="rect" href="javascript:void(0);" title="SocketServer.BaseRequestHandler.__init__" alt="" coords="17,36,281,55"/>
<area shape="rect" href="javascript:void(0);" title="Base class for request handler classes." alt="" coords="16,11,283,56"/>
</map>
- <img src="uml_class_diagram_for_oauth2cl_39.gif" alt='' usemap="#uml_class_diagram_for_oauth2cl_39" ismap="ismap" class="graph-without-title" />
+ <img src="uml_class_diagram_for_oauth2cl_45.gif" alt='' usemap="#uml_class_diagram_for_oauth2cl_45" ismap="ismap" class="graph-without-title" />
</center>
</center>
<hr />
@@ -340,7 +340,7 @@
<table border="0" cellpadding="0" cellspacing="0" width="100%%">
<tr>
<td align="left" class="footer">
- Generated by Epydoc 3.0.1 on Tue Jun 5 09:03:11 2012
+ Generated by Epydoc 3.0.1 on Thu Jun 14 08:01:58 2012
</td>
<td align="right" class="footer">
<a target="mainFrame" href="http://epydoc.sourceforge.net"
diff --git a/docs/epy/oauth2client.tools.ClientRedirectServer-class.html b/docs/epy/oauth2client.tools.ClientRedirectServer-class.html
index 2914703..e6e9a55 100644
--- a/docs/epy/oauth2client.tools.ClientRedirectServer-class.html
+++ b/docs/epy/oauth2client.tools.ClientRedirectServer-class.html
@@ -55,22 +55,12 @@
<!-- ==================== CLASS DESCRIPTION ==================== -->
<h1 class="epydoc">Class ClientRedirectServer</h1><p class="nomargin-top"><span class="codelink"><a href="oauth2client.tools-pysrc.html#ClientRedirectServer">source code</a></span></p>
<center>
-<center> <map id="uml_class_diagram_for_oauth2cl_40" name="uml_class_diagram_for_oauth2cl_40">
+<center> <map id="uml_class_diagram_for_oauth2cl_46" name="uml_class_diagram_for_oauth2cl_46">
<area shape="rect" href="oauth2client.tools.ClientRedirectServer-class.html#query_params" title="oauth2client.tools.ClientRedirectServer.query_params" alt="" coords="184,553,301,572"/>
<area shape="rect" href="oauth2client.tools.ClientRedirectServer-class.html" title="A server to handle OAuth 2.0 redirects back to localhost." alt="" coords="183,536,303,581"/>
<area shape="rect" href="javascript:void(0);" title="BaseHTTPServer.HTTPServer.allow_reuse_address" alt="" coords="157,465,328,484"/>
<area shape="rect" href="javascript:void(0);" title="Override server_bind to store the server name." alt="" coords="157,487,328,505"/>
<area shape="rect" href="javascript:void(0);" title="BaseHTTPServer.HTTPServer" alt="" coords="156,448,329,507"/>
-<area shape="rect" href="javascript:void(0);" title="SocketServer.BaseServer.timeout" alt="" coords="107,28,379,47"/>
-<area shape="rect" href="javascript:void(0);" title="Handle one request at a time until shutdown." alt="" coords="107,49,379,68"/>
-<area shape="rect" href="javascript:void(0);" title="Stops the serve_forever loop." alt="" coords="107,68,379,87"/>
-<area shape="rect" href="javascript:void(0);" title="Handle one request, possibly blocking." alt="" coords="107,87,379,105"/>
-<area shape="rect" href="javascript:void(0);" title="Called if no new request arrives within self.timeout." alt="" coords="107,105,379,124"/>
-<area shape="rect" href="javascript:void(0);" title="Verify the request." alt="" coords="107,124,379,143"/>
-<area shape="rect" href="javascript:void(0);" title="Call finish_request." alt="" coords="107,143,379,161"/>
-<area shape="rect" href="javascript:void(0);" title="Finish one request by instantiating RequestHandlerClass." alt="" coords="107,161,379,180"/>
-<area shape="rect" href="javascript:void(0);" title="Handle an error gracefully." alt="" coords="107,180,379,199"/>
-<area shape="rect" href="javascript:void(0);" title="Base class for server classes." alt="" coords="105,11,380,200"/>
<area shape="rect" href="javascript:void(0);" title="SocketServer.TCPServer.address_family" alt="" coords="17,247,468,265"/>
<area shape="rect" href="javascript:void(0);" title="SocketServer.TCPServer.socket_type" alt="" coords="17,265,468,284"/>
<area shape="rect" href="javascript:void(0);" title="SocketServer.TCPServer.request_queue_size" alt="" coords="17,284,468,303"/>
@@ -81,8 +71,18 @@
<area shape="rect" href="javascript:void(0);" title="Get the request and client address from the socket." alt="" coords="17,380,468,399"/>
<area shape="rect" href="javascript:void(0);" title="Called to clean up an individual request." alt="" coords="17,399,468,417"/>
<area shape="rect" href="javascript:void(0);" title="Base class for various socket-based server classes." alt="" coords="16,229,469,419"/>
+<area shape="rect" href="javascript:void(0);" title="SocketServer.BaseServer.timeout" alt="" coords="107,28,379,47"/>
+<area shape="rect" href="javascript:void(0);" title="Handle one request at a time until shutdown." alt="" coords="107,49,379,68"/>
+<area shape="rect" href="javascript:void(0);" title="Stops the serve_forever loop." alt="" coords="107,68,379,87"/>
+<area shape="rect" href="javascript:void(0);" title="Handle one request, possibly blocking." alt="" coords="107,87,379,105"/>
+<area shape="rect" href="javascript:void(0);" title="Called if no new request arrives within self.timeout." alt="" coords="107,105,379,124"/>
+<area shape="rect" href="javascript:void(0);" title="Verify the request." alt="" coords="107,124,379,143"/>
+<area shape="rect" href="javascript:void(0);" title="Call finish_request." alt="" coords="107,143,379,161"/>
+<area shape="rect" href="javascript:void(0);" title="Finish one request by instantiating RequestHandlerClass." alt="" coords="107,161,379,180"/>
+<area shape="rect" href="javascript:void(0);" title="Handle an error gracefully." alt="" coords="107,180,379,199"/>
+<area shape="rect" href="javascript:void(0);" title="Base class for server classes." alt="" coords="105,11,380,200"/>
</map>
- <img src="uml_class_diagram_for_oauth2cl_40.gif" alt='' usemap="#uml_class_diagram_for_oauth2cl_40" ismap="ismap" class="graph-without-title" />
+ <img src="uml_class_diagram_for_oauth2cl_46.gif" alt='' usemap="#uml_class_diagram_for_oauth2cl_46" ismap="ismap" class="graph-without-title" />
</center>
</center>
<hr />
@@ -203,7 +203,7 @@
<table border="0" cellpadding="0" cellspacing="0" width="100%%">
<tr>
<td align="left" class="footer">
- Generated by Epydoc 3.0.1 on Tue Jun 5 09:03:11 2012
+ Generated by Epydoc 3.0.1 on Thu Jun 14 08:01:58 2012
</td>
<td align="right" class="footer">
<a target="mainFrame" href="http://epydoc.sourceforge.net"
diff --git a/docs/epy/redirect.html b/docs/epy/redirect.html
index 1e2df50..b6bb0ce 100644
--- a/docs/epy/redirect.html
+++ b/docs/epy/redirect.html
@@ -7,7 +7,7 @@
<body>
<script type="text/javascript">
<!--
-var pages = ["oauth2client.appengine.OAuth2DecoratorFromClientSecrets-c", "oauth2client.multistore_file.NewerCredentialStoreError-c", "oauth2client.clientsecrets.InvalidClientSecretsError-c", "oauth2client.client.SignedJwtAssertionCredentials-c", "oauth2client.client.UnknownClientSecretsFlowError-c", "oauth2client.multistore_file._MultiStore._Storage-c", "django.db.models.fields.subclassing.SubfieldBase-c", "oauth2client.appengine.InvalidClientSecretsError-c", "oauth2client.client.AccessTokenCredentialsError-c", "oauth2client.appengine.AppAssertionCredentials-c", "oauth2client.client.AccessTokenRefreshError-c", "apiclient.errors.UnacceptableMimeTypeError-c", "oauth2client.appengine.CredentialsProperty-c", "oauth2client.client.AccessTokenCredentials-c", "apiclient.errors.UnknownApiNameOrVersion-c", "oauth2client.client.AssertionCredentials-c", "oauth2client.django_orm.CredentialsField-c", "oauth2client.multistore_file._MultiStore-c", "oauth2client.tools.ClientRedirectHandler-c", "google.appengine.ext.db.PropertiedClass-c", "oauth2client.appengine.CredentialsModel-c", "oauth2client.appengine.StorageByKeyName-c", "oauth2client.client.OAuth2WebServerFlow-c", "oauth2client.client.VerifyJwtTokenError-c", "oauth2client.tools.ClientRedirectServer-c", "apiclient.errors.UnexpectedMethodError-c", "oauth2client.appengine.OAuth2Decorator-c", "apiclient.errors.MediaUploadSizeError-c", "apiclient.errors.ResumableUploadError-c", "oauth2client.client.FlowExchangeError-c", "oauth2client.client.OAuth2Credentials-c", "apiclient.errors.UnexpectedBodyError-c", "oauth2client.appengine.OAuth2Handler-c", "apiclient.model.ProtocolBufferModel-c", "oauth2client.appengine.FlowProperty-c", "oauth2client.crypt.AppIdentityError-c", "apiclient.http.MediaInMemoryUpload-c", "apiclient.http.MediaUploadProgress-c", "oauth2client.multistore_file.Error-c", "apiclient.errors.InvalidJsonError-c", "apiclient.http.RequestMockBuilder-c", "oauth2client.django_orm.FlowField-c", "apiclient.errors.UnknownLinkType-c", "apiclient.schema._SchemaToStruct-c", "oauth2client.clientsecrets.Error-c", "apiclient.http.BatchHttpRequest-c", "apiclient.http.HttpMockSequence-c", "oauth2client.client.Credentials-c", "oauth2client.client.MemoryCache-c", "oauth2client.django_orm.Storage-c", "apiclient.http.HttpRequestMock-c", "apiclient.http.MediaFileUpload-c", "oauth2client.multistore_file-m", "apiclient.contrib.moderator-m", "apiclient.errors.BatchError-c", "oauth2client.client.Storage-c", "oauth2client.crypt.Verifier-c", "apiclient.contrib.latitude-m", "oauth2client.clientsecrets-m", "apiclient.errors.HttpError-c", "apiclient.http.HttpRequest-c", "apiclient.http.MediaUpload-c", "apiclient.model.BaseModel-c", "apiclient.model.JsonModel-c", "oauth2client.client.Error-c", "oauth2client.crypt.Signer-c", "oauth2client.file.Storage-c", "apiclient.model.RawModel-c", "apiclient.schema.Schemas-c", "oauth2client.client.Flow-c", "oauth2client.django_orm-m", "apiclient.http.HttpMock-c", "oauth2client.appengine-m", "apiclient.errors.Error-c", "apiclient.model.Model-c", "oauth2client.anyjson-m", "apiclient.discovery-m", "apiclient.mimeparse-m", "oauth2client.client-m", "oauth2client.crypt-m", "oauth2client.tools-m", "apiclient.contrib-m", "oauth2client.file-m", "mimetools.Message-c", "apiclient.errors-m", "apiclient.schema-m", "apiclient.model-m", "apiclient.http-m", "apiclient.ext-m", "oauth2client-m", "apiclient-m"];
+var pages = ["oauth2client.appengine.OAuth2DecoratorFromClientSecrets-c", "oauth2client.multistore_file.NewerCredentialStoreError-c", "oauth2client.clientsecrets.InvalidClientSecretsError-c", "oauth2client.client.SignedJwtAssertionCredentials-c", "oauth2client.client.UnknownClientSecretsFlowError-c", "oauth2client.multistore_file._MultiStore._Storage-c", "django.db.models.fields.subclassing.SubfieldBase-c", "oauth2client.appengine.InvalidClientSecretsError-c", "oauth2client.client.AccessTokenCredentialsError-c", "oauth2client.locked_file.AlreadyLockedException-c", "oauth2client.appengine.AppAssertionCredentials-c", "oauth2client.client.AccessTokenRefreshError-c", "apiclient.errors.UnacceptableMimeTypeError-c", "oauth2client.appengine.CredentialsProperty-c", "oauth2client.client.AccessTokenCredentials-c", "apiclient.errors.UnknownApiNameOrVersion-c", "oauth2client.client.AssertionCredentials-c", "oauth2client.django_orm.CredentialsField-c", "oauth2client.multistore_file._MultiStore-c", "oauth2client.tools.ClientRedirectHandler-c", "google.appengine.ext.db.PropertiedClass-c", "oauth2client.appengine.CredentialsModel-c", "oauth2client.appengine.StorageByKeyName-c", "oauth2client.client.OAuth2WebServerFlow-c", "oauth2client.client.VerifyJwtTokenError-c", "oauth2client.tools.ClientRedirectServer-c", "apiclient.errors.UnexpectedMethodError-c", "oauth2client.appengine.OAuth2Decorator-c", "apiclient.errors.MediaUploadSizeError-c", "apiclient.errors.ResumableUploadError-c", "oauth2client.client.FlowExchangeError-c", "oauth2client.client.OAuth2Credentials-c", "oauth2client.locked_file._FcntlOpener-c", "oauth2client.locked_file._PosixOpener-c", "apiclient.errors.UnexpectedBodyError-c", "oauth2client.appengine.OAuth2Handler-c", "apiclient.model.ProtocolBufferModel-c", "oauth2client.appengine.FlowProperty-c", "oauth2client.crypt.AppIdentityError-c", "oauth2client.locked_file.LockedFile-c", "apiclient.http.MediaInMemoryUpload-c", "apiclient.http.MediaUploadProgress-c", "oauth2client.multistore_file.Error-c", "apiclient.errors.InvalidJsonError-c", "apiclient.http.RequestMockBuilder-c", "oauth2client.django_orm.FlowField-c", "apiclient.errors.UnknownLinkType-c", "apiclient.http.MediaIoBaseUpload-c", "apiclient.schema._SchemaToStruct-c", "oauth2client.clientsecrets.Error-c", "oauth2client.locked_file._Opener-c", "apiclient.http.BatchHttpRequest-c", "apiclient.http.HttpMockSequence-c", "oauth2client.client.Credentials-c", "oauth2client.client.MemoryCache-c", "oauth2client.django_orm.Storage-c", "apiclient.http.HttpRequestMock-c", "apiclient.http.MediaFileUpload-c", "oauth2client.multistore_file-m", "apiclient.errors.BatchError-c", "oauth2client.client.Storage-c", "oauth2client.crypt.Verifier-c", "oauth2client.clientsecrets-m", "apiclient.errors.HttpError-c", "apiclient.http.HttpRequest-c", "apiclient.http.MediaUpload-c", "apiclient.model.BaseModel-c", "apiclient.model.JsonModel-c", "oauth2client.client.Error-c", "oauth2client.crypt.Signer-c", "oauth2client.file.Storage-c", "oauth2client.locked_file-m", "apiclient.model.RawModel-c", "apiclient.schema.Schemas-c", "oauth2client.client.Flow-c", "oauth2client.django_orm-m", "apiclient.http.HttpMock-c", "oauth2client.appengine-m", "apiclient.errors.Error-c", "apiclient.model.Model-c", "oauth2client.anyjson-m", "apiclient.discovery-m", "apiclient.mimeparse-m", "oauth2client.client-m", "oauth2client.crypt-m", "oauth2client.tools-m", "oauth2client.file-m", "mimetools.Message-c", "apiclient.errors-m", "apiclient.schema-m", "apiclient.model-m", "apiclient.http-m", "apiclient.ext-m", "oauth2client-m", "apiclient-m"];
var dottedName = get_anchor();
if (dottedName) {
var target = redirect_url(dottedName);
diff --git a/docs/epy/toc-apiclient.discovery-module.html b/docs/epy/toc-apiclient.discovery-module.html
index 1fbd7c3..fc09a32 100644
--- a/docs/epy/toc-apiclient.discovery-module.html
+++ b/docs/epy/toc-apiclient.discovery-module.html
@@ -20,23 +20,20 @@
<a target="mainFrame" href="apiclient.discovery-module.html#_cast"
>_cast</a><br /> </div>
<div class="private">
- <a target="mainFrame" href="apiclient.discovery-module.html#_fix_method_name"
- >_fix_method_name</a><br /> </div>
- <div class="private">
<a target="mainFrame" href="apiclient.discovery-module.html#_media_size_to_long"
>_media_size_to_long</a><br /> </div>
- <div class="private">
- <a target="mainFrame" href="apiclient.discovery-module.html#_write_headers"
- >_write_headers</a><br /> </div>
<a target="mainFrame" href="apiclient.discovery-module.html#build"
- >build</a><br /> <a target="mainFrame" href="apiclient.discovery-module.html#build_from_document"
- >build_from_document</a><br /> <div class="private">
+ >build</a><br /> <div class="private">
+ <a target="mainFrame" href="apiclient.discovery-module.html#build_from_document"
+ >build_from_document</a><br /> </div>
+ <div class="private">
<a target="mainFrame" href="apiclient.discovery-module.html#createResource"
>createResource</a><br /> </div>
<div class="private">
+ <a target="mainFrame" href="apiclient.discovery-module.html#fix_method_name"
+ >fix_method_name</a><br /> </div>
<a target="mainFrame" href="apiclient.discovery-module.html#key2param"
- >key2param</a><br /> </div>
- <h2 class="toc">Variables</h2>
+ >key2param</a><br /> <h2 class="toc">Variables</h2>
<div class="private">
<a target="mainFrame" href="apiclient.discovery-module.html#DEFAULT_METHOD_DOC"
>DEFAULT_METHOD_DOC</a><br /> </div>
diff --git a/docs/epy/toc-apiclient.http-module.html b/docs/epy/toc-apiclient.http-module.html
index 8c79d23..07c7df2 100644
--- a/docs/epy/toc-apiclient.http-module.html
+++ b/docs/epy/toc-apiclient.http-module.html
@@ -20,14 +20,16 @@
>HttpRequest</a><br /> <a target="mainFrame" href="apiclient.http.HttpRequestMock-class.html"
>HttpRequestMock</a><br /> <a target="mainFrame" href="apiclient.http.MediaFileUpload-class.html"
>MediaFileUpload</a><br /> <a target="mainFrame" href="apiclient.http.MediaInMemoryUpload-class.html"
- >MediaInMemoryUpload</a><br /> <a target="mainFrame" href="apiclient.http.MediaUpload-class.html"
+ >MediaInMemoryUpload</a><br /> <a target="mainFrame" href="apiclient.http.MediaIoBaseUpload-class.html"
+ >MediaIoBaseUpload</a><br /> <a target="mainFrame" href="apiclient.http.MediaUpload-class.html"
>MediaUpload</a><br /> <a target="mainFrame" href="apiclient.http.MediaUploadProgress-class.html"
>MediaUploadProgress</a><br /> <a target="mainFrame" href="apiclient.http.RequestMockBuilder-class.html"
>RequestMockBuilder</a><br /> <h2 class="toc">Functions</h2>
<a target="mainFrame" href="apiclient.http-module.html#set_user_agent"
>set_user_agent</a><br /> <a target="mainFrame" href="apiclient.http-module.html#tunnel_patch"
>tunnel_patch</a><br /> <h2 class="toc">Variables</h2>
- <a target="mainFrame" href="apiclient.http-module.html#__package__"
+ <a target="mainFrame" href="apiclient.http-module.html#DEFAULT_CHUNK_SIZE"
+ >DEFAULT_CHUNK_SIZE</a><br /> <a target="mainFrame" href="apiclient.http-module.html#__package__"
>__package__</a><br /><hr />
<span class="options">[<a href="javascript:void(0);" class="privatelink"
onclick="toggle_private();">hide private</a>]</span>
diff --git a/docs/epy/toc-everything.html b/docs/epy/toc-everything.html
index dc62f29..342d1f6 100644
--- a/docs/epy/toc-everything.html
+++ b/docs/epy/toc-everything.html
@@ -31,7 +31,8 @@
>apiclient.http.HttpRequest</a><br /> <a target="mainFrame" href="apiclient.http.HttpRequestMock-class.html"
>apiclient.http.HttpRequestMock</a><br /> <a target="mainFrame" href="apiclient.http.MediaFileUpload-class.html"
>apiclient.http.MediaFileUpload</a><br /> <a target="mainFrame" href="apiclient.http.MediaInMemoryUpload-class.html"
- >apiclient.http.MediaInMemoryUpload</a><br /> <a target="mainFrame" href="apiclient.http.MediaUpload-class.html"
+ >apiclient.http.MediaInMemoryUpload</a><br /> <a target="mainFrame" href="apiclient.http.MediaIoBaseUpload-class.html"
+ >apiclient.http.MediaIoBaseUpload</a><br /> <a target="mainFrame" href="apiclient.http.MediaUpload-class.html"
>apiclient.http.MediaUpload</a><br /> <a target="mainFrame" href="apiclient.http.MediaUploadProgress-class.html"
>apiclient.http.MediaUploadProgress</a><br /> <a target="mainFrame" href="apiclient.http.RequestMockBuilder-class.html"
>apiclient.http.RequestMockBuilder</a><br /> <a target="mainFrame" href="apiclient.model.BaseModel-class.html"
@@ -79,7 +80,18 @@
>oauth2client.django_orm.CredentialsField</a><br /> <a target="mainFrame" href="oauth2client.django_orm.FlowField-class.html"
>oauth2client.django_orm.FlowField</a><br /> <a target="mainFrame" href="oauth2client.django_orm.Storage-class.html"
>oauth2client.django_orm.Storage</a><br /> <a target="mainFrame" href="oauth2client.file.Storage-class.html"
- >oauth2client.file.Storage</a><br /> <a target="mainFrame" href="oauth2client.multistore_file.Error-class.html"
+ >oauth2client.file.Storage</a><br /> <a target="mainFrame" href="oauth2client.locked_file.AlreadyLockedException-class.html"
+ >oauth2client.locked_file.AlreadyLockedException</a><br /> <a target="mainFrame" href="oauth2client.locked_file.LockedFile-class.html"
+ >oauth2client.locked_file.LockedFile</a><br /> <div class="private">
+ <a target="mainFrame" href="oauth2client.locked_file._FcntlOpener-class.html"
+ >oauth2client.locked_file._FcntlOpener</a><br /> </div>
+ <div class="private">
+ <a target="mainFrame" href="oauth2client.locked_file._Opener-class.html"
+ >oauth2client.locked_file._Opener</a><br /> </div>
+ <div class="private">
+ <a target="mainFrame" href="oauth2client.locked_file._PosixOpener-class.html"
+ >oauth2client.locked_file._PosixOpener</a><br /> </div>
+ <a target="mainFrame" href="oauth2client.multistore_file.Error-class.html"
>oauth2client.multistore_file.Error</a><br /> <a target="mainFrame" href="oauth2client.multistore_file.NewerCredentialStoreError-class.html"
>oauth2client.multistore_file.NewerCredentialStoreError</a><br /> <div class="private">
<a target="mainFrame" href="oauth2client.multistore_file._MultiStore-class.html"
@@ -101,23 +113,20 @@
<a target="mainFrame" href="apiclient.discovery-module.html#_cast"
>apiclient.discovery._cast</a><br /> </div>
<div class="private">
- <a target="mainFrame" href="apiclient.discovery-module.html#_fix_method_name"
- >apiclient.discovery._fix_method_name</a><br /> </div>
- <div class="private">
<a target="mainFrame" href="apiclient.discovery-module.html#_media_size_to_long"
>apiclient.discovery._media_size_to_long</a><br /> </div>
- <div class="private">
- <a target="mainFrame" href="apiclient.discovery-module.html#_write_headers"
- >apiclient.discovery._write_headers</a><br /> </div>
<a target="mainFrame" href="apiclient.discovery-module.html#build"
- >apiclient.discovery.build</a><br /> <a target="mainFrame" href="apiclient.discovery-module.html#build_from_document"
- >apiclient.discovery.build_from_document</a><br /> <div class="private">
+ >apiclient.discovery.build</a><br /> <div class="private">
+ <a target="mainFrame" href="apiclient.discovery-module.html#build_from_document"
+ >apiclient.discovery.build_from_document</a><br /> </div>
+ <div class="private">
<a target="mainFrame" href="apiclient.discovery-module.html#createResource"
>apiclient.discovery.createResource</a><br /> </div>
<div class="private">
+ <a target="mainFrame" href="apiclient.discovery-module.html#fix_method_name"
+ >apiclient.discovery.fix_method_name</a><br /> </div>
<a target="mainFrame" href="apiclient.discovery-module.html#key2param"
- >apiclient.discovery.key2param</a><br /> </div>
- <a target="mainFrame" href="apiclient.http-module.html#set_user_agent"
+ >apiclient.discovery.key2param</a><br /> <a target="mainFrame" href="apiclient.http-module.html#set_user_agent"
>apiclient.http.set_user_agent</a><br /> <a target="mainFrame" href="apiclient.http-module.html#tunnel_patch"
>apiclient.http.tunnel_patch</a><br /> <div class="private">
<a target="mainFrame" href="apiclient.mimeparse-module.html#_filter_blank"
@@ -143,7 +152,9 @@
<div class="private">
<a target="mainFrame" href="oauth2client.client-module.html#_urlsafe_b64decode"
>oauth2client.client._urlsafe_b64decode</a><br /> </div>
- <a target="mainFrame" href="oauth2client.client-module.html#flow_from_clientsecrets"
+ <a target="mainFrame" href="oauth2client.client-module.html#credentials_from_clientsecrets_and_code"
+ >oauth2client.client.credentials_from_clientsecrets_and_code</a><br /> <a target="mainFrame" href="oauth2client.client-module.html#credentials_from_code"
+ >oauth2client.client.credentials_from_code</a><br /> <a target="mainFrame" href="oauth2client.client-module.html#flow_from_clientsecrets"
>oauth2client.client.flow_from_clientsecrets</a><br /> <a target="mainFrame" href="oauth2client.client-module.html#verify_id_token"
>oauth2client.client.verify_id_token</a><br /> <div class="private">
<a target="mainFrame" href="oauth2client.clientsecrets-module.html#_validate_clientsecrets"
@@ -166,10 +177,7 @@
>oauth2client.multistore_file.get_credential_storage</a><br /> <a target="mainFrame" href="oauth2client.tools-module.html#run"
>oauth2client.tools.run</a><br /> <h2 class="toc">All Variables</h2>
<a target="mainFrame" href="apiclient-module.html#__package__"
- >apiclient.__package__</a><br /> <a target="mainFrame" href="apiclient.contrib-module.html#__package__"
- >apiclient.contrib.__package__</a><br /> <a target="mainFrame" href="apiclient.contrib.latitude-module.html#__package__"
- >apiclient.contrib.latitude.__package__</a><br /> <a target="mainFrame" href="apiclient.contrib.moderator-module.html#__package__"
- >apiclient.contrib.moderator.__package__</a><br /> <div class="private">
+ >apiclient.__package__</a><br /> <div class="private">
<a target="mainFrame" href="apiclient.discovery-module.html#DEFAULT_METHOD_DOC"
>apiclient.discovery.DEFAULT_METHOD_DOC</a><br /> </div>
<div class="private">
@@ -198,7 +206,8 @@
>apiclient.discovery.logger</a><br /> </div>
<a target="mainFrame" href="apiclient.errors-module.html#__package__"
>apiclient.errors.__package__</a><br /> <a target="mainFrame" href="apiclient.ext-module.html#__package__"
- >apiclient.ext.__package__</a><br /> <a target="mainFrame" href="apiclient.http-module.html#__package__"
+ >apiclient.ext.__package__</a><br /> <a target="mainFrame" href="apiclient.http-module.html#DEFAULT_CHUNK_SIZE"
+ >apiclient.http.DEFAULT_CHUNK_SIZE</a><br /> <a target="mainFrame" href="apiclient.http-module.html#__package__"
>apiclient.http.__package__</a><br /> <a target="mainFrame" href="apiclient.mimeparse-module.html#__credits__"
>apiclient.mimeparse.__credits__</a><br /> <a target="mainFrame" href="apiclient.mimeparse-module.html#__email__"
>apiclient.mimeparse.__email__</a><br /> <a target="mainFrame" href="apiclient.mimeparse-module.html#__package__"
@@ -229,7 +238,9 @@
>oauth2client.crypt.MAX_TOKEN_LIFETIME_SECS</a><br /> <a target="mainFrame" href="oauth2client.crypt-module.html#__package__"
>oauth2client.crypt.__package__</a><br /> <a target="mainFrame" href="oauth2client.django_orm-module.html#__package__"
>oauth2client.django_orm.__package__</a><br /> <a target="mainFrame" href="oauth2client.file-module.html#__package__"
- >oauth2client.file.__package__</a><br /> <a target="mainFrame" href="oauth2client.multistore_file-module.html#__package__"
+ >oauth2client.file.__package__</a><br /> <a target="mainFrame" href="oauth2client.locked_file-module.html#__package__"
+ >oauth2client.locked_file.__package__</a><br /> <a target="mainFrame" href="oauth2client.locked_file-module.html#logger"
+ >oauth2client.locked_file.logger</a><br /> <a target="mainFrame" href="oauth2client.multistore_file-module.html#__package__"
>oauth2client.multistore_file.__package__</a><br /> <div class="private">
<a target="mainFrame" href="oauth2client.multistore_file-module.html#_multistores"
>oauth2client.multistore_file._multistores</a><br /> </div>
diff --git a/docs/epy/toc-oauth2client.client-module.html b/docs/epy/toc-oauth2client.client-module.html
index cb25008..21187f0 100644
--- a/docs/epy/toc-oauth2client.client-module.html
+++ b/docs/epy/toc-oauth2client.client-module.html
@@ -38,7 +38,9 @@
<div class="private">
<a target="mainFrame" href="oauth2client.client-module.html#_urlsafe_b64decode"
>_urlsafe_b64decode</a><br /> </div>
- <a target="mainFrame" href="oauth2client.client-module.html#flow_from_clientsecrets"
+ <a target="mainFrame" href="oauth2client.client-module.html#credentials_from_clientsecrets_and_code"
+ >credentials_from_clientsecrets_and_code</a><br /> <a target="mainFrame" href="oauth2client.client-module.html#credentials_from_code"
+ >credentials_from_code</a><br /> <a target="mainFrame" href="oauth2client.client-module.html#flow_from_clientsecrets"
>flow_from_clientsecrets</a><br /> <a target="mainFrame" href="oauth2client.client-module.html#verify_id_token"
>verify_id_token</a><br /> <h2 class="toc">Variables</h2>
<a target="mainFrame" href="oauth2client.client-module.html#EXPIRY_FORMAT"
diff --git a/docs/epy/toc-oauth2client.locked_file-module.html b/docs/epy/toc-oauth2client.locked_file-module.html
new file mode 100644
index 0000000..8732483
--- /dev/null
+++ b/docs/epy/toc-oauth2client.locked_file-module.html
@@ -0,0 +1,44 @@
+<?xml version="1.0" encoding="ascii"?>
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
+ "DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
+<head>
+ <title>locked_file</title>
+ <link rel="stylesheet" href="epydoc.css" type="text/css" />
+ <script type="text/javascript" src="epydoc.js"></script>
+</head>
+
+<body bgcolor="white" text="black" link="blue" vlink="#204080"
+ alink="#204080">
+<h1 class="toc">Module locked_file</h1>
+<hr />
+ <h2 class="toc">Classes</h2>
+ <a target="mainFrame" href="oauth2client.locked_file.AlreadyLockedException-class.html"
+ >AlreadyLockedException</a><br /> <a target="mainFrame" href="oauth2client.locked_file.LockedFile-class.html"
+ >LockedFile</a><br /> <div class="private">
+ <a target="mainFrame" href="oauth2client.locked_file._FcntlOpener-class.html"
+ >_FcntlOpener</a><br /> </div>
+ <div class="private">
+ <a target="mainFrame" href="oauth2client.locked_file._Opener-class.html"
+ >_Opener</a><br /> </div>
+ <div class="private">
+ <a target="mainFrame" href="oauth2client.locked_file._PosixOpener-class.html"
+ >_PosixOpener</a><br /> </div>
+ <h2 class="toc">Variables</h2>
+ <a target="mainFrame" href="oauth2client.locked_file-module.html#__package__"
+ >__package__</a><br /> <a target="mainFrame" href="oauth2client.locked_file-module.html#logger"
+ >logger</a><br /><hr />
+<span class="options">[<a href="javascript:void(0);" class="privatelink"
+ onclick="toggle_private();">hide private</a>]</span>
+
+<script type="text/javascript">
+ <!--
+ // Private objects are initially displayed (because if
+ // javascript is turned off then we want them to be
+ // visible); but by default, we want to hide them. So hide
+ // them unless we have a cookie that says to show them.
+ checkCookie();
+ // -->
+</script>
+</body>
+</html>
diff --git a/docs/epy/toc.html b/docs/epy/toc.html
index 2d70785..f213ddb 100644
--- a/docs/epy/toc.html
+++ b/docs/epy/toc.html
@@ -16,10 +16,7 @@
<br />
<h2 class="toc">Modules</h2>
<a target="moduleFrame" href="toc-apiclient-module.html"
- onclick="setFrame('toc-apiclient-module.html','apiclient-module.html');" >apiclient</a><br /> <a target="moduleFrame" href="toc-apiclient.contrib-module.html"
- onclick="setFrame('toc-apiclient.contrib-module.html','apiclient.contrib-module.html');" >apiclient.contrib</a><br /> <a target="moduleFrame" href="toc-apiclient.contrib.latitude-module.html"
- onclick="setFrame('toc-apiclient.contrib.latitude-module.html','apiclient.contrib.latitude-module.html');" >apiclient.contrib.latitude</a><br /> <a target="moduleFrame" href="toc-apiclient.contrib.moderator-module.html"
- onclick="setFrame('toc-apiclient.contrib.moderator-module.html','apiclient.contrib.moderator-module.html');" >apiclient.contrib.moderator</a><br /> <a target="moduleFrame" href="toc-apiclient.discovery-module.html"
+ onclick="setFrame('toc-apiclient-module.html','apiclient-module.html');" >apiclient</a><br /> <a target="moduleFrame" href="toc-apiclient.discovery-module.html"
onclick="setFrame('toc-apiclient.discovery-module.html','apiclient.discovery-module.html');" >apiclient.discovery</a><br /> <a target="moduleFrame" href="toc-apiclient.errors-module.html"
onclick="setFrame('toc-apiclient.errors-module.html','apiclient.errors-module.html');" >apiclient.errors</a><br /> <a target="moduleFrame" href="toc-apiclient.ext-module.html"
onclick="setFrame('toc-apiclient.ext-module.html','apiclient.ext-module.html');" >apiclient.ext</a><br /> <a target="moduleFrame" href="toc-apiclient.http-module.html"
@@ -34,7 +31,8 @@
onclick="setFrame('toc-oauth2client.clientsecrets-module.html','oauth2client.clientsecrets-module.html');" >oauth2client.clientsecrets</a><br /> <a target="moduleFrame" href="toc-oauth2client.crypt-module.html"
onclick="setFrame('toc-oauth2client.crypt-module.html','oauth2client.crypt-module.html');" >oauth2client.crypt</a><br /> <a target="moduleFrame" href="toc-oauth2client.django_orm-module.html"
onclick="setFrame('toc-oauth2client.django_orm-module.html','oauth2client.django_orm-module.html');" >oauth2client.django_orm</a><br /> <a target="moduleFrame" href="toc-oauth2client.file-module.html"
- onclick="setFrame('toc-oauth2client.file-module.html','oauth2client.file-module.html');" >oauth2client.file</a><br /> <a target="moduleFrame" href="toc-oauth2client.multistore_file-module.html"
+ onclick="setFrame('toc-oauth2client.file-module.html','oauth2client.file-module.html');" >oauth2client.file</a><br /> <a target="moduleFrame" href="toc-oauth2client.locked_file-module.html"
+ onclick="setFrame('toc-oauth2client.locked_file-module.html','oauth2client.locked_file-module.html');" >oauth2client.locked_file</a><br /> <a target="moduleFrame" href="toc-oauth2client.multistore_file-module.html"
onclick="setFrame('toc-oauth2client.multistore_file-module.html','oauth2client.multistore_file-module.html');" >oauth2client.multistore_file</a><br /> <a target="moduleFrame" href="toc-oauth2client.tools-module.html"
onclick="setFrame('toc-oauth2client.tools-module.html','oauth2client.tools-module.html');" >oauth2client.tools</a><br /><hr />
<span class="options">[<a href="javascript:void(0);" class="privatelink"
diff --git a/docs/oauth2client.anyjson.html b/docs/oauth2client.anyjson.html
index 336ff8e..face098 100644
--- a/docs/oauth2client.anyjson.html
+++ b/docs/oauth2client.anyjson.html
@@ -8,7 +8,7 @@
<td valign=bottom> <br>
<font color="#ffffff" face="helvetica, arial"> <br><big><big><strong><a href="oauth2client.html"><font color="#ffffff">oauth2client</font></a>.anyjson</strong></big></big></font></td
><td align=right valign=bottom
-><font color="#ffffff" face="helvetica, arial"><a href=".">index</a><br><a href="file:/home/jcgregorio/projects/apiclient-release/oauth2client/anyjson.py">/home/jcgregorio/projects/apiclient-release/oauth2client/anyjson.py</a></font></td></tr></table>
+><font color="#ffffff" face="helvetica, arial"><a href=".">index</a><br><a href="file:/home/jcgregorio/projects/clean/oauth2client/anyjson.py">/home/jcgregorio/projects/clean/oauth2client/anyjson.py</a></font></td></tr></table>
<p><tt>Utility module to import a JSON module<br>
<br>
Hides all the messy details of exactly where<br>
diff --git a/docs/oauth2client.appengine.html b/docs/oauth2client.appengine.html
index 632c947..d79e342 100644
--- a/docs/oauth2client.appengine.html
+++ b/docs/oauth2client.appengine.html
@@ -8,7 +8,7 @@
<td valign=bottom> <br>
<font color="#ffffff" face="helvetica, arial"> <br><big><big><strong><a href="oauth2client.html"><font color="#ffffff">oauth2client</font></a>.appengine</strong></big></big></font></td
><td align=right valign=bottom
-><font color="#ffffff" face="helvetica, arial"><a href=".">index</a><br><a href="file:/home/jcgregorio/projects/apiclient-release/oauth2client/appengine.py">/home/jcgregorio/projects/apiclient-release/oauth2client/appengine.py</a></font></td></tr></table>
+><font color="#ffffff" face="helvetica, arial"><a href=".">index</a><br><a href="file:/home/jcgregorio/projects/clean/oauth2client/appengine.py">/home/jcgregorio/projects/clean/oauth2client/appengine.py</a></font></td></tr></table>
<p><tt>Utilities for Google App Engine<br>
<br>
Utilities for making it easier to use OAuth 2.0 on Google App Engine.</tt></p>
@@ -627,6 +627,8 @@
Datastore representation of the new model value in a form that is<br>
appropriate for storing in the datastore, or AUTO_UPDATE_UNCHANGED.</tt></dd></dl>
+<dl><dt><a name="CredentialsProperty-make_value_from_datastore_index_value"><strong>make_value_from_datastore_index_value</strong></a>(self, index_value)</dt></dl>
+
<hr>
Data descriptors inherited from <a href="google.appengine.ext.db.html#Property">google.appengine.ext.db.Property</a>:<br>
<dl><dt><strong>__dict__</strong></dt>
@@ -726,6 +728,8 @@
Datastore representation of the new model value in a form that is<br>
appropriate for storing in the datastore, or AUTO_UPDATE_UNCHANGED.</tt></dd></dl>
+<dl><dt><a name="FlowProperty-make_value_from_datastore_index_value"><strong>make_value_from_datastore_index_value</strong></a>(self, index_value)</dt></dl>
+
<hr>
Data descriptors inherited from <a href="google.appengine.ext.db.html#Property">google.appengine.ext.db.Property</a>:<br>
<dl><dt><strong>__dict__</strong></dt>
diff --git a/docs/oauth2client.client.html b/docs/oauth2client.client.html
index c8d10f4..ae1104a 100644
--- a/docs/oauth2client.client.html
+++ b/docs/oauth2client.client.html
@@ -8,7 +8,7 @@
<td valign=bottom> <br>
<font color="#ffffff" face="helvetica, arial"> <br><big><big><strong><a href="oauth2client.html"><font color="#ffffff">oauth2client</font></a>.client</strong></big></big></font></td
><td align=right valign=bottom
-><font color="#ffffff" face="helvetica, arial"><a href=".">index</a><br><a href="file:/home/jcgregorio/projects/apiclient-release/oauth2client/client.py">/home/jcgregorio/projects/apiclient-release/oauth2client/client.py</a></font></td></tr></table>
+><font color="#ffffff" face="helvetica, arial"><a href=".">index</a><br><a href="file:/home/jcgregorio/projects/clean/oauth2client/client.py">/home/jcgregorio/projects/clean/oauth2client/client.py</a></font></td></tr></table>
<p><tt>An OAuth 2.0 client.<br>
<br>
Tools for interacting with OAuth 2.0 protected resources.</tt></p>
@@ -517,8 +517,9 @@
<hr>
Class methods defined here:<br>
-<dl><dt><a name="Credentials-from_json"><strong>from_json</strong></a>(cls, s)<font color="#909090"><font face="helvetica, arial"> from <a href="__builtin__.html#type">__builtin__.type</a></font></font></dt><dd><tt>Instantiate a <a href="#Credentials">Credentials</a> <a href="__builtin__.html#object">object</a> from a JSON description of it. The JSON<br>
-should have been produced by calling .<a href="#Credentials-to_json">to_json</a>() on the <a href="__builtin__.html#object">object</a>.<br>
+<dl><dt><a name="Credentials-from_json"><strong>from_json</strong></a>(cls, s)<font color="#909090"><font face="helvetica, arial"> from <a href="__builtin__.html#type">__builtin__.type</a></font></font></dt><dd><tt>Instantiate a <a href="#Credentials">Credentials</a> <a href="__builtin__.html#object">object</a> from a JSON description of it.<br>
+ <br>
+The JSON should have been produced by calling .<a href="#Credentials-to_json">to_json</a>() on the <a href="__builtin__.html#object">object</a>.<br>
<br>
Args:<br>
data: dict, A deserialized JSON <a href="__builtin__.html#object">object</a>.<br>
@@ -1237,7 +1238,53 @@
<font color="#ffffff" face="helvetica, arial"><big><strong>Functions</strong></big></font></td></tr>
<tr><td bgcolor="#eeaa77"><tt> </tt></td><td> </td>
-<td width="100%"><dl><dt><a name="-flow_from_clientsecrets"><strong>flow_from_clientsecrets</strong></a>(filename, scope, message<font color="#909090">=None</font>)</dt><dd><tt>Create a <a href="#Flow">Flow</a> from a clientsecrets file.<br>
+<td width="100%"><dl><dt><a name="-credentials_from_clientsecrets_and_code"><strong>credentials_from_clientsecrets_and_code</strong></a>(filename, scope, code, message<font color="#909090">=None</font>, redirect_uri<font color="#909090">='postmessage'</font>, http<font color="#909090">=None</font>)</dt><dd><tt>Returns <a href="#OAuth2Credentials">OAuth2Credentials</a> from a clientsecrets file and an auth code.<br>
+ <br>
+Will create the right kind of <a href="#Flow">Flow</a> based on the contents of the clientsecrets<br>
+file or will raise InvalidClientSecretsError for unknown types of Flows.<br>
+ <br>
+Args:<br>
+ filename: string, File name of clientsecrets.<br>
+ scope: string or list of strings, scope(s) to request.<br>
+ code: string, An authroization code, most likely passed down from<br>
+ the client<br>
+ message: string, A friendly string to display to the user if the<br>
+ clientsecrets file is missing or invalid. If message is provided then<br>
+ sys.exit will be called in the case of an error. If message in not<br>
+ provided then clientsecrets.InvalidClientSecretsError will be raised.<br>
+ redirect_uri: string, this is generally set to 'postmessage' to match the<br>
+ redirect_uri that the client specified<br>
+ http: httplib2.Http, optional http instance to use to do the fetch<br>
+ <br>
+Returns:<br>
+ An <a href="#OAuth2Credentials">OAuth2Credentials</a> <a href="__builtin__.html#object">object</a>.<br>
+ <br>
+Raises:<br>
+ <a href="#FlowExchangeError">FlowExchangeError</a> if the authorization code cannot be exchanged for an<br>
+ access token<br>
+ <a href="#UnknownClientSecretsFlowError">UnknownClientSecretsFlowError</a> if the file describes an unknown kind of <a href="#Flow">Flow</a>.<br>
+ clientsecrets.InvalidClientSecretsError if the clientsecrets file is<br>
+ invalid.</tt></dd></dl>
+ <dl><dt><a name="-credentials_from_code"><strong>credentials_from_code</strong></a>(client_id, client_secret, scope, code, redirect_uri<font color="#909090">='postmessage'</font>, http<font color="#909090">=None</font>, user_agent<font color="#909090">=None</font>, token_uri<font color="#909090">='https://accounts.google.com/o/oauth2/token'</font>)</dt><dd><tt>Exchanges an authorization code for an <a href="#OAuth2Credentials">OAuth2Credentials</a> <a href="__builtin__.html#object">object</a>.<br>
+ <br>
+Args:<br>
+ client_id: string, client identifier.<br>
+ client_secret: string, client secret.<br>
+ scope: string or list of strings, scope(s) to request.<br>
+ code: string, An authroization code, most likely passed down from<br>
+ the client<br>
+ redirect_uri: string, this is generally set to 'postmessage' to match the<br>
+ redirect_uri that the client specified<br>
+ http: httplib2.Http, optional http instance to use to do the fetch<br>
+ token_uri: string, URI for token endpoint. For convenience<br>
+ defaults to Google's endpoints but any OAuth 2.0 provider can be used.<br>
+Returns:<br>
+ An <a href="#OAuth2Credentials">OAuth2Credentials</a> <a href="__builtin__.html#object">object</a>.<br>
+ <br>
+Raises:<br>
+ <a href="#FlowExchangeError">FlowExchangeError</a> if the authorization code cannot be exchanged for an<br>
+ access token</tt></dd></dl>
+ <dl><dt><a name="-flow_from_clientsecrets"><strong>flow_from_clientsecrets</strong></a>(filename, scope, message<font color="#909090">=None</font>)</dt><dd><tt>Create a <a href="#Flow">Flow</a> from a clientsecrets file.<br>
<br>
Will create the right kind of <a href="#Flow">Flow</a> based on the contents of the clientsecrets<br>
file or will raise InvalidClientSecretsError for unknown types of Flows.<br>
diff --git a/docs/oauth2client.clientsecrets.html b/docs/oauth2client.clientsecrets.html
index c614399..e06b779 100644
--- a/docs/oauth2client.clientsecrets.html
+++ b/docs/oauth2client.clientsecrets.html
@@ -8,7 +8,7 @@
<td valign=bottom> <br>
<font color="#ffffff" face="helvetica, arial"> <br><big><big><strong><a href="oauth2client.html"><font color="#ffffff">oauth2client</font></a>.clientsecrets</strong></big></big></font></td
><td align=right valign=bottom
-><font color="#ffffff" face="helvetica, arial"><a href=".">index</a><br><a href="file:/home/jcgregorio/projects/apiclient-release/oauth2client/clientsecrets.py">/home/jcgregorio/projects/apiclient-release/oauth2client/clientsecrets.py</a></font></td></tr></table>
+><font color="#ffffff" face="helvetica, arial"><a href=".">index</a><br><a href="file:/home/jcgregorio/projects/clean/oauth2client/clientsecrets.py">/home/jcgregorio/projects/clean/oauth2client/clientsecrets.py</a></font></td></tr></table>
<p><tt>Utilities for reading OAuth 2.0 client secret files.<br>
<br>
A client_secrets.json file contains all the information needed to interact with<br>
diff --git a/docs/oauth2client.crypt.html b/docs/oauth2client.crypt.html
index 8a686907..89661b3 100644
--- a/docs/oauth2client.crypt.html
+++ b/docs/oauth2client.crypt.html
@@ -8,7 +8,7 @@
<td valign=bottom> <br>
<font color="#ffffff" face="helvetica, arial"> <br><big><big><strong><a href="oauth2client.html"><font color="#ffffff">oauth2client</font></a>.crypt</strong></big></big></font></td
><td align=right valign=bottom
-><font color="#ffffff" face="helvetica, arial"><a href=".">index</a><br><a href="file:/home/jcgregorio/projects/apiclient-release/oauth2client/crypt.py">/home/jcgregorio/projects/apiclient-release/oauth2client/crypt.py</a></font></td></tr></table>
+><font color="#ffffff" face="helvetica, arial"><a href=".">index</a><br><a href="file:/home/jcgregorio/projects/clean/oauth2client/crypt.py">/home/jcgregorio/projects/clean/oauth2client/crypt.py</a></font></td></tr></table>
<p><tt># -*- coding: utf-8 -*-<br>
#<br>
# Copyright (C) 2011 Google Inc.<br>
diff --git a/docs/oauth2client.django_orm.html b/docs/oauth2client.django_orm.html
index 19d2633..97303aa 100644
--- a/docs/oauth2client.django_orm.html
+++ b/docs/oauth2client.django_orm.html
@@ -8,7 +8,7 @@
<td valign=bottom> <br>
<font color="#ffffff" face="helvetica, arial"> <br><big><big><strong><a href="oauth2client.html"><font color="#ffffff">oauth2client</font></a>.django_orm</strong></big></big></font></td
><td align=right valign=bottom
-><font color="#ffffff" face="helvetica, arial"><a href=".">index</a><br><a href="file:/home/jcgregorio/projects/apiclient-release/oauth2client/django_orm.py">/home/jcgregorio/projects/apiclient-release/oauth2client/django_orm.py</a></font></td></tr></table>
+><font color="#ffffff" face="helvetica, arial"><a href=".">index</a><br><a href="file:/home/jcgregorio/projects/clean/oauth2client/django_orm.py">/home/jcgregorio/projects/clean/oauth2client/django_orm.py</a></font></td></tr></table>
<p><tt>OAuth 2.0 utilities for Django.<br>
<br>
Utilities for using OAuth 2.0 in conjunction with<br>
diff --git a/docs/oauth2client.file.html b/docs/oauth2client.file.html
index 8d77ef0..899754d 100644
--- a/docs/oauth2client.file.html
+++ b/docs/oauth2client.file.html
@@ -8,7 +8,7 @@
<td valign=bottom> <br>
<font color="#ffffff" face="helvetica, arial"> <br><big><big><strong><a href="oauth2client.html"><font color="#ffffff">oauth2client</font></a>.file</strong></big></big></font></td
><td align=right valign=bottom
-><font color="#ffffff" face="helvetica, arial"><a href=".">index</a><br><a href="file:/home/jcgregorio/projects/apiclient-release/oauth2client/file.py">/home/jcgregorio/projects/apiclient-release/oauth2client/file.py</a></font></td></tr></table>
+><font color="#ffffff" face="helvetica, arial"><a href=".">index</a><br><a href="file:/home/jcgregorio/projects/clean/oauth2client/file.py">/home/jcgregorio/projects/clean/oauth2client/file.py</a></font></td></tr></table>
<p><tt>Utilities for OAuth.<br>
<br>
Utilities for making it easier to work with OAuth 2.0<br>
diff --git a/docs/oauth2client.html b/docs/oauth2client.html
index 5f9d4aa..2ffa4f8 100644
--- a/docs/oauth2client.html
+++ b/docs/oauth2client.html
@@ -8,7 +8,7 @@
<td valign=bottom> <br>
<font color="#ffffff" face="helvetica, arial"> <br><big><big><strong>oauth2client</strong></big></big> (version 1.0b9)</font></td
><td align=right valign=bottom
-><font color="#ffffff" face="helvetica, arial"><a href=".">index</a><br><a href="file:/home/jcgregorio/projects/apiclient-release/oauth2client/__init__.py">/home/jcgregorio/projects/apiclient-release/oauth2client/__init__.py</a></font></td></tr></table>
+><font color="#ffffff" face="helvetica, arial"><a href=".">index</a><br><a href="file:/home/jcgregorio/projects/clean/oauth2client/__init__.py">/home/jcgregorio/projects/clean/oauth2client/__init__.py</a></font></td></tr></table>
<p></p>
<p>
<table width="100%" cellspacing=0 cellpadding=2 border=0 summary="section">
@@ -24,9 +24,10 @@
<a href="oauth2client.crypt.html">crypt</a><br>
<a href="oauth2client.django_orm.html">django_orm</a><br>
</td><td width="25%" valign=top><a href="oauth2client.file.html">file</a><br>
+<a href="oauth2client.locked_file.html">locked_file</a><br>
<a href="oauth2client.multistore_file.html">multistore_file</a><br>
-<a href="oauth2client.tools.html">tools</a><br>
-</td><td width="25%" valign=top></td></tr></table></td></tr></table><p>
+</td><td width="25%" valign=top><a href="oauth2client.tools.html">tools</a><br>
+</td></tr></table></td></tr></table><p>
<table width="100%" cellspacing=0 cellpadding=2 border=0 summary="section">
<tr bgcolor="#55aa55">
<td colspan=3 valign=bottom> <br>
diff --git a/docs/oauth2client.locked_file.html b/docs/oauth2client.locked_file.html
new file mode 100644
index 0000000..454e789
--- /dev/null
+++ b/docs/oauth2client.locked_file.html
@@ -0,0 +1,179 @@
+
+<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
+<html><head><title>Python: module oauth2client.locked_file</title>
+</head><body bgcolor="#f0f0f8">
+
+<table width="100%" cellspacing=0 cellpadding=2 border=0 summary="heading">
+<tr bgcolor="#7799ee">
+<td valign=bottom> <br>
+<font color="#ffffff" face="helvetica, arial"> <br><big><big><strong><a href="oauth2client.html"><font color="#ffffff">oauth2client</font></a>.locked_file</strong></big></big></font></td
+><td align=right valign=bottom
+><font color="#ffffff" face="helvetica, arial"><a href=".">index</a><br><a href="file:/home/jcgregorio/projects/clean/oauth2client/locked_file.py">/home/jcgregorio/projects/clean/oauth2client/locked_file.py</a></font></td></tr></table>
+ <p><tt>Locked file interface that should work on Unix and Windows pythons.<br>
+ <br>
+This module first tries to use fcntl locking to ensure serialized access<br>
+to a file, then falls back on a lock file if that is unavialable.<br>
+ <br>
+Usage:<br>
+ f = <a href="#LockedFile">LockedFile</a>('filename', 'r+b', 'rb')<br>
+ f.open_and_lock()<br>
+ if f.is_locked():<br>
+ print 'Acquired filename with r+b mode'<br>
+ f.file_handle().write('locked data')<br>
+ else:<br>
+ print 'Aquired filename with rb mode'<br>
+ f.unlock_and_close()</tt></p>
+<p>
+<table width="100%" cellspacing=0 cellpadding=2 border=0 summary="section">
+<tr bgcolor="#aa55cc">
+<td colspan=3 valign=bottom> <br>
+<font color="#ffffff" face="helvetica, arial"><big><strong>Modules</strong></big></font></td></tr>
+
+<tr><td bgcolor="#aa55cc"><tt> </tt></td><td> </td>
+<td width="100%"><table width="100%" summary="list"><tr><td width="25%" valign=top><a href="errno.html">errno</a><br>
+<a href="fcntl.html">fcntl</a><br>
+</td><td width="25%" valign=top><a href="logging.html">logging</a><br>
+<a href="os.html">os</a><br>
+</td><td width="25%" valign=top><a href="time.html">time</a><br>
+</td><td width="25%" valign=top></td></tr></table></td></tr></table><p>
+<table width="100%" cellspacing=0 cellpadding=2 border=0 summary="section">
+<tr bgcolor="#ee77aa">
+<td colspan=3 valign=bottom> <br>
+<font color="#ffffff" face="helvetica, arial"><big><strong>Classes</strong></big></font></td></tr>
+
+<tr><td bgcolor="#ee77aa"><tt> </tt></td><td> </td>
+<td width="100%"><dl>
+<dt><font face="helvetica, arial"><a href="__builtin__.html#object">__builtin__.object</a>
+</font></dt><dd>
+<dl>
+<dt><font face="helvetica, arial"><a href="oauth2client.locked_file.html#LockedFile">LockedFile</a>
+</font></dt></dl>
+</dd>
+<dt><font face="helvetica, arial"><a href="exceptions.html#Exception">exceptions.Exception</a>(<a href="exceptions.html#BaseException">exceptions.BaseException</a>)
+</font></dt><dd>
+<dl>
+<dt><font face="helvetica, arial"><a href="oauth2client.locked_file.html#AlreadyLockedException">AlreadyLockedException</a>
+</font></dt></dl>
+</dd>
+</dl>
+ <p>
+<table width="100%" cellspacing=0 cellpadding=2 border=0 summary="section">
+<tr bgcolor="#ffc8d8">
+<td colspan=3 valign=bottom> <br>
+<font color="#000000" face="helvetica, arial"><a name="AlreadyLockedException">class <strong>AlreadyLockedException</strong></a>(<a href="exceptions.html#Exception">exceptions.Exception</a>)</font></td></tr>
+
+<tr bgcolor="#ffc8d8"><td rowspan=2><tt> </tt></td>
+<td colspan=2><tt>Trying to lock a file that has already been locked by the <a href="#LockedFile">LockedFile</a>.<br> </tt></td></tr>
+<tr><td> </td>
+<td width="100%"><dl><dt>Method resolution order:</dt>
+<dd><a href="oauth2client.locked_file.html#AlreadyLockedException">AlreadyLockedException</a></dd>
+<dd><a href="exceptions.html#Exception">exceptions.Exception</a></dd>
+<dd><a href="exceptions.html#BaseException">exceptions.BaseException</a></dd>
+<dd><a href="__builtin__.html#object">__builtin__.object</a></dd>
+</dl>
+<hr>
+Data descriptors defined here:<br>
+<dl><dt><strong>__weakref__</strong></dt>
+<dd><tt>list of weak references to the object (if defined)</tt></dd>
+</dl>
+<hr>
+Methods inherited from <a href="exceptions.html#Exception">exceptions.Exception</a>:<br>
+<dl><dt><a name="AlreadyLockedException-__init__"><strong>__init__</strong></a>(...)</dt><dd><tt>x.<a href="#AlreadyLockedException-__init__">__init__</a>(...) initializes x; see x.__class__.__doc__ for signature</tt></dd></dl>
+
+<hr>
+Data and other attributes inherited from <a href="exceptions.html#Exception">exceptions.Exception</a>:<br>
+<dl><dt><strong>__new__</strong> = <built-in method __new__ of type object><dd><tt>T.<a href="#AlreadyLockedException-__new__">__new__</a>(S, ...) -> a new <a href="__builtin__.html#object">object</a> with type S, a subtype of T</tt></dl>
+
+<hr>
+Methods inherited from <a href="exceptions.html#BaseException">exceptions.BaseException</a>:<br>
+<dl><dt><a name="AlreadyLockedException-__delattr__"><strong>__delattr__</strong></a>(...)</dt><dd><tt>x.<a href="#AlreadyLockedException-__delattr__">__delattr__</a>('name') <==> del x.name</tt></dd></dl>
+
+<dl><dt><a name="AlreadyLockedException-__getattribute__"><strong>__getattribute__</strong></a>(...)</dt><dd><tt>x.<a href="#AlreadyLockedException-__getattribute__">__getattribute__</a>('name') <==> x.name</tt></dd></dl>
+
+<dl><dt><a name="AlreadyLockedException-__getitem__"><strong>__getitem__</strong></a>(...)</dt><dd><tt>x.<a href="#AlreadyLockedException-__getitem__">__getitem__</a>(y) <==> x[y]</tt></dd></dl>
+
+<dl><dt><a name="AlreadyLockedException-__getslice__"><strong>__getslice__</strong></a>(...)</dt><dd><tt>x.<a href="#AlreadyLockedException-__getslice__">__getslice__</a>(i, j) <==> x[i:j]<br>
+ <br>
+Use of negative indices is not supported.</tt></dd></dl>
+
+<dl><dt><a name="AlreadyLockedException-__reduce__"><strong>__reduce__</strong></a>(...)</dt></dl>
+
+<dl><dt><a name="AlreadyLockedException-__repr__"><strong>__repr__</strong></a>(...)</dt><dd><tt>x.<a href="#AlreadyLockedException-__repr__">__repr__</a>() <==> repr(x)</tt></dd></dl>
+
+<dl><dt><a name="AlreadyLockedException-__setattr__"><strong>__setattr__</strong></a>(...)</dt><dd><tt>x.<a href="#AlreadyLockedException-__setattr__">__setattr__</a>('name', value) <==> x.name = value</tt></dd></dl>
+
+<dl><dt><a name="AlreadyLockedException-__setstate__"><strong>__setstate__</strong></a>(...)</dt></dl>
+
+<dl><dt><a name="AlreadyLockedException-__str__"><strong>__str__</strong></a>(...)</dt><dd><tt>x.<a href="#AlreadyLockedException-__str__">__str__</a>() <==> str(x)</tt></dd></dl>
+
+<dl><dt><a name="AlreadyLockedException-__unicode__"><strong>__unicode__</strong></a>(...)</dt></dl>
+
+<hr>
+Data descriptors inherited from <a href="exceptions.html#BaseException">exceptions.BaseException</a>:<br>
+<dl><dt><strong>__dict__</strong></dt>
+</dl>
+<dl><dt><strong>args</strong></dt>
+</dl>
+<dl><dt><strong>message</strong></dt>
+</dl>
+</td></tr></table> <p>
+<table width="100%" cellspacing=0 cellpadding=2 border=0 summary="section">
+<tr bgcolor="#ffc8d8">
+<td colspan=3 valign=bottom> <br>
+<font color="#000000" face="helvetica, arial"><a name="LockedFile">class <strong>LockedFile</strong></a>(<a href="__builtin__.html#object">__builtin__.object</a>)</font></td></tr>
+
+<tr bgcolor="#ffc8d8"><td rowspan=2><tt> </tt></td>
+<td colspan=2><tt>Represent a file that has exclusive access.<br> </tt></td></tr>
+<tr><td> </td>
+<td width="100%">Methods defined here:<br>
+<dl><dt><a name="LockedFile-__init__"><strong>__init__</strong></a>(self, filename, mode, fallback_mode, use_fcntl<font color="#909090">=True</font>)</dt><dd><tt>Construct a <a href="#LockedFile">LockedFile</a>.<br>
+ <br>
+Args:<br>
+ filename: string, The path of the file to open.<br>
+ mode: string, The mode to try to open the file with.<br>
+ fallback_mode: string, The mode to use if locking fails.<br>
+ use_fcntl: string, Whether or not fcntl-based locking should be used.</tt></dd></dl>
+
+<dl><dt><a name="LockedFile-file_handle"><strong>file_handle</strong></a>(self)</dt><dd><tt>Return the file_handle to the opened file.</tt></dd></dl>
+
+<dl><dt><a name="LockedFile-filename"><strong>filename</strong></a>(self)</dt><dd><tt>Return the filename we were constructed with.</tt></dd></dl>
+
+<dl><dt><a name="LockedFile-is_locked"><strong>is_locked</strong></a>(self)</dt><dd><tt>Return whether we successfully locked the file.</tt></dd></dl>
+
+<dl><dt><a name="LockedFile-open_and_lock"><strong>open_and_lock</strong></a>(self, timeout<font color="#909090">=0</font>, delay<font color="#909090">=0.050000000000000003</font>)</dt><dd><tt>Open the file, trying to lock it.<br>
+ <br>
+Args:<br>
+ timeout: float, The number of seconds to try to acquire the lock.<br>
+ delay: float, The number of seconds to wait between retry attempts.<br>
+ <br>
+Raises:<br>
+ <a href="#AlreadyLockedException">AlreadyLockedException</a>: if the lock is already acquired.<br>
+ IOError: if the open fails.</tt></dd></dl>
+
+<dl><dt><a name="LockedFile-unlock_and_close"><strong>unlock_and_close</strong></a>(self)</dt><dd><tt>Unlock and close a file.</tt></dd></dl>
+
+<hr>
+Data descriptors defined here:<br>
+<dl><dt><strong>__dict__</strong></dt>
+<dd><tt>dictionary for instance variables (if defined)</tt></dd>
+</dl>
+<dl><dt><strong>__weakref__</strong></dt>
+<dd><tt>list of weak references to the object (if defined)</tt></dd>
+</dl>
+</td></tr></table></td></tr></table><p>
+<table width="100%" cellspacing=0 cellpadding=2 border=0 summary="section">
+<tr bgcolor="#55aa55">
+<td colspan=3 valign=bottom> <br>
+<font color="#ffffff" face="helvetica, arial"><big><strong>Data</strong></big></font></td></tr>
+
+<tr><td bgcolor="#55aa55"><tt> </tt></td><td> </td>
+<td width="100%"><strong>__author__</strong> = 'cache@google.com (David T McWherter)'<br>
+<strong>logger</strong> = <logging.Logger instance></td></tr></table><p>
+<table width="100%" cellspacing=0 cellpadding=2 border=0 summary="section">
+<tr bgcolor="#7799ee">
+<td colspan=3 valign=bottom> <br>
+<font color="#ffffff" face="helvetica, arial"><big><strong>Author</strong></big></font></td></tr>
+
+<tr><td bgcolor="#7799ee"><tt> </tt></td><td> </td>
+<td width="100%">cache@google.com (David T McWherter)</td></tr></table>
+</body></html>
\ No newline at end of file
diff --git a/docs/oauth2client.multistore_file.html b/docs/oauth2client.multistore_file.html
index 92b2afe..ded2a60 100644
--- a/docs/oauth2client.multistore_file.html
+++ b/docs/oauth2client.multistore_file.html
@@ -8,7 +8,7 @@
<td valign=bottom> <br>
<font color="#ffffff" face="helvetica, arial"> <br><big><big><strong><a href="oauth2client.html"><font color="#ffffff">oauth2client</font></a>.multistore_file</strong></big></big></font></td
><td align=right valign=bottom
-><font color="#ffffff" face="helvetica, arial"><a href=".">index</a><br><a href="file:/home/jcgregorio/projects/apiclient-release/oauth2client/multistore_file.py">/home/jcgregorio/projects/apiclient-release/oauth2client/multistore_file.py</a></font></td></tr></table>
+><font color="#ffffff" face="helvetica, arial"><a href=".">index</a><br><a href="file:/home/jcgregorio/projects/clean/oauth2client/multistore_file.py">/home/jcgregorio/projects/clean/oauth2client/multistore_file.py</a></font></td></tr></table>
<p><tt>Multi-credential file store with lock support.<br>
<br>
This module implements a JSON credential store where multiple<br>
@@ -45,12 +45,11 @@
<tr><td bgcolor="#aa55cc"><tt> </tt></td><td> </td>
<td width="100%"><table width="100%" summary="list"><tr><td width="25%" valign=top><a href="base64.html">base64</a><br>
<a href="errno.html">errno</a><br>
-</td><td width="25%" valign=top><a href="fcntl.html">fcntl</a><br>
-<a href="logging.html">logging</a><br>
-</td><td width="25%" valign=top><a href="os.html">os</a><br>
-<a href="json.html">json</a><br>
-</td><td width="25%" valign=top><a href="threading.html">threading</a><br>
-</td></tr></table></td></tr></table><p>
+</td><td width="25%" valign=top><a href="logging.html">logging</a><br>
+<a href="os.html">os</a><br>
+</td><td width="25%" valign=top><a href="json.html">json</a><br>
+<a href="threading.html">threading</a><br>
+</td><td width="25%" valign=top></td></tr></table></td></tr></table><p>
<table width="100%" cellspacing=0 cellpadding=2 border=0 summary="section">
<tr bgcolor="#ee77aa">
<td colspan=3 valign=bottom> <br>
diff --git a/docs/oauth2client.tools.html b/docs/oauth2client.tools.html
index 4e475b7..d2c73a8 100644
--- a/docs/oauth2client.tools.html
+++ b/docs/oauth2client.tools.html
@@ -8,7 +8,7 @@
<td valign=bottom> <br>
<font color="#ffffff" face="helvetica, arial"> <br><big><big><strong><a href="oauth2client.html"><font color="#ffffff">oauth2client</font></a>.tools</strong></big></big></font></td
><td align=right valign=bottom
-><font color="#ffffff" face="helvetica, arial"><a href=".">index</a><br><a href="file:/home/jcgregorio/projects/apiclient-release/oauth2client/tools.py">/home/jcgregorio/projects/apiclient-release/oauth2client/tools.py</a></font></td></tr></table>
+><font color="#ffffff" face="helvetica, arial"><a href=".">index</a><br><a href="file:/home/jcgregorio/projects/clean/oauth2client/tools.py">/home/jcgregorio/projects/clean/oauth2client/tools.py</a></font></td></tr></table>
<p><tt>Command-line tools for authenticating via OAuth 2.0<br>
<br>
Do the OAuth 2.0 Web Server dance for a command line application. Stores the<br>
diff --git a/docs/uritemplate.html b/docs/uritemplate.html
index 3be8aeb..8d8a8b8 100644
--- a/docs/uritemplate.html
+++ b/docs/uritemplate.html
@@ -8,7 +8,7 @@
<td valign=bottom> <br>
<font color="#ffffff" face="helvetica, arial"> <br><big><big><strong>uritemplate</strong></big></big></font></td
><td align=right valign=bottom
-><font color="#ffffff" face="helvetica, arial"><a href=".">index</a><br><a href="file:/home/jcgregorio/projects/apiclient-release/uritemplate/__init__.py">/home/jcgregorio/projects/apiclient-release/uritemplate/__init__.py</a></font></td></tr></table>
+><font color="#ffffff" face="helvetica, arial"><a href=".">index</a><br><a href="file:/home/jcgregorio/projects/clean/uritemplate/__init__.py">/home/jcgregorio/projects/clean/uritemplate/__init__.py</a></font></td></tr></table>
<p><tt># Early, and incomplete implementation of -04.<br>
#</tt></p>
<p>